<?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>218960</bug_id>
          
          <creation_ts>2020-11-15 09:58:56 -0800</creation_ts>
          <short_desc>Standardize enums that are used by Settings in preparation for autogeneration</short_desc>
          <delta_ts>2020-11-17 11:20:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>annulen</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cdumez</cc>
    
    <cc>cfleizach</cc>
    
    <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mifenton</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>samuel_white</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1707616</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-11-15 09:58:56 -0800</bug_when>
    <thetext>Standardize enums that are used by Settings in preperation for autogeneration</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707619</commentid>
    <comment_count>1</comment_count>
      <attachid>414170</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-11-15 10:15:59 -0800</bug_when>
    <thetext>Created attachment 414170
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707627</commentid>
    <comment_count>2</comment_count>
      <attachid>414172</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-11-15 10:55:48 -0800</bug_when>
    <thetext>Created attachment 414172
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707636</commentid>
    <comment_count>3</comment_count>
      <attachid>414174</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-11-15 11:39:02 -0800</bug_when>
    <thetext>Created attachment 414174
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707642</commentid>
    <comment_count>4</comment_count>
      <attachid>414176</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-11-15 12:09:49 -0800</bug_when>
    <thetext>Created attachment 414176
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707651</commentid>
    <comment_count>5</comment_count>
      <attachid>414178</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-11-15 14:45:53 -0800</bug_when>
    <thetext>Created attachment 414178
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707656</commentid>
    <comment_count>6</comment_count>
      <attachid>414181</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-11-15 14:53:36 -0800</bug_when>
    <thetext>Created attachment 414181
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707657</commentid>
    <comment_count>7</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-11-15 14:55:20 -0800</bug_when>
    <thetext>It looks like I can&apos;t change the file LayoutTests/fast/forms/selection-direction.html, as when I do, the bots all fail to apply the patch with the error:

(Stripping trailing CRs from patch.)
patching file LayoutTests/fast/forms/selection-direction.html
Hunk #1 FAILED at 91.
1 out of 1 hunk FAILED -- saving rejects to file LayoutTests/fast/forms/selection-direction.html.rej

Darin, I remember you working on stripping CRs recently, any idea what to do about this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707660</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-11-15 15:38:26 -0800</bug_when>
    <thetext>I did not successfully strip CRs yet; I want to try but not sure how I will succeed. I came up with a script, then made a first patch and it does not apply.

I suggest that in *this* patch you skip the old test (with a comment explaining why and the intention of eventually deleting it), and adding a new version of the test that does not have CRs. Too bad the test already has a good name, since this is also an opportunity to improve the tests name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707663</commentid>
    <comment_count>9</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-11-15 15:51:12 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #8)
&gt; I did not successfully strip CRs yet; I want to try but not sure how I will
&gt; succeed. I came up with a script, then made a first patch and it does not
&gt; apply.
&gt; 
&gt; I suggest that in *this* patch you skip the old test (with a comment
&gt; explaining why and the intention of eventually deleting it), and adding a
&gt; new version of the test that does not have CRs. Too bad the test already has
&gt; a good name, since this is also an opportunity to improve the tests name.

Ok. Will do. Thanks. Going to do a little bit of experimenting as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707664</commentid>
    <comment_count>10</comment_count>
      <attachid>414183</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-11-15 15:51:41 -0800</bug_when>
    <thetext>Created attachment 414183
Can I remove the file completely?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707666</commentid>
    <comment_count>11</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-11-15 15:58:11 -0800</bug_when>
    <thetext>(In reply to Sam Weinig from comment #10)
&gt; Created attachment 414183 [details]
&gt; Can I remove the file completely?

Looks like I can remove it entirely. So I can do two changes, one to remove it, one to add it back without the CRs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707669</commentid>
    <comment_count>12</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-11-15 16:02:39 -0800</bug_when>
    <thetext>Using https://bugs.webkit.org/show_bug.cgi?id=218966 to fixup the test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707858</commentid>
    <comment_count>13</comment_count>
      <attachid>414243</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-11-16 09:48:53 -0800</bug_when>
    <thetext>Created attachment 414243
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707962</commentid>
    <comment_count>14</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-11-16 12:53:38 -0800</bug_when>
    <thetext>(In reply to Sam Weinig from comment #13)
&gt; Created attachment 414243 [details]
&gt; Patch

Ok, looks like we have that all sorted and this can be reviewed now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708059</commentid>
    <comment_count>15</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-16 17:35:11 -0800</bug_when>
    <thetext>Committed r269888: &lt;https://trac.webkit.org/changeset/269888&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 414243.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708060</commentid>
    <comment_count>16</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-16 17:36:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/71466896&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708064</commentid>
    <comment_count>17</comment_count>
      <attachid>414243</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-11-16 18:13:25 -0800</bug_when>
    <thetext>Comment on attachment 414243
Patch

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

&gt; Source/WebCore/accessibility/ForcedAccessibilityValue.h:34
&gt; +enum class ForcedAccessibilityValue : uint8_t {
&gt; +    System,
&gt; +    On,
&gt; +    Off
&gt; +};

When they are super short like this I like to do these on a single line. Not sure if you agree.

I also typically use the optional trailing comma on the last line when we are doing it vertically.

&gt; Source/WebCore/editing/EditingBehaviorType.h:42
&gt; +    Ios

Would be nice if we could fix the spelling; not critical, though.

&gt; Source/WebCore/editing/cocoa/DataDetectorTypes.h:34
&gt; +enum class DataDetectorTypes : uint8_t {

Seems like this should be a singular noun phrase, not a plural, if it’s a value to be used in an OptionSet.

&gt; Source/WebCore/editing/cocoa/DataDetectorTypes.h:35
&gt; +    None = 0,

Should not have a &quot;None&quot; when this is an enum for use in an OptionSet.

&gt; Source/WebCore/html/HTMLAnchorElement.cpp:223
&gt; +        // Don&apos;t set the link to be active if the current selection is in the same editable block as
&gt; +        // this link

Should add the period since we are reformatting here. Maybe merge it into a single line.

&gt; Source/WebCore/html/parser/HTMLParserScriptingFlagPolicy.h:30
&gt; +enum class HTMLParserScriptingFlagPolicy : uint8_t {

Maybe bool instead of uint8_t?

&gt; Source/WebCore/html/parser/HTMLParserScriptingFlagPolicy.h:31
&gt; +    OnlyIfScriptIsEnabled,

This seems like an unwieldy name.

&gt; Source/WebCore/loader/FrameLoader.cpp:2583
&gt; +                auto types = OptionSet&lt;DataDetectorTypes&gt; { m_frame.settings().dataDetectorTypes() };

This looks like an anti-pattern. If the setting is a set of types, then it should be an OptionSet.

&gt; Source/WebCore/page/DebugPageOverlays.cpp:417
&gt; +    auto activeOverlayRegions = OptionSet&lt;DebugOverlayRegions&gt;::fromRaw(page.settings().visibleDebugOverlayRegions());

Same frustrating anti-pattern.

&gt; Source/WebCore/page/FrameView.h:-83
&gt; -enum class FrameFlattening;

Why can’t we use a forward declaration any more?

&gt; Source/WebCore/page/PDFImageCachingPolicy.h:39
&gt; +#if PLATFORM(IOS_FAMILY)
&gt; +    Default = BelowMemoryLimit
&gt; +#else
&gt; +    Default = Enabled
&gt; +#endif

Could this be a separate constant rather than an enum class member?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708303</commentid>
    <comment_count>18</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-11-17 11:20:19 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #17)
&gt; Comment on attachment 414243 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=414243&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/ForcedAccessibilityValue.h:34
&gt; &gt; +enum class ForcedAccessibilityValue : uint8_t {
&gt; &gt; +    System,
&gt; &gt; +    On,
&gt; &gt; +    Off
&gt; &gt; +};
&gt; 
&gt; When they are super short like this I like to do these on a single line. Not
&gt; sure if you agree.
&gt; 
&gt; I also typically use the optional trailing comma on the last line when we
&gt; are doing it vertically.

I agree with both of these. Not sure why I was inconsistent here. Will update to make these inline.

&gt; 
&gt; &gt; Source/WebCore/editing/EditingBehaviorType.h:42
&gt; &gt; +    Ios
&gt; 
&gt; Would be nice if we could fix the spelling; not critical, though.

Yeah, this was to make the bindings generator happy. This is fixable though.

&gt; 
&gt; &gt; Source/WebCore/editing/cocoa/DataDetectorTypes.h:34
&gt; &gt; +enum class DataDetectorTypes : uint8_t {
&gt; 
&gt; Seems like this should be a singular noun phrase, not a plural, if it’s a
&gt; value to be used in an OptionSet.

Ok.

&gt; 
&gt; &gt; Source/WebCore/editing/cocoa/DataDetectorTypes.h:35
&gt; &gt; +    None = 0,
&gt; 
&gt; Should not have a &quot;None&quot; when this is an enum for use in an OptionSet.

Does having &quot;None&quot; hurt things? It was useful for the default value in the .yaml files. Once this is always a OptionSet it hopefully won&apos;t be necessary, so its not a big deal to remove in a bit.

&gt; 
&gt; &gt; Source/WebCore/html/HTMLAnchorElement.cpp:223
&gt; &gt; +        // Don&apos;t set the link to be active if the current selection is in the same editable block as
&gt; &gt; +        // this link
&gt; 
&gt; Should add the period since we are reformatting here. Maybe merge it into a
&gt; single line.

Will fix.

&gt; 
&gt; &gt; Source/WebCore/html/parser/HTMLParserScriptingFlagPolicy.h:30
&gt; &gt; +enum class HTMLParserScriptingFlagPolicy : uint8_t {
&gt; 
&gt; Maybe bool instead of uint8_t?

Heh, I did this and undid it. Not clear to me if there is a benefit to using bool vs. uint8_t here. What do you think it adds?

&gt; 
&gt; &gt; Source/WebCore/html/parser/HTMLParserScriptingFlagPolicy.h:31
&gt; &gt; +    OnlyIfScriptIsEnabled,
&gt; 
&gt; This seems like an unwieldy name.

Agreed, though not sure what to replace it with.

&gt; 
&gt; &gt; Source/WebCore/loader/FrameLoader.cpp:2583
&gt; &gt; +                auto types = OptionSet&lt;DataDetectorTypes&gt; { m_frame.settings().dataDetectorTypes() };
&gt; 
&gt; This looks like an anti-pattern. If the setting is a set of types, then it
&gt; should be an OptionSet.

This will be fixed in a follow on changes. Wanted to keep this relatively small so didn&apos;t want to add the infrastructure in the generator to return OptionSets yet. (same for all below).

&gt; 
&gt; &gt; Source/WebCore/page/FrameView.h:-83
&gt; &gt; -enum class FrameFlattening;
&gt; 
&gt; Why can’t we use a forward declaration any more?

We can. Will fix.

&gt; 
&gt; &gt; Source/WebCore/page/PDFImageCachingPolicy.h:39
&gt; &gt; +#if PLATFORM(IOS_FAMILY)
&gt; &gt; +    Default = BelowMemoryLimit
&gt; &gt; +#else
&gt; &gt; +    Default = Enabled
&gt; &gt; +#endif
&gt; 
&gt; Could this be a separate constant rather than an enum class member?

Yeah, good idea.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414170</attachid>
            <date>2020-11-15 10:15:59 -0800</date>
            <delta_ts>2020-11-15 11:37:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218960-20201115101558.patch</filename>
            <type>text/plain</type>
            <size>189893</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNjk4MTkpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIwLTExLTE1ICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBTdGFuZGFyZGl6ZSBlbnVtcyB0aGF0IGFyZSB1c2VkIGJ5
IFNldHRpbmdzIGluIHByZXBlcmF0aW9uIGZvciBhdXRvZ2VuZXJhdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4OTYwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1dJUF0KKworICAgICAgICAqIFNj
cmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXMueWFtbDoKKwogMjAyMC0xMS0xNCAgRG9u
IE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIFtjbGFuZy10aWR5
XSBSdW4gbW9kZXJuaXplLXVzZS1vdmVycmlkZSB0aHJvdWdoIEpTQwpJbmRleDogU291cmNlL1dU
Ri9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWwJKHJldmlz
aW9uIDI2OTgxOSkKKysrIFNvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJl
bmNlcy55YW1sCSh3b3JraW5nIGNvcHkpCkBAIC03MDYsNyArNzA2LDcgQEAgRWRpdGFibGVMaW5r
QmVoYXZpb3I6CiAgICAgV2ViS2l0TGVnYWN5OgogICAgICAgZGVmYXVsdDogV2ViS2l0RWRpdGFi
bGVMaW5rRGVmYXVsdEJlaGF2aW9yCiAgICAgV2ViS2l0OgotICAgICAgZGVmYXVsdDogV2ViQ29y
ZTo6RWRpdGFibGVMaW5rTmV2ZXJMaXZlCisgICAgICBkZWZhdWx0OiBXZWJDb3JlOjpFZGl0YWJs
ZUxpbmtCZWhhdmlvcjo6TmV2ZXJMaXZlCiAKIEVuYWJsZUluaGVyaXRVUklRdWVyeUNvbXBvbmVu
dDoKICAgdHlwZTogYm9vbApAQCAtMjE3Myw3ICsyMTczLDcgQEAgU3RvcmFnZUJsb2NraW5nUG9s
aWN5OgogICAgIFdlYktpdExlZ2FjeToKICAgICAgIGRlZmF1bHQ6IFdlYkFsbG93QWxsU3RvcmFn
ZQogICAgIFdlYktpdDoKLSAgICAgIGRlZmF1bHQ6IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpC
bG9ja1RoaXJkUGFydHlTdG9yYWdlCisgICAgICBkZWZhdWx0OiBXZWJDb3JlOjpTdG9yYWdlQmxv
Y2tpbmdQb2xpY3k6OkJsb2NrVGhpcmRQYXJ0eQogCiBTdWJyZXNvdXJjZUludGVncml0eUVuYWJs
ZWQ6CiAgIHR5cGU6IGJvb2wKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2OTgxOSkKKysrIFNv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzOSBAQAor
MjAyMC0xMS0xNSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAgU3Rh
bmRhcmRpemUgZW51bXMgdGhhdCBhcmUgdXNlZCBieSBTZXR0aW5ncyBpbiBwcmVwZXJhdGlvbiBm
b3IgYXV0b2dlbmVyYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxODk2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFtXSVBdCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFNj
cmlwdHMvR2VuZXJhdGVTZXR0aW5ncy5yYjoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9Gb3JjZWRBY2Nlc3NpYmls
aXR5VmFsdWUuaDogQWRkZWQuCisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmZvbnRMb2FkVGltaW5nT3ZlcnJpZGUpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTRm9udEZhY2U6OmZvbnRMb2FkVGltaW5nIGNvbnN0KToKKyAgICAgICAgKiBjc3MvRm9udExv
YWRUaW1pbmdPdmVycmlkZS5oOiBBZGRlZC4KKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2YWx1
YXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjptb25vY2hyb21lRXZhbHVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6aW52ZXJ0ZWRDb2xvcnNFdmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpk
eW5hbWljUmFuZ2VFdmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpwcmVmZXJzUmVkdWNlZE1v
dGlvbkV2YWx1YXRlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmFwcGx5UXVpY2tMb29rU2FuZGJveCk6CisgICAgICAgICogZWRpdGlu
Zy9FZGl0YWJsZUxpbmtCZWhhdmlvci5oOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRp
bmdCZWhhdmlvci5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yOjpzaG91bGRN
b3ZlQ2FyZXRUb0hvcml6b250YWxCb3VuZGFyeVdoZW5QYXN0VG9wT3JCb3R0b20gY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yOjpzaG91bGRDb25zaWRlclNlbGVjdGlv
bkFzRGlyZWN0aW9uYWwgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9y
OjpzaG91bGRDZW50ZXJBbGlnbldoZW5TZWxlY3Rpb25Jc1JldmVhbGVkIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkVkaXRpbmdCZWhhdmlvcjo6c2hvdWxkVG9nZ2xlU3R5bGVCYXNlZE9uU3Rh
cnRPZlNlbGVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3I6
OnNob3VsZEFsd2F5c0dyb3dTZWxlY3Rpb25XaGVuRXh0ZW5kaW5nVG9Cb3VuZGFyeSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3I6OnNob3VsZFNlbGVjdE9uQ29udGV4
dHVhbE1lbnVDbGljayBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3I6
OnNob3VsZEFsbG93U3BlbGxpbmdTdWdnZXN0aW9uc1dpdGhvdXRTZWxlY3Rpb24gY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yOjpzaG91bGROYXZpZ2F0ZUJhY2tPbkJh
Y2tzcGFjZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3I6OnNob3Vs
ZEV4dGVuZFNlbGVjdGlvbkJ5V29yZE9yTGluZUFjcm9zc0NhcmV0IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRpbmdCZWhhdmlvcjo6c2hvdWxkU2tpcFNwYWNlV2hlbk1vdmluZ1JpZ2h0
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRpbmdCZWhhdmlvcjo6c2hvdWxkUmViYWxh
bmNlV2hpdGVTcGFjZXNJblNlY3VyZUZpZWxkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRpbmdCZWhhdmlvcjo6c2hvdWxkU2VsZWN0QmFzZWRPbkRpY3Rpb25hcnlMb29rdXAgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yOjpzaG91bGRBbHdheXNFeHRlbmRT
ZWxlY3Rpb25Gcm9tRXh0ZW50RW5kcG9pbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dGluZ0JlaGF2aW9yOjpzaG91bGRNb3ZlU2VsZWN0aW9uVG9FbmRXaGVuRm9jdXNpbmdUZXh0SW5w
dXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yOjpzaG91bGRBbHdh
eXNTbWFydERlbGV0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3I6
OnNob3VsZFNtYXJ0SW5zZXJ0RGVsZXRlUGFyYWdyYXBocyBjb25zdCk6CisgICAgICAgICogZWRp
dGluZy9FZGl0aW5nQmVoYXZpb3JUeXBlLmg6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvRWRp
dGluZ0JlaGF2aW9yVHlwZXMuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmJlaGF2aW9yIGNvbnN0KToKKyAgICAgICAg
KiBlZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24uaDoKKyAgICAgICAgKiBlZGl0aW5nL2NvY29h
L0RhdGFEZXRlY3Rpb24ubW06CisgICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RVUkxTdHJpbmdG
b3JSZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGFpbnMpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6cmVtb3ZlUmVzdWx0TGlua3NGcm9tQW5jaG9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OnNlYXJjaEZvckxpbmtSZW1vdmluZ0V4aXN0aW5nRERMaW5rcyk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpkYXRhRGV0ZWN0b3JUeXBlRm9yQ2F0ZWdvcnkpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6ZGF0YURldGVjdG9yU3RyaW5nRm9yUGF0aCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpidWlsZFF1ZXJ5KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OnF1ZXJ5T2Zmc2V0Q29tcGFyZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpE
YXRhRGV0ZWN0aW9uOjpyZW1vdmVEYXRhRGV0ZWN0ZWRMaW5rc0luRG9jdW1lbnQpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6RGF0YURldGVjdGlvbjo6ZGV0ZWN0Q29udGVudEluUmFuZ2Up
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGF0YURldGVjdGlvbjo6ZGF0YURldGVjdG9y
VVJMUHJvdG9jb2wpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGF0YURldGVjdGlvbjo6
aXNEYXRhRGV0ZWN0b3JVUkwpOiBEZWxldGVkLgorICAgICAgICAqIGVkaXRpbmcvY29jb2EvRGF0
YURldGVjdG9yVHlwZXMuaDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9tYXJrdXAuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUGFnZUZvclNhbml0aXppbmdXZWJDb250ZW50KToKKyAg
ICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxBbmNob3JFbGVtZW50OjpzZXRBY3RpdmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFuY2hv
ckVsZW1lbnQ6OnRyZWF0TGlua0FzTGl2ZUZvckV2ZW50VHlwZSBjb25zdCk6CisgICAgICAgICog
aHRtbC9wYXJzZXIvSFRNTFBhcnNlck9wdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFBhcnNlck9wdGlvbnM6OkhUTUxQYXJzZXJPcHRpb25zKToKKyAgICAgICAgKiBodG1sL3BhcnNl
ci9IVE1MUGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeS5oOiBBZGRlZC4KKyAgICAgICAgKiBsb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNoZWNr
TG9hZENvbXBsZXRlRm9yVGhpc0ZyYW1lKToKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OnBv
cHVsYXRlKToKKyAgICAgICAgKiBwYWdlL0RlYnVnT3ZlcmxheVJlZ2lvbnMuaDogQWRkZWQuCisg
ICAgICAgICogcGFnZS9EZWJ1Z1BhZ2VPdmVybGF5cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
ZWJ1Z1BhZ2VPdmVybGF5czo6dXBkYXRlT3ZlcmxheVJlZ2lvblZpc2liaWxpdHkpOgorICAgICAg
ICAoV2ViQ29yZTo6RGVidWdQYWdlT3ZlcmxheXM6OnNldHRpbmdzQ2hhbmdlZCk6CisgICAgICAg
ICogcGFnZS9EZWJ1Z1BhZ2VPdmVybGF5cy5oOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6dXNlSGFuZEN1cnNvcik6Cisg
ICAgICAgICogcGFnZS9GcmFtZUZsYXR0ZW5pbmcuaDogQWRkZWQuCisgICAgICAgICogcGFnZS9G
cmFtZVZpZXcuaDoKKyAgICAgICAgKiBwYWdlL1BERkltYWdlQ2FjaGluZ1BvbGljeS5oOiBBZGRl
ZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2hv
dWxkQnVpbGRFZGl0YWJsZVJlZ2lvbiBjb25zdCk6CisgICAgICAgICogcGFnZS9TZWN1cml0eU9y
aWdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6Y2FuQWNjZXNzU3Rv
cmFnZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6ZG9tYWluRm9y
Q2FjaGVQYXJ0aXRpb24gY29uc3QpOgorICAgICAgICAqIHBhZ2UvU2VjdXJpdHlPcmlnaW4uaDoK
KyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6CisgICAgICAgICogcGFnZS9TZXR0aW5nc0Jh
c2UuaDoKKyAgICAgICAgKiBwYWdlL1N0b3JhZ2VCbG9ja2luZ1BvbGljeS5oOiBBZGRlZC4KKyAg
ICAgICAgKiBwYWdlL1RleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IuaDogQWRk
ZWQuCisgICAgICAgICogcGFnZS9Vc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5Lmg6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL0RyYWdJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nn
L1BERkRvY3VtZW50SW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UERGRG9jdW1lbnRJbWFn
ZTo6dXBkYXRlQ2FjaGVkSW1hZ2VJZk5lZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvUERGRG9jdW1lbnRJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvRm9udFJl
bmRlcmluZ01vZGUuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0RGlyZWN0
aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6aXNMZWZ0VG9SaWdodERpcmVjdGlvbik6
CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0RmxhZ3MuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS90ZXh0L1dyaXRpbmdNb2RlLmg6CisgICAgICAgIChXZWJDb3JlOjptYWtlVGV4dEZsb3dJbml0
YWxpemVyKToKKyAgICAgICAgKFdlYkNvcmU6Om1ha2VUZXh0Rmxvdyk6CisgICAgICAgIChXZWJD
b3JlOjppc1JldmVyc2VkVGV4dEZsb3cpOgorICAgICAgICAoV2ViQ29yZTo6aXNGbGlwcGVkVGV4
dEZsb3cpOgorICAgICAgICAoV2ViQ29yZTo6aXNWZXJ0aWNhbFRleHRGbG93KToKKyAgICAgICAg
KFdlYkNvcmU6OmlzVmVydGljYWxXcml0aW5nTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjppc0Zs
aXBwZWRXcml0aW5nTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjppc0hvcml6b250YWxXcml0aW5n
TW9kZSk6CisgICAgICAgIChXZWJDb3JlOjppc0ZsaXBwZWRMaW5lc1dyaXRpbmdNb2RlKToKKyAg
ICAgICAgKFdlYkNvcmU6OmlzSG9yaXpvbnRhbFBoeXNpY2FsU2lkZSk6CisgICAgICAgIChXZWJD
b3JlOjptaXJyb3JQaHlzaWNhbFNpZGUpOgorICAgICAgICAoV2ViQ29yZTo6cm90YXRlUGh5c2lj
YWxTaWRlKToKKyAgICAgICAgKFdlYkNvcmU6Om1hcExvZ2ljYWxTaWRlVG9QaHlzaWNhbFNpZGUp
OgorICAgICAgICAoV2ViQ29yZTo6aXNMZWZ0VG9SaWdodERpcmVjdGlvbik6IERlbGV0ZWQuCisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyOjpjYWxjdWxhdGVDbGlwUmVjdHMgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJC
YWNraW5nOjpwYWludERlYnVnT3ZlcmxheXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXJCYWNraW5nOjpwYWludENvbnRlbnRzKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpC
YWNrdXApOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpyZXN0
b3JlVG8pOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6c2V0RWRpdGluZ0Jl
aGF2aW9yKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldFN0b3JhZ2VC
bG9ja2luZ1BvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRQ
REZJbWFnZUNhY2hpbmdQb2xpY3kpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGw6CisgICAgICAgICog
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZVBhZ2VGb3JTZXJ2aWNlV29ya2VyKToKKyAgICAgICAgKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6U2VydmljZVdvcmtlclRocmVhZFByb3h5
KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFk
UHJveHkuaDoKKwogMjAyMC0xMS0xNCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFtMRkNdW0ludGVncmF0aW9uXSBVc2UgdGhlIHBoeXNpY2FsIHNpemUgd2hlbiBz
ZXR0aW5nIHRoZSBwcmUtY29tcHV0ZWQgd2lkdGgvaGVpZ2h0IG9uIFJlcGxhY2VkQm94CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UJKHJldmlzaW9uIDI2OTgxOSkKKysrIFNvdXJjZS9XZWJDb3JlL0hl
YWRlcnMuY21ha2UJKHdvcmtpbmcgY29weSkKQEAgLTE4OCw2ICsxODgsNyBAQCBzZXQoV2ViQ29y
ZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0SW50ZXJmYWNlLmgKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuaAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaAor
ICAgIGFjY2Vzc2liaWxpdHkvRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlLmgKIAogICAgIGFjY2Vz
c2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaAogICAgIGFjY2Vzc2liaWxp
dHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKQEAgLTM1Myw2ICszNTQsNyBAQCBzZXQo
V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgY3NzL0RlcHJlY2F0ZWRDU1NP
TVJlY3QuaAogICAgIGNzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZS5oCiAgICAgY3NzL0RlcHJlY2F0
ZWRDU1NPTVZhbHVlTGlzdC5oCisgICAgY3NzL0ZvbnRMb2FkVGltaW5nT3ZlcnJpZGUuaAogICAg
IGNzcy9MZW5ndGhGdW5jdGlvbnMuaAogICAgIGNzcy9NZWRpYUxpc3QuaAogICAgIGNzcy9NZWRp
YVF1ZXJ5RXZhbHVhdG9yLmgKQEAgLTUyNiw5ICs1MjgsMTAgQEAgc2V0KFdlYkNvcmVfUFJJVkFU
RV9GUkFNRVdPUktfSEVBREVSUwogICAgIGVkaXRpbmcvRGljdGF0aW9uQ29udGV4dC5oCiAgICAg
ZWRpdGluZy9EaWN0aW9uYXJ5UG9wdXBJbmZvLmgKICAgICBlZGl0aW5nL0VkaXRBY3Rpb24uaAor
ICAgIGVkaXRpbmcvRWRpdGFibGVMaW5rQmVoYXZpb3IuaAogICAgIGVkaXRpbmcvRWRpdGluZy5o
CiAgICAgZWRpdGluZy9FZGl0aW5nQmVoYXZpb3IuaAotICAgIGVkaXRpbmcvRWRpdGluZ0JlaGF2
aW9yVHlwZXMuaAorICAgIGVkaXRpbmcvRWRpdGluZ0JlaGF2aW9yVHlwZS5oCiAgICAgZWRpdGlu
Zy9FZGl0aW5nQm91bmRhcnkuaAogICAgIGVkaXRpbmcvRWRpdGluZ1N0eWxlLmgKICAgICBlZGl0
aW5nL0VkaXRvci5oCkBAIC02OTMsNiArNjk2LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFN
RVdPUktfSEVBREVSUwogCiAgICAgaHRtbC9wYXJzZXIvUGFyc2luZ1V0aWxpdGllcy5oCiAgICAg
aHRtbC9wYXJzZXIvSFRNTFBhcnNlcklkaW9tcy5oCisgICAgaHRtbC9wYXJzZXIvSFRNTFBhcnNl
clNjcmlwdGluZ0ZsYWdQb2xpY3kuaAogCiAgICAgaHRtbC90cmFjay9BdWRpb1RyYWNrLmgKICAg
ICBodG1sL3RyYWNrL1RleHRUcmFjay5oCkBAIC04MzEsNiArODM1LDcgQEAgc2V0KFdlYkNvcmVf
UFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBhZ2UvRE9NV2luZG93RXh0ZW5zaW9uLmgK
ICAgICBwYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmgKICAgICBwYWdlL0RhdGFiYXNlUHJvdmlkZXIu
aAorICAgIHBhZ2UvRGVidWdPdmVybGF5UmVnaW9ucy5oCiAgICAgcGFnZS9EZWJ1Z1BhZ2VPdmVy
bGF5cy5oCiAgICAgcGFnZS9EZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuaAogICAgIHBhZ2UvRGV2
aWNlQ2xpZW50LmgKQEAgLTg0OCw2ICs4NTMsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1F
V09SS19IRUFERVJTCiAgICAgcGFnZS9Gb2N1c0RpcmVjdGlvbi5oCiAgICAgcGFnZS9GcmFtZS5o
CiAgICAgcGFnZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaAorICAgIHBhZ2UvRnJhbWVGbGF0
dGVuaW5nLmgKICAgICBwYWdlL0ZyYW1lSWRlbnRpZmllci5oCiAgICAgcGFnZS9GcmFtZVNuYXBz
aG90dGluZy5oCiAgICAgcGFnZS9GcmFtZVRyZWUuaApAQCAtODYwLDYgKzg2Niw3IEBAIHNldChX
ZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwYWdlL01lZGlhUHJvZHVjZXIu
aAogICAgIHBhZ2UvTWVtb3J5UmVsZWFzZS5oCiAgICAgcGFnZS9OYXZpZ2F0b3JJc0xvZ2dlZElu
LmgKKyAgICBwYWdlL1BERkltYWdlQ2FjaGluZ1BvbGljeS5oCiAgICAgcGFnZS9QYWdlLmgKICAg
ICBwYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKICAgICBwYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmgK
QEAgLTg5NiwxMiArOTAzLDE1IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURF
UlMKICAgICBwYWdlL1NvY2tldFByb3ZpZGVyLmgKICAgICBwYWdlL1NwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXIuaAogICAgIHBhZ2UvU3BlZWNoU3ludGhlc2lzQ2xpZW50LmgKKyAgICBwYWdlL1N0
b3JhZ2VCbG9ja2luZ1BvbGljeS5oCiAgICAgcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmgKKyAgICBw
YWdlL1RleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IuaAogICAgIHBhZ2UvVGV4
dEluZGljYXRvci5oCiAgICAgcGFnZS9Vc2VyQ29udGVudENvbnRyb2xsZXIuaAogICAgIHBhZ2Uv
VXNlckNvbnRlbnRQcm92aWRlci5oCiAgICAgcGFnZS9Vc2VyQ29udGVudFR5cGVzLmgKICAgICBw
YWdlL1VzZXJDb250ZW50VVJMUGF0dGVybi5oCisgICAgcGFnZS9Vc2VySW50ZXJmYWNlRGlyZWN0
aW9uUG9saWN5LmgKICAgICBwYWdlL1VzZXJNZXNzYWdlSGFuZGxlci5oCiAgICAgcGFnZS9Vc2Vy
TWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yLmgKICAgICBwYWdlL1VzZXJNZXNzYWdlSGFuZGxlcnNO
YW1lc3BhY2UuaApAQCAtMTM4MSwxMSArMTM5MSwxMyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZS
QU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vc3FsL1NRTGl0ZVRyYW5zYWN0aW9uLmgKIAog
ICAgIHBsYXRmb3JtL3RleHQvQmlkaUNvbnRleHQuaAorICAgIHBsYXRmb3JtL3RleHQvRm9udFJl
bmRlcmluZ01vZGUuaAogICAgIHBsYXRmb3JtL3RleHQvU3RyaW5nV2l0aERpcmVjdGlvbi5oCiAg
ICAgcGxhdGZvcm0vdGV4dC9UZXh0Qm91bmRhcmllcy5oCiAgICAgcGxhdGZvcm0vdGV4dC9UZXh0
Q2hlY2tlckNsaWVudC5oCiAgICAgcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tpbmcuaAogICAgIHBs
YXRmb3JtL3RleHQvVGV4dENvZGVjLmgKKyAgICBwbGF0Zm9ybS90ZXh0L1RleHREaXJlY3Rpb24u
aAogICAgIHBsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nLmgKICAgICBwbGF0Zm9ybS90ZXh0L1Rl
eHRFbmNvZGluZ1JlZ2lzdHJ5LmgKICAgICBwbGF0Zm9ybS90ZXh0L1RleHRGbGFncy5oCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MucmIKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzLnJiCShyZXZpc2lvbiAy
Njk4MTkpCisrKyBTb3VyY2UvV2ViQ29yZS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MucmIJKHdv
cmtpbmcgY29weSkKQEAgLTEzMiw3ICsxMzIsNyBAQCBjbGFzcyBTZXR0aW5nCiAgICAgICBuYW1l
CiAgICAgZWxzaWYgbmFtZS5zdGFydF93aXRoPygiQ1NTIiwgIlhTUyIsICJGVFAiLCAiRE9NIiwg
IkROUyIsICJQREYiLCAiSUNFIiwgIkhEUiIpCiAgICAgICBuYW1lWzAuLjJdLmRvd25jYXNlICsg
bmFtZVszLi5uYW1lLmxlbmd0aF0KLSAgICBlbHNpZiBuYW1lLnN0YXJ0X3dpdGg/KCJIVFRQIikK
KyAgICBlbHNpZiBuYW1lLnN0YXJ0X3dpdGg/KCJIVFRQIiwgIkhUTUwiKQogICAgICAgbmFtZVsw
Li4zXS5kb3duY2FzZSArIG5hbWVbNC4ubmFtZS5sZW5ndGhdCiAgICAgZWxzZQogICAgICAgbmFt
ZVswXS5kb3duY2FzZSArIG5hbWVbMS4ubmFtZS5sZW5ndGhdCkBAIC0xNzUsNyArMTc1LDkgQEAg
Y2xhc3MgU2V0dGluZwogICBlbmQKIAogICBkZWYgc2V0dGVyRnVuY3Rpb25OYW1lCi0gICAgaWYg
QG5hbWUuc3RhcnRfd2l0aD8oImNzcyIsICJ4c3MiLCAiZnRwIiwgImRvbSIsICJkbnMiLCAiaWNl
IiwgImhkciIpCisgICAgaWYgQG5hbWUuc3RhcnRfd2l0aD8oImh0bWwiKQorICAgICAgInNldCIg
KyBAbmFtZVswLi4zXS51cGNhc2UgKyBAbmFtZVs0Li5AbmFtZS5sZW5ndGhdCisgICAgZWxzaWYg
QG5hbWUuc3RhcnRfd2l0aD8oImNzcyIsICJ4c3MiLCAiZnRwIiwgImRvbSIsICJkbnMiLCAiaWNl
IiwgImhkciIpCiAgICAgICAic2V0IiArIEBuYW1lWzAuLjJdLnVwY2FzZSArIEBuYW1lWzMuLkBu
YW1lLmxlbmd0aF0KICAgICBlbHNlCiAgICAgICAic2V0IiArIEBuYW1lWzBdLnVwY2FzZSArIEBu
YW1lWzEuLkBuYW1lLmxlbmd0aF0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI2OTgxOSkKKysrIFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpA
QCAtMTM4MSw3ICsxMzgxLDcgQEAKIAkJNEUxOTU5MkEwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlh
UXVlcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRF
MTk1OTI0MEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNEUxOTU5MkMwQTM5REFDQzAwMjIwRkU1
IC8qIE1lZGlhUXVlcnlFdmFsdWF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDRFMTk1OTI2MEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5RXZh
bHVhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNEYxNTM0REUxMUI1MzJFQzAwMjFGRDg2IC8qIEVkaXRpbmdCZWhhdmlvci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEYxNTM0REQxMUI1MzJFQzAw
MjFGRDg2IC8qIEVkaXRpbmdCZWhhdmlvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07Ci0JCTRGMTUzNEUwMTFCNTMzMDIwMDIxRkQ4NiAvKiBFZGl0aW5n
QmVoYXZpb3JUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNEYxNTM0REYxMUI1MzMwMjAwMjFGRDg2IC8qIEVkaXRpbmdCZWhhdmlvclR5cGVzLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNEYxNTM0
RTAxMUI1MzMwMjAwMjFGRDg2IC8qIEVkaXRpbmdCZWhhdmlvclR5cGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGMTUzNERGMTFCNTMzMDIwMDIxRkQ4
NiAvKiBFZGl0aW5nQmVoYXZpb3JUeXBlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNEZBNjVBNkMxMTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFNw
YWNlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNEZBNjVBNkExMTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFNwYWNlRWxlbWVudC5oICovOyB9
OwogCQk1MDFCQUFBOTEzOTUwRTJDMDBGN0FDRUIgLyogV2luZFJ1bGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwMUJBQUE4MTM5NTBFMkMwMEY3QUNF
QiAvKiBXaW5kUnVsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTUwNEFBQ0NFMTgzNDQ1NTkwMEUzRDlCQyAvKiBJbnNwZWN0b3JOb2RlRmluZGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDRBQUND
QzE4MzQ0NTU5MDBFM0Q5QkMgLyogSW5zcGVjdG9yTm9kZUZpbmRlci5oICovOyB9OwpAQCAtMzkw
OCw2ICszOTA4LDE5IEBACiAJCUJDNDkxOEM3MEJGRUEwNTAwMDlENjMxNiAvKiBKU0hUTUxGcmFt
ZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDNDkxOEMxMEJGRUEwNTAwMDlENjMxNiAvKiBKU0hUTUxGcmFtZUVsZW1lbnQuaCAqLzsgfTsK
IAkJQkM0OTE4QzkwQkZFQTA1MDAwOUQ2MzE2IC8qIEpTSFRNTElGcmFtZUVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNDkxOEMzMEJGRUEw
NTAwMDlENjMxNiAvKiBKU0hUTUxJRnJhbWVFbGVtZW50LmggKi87IH07CiAJCUJDNDkxQjc5MEMw
MjNFRkQwMDlENjMxNiAvKiBKU0hUTUxNYXJxdWVlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0OTFCNzcwQzAyM0VGRDAwOUQ2MzE2IC8q
IEpTSFRNTE1hcnF1ZWVFbGVtZW50LmggKi87IH07CisJCUJDNEE1MzIzMjU2MDUyNzYwMDI4QzU5
MiAvKiBFZGl0YWJsZUxpbmtCZWhhdmlvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkM0QTUzMjEyNTYwNTI3MDAwMjhDNTkyIC8qIEVkaXRhYmxlTGlu
a0JlaGF2aW9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJQkM0QTUzMjUyNTYwNTU1RjAwMjhDNTkyIC8qIFRleHREaXJlY3Rpb25TdWJtZW51SW5j
bHVzaW9uQmVoYXZpb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDNEE1MzI0MjU2MDU1NTkwMDI4QzU5MiAvKiBUZXh0RGlyZWN0aW9uU3VibWVudUlu
Y2x1c2lvbkJlaGF2aW9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJQkM0QTUzMjcyNTYwNTVEMzAwMjhDNTkyIC8qIFVzZXJJbnRlcmZhY2VEaXJl
Y3Rpb25Qb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDNEE1MzI2MjU2MDU1RDMwMDI4QzU5MiAvKiBVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9s
aWN5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
QkM0QTUzMjkyNTYwNTYzQjAwMjhDNTkyIC8qIFBERkltYWdlQ2FjaGluZ1BvbGljeS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0QTUzMjgyNTYwNTYz
QjAwMjhDNTkyIC8qIFBERkltYWdlQ2FjaGluZ1BvbGljeS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUJDNEE1MzJCMjU2MDU2NkUwMDI4QzU5MiAv
KiBGcmFtZUZsYXR0ZW5pbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDNEE1MzJBMjU2MDU2NkUwMDI4QzU5MiAvKiBGcmFtZUZsYXR0ZW5pbmcuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlCQzRBNTMy
RDI1NjA1NkQ1MDAyOEM1OTIgLyogRGVidWdPdmVybGF5UmVnaW9ucy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0QTUzMkMyNTYwNTZENTAwMjhDNTky
IC8qIERlYnVnT3ZlcmxheVJlZ2lvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQlCQzRBNTMyRjI1NjA1N0NEMDAyOEM1OTIgLyogRm9udExvYWRU
aW1pbmdPdmVycmlkZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkM0QTUzMkUyNTYwNTdDRDAwMjhDNTkyIC8qIEZvbnRMb2FkVGltaW5nT3ZlcnJpZGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlCQzRB
NTMzMTI1NjA1OTAzMDAyOEM1OTIgLyogRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzRBNTMzMDI1NjA1OTAz
MDAyOEM1OTIgLyogRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQkM0QTUzMzMyNTYwNTk4MzAwMjhDNTky
IC8qIEhUTUxQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzRBNTMzMjI1NjA1OTgzMDAyOEM1OTIgLyogSFRN
TFBhcnNlclNjcmlwdGluZ0ZsYWdQb2xpY3kuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQlCQzRBNTMzNTI1NjA1QTU2MDAyOEM1OTIgLyogRGF0YURl
dGVjdG9yVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDNEE1MzM0MjU2MDVBNTYwMDI4QzU5MiAvKiBEYXRhRGV0ZWN0b3JUeXBlcy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUJDNEE1MzM3MjU2
MDVBRTEwMDI4QzU5MiAvKiBTdG9yYWdlQmxvY2tpbmdQb2xpY3kuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNEE1MzM2MjU2MDVBRTEwMDI4QzU5MiAv
KiBTdG9yYWdlQmxvY2tpbmdQb2xpY3kuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQlCQzRBNTMzOTI1NjA2Mzk4MDAyOEM1OTIgLyogRm9udFJlbmRl
cmluZ01vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDNEE1MzM4MjU2MDYzOTgwMDI4QzU5MiAvKiBGb250UmVuZGVyaW5nTW9kZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUJDNEE1MzNCMjU2MDY0
RTEwMDI4QzU5MiAvKiBUZXh0RGlyZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzRBNTMzQTI1NjA2NEUxMDAyOEM1OTIgLyogVGV4dERpcmVj
dGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUJDNTExNTZFMTJCMTc0OUMwMEM5Njc1NCAvKiBTY3JvbGxBbmltYXRvck1hYy5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNTExNTZEMTJCMTc0OUMw
MEM5Njc1NCAvKiBTY3JvbGxBbmltYXRvck1hYy5tbSAqLzsgfTsKIAkJQkM1M0M1RjUwREE1NkI5
MjAwMjFFQjVEIC8qIEdyYWRpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzUzQzVGNDBEQTU2QjkyMDAyMUVCNUQgLyogR3JhZGllbnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzUzQzY5MjBE
QTU5MTE0MDAyMUVCNUQgLyogQ1NTR3JhZGllbnRWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1M0M2OTEwREE1OTExNDAwMjFFQjVEIC8qIENT
U0dyYWRpZW50VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwpAQCAtODM0NCw3ICs4MzU3LDcgQEAKIAkJNEUxOTU5MjUwQTM5REFDQzAwMjIwRkU1
IC8qIE1lZGlhUXVlcnlFdmFsdWF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IE1lZGlhUXVlcnlFdmFsdWF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0RTE5NTkyNjBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFRdWVyeUV2YWx1YXRvci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFRdWVyeUV2YWx1YXRvci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0RjE1MzRERDExQjUzMkVDMDAyMUZEODYg
LyogRWRpdGluZ0JlaGF2aW9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVk
aXRpbmdCZWhhdmlvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0RjE1MzRERjEx
QjUzMzAyMDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9yVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRWRpdGluZ0JlaGF2aW9yVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNEYxNTM0REYxMUI1MzMwMjAwMjFGRDg2IC8qIEVkaXRpbmdCZWhhdmlv
clR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRWRpdGluZ0JlaGF2aW9y
VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0RkE2NUE2OTExMDhBQkVEMDAy
NjE1RTAgLyogTWF0aE1MU3BhY2VFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IE1hdGhNTFNwYWNlRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTRGQTY1QTZBMTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxTcGFjZUVsZW1lbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWF0aE1MU3BhY2VFbGVtZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGQUI0ODY0MTY0M0E2NkQwMEY3MEMwNyAv
KiBFbGVtZW50UmFyZURhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRWxlbWVudFJhcmVEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEz
ODA2LDYgKzEzODE5LDE5IEBACiAJCUJDNDkxQjRFMEMwMjNFMkQwMDlENjMxNiAvKiBIVE1MTWFy
cXVlZUVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxNYXJxdWVlRWxlbWVu
dC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNDkxQjc2MEMwMjNFRkQwMDlE
NjMxNiAvKiBKU0hUTUxNYXJxdWVlRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNIVE1MTWFycXVlZUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlCQzQ5MUI3NzBDMDIzRUZEMDA5RDYzMTYgLyogSlNIVE1MTWFycXVlZUVs
ZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSFRNTE1hcnF1ZWVF
bGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDNEE1MzIxMjU2MDUyNzAw
MDI4QzU5MiAvKiBFZGl0YWJsZUxpbmtCZWhhdmlvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFZGl0YWJs
ZUxpbmtCZWhhdmlvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzRBNTMyNDI1
NjA1NTU5MDAyOEM1OTIgLyogVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDNEE1MzI2MjU2MDU1RDMwMDI4QzU5MiAv
KiBVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJJbnRl
cmZhY2VEaXJlY3Rpb25Qb2xpY3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM0
QTUzMjgyNTYwNTYzQjAwMjhDNTkyIC8qIFBERkltYWdlQ2FjaGluZ1BvbGljeS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQREZJbWFnZUNhY2hpbmdQb2xpY3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQkM0QTUzMkEyNTYwNTY2RTAwMjhDNTkyIC8qIEZyYW1lRmxhdHRlbmluZy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBGcmFtZUZsYXR0ZW5pbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQkM0QTUzMkMyNTYwNTZENTAwMjhDNTkyIC8qIERlYnVnT3ZlcmxheVJlZ2lvbnMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRGVidWdPdmVybGF5UmVnaW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlCQzRBNTMyRTI1NjA1N0NEMDAyOEM1OTIgLyogRm9udExvYWRUaW1pbmdPdmVycmlk
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBGb250TG9hZFRpbWluZ092ZXJyaWRlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUJDNEE1MzMwMjU2MDU5MDMwMDI4QzU5MiAvKiBGb3JjZWRBY2Nl
c3NpYmlsaXR5VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDNEE1MzMyMjU2MDU5ODMwMDI4QzU5
MiAvKiBIVE1MUGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1M
UGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlCQzRBNTMzNDI1NjA1QTU2MDAyOEM1OTIgLyogRGF0YURldGVjdG9yVHlwZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRGF0YURldGVjdG9yVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQkM0QTUzMzYyNTYwNUFFMTAwMjhDNTkyIC8qIFN0b3JhZ2VCbG9ja2luZ1BvbGljeS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTdG9yYWdlQmxvY2tpbmdQb2xpY3kuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQkM0QTUzMzgyNTYwNjM5ODAwMjhDNTkyIC8qIEZvbnRSZW5kZXJpbmdNb2Rl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRSZW5kZXJpbmdNb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUJDNEE1MzNBMjU2MDY0RTEwMDI4QzU5MiAvKiBUZXh0RGlyZWN0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFRleHREaXJlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQkM1MTE1NkQxMkIxNzQ5QzAwQzk2NzU0IC8qIFNjcm9sbEFuaW1hdG9yTWFjLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2Nyb2xsQW5pbWF0b3JNYWMu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNTE1ODBBMEMwM0Q0MDQwMDhCQjBF
RSAvKiBKU0hUTUxEb2N1bWVudEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNIVE1MRG9jdW1lbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCQzUzQzVGNDBEQTU2QjkyMDAyMUVCNUQgLyogR3JhZGllbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhZGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE4ODYwLDYgKzE4ODg2LDcgQEAKIAkJCQkyOTgxQ0FBRjEzMTgyMkVDMDBE
MTJGMkEgLyogQVhPYmplY3RDYWNoZS5jcHAgKi8sCiAJCQkJMjlBODEyMUEwRkJCOUMxRDAwNTEw
MjkzIC8qIEFYT2JqZWN0Q2FjaGUuaCAqLywKIAkJCQk5MUM5RjJGODFBRTNCRTI0MDA5NUI2MUMg
LyogQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCAqLywKKwkJCQlCQzRBNTMzMDI1NjA1OTAzMDAy
OEM1OTIgLyogRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9
IGFjY2Vzc2liaWxpdHk7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjE3NjIsNiAr
MjE3ODksNyBAQAogCQkJCTk3NUNBMjg5MTMwMzY1RjgwMEU5OUFEOSAvKiBDcnlwdG8uaWRsICov
LAogCQkJCTFBQ0IyQjIxMUE1NzMzRjQwMDMzMzM5MiAvKiBEYXRhYmFzZVByb3ZpZGVyLmNwcCAq
LywKIAkJCQkxQUNCMkIyMjFBNTczM0Y0MDAzMzMzOTIgLyogRGF0YWJhc2VQcm92aWRlci5oICov
LAorCQkJCUJDNEE1MzJDMjU2MDU2RDUwMDI4QzU5MiAvKiBEZWJ1Z092ZXJsYXlSZWdpb25zLmgg
Ki8sCiAJCQkJMEY2QTEyQkIxQTAwOTIzNzAwQzZERTcyIC8qIERlYnVnUGFnZU92ZXJsYXlzLmNw
cCAqLywKIAkJCQkwRjZBMTJCQzFBMDA5MjM3MDBDNkRFNzIgLyogRGVidWdQYWdlT3ZlcmxheXMu
aCAqLywKIAkJCQk3Q0JEMTI5QzFGOThCNUZGMDAxMjdEMjkgLyogRGVwcmVjYXRlZEdsb2JhbFNl
dHRpbmdzLmNwcCAqLywKQEAgLTIxODE0LDYgKzIxODQyLDcgQEAKIAkJCQk2NUJGMDIyQTA5NzQ4
MTYzMDBDNDMxOTYgLyogRnJhbWUuaCAqLywKIAkJCQk5NzRBODYyMDE0QjdBREJCMDAzRkRDNzYg
LyogRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmNwcCAqLywKIAkJCQk5NzRBODYyMTE0QjdBREJC
MDAzRkRDNzYgLyogRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmggKi8sCisJCQkJQkM0QTUzMkEy
NTYwNTY2RTAwMjhDNTkyIC8qIEZyYW1lRmxhdHRlbmluZy5oICovLAogCQkJCTBGMTE3ODE2MjJF
M0M0N0UwMDhCRDU3MCAvKiBGcmFtZUlkZW50aWZpZXIuaCAqLywKIAkJCQlDNENENjI5ODE4Mzgz
NzY2MDA3RUJBRjEgLyogRnJhbWVTbmFwc2hvdHRpbmcuY3BwICovLAogCQkJCUM0Q0Q2Mjk5MTgz
ODM3NjYwMDdFQkFGMSAvKiBGcmFtZVNuYXBzaG90dGluZy5oICovLApAQCAtMjE4ODQsNiArMjE5
MTMsNyBAQAogCQkJCTJENUM5Q0ZFMTlDN0I1MkUwMEIzQzVDMSAvKiBQYWdlT3ZlcmxheUNvbnRy
b2xsZXIuaCAqLywKIAkJCQkzNzFFNjVDRDEzNjYxRUVEMDBCRUVEQjAgLyogUGFnZVNlcmlhbGl6
ZXIuY3BwICovLAogCQkJCTM3MUU2NUNCMTM2NjFFREMwMEJFRURCMCAvKiBQYWdlU2VyaWFsaXpl
ci5oICovLAorCQkJCUJDNEE1MzI4MjU2MDU2M0IwMDI4QzU5MiAvKiBQREZJbWFnZUNhY2hpbmdQ
b2xpY3kuaCAqLywKIAkJCQk3QzcyNDcxRTI1MTY3NTg4MDBDMzYzQ0QgLyogUGVyZm9ybWFuY2Ur
TmF2aWdhdGlvblRpbWluZy5pZGwgKi8sCiAJCQkJN0M3MjQ3MUMyNTE2NzRDRTAwQzM2M0NEIC8q
IFBlcmZvcm1hbmNlK1BlcmZvcm1hbmNlVGltZWxpbmUuaWRsICovLAogCQkJCTdDNzI0NzFEMjUx
Njc1MkMwMEMzNjNDRCAvKiBQZXJmb3JtYW5jZStSZXNvdXJjZVRpbWluZy5pZGwgKi8sCkBAIC0y
MjAwNyw4ICsyMjAzNywxMCBAQAogCQkJCTYyNkNERTBEMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0
aWFsTmF2aWdhdGlvbi5oICovLAogCQkJCTkzQTA0ODI2MjU0OTU1MDAwMDBBQzQ2MiAvKiBTcGVl
Y2hSZWNvZ25pdGlvblByb3ZpZGVyLmggKi8sCiAJCQkJQzE0OTM4MDUyMjM0MjcxOTAwMENENzA3
IC8qIFNwZWVjaFN5bnRoZXNpc0NsaWVudC5oICovLAorCQkJCUJDNEE1MzM2MjU2MDVBRTEwMDI4
QzU5MiAvKiBTdG9yYWdlQmxvY2tpbmdQb2xpY3kuaCAqLywKIAkJCQk2MkMxMjE3QTExQUI5RTc2
MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5jcHAgKi8sCiAJCQkJNjJDMTIxN0IxMUFCOUU3
NzAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIuaCAqLywKKwkJCQlCQzRBNTMyNDI1NjA1NTU5
MDAyOEM1OTIgLyogVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvci5oICovLAog
CQkJCTJENEY5NkYxMUExRUNDMjQwMDk4QkY4OCAvKiBUZXh0SW5kaWNhdG9yLmNwcCAqLywKIAkJ
CQkyRDRGOTZGMjFBMUVDQzI0MDA5OEJGODggLyogVGV4dEluZGljYXRvci5oICovLAogCQkJCUY0
RTE5NjVGMjFGMjZFNEUwMDI4NTA3OCAvKiBVbmRvSXRlbS5jcHAgKi8sCkBAIC0yMjAyNCw2ICsy
MjA1Niw3IEBACiAJCQkJMDAzRjFGRTkxMUU2QUI0MzAwODI1OEQ5IC8qIFVzZXJDb250ZW50VHlw
ZXMuaCAqLywKIAkJCQlCQ0FDRjNCQTEwNzI5MjFBMDBDMEM4QTMgLyogVXNlckNvbnRlbnRVUkxQ
YXR0ZXJuLmNwcCAqLywKIAkJCQlCQ0FDRjNCQjEwNzI5MjFBMDBDMEM4QTMgLyogVXNlckNvbnRl
bnRVUkxQYXR0ZXJuLmggKi8sCisJCQkJQkM0QTUzMjYyNTYwNTVEMzAwMjhDNTkyIC8qIFVzZXJJ
bnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3kuaCAqLywKIAkJCQk3QzNCNzk2RjE5MDg3NTdCMDBCNDdB
MkQgLyogVXNlck1lc3NhZ2VIYW5kbGVyLmNwcCAqLywKIAkJCQk3QzNCNzk3MDE5MDg3NTdCMDBC
NDdBMkQgLyogVXNlck1lc3NhZ2VIYW5kbGVyLmggKi8sCiAJCQkJN0M3M0ZCMEUxOTFFRjYwRTAw
N0RFMDYxIC8qIFVzZXJNZXNzYWdlSGFuZGxlci5pZGwgKi8sCkBAIC0yMjUyMiw2ICsyMjU1NSw3
IEBACiAJCQkJNUNDQzI3MDYyMkQ1M0I2ODAwOTY0RkEwIC8qIEF1dG9maWxsRWxlbWVudHMuaCAq
LywKIAkJCQlDNTIyN0RFRjFDM0M2REQ3MDBGNUVENTQgLyogRGF0YURldGVjdGlvbi5oICovLAog
CQkJCUM1MjI3REYwMUMzQzZERDcwMEY1RUQ1NCAvKiBEYXRhRGV0ZWN0aW9uLm1tICovLAorCQkJ
CUJDNEE1MzM0MjU2MDVBNTYwMDI4QzU5MiAvKiBEYXRhRGV0ZWN0b3JUeXBlcy5oICovLAogCQkJ
CTkzN0ZGM0Q2MUExMDEzMUIwMDhFQkEzMSAvKiBEaWN0aW9uYXJ5TG9va3VwLm1tICovLAogCQkJ
CTlCNTVFRUU4MUIzRTg4OTgwMDUzNDJCQyAvKiBFZGl0b3JDb2NvYS5tbSAqLywKIAkJCQlGNDJD
RUI1NDIxNDAzMUVFMDAyRENBNzIgLyogRm9udEF0dHJpYnV0ZUNoYW5nZXNDb2NvYS5tbSAqLywK
QEAgLTIyODI4LDYgKzIyODYyLDcgQEAKIAkJCQlDRUNBREZDNTE1Mzc3OEZGMDBFMzcwNjggLyog
RGljdGF0aW9uQ29tbWFuZC5oICovLAogCQkJCTkzODQzMEIyMjQ3NURFM0YwMDNGOTYxNyAvKiBE
aWN0YXRpb25Db250ZXh0LmggKi8sCiAJCQkJMkQ1NjQ2QUYxQjhGODQ5MzAwM0M0OTk0IC8qIERp
Y3Rpb25hcnlQb3B1cEluZm8uaCAqLywKKwkJCQlCQzRBNTMyMTI1NjA1MjcwMDAyOEM1OTIgLyog
RWRpdGFibGVMaW5rQmVoYXZpb3IuaCAqLywKIAkJCQlGNDlFOThFNDIxREVFNkMxMDA5QUU1NUUg
LyogRWRpdEFjdGlvbi5jcHAgKi8sCiAJCQkJOTMzMDlEOTMwOTlFNjQ5MTAwNTZFNTgxIC8qIEVk
aXRBY3Rpb24uaCAqLywKIAkJCQk5MzMwOUQ5NDA5OUU2NDkxMDA1NkU1ODEgLyogRWRpdENvbW1h
bmQuY3BwICovLApAQCAtMjI4MzUsNyArMjI4NzAsNyBAQAogCQkJCTkzMzA5RDk4MDk5RTY0OTEw
MDU2RTU4MSAvKiBFZGl0aW5nLmNwcCAqLywKIAkJCQk5MzMwOUQ5OTA5OUU2NDkxMDA1NkU1ODEg
LyogRWRpdGluZy5oICovLAogCQkJCTRGMTUzNEREMTFCNTMyRUMwMDIxRkQ4NiAvKiBFZGl0aW5n
QmVoYXZpb3IuaCAqLywKLQkJCQk0RjE1MzRERjExQjUzMzAyMDAyMUZEODYgLyogRWRpdGluZ0Jl
aGF2aW9yVHlwZXMuaCAqLywKKwkJCQk0RjE1MzRERjExQjUzMzAyMDAyMUZEODYgLyogRWRpdGlu
Z0JlaGF2aW9yVHlwZS5oICovLAogCQkJCTNBQzY0OEIxMTI5RTE0NjUwMEMzRUIyNSAvKiBFZGl0
aW5nQm91bmRhcnkuaCAqLywKIAkJCQk5QkFCNkM2QjEyNTUwNjMxMDAxNjI2RDQgLyogRWRpdGlu
Z1N0eWxlLmNwcCAqLywKIAkJCQk5QkFCNkM2QTEyNTUwNjMxMDAxNjI2RDQgLyogRWRpdGluZ1N0
eWxlLmggKi8sCkBAIC0yMzg3Nyw2ICsyMzkxMiw3IEBACiAJCQkJOTczRjQxODgxNjlCOTVFRjAw
MDZCRjYwIC8qIEhUTUxQYXJzZXJPcHRpb25zLmggKi8sCiAJCQkJOTc3QjM4NTcxMjI4ODNFOTAw
QjgxRkY4IC8qIEhUTUxQYXJzZXJTY2hlZHVsZXIuY3BwICovLAogCQkJCTk3N0IzODU4MTIyODgz
RTkwMEI4MUZGOCAvKiBIVE1MUGFyc2VyU2NoZWR1bGVyLmggKi8sCisJCQkJQkM0QTUzMzIyNTYw
NTk4MzAwMjhDNTkyIC8qIEhUTUxQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5LmggKi8sCiAJCQkJ
OTc3QjM4NTkxMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxQcmVsb2FkU2Nhbm5lci5jcHAgKi8sCiAJ
CQkJOTc3QjM4NUExMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxQcmVsb2FkU2Nhbm5lci5oICovLAog
CQkJCUE4RDIyM0ZCMTZCNTJFNEUwMDE1NzI4OCAvKiBIVE1MUmVzb3VyY2VQcmVsb2FkZXIuY3Bw
ICovLApAQCAtMjY1MzksNiArMjY1NzUsNyBAQAogCQkJCUNFQ0NGQzNBMTQxOTczRDUwMDJBMEFD
MSAvKiBEZWNvZGVFc2NhcGVTZXF1ZW5jZXMuaCAqLywKIAkJCQlERkM2MTBBMjI0RkIyQTdDMDA2
MjU0QzggLyogRW5jb2RpbmdUYWJsZXMuY3BwICovLAogCQkJCURGQzYxMEE0MjRGQjJBN0QwMDYy
NTRDOCAvKiBFbmNvZGluZ1RhYmxlcy5oICovLAorCQkJCUJDNEE1MzM4MjU2MDYzOTgwMDI4QzU5
MiAvKiBGb250UmVuZGVyaW5nTW9kZS5oICovLAogCQkJCTM3NUNEMjMxMTE5RDQzQzgwMEEyQTg1
OSAvKiBIeXBoZW5hdGlvbi5oICovLAogCQkJCTc2MzNBNzI1MTNEOEIzM0EwMDg1MDFCNiAvKiBM
b2NhbGVUb1NjcmlwdE1hcHBpbmcuY3BwICovLAogCQkJCTc2MzNBNzI0MTNEOEIzM0EwMDg1MDFC
NiAvKiBMb2NhbGVUb1NjcmlwdE1hcHBpbmcuaCAqLywKQEAgLTI2NTczLDYgKzI2NjEwLDcgQEAK
IAkJCQlCMkMzREExMjBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjVVRGMTYuaCAqLywKIAkJ
CQk5MzQzQ0I3RjEyRjI1RTUxMDAzM0M1RUUgLyogVGV4dENvZGVjVVRGOC5jcHAgKi8sCiAJCQkJ
OTM0M0NCODAxMkYyNUU1MTAwMzNDNUVFIC8qIFRleHRDb2RlY1VURjguaCAqLywKKwkJCQlCQzRB
NTMzQTI1NjA2NEUxMDAyOEM1OTIgLyogVGV4dERpcmVjdGlvbi5oICovLAogCQkJCUIyQzNEQTE2
MEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0RW5jb2RpbmcuY3BwICovLAogCQkJCUIyQzNEQTE3MEQw
MDZDMUQwMEVGNkYyNiAvKiBUZXh0RW5jb2RpbmcuaCAqLywKIAkJCQlDMTA1REE2MzBGM0FBNkI4
MDAxREQ0NEYgLyogVGV4dEVuY29kaW5nRGV0ZWN0b3IuaCAqLywKQEAgLTI5MjA5LDYgKzI5MjQ3
LDcgQEAKIAkJCQkxQzI0RUVBMzFDNzI5Q0U0MDA4MEY4RkMgLyogRm9udEZhY2VTZXQuaCAqLywK
IAkJCQkxQzI0RUVBMTFDNzI5QjMyMDA4MEY4RkMgLyogRm9udEZhY2VTZXQuaWRsICovLAogCQkJ
CTdDM0E4QUJDMjUwOUEyNTYwMDhDNDc3RiAvKiBGb250RmFjZVNvdXJjZS5pZGwgKi8sCisJCQkJ
QkM0QTUzMkUyNTYwNTdDRDAwMjhDNTkyIC8qIEZvbnRMb2FkVGltaW5nT3ZlcnJpZGUuaCAqLywK
IAkJCQlDMkFCMEIwMzFFNkRFOTJDMDAxMzQ4QzUgLyogRm9udFNlbGVjdGlvblZhbHVlSW5saW5l
cy5oICovLAogCQkJCTFDMzI0OTEwMUM2RDZBM0IwMDdFREIzMiAvKiBGb250VmFyaWFudEJ1aWxk
ZXIuY3BwICovLAogCQkJCUMyMDE1QzA5MUJFNkZFMkMwMDgyMjM4OSAvKiBGb250VmFyaWFudEJ1
aWxkZXIuaCAqLywKQEAgLTMxNDQ5LDYgKzMxNDg4LDcgQEAKIAkJCQlCRTIzNDgwRDE4QTk4NzE0
MDBFNEI2RTggLyogRGF0YUN1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzUyMjdERjExQzNDNkRG
MTAwRjVFRDU0IC8qIERhdGFEZXRlY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTdDNzk0MUU1
MUM1NkMyOTMwMEE0QzU4RSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlCQzRBNTMzNTI1NjA1QTU2MDAyOEM1OTIgLyogRGF0YURldGVjdG9yVHlwZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCUU1OEI0NUJBMjBBRDA3REQwMDk5MTAyNSAvKiBEYXRhTGlz
dEJ1dHRvbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUU1MTc2NzAzMjBCODhDMTQwMEQ0
MTE2NyAvKiBEYXRhTGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRTUyQ0Y1NEYyMEEzNUEyODAwREFEQTI3IC8qIERhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5o
IGluIEhlYWRlcnMgKi8sCkBAIC0zMTQ3MSw2ICszMTUxMSw3IEBACiAJCQkJRjU1QjNEQkExMjUx
RjEyRDAwM0VGMjY5IC8qIERhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUU1RjA2QUVCMjRENDlCRjcwMEJCQzRGOCAvKiBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUU1RjA2QUVGMjRENEE2MzcwMEJCQzRGOCAvKiBEYXRl
VGltZVN5bWJvbGljRmllbGRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzRBNTMyRDI1
NjA1NkQ1MDAyOEM1OTIgLyogRGVidWdPdmVybGF5UmVnaW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEY2QTEyQkUxQTAwOTIzNzAwQzZERTcyIC8qIERlYnVnUGFnZU92ZXJsYXlzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0NUZFQTVEMDE1NkRERThDMDA2NTQxMDEgLyogRGVjaW1hbC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNzE1QUQ3MjAyMDUwNTEzMjAwRDU5MkRDIC8qIERlY2xhcmF0aXZlQW5p
bWF0aW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTMxNjUxLDExICszMTY5MiwxMiBAQAogCQkJCUZE
NTM3MzU3MTM3QjY1M0IwMDAwOERDRSAvKiBEeW5hbWljc0NvbXByZXNzb3JLZXJuZWwuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUZENkVEMkM0MTM2QjhFNDIwMDNDRjA3MiAvKiBEeW5hbWljc0NvbXBy
ZXNzb3JOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzdDMEI3NjI0REIzODUwMDA1RDU5NTkg
LyogRHluYW1pY3NDb21wcmVzc29yT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM0QTUz
MjMyNTYwNTI3NjAwMjhDNTkyIC8qIEVkaXRhYmxlTGlua0JlaGF2aW9yLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5MzMwOURFMjA5OUU2NDkyMDA1NkU1ODEgLyogRWRpdEFjdGlvbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTMzMDlERTQwOTlFNjQ5MjAwNTZFNTgxIC8qIEVkaXRDb21tYW5kLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5MzMwOURFODA5OUU2NDkyMDA1NkU1ODEgLyogRWRpdGluZy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNEYxNTM0REUxMUI1MzJFQzAwMjFGRDg2IC8qIEVkaXRpbmdCZWhh
dmlvci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNEYxNTM0RTAxMUI1MzMwMjAwMjFGRDg2IC8qIEVk
aXRpbmdCZWhhdmlvclR5cGVzLmggaW4gSGVhZGVycyAqLywKKwkJCQk0RjE1MzRFMDExQjUzMzAy
MDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9yVHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJM0FD
NjQ4QjIxMjlFMTQ2NTAwQzNFQjI1IC8qIEVkaXRpbmdCb3VuZGFyeS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOUJBQjZDNkMxMjU1MDYzMTAwMTYyNkQ0IC8qIEVkaXRpbmdTdHlsZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNEIzMDQzQ0QwQUUwMzczQjAwQTgyNjQ3IC8qIEVkaXRvci5oIGluIEhlYWRl
cnMgKi8sCkBAIC0zMTgyNiwxNSArMzE4NjgsMTggQEAKIAkJCQkxQzY2MjYxMTFDNkU3Q0E2MDBB
QjUyN0MgLyogRm9udEZhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTFDMjRFRUE1MUM3MjlDRTQw
MDgwRjhGQyAvKiBGb250RmFjZVNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUMxMkFDMkIxRUU3
NzhBRTAwNzlFMEEwIC8qIEZvbnRGYW1pbHlTcGVjaWZpY2F0aW9uQ29yZVRleHQuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUJDNEE1MzJGMjU2MDU3Q0QwMDI4QzU5MiAvKiBGb250TG9hZFRpbWluZ092
ZXJyaWRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODQ1NjgwODEyQjkwREE2MDA5NjBBOUYgLyog
Rm9udE1ldHJpY3MuaCBpbiBIZWFkZXJzICovLAogCQkJCUI1MzIwRDZCMTIyQTI0RTkwMDJEMTQ0
MCAvKiBGb250UGxhdGZvcm1EYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQkzNzFGNEZGQzBEMjVF
N0YzMDBFQ0UwRDUgLyogRm9udFJhbmdlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM0QTUzMzky
NTYwNjM5ODAwMjhDNTkyIC8qIEZvbnRSZW5kZXJpbmdNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDMkFCMEFGNzFFNkIzQzZDMDAxMzQ4QzUgLyogRm9udFNlbGVjdGlvbkFsZ29yaXRobS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBNkIwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnRTZWxlY3Rv
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQxOTA0MUYxQ0M2NDg2QjAwQzM1RjVEIC8qIEZvbnRT
ZWxlY3RvckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjQ4RDJBNkMyMTU2MjNCNDAwQzY3
NTJCIC8qIEZvbnRTaGFkb3cuaCBpbiBIZWFkZXJzICovLAogCQkJCTRBNkU5RkM4MTNDMTdENTcw
MDQ2QTdGOCAvKiBGb250VGFnZ2VkU2V0dGluZ3MuaCBpbiBIZWFkZXJzICovLAogCQkJCUMyMDE1
QzBBMUJFNkZFQjIwMDgyMjM4OSAvKiBGb250VmFyaWFudEJ1aWxkZXIuaCBpbiBIZWFkZXJzICov
LAorCQkJCUJDNEE1MzMxMjU2MDU5MDMwMDI4QzU5MiAvKiBGb3JjZWRBY2Nlc3NpYmlsaXR5VmFs
dWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTRBMERBMkZGMTI5QjI0MTkwMEFCNjFFMSAvKiBGb3Jt
QXNzb2NpYXRlZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUQwNUNFRDJBMEE0MEJCMkMw
MEM1QUYzOCAvKiBGb3JtYXRCbG9ja0NvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDRTZD
QkZCMTg3RjM3MDcwMEQ0NkJGNSAvKiBGb3JtYXRDb252ZXJ0ZXIuaCBpbiBIZWFkZXJzICovLApA
QCAtMzE4NTIsNiArMzE4OTcsNyBAQAogCQkJCUE4NTMxMjNEMTFEMDQ3MUIwMEQ0RDA3NyAvKiBG
cmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTY1QkYwMjJG
MDk3NDgxNjMwMEM0MzE5NiAvKiBGcmFtZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc0QTg2MjMx
NEI3QURCQjAwM0ZEQzc2IC8qIEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJQkM0QTUzMkIyNTYwNTY2RTAwMjhDNTkyIC8qIEZyYW1lRmxhdHRlbmluZy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEYxMTc4MTgyMkUzQzQ3RjAwOEJENTcwIC8qIEZyYW1lSWRlbnRp
Zmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2RDM3M0MwQURCQTVERTAwQTQ1NTREIC8qIEZy
YW1lTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTZEMzczRTBBREJBNURFMDBBNDU1NEQg
LyogRnJhbWVMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMzIwNTMsNiArMzIwOTks
NyBAQAogCQkJCTkzRTJBMzA3MTIzRTlEQzAwMDlGRTEyQSAvKiBIVE1MUGFyc2VySWRpb21zLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5NzNGNDE4QTE2OUI5NUZGMDAwNkJGNjAgLyogSFRNTFBhcnNl
ck9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3N0IzODcxMTIyODgzRTkwMEI4MUZGOCAv
KiBIVE1MUGFyc2VyU2NoZWR1bGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzRBNTMzMzI1NjA1
OTgzMDAyOEM1OTIgLyogSFRNTFBhcnNlclNjcmlwdGluZ0ZsYWdQb2xpY3kuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDQzBFODc2MUJGRTcwRTkwMDhGN0Y1MCAvKiBIVE1MUGljdHVyZUVsZW1lbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE4NzFENDU2MEExMjdDQkMwMEIxMkE2OCAvKiBIVE1MUGx1
Z0luRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDQxNTI5MkUwRTFBRThBMDAwQzRBMkQw
IC8qIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMzM2NzAsNiAr
MzM3MTcsNyBAQAogCQkJCUExREZENTI2MjMzNDU5NDgwMDQyRkNEQiAvKiBQYXltZW50U3VtbWFy
eUl0ZW1zLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTY3N0RGRDIxM0UwMDY2MDBBMDhDMzQgLyog
UGF5bWVudFZhbGlkYXRpb25FcnJvcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyNzUzNTY1MEIw
NTM4MTQwMDJDRTY0RiAvKiBQREZEb2N1bWVudEltYWdlLmggaW4gSGVhZGVycyAqLywKKwkJCQlC
QzRBNTMyOTI1NjA1NjNCMDAyOEM1OTIgLyogUERGSW1hZ2VDYWNoaW5nUG9saWN5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1RTJDNDM1MTFCQ0VFMkY2MDAwMUUyQkMgLyogUGVlckNvbm5lY3Rpb25C
YWNrZW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk1RUJCODkzOTFDNzdDMzk5MDBDNjVENDEgLyog
UGVlck1lZGlhRGVzY3JpcHRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCThBN0NDOTZCMTIwNzZE
NzMwMDFENDU4OCAvKiBQZW5kaW5nU2NyaXB0LmggaW4gSGVhZGVycyAqLywKQEAgLTM0MzcxLDYg
KzM0NDE5LDcgQEAKIAkJCQlFN0ZCRTdDMzI0RUIyRkI2MDBBMThFNjIgLyogU3RlcmVvUGFubmVy
T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFDMkQ4NDUxNzE3MzRBMTAwNjUyRkMwIC8q
IFN0b3JhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQkUzN0UwMERBRUUwMEUwMDEwODVGQyAv
KiBTdG9yYWdlQXJlYS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM0QTUzMzcyNTYwNUFFMTAwMjhD
NTkyIC8qIFN0b3JhZ2VCbG9ja2luZ1BvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFFMEJB
QkIwREE1NTQ3MTAwQTlFNDE3IC8qIFN0b3JhZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QzVFQkREODQxMDVFRERFQzAwNTY4MTZGIC8qIFN0b3JhZ2VFdmVudERpc3BhdGNoZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUxRTBCQjM4MERBNUFDQjYwMEE5RTQxNyAvKiBTdG9yYWdlTWFwLmgg
aW4gSGVhZGVycyAqLywKQEAgLTM0Njg3LDYgKzM0NzM2LDggQEAKIAkJCQkxNDJCOTdDQTEzMTM4
OTQzMDA4QkVGNEIgLyogVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1ODJERTMyNTFDMzBDODU0MDBCRTAyQTggLyogVGV4dERlY29yYXRpb25QYWludGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQzczQTcxNTIxODU3NTg3MDA0Q0NFQTUgLyogVGV4dERlY29y
YXRpb25UaGlja25lc3MuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDNEE1MzNCMjU2MDY0RTEwMDI4
QzU5MiAvKiBUZXh0RGlyZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzRBNTMyNTI1NjA1
NTVGMDAyOEM1OTIgLyogVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTdCQzg0QjQxMjM3MTE4MDAwMEM2MTYxIC8qIFRleHREb2N1bWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdCQzg0ODQxMjM2RkQ5MzAwMEM2MTYxIC8qIFRleHRE
b2N1bWVudFBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBNDcwRDAwNkMxRDAwRUY2
RjI2IC8qIFRleHRFbmNvZGluZy5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDgxNCw2ICszNDg2NSw3
IEBACiAJCQkJRjMyQkRDRDkyMzYzQUFDQTAwNzNCNkFFIC8qIFVzZXJHZXN0dXJlRW11bGF0aW9u
U2NvcGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTI1NDJGNERCMTE2NkMyNUEwMEU4OUE4NiAvKiBV
c2VyR2VzdHVyZUluZGljYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTkyMDM5ODMxOEI5NUJD
NjAwQjM5QUY5IC8qIFVzZXJJbnB1dEJyaWRnZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM0QTUz
MjcyNTYwNTVEMzAwMjhDNTkyIC8qIFVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3kuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTcxQzkxNjA4MUQxNDgzQTMwMEFDQTQ3RCAvKiBVc2VySW50ZXJmYWNl
TGF5b3V0RGlyZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzhFMDkyRTE3RDE0RDFDMDA0
MjBBQTEgLyogVXNlck1lZGlhQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzhFMDkyRjE3
RDE0RDFDMDA0MjBBQTEgLyogVXNlck1lZGlhQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0ZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvRm9yY2VkQWNj
ZXNzaWJpbGl0eVZhbHVlLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9Gb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworZW51bSBjbGFzcyBGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUgOiB1aW50OF90IHsKKyAg
ICBTeXN0ZW0sCisgICAgT24sCisgICAgT2ZmCit9OworCit9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTRm9udEZhY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NGb250RmFjZS5jcHAJKHJldmlzaW9uIDI2OTgxOSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NGb250RmFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1OSw5ICs0NTksOSBAQCBBbGxvd1Vz
ZXJJbnN0YWxsZWRGb250cyBDU1NGb250RmFjZTo6YWxsCiAgICAgcmV0dXJuIEFsbG93VXNlcklu
c3RhbGxlZEZvbnRzOjpZZXM7CiB9CiAKLXN0YXRpYyBTZXR0aW5nczo6Rm9udExvYWRUaW1pbmdP
dmVycmlkZSBmb250TG9hZFRpbWluZ092ZXJyaWRlKENTU0ZvbnRTZWxlY3RvciogZm9udFNlbGVj
dG9yKQorc3RhdGljIEZvbnRMb2FkVGltaW5nT3ZlcnJpZGUgZm9udExvYWRUaW1pbmdPdmVycmlk
ZShDU1NGb250U2VsZWN0b3IqIGZvbnRTZWxlY3RvcikKIHsKLSAgICBhdXRvIG92ZXJyaWRlVmFs
dWUgPSBTZXR0aW5nczo6Rm9udExvYWRUaW1pbmdPdmVycmlkZTo6Tm9uZTsKKyAgICBhdXRvIG92
ZXJyaWRlVmFsdWUgPSBGb250TG9hZFRpbWluZ092ZXJyaWRlOjpOb25lOwogICAgIGlmIChmb250
U2VsZWN0b3IgJiYgZm9udFNlbGVjdG9yLT5kb2N1bWVudCgpKQogICAgICAgICBvdmVycmlkZVZh
bHVlID0gZm9udFNlbGVjdG9yLT5kb2N1bWVudCgpLT5zZXR0aW5ncygpLmZvbnRMb2FkVGltaW5n
T3ZlcnJpZGUoKTsKICAgICByZXR1cm4gb3ZlcnJpZGVWYWx1ZTsKQEAgLTQ3MCw3ICs0NzAsNyBA
QCBzdGF0aWMgU2V0dGluZ3M6OkZvbnRMb2FkVGltaW5nT3ZlcnJpZGUgCiBhdXRvIENTU0ZvbnRG
YWNlOjpmb250TG9hZFRpbWluZygpIGNvbnN0IC0+IEZvbnRMb2FkVGltaW5nCiB7CiAgICAgc3dp
dGNoIChmb250TG9hZFRpbWluZ092ZXJyaWRlKG1fZm9udFNlbGVjdG9yLmdldCgpKSkgewotICAg
IGNhc2UgU2V0dGluZ3M6OkZvbnRMb2FkVGltaW5nT3ZlcnJpZGU6Ok5vbmU6CisgICAgY2FzZSBG
b250TG9hZFRpbWluZ092ZXJyaWRlOjpOb25lOgogICAgICAgICBzd2l0Y2ggKG1fbG9hZGluZ0Jl
aGF2aW9yKSB7CiAgICAgICAgIGNhc2UgRm9udExvYWRpbmdCZWhhdmlvcjo6QXV0bzoKICAgICAg
ICAgY2FzZSBGb250TG9hZGluZ0JlaGF2aW9yOjpCbG9jazoKQEAgLTQ4MywxMSArNDgzLDExIEBA
IGF1dG8gQ1NTRm9udEZhY2U6OmZvbnRMb2FkVGltaW5nKCkgY29uc3QKICAgICAgICAgICAgIHJl
dHVybiB7IDAuMV9zLCAwX3MgfTsKICAgICAgICAgfQogICAgICAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOwotICAgIGNhc2UgU2V0dGluZ3M6OkZvbnRMb2FkVGltaW5nT3ZlcnJpZGU6
OkJsb2NrOgorICAgIGNhc2UgRm9udExvYWRUaW1pbmdPdmVycmlkZTo6QmxvY2s6CiAgICAgICAg
IHJldHVybiB7IFNlY29uZHM6OmluZmluaXR5KCksIDBfcyB9OwotICAgIGNhc2UgU2V0dGluZ3M6
OkZvbnRMb2FkVGltaW5nT3ZlcnJpZGU6OlN3YXA6CisgICAgY2FzZSBGb250TG9hZFRpbWluZ092
ZXJyaWRlOjpTd2FwOgogICAgICAgICByZXR1cm4geyAwX3MsIFNlY29uZHM6OmluZmluaXR5KCkg
fTsKLSAgICBjYXNlIFNldHRpbmdzOjpGb250TG9hZFRpbWluZ092ZXJyaWRlOjpGYWlsdXJlOgor
ICAgIGNhc2UgRm9udExvYWRUaW1pbmdPdmVycmlkZTo6RmFpbHVyZToKICAgICAgICAgcmV0dXJu
IHsgMF9zLCAwX3MgfTsKICAgICB9CiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZFRpbWluZ092ZXJyaWRlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRMb2FkVGltaW5nT3ZlcnJpZGUuaAkobm9u
ZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRUaW1pbmdPdmVycmlkZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIEZvbnRMb2FkVGltaW5nT3Zl
cnJpZGUgOiB1aW50OF90IHsKKyAgICBOb25lLAorICAgIEJsb2NrLAorICAgIFN3YXAsCisgICAg
RmFpbHVyZQorfTsKKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFs
dWF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZh
bHVhdG9yLmNwcAkocmV2aXNpb24gMjY5ODE5KQorKysgU291cmNlL1dlYkNvcmUvY3NzL01lZGlh
UXVlcnlFdmFsdWF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMTUsOSArMzE1LDkgQEAgc3Rh
dGljIGJvb2wgbW9ub2Nocm9tZUV2YWx1YXRlKENTU1ZhbHVlKgogewogICAgIGJvb2wgaXNNb25v
Y2hyb21lOwogCi0gICAgaWYgKGZyYW1lLnNldHRpbmdzKCkuZm9yY2VkRGlzcGxheUlzTW9ub2No
cm9tZUFjY2Vzc2liaWxpdHlWYWx1ZSgpID09IFNldHRpbmdzOjpGb3JjZWRBY2Nlc3NpYmlsaXR5
VmFsdWU6Ok9uKQorICAgIGlmIChmcmFtZS5zZXR0aW5ncygpLmZvcmNlZERpc3BsYXlJc01vbm9j
aHJvbWVBY2Nlc3NpYmlsaXR5VmFsdWUoKSA9PSBGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWU6Ok9u
KQogICAgICAgICBpc01vbm9jaHJvbWUgPSB0cnVlOwotICAgIGVsc2UgaWYgKGZyYW1lLnNldHRp
bmdzKCkuZm9yY2VkRGlzcGxheUlzTW9ub2Nocm9tZUFjY2Vzc2liaWxpdHlWYWx1ZSgpID09IFNl
dHRpbmdzOjpGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWU6Ok9mZikKKyAgICBlbHNlIGlmIChmcmFt
ZS5zZXR0aW5ncygpLmZvcmNlZERpc3BsYXlJc01vbm9jaHJvbWVBY2Nlc3NpYmlsaXR5VmFsdWUo
KSA9PSBGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWU6Ok9mZikKICAgICAgICAgaXNNb25vY2hyb21l
ID0gZmFsc2U7CiAgICAgZWxzZQogICAgICAgICBpc01vbm9jaHJvbWUgPSBzY3JlZW5Jc01vbm9j
aHJvbWUoZnJhbWUubWFpbkZyYW1lKCkudmlldygpKTsKQEAgLTMzMSw5ICszMzEsOSBAQCBzdGF0
aWMgYm9vbCBpbnZlcnRlZENvbG9yc0V2YWx1YXRlKENTU1ZhCiB7CiAgICAgYm9vbCBpc0ludmVy
dGVkOwogCi0gICAgaWYgKGZyYW1lLnNldHRpbmdzKCkuZm9yY2VkQ29sb3JzQXJlSW52ZXJ0ZWRB
Y2Nlc3NpYmlsaXR5VmFsdWUoKSA9PSBTZXR0aW5nczo6Rm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVl
OjpPbikKKyAgICBpZiAoZnJhbWUuc2V0dGluZ3MoKS5mb3JjZWRDb2xvcnNBcmVJbnZlcnRlZEFj
Y2Vzc2liaWxpdHlWYWx1ZSgpID09IEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZTo6T24pCiAgICAg
ICAgIGlzSW52ZXJ0ZWQgPSB0cnVlOwotICAgIGVsc2UgaWYgKGZyYW1lLnNldHRpbmdzKCkuZm9y
Y2VkQ29sb3JzQXJlSW52ZXJ0ZWRBY2Nlc3NpYmlsaXR5VmFsdWUoKSA9PSBTZXR0aW5nczo6Rm9y
Y2VkQWNjZXNzaWJpbGl0eVZhbHVlOjpPZmYpCisgICAgZWxzZSBpZiAoZnJhbWUuc2V0dGluZ3Mo
KS5mb3JjZWRDb2xvcnNBcmVJbnZlcnRlZEFjY2Vzc2liaWxpdHlWYWx1ZSgpID09IEZvcmNlZEFj
Y2Vzc2liaWxpdHlWYWx1ZTo6T2ZmKQogICAgICAgICBpc0ludmVydGVkID0gZmFsc2U7CiAgICAg
ZWxzZQogICAgICAgICBpc0ludmVydGVkID0gc2NyZWVuSGFzSW52ZXJ0ZWRDb2xvcnMoKTsKQEAg
LTQ1OSw5ICs0NTksOSBAQCBzdGF0aWMgYm9vbCBkeW5hbWljUmFuZ2VFdmFsdWF0ZShDU1NWYWx1
CiAKICAgICBib29sIHN1cHBvcnRzSGlnaER5bmFtaWNSYW5nZTsKIAotICAgIGlmIChmcmFtZS5z
ZXR0aW5ncygpLmZvcmNlZFN1cHBvcnRzSGlnaER5bmFtaWNSYW5nZVZhbHVlKCkgPT0gU2V0dGlu
Z3M6OkZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZTo6T24pCisgICAgaWYgKGZyYW1lLnNldHRpbmdz
KCkuZm9yY2VkU3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlVmFsdWUoKSA9PSBGb3JjZWRBY2Nlc3Np
YmlsaXR5VmFsdWU6Ok9uKQogICAgICAgICBzdXBwb3J0c0hpZ2hEeW5hbWljUmFuZ2UgPSB0cnVl
OwotICAgIGVsc2UgaWYgKGZyYW1lLnNldHRpbmdzKCkuZm9yY2VkU3VwcG9ydHNIaWdoRHluYW1p
Y1JhbmdlVmFsdWUoKSA9PSBTZXR0aW5nczo6Rm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlOjpPZmYp
CisgICAgZWxzZSBpZiAoZnJhbWUuc2V0dGluZ3MoKS5mb3JjZWRTdXBwb3J0c0hpZ2hEeW5hbWlj
UmFuZ2VWYWx1ZSgpID09IEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZTo6T2ZmKQogICAgICAgICBz
dXBwb3J0c0hpZ2hEeW5hbWljUmFuZ2UgPSBmYWxzZTsKICAgICBlbHNlCiAgICAgICAgIHN1cHBv
cnRzSGlnaER5bmFtaWNSYW5nZSA9IHNjcmVlblN1cHBvcnRzSGlnaER5bmFtaWNSYW5nZShmcmFt
ZS5tYWluRnJhbWUoKS52aWV3KCkpOwpAQCAtODI1LDEyICs4MjUsMTIgQEAgc3RhdGljIGJvb2wg
cHJlZmVyc1JlZHVjZWRNb3Rpb25FdmFsdWF0ZQogICAgIGJvb2wgdXNlclByZWZlcnNSZWR1Y2Vk
TW90aW9uID0gZmFsc2U7CiAKICAgICBzd2l0Y2ggKGZyYW1lLnNldHRpbmdzKCkuZm9yY2VkUHJl
ZmVyc1JlZHVjZWRNb3Rpb25BY2Nlc3NpYmlsaXR5VmFsdWUoKSkgewotICAgIGNhc2UgU2V0dGlu
Z3M6OkZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZTo6T246CisgICAgY2FzZSBGb3JjZWRBY2Nlc3Np
YmlsaXR5VmFsdWU6Ok9uOgogICAgICAgICB1c2VyUHJlZmVyc1JlZHVjZWRNb3Rpb24gPSB0cnVl
OwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFNldHRpbmdzOjpGb3JjZWRBY2Nlc3NpYmlsaXR5
VmFsdWU6Ok9mZjoKKyAgICBjYXNlIEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZTo6T2ZmOgogICAg
ICAgICBicmVhazsKLSAgICBjYXNlIFNldHRpbmdzOjpGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWU6
OlN5c3RlbToKKyAgICBjYXNlIEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZTo6U3lzdGVtOgogI2lm
IFVTRShORVdfVEhFTUUpIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgICAgIHVzZXJQcmVm
ZXJzUmVkdWNlZE1vdGlvbiA9IFRoZW1lOjpzaW5nbGV0b24oKS51c2VyUHJlZmVyc1JlZHVjZWRN
b3Rpb24oKTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCShyZXZpc2lvbiAy
Njk4MTkpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC03NTA4LDcgKzc1MDgsNyBAQCB2b2lkIERvY3VtZW50OjphcHBseVF1aWNrTG9va1NhbmRi
b3goKQogICAgIEFTU0VSVChyZXNwb25zZVVSTC5wcm90b2NvbElzKFFMUHJldmlld1Byb3RvY29s
KSk7CiAKICAgICBhdXRvIHNlY3VyaXR5T3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZU5v
bkxvY2FsV2l0aEFsbG93ZWRGaWxlUGF0aChyZXNwb25zZVVSTCwgZG9jdW1lbnRVUkwuZmlsZVN5
c3RlbVBhdGgoKSk7Ci0gICAgc2VjdXJpdHlPcmlnaW4tPnNldFN0b3JhZ2VCbG9ja2luZ1BvbGlj
eShTZWN1cml0eU9yaWdpbjo6QmxvY2tBbGxTdG9yYWdlKTsKKyAgICBzZWN1cml0eU9yaWdpbi0+
c2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KFN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QmxvY2tBbGwp
OwogICAgIHNldFNlY3VyaXR5T3JpZ2luUG9saWN5KFNlY3VyaXR5T3JpZ2luUG9saWN5OjpjcmVh
dGUoV1RGTW92ZShzZWN1cml0eU9yaWdpbikpKTsKIAogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxTdHJpbmc+IHF1aWNrTG9va0NTUCA9IG1ha2VTdHJpbmcoImRlZmF1bHQtc3JjICIsIFFMUHJl
dmlld1Byb3RvY29sLCAiOiAndW5zYWZlLWlubGluZSc7IGJhc2UtdXJpICdub25lJzsgc2FuZGJv
eCBhbGxvdy1zYW1lLW9yaWdpbiBhbGxvdy1zY3JpcHRzIik7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRhYmxlTGlua0JlaGF2aW9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0YWJsZUxpbmtCZWhhdmlvci5oCShub25leGlzdGVudCkKKysrIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGFibGVMaW5rQmVoYXZpb3IuaAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBFZGl0YWJsZUxpbmtCZWhhdmlvciA6IHVpbnQ4X3Qg
eworICAgIERlZmF1bHQsCisgICAgQWx3YXlzTGl2ZSwKKyAgICBPbmx5TGl2ZVdpdGhTaGlmdEtl
eSwKKyAgICBMaXZlV2hlbk5vdEZvY3VzZWQsCisgICAgTmV2ZXJMaXZlCit9OworCit9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdCZWhhdmlvci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yLmgJKHJldmlzaW9uIDI2OTgx
OSkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTIwLDEyICsyMCwxMSBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkVk
aXRpbmdCZWhhdmlvclR5cGVzLmgiCisjaW5jbHVkZSAiRWRpdGluZ0JlaGF2aW9yVHlwZS5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEVkaXRpbmdCZWhhdmlvciB7Ci0KIHB1Ymxp
YzoKICAgICBleHBsaWNpdCBFZGl0aW5nQmVoYXZpb3IoRWRpdGluZ0JlaGF2aW9yVHlwZSB0eXBl
KQogICAgICAgICA6IG1fdHlwZSh0eXBlKQpAQCAtNDAsNjcgKzM5LDY3IEBAIHB1YmxpYzoKICAg
ICAvLyBjb250ZW50IG9uIE1hYy4KICAgICBib29sIHNob3VsZE1vdmVDYXJldFRvSG9yaXpvbnRh
bEJvdW5kYXJ5V2hlblBhc3RUb3BPckJvdHRvbSgpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1
cm4gbV90eXBlICE9IEVkaXRpbmdXaW5kb3dzQmVoYXZpb3I7CisgICAgICAgIHJldHVybiBtX3R5
cGUgIT0gRWRpdGluZ0JlaGF2aW9yVHlwZTo6V2luZG93czsKICAgICB9CiAKICAgICAvLyBPbiBX
aW5kb3dzLCBzZWxlY3Rpb25zIHNob3VsZCBhbHdheXMgYmUgY29uc2lkZXJlZCBhcyBkaXJlY3Rp
b25hbCwgcmVnYXJkbGVzcyBpZiBpdCBpcwogICAgIC8vIG1vdXNlLWJhc2VkIG9yIGtleWJvYXJk
LWJhc2VkLgotICAgIGJvb2wgc2hvdWxkQ29uc2lkZXJTZWxlY3Rpb25Bc0RpcmVjdGlvbmFsKCkg
Y29uc3QgeyByZXR1cm4gbV90eXBlICE9IEVkaXRpbmdNYWNCZWhhdmlvciAmJiBtX3R5cGUgIT0g
RWRpdGluZ0lPU0JlaGF2aW9yOyB9CisgICAgYm9vbCBzaG91bGRDb25zaWRlclNlbGVjdGlvbkFz
RGlyZWN0aW9uYWwoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgIT0gRWRpdGluZ0JlaGF2aW9yVHlw
ZTo6TWFjICYmIG1fdHlwZSAhPSBFZGl0aW5nQmVoYXZpb3JUeXBlOjpJb3M7IH0KIAogICAgIC8v
IE9uIE1hYywgd2hlbiByZXZlYWxpbmcgYSBzZWxlY3Rpb24gKGZvciBleGFtcGxlIGFzIGEgcmVz
dWx0IG9mIGEgRmluZCBvcGVyYXRpb24gb24gdGhlIEJyb3dzZXIpLAogICAgIC8vIGNvbnRlbnQg
c2hvdWxkIGJlIHNjcm9sbGVkIHN1Y2ggdGhhdCB0aGUgc2VsZWN0aW9uIGdldHMgY2VydGVyIGFs
aWduZWQuCi0gICAgYm9vbCBzaG91bGRDZW50ZXJBbGlnbldoZW5TZWxlY3Rpb25Jc1JldmVhbGVk
KCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IEVkaXRpbmdNYWNCZWhhdmlvciB8fCBtX3R5cGUg
PT0gRWRpdGluZ0lPU0JlaGF2aW9yOyB9CisgICAgYm9vbCBzaG91bGRDZW50ZXJBbGlnbldoZW5T
ZWxlY3Rpb25Jc1JldmVhbGVkKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IEVkaXRpbmdCZWhh
dmlvclR5cGU6Ok1hYyB8fCBtX3R5cGUgPT0gRWRpdGluZ0JlaGF2aW9yVHlwZTo6SW9zOyB9CiAK
ICAgICAvLyBPbiBNYWMsIHN0eWxlIGlzIGNvbnNpZGVyZWQgcHJlc2VudCB3aGVuIHByZXNlbnQg
YXQgdGhlIGJlZ2lubmluZyBvZiBzZWxlY3Rpb24uIE9uIG90aGVyIHBsYXRmb3JtcywKICAgICAv
LyBzdHlsZSBoYXMgdG8gYmUgcHJlc2VudCB0aHJvdWdob3V0IHRoZSBzZWxlY3Rpb24uCi0gICAg
Ym9vbCBzaG91bGRUb2dnbGVTdHlsZUJhc2VkT25TdGFydE9mU2VsZWN0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV90eXBlID09IEVkaXRpbmdNYWNCZWhhdmlvciB8fCBtX3R5cGUgPT0gRWRpdGluZ0lP
U0JlaGF2aW9yOyB9CisgICAgYm9vbCBzaG91bGRUb2dnbGVTdHlsZUJhc2VkT25TdGFydE9mU2Vs
ZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IEVkaXRpbmdCZWhhdmlvclR5cGU6Ok1h
YyB8fCBtX3R5cGUgPT0gRWRpdGluZ0JlaGF2aW9yVHlwZTo6SW9zOyB9CiAKICAgICAvLyBTdGFu
ZGFyZCBNYWMgYmVoYXZpb3Igd2hlbiBleHRlbmRpbmcgdG8gYSBib3VuZGFyeSBpcyBncm93IHRo
ZSBzZWxlY3Rpb24gcmF0aGVyIHRoYW4gbGVhdmluZyB0aGUgYmFzZQogICAgIC8vIGluIHBsYWNl
IGFuZCBtb3ZpbmcgdGhlIGV4dGVudC4gTWF0Y2hlcyBOU1RleHRWaWV3LgotICAgIGJvb2wgc2hv
dWxkQWx3YXlzR3Jvd1NlbGVjdGlvbldoZW5FeHRlbmRpbmdUb0JvdW5kYXJ5KCkgY29uc3QgeyBy
ZXR1cm4gbV90eXBlID09IEVkaXRpbmdNYWNCZWhhdmlvciB8fCBtX3R5cGUgPT0gRWRpdGluZ0lP
U0JlaGF2aW9yOyB9CisgICAgYm9vbCBzaG91bGRBbHdheXNHcm93U2VsZWN0aW9uV2hlbkV4dGVu
ZGluZ1RvQm91bmRhcnkoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ0JlaGF2aW9y
VHlwZTo6TWFjIHx8IG1fdHlwZSA9PSBFZGl0aW5nQmVoYXZpb3JUeXBlOjpJb3M7IH0KIAogICAg
IC8vIE9uIE1hYywgd2hlbiBwcm9jZXNzaW5nIGEgY29udGV4dHVhbCBjbGljaywgdGhlIG9iamVj
dCBiZWluZyBjbGlja2VkIHVwb24gc2hvdWxkIGJlIHNlbGVjdGVkLgotICAgIGJvb2wgc2hvdWxk
U2VsZWN0T25Db250ZXh0dWFsTWVudUNsaWNrKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IEVk
aXRpbmdNYWNCZWhhdmlvcjsgfQorICAgIGJvb2wgc2hvdWxkU2VsZWN0T25Db250ZXh0dWFsTWVu
dUNsaWNrKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IEVkaXRpbmdCZWhhdmlvclR5cGU6Ok1h
YzsgfQogCiAgICAgLy8gT24gTGludXgsIHNob3VsZCBiZSBhYmxlIHRvIGdldCBhbmQgaW5zZXJ0
IHNwZWxsaW5nIHN1Z2dlc3Rpb25zIHdpdGhvdXQgc2VsZWN0aW5nIHRoZSBtaXNzcGVsbGVkIHdv
cmQuCiAgICAgYm9vbCBzaG91bGRBbGxvd1NwZWxsaW5nU3VnZ2VzdGlvbnNXaXRob3V0U2VsZWN0
aW9uKCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ1VuaXhC
ZWhhdmlvcjsKKyAgICAgICAgcmV0dXJuIG1fdHlwZSA9PSBFZGl0aW5nQmVoYXZpb3JUeXBlOjpV
bml4OwogICAgIH0KICAgICAKICAgICAvLyBPbiBNYWMgYW5kIFdpbmRvd3MsIHByZXNzaW5nIGJh
Y2tzcGFjZSAod2hlbiBpdCBpc24ndCBoYW5kbGVkIG90aGVyd2lzZSkgc2hvdWxkIG5hdmlnYXRl
IGJhY2suCiAgICAgYm9vbCBzaG91bGROYXZpZ2F0ZUJhY2tPbkJhY2tzcGFjZSgpIGNvbnN0CiAg
ICAgewotICAgICAgICByZXR1cm4gbV90eXBlICE9IEVkaXRpbmdVbml4QmVoYXZpb3I7CisgICAg
ICAgIHJldHVybiBtX3R5cGUgIT0gRWRpdGluZ0JlaGF2aW9yVHlwZTo6VW5peDsKICAgICB9CiAK
ICAgICAvLyBPbiBNYWMsIHNlbGVjdGluZyBiYWNrd2FyZHMgYnkgd29yZC9saW5lIGZyb20gdGhl
IG1pZGRsZSBvZiBhIHdvcmQvbGluZSwgYW5kIHRoZW4gZ29pbmcKICAgICAvLyBmb3J3YXJkIGxl
YXZlcyB0aGUgY2FyZXQgYmFjayBpbiB0aGUgbWlkZGxlIHdpdGggbm8gc2VsZWN0aW9uLCBpbnN0
ZWFkIG9mIGRpcmVjdGx5IHNlbGVjdGluZwogICAgIC8vIHRvIHRoZSBvdGhlciBlbmQgb2YgdGhl
IGxpbmUvd29yZCAoVW5peC9XaW5kb3dzIGJlaGF2aW9yKS4KLSAgICBib29sIHNob3VsZEV4dGVu
ZFNlbGVjdGlvbkJ5V29yZE9yTGluZUFjcm9zc0NhcmV0KCkgY29uc3QgeyByZXR1cm4gbV90eXBl
ICE9IEVkaXRpbmdNYWNCZWhhdmlvciAmJiBtX3R5cGUgIT0gRWRpdGluZ0lPU0JlaGF2aW9yOyB9
CisgICAgYm9vbCBzaG91bGRFeHRlbmRTZWxlY3Rpb25CeVdvcmRPckxpbmVBY3Jvc3NDYXJldCgp
IGNvbnN0IHsgcmV0dXJuIG1fdHlwZSAhPSBFZGl0aW5nQmVoYXZpb3JUeXBlOjpNYWMgJiYgbV90
eXBlICE9IEVkaXRpbmdCZWhhdmlvclR5cGU6OklvczsgfQogCiAgICAgLy8gQmFzZWQgb24gbmF0
aXZlIGJlaGF2aW9yLCB3aGVuIHVzaW5nIGN0cmwoYWx0KSthcnJvdyB0byBtb3ZlIGNhcmV0IGJ5
IHdvcmQsIGN0cmwoYWx0KStsZWZ0IGFycm93IG1vdmVzIGNhcmV0IHRvCiAgICAgLy8gaW1tZWRp
YXRlbHkgYmVmb3JlIHRoZSB3b3JkIGluIGFsbCBwbGF0Zm9ybXMsIGZvciBleGFtcGxlLCB0aGUg
d29yZCBicmVhayBwb3NpdGlvbnMgYXJlOiAifGFiYyB8ZGVmIHxoaWogfG9wcSIuCiAgICAgLy8g
QnV0IGN0cmwrcmlnaHQgYXJyb3cgbW92ZXMgY2FyZXQgdG8gImFiYyB8ZGVmIHxoaWogfG9wcSIg
b24gV2luZG93cyBhbmQgImFiY3wgZGVmfCBoaWp8IG9wcXwiIG9uIE1hYyBhbmQgTGludXguCi0g
ICAgYm9vbCBzaG91bGRTa2lwU3BhY2VXaGVuTW92aW5nUmlnaHQoKSBjb25zdCB7IHJldHVybiBt
X3R5cGUgPT0gRWRpdGluZ1dpbmRvd3NCZWhhdmlvcjsgfQorICAgIGJvb2wgc2hvdWxkU2tpcFNw
YWNlV2hlbk1vdmluZ1JpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IEVkaXRpbmdCZWhh
dmlvclR5cGU6OldpbmRvd3M7IH0KIAogICAgIC8vIE9uIGlPUyB0aGUgbGFzdCBlbnRlcmVkIGNo
YXJhY3RlciBpbiBhIHNlY3VyZSBmaWxlZCBpcyBzaG93biBtb21lbnRhcmlseSwgcmVtb3Zpbmcg
YW5kIGFkZGluZyBiYWNrIHRoZQogICAgIC8vIHNwYWNlIHdoZW4gZGVsZXRpbmcgcGFzc3dvcmQg
Y2F1c2Ugc3BhY2UgYmVlbiBzaG93ZWQgaW5zZWN1cmVseS4KLSAgICBib29sIHNob3VsZFJlYmFs
YW5jZVdoaXRlU3BhY2VzSW5TZWN1cmVGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSAhPSBF
ZGl0aW5nSU9TQmVoYXZpb3I7IH0KKyAgICBib29sIHNob3VsZFJlYmFsYW5jZVdoaXRlU3BhY2Vz
SW5TZWN1cmVGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSAhPSBFZGl0aW5nQmVoYXZpb3JU
eXBlOjpJb3M7IH0KIAotICAgIGJvb2wgc2hvdWxkU2VsZWN0QmFzZWRPbkRpY3Rpb25hcnlMb29r
dXAoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ01hY0JlaGF2aW9yOyB9CisgICAg
Ym9vbCBzaG91bGRTZWxlY3RCYXNlZE9uRGljdGlvbmFyeUxvb2t1cCgpIGNvbnN0IHsgcmV0dXJu
IG1fdHlwZSA9PSBFZGl0aW5nQmVoYXZpb3JUeXBlOjpNYWM7IH0KIAogICAgIC8vIExpbnV4IGFu
ZCBXaW5kb3dzIGFsd2F5cyBleHRlbmQgc2VsZWN0aW9ucyBmcm9tIHRoZSBleHRlbnQgZW5kcG9p
bnQuCi0gICAgYm9vbCBzaG91bGRBbHdheXNFeHRlbmRTZWxlY3Rpb25Gcm9tRXh0ZW50RW5kcG9p
bnQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgIT0gRWRpdGluZ01hY0JlaGF2aW9yICYmIG1fdHlw
ZSAhPSBFZGl0aW5nSU9TQmVoYXZpb3I7IH0KKyAgICBib29sIHNob3VsZEFsd2F5c0V4dGVuZFNl
bGVjdGlvbkZyb21FeHRlbnRFbmRwb2ludCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSAhPSBFZGl0
aW5nQmVoYXZpb3JUeXBlOjpNYWMgJiYgbV90eXBlICE9IEVkaXRpbmdCZWhhdmlvclR5cGU6Oklv
czsgfQogCiAgICAgLy8gT24gaU9TLCB3ZSBkb24ndCB3YW50IHRvIHNlbGVjdCBhbGwgdGhlIHRl
eHQgd2hlbiBmb2N1c2luZyBhIGZpZWxkLiBJbnN0ZWFkLCBtYXRjaCBwbGF0Zm9ybSBiZWhhdmlv
ciBieSBnb2luZyB0byB0aGUgZW5kIG9mIHRoZSBsaW5lLgotICAgIGJvb2wgc2hvdWxkTW92ZVNl
bGVjdGlvblRvRW5kV2hlbkZvY3VzaW5nVGV4dElucHV0KCkgY29uc3QgeyByZXR1cm4gbV90eXBl
ID09IEVkaXRpbmdJT1NCZWhhdmlvcjsgfQorICAgIGJvb2wgc2hvdWxkTW92ZVNlbGVjdGlvblRv
RW5kV2hlbkZvY3VzaW5nVGV4dElucHV0KCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IEVkaXRp
bmdCZWhhdmlvclR5cGU6OklvczsgfQogICAgIAogICAgIC8vIE9uIGlPUywgd2hlbiBzbWFydCBk
ZWxldGUgaXMgb24sIGl0IGlzIGFsd2F5cyBvbiwgYW5kIHNob3VsZCBkbyBub3QgYWRkaXRpb25h
bCBjaGVja3MgKGkuZS4gVGV4dEdyYW51bGFyaXR5OjpXb3JkR3JhbnVsYXJpdHkpLgotICAgIGJv
b2wgc2hvdWxkQWx3YXlzU21hcnREZWxldGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRp
dGluZ0lPU0JlaGF2aW9yOyB9CisgICAgYm9vbCBzaG91bGRBbHdheXNTbWFydERlbGV0ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBFZGl0aW5nQmVoYXZpb3JUeXBlOjpJb3M7IH0KICAgICAK
ICAgICAvLyBPbiBpT1MsIHdlIHNob3VsZCB0dXJuIG9uIHNtYXJ0IGluc2VydCBhbmQgZGVsZXRl
IGFuZCBuZXdsaW5lcyBhcm91bmQgcGFyYWdyYXBocyB0byBtYXRjaCBVSUtpdCBiZWhhdmlvdXIu
Ci0gICAgYm9vbCBzaG91bGRTbWFydEluc2VydERlbGV0ZVBhcmFncmFwaHMoKSBjb25zdCB7IHJl
dHVybiBtX3R5cGUgPT0gRWRpdGluZ0lPU0JlaGF2aW9yOyB9CisgICAgYm9vbCBzaG91bGRTbWFy
dEluc2VydERlbGV0ZVBhcmFncmFwaHMoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGlu
Z0JlaGF2aW9yVHlwZTo6SW9zOyB9CiAKIHByaXZhdGU6CiAgICAgRWRpdGluZ0JlaGF2aW9yVHlw
ZSBtX3R5cGU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdCZWhhdmlvclR5
cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdCZWhhdmlv
clR5cGUuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdC
ZWhhdmlvclR5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKQorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBUaGVyZSBh
cmUgbXVsdGlwbGUgZWRpdGluZyBkZXRhaWxzIHRoYXQgYXJlIGRpZmZlcmVudCBvbiBXaW5kb3dz
IHRoYW4gTWFjaW50b3NoLgorLy8gV2UgdXNlIGEgc2luZ2xlIHN3aXRjaCBmb3IgYWxsIG9mIHRo
ZW0uIFNvbWUgZXhhbXBsZXM6CisvLworLy8gICAgMSkgQ2xpY2tpbmcgYmVsb3cgdGhlIGxhc3Qg
bGluZSBvZiBhbiBlZGl0YWJsZSBhcmVhIHB1dHMgdGhlIGNhcmV0IGF0IHRoZSBlbmQKKy8vICAg
ICAgIG9mIHRoZSBsYXN0IGxpbmUgb24gTWFjLCBidXQgaW4gdGhlIG1pZGRsZSBvZiB0aGUgbGFz
dCBsaW5lIG9uIFdpbmRvd3MuCisvLyAgICAyKSBQdXNoaW5nIHRoZSBkb3duIGFycm93IGtleSBv
biB0aGUgbGFzdCBsaW5lIHB1dHMgdGhlIGNhcmV0IGF0IHRoZSBlbmQgb2YgdGhlCisvLyAgICAg
ICBsYXN0IGxpbmUgb24gTWFjLCBidXQgZG9lcyBub3RoaW5nIG9uIFdpbmRvd3MuIEEgc2ltaWxh
ciBjYXNlIGV4aXN0cyBvbiB0aGUKKy8vICAgICAgIHRvcCBsaW5lLgorLy8KKy8vIFRoaXMgc2V0
dGluZyBpcyBpbnRlbmRlZCB0byBjb250cm9sIHRoZXNlIHNvcnRzIG9mIGJlaGF2aW9ycy4gVGhl
cmUgYXJlIHNvbWUgb3RoZXIKKy8vIGJlaGF2aW9ycyB3aXRoIGluZGl2aWR1YWwgZnVuY3Rpb24g
Y2FsbHMgb24gRWRpdG9yQ2xpZW50IChzbWFydCBjb3B5IGFuZCBwYXN0ZSBhbmQKKy8vIHNlbGVj
dGluZyB0aGUgc3BhY2UgYWZ0ZXIgYSBkb3VibGUgY2xpY2spIHRoYXQgY291bGQgYmUgY29tYmlu
ZWQgd2l0aCB0aGlzIGlmCisvLyBpZiBwb3NzaWJsZSBpbiB0aGUgZnV0dXJlLgorZW51bSBjbGFz
cyBFZGl0aW5nQmVoYXZpb3JUeXBlIDogdWludDhfdCB7CisgICAgTWFjLAorICAgIFdpbmRvd3Ms
CisgICAgVW5peCwKKyAgICBJb3MKK307CisKK30gLy8gV2ViQ29yZSBuYW1lc3BhY2UKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yVHlwZXMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdCZWhhdmlvclR5cGVzLmgJKHJldmlz
aW9uIDI2OTgxOSkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yVHlw
ZXMuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDQ1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
Ci0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jcHJhZ21h
IG9uY2UKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0vLyBUaGVyZSBhcmUgbXVsdGlwbGUgZWRp
dGluZyBkZXRhaWxzIHRoYXQgYXJlIGRpZmZlcmVudCBvbiBXaW5kb3dzIHRoYW4gTWFjaW50b3No
LgotLy8gV2UgdXNlIGEgc2luZ2xlIHN3aXRjaCBmb3IgYWxsIG9mIHRoZW0uIFNvbWUgZXhhbXBs
ZXM6Ci0vLwotLy8gICAgMSkgQ2xpY2tpbmcgYmVsb3cgdGhlIGxhc3QgbGluZSBvZiBhbiBlZGl0
YWJsZSBhcmVhIHB1dHMgdGhlIGNhcmV0IGF0IHRoZSBlbmQKLS8vICAgICAgIG9mIHRoZSBsYXN0
IGxpbmUgb24gTWFjLCBidXQgaW4gdGhlIG1pZGRsZSBvZiB0aGUgbGFzdCBsaW5lIG9uIFdpbmRv
d3MuCi0vLyAgICAyKSBQdXNoaW5nIHRoZSBkb3duIGFycm93IGtleSBvbiB0aGUgbGFzdCBsaW5l
IHB1dHMgdGhlIGNhcmV0IGF0IHRoZSBlbmQgb2YgdGhlCi0vLyAgICAgICBsYXN0IGxpbmUgb24g
TWFjLCBidXQgZG9lcyBub3RoaW5nIG9uIFdpbmRvd3MuIEEgc2ltaWxhciBjYXNlIGV4aXN0cyBv
biB0aGUKLS8vICAgICAgIHRvcCBsaW5lLgotLy8KLS8vIFRoaXMgc2V0dGluZyBpcyBpbnRlbmRl
ZCB0byBjb250cm9sIHRoZXNlIHNvcnRzIG9mIGJlaGF2aW9ycy4gVGhlcmUgYXJlIHNvbWUgb3Ro
ZXIKLS8vIGJlaGF2aW9ycyB3aXRoIGluZGl2aWR1YWwgZnVuY3Rpb24gY2FsbHMgb24gRWRpdG9y
Q2xpZW50IChzbWFydCBjb3B5IGFuZCBwYXN0ZSBhbmQKLS8vIHNlbGVjdGluZyB0aGUgc3BhY2Ug
YWZ0ZXIgYSBkb3VibGUgY2xpY2spIHRoYXQgY291bGQgYmUgY29tYmluZWQgd2l0aCB0aGlzIGlm
Ci0vLyBpZiBwb3NzaWJsZSBpbiB0aGUgZnV0dXJlLgotZW51bSBFZGl0aW5nQmVoYXZpb3JUeXBl
IHsKLSAgICBFZGl0aW5nTWFjQmVoYXZpb3IsCi0gICAgRWRpdGluZ1dpbmRvd3NCZWhhdmlvciwK
LSAgICBFZGl0aW5nVW5peEJlaGF2aW9yLAotICAgIEVkaXRpbmdJT1NCZWhhdmlvcgotfTsKLQot
fSAvLyBXZWJDb3JlIG5hbWVzcGFjZQoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0aW5nQmVoYXZpb3JUeXBlcy5oCl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3Zu
OmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1uYXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBw
cm9wZXJ0eQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAkocmV2aXNpb24gMjY5ODE5
KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yODAsNyArMjgwLDcgQEAgVmlzaWJsZVNlbGVjdGlvbiBFZGl0b3I6OnNlbGVjdGlvbkZvckNv
bQogLy8gRnVuY3Rpb24gY29uc2lkZXJzIE1hYyBlZGl0aW5nIGJlaGF2aW9yIGEgZmFsbGJhY2sg
d2hlbiBQYWdlIG9yIFNldHRpbmdzIGlzIG5vdCBhdmFpbGFibGUuCiBFZGl0aW5nQmVoYXZpb3Ig
RWRpdG9yOjpiZWhhdmlvcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIEVkaXRpbmdCZWhhdmlvciht
X2RvY3VtZW50LnNldHRpbmdzKCkuZWRpdGluZ0JlaGF2aW9yVHlwZSgpKTsKKyAgICByZXR1cm4g
bV9kb2N1bWVudC5lZGl0aW5nQmVoYXZpb3IoKTsKIH0KIAogRWRpdG9yQ2xpZW50KiBFZGl0b3I6
OmNsaWVudCgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCShyZXZpc2lv
biAyNjk4MTkpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE4MCw3ICsxODAsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8UGFnZT4gY3JlYXRlUGFn
ZUZvclNhbml0CiAgICAgYXV0byBwYWdlID0gbWFrZVVuaXF1ZTxQYWdlPihXVEZNb3ZlKHBhZ2VD
b25maWd1cmF0aW9uKSk7CiAgICAgcGFnZS0+c2V0dGluZ3MoKS5zZXRNZWRpYUVuYWJsZWQoZmFs
c2UpOwogICAgIHBhZ2UtPnNldHRpbmdzKCkuc2V0U2NyaXB0RW5hYmxlZChmYWxzZSk7Ci0gICAg
cGFnZS0+c2V0dGluZ3MoKS5zZXRQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5KFNldHRpbmdzQmFz
ZTo6UGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeTo6RW5hYmxlZCk7CisgICAgcGFnZS0+c2V0dGlu
Z3MoKS5zZXRIVE1MUGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeShIVE1MUGFyc2VyU2NyaXB0aW5n
RmxhZ1BvbGljeTo6RW5hYmxlZCk7CiAgICAgcGFnZS0+c2V0dGluZ3MoKS5zZXRQbHVnaW5zRW5h
YmxlZChmYWxzZSk7CiAgICAgcGFnZS0+c2V0dGluZ3MoKS5zZXRBY2NlbGVyYXRlZENvbXBvc2l0
aW5nRW5hYmxlZChmYWxzZSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2Ev
RGF0YURldGVjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29j
b2EvRGF0YURldGVjdGlvbi5oCShyZXZpc2lvbiAyNjk4MTkpCisrKyBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMjcsOCArMjcs
MTAgQEAKIAogI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKIAorI2ltcG9ydCAiRGF0YURldGVj
dG9yVHlwZXMuaCIKICNpbXBvcnQgIkZsb2F0UmVjdC5oIgogI2ltcG9ydCAiU2ltcGxlUmFuZ2Uu
aCIKKyNpbXBvcnQgPHd0Zi9PcHRpb25TZXQuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4K
IAogT0JKQ19DTEFTUyBEREFjdGlvbkNvbnRleHQ7CkBAIC0zOSwxNyArNDEsNiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhpdFRlc3RSZXN1bHQ7CiAKLS8vIEZJWE1FOiBXb3VsZCBi
ZSBiZXR0ZXIgdG8gdXNlIGFuIE9wdGlvblNldCBhbmQgdWludDhfdC4KLWVudW0gY2xhc3MgRGF0
YURldGVjdG9yVHlwZXMgOiB1aW50MzJfdCB7Ci0gICAgUGhvbmVOdW1iZXIgPSAxIDw8IDAsCi0g
ICAgTGluayA9IDEgPDwgMSwKLSAgICBBZGRyZXNzID0gMSA8PCAyLAotICAgIENhbGVuZGFyRXZl
bnQgPSAxIDw8IDMsCi0gICAgVHJhY2tpbmdOdW1iZXIgPSAxIDw8IDQsCi0gICAgRmxpZ2h0TnVt
YmVyID0gMSA8PCA1LAotICAgIExvb2t1cFN1Z2dlc3Rpb24gPSAxIDw8IDYsCi19OwotCiBzdHJ1
Y3QgRGV0ZWN0ZWRJdGVtIHsKICAgICBSZXRhaW5QdHI8RERBY3Rpb25Db250ZXh0PiBhY3Rpb25D
b250ZXh0OwogICAgIEZsb2F0UmVjdCBib3VuZGluZ0JveDsKQEAgLTYxLDcgKzUyLDcgQEAgcHVi
bGljOgogI2lmIFBMQVRGT1JNKE1BQykKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgT3B0aW9u
YWw8RGV0ZWN0ZWRJdGVtPiBkZXRlY3RJdGVtQXJvdW5kSGl0VGVzdFJlc3VsdChjb25zdCBIaXRU
ZXN0UmVzdWx0Jik7CiAjZW5kaWYKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgTlNBcnJheSAq
ZGV0ZWN0Q29udGVudEluUmFuZ2UoY29uc3QgU2ltcGxlUmFuZ2UmLCBEYXRhRGV0ZWN0b3JUeXBl
cywgTlNEaWN0aW9uYXJ5ICpjb250ZXh0KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgTlNB
cnJheSAqZGV0ZWN0Q29udGVudEluUmFuZ2UoY29uc3QgU2ltcGxlUmFuZ2UmLCBPcHRpb25TZXQ8
RGF0YURldGVjdG9yVHlwZXM+LCBOU0RpY3Rpb25hcnkgKmNvbnRleHQpOwogICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyB2b2lkIHJlbW92ZURhdGFEZXRlY3RlZExpbmtzSW5Eb2N1bWVudChEb2N1
bWVudCYpOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIGJvb2wgY2FuQmVQcmVzZW50ZWRCeURhdGFEZXRlY3RvcnMoY29uc3QgVVJMJik7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tCShyZXZp
c2lvbiAyNjk4MTkpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rp
b24ubW0JKHdvcmtpbmcgY29weSkKQEAgLTIxOCwzMCArMjE4LDI0IEBAIHN0YXRpYyBCT09MIHJl
c3VsdElzVVJMKEREUmVzdWx0UmVmIHJlc3UKICAgICByZXR1cm4gW3VybFR5cGVzIGNvbnRhaW5z
T2JqZWN0OihOU1N0cmluZyAqKXNvZnRMaW5rX0RhdGFEZXRlY3RvcnNDb3JlX0REUmVzdWx0R2V0
VHlwZShyZXN1bHQpXTsKIH0KIAotLy8gUG9vciBtYW4ncyBPcHRpb25TZXQuCi1zdGF0aWMgYm9v
bCBjb250YWlucyhEYXRhRGV0ZWN0b3JUeXBlcyB0eXBlcywgRGF0YURldGVjdG9yVHlwZXMgc2lu
Z2xlVHlwZSkKLXsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHR5cGVzKSAmIHN0
YXRpY19jYXN0PHVpbnQzMl90PihzaW5nbGVUeXBlKTsKLX0KLQotc3RhdGljIE5TU3RyaW5nICpj
b25zdHJ1Y3RVUkxTdHJpbmdGb3JSZXN1bHQoRERSZXN1bHRSZWYgY3VycmVudFJlc3VsdCwgTlNT
dHJpbmcgKnJlc3VsdElkZW50aWZpZXIsIE5TRGF0ZSAqcmVmZXJlbmNlRGF0ZSwgTlNUaW1lWm9u
ZSAqcmVmZXJlbmNlVGltZVpvbmUsIERhdGFEZXRlY3RvclR5cGVzIGRldGVjdGlvblR5cGVzKQor
c3RhdGljIE5TU3RyaW5nICpjb25zdHJ1Y3RVUkxTdHJpbmdGb3JSZXN1bHQoRERSZXN1bHRSZWYg
Y3VycmVudFJlc3VsdCwgTlNTdHJpbmcgKnJlc3VsdElkZW50aWZpZXIsIE5TRGF0ZSAqcmVmZXJl
bmNlRGF0ZSwgTlNUaW1lWm9uZSAqcmVmZXJlbmNlVGltZVpvbmUsIE9wdGlvblNldDxEYXRhRGV0
ZWN0b3JUeXBlcz4gZGV0ZWN0aW9uVHlwZXMpCiB7CiAgICAgaWYgKCFzb2Z0TGlua19EYXRhRGV0
ZWN0b3JzQ29yZV9ERFJlc3VsdEhhc1Byb3BlcnRpZXMoY3VycmVudFJlc3VsdCwgRERSZXN1bHRQ
cm9wZXJ0eVBhc3NpdmVEaXNwbGF5KSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIGF1dG8g
cGhvbmVUeXBlcyA9IGNvbnRhaW5zKGRldGVjdGlvblR5cGVzLCBEYXRhRGV0ZWN0b3JUeXBlczo6
UGhvbmVOdW1iZXIpID8gRERVUkxpZmllclBob25lTnVtYmVyRGV0ZWN0aW9uUmVndWxhciA6IERE
VVJMaWZpZXJQaG9uZU51bWJlckRldGVjdGlvbk5vbmU7CisgICAgYXV0byBwaG9uZVR5cGVzID0g
ZGV0ZWN0aW9uVHlwZXMuY29udGFpbnMoRGF0YURldGVjdG9yVHlwZXM6OlBob25lTnVtYmVyKSA/
IEREVVJMaWZpZXJQaG9uZU51bWJlckRldGVjdGlvblJlZ3VsYXIgOiBERFVSTGlmaWVyUGhvbmVO
dW1iZXJEZXRlY3Rpb25Ob25lOwogICAgIGF1dG8gY2F0ZWdvcnkgPSBzb2Z0TGlua19EYXRhRGV0
ZWN0b3JzQ29yZV9ERFJlc3VsdEdldENhdGVnb3J5KGN1cnJlbnRSZXN1bHQpOwogICAgIGF1dG8g
dHlwZSA9IHNvZnRMaW5rX0RhdGFEZXRlY3RvcnNDb3JlX0REUmVzdWx0R2V0VHlwZShjdXJyZW50
UmVzdWx0KTsKIAotICAgIGlmICgoY29udGFpbnMoZGV0ZWN0aW9uVHlwZXMsIERhdGFEZXRlY3Rv
clR5cGVzOjpBZGRyZXNzKSAmJiBERFJlc3VsdENhdGVnb3J5QWRkcmVzcyA9PSBjYXRlZ29yeSkK
LSAgICAgICAgfHwgKGNvbnRhaW5zKGRldGVjdGlvblR5cGVzLCBEYXRhRGV0ZWN0b3JUeXBlczo6
VHJhY2tpbmdOdW1iZXIpICYmIENGRXF1YWwoZ2V0X0RhdGFEZXRlY3RvcnNDb3JlX0REQmluZGVy
VHJhY2tpbmdOdW1iZXJLZXkoKSwgdHlwZSkpCi0gICAgICAgIHx8IChjb250YWlucyhkZXRlY3Rp
b25UeXBlcywgRGF0YURldGVjdG9yVHlwZXM6OkZsaWdodE51bWJlcikgJiYgQ0ZFcXVhbChnZXRf
RGF0YURldGVjdG9yc0NvcmVfRERCaW5kZXJGbGlnaHRJbmZvcm1hdGlvbktleSgpLCB0eXBlKSkK
LSAgICAgICAgfHwgKGNvbnRhaW5zKGRldGVjdGlvblR5cGVzLCBEYXRhRGV0ZWN0b3JUeXBlczo6
TG9va3VwU3VnZ2VzdGlvbikgJiYgQ0ZFcXVhbChnZXRfRGF0YURldGVjdG9yc0NvcmVfRERCaW5k
ZXJQYXJzZWNTb3VyY2VLZXkoKSwgdHlwZSkpCi0gICAgICAgIHx8IChjb250YWlucyhkZXRlY3Rp
b25UeXBlcywgRGF0YURldGVjdG9yVHlwZXM6OlBob25lTnVtYmVyKSAmJiBERFJlc3VsdENhdGVn
b3J5UGhvbmVOdW1iZXIgPT0gY2F0ZWdvcnkpCi0gICAgICAgIHx8IChjb250YWlucyhkZXRlY3Rp
b25UeXBlcywgRGF0YURldGVjdG9yVHlwZXM6OkxpbmspICYmIHJlc3VsdElzVVJMKGN1cnJlbnRS
ZXN1bHQpKSkgeworICAgIGlmICgoZGV0ZWN0aW9uVHlwZXMuY29udGFpbnMoRGF0YURldGVjdG9y
VHlwZXM6OkFkZHJlc3MpICYmIEREUmVzdWx0Q2F0ZWdvcnlBZGRyZXNzID09IGNhdGVnb3J5KQor
ICAgICAgICB8fCAoZGV0ZWN0aW9uVHlwZXMuY29udGFpbnMoRGF0YURldGVjdG9yVHlwZXM6OlRy
YWNraW5nTnVtYmVyKSAmJiBDRkVxdWFsKGdldF9EYXRhRGV0ZWN0b3JzQ29yZV9EREJpbmRlclRy
YWNraW5nTnVtYmVyS2V5KCksIHR5cGUpKQorICAgICAgICB8fCAoZGV0ZWN0aW9uVHlwZXMuY29u
dGFpbnMoRGF0YURldGVjdG9yVHlwZXM6OkZsaWdodE51bWJlcikgJiYgQ0ZFcXVhbChnZXRfRGF0
YURldGVjdG9yc0NvcmVfRERCaW5kZXJGbGlnaHRJbmZvcm1hdGlvbktleSgpLCB0eXBlKSkKKyAg
ICAgICAgfHwgKGRldGVjdGlvblR5cGVzLmNvbnRhaW5zKERhdGFEZXRlY3RvclR5cGVzOjpMb29r
dXBTdWdnZXN0aW9uKSAmJiBDRkVxdWFsKGdldF9EYXRhRGV0ZWN0b3JzQ29yZV9EREJpbmRlclBh
cnNlY1NvdXJjZUtleSgpLCB0eXBlKSkKKyAgICAgICAgfHwgKGRldGVjdGlvblR5cGVzLmNvbnRh
aW5zKERhdGFEZXRlY3RvclR5cGVzOjpQaG9uZU51bWJlcikgJiYgRERSZXN1bHRDYXRlZ29yeVBo
b25lTnVtYmVyID09IGNhdGVnb3J5KQorICAgICAgICB8fCAoZGV0ZWN0aW9uVHlwZXMuY29udGFp
bnMoRGF0YURldGVjdG9yVHlwZXM6OkxpbmspICYmIHJlc3VsdElzVVJMKGN1cnJlbnRSZXN1bHQp
KSkgewogICAgICAgICByZXR1cm4gc29mdExpbmtfRGF0YURldGVjdG9yc0NvcmVfRERVUkxTdHJp
bmdGb3JSZXN1bHQoY3VycmVudFJlc3VsdCwgcmVzdWx0SWRlbnRpZmllciwgcGhvbmVUeXBlcywg
cmVmZXJlbmNlRGF0ZSwgcmVmZXJlbmNlVGltZVpvbmUpOwogICAgIH0KLSAgICBpZiAoY29udGFp
bnMoZGV0ZWN0aW9uVHlwZXMsIERhdGFEZXRlY3RvclR5cGVzOjpDYWxlbmRhckV2ZW50KSAmJiBE
RFJlc3VsdENhdGVnb3J5Q2FsZW5kYXJFdmVudCA9PSBjYXRlZ29yeSkgeworICAgIGlmIChkZXRl
Y3Rpb25UeXBlcy5jb250YWlucyhEYXRhRGV0ZWN0b3JUeXBlczo6Q2FsZW5kYXJFdmVudCkgJiYg
RERSZXN1bHRDYXRlZ29yeUNhbGVuZGFyRXZlbnQgPT0gY2F0ZWdvcnkpIHsKICAgICAgICAgaWYg
KCFzb2Z0TGlua19EYXRhRGV0ZWN0b3JzQ29yZV9ERFJlc3VsdElzUGFzdERhdGUoY3VycmVudFJl
c3VsdCwgKENGRGF0ZVJlZilyZWZlcmVuY2VEYXRlLCAoQ0ZUaW1lWm9uZVJlZilyZWZlcmVuY2VU
aW1lWm9uZSkpCiAgICAgICAgICAgICByZXR1cm4gc29mdExpbmtfRGF0YURldGVjdG9yc0NvcmVf
RERVUkxTdHJpbmdGb3JSZXN1bHQoY3VycmVudFJlc3VsdCwgcmVzdWx0SWRlbnRpZmllciwgcGhv
bmVUeXBlcywgcmVmZXJlbmNlRGF0ZSwgcmVmZXJlbmNlVGltZVpvbmUpOwogICAgIH0KQEAgLTQz
OSwxMyArNDMzLDEzIEBAIHZvaWQgRGF0YURldGVjdGlvbjo6cmVtb3ZlRGF0YURldGVjdGVkTGkK
ICAgICAgICAgcmVtb3ZlUmVzdWx0TGlua3NGcm9tQW5jaG9yKGFuY2hvci5nZXQoKSk7CiB9CiAK
LU5TQXJyYXkgKkRhdGFEZXRlY3Rpb246OmRldGVjdENvbnRlbnRJblJhbmdlKGNvbnN0IFNpbXBs
ZVJhbmdlJiBjb250ZXh0UmFuZ2UsIERhdGFEZXRlY3RvclR5cGVzIHR5cGVzLCBOU0RpY3Rpb25h
cnkgKmNvbnRleHQpCitOU0FycmF5ICpEYXRhRGV0ZWN0aW9uOjpkZXRlY3RDb250ZW50SW5SYW5n
ZShjb25zdCBTaW1wbGVSYW5nZSYgY29udGV4dFJhbmdlLCBPcHRpb25TZXQ8RGF0YURldGVjdG9y
VHlwZXM+IHR5cGVzLCBOU0RpY3Rpb25hcnkgKmNvbnRleHQpCiB7CiAgICAgYXV0byBzY2FubmVy
ID0gYWRvcHRDRihzb2Z0TGlua19EYXRhRGV0ZWN0b3JzQ29yZV9ERFNjYW5uZXJDcmVhdGUoRERT
Y2FubmVyVHlwZVN0YW5kYXJkLCAwLCBudWxscHRyKSk7CiAgICAgYXV0byBzY2FuUXVlcnkgPSBh
ZG9wdENGKHNvZnRMaW5rX0RhdGFEZXRlY3RvcnNDb3JlX0REU2NhblF1ZXJ5Q3JlYXRlKE5VTEwp
KTsKICAgICBidWlsZFF1ZXJ5KHNjYW5RdWVyeS5nZXQoKSwgY29udGV4dFJhbmdlKTsKICAgICAK
LSAgICBpZiAoY29udGFpbnModHlwZXMsIERhdGFEZXRlY3RvclR5cGVzOjpMb29rdXBTdWdnZXN0
aW9uKSkKKyAgICBpZiAodHlwZXMuY29udGFpbnMoRGF0YURldGVjdG9yVHlwZXM6Okxvb2t1cFN1
Z2dlc3Rpb24pKQogICAgICAgICBzb2Z0TGlua19EYXRhRGV0ZWN0b3JzQ29yZV9ERFNjYW5uZXJF
bmFibGVPcHRpb25hbFNvdXJjZShzY2FubmVyLmdldCgpLCBERFNjYW5uZXJTb3VyY2VTcG90bGln
aHQsIHRydWUpOwogCiAgICAgLy8gRklYTUU6IHdlIHNob3VsZCBhZGQgYSB0aW1lb3V0IHRvIHRo
aXMgY2FsbCB0byBtYWtlIHN1cmUgaXQgZG9lc24ndCB0YWtlIHRvbyBtdWNoIHRpbWUuCkBAIC02
MzgsNyArNjMyLDcgQEAgTlNBcnJheSAqRGF0YURldGVjdGlvbjo6ZGV0ZWN0Q29udGVudEluUgog
CiAjZWxzZQogCi1OU0FycmF5ICpEYXRhRGV0ZWN0aW9uOjpkZXRlY3RDb250ZW50SW5SYW5nZShj
b25zdCBTaW1wbGVSYW5nZSYsIERhdGFEZXRlY3RvclR5cGVzLCBOU0RpY3Rpb25hcnkgKikKK05T
QXJyYXkgKkRhdGFEZXRlY3Rpb246OmRldGVjdENvbnRlbnRJblJhbmdlKGNvbnN0IFNpbXBsZVJh
bmdlJiwgT3B0aW9uU2V0PERhdGFEZXRlY3RvclR5cGVzPiwgTlNEaWN0aW9uYXJ5ICopCiB7CiAg
ICAgcmV0dXJuIG5pbDsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0
YURldGVjdG9yVHlwZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2Nv
Y29hL0RhdGFEZXRlY3RvclR5cGVzLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0b3JUeXBlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShEQVRBX0RF
VEVDVElPTikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIERhdGFEZXRlY3Rv
clR5cGVzIDogdWludDhfdCB7CisgICAgTm9uZSA9IDAsCisgICAgUGhvbmVOdW1iZXIgPSAxIDw8
IDAsCisgICAgTGluayA9IDEgPDwgMSwKKyAgICBBZGRyZXNzID0gMSA8PCAyLAorICAgIENhbGVu
ZGFyRXZlbnQgPSAxIDw8IDMsCisgICAgVHJhY2tpbmdOdW1iZXIgPSAxIDw8IDQsCisgICAgRmxp
Z2h0TnVtYmVyID0gMSA8PCA1LAorICAgIExvb2t1cFN1Z2dlc3Rpb24gPSAxIDw8IDYsCit9Owor
Cit9CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVu
dC5jcHAJKHJldmlzaW9uIDI2OTgxOSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hv
ckVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTQsMjggKzIxNCwyMyBAQCB2b2lkIEhU
TUxBbmNob3JFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kCiB2b2lkIEhUTUxBbmNob3JFbGVtZW50
OjpzZXRBY3RpdmUoYm9vbCBkb3duLCBib29sIHBhdXNlKQogewogICAgIGlmIChoYXNFZGl0YWJs
ZVN0eWxlKCkpIHsKLSAgICAgICAgRWRpdGFibGVMaW5rQmVoYXZpb3IgZWRpdGFibGVMaW5rQmVo
YXZpb3IgPSBkb2N1bWVudCgpLnNldHRpbmdzKCkuZWRpdGFibGVMaW5rQmVoYXZpb3IoKTsKLSAg
ICAgICAgICAgIAotICAgICAgICBzd2l0Y2ggKGVkaXRhYmxlTGlua0JlaGF2aW9yKSB7Ci0gICAg
ICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgY2FzZSBFZGl0YWJsZUxpbmtEZWZhdWx0QmVo
YXZpb3I6Ci0gICAgICAgICAgICBjYXNlIEVkaXRhYmxlTGlua0Fsd2F5c0xpdmU6Ci0gICAgICAg
ICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgIGNhc2UgRWRpdGFibGVMaW5rTmV2ZXJMaXZl
OgorICAgICAgICBzd2l0Y2ggKGRvY3VtZW50KCkuc2V0dGluZ3MoKS5lZGl0YWJsZUxpbmtCZWhh
dmlvcigpKSB7CisgICAgICAgIGNhc2UgRWRpdGFibGVMaW5rQmVoYXZpb3I6OkRlZmF1bHQ6Cisg
ICAgICAgIGNhc2UgRWRpdGFibGVMaW5rQmVoYXZpb3I6OkFsd2F5c0xpdmU6CisgICAgICAgICAg
ICBicmVhazsKKworICAgICAgICAvLyBEb24ndCBzZXQgdGhlIGxpbmsgdG8gYmUgYWN0aXZlIGlm
IHRoZSBjdXJyZW50IHNlbGVjdGlvbiBpcyBpbiB0aGUgc2FtZSBlZGl0YWJsZSBibG9jayBhcwor
ICAgICAgICAvLyB0aGlzIGxpbmsKKyAgICAgICAgY2FzZSBFZGl0YWJsZUxpbmtCZWhhdmlvcjo6
TGl2ZVdoZW5Ob3RGb2N1c2VkOgorICAgICAgICAgICAgaWYgKGRvd24gJiYgZG9jdW1lbnQoKS5m
cmFtZSgpICYmIGRvY3VtZW50KCkuZnJhbWUoKS0+c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkucm9v
dEVkaXRhYmxlRWxlbWVudCgpID09IHJvb3RFZGl0YWJsZUVsZW1lbnQoKSkKICAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgCisgICAgICAgIGNhc2Ug
RWRpdGFibGVMaW5rQmVoYXZpb3I6Ok5ldmVyTGl2ZToKKyAgICAgICAgY2FzZSBFZGl0YWJsZUxp
bmtCZWhhdmlvcjo6T25seUxpdmVXaXRoU2hpZnRLZXk6CisgICAgICAgICAgICByZXR1cm47CiAK
LSAgICAgICAgICAgIC8vIERvbid0IHNldCB0aGUgbGluayB0byBiZSBhY3RpdmUgaWYgdGhlIGN1
cnJlbnQgc2VsZWN0aW9uIGlzIGluIHRoZSBzYW1lIGVkaXRhYmxlIGJsb2NrIGFzCi0gICAgICAg
ICAgICAvLyB0aGlzIGxpbmsKLSAgICAgICAgICAgIGNhc2UgRWRpdGFibGVMaW5rTGl2ZVdoZW5O
b3RGb2N1c2VkOgotICAgICAgICAgICAgICAgIGlmIChkb3duICYmIGRvY3VtZW50KCkuZnJhbWUo
KSAmJiBkb2N1bWVudCgpLmZyYW1lKCktPnNlbGVjdGlvbigpLnNlbGVjdGlvbigpLnJvb3RFZGl0
YWJsZUVsZW1lbnQoKSA9PSByb290RWRpdGFibGVFbGVtZW50KCkpCi0gICAgICAgICAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIAotICAgICAg
ICAgICAgY2FzZSBFZGl0YWJsZUxpbmtPbmx5TGl2ZVdpdGhTaGlmdEtleToKLSAgICAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KLQogICAgIH0KICAgICAKICAgICBIVE1MRWxlbWVudDo6
c2V0QWN0aXZlKGRvd24sIHBhdXNlKTsKQEAgLTU1MCwxOSArNTQ1LDE5IEBAIGJvb2wgSFRNTEFu
Y2hvckVsZW1lbnQ6OnRyZWF0TGlua0FzTGl2ZUYKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAg
ICBzd2l0Y2ggKGRvY3VtZW50KCkuc2V0dGluZ3MoKS5lZGl0YWJsZUxpbmtCZWhhdmlvcigpKSB7
Ci0gICAgY2FzZSBFZGl0YWJsZUxpbmtEZWZhdWx0QmVoYXZpb3I6Ci0gICAgY2FzZSBFZGl0YWJs
ZUxpbmtBbHdheXNMaXZlOgorICAgIGNhc2UgRWRpdGFibGVMaW5rQmVoYXZpb3I6OkRlZmF1bHQ6
CisgICAgY2FzZSBFZGl0YWJsZUxpbmtCZWhhdmlvcjo6QWx3YXlzTGl2ZToKICAgICAgICAgcmV0
dXJuIHRydWU7CiAKLSAgICBjYXNlIEVkaXRhYmxlTGlua05ldmVyTGl2ZToKKyAgICBjYXNlIEVk
aXRhYmxlTGlua0JlaGF2aW9yOjpOZXZlckxpdmU6CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIC8vIElmIHRoZSBzZWxlY3Rpb24gcHJpb3IgdG8gY2xpY2tpbmcgb24gdGhpcyBsaW5rIHJl
c2lkZWQgaW4gdGhlIHNhbWUgZWRpdGFibGUgYmxvY2sgYXMgdGhpcyBsaW5rLAogICAgIC8vIGFu
ZCB0aGUgc2hpZnQga2V5IGlzbid0IHByZXNzZWQsIHdlIGRvbid0IHdhbnQgdG8gZm9sbG93IHRo
ZSBsaW5rLgotICAgIGNhc2UgRWRpdGFibGVMaW5rTGl2ZVdoZW5Ob3RGb2N1c2VkOgorICAgIGNh
c2UgRWRpdGFibGVMaW5rQmVoYXZpb3I6OkxpdmVXaGVuTm90Rm9jdXNlZDoKICAgICAgICAgcmV0
dXJuIGV2ZW50VHlwZSA9PSBNb3VzZUV2ZW50V2l0aFNoaWZ0S2V5IHx8IChldmVudFR5cGUgPT0g
TW91c2VFdmVudFdpdGhvdXRTaGlmdEtleSAmJiByb290RWRpdGFibGVFbGVtZW50Rm9yU2VsZWN0
aW9uT25Nb3VzZURvd24oKSAhPSByb290RWRpdGFibGVFbGVtZW50KCkpOwogCi0gICAgY2FzZSBF
ZGl0YWJsZUxpbmtPbmx5TGl2ZVdpdGhTaGlmdEtleToKKyAgICBjYXNlIEVkaXRhYmxlTGlua0Jl
aGF2aW9yOjpPbmx5TGl2ZVdpdGhTaGlmdEtleToKICAgICAgICAgcmV0dXJuIGV2ZW50VHlwZSA9
PSBNb3VzZUV2ZW50V2l0aFNoaWZ0S2V5OwogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTFBhcnNlck9wdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJPcHRpb25zLmNwcAkocmV2aXNpb24gMjY5ODE5
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlck9wdGlvbnMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00NSw3ICs0NSw3IEBAIEhUTUxQYXJzZXJPcHRpb25zOjpIVE1MUGFy
c2VyT3B0aW9ucygpCiBIVE1MUGFyc2VyT3B0aW9uczo6SFRNTFBhcnNlck9wdGlvbnMoRG9jdW1l
bnQmIGRvY3VtZW50KQogewogICAgIFJlZlB0cjxGcmFtZT4gZnJhbWUgPSBkb2N1bWVudC5mcmFt
ZSgpOwotICAgIGlmIChkb2N1bWVudC5zZXR0aW5ncygpLnBhcnNlclNjcmlwdGluZ0ZsYWdQb2xp
Y3koKSA9PSBTZXR0aW5nc0Jhc2U6OlBhcnNlclNjcmlwdGluZ0ZsYWdQb2xpY3k6OkVuYWJsZWQp
CisgICAgaWYgKGRvY3VtZW50LnNldHRpbmdzKCkuaHRtbFBhcnNlclNjcmlwdGluZ0ZsYWdQb2xp
Y3koKSA9PSBIVE1MUGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeTo6RW5hYmxlZCkKICAgICAgICAg
c2NyaXB0aW5nRmxhZyA9IHRydWU7CiAgICAgZWxzZQogICAgICAgICBzY3JpcHRpbmdGbGFnID0g
ZnJhbWUgJiYgZnJhbWUtPnNjcmlwdCgpLmNhbkV4ZWN1dGVTY3JpcHRzKE5vdEFib3V0VG9FeGVj
dXRlU2NyaXB0KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJT
Y3JpcHRpbmdGbGFnUG9saWN5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTFBhcnNlclNjcmlwdGluZ0ZsYWdQb2xpY3kuaAkobm9uZXhpc3RlbnQpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIEhUTUxQYXJzZXJTY3JpcHRp
bmdGbGFnUG9saWN5IDogdWludDhfdCB7CisgICAgT25seUlmU2NyaXB0SXNFbmFibGVkLAorICAg
IEVuYWJsZWQKK307CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cAkocmV2aXNpb24gMjY5ODE5KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjU4MCw4ICsyNTgwLDggQEAgdm9pZCBGcmFtZUxvYWRl
cjo6Y2hlY2tMb2FkQ29tcGxldGVGb3JUaAogICAgICAgICAgICAgICAgIEZSQU1FTE9BREVSX1JF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoUmVzb3VyY2VMb2FkaW5nLCAiY2hlY2tMb2FkQ29tcGxldGVG
b3JUaGlzRnJhbWU6IEZpbmlzaGVkIGZyYW1lIGxvYWQiKTsKICNpZiBFTkFCTEUoREFUQV9ERVRF
Q1RJT04pCiAgICAgICAgICAgICAgICAgYXV0byBkb2N1bWVudCA9IG1fZnJhbWUuZG9jdW1lbnQo
KTsKLSAgICAgICAgICAgICAgICBhdXRvIHR5cGVzID0gbV9mcmFtZS5zZXR0aW5ncygpLmRhdGFE
ZXRlY3RvclR5cGVzKCk7Ci0gICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50ICYmIHN0YXRpY19j
YXN0PHVpbnQzMl90Pih0eXBlcykpIHsKKyAgICAgICAgICAgICAgICBhdXRvIHR5cGVzID0gT3B0
aW9uU2V0PERhdGFEZXRlY3RvclR5cGVzPiB7IG1fZnJhbWUuc2V0dGluZ3MoKS5kYXRhRGV0ZWN0
b3JUeXBlcygpIH07CisgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50ICYmIHR5cGVzKSB7CiAg
ICAgICAgICAgICAgICAgICAgIG1fZnJhbWUuc2V0RGF0YURldGVjdGlvblJlc3VsdHMoRGF0YURl
dGVjdGlvbjo6ZGV0ZWN0Q29udGVudEluUmFuZ2UobWFrZVJhbmdlU2VsZWN0aW5nTm9kZUNvbnRl
bnRzKCpkb2N1bWVudCksIHR5cGVzLCBtX2NsaWVudC0+ZGF0YURldGVjdGlvbkNvbnRleHQoKSkp
OwogICAgICAgICAgICAgICAgICAgICBpZiAobV9mcmFtZS5pc01haW5GcmFtZSgpKQogICAgICAg
ICAgICAgICAgICAgICAgICAgbV9jbGllbnQtPmRpc3BhdGNoRGlkRmluaXNoRGF0YURldGVjdGlv
bihtX2ZyYW1lLmRhdGFEZXRlY3Rpb25SZXN1bHRzKCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
cGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAkocmV2aXNpb24gMjY5ODE5KQorKysg
U291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMTEwLDggKzExMTAsOCBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6cG9w
dWxhdGUoKQogICAgICAgICAgICAgY3JlYXRlQW5kQXBwZW5kV3JpdGluZ0RpcmVjdGlvblN1Yk1l
bnUoV3JpdGluZ0RpcmVjdGlvbk1lbnVJdGVtKTsKICAgICAgICAgICAgIGFwcGVuZEl0ZW0oV3Jp
dGluZ0RpcmVjdGlvbk1lbnVJdGVtLCBtX2NvbnRleHRNZW51LmdldCgpKTsKICAgICAgICAgICAg
IGlmIChQYWdlKiBwYWdlID0gZnJhbWUtPnBhZ2UoKSkgewotICAgICAgICAgICAgICAgIGJvb2wg
aW5jbHVkZVRleHREaXJlY3Rpb25TdWJtZW51ID0gcGFnZS0+c2V0dGluZ3MoKS50ZXh0RGlyZWN0
aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yKCkgPT0gVGV4dERpcmVjdGlvblN1Ym1lbnVBbHdh
eXNJbmNsdWRlZAotICAgICAgICAgICAgICAgICAgICB8fCAocGFnZS0+c2V0dGluZ3MoKS50ZXh0
RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yKCkgPT0gVGV4dERpcmVjdGlvblN1Ym1l
bnVBdXRvbWF0aWNhbGx5SW5jbHVkZWQgJiYgZnJhbWUtPmVkaXRvcigpLmhhc0JpZGlTZWxlY3Rp
b24oKSk7CisgICAgICAgICAgICAgICAgYm9vbCBpbmNsdWRlVGV4dERpcmVjdGlvblN1Ym1lbnUg
PSBwYWdlLT5zZXR0aW5ncygpLnRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3Io
KSA9PSBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yOjpBbHdheXNJbmNsdWRl
ZAorICAgICAgICAgICAgICAgICAgICB8fCAocGFnZS0+c2V0dGluZ3MoKS50ZXh0RGlyZWN0aW9u
U3VibWVudUluY2x1c2lvbkJlaGF2aW9yKCkgPT0gVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNp
b25CZWhhdmlvcjo6QXV0b21hdGljYWxseUluY2x1ZGVkICYmIGZyYW1lLT5lZGl0b3IoKS5oYXNC
aWRpU2VsZWN0aW9uKCkpOwogICAgICAgICAgICAgICAgIGlmIChpbmNsdWRlVGV4dERpcmVjdGlv
blN1Ym1lbnUpIHsKICAgICAgICAgICAgICAgICAgICAgQ29udGV4dE1lbnVJdGVtIFRleHREaXJl
Y3Rpb25NZW51SXRlbShTdWJtZW51VHlwZSwgQ29udGV4dE1lbnVJdGVtVGFnVGV4dERpcmVjdGlv
bk1lbnUsIGNvbnRleHRNZW51SXRlbVRhZ1RleHREaXJlY3Rpb25NZW51KCkpOwogICAgICAgICAg
ICAgICAgICAgICBjcmVhdGVBbmRBcHBlbmRUZXh0RGlyZWN0aW9uU3ViTWVudShUZXh0RGlyZWN0
aW9uTWVudUl0ZW0pOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9EZWJ1Z092ZXJsYXlSZWdp
b25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9EZWJ1Z092ZXJsYXlSZWdp
b25zLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9EZWJ1Z092ZXJsYXlS
ZWdpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgRGVidWdPdmVy
bGF5UmVnaW9ucyA6IHVpbnQ4X3QgeworICAgIE5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uID0gMSA8
PCAwLAorICAgIFdoZWVsRXZlbnRIYW5kbGVyUmVnaW9uID0gMSA8PCAxLAorICAgIFRvdWNoQWN0
aW9uUmVnaW9uID0gMSA8PCAyLAorICAgIEVkaXRhYmxlRWxlbWVudFJlZ2lvbiA9IDEgPDwgMywK
K307CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3Bw
CShyZXZpc2lvbiAyNjk4MTkpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RlYnVnUGFnZU92ZXJs
YXlzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzk5LDE0ICszOTksMTQgQEAgUmVnaW9uT3Zlcmxh
eSogRGVidWdQYWdlT3ZlcmxheXM6OnJlZ2lvbgogICAgIHJldHVybiBpdC0+dmFsdWUuYXQoaW5k
ZXhPZihyZWdpb25UeXBlKSkuZ2V0KCk7CiB9CiAKLXZvaWQgRGVidWdQYWdlT3ZlcmxheXM6OnVw
ZGF0ZU92ZXJsYXlSZWdpb25WaXNpYmlsaXR5KFBhZ2UmIHBhZ2UsIERlYnVnT3ZlcmxheVJlZ2lv
bnMgdmlzaWJsZVJlZ2lvbnMpCit2b2lkIERlYnVnUGFnZU92ZXJsYXlzOjp1cGRhdGVPdmVybGF5
UmVnaW9uVmlzaWJpbGl0eShQYWdlJiBwYWdlLCBPcHRpb25TZXQ8RGVidWdPdmVybGF5UmVnaW9u
cz4gdmlzaWJsZVJlZ2lvbnMpCiB7Ci0gICAgaWYgKHZpc2libGVSZWdpb25zICYgTm9uRmFzdFNj
cm9sbGFibGVSZWdpb24pCisgICAgaWYgKHZpc2libGVSZWdpb25zLmNvbnRhaW5zKERlYnVnT3Zl
cmxheVJlZ2lvbnM6Ok5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKSkKICAgICAgICAgc2hvd1JlZ2lv
bk92ZXJsYXkocGFnZSwgUmVnaW9uVHlwZTo6Tm9uRmFzdFNjcm9sbGFibGVSZWdpb24pOwogICAg
IGVsc2UKICAgICAgICAgaGlkZVJlZ2lvbk92ZXJsYXkocGFnZSwgUmVnaW9uVHlwZTo6Tm9uRmFz
dFNjcm9sbGFibGVSZWdpb24pOwogCi0gICAgaWYgKHZpc2libGVSZWdpb25zICYgV2hlZWxFdmVu
dEhhbmRsZXJSZWdpb24pCisgICAgaWYgKHZpc2libGVSZWdpb25zICYgRGVidWdPdmVybGF5UmVn
aW9uczo6V2hlZWxFdmVudEhhbmRsZXJSZWdpb24pCiAgICAgICAgIHNob3dSZWdpb25PdmVybGF5
KHBhZ2UsIFJlZ2lvblR5cGU6OldoZWVsRXZlbnRIYW5kbGVycyk7CiAgICAgZWxzZQogICAgICAg
ICBoaWRlUmVnaW9uT3ZlcmxheShwYWdlLCBSZWdpb25UeXBlOjpXaGVlbEV2ZW50SGFuZGxlcnMp
OwpAQCAtNDE0LDcgKzQxNCw3IEBAIHZvaWQgRGVidWdQYWdlT3ZlcmxheXM6OnVwZGF0ZU92ZXJs
YXlSZWcKIAogdm9pZCBEZWJ1Z1BhZ2VPdmVybGF5czo6c2V0dGluZ3NDaGFuZ2VkKFBhZ2UmIHBh
Z2UpCiB7Ci0gICAgRGVidWdPdmVybGF5UmVnaW9ucyBhY3RpdmVPdmVybGF5UmVnaW9ucyA9IHBh
Z2Uuc2V0dGluZ3MoKS52aXNpYmxlRGVidWdPdmVybGF5UmVnaW9ucygpOworICAgIGF1dG8gYWN0
aXZlT3ZlcmxheVJlZ2lvbnMgPSBPcHRpb25TZXQ8RGVidWdPdmVybGF5UmVnaW9ucz46OmZyb21S
YXcocGFnZS5zZXR0aW5ncygpLnZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zKCkpOwogICAgIGlm
ICghYWN0aXZlT3ZlcmxheVJlZ2lvbnMgJiYgIWhhc092ZXJsYXlzKHBhZ2UpKQogICAgICAgICBy
ZXR1cm47CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmgJKHJl
dmlzaW9uIDI2OTgxOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMu
aAkod29ya2luZyBjb3B5KQpAQCAtMjUsOSArMjUsMTAgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNp
bmNsdWRlICJEZWJ1Z092ZXJsYXlSZWdpb25zLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNs
dWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3Rm
L09wdGlvblNldC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtNDMsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAgICAgIFdoZWVsRXZlbnRIYW5kbGVy
cywKICAgICAgICAgTm9uRmFzdFNjcm9sbGFibGVSZWdpb24sCiAgICAgfTsKLSAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgTnVtYmVyT2ZSZWdpb25UeXBlcyA9IE5vbkZhc3RTY3JvbGxhYmxlUmVn
aW9uICsgMTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIE51bWJlck9mUmVnaW9uVHlw
ZXMgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUmVnaW9uVHlwZTo6Tm9uRmFzdFNjcm9sbGFibGVS
ZWdpb24pICsgMTsKIAogICAgIHN0YXRpYyB2b2lkIGRpZExheW91dChGcmFtZSYpOwogICAgIHN0
YXRpYyB2b2lkIGRpZENoYW5nZUV2ZW50SGFuZGxlcnMoRnJhbWUmKTsKQEAgLTY2LDcgKzY3LDcg
QEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIG1fcGFnZVJlZ2lvbk92ZXJsYXlzLmNvbnRhaW5z
KCZwYWdlKTsKICAgICB9CiAgICAgCi0gICAgdm9pZCB1cGRhdGVPdmVybGF5UmVnaW9uVmlzaWJp
bGl0eShQYWdlJiwgRGVidWdPdmVybGF5UmVnaW9ucyk7CisgICAgdm9pZCB1cGRhdGVPdmVybGF5
UmVnaW9uVmlzaWJpbGl0eShQYWdlJiwgT3B0aW9uU2V0PERlYnVnT3ZlcmxheVJlZ2lvbnM+KTsK
IAogICAgIFJlZ2lvbk92ZXJsYXkqIHJlZ2lvbk92ZXJsYXlGb3JQYWdlKFBhZ2UmLCBSZWdpb25U
eXBlKSBjb25zdDsKICAgICBSZWdpb25PdmVybGF5JiBlbnN1cmVSZWdpb25PdmVybGF5Rm9yUGFn
ZShQYWdlJiwgUmVnaW9uVHlwZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
Y3BwCShyZXZpc2lvbiAyNjk4MTkpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzODMsMjEgKzEzODMsMjAgQEAgYm9vbCBFdmVudEhh
bmRsZXI6OnVzZUhhbmRDdXJzb3IoTm9kZSogbgogICAgIC8vIElmIHRoZSBsaW5rIGlzIGVkaXRh
YmxlLCB0aGVuIHdlIG5lZWQgdG8gY2hlY2sgdGhlIHNldHRpbmdzIHRvIHNlZSB3aGV0aGVyIG9y
IG5vdCB0aGUgbGluayBzaG91bGQgYmUgZm9sbG93ZWQKICAgICBpZiAoZWRpdGFibGUpIHsKICAg
ICAgICAgc3dpdGNoIChtX2ZyYW1lLnNldHRpbmdzKCkuZWRpdGFibGVMaW5rQmVoYXZpb3IoKSkg
ewotICAgICAgICBkZWZhdWx0OgotICAgICAgICBjYXNlIEVkaXRhYmxlTGlua0RlZmF1bHRCZWhh
dmlvcjoKLSAgICAgICAgY2FzZSBFZGl0YWJsZUxpbmtBbHdheXNMaXZlOgorICAgICAgICBjYXNl
IEVkaXRhYmxlTGlua0JlaGF2aW9yOjpEZWZhdWx0OgorICAgICAgICBjYXNlIEVkaXRhYmxlTGlu
a0JlaGF2aW9yOjpBbHdheXNMaXZlOgogICAgICAgICAgICAgZWRpdGFibGVMaW5rRW5hYmxlZCA9
IHRydWU7CiAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICBjYXNlIEVkaXRhYmxlTGlua05l
dmVyTGl2ZToKKyAgICAgICAgY2FzZSBFZGl0YWJsZUxpbmtCZWhhdmlvcjo6TmV2ZXJMaXZlOgog
ICAgICAgICAgICAgZWRpdGFibGVMaW5rRW5hYmxlZCA9IGZhbHNlOwogICAgICAgICAgICAgYnJl
YWs7CiAKLSAgICAgICAgY2FzZSBFZGl0YWJsZUxpbmtMaXZlV2hlbk5vdEZvY3VzZWQ6CisgICAg
ICAgIGNhc2UgRWRpdGFibGVMaW5rQmVoYXZpb3I6OkxpdmVXaGVuTm90Rm9jdXNlZDoKICAgICAg
ICAgICAgIGVkaXRhYmxlTGlua0VuYWJsZWQgPSBub2RlSXNOb3RCZWluZ0VkaXRlZCgqbm9kZSwg
bV9mcmFtZSkgfHwgc2hpZnRLZXk7CiAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICBjYXNl
IEVkaXRhYmxlTGlua09ubHlMaXZlV2l0aFNoaWZ0S2V5OgorICAgICAgICBjYXNlIEVkaXRhYmxl
TGlua0JlaGF2aW9yOjpPbmx5TGl2ZVdpdGhTaGlmdEtleToKICAgICAgICAgICAgIGVkaXRhYmxl
TGlua0VuYWJsZWQgPSBzaGlmdEtleTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lRmxhdHRlbmluZy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVGbGF0dGVuaW5nLmgJKG5vbmV4aXN0ZW50KQorKysg
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZUZsYXR0ZW5pbmcuaAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworZW51bSBjbGFzcyBGcmFtZUZsYXR0ZW5pbmcgOiB1aW50OF90IHsKKyAgICBEaXNh
YmxlZCwKKyAgICBFbmFibGVkRm9yTm9uRnVsbFNjcmVlbklGcmFtZXMsCisgICAgRnVsbHlFbmFi
bGVkCit9OworCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgJKHJldmlzaW9uIDI2OTgx
OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAg
LTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJBZGp1c3RWaWV3U2l6ZU9yTm90LmgiCiAjaW5jbHVk
ZSAiQ29sb3IuaCIKICNpbmNsdWRlICJDb250YWluZXJOb2RlLmgiCisjaW5jbHVkZSAiRnJhbWVG
bGF0dGVuaW5nLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5oIgogI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkxheW91dE1pbGVzdG9uZS5oIgpAQCAt
ODAsOCArODEsNiBAQCBjbGFzcyBWaWV3OwogfQogI2VuZGlmCiAKLWVudW0gY2xhc3MgRnJhbWVG
bGF0dGVuaW5nOwotCiBQYWdpbmF0aW9uOjpNb2RlIHBhZ2luYXRpb25Nb2RlRm9yUmVuZGVyU3R5
bGUoY29uc3QgUmVuZGVyU3R5bGUmKTsKIAogY2xhc3MgRnJhbWVWaWV3IGZpbmFsIDogcHVibGlj
IFNjcm9sbFZpZXcgewpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QREZJbWFnZUNhY2hpbmdQ
b2xpY3kuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BERkltYWdlQ2FjaGlu
Z1BvbGljeS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUERGSW1hZ2VD
YWNoaW5nUG9saWN5LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgUERG
SW1hZ2VDYWNoaW5nUG9saWN5IDogdWludDhfdCB7CisgICAgRW5hYmxlZCwKKyAgICBCZWxvd01l
bW9yeUxpbWl0LAorICAgIERpc2FibGVkLAorICAgIENsaXBCb3VuZHNPbmx5LAorI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCisgICAgRGVmYXVsdCA9IEJlbG93TWVtb3J5TGltaXQKKyNlbHNlCisg
ICAgRGVmYXVsdCA9IEVuYWJsZWQKKyNlbmRpZgorfTsKKworfQpJbmRleDogU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwCShyZXZpc2lvbiAyNjk4MTkpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiRE9NUmVjdC5oIgogI2lu
Y2x1ZGUgIkRPTVJlY3RMaXN0LmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VQcm92aWRlci5oIgorI2lu
Y2x1ZGUgIkRlYnVnT3ZlcmxheVJlZ2lvbnMuaCIKICNpbmNsdWRlICJEZWJ1Z1BhZ2VPdmVybGF5
cy5oIgogI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCiAjaW5jbHVkZSAiRGlh
Z25vc3RpY0xvZ2dpbmdLZXlzLmgiCkBAIC05NDQsNyArOTQ1LDcgQEAgdm9pZCBQYWdlOjpzZXRF
ZGl0YWJsZVJlZ2lvbkVuYWJsZWQoYm9vbAogCiBib29sIFBhZ2U6OnNob3VsZEJ1aWxkRWRpdGFi
bGVSZWdpb24oKSBjb25zdAogewotICAgIHJldHVybiBtX2lzRWRpdGFibGVSZWdpb25FbmFibGVk
IHx8IG1fc2V0dGluZ3MtPnZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zKCkgJiBFZGl0YWJsZUVs
ZW1lbnRSZWdpb247CisgICAgcmV0dXJuIG1faXNFZGl0YWJsZVJlZ2lvbkVuYWJsZWQgfHwgbV9z
ZXR0aW5ncy0+dmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMoKSAmIERlYnVnT3ZlcmxheVJlZ2lv
bnM6OkVkaXRhYmxlRWxlbWVudFJlZ2lvbjsKIH0KIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmNwcAkocmV2aXNpb24gMjY5ODE5KQorKysgU291cmNlL1dl
YkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwNCwxNCAr
NDA0LDE0IEBAIGJvb2wgU2VjdXJpdHlPcmlnaW46OmNhbkFjY2Vzc1N0b3JhZ2UoY28KICAgICBp
ZiAoaXNMb2NhbCgpICYmICFuZWVkc1N0b3JhZ2VBY2Nlc3NGcm9tRmlsZVVSTHNRdWlyaygpICYm
ICFtX3VuaXZlcnNhbEFjY2VzcyAmJiBzaG91bGRBbGxvd0Zyb21UaGlyZFBhcnR5ICE9IEFsd2F5
c0FsbG93RnJvbVRoaXJkUGFydHkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKLSAgICBp
ZiAobV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgPT0gQmxvY2tBbGxTdG9yYWdlKQorICAgIGlmICht
X3N0b3JhZ2VCbG9ja2luZ1BvbGljeSA9PSBTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkJsb2NrQWxs
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBGSVhNRTogVGhpcyBjaGVjayBzaG91
bGQgYmUgcmVwbGFjZWQgd2l0aCBhbiBBU1NFUlQgb25jZSB3ZSBjYW4gZ3VhcmFudGVlIHRoYXQg
dG9wT3JpZ2luIGlzIG5vdCBudWxsLgogICAgIGlmICghdG9wT3JpZ2luKQogICAgICAgICByZXR1
cm4gdHJ1ZTsKIAotICAgIGlmICh0b3BPcmlnaW4tPm1fc3RvcmFnZUJsb2NraW5nUG9saWN5ID09
IEJsb2NrQWxsU3RvcmFnZSkKKyAgICBpZiAodG9wT3JpZ2luLT5tX3N0b3JhZ2VCbG9ja2luZ1Bv
bGljeSA9PSBTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkJsb2NrQWxsKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKICAgICBpZiAoc2hvdWxkQWxsb3dGcm9tVGhpcmRQYXJ0eSA9PSBBbHdheXNBbGxv
d0Zyb21UaGlyZFBhcnR5KQpAQCAtNDIwLDcgKzQyMCw3IEBAIGJvb2wgU2VjdXJpdHlPcmlnaW46
OmNhbkFjY2Vzc1N0b3JhZ2UoY28KICAgICBpZiAobV91bml2ZXJzYWxBY2Nlc3MpCiAgICAgICAg
IHJldHVybiB0cnVlOwogCi0gICAgaWYgKChtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeSA9PSBCbG9j
a1RoaXJkUGFydHlTdG9yYWdlIHx8IHRvcE9yaWdpbi0+bV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kg
PT0gQmxvY2tUaGlyZFBhcnR5U3RvcmFnZSkgJiYgIXRvcE9yaWdpbi0+aXNTYW1lT3JpZ2luQXMo
KnRoaXMpKQorICAgIGlmICgobV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgPT0gU3RvcmFnZUJsb2Nr
aW5nUG9saWN5OjpCbG9ja1RoaXJkUGFydHkgfHwgdG9wT3JpZ2luLT5tX3N0b3JhZ2VCbG9ja2lu
Z1BvbGljeSA9PSBTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkJsb2NrVGhpcmRQYXJ0eSkgJiYgIXRv
cE9yaWdpbi0+aXNTYW1lT3JpZ2luQXMoKnRoaXMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICByZXR1cm4gdHJ1ZTsKQEAgLTQ4OCw3ICs0ODgsNyBAQCB2b2lkIFNlY3VyaXR5T3JpZ2lu
OjpncmFudFN0b3JhZ2VBY2Nlc3NGCiAKIFN0cmluZyBTZWN1cml0eU9yaWdpbjo6ZG9tYWluRm9y
Q2FjaGVQYXJ0aXRpb24oKSBjb25zdAogewotICAgIGlmIChtX3N0b3JhZ2VCbG9ja2luZ1BvbGlj
eSAhPSBCbG9ja1RoaXJkUGFydHlTdG9yYWdlKQorICAgIGlmIChtX3N0b3JhZ2VCbG9ja2luZ1Bv
bGljeSAhPSBTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkJsb2NrVGhpcmRQYXJ0eSkKICAgICAgICAg
cmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAKICAgICBpZiAoaXNIVFRQRmFtaWx5KCkpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oCShyZXZpc2lvbiAyNjk4MTkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYg
KzI5LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5EYXRhLmgi
CisjaW5jbHVkZSAiU3RvcmFnZUJsb2NraW5nUG9saWN5LmgiCiAjaW5jbHVkZSA8d3RmL0VudW1U
cmFpdHMuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTQzLDEyICs0NCw2IEBAIHB1YmxpYzoKICAgICAg
ICAgQXNrCiAgICAgfTsKIAotICAgIGVudW0gU3RvcmFnZUJsb2NraW5nUG9saWN5IHsKLSAgICAg
ICAgQWxsb3dBbGxTdG9yYWdlID0gMCwKLSAgICAgICAgQmxvY2tUaGlyZFBhcnR5U3RvcmFnZSwK
LSAgICAgICAgQmxvY2tBbGxTdG9yYWdlCi0gICAgfTsKLQogICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBSZWY8U2VjdXJpdHlPcmlnaW4+IGNyZWF0ZShjb25zdCBVUkwmKTsKICAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgUmVmPFNlY3VyaXR5T3JpZ2luPiBjcmVhdGVVbmlxdWUoKTsKIApAQCAt
MjQzLDcgKzIzOCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3VuaXZlcnNhbEFjY2VzcyB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX2RvbWFpbldhc1NldEluRE9NIHsgZmFsc2UgfTsKICAgICBib29s
IG1fY2FuTG9hZExvY2FsUmVzb3VyY2VzIHsgZmFsc2UgfTsKLSAgICBTdG9yYWdlQmxvY2tpbmdQ
b2xpY3kgbV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgeyBBbGxvd0FsbFN0b3JhZ2UgfTsKKyAgICBT
dG9yYWdlQmxvY2tpbmdQb2xpY3kgbV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgeyBTdG9yYWdlQmxv
Y2tpbmdQb2xpY3k6OkFsbG93QWxsIH07CiAgICAgYm9vbCBtX2VuZm9yY2VzRmlsZVBhdGhTZXBh
cmF0aW9uIHsgZmFsc2UgfTsKICAgICBib29sIG1fbmVlZHNTdG9yYWdlQWNjZXNzRnJvbUZpbGVV
UkxzUXVpcmsgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc1BvdGVudGlhbGx5VHJ1c3R3b3J0aHkg
eyBmYWxzZSB9OwpAQCAtMzA4LDE3ICszMDMsMyBAQCB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBp
bmxpbmUgUmVmUHRyPFNlCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotbmFtZXNwYWNl
IFdURiB7Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeT4gewotICAgIHVzaW5nIHZhbHVlcyA9IEVudW1W
YWx1ZXM8Ci0gICAgICAgIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQ
b2xpY3ksCi0gICAgICAgIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQ
b2xpY3k6OkFsbG93QWxsU3RvcmFnZSwKLSAgICAgICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46
OlN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QmxvY2tUaGlyZFBhcnR5U3RvcmFnZSwKLSAgICAgICAg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QmxvY2tBbGxT
dG9yYWdlCi0gICAgPjsKLX07Ci0KLQotfSAvLyBuYW1lc3BhY2UgV1RGCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy55YW1sCShyZXZpc2lvbiAyNjk4MTkpCisrKyBTb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLnlhbWwJKHdvcmtpbmcgY29weSkKQEAgLTk0LDcgKzk0LDcgQEAgRGF0YURl
dGVjdG9yVHlwZXM6CiAgIGNvbmRpdGlvbjogRU5BQkxFKERBVEFfREVURUNUSU9OKQogICBkZWZh
dWx0VmFsdWU6CiAgICAgV2ViQ29yZToKLSAgICAgIGRlZmF1bHQ6CisgICAgICBkZWZhdWx0OiBE
YXRhRGV0ZWN0b3JUeXBlczo6Tm9uZQogCiBEZWZhdWx0VmlkZW9Qb3N0ZXJVUkw6CiAgIGNvbW1l
bnQ6ID4tCkBAIC0xMjUsMTggKzEyNSwxOCBAQCBFZGl0YWJsZUxpbmtCZWhhdmlvcjoKICAgcmVm
aW5lZFR5cGU6IEVkaXRhYmxlTGlua0JlaGF2aW9yCiAgIGRlZmF1bHRWYWx1ZToKICAgICBXZWJD
b3JlOgotICAgICAgZGVmYXVsdDogRWRpdGFibGVMaW5rRGVmYXVsdEJlaGF2aW9yCisgICAgICBk
ZWZhdWx0OiBFZGl0YWJsZUxpbmtCZWhhdmlvcjo6RGVmYXVsdAogCiBFZGl0aW5nQmVoYXZpb3JU
eXBlOgogICB0eXBlOiB1aW50MzJfdAogICByZWZpbmVkVHlwZTogRWRpdGluZ0JlaGF2aW9yVHlw
ZQogICBkZWZhdWx0VmFsdWU6CiAgICAgV2ViQ29yZToKLSAgICAgIFBMQVRGT1JNKElPU19GQU1J
TFkpOiBFZGl0aW5nSU9TQmVoYXZpb3IKLSAgICAgIE9TKERBUldJTik6IEVkaXRpbmdNYWNCZWhh
dmlvcgotICAgICAgT1MoV0lORE9XUyk6IEVkaXRpbmdXaW5kb3dzQmVoYXZpb3IKLSAgICAgIE9T
KFVOSVgpOiBFZGl0aW5nVW5peEJlaGF2aW9yCi0gICAgICBkZWZhdWx0OiBFZGl0aW5nTWFjQmVo
YXZpb3IKKyAgICAgIFBMQVRGT1JNKElPU19GQU1JTFkpOiBFZGl0aW5nQmVoYXZpb3JUeXBlOjpJ
b3MKKyAgICAgIE9TKERBUldJTik6IEVkaXRpbmdCZWhhdmlvclR5cGU6Ok1hYworICAgICAgT1Mo
V0lORE9XUyk6IEVkaXRpbmdCZWhhdmlvclR5cGU6OldpbmRvd3MKKyAgICAgIE9TKFVOSVgpOiBF
ZGl0aW5nQmVoYXZpb3JUeXBlOjpVbml4CisgICAgICBkZWZhdWx0OiBFZGl0aW5nQmVoYXZpb3JU
eXBlOjpNYWMKIAogRml4ZWRCYWNrZ3JvdW5kc1BhaW50UmVsYXRpdmVUb0RvY3VtZW50OgogICB0
eXBlOiBib29sCkBAIC0yMjgsNiArMjI4LDEzIEBAIEdlb2xvY2F0aW9uRmxvb3JMZXZlbEVuYWJs
ZWQ6CiAgICAgV2ViQ29yZToKICAgICAgIGRlZmF1bHQ6IHRydWUKIAorSFRNTFBhcnNlclNjcmlw
dGluZ0ZsYWdQb2xpY3k6CisgIHR5cGU6IHVpbnQzMl90CisgIHJlZmluZWRUeXBlOiBIVE1MUGFy
c2VyU2NyaXB0aW5nRmxhZ1BvbGljeQorICBkZWZhdWx0VmFsdWU6CisgICAgV2ViQ29yZToKKyAg
ICAgIGRlZmF1bHQ6IEhUTUxQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5OjpPbmx5SWZTY3JpcHRJ
c0VuYWJsZWQKKwogSWRlbXBvdGVudE1vZGVBdXRvc2l6aW5nT25seUhvbm9yc1BlcmNlbnRhZ2Vz
OgogICB0eXBlOiBib29sCiAgIGNvbmRpdGlvbjogRU5BQkxFKFRFWFRfQVVUT1NJWklORykKQEAg
LTM4OSwxMyArMzk2LDYgQEAgTmVlZHNEZWZlcktleURvd25BbmRLZXlQcmVzc1RpbWVyc1VudGls
TgogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogCi1QYXJzZXJTY3JpcHRpbmdG
bGFnUG9saWN5OgotICB0eXBlOiB1aW50MzJfdAotICByZWZpbmVkVHlwZTogUGFyc2VyU2NyaXB0
aW5nRmxhZ1BvbGljeQotICBkZWZhdWx0VmFsdWU6Ci0gICAgV2ViQ29yZToKLSAgICAgIGRlZmF1
bHQ6IFBhcnNlclNjcmlwdGluZ0ZsYWdQb2xpY3k6Ok9ubHlJZlNjcmlwdElzRW5hYmxlZAotCiBQ
YXltZW50UmVxdWVzdEVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgY29uZGl0aW9uOiBFTkFCTEUo
UEFZTUVOVF9SRVFVRVNUKQpAQCAtNDA4LDcgKzQwOCw4IEBAIFBERkltYWdlQ2FjaGluZ1BvbGlj
eToKICAgcmVmaW5lZFR5cGU6IFBERkltYWdlQ2FjaGluZ1BvbGljeQogICBkZWZhdWx0VmFsdWU6
CiAgICAgV2ViQ29yZToKLSAgICAgIGRlZmF1bHQ6IFBERkltYWdlQ2FjaGluZ0RlZmF1bHQKKyAg
ICAgIFBMQVRGT1JNKElPU19GQU1JTFkpOiBQREZJbWFnZUNhY2hpbmdQb2xpY3k6OkJlbG93TWVt
b3J5TGltaXQKKyAgICAgIGRlZmF1bHQ6IFBERkltYWdlQ2FjaGluZ1BvbGljeTo6RW5hYmxlZAog
CiBQcmVmZXJNSU1FVHlwZUZvckltYWdlczoKICAgdHlwZTogYm9vbApAQCAtNDg5LDExICs0OTAs
MTEgQEAgU3RvcmFnZUFjY2Vzc0FQSVBlclBhZ2VTY29wZUVuYWJsZWQ6CiAKIFN0b3JhZ2VCbG9j
a2luZ1BvbGljeToKICAgdHlwZTogdWludDMyX3QKLSAgcmVmaW5lZFR5cGU6IFNlY3VyaXR5T3Jp
Z2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kKKyAgcmVmaW5lZFR5cGU6IFN0b3JhZ2VCbG9ja2lu
Z1BvbGljeQogICB3ZWJjb3JlT25DaGFuZ2U6IHN0b3JhZ2VCbG9ja2luZ1BvbGljeUNoYW5nZWQK
ICAgZGVmYXVsdFZhbHVlOgogICAgIFdlYkNvcmU6Ci0gICAgICBkZWZhdWx0OiBTZWN1cml0eU9y
aWdpbjo6QWxsb3dBbGxTdG9yYWdlCisgICAgICBkZWZhdWx0OiBTdG9yYWdlQmxvY2tpbmdQb2xp
Y3k6OkFsbG93QWxsCiAKIFN5c3RlbUxheW91dERpcmVjdGlvbjoKICAgdHlwZTogdWludDMyX3QK
QEAgLTUyMyw3ICs1MjQsNyBAQCBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9y
OgogICByZWZpbmVkVHlwZTogVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcgog
ICBkZWZhdWx0VmFsdWU6CiAgICAgV2ViQ29yZToKLSAgICAgIGRlZmF1bHQ6IFRleHREaXJlY3Rp
b25TdWJtZW51QXV0b21hdGljYWxseUluY2x1ZGVkCisgICAgICBkZWZhdWx0OiBUZXh0RGlyZWN0
aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yOjpBdXRvbWF0aWNhbGx5SW5jbHVkZWQKIAogVGlt
ZVdpdGhvdXRNb3VzZU1vdmVtZW50QmVmb3JlSGlkaW5nQ29udHJvbHM6CiAgIHR5cGU6IGRvdWJs
ZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5oCShyZXZpc2lvbiAyNjk4MTkpCisr
KyBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
OCw3NCArMjgsMzcgQEAKIAogI2luY2x1ZGUgIkNsaXBib2FyZEFjY2Vzc1BvbGljeS5oIgogI2lu
Y2x1ZGUgIkNvbnRlbnRUeXBlLmgiCi0jaW5jbHVkZSAiRWRpdGluZ0JlaGF2aW9yVHlwZXMuaCIK
LSNpbmNsdWRlICJJbnRTaXplLmgiCi0jaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNs
dWRlICJFZGl0YWJsZUxpbmtCZWhhdmlvci5oIgorI2luY2x1ZGUgIkVkaXRpbmdCZWhhdmlvclR5
cGUuaCIKKyNpbmNsdWRlICJGb250TG9hZFRpbWluZ092ZXJyaWRlLmgiCisjaW5jbHVkZSAiRm9u
dFJlbmRlcmluZ01vZGUuaCIKKyNpbmNsdWRlICJGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUuaCIK
KyNpbmNsdWRlICJGcmFtZUZsYXR0ZW5pbmcuaCIKKyNpbmNsdWRlICJIVE1MUGFyc2VyU2NyaXB0
aW5nRmxhZ1BvbGljeS5oIgorI2luY2x1ZGUgIlBERkltYWdlQ2FjaGluZ1BvbGljeS5oIgorI2lu
Y2x1ZGUgIlN0b3JhZ2VCbG9ja2luZ1BvbGljeS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VNYXAuaCIK
LSNpbmNsdWRlICJUZXh0RmxhZ3MuaCIKKyNpbmNsdWRlICJUZXh0RGlyZWN0aW9uLmgiCisjaW5j
bHVkZSAiVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvci5oIgogI2luY2x1ZGUg
IlRpbWVyLmgiCi0jaW5jbHVkZSAiV3JpdGluZ01vZGUuaCIKKyNpbmNsdWRlICJVc2VySW50ZXJm
YWNlRGlyZWN0aW9uUG9saWN5LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUnVudGltZUZs
YWdzLmg+CiAjaW5jbHVkZSA8dW5pY29kZS91c2NyaXB0Lmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9TZWNvbmRz
Lmg+CiAjaW5jbHVkZSA8d3RmL1VSTC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0cmlu
Z0hhc2guaD4KKworI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKyNpbmNsdWRlICJEYXRhRGV0
ZWN0b3JUeXBlcy5oIgorI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRm9u
dEdlbmVyaWNGYW1pbGllczsKIGNsYXNzIFBhZ2U7CiAKLWVudW0gY2xhc3MgRGF0YURldGVjdG9y
VHlwZXMgOiB1aW50MzJfdDsKLQotZW51bSBFZGl0YWJsZUxpbmtCZWhhdmlvciB7Ci0gICAgRWRp
dGFibGVMaW5rRGVmYXVsdEJlaGF2aW9yLAotICAgIEVkaXRhYmxlTGlua0Fsd2F5c0xpdmUsCi0g
ICAgRWRpdGFibGVMaW5rT25seUxpdmVXaXRoU2hpZnRLZXksCi0gICAgRWRpdGFibGVMaW5rTGl2
ZVdoZW5Ob3RGb2N1c2VkLAotICAgIEVkaXRhYmxlTGlua05ldmVyTGl2ZQotfTsKLQotZW51bSBU
ZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yIHsKLSAgICBUZXh0RGlyZWN0aW9u
U3VibWVudU5ldmVySW5jbHVkZWQsCi0gICAgVGV4dERpcmVjdGlvblN1Ym1lbnVBdXRvbWF0aWNh
bGx5SW5jbHVkZWQsCi0gICAgVGV4dERpcmVjdGlvblN1Ym1lbnVBbHdheXNJbmNsdWRlZAotfTsK
LQotZW51bSBEZWJ1Z092ZXJsYXlSZWdpb25GbGFncyB7Ci0gICAgTm9uRmFzdFNjcm9sbGFibGVS
ZWdpb24gPSAxIDw8IDAsCi0gICAgV2hlZWxFdmVudEhhbmRsZXJSZWdpb24gPSAxIDw8IDEsCi0g
ICAgVG91Y2hBY3Rpb25SZWdpb24gPSAxIDw8IDIsCi0gICAgRWRpdGFibGVFbGVtZW50UmVnaW9u
ID0gMSA8PCAzLAotfTsKLQotZW51bSBjbGFzcyBVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5
IHsKLSAgICBDb250ZW50LAotICAgIFN5c3RlbQotfTsKLQotZW51bSBQREZJbWFnZUNhY2hpbmdQ
b2xpY3kgewotICAgIFBERkltYWdlQ2FjaGluZ0VuYWJsZWQsCi0gICAgUERGSW1hZ2VDYWNoaW5n
QmVsb3dNZW1vcnlMaW1pdCwKLSAgICBQREZJbWFnZUNhY2hpbmdEaXNhYmxlZCwKLSAgICBQREZJ
bWFnZUNhY2hpbmdDbGlwQm91bmRzT25seSwKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAg
IFBERkltYWdlQ2FjaGluZ0RlZmF1bHQgPSBQREZJbWFnZUNhY2hpbmdCZWxvd01lbW9yeUxpbWl0
Ci0jZWxzZQotICAgIFBERkltYWdlQ2FjaGluZ0RlZmF1bHQgPSBQREZJbWFnZUNhY2hpbmdFbmFi
bGVkCi0jZW5kaWYKLX07Ci0KLWVudW0gY2xhc3MgRnJhbWVGbGF0dGVuaW5nIHsKLSAgICBEaXNh
YmxlZCwKLSAgICBFbmFibGVkRm9yTm9uRnVsbFNjcmVlbklGcmFtZXMsCi0gICAgRnVsbHlFbmFi
bGVkCi19OwotCi10eXBlZGVmIHVuc2lnbmVkIERlYnVnT3ZlcmxheVJlZ2lvbnM7Ci0KIGNsYXNz
IFNldHRpbmdzQmFzZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2V0dGluZ3NCYXNlKTsg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CkBAIC0xMDMsMTAgKzY2LDYgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBwYWdlRGVzdHJveWVkKCkgeyBtX3BhZ2UgPSBudWxscHRyOyB9CiAK
LSAgICBlbnVtIGNsYXNzIEZvbnRMb2FkVGltaW5nT3ZlcnJpZGUgOiB1aW50OF90IHsgTm9uZSwg
QmxvY2ssIFN3YXAsIEZhaWx1cmUgfTsKLSAgICBlbnVtIGNsYXNzIFBhcnNlclNjcmlwdGluZ0Zs
YWdQb2xpY3kgOiB1aW50OF90IHsgT25seUlmU2NyaXB0SXNFbmFibGVkLCBFbmFibGVkIH07Ci0g
ICAgZW51bSBjbGFzcyBGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUgOiB1aW50OF90IHsgU3lzdGVt
LCBPbiwgT2ZmIH07Ci0KICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBib29sIHBsYXRmb3JtRGVmYXVsdE1lZGlhU291cmNlRW5hYmxlZCgpOwogI2Vu
ZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1N0b3JhZ2VCbG9ja2luZ1BvbGljeS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU3RvcmFnZUJsb2NraW5nUG9saWN5LmgJ
KG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9TdG9yYWdlQmxvY2tpbmdQb2xp
Y3kuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2VudW0gY2xhc3MgU3RvcmFnZUJsb2NraW5nUG9saWN5IDogdWludDhfdCB7CisgICAg
QWxsb3dBbGwgPSAwLAorICAgIEJsb2NrVGhpcmRQYXJ0eSwKKyAgICBCbG9ja0FsbAorfTsKKwor
fQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJD
b3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFs
dWVzPAorICAgICAgICBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3ksCisgICAgICAgIFdl
YkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QWxsb3dBbGwsCisgICAgICAgIFdlYkNvcmU6
OlN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QmxvY2tUaGlyZFBhcnR5LAorICAgICAgICBXZWJDb3Jl
OjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkJsb2NrQWxsCisgICAgPjsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdURgpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9UZXh0RGlyZWN0aW9uU3VibWVu
dUluY2x1c2lvbkJlaGF2aW9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9U
ZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yLmgJKG5vbmV4aXN0ZW50KQorKysg
U291cmNlL1dlYkNvcmUvcGFnZS9UZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9y
LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgVGV4dERpcmVjdGlvblN1
Ym1lbnVJbmNsdXNpb25CZWhhdmlvciA6IHVpbnQ4X3QgeworICAgIE5ldmVySW5jbHVkZWQsCisg
ICAgQXV0b21hdGljYWxseUluY2x1ZGVkLAorICAgIEFsd2F5c0luY2x1ZGVkCit9OworCit9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3kuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJJbnRlcmZhY2VEaXJlY3Rpb25Q
b2xpY3kuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJJbnRlcmZh
Y2VEaXJlY3Rpb25Qb2xpY3kuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM1IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFz
cyBVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5IDogYm9vbCB7CisgICAgQ29udGVudCwKKyAg
ICBTeXN0ZW0KK307CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFn
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5oCShy
ZXZpc2lvbiAyNjk4MTkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuaAko
d29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRl
ICJGbG9hdFNpemUuaCIKKyNpbmNsdWRlICJGb250UmVuZGVyaW5nTW9kZS5oIgogI2luY2x1ZGUg
IkltYWdlT3JpZW50YXRpb24uaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVkZSAiUGF0
aC5oIgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0
aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dERlc2NyaXB0aW9uLmgJKHJldmlzaW9uIDI2OTgxOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw2ICsy
NCw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIK
ICNpbmNsdWRlICJGb250U2VsZWN0aW9uQWxnb3JpdGhtLmgiCiAjaW5jbHVkZSAiRm9udFRhZ2dl
ZFNldHRpbmdzLmgiCiAjaW5jbHVkZSAiVGV4dEZsYWdzLmgiCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1bWVudEltYWdlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1bWVudEltYWdlLmNw
cAkocmV2aXNpb24gMjY5ODE5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvUERGRG9jdW1lbnRJbWFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMSw3ICsyMDEsNyBA
QCB2b2lkIFBERkRvY3VtZW50SW1hZ2U6OmRlY29kZWRTaXplQ2hhbmdlCiB2b2lkIFBERkRvY3Vt
ZW50SW1hZ2U6OnVwZGF0ZUNhY2hlZEltYWdlSWZOZWVkZWQoR3JhcGhpY3NDb250ZXh0JiBjb250
ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCkK
IHsKICAgICAvLyBDbGlwcGVkIG9wdGlvbiBpcyBmb3IgdGVzdGluZyBvbmx5LiBGb3JjZSByZS1j
YWNoaW5nIHRoZSBQREYgd2l0aCBlYWNoIGRyYXcuCi0gICAgYm9vbCBmb3JjZVVwZGF0ZUNhY2hl
ZEltYWdlID0gbV9wZGZJbWFnZUNhY2hpbmdQb2xpY3kgPT0gUERGSW1hZ2VDYWNoaW5nQ2xpcEJv
dW5kc09ubHkgfHwgIW1fY2FjaGVkSW1hZ2VCdWZmZXI7CisgICAgYm9vbCBmb3JjZVVwZGF0ZUNh
Y2hlZEltYWdlID0gbV9wZGZJbWFnZUNhY2hpbmdQb2xpY3kgPT0gUERGSW1hZ2VDYWNoaW5nUG9s
aWN5OjpDbGlwQm91bmRzT25seSB8fCAhbV9jYWNoZWRJbWFnZUJ1ZmZlcjsKICAgICBpZiAoIWZv
cmNlVXBkYXRlQ2FjaGVkSW1hZ2UgJiYgY2FjaGVQYXJhbWV0ZXJzTWF0Y2goY29udGV4dCwgZHN0
UmVjdCwgc3JjUmVjdCkpIHsKICAgICAgICAgLy8gQWRqdXN0IHRoZSB2aWV3LXBvcnQgcmVjdGFu
Z2xlcyBpZiBubyByZS1jYWNoaW5nIHdpbGwgaGFwcGVuLgogICAgICAgICBtX2NhY2hlZEltYWdl
UmVjdC5tb3ZlKEZsb2F0U2l6ZShkc3RSZWN0LmxvY2F0aW9uKCkgLSBtX2NhY2hlZERlc3RpbmF0
aW9uUmVjdC5sb2NhdGlvbigpKSk7CkBAIC0yMTAsMTcgKzIxMCwxNyBAQCB2b2lkIFBERkRvY3Vt
ZW50SW1hZ2U6OnVwZGF0ZUNhY2hlZEltYWdlCiAgICAgfQogCiAgICAgc3dpdGNoIChtX3BkZklt
YWdlQ2FjaGluZ1BvbGljeSkgewotICAgIGNhc2UgUERGSW1hZ2VDYWNoaW5nRGlzYWJsZWQ6Cisg
ICAgY2FzZSBQREZJbWFnZUNhY2hpbmdQb2xpY3k6OkRpc2FibGVkOgogICAgICAgICByZXR1cm47
Ci0gICAgY2FzZSBQREZJbWFnZUNhY2hpbmdCZWxvd01lbW9yeUxpbWl0OgorICAgIGNhc2UgUERG
SW1hZ2VDYWNoaW5nUG9saWN5OjpCZWxvd01lbW9yeUxpbWl0OgogICAgICAgICAvLyBLZWVwIHRo
ZSBtZW1vcnkgdXNlZCBieSB0aGUgY2FjaGVkIGltYWdlIGJlbG93IHNvbWUgdGhyZXNob2xkLCBv
dGhlcndpc2UgV2ViS2l0IHByb2Nlc3MKICAgICAgICAgLy8gd2lsbCBqZXRzYW0gaWYgaXQgZXhj
ZWVkcyBpdHMgbWVtb3J5IGxpbWl0LiBPbmx5IGEgcmVjdGFuZ2xlIGZyb20gdGhlIFBERiBtYXkg
YmUgY2FjaGVkLgogICAgICAgICBtX2NhY2hlZEltYWdlUmVjdCA9IGNhY2hlZEltYWdlUmVjdChj
b250ZXh0LCBkc3RSZWN0KTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQREZJbWFnZUNhY2hp
bmdDbGlwQm91bmRzT25seToKKyAgICBjYXNlIFBERkltYWdlQ2FjaGluZ1BvbGljeTo6Q2xpcEJv
dW5kc09ubHk6CiAgICAgICAgIG1fY2FjaGVkSW1hZ2VSZWN0ID0gaW50ZXJzZWN0aW9uKGNvbnRl
eHQuY2xpcEJvdW5kcygpLCBkc3RSZWN0KTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQREZJ
bWFnZUNhY2hpbmdFbmFibGVkOgorICAgIGNhc2UgUERGSW1hZ2VDYWNoaW5nUG9saWN5OjpFbmFi
bGVkOgogICAgICAgICBtX2NhY2hlZEltYWdlUmVjdCA9IGRzdFJlY3Q7CiAgICAgICAgIGJyZWFr
OwogICAgIH0KQEAgLTIyOCw3ICsyMjgsNyBAQCB2b2lkIFBERkRvY3VtZW50SW1hZ2U6OnVwZGF0
ZUNhY2hlZEltYWdlCiAgICAgRmxvYXRTaXplIGNhY2hlZEltYWdlU2l6ZSA9IEZsb2F0UmVjdChl
bmNsb3NpbmdJbnRSZWN0KG1fY2FjaGVkSW1hZ2VSZWN0KSkuc2l6ZSgpOwogCiAgICAgLy8gQ2Fj
aGUgdGhlIFBERiBpbWFnZSBvbmx5IGlmIHRoZSBzaXplIG9mIHRoZSBuZXcgaW1hZ2Ugd29uJ3Qg
ZXhjZWVkIHRoZSBjYWNoZSB0aHJlc2hvbGQuCi0gICAgaWYgKG1fcGRmSW1hZ2VDYWNoaW5nUG9s
aWN5ID09IFBERkltYWdlQ2FjaGluZ0JlbG93TWVtb3J5TGltaXQpIHsKKyAgICBpZiAobV9wZGZJ
bWFnZUNhY2hpbmdQb2xpY3kgPT0gUERGSW1hZ2VDYWNoaW5nUG9saWN5OjpCZWxvd01lbW9yeUxp
bWl0KSB7CiAgICAgICAgIEludFNpemUgc2NhbGVkU2l6ZSA9IEltYWdlQnVmZmVyOjpjb21wYXRp
YmxlQnVmZmVyU2l6ZShjYWNoZWRJbWFnZVNpemUsIGNvbnRleHQpOwogICAgICAgICBpZiAoc19h
bGxEZWNvZGVkRGF0YVNpemUgKyBzY2FsZWRTaXplLnVuY2xhbXBlZEFyZWEoKSAqIDQgLSBtX2Nh
Y2hlZEJ5dGVzID4gc19tYXhEZWNvZGVkRGF0YVNpemUpIHsKICAgICAgICAgICAgIGRlc3Ryb3lE
ZWNvZGVkRGF0YSgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
UERGRG9jdW1lbnRJbWFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuaAkocmV2aXNpb24gMjY5ODE5KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC05NCw3ICs5NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVDYWNo
ZWRJbWFnZUlmTmVlZGVkKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVj
dCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0KTsKICAgICBib29sIGNhY2hlUGFyYW1ldGVyc01h
dGNoKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiBzcmNSZWN0KSBjb25zdDsKIAotICAgIFBERkltYWdlQ2FjaGluZ1BvbGljeSBtX3Bk
ZkltYWdlQ2FjaGluZ1BvbGljeSB7IFBERkltYWdlQ2FjaGluZ0RlZmF1bHQgfTsKKyAgICBQREZJ
bWFnZUNhY2hpbmdQb2xpY3kgbV9wZGZJbWFnZUNhY2hpbmdQb2xpY3kgeyBQREZJbWFnZUNhY2hp
bmdQb2xpY3k6OkRlZmF1bHQgfTsKIAogI2lmIFVTRShQREZLSVRfRk9SX1BERkRPQ1VNRU5USU1B
R0UpCiAgICAgUmV0YWluUHRyPFBERkRvY3VtZW50PiBtX2RvY3VtZW50OwpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Gb250UmVuZGVyaW5nTW9kZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvRm9udFJlbmRlcmluZ01vZGUuaAkobm9uZXhp
c3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0ZvbnRSZW5kZXJpbmdNb2Rl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCisvLyBUaGlzIHNldHRpbmcgaXMgdXNlZCB0byBwcm92aWRlIHdheXMgb2Ygc3dpdGNoaW5n
IGJldHdlZW4gbXVsdGlwbGUgcmVuZGVyaW5nIG1vZGVzIHRoYXQgbWF5IGhhdmUgZGlmZmVyZW50
CisvLyBtZXRyaWNzLiBJdCBpcyB1c2VkIHRvIHN3aXRjaCBiZXR3ZWVuIENHIGFuZCBHREkgdGV4
dCBvbiBXaW5kb3dzLgorZW51bSBjbGFzcyBGb250UmVuZGVyaW5nTW9kZSA6IHVpbnQ4X3Qgewor
ICAgIE5vcm1hbCwKKyAgICBBbHRlcm5hdGUKK307CisKK30KKworbmFtZXNwYWNlIFdURiB7CisK
K3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6Rm9udFJlbmRlcmluZ01vZGU+
IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpGb250
UmVuZGVyaW5nTW9kZSwKKyAgICAgICAgV2ViQ29yZTo6Rm9udFJlbmRlcmluZ01vZGU6Ok5vcm1h
bCwKKyAgICAgICAgV2ViQ29yZTo6Rm9udFJlbmRlcmluZ01vZGU6OkFsdGVybmF0ZQorICAgID47
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvVGV4dERpcmVjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvVGV4dERpcmVjdGlvbi5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvVGV4dERpcmVjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitlbnVtIGNsYXNzIFRleHREaXJlY3Rpb24gOiBib29sIHsgTFRSLCBSVEwgfTsKKworaW5saW5l
IGJvb2wgaXNMZWZ0VG9SaWdodERpcmVjdGlvbihUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbikKK3sK
KyAgICByZXR1cm4gZGlyZWN0aW9uID09IFRleHREaXJlY3Rpb246OkxUUjsKK30KKworfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RmxhZ3MuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRGbGFncy5oCShyZXZpc2lvbiAyNjk4
MTkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRGbGFncy5oCSh3b3JraW5n
IGNvcHkpCkBAIC00NCwxMyArNDQsNiBAQCBlbnVtIGNsYXNzIEZvbnRTbW9vdGhpbmdNb2RlIDog
dWludDhfdCB7CiAgICAgU3VicGl4ZWxBbnRpYWxpYXNlZAogfTsKIAotLy8gVGhpcyBzZXR0aW5n
IGlzIHVzZWQgdG8gcHJvdmlkZSB3YXlzIG9mIHN3aXRjaGluZyBiZXR3ZWVuIG11bHRpcGxlIHJl
bmRlcmluZyBtb2RlcyB0aGF0IG1heSBoYXZlIGRpZmZlcmVudAotLy8gbWV0cmljcy4gSXQgaXMg
dXNlZCB0byBzd2l0Y2ggYmV0d2VlbiBDRyBhbmQgR0RJIHRleHQgb24gV2luZG93cy4KLWVudW0g
Y2xhc3MgRm9udFJlbmRlcmluZ01vZGUgOiB1aW50OF90IHsKLSAgICBOb3JtYWwsCi0gICAgQWx0
ZXJuYXRlCi19OwotCiBlbnVtIGNsYXNzIEZvbnRPcmllbnRhdGlvbiA6IHVpbnQ4X3QgewogICAg
IEhvcml6b250YWwsCiAgICAgVmVydGljYWwKQEAgLTY0NywxNCArNjQwLDYgQEAgdGVtcGxhdGU8
PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpGbwogICAgID47CiB9OwogCi10ZW1wbGF0ZTw+
IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkZvbnRSZW5kZXJpbmdNb2RlPiB7Ci0gICAgdXNp
bmcgdmFsdWVzID0gRW51bVZhbHVlczwKLSAgICBXZWJDb3JlOjpGb250UmVuZGVyaW5nTW9kZSwK
LSAgICBXZWJDb3JlOjpGb250UmVuZGVyaW5nTW9kZTo6Tm9ybWFsLAotICAgIFdlYkNvcmU6OkZv
bnRSZW5kZXJpbmdNb2RlOjpBbHRlcm5hdGUKLSAgICA+OwotfTsKLQogdGVtcGxhdGU8PiBzdHJ1
Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpGb250T3JpZW50YXRpb24+IHsKICAgICB1c2luZyB2YWx1
ZXMgPSBFbnVtVmFsdWVzPAogICAgIFdlYkNvcmU6OkZvbnRPcmllbnRhdGlvbiwKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvV3JpdGluZ01vZGUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1dyaXRpbmdNb2RlLmgJKHJldmlzaW9uIDI2OTgx
OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvV3JpdGluZ01vZGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzEsMTggKzMxLDExIEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAi
VGV4dERpcmVjdGlvbi5oIgogI2luY2x1ZGUgPGFycmF5PgotI2luY2x1ZGUgPHd0Zi9FbnVtVHJh
aXRzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotZW51bSBjbGFzcyBUZXh0RGlyZWN0aW9u
IDogYm9vbCB7IExUUiwgUlRMIH07Ci0KLWlubGluZSBib29sIGlzTGVmdFRvUmlnaHREaXJlY3Rp
b24oVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24pCi17Ci0gICAgcmV0dXJuIGRpcmVjdGlvbiA9PSBU
ZXh0RGlyZWN0aW9uOjpMVFI7Ci19Ci0KIGVudW0gY2xhc3MgV3JpdGluZ01vZGUgOiB1aW50OF90
IHsKICAgICBUb3BUb0JvdHRvbSA9IDAsIC8vIGhvcml6b250YWwtdGIKICAgICBCb3R0b21Ub1Rv
cCA9IDEsIC8vIGhvcml6b250YWwtYnQKQEAgLTUwLDY3ICs0Myw2OCBAQCBlbnVtIGNsYXNzIFdy
aXRpbmdNb2RlIDogdWludDhfdCB7CiAgICAgUmlnaHRUb0xlZnQgPSAzLCAvLyB2ZXJ0aWNhbC1y
bAogfTsKIAotI2RlZmluZSBNQUtFX1RFWFRfRkxPVyh3cml0aW5nTW9kZSwgZGlyZWN0aW9uKSAg
KHN0YXRpY19jYXN0PHVuc2lnbmVkPih3cml0aW5nTW9kZSkgPDwgMSB8IHN0YXRpY19jYXN0PHVu
c2lnbmVkPihkaXJlY3Rpb24pKQorY29uc3RleHByIHVuc2lnbmVkIG1ha2VUZXh0Rmxvd0luaXRh
bGl6ZXIoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUsIFRleHREaXJlY3Rpb24gZGlyZWN0aW9uKQor
eworICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4od3JpdGluZ01vZGUpIDw8IDEgfCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oZGlyZWN0aW9uKTsKK30KIAogLy8gRGVmaW5lIHRoZSB0ZXh0
IGZsb3cgaW4gdGVybXMgb2YgdGhlIHdyaXRpbmcgbW9kZSBhbmQgdGhlIHRleHQgZGlyZWN0aW9u
LiBUaGUgZmlyc3QKIC8vIHBhcnQgaXMgdGhlIGxpbmUgZ3Jvd2luZyBkaXJlY3Rpb24gYW5kIHRo
ZSBzZWNvbmQgcGFydCBpcyB0aGUgYmxvY2sgZ3Jvd2luZyBkaXJlY3Rpb24uCiBlbnVtIFRleHRG
bG93IHsKLSAgICBJbmxpbmVFYXN0QmxvY2tTb3V0aCA9IE1BS0VfVEVYVF9GTE9XKFdyaXRpbmdN
b2RlOjpUb3BUb0JvdHRvbSwgVGV4dERpcmVjdGlvbjo6TFRSKSwKLSAgICBJbmxpbmVXZXN0Qmxv
Y2tTb3V0aCA9IE1BS0VfVEVYVF9GTE9XKFdyaXRpbmdNb2RlOjpUb3BUb0JvdHRvbSwgVGV4dERp
cmVjdGlvbjo6UlRMKSwKLSAgICBJbmxpbmVFYXN0QmxvY2tOb3J0aCA9IE1BS0VfVEVYVF9GTE9X
KFdyaXRpbmdNb2RlOjpCb3R0b21Ub1RvcCwgVGV4dERpcmVjdGlvbjo6TFRSKSwKLSAgICBJbmxp
bmVXZXN0QmxvY2tOb3J0aCA9IE1BS0VfVEVYVF9GTE9XKFdyaXRpbmdNb2RlOjpCb3R0b21Ub1Rv
cCwgVGV4dERpcmVjdGlvbjo6UlRMKSwKLSAgICBJbmxpbmVTb3V0aEJsb2NrRWFzdCA9IE1BS0Vf
VEVYVF9GTE9XKFdyaXRpbmdNb2RlOjpMZWZ0VG9SaWdodCwgVGV4dERpcmVjdGlvbjo6TFRSKSwK
LSAgICBJbmxpbmVTb3V0aEJsb2NrV2VzdCA9IE1BS0VfVEVYVF9GTE9XKFdyaXRpbmdNb2RlOjpM
ZWZ0VG9SaWdodCwgVGV4dERpcmVjdGlvbjo6UlRMKSwKLSAgICBJbmxpbmVOb3J0aEJsb2NrRWFz
dCA9IE1BS0VfVEVYVF9GTE9XKFdyaXRpbmdNb2RlOjpSaWdodFRvTGVmdCwgVGV4dERpcmVjdGlv
bjo6TFRSKSwKLSAgICBJbmxpbmVOb3J0aEJsb2NrV2VzdCA9IE1BS0VfVEVYVF9GTE9XKFdyaXRp
bmdNb2RlOjpSaWdodFRvTGVmdCwgVGV4dERpcmVjdGlvbjo6UlRMKQorICAgIElubGluZUVhc3RC
bG9ja1NvdXRoID0gbWFrZVRleHRGbG93SW5pdGFsaXplcihXcml0aW5nTW9kZTo6VG9wVG9Cb3R0
b20sIFRleHREaXJlY3Rpb246OkxUUiksCisgICAgSW5saW5lV2VzdEJsb2NrU291dGggPSBtYWtl
VGV4dEZsb3dJbml0YWxpemVyKFdyaXRpbmdNb2RlOjpUb3BUb0JvdHRvbSwgVGV4dERpcmVjdGlv
bjo6UlRMKSwKKyAgICBJbmxpbmVFYXN0QmxvY2tOb3J0aCA9IG1ha2VUZXh0Rmxvd0luaXRhbGl6
ZXIoV3JpdGluZ01vZGU6OkJvdHRvbVRvVG9wLCBUZXh0RGlyZWN0aW9uOjpMVFIpLAorICAgIElu
bGluZVdlc3RCbG9ja05vcnRoID0gbWFrZVRleHRGbG93SW5pdGFsaXplcihXcml0aW5nTW9kZTo6
Qm90dG9tVG9Ub3AsIFRleHREaXJlY3Rpb246OlJUTCksCisgICAgSW5saW5lU291dGhCbG9ja0Vh
c3QgPSBtYWtlVGV4dEZsb3dJbml0YWxpemVyKFdyaXRpbmdNb2RlOjpMZWZ0VG9SaWdodCwgVGV4
dERpcmVjdGlvbjo6TFRSKSwKKyAgICBJbmxpbmVTb3V0aEJsb2NrV2VzdCA9IG1ha2VUZXh0Rmxv
d0luaXRhbGl6ZXIoV3JpdGluZ01vZGU6OkxlZnRUb1JpZ2h0LCBUZXh0RGlyZWN0aW9uOjpSVEwp
LAorICAgIElubGluZU5vcnRoQmxvY2tFYXN0ID0gbWFrZVRleHRGbG93SW5pdGFsaXplcihXcml0
aW5nTW9kZTo6UmlnaHRUb0xlZnQsIFRleHREaXJlY3Rpb246OkxUUiksCisgICAgSW5saW5lTm9y
dGhCbG9ja1dlc3QgPSBtYWtlVGV4dEZsb3dJbml0YWxpemVyKFdyaXRpbmdNb2RlOjpSaWdodFRv
TGVmdCwgVGV4dERpcmVjdGlvbjo6UlRMKQogfTsKIAotaW5saW5lIFRleHRGbG93IG1ha2VUZXh0
RmxvdyhXcml0aW5nTW9kZSB3cml0aW5nTW9kZSwgVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24pCitj
b25zdGV4cHIgaW5saW5lIFRleHRGbG93IG1ha2VUZXh0RmxvdyhXcml0aW5nTW9kZSB3cml0aW5n
TW9kZSwgVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24pCiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0
PFRleHRGbG93PihNQUtFX1RFWFRfRkxPVyh3cml0aW5nTW9kZSwgZGlyZWN0aW9uKSk7CisgICAg
cmV0dXJuIHN0YXRpY19jYXN0PFRleHRGbG93PihtYWtlVGV4dEZsb3dJbml0YWxpemVyKHdyaXRp
bmdNb2RlLCBkaXJlY3Rpb24pKTsKIH0KIAotI3VuZGVmIE1BS0VfVEVYVF9GTE9XCi0KLWNvbnN0
IHVuc2lnbmVkIFRleHRGbG93UmV2ZXJzZWRNYXNrID0gMTsKLWNvbnN0IHVuc2lnbmVkIFRleHRG
bG93RmxpcHBlZE1hc2sgPSAyOwotY29uc3QgdW5zaWduZWQgVGV4dEZsb3dWZXJ0aWNhbE1hc2sg
PSA0OworY29uc3RleHByIHVuc2lnbmVkIFRleHRGbG93UmV2ZXJzZWRNYXNrID0gMTsKK2NvbnN0
ZXhwciB1bnNpZ25lZCBUZXh0Rmxvd0ZsaXBwZWRNYXNrID0gMjsKK2NvbnN0ZXhwciB1bnNpZ25l
ZCBUZXh0Rmxvd1ZlcnRpY2FsTWFzayA9IDQ7CiAKLWlubGluZSBib29sIGlzUmV2ZXJzZWRUZXh0
RmxvdyhUZXh0RmxvdyB0ZXh0ZmxvdykKK2NvbnN0ZXhwciBpbmxpbmUgYm9vbCBpc1JldmVyc2Vk
VGV4dEZsb3coVGV4dEZsb3cgdGV4dGZsb3cpCiB7CiAgICAgcmV0dXJuIHRleHRmbG93ICYgVGV4
dEZsb3dSZXZlcnNlZE1hc2s7CiB9CiAKLWlubGluZSBib29sIGlzRmxpcHBlZFRleHRGbG93KFRl
eHRGbG93IHRleHRmbG93KQorY29uc3RleHByIGlubGluZSBib29sIGlzRmxpcHBlZFRleHRGbG93
KFRleHRGbG93IHRleHRmbG93KQogewogICAgIHJldHVybiB0ZXh0ZmxvdyAmIFRleHRGbG93Rmxp
cHBlZE1hc2s7CiB9CiAKLWlubGluZSBib29sIGlzVmVydGljYWxUZXh0RmxvdyhUZXh0RmxvdyB0
ZXh0ZmxvdykKK2NvbnN0ZXhwciBpbmxpbmUgYm9vbCBpc1ZlcnRpY2FsVGV4dEZsb3coVGV4dEZs
b3cgdGV4dGZsb3cpCiB7CiAgICAgcmV0dXJuIHRleHRmbG93ICYgVGV4dEZsb3dWZXJ0aWNhbE1h
c2s7CiB9CiAKIC8vIExpbmVzIGhhdmUgdmVydGljYWwgb3JpZW50YXRpb247IG1vZGVzIHZlcnRp
Y2FsLWxyIG9yIHZlcnRpY2FsLXJsLgotaW5saW5lIGJvb2wgaXNWZXJ0aWNhbFdyaXRpbmdNb2Rl
KFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKQorY29uc3RleHByIGlubGluZSBib29sIGlzVmVydGlj
YWxXcml0aW5nTW9kZShXcml0aW5nTW9kZSB3cml0aW5nTW9kZSkKIHsKICAgICByZXR1cm4gaXNW
ZXJ0aWNhbFRleHRGbG93KG1ha2VUZXh0Rmxvdyh3cml0aW5nTW9kZSwgVGV4dERpcmVjdGlvbjo6
TFRSKSk7CiB9CiAKIC8vIEJsb2NrIHByb2dyZXNzaW9uIGluY3JlYXNlcyBpbiB0aGUgb3Bwb3Np
dGUgZGlyZWN0aW9uIHRvIG5vcm1hbDsgbW9kZXMgdmVydGljYWwtcmwgb3IgaG9yaXpvbnRhbC1i
dC4KLWlubGluZSBib29sIGlzRmxpcHBlZFdyaXRpbmdNb2RlKFdyaXRpbmdNb2RlIHdyaXRpbmdN
b2RlKQorY29uc3RleHByIGlubGluZSBib29sIGlzRmxpcHBlZFdyaXRpbmdNb2RlKFdyaXRpbmdN
b2RlIHdyaXRpbmdNb2RlKQogewogICAgIHJldHVybiBpc0ZsaXBwZWRUZXh0RmxvdyhtYWtlVGV4
dEZsb3cod3JpdGluZ01vZGUsIFRleHREaXJlY3Rpb246OkxUUikpOwogfQogCiAvLyBMaW5lcyBo
YXZlIGhvcml6b250YWwgb3JpZW50YXRpb247IG1vZGVzIGhvcml6b250YWwtdGIgb3IgaG9yaXpv
bnRhbC1idC4KLWlubGluZSBib29sIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKFdyaXRpbmdNb2Rl
IHdyaXRpbmdNb2RlKQorY29uc3RleHByIGlubGluZSBib29sIGlzSG9yaXpvbnRhbFdyaXRpbmdN
b2RlKFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKQogewogICAgIHJldHVybiAhaXNWZXJ0aWNhbFdy
aXRpbmdNb2RlKHdyaXRpbmdNb2RlKTsKIH0KIAogLy8gQm90dG9tIG9mIHRoZSBsaW5lIG9jY3Vy
cyBlYXJsaWVyIGluIHRoZSBibG9jazsgbW9kZXMgdmVydGljYWwtbHIgb3IgaG9yaXpvbnRhbC1i
dC4KLWlubGluZSBib29sIGlzRmxpcHBlZExpbmVzV3JpdGluZ01vZGUoV3JpdGluZ01vZGUgd3Jp
dGluZ01vZGUpCitjb25zdGV4cHIgaW5saW5lIGJvb2wgaXNGbGlwcGVkTGluZXNXcml0aW5nTW9k
ZShXcml0aW5nTW9kZSB3cml0aW5nTW9kZSkKIHsKICAgICByZXR1cm4gaXNWZXJ0aWNhbFdyaXRp
bmdNb2RlKHdyaXRpbmdNb2RlKSAhPSBpc0ZsaXBwZWRXcml0aW5nTW9kZSh3cml0aW5nTW9kZSk7
CiB9CkBAIC0xMzEsMjUgKzEyNSwyNSBAQCBlbnVtIGNsYXNzIEJveFNpZGUgOiB1aW50OF90IHsK
IAogY29uc3RleHByIHN0ZDo6YXJyYXk8Qm94U2lkZSwgND4gYWxsQm94U2lkZXMgPSB7IEJveFNp
ZGU6OlRvcCwgQm94U2lkZTo6UmlnaHQsIEJveFNpZGU6OkJvdHRvbSwgQm94U2lkZTo6TGVmdCB9
OwogCi1pbmxpbmUgYm9vbCBpc0hvcml6b250YWxQaHlzaWNhbFNpZGUoQm94U2lkZSBwaHlzaWNh
bFNpZGUpCitjb25zdGV4cHIgaW5saW5lIGJvb2wgaXNIb3Jpem9udGFsUGh5c2ljYWxTaWRlKEJv
eFNpZGUgcGh5c2ljYWxTaWRlKQogewogICAgIHJldHVybiBwaHlzaWNhbFNpZGUgPT0gQm94U2lk
ZTo6TGVmdCB8fCBwaHlzaWNhbFNpZGUgPT0gQm94U2lkZTo6UmlnaHQ7CiB9CiAKLWlubGluZSBC
b3hTaWRlIG1pcnJvclBoeXNpY2FsU2lkZShCb3hTaWRlIHBoeXNpY2FsU2lkZSkKK2NvbnN0ZXhw
ciBpbmxpbmUgQm94U2lkZSBtaXJyb3JQaHlzaWNhbFNpZGUoQm94U2lkZSBwaHlzaWNhbFNpZGUp
CiB7CiAgICAgLy8gdG9wIDwtPiBib3R0b20gYW5kIGxlZnQgPC0+IHJpZ2h0IGNvbnZlcnNpb24K
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Qm94U2lkZT4oKHN0YXRpY19jYXN0PGludD4ocGh5c2lj
YWxTaWRlKSArIDIpICUgNCk7CiB9CiAKLWlubGluZSBCb3hTaWRlIHJvdGF0ZVBoeXNpY2FsU2lk
ZShCb3hTaWRlIHBoeXNpY2FsU2lkZSkKK2NvbnN0ZXhwciBpbmxpbmUgQm94U2lkZSByb3RhdGVQ
aHlzaWNhbFNpZGUoQm94U2lkZSBwaHlzaWNhbFNpZGUpCiB7CiAgICAgLy8gdG9wIDwtPiBsZWZ0
IGFuZCByaWdodCA8LT4gYm90dG9tIGNvbnZlcnNpb24KICAgICBib29sIGhvcml6b250YWxTaWRl
ID0gaXNIb3Jpem9udGFsUGh5c2ljYWxTaWRlKHBoeXNpY2FsU2lkZSk7CiAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PEJveFNpZGU+KChzdGF0aWNfY2FzdDxpbnQ+KHBoeXNpY2FsU2lkZSkgKyAoaG9y
aXpvbnRhbFNpZGUgPyAxIDogMykpICUgNCk7CiB9CiAKLWlubGluZSBCb3hTaWRlIG1hcExvZ2lj
YWxTaWRlVG9QaHlzaWNhbFNpZGUoVGV4dEZsb3cgdGV4dGZsb3csIExvZ2ljYWxCb3hTaWRlIGxv
Z2ljYWxTaWRlKQorY29uc3RleHByIGlubGluZSBCb3hTaWRlIG1hcExvZ2ljYWxTaWRlVG9QaHlz
aWNhbFNpZGUoVGV4dEZsb3cgdGV4dGZsb3csIExvZ2ljYWxCb3hTaWRlIGxvZ2ljYWxTaWRlKQog
ewogICAgIEJveFNpZGUgcGh5c2ljYWxTaWRlID0gc3RhdGljX2Nhc3Q8Qm94U2lkZT4obG9naWNh
bFNpZGUpOwogICAgIGJvb2wgaG9yaXpvbnRhbFNpZGUgPSBpc0hvcml6b250YWxQaHlzaWNhbFNp
ZGUocGh5c2ljYWxTaWRlKTsKQEAgLTE2Myw3ICsxNTcsNyBAQCBpbmxpbmUgQm94U2lkZSBtYXBM
b2dpY2FsU2lkZVRvUGh5c2ljYWxTCiAgICAgcmV0dXJuIHBoeXNpY2FsU2lkZTsKIH0KIAotaW5s
aW5lIEJveFNpZGUgbWFwTG9naWNhbFNpZGVUb1BoeXNpY2FsU2lkZShXcml0aW5nTW9kZSB3cml0
aW5nTW9kZSwgTG9naWNhbEJveFNpZGUgbG9naWNhbFNpZGUpCitjb25zdGV4cHIgaW5saW5lIEJv
eFNpZGUgbWFwTG9naWNhbFNpZGVUb1BoeXNpY2FsU2lkZShXcml0aW5nTW9kZSB3cml0aW5nTW9k
ZSwgTG9naWNhbEJveFNpZGUgbG9naWNhbFNpZGUpCiB7CiAgICAgLy8gU2V0IHRoZSBkaXJlY3Rp
b24gc3VjaCB0aGF0IHNpZGUgaXMgbWlycm9yZWQgaWYgaXNGbGlwcGVkV3JpdGluZ01vZGUoKSBp
cyB0cnVlCiAgICAgVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24gPSBpc0ZsaXBwZWRXcml0aW5nTW9k
ZSh3cml0aW5nTW9kZSkgPyBUZXh0RGlyZWN0aW9uOjpSVEwgOiBUZXh0RGlyZWN0aW9uOjpMVFI7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAJKHJldmlzaW9u
IDI2OTgxOSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTcwNjIsNyArNzA2Miw4IEBAIGJvb2wgUmVuZGVyTGF5ZXI6OmludmFs
aWRhdGVFdmVudFJlZ2lvbigKICAgICAgICAgYXV0byYgdmlldyA9IHJlbmRlcmVyKCkudmlldygp
OwogICAgICAgICBMT0dfV0lUSF9TVFJFQU0oRXZlbnRSZWdpb25zLCBzdHJlYW0gPDwgIiBjYWxs
aW5nIHNldE5lZWRzRXZlbnRSZWdpb25VcGRhdGVGb3JOb25Db21wb3NpdGVkRnJhbWUgb24gIiA8
PCB2aWV3KTsKICAgICAgICAgdmlldy5zZXROZWVkc0V2ZW50UmVnaW9uVXBkYXRlRm9yTm9uQ29t
cG9zaXRlZEZyYW1lKCk7Ci0gICAgICAgIGlmIChyZW5kZXJlcigpLnNldHRpbmdzKCkudmlzaWJs
ZURlYnVnT3ZlcmxheVJlZ2lvbnMoKSAmIChUb3VjaEFjdGlvblJlZ2lvbiB8IEVkaXRhYmxlRWxl
bWVudFJlZ2lvbiB8IFdoZWVsRXZlbnRIYW5kbGVyUmVnaW9uKSkKKyAgICAgICAgYXV0byB2aXNp
YmxlRGVidWdPdmVybGF5UmVnaW9ucyA9IE9wdGlvblNldDxEZWJ1Z092ZXJsYXlSZWdpb25zPjo6
ZnJvbVJhdyhyZW5kZXJlcigpLnNldHRpbmdzKCkudmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMo
KSk7CisgICAgICAgIGlmICh2aXNpYmxlRGVidWdPdmVybGF5UmVnaW9ucy5jb250YWluc0FueSh7
IERlYnVnT3ZlcmxheVJlZ2lvbnM6OlRvdWNoQWN0aW9uUmVnaW9uLCBEZWJ1Z092ZXJsYXlSZWdp
b25zOjpFZGl0YWJsZUVsZW1lbnRSZWdpb24sIERlYnVnT3ZlcmxheVJlZ2lvbnM6OldoZWVsRXZl
bnRIYW5kbGVyUmVnaW9uIH0pKQogICAgICAgICAgICAgdmlldy5zZXROZWVkc1JlcGFpbnRIYWNr
QWZ0ZXJDb21wb3NpdGluZ0xheWVyVXBkYXRlRm9yRGVidWdPdmVybGF5c09ubHkoKTsKICAgICAg
ICAgdmlldy5jb21wb3NpdG9yKCkuc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyVXBkYXRlKCk7CiAg
ICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHAJKHJldmlzaW9uIDI2OTgxOSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMzE5LDggKzMzMTksOCBA
QCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnREZWJ1Z092ZXJsCiAgICAgYXV0byBjb250
ZW50T2Zmc2V0ID0gcm91bmRlZEludFNpemUoZ3JhcGhpY3NMYXllci0+b2Zmc2V0RnJvbVJlbmRl
cmVyKCkpOwogICAgIGNvbnRleHQudHJhbnNsYXRlKGNvbnRlbnRPZmZzZXQpOwogCi0gICAgYXV0
byB2aXNpYmxlRGVidWdPdmVybGF5UmVnaW9ucyA9IHJlbmRlcmVyKCkuc2V0dGluZ3MoKS52aXNp
YmxlRGVidWdPdmVybGF5UmVnaW9ucygpOwotICAgIGlmICh2aXNpYmxlRGVidWdPdmVybGF5UmVn
aW9ucyAmIChUb3VjaEFjdGlvblJlZ2lvbiB8IFdoZWVsRXZlbnRIYW5kbGVyUmVnaW9uKSkgewor
ICAgIGF1dG8gdmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMgPSBPcHRpb25TZXQ8RGVidWdPdmVy
bGF5UmVnaW9ucz46OmZyb21SYXcocmVuZGVyZXIoKS5zZXR0aW5ncygpLnZpc2libGVEZWJ1Z092
ZXJsYXlSZWdpb25zKCkpOworICAgIGlmICh2aXNpYmxlRGVidWdPdmVybGF5UmVnaW9ucy5jb250
YWluc0FueSh7IERlYnVnT3ZlcmxheVJlZ2lvbnM6OlRvdWNoQWN0aW9uUmVnaW9uLCBEZWJ1Z092
ZXJsYXlSZWdpb25zOjpXaGVlbEV2ZW50SGFuZGxlclJlZ2lvbiB9KSkgewogICAgICAgICBjb25z
dGV4cHIgYXV0byByZWdpb25Db2xvciA9IENvbG9yOjpibHVlLmNvbG9yV2l0aEFscGhhQnl0ZSg1
MCk7CiAgICAgICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKHJlZ2lvbkNvbG9yKTsKICAgICAgICAg
Zm9yIChhdXRvIHJlY3QgOiBldmVudFJlZ2lvbi5yZWdpb24oKS5yZWN0cygpKQpAQCAtMzMyOCw3
ICszMzI4LDcgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50RGVidWdPdmVybAogICAg
IH0KIAogI2lmIEVOQUJMRShUT1VDSF9BQ1RJT05fUkVHSU9OUykKLSAgICBpZiAodmlzaWJsZURl
YnVnT3ZlcmxheVJlZ2lvbnMgJiBUb3VjaEFjdGlvblJlZ2lvbikgeworICAgIGlmICh2aXNpYmxl
RGVidWdPdmVybGF5UmVnaW9ucy5jb250YWlucyhEZWJ1Z092ZXJsYXlSZWdpb25zOjpUb3VjaEFj
dGlvblJlZ2lvbikpIHsKICAgICAgICAgY29uc3QgVG91Y2hBY3Rpb24gdG91Y2hBY3Rpb25MaXN0
W10gPSB7CiAgICAgICAgICAgICBUb3VjaEFjdGlvbjo6Tm9uZSwKICAgICAgICAgICAgIFRvdWNo
QWN0aW9uOjpNYW5pcHVsYXRpb24sCkBAIC0zMzU0LDcgKzMzNTQsNyBAQCB2b2lkIFJlbmRlckxh
eWVyQmFja2luZzo6cGFpbnREZWJ1Z092ZXJsCiAjZW5kaWYKIAogI2lmIEVOQUJMRShXSEVFTF9F
VkVOVF9SRUdJT05TKQotICAgIGlmICh2aXNpYmxlRGVidWdPdmVybGF5UmVnaW9ucyAmIFdoZWVs
RXZlbnRIYW5kbGVyUmVnaW9uKSB7CisgICAgaWYgKHZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25z
LmNvbnRhaW5zKERlYnVnT3ZlcmxheVJlZ2lvbnM6OldoZWVsRXZlbnRIYW5kbGVyUmVnaW9uKSkg
ewogICAgICAgICBmb3IgKGF1dG8gdHlwZSA6IHsgRXZlbnRMaXN0ZW5lclJlZ2lvblR5cGU6Oldo
ZWVsLCBFdmVudExpc3RlbmVyUmVnaW9uVHlwZTo6Tm9uUGFzc2l2ZVdoZWVsIH0pIHsKICAgICAg
ICAgICAgIGF1dG8gZmlsbFBhdHRlcm4gPSBwYXR0ZXJuRm9yRXZlbnRMaXN0ZW5lclJlZ2lvblR5
cGUodHlwZSwgZ3JhcGhpY3NMYXllci0+b2Zmc2V0RnJvbVJlbmRlcmVyKCksIGNvbnRleHQpOwog
ICAgICAgICAgICAgY29udGV4dC5zZXRGaWxsUGF0dGVybihmaWxsUGF0dGVybi5yZWxlYXNlTm9u
TnVsbCgpKTsKQEAgLTMzNjcsNyArMzM2Nyw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpw
YWludERlYnVnT3ZlcmwKICNlbmRpZgogCiAjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKLSAg
ICBpZiAodmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMgJiBFZGl0YWJsZUVsZW1lbnRSZWdpb24p
IHsKKyAgICBpZiAodmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMuY29udGFpbnMoRGVidWdPdmVy
bGF5UmVnaW9uczo6RWRpdGFibGVFbGVtZW50UmVnaW9uKSkgewogICAgICAgICBjb250ZXh0LnNl
dEZpbGxDb2xvcihTUkdCQTx1aW50OF90PiB7IDEyOCwgMCwgMTI4LCA1MCB9KTsKICAgICAgICAg
Zm9yIChhdXRvIHJlY3QgOiBldmVudFJlZ2lvbi5yZWN0c0ZvckVkaXRhYmxlRWxlbWVudHMoKSkK
ICAgICAgICAgICAgIGNvbnRleHQuZmlsbFJlY3QocmVjdCk7CkBAIC0zNDE0LDcgKzM0MTQsOCBA
QCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRDb250ZW50cyhjCiAKICAgICAgICAgcGFp
bnRJbnRvTGF5ZXIoZ3JhcGhpY3NMYXllciwgY29udGV4dCwgZGlydHlSZWN0LCBiZWhhdmlvcik7
CiAKLSAgICAgICAgaWYgKHJlbmRlcmVyKCkuc2V0dGluZ3MoKS52aXNpYmxlRGVidWdPdmVybGF5
UmVnaW9ucygpICYgKFRvdWNoQWN0aW9uUmVnaW9uIHwgRWRpdGFibGVFbGVtZW50UmVnaW9uIHwg
V2hlZWxFdmVudEhhbmRsZXJSZWdpb24pKQorICAgICAgICBhdXRvIHZpc2libGVEZWJ1Z092ZXJs
YXlSZWdpb25zID0gT3B0aW9uU2V0PERlYnVnT3ZlcmxheVJlZ2lvbnM+Ojpmcm9tUmF3KHJlbmRl
cmVyKCkuc2V0dGluZ3MoKS52aXNpYmxlRGVidWdPdmVybGF5UmVnaW9ucygpKTsKKyAgICAgICAg
aWYgKHZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zLmNvbnRhaW5zQW55KHsgRGVidWdPdmVybGF5
UmVnaW9uczo6VG91Y2hBY3Rpb25SZWdpb24sIERlYnVnT3ZlcmxheVJlZ2lvbnM6OkVkaXRhYmxl
RWxlbWVudFJlZ2lvbiwgRGVidWdPdmVybGF5UmVnaW9uczo6V2hlZWxFdmVudEhhbmRsZXJSZWdp
b24gfSkpCiAgICAgICAgICAgICBwYWludERlYnVnT3ZlcmxheXMoZ3JhcGhpY3NMYXllciwgY29u
dGV4dCk7CiAKICAgICB9IGVsc2UgaWYgKGdyYXBoaWNzTGF5ZXIgPT0gbGF5ZXJGb3JIb3Jpem9u
dGFsU2Nyb2xsYmFyKCkpIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxT
ZXR0aW5ncy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmNwcAkocmV2aXNpb24gMjY5ODE5KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbFNldHRpbmdzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNiBAQAog
I2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIgogI2luY2x1ZGUgIlJlbmRl
clRoZW1lLmgiCiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgotI2luY2x1ZGUg
IlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKICNpbmNsdWRlIDx3dGYv
TGFuZ3VhZ2UuaD4KIApAQCAtNTAsOSArNDksOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBJ
bnRlcm5hbFNldHRpbmdzOjpCYWNrdXA6OkJhY2t1cChTZXR0aW5ncyYgc2V0dGluZ3MpCi0gICAg
OiBtX29yaWdpbmFsRWRpdGluZ0JlaGF2aW9yKHNldHRpbmdzLmVkaXRpbmdCZWhhdmlvclR5cGUo
KSkKLSAgICAsIG1fbWluaW11bURPTVRpbWVySW50ZXJ2YWwoc2V0dGluZ3MubWluaW11bURPTVRp
bWVySW50ZXJ2YWwoKSkKKyAgICA6IG1fbWluaW11bURPTVRpbWVySW50ZXJ2YWwoc2V0dGluZ3Mu
bWluaW11bURPTVRpbWVySW50ZXJ2YWwoKSkKICAgICAsIG1fb3JpZ2luYWxUaW1lV2l0aG91dE1v
dXNlTW92ZW1lbnRCZWZvcmVIaWRpbmdDb250cm9scyhzZXR0aW5ncy50aW1lV2l0aG91dE1vdXNl
TW92ZW1lbnRCZWZvcmVIaWRpbmdDb250cm9scygpKQorICAgICwgbV9vcmlnaW5hbEVkaXRpbmdC
ZWhhdmlvcihzZXR0aW5ncy5lZGl0aW5nQmVoYXZpb3JUeXBlKCkpCiAgICAgLCBtX3N0b3JhZ2VC
bG9ja2luZ1BvbGljeShzZXR0aW5ncy5zdG9yYWdlQmxvY2tpbmdQb2xpY3koKSkKICAgICAsIG1f
dXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeShzZXR0aW5ncy51c2VySW50ZXJmYWNlRGlyZWN0
aW9uUG9saWN5KCkpCiAgICAgLCBtX3N5c3RlbUxheW91dERpcmVjdGlvbihzZXR0aW5ncy5zeXN0
ZW1MYXlvdXREaXJlY3Rpb24oKSkKQEAgLTEwOCw5ICsxMDcsOSBAQCB2b2lkIEludGVybmFsU2V0
dGluZ3M6OkJhY2t1cDo6cmVzdG9yZVRvCiAgICAgICAgIHNldHRpbmdzLnNldFBpY3RvZ3JhcGhG
b250RmFtaWx5KHBpY3RvZ3JhcGhGb250LnZhbHVlLCBzdGF0aWNfY2FzdDxVU2NyaXB0Q29kZT4o
cGljdG9ncmFwaEZvbnQua2V5KSk7CiAgICAgbV9waWN0b2dyYXBoRm9udEZhbWlsaWVzLmNsZWFy
KCk7CiAKLSAgICBzZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3JUeXBlKG1fb3JpZ2luYWxFZGl0
aW5nQmVoYXZpb3IpOwogICAgIHNldHRpbmdzLnNldE1pbmltdW1ET01UaW1lckludGVydmFsKG1f
bWluaW11bURPTVRpbWVySW50ZXJ2YWwpOwogICAgIHNldHRpbmdzLnNldFRpbWVXaXRob3V0TW91
c2VNb3ZlbWVudEJlZm9yZUhpZGluZ0NvbnRyb2xzKG1fb3JpZ2luYWxUaW1lV2l0aG91dE1vdXNl
TW92ZW1lbnRCZWZvcmVIaWRpbmdDb250cm9scyk7CisgICAgc2V0dGluZ3Muc2V0RWRpdGluZ0Jl
aGF2aW9yVHlwZShtX29yaWdpbmFsRWRpdGluZ0JlaGF2aW9yKTsKICAgICBzZXR0aW5ncy5zZXRT
dG9yYWdlQmxvY2tpbmdQb2xpY3kobV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kpOwogICAgIHNldHRp
bmdzLnNldFVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3kobV91c2VySW50ZXJmYWNlRGlyZWN0
aW9uUG9saWN5KTsKICAgICBzZXR0aW5ncy5zZXRTeXN0ZW1MYXlvdXREaXJlY3Rpb24obV9zeXN0
ZW1MYXlvdXREaXJlY3Rpb24pOwpAQCAtMzA0LDI0ICszMDMsMTEgQEAgRXhjZXB0aW9uT3I8dm9p
ZD4gSW50ZXJuYWxTZXR0aW5nczo6c2V0VAogICAgIHJldHVybiB7IH07CiB9CiAKLUV4Y2VwdGlv
bk9yPHZvaWQ+IEludGVybmFsU2V0dGluZ3M6OnNldEVkaXRpbmdCZWhhdmlvcihFZGl0aW5nQmVo
YXZpb3IgZWRpdGluZ0JlaGF2aW9yKQorRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxTZXR0aW5n
czo6c2V0RWRpdGluZ0JlaGF2aW9yKEVkaXRpbmdCZWhhdmlvclR5cGUgZWRpdGluZ0JlaGF2aW9y
VHlwZSkKIHsKICAgICBpZiAoIW1fcGFnZSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRBY2Nlc3NFcnJvciB9OwotICAgIHN3aXRjaCAoZWRpdGluZ0JlaGF2aW9yKSB7Ci0gICAg
Y2FzZSBFZGl0aW5nQmVoYXZpb3I6OldpbjoKLSAgICAgICAgc2V0dGluZ3MoKS5zZXRFZGl0aW5n
QmVoYXZpb3JUeXBlKEVkaXRpbmdXaW5kb3dzQmVoYXZpb3IpOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIEVkaXRpbmdCZWhhdmlvcjo6TWFjOgotICAgICAgICBzZXR0aW5ncygpLnNldEVkaXRp
bmdCZWhhdmlvclR5cGUoRWRpdGluZ01hY0JlaGF2aW9yKTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBFZGl0aW5nQmVoYXZpb3I6OlVuaXg6Ci0gICAgICAgIHNldHRpbmdzKCkuc2V0RWRpdGlu
Z0JlaGF2aW9yVHlwZShFZGl0aW5nVW5peEJlaGF2aW9yKTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBFZGl0aW5nQmVoYXZpb3I6OklvczoKLSAgICAgICAgc2V0dGluZ3MoKS5zZXRFZGl0aW5n
QmVoYXZpb3JUeXBlKEVkaXRpbmdJT1NCZWhhdmlvcik7Ci0gICAgICAgIGJyZWFrOwotICAgIH0K
KyAgICBzZXR0aW5ncygpLnNldEVkaXRpbmdCZWhhdmlvclR5cGUoZWRpdGluZ0JlaGF2aW9yVHlw
ZSk7CiAgICAgcmV0dXJuIHsgfTsKIH0KIApAQCAtMzI5LDE3ICszMTUsNyBAQCBFeGNlcHRpb25P
cjx2b2lkPiBJbnRlcm5hbFNldHRpbmdzOjpzZXRTCiB7CiAgICAgaWYgKCFtX3BhZ2UpCiAgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKLSAgICBzd2l0Y2gg
KHBvbGljeSkgewotICAgIGNhc2UgU3RvcmFnZUJsb2NraW5nUG9saWN5OjpBbGxvd0FsbDoKLSAg
ICAgICAgc2V0dGluZ3MoKS5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koU2VjdXJpdHlPcmlnaW46
OkFsbG93QWxsU3RvcmFnZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgU3RvcmFnZUJsb2Nr
aW5nUG9saWN5OjpCbG9ja1RoaXJkUGFydHk6Ci0gICAgICAgIHNldHRpbmdzKCkuc2V0U3RvcmFn
ZUJsb2NraW5nUG9saWN5KFNlY3VyaXR5T3JpZ2luOjpCbG9ja1RoaXJkUGFydHlTdG9yYWdlKTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkJsb2NrQWxs
OgotICAgICAgICBzZXR0aW5ncygpLnNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShTZWN1cml0eU9y
aWdpbjo6QmxvY2tBbGxTdG9yYWdlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQorICAgIHNldHRp
bmdzKCkuc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KHBvbGljeSk7CiAgICAgcmV0dXJuIHsgfTsK
IH0KIApAQCAtMzQ3LDIwICszMjMsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNldHRp
bmdzOjpzZXRQCiB7CiAgICAgaWYgKCFtX3BhZ2UpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKLSAgICBzd2l0Y2ggKHBvbGljeSkgewotICAgIGNhc2Ug
UERGSW1hZ2VDYWNoaW5nUG9saWN5OjpFbmFibGVkOgotICAgICAgICBzZXR0aW5ncygpLnNldFBk
ZkltYWdlQ2FjaGluZ1BvbGljeShQREZJbWFnZUNhY2hpbmdEaXNhYmxlZCk7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgUERGSW1hZ2VDYWNoaW5nUG9saWN5OjpCZWxvd01lbW9yeUxpbWl0Ogot
ICAgICAgICBzZXR0aW5ncygpLnNldFBkZkltYWdlQ2FjaGluZ1BvbGljeShQREZJbWFnZUNhY2hp
bmdCZWxvd01lbW9yeUxpbWl0KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQREZJbWFnZUNh
Y2hpbmdQb2xpY3k6OkRpc2FibGVkOgotICAgICAgICBzZXR0aW5ncygpLnNldFBkZkltYWdlQ2Fj
aGluZ1BvbGljeShQREZJbWFnZUNhY2hpbmdEaXNhYmxlZCk7Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgUERGSW1hZ2VDYWNoaW5nUG9saWN5OjpDbGlwQm91bmRzT25seToKLSAgICAgICAgc2V0
dGluZ3MoKS5zZXRQZGZJbWFnZUNhY2hpbmdQb2xpY3koUERGSW1hZ2VDYWNoaW5nQ2xpcEJvdW5k
c09ubHkpOwotICAgICAgICBicmVhazsKLSAgICB9CisgICAgc2V0dGluZ3MoKS5zZXRQZGZJbWFn
ZUNhY2hpbmdQb2xpY3kocG9saWN5KTsKICAgICByZXR1cm4geyB9OwogfQogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAkocmV2aXNpb24gMjY5ODE5KQor
KysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI2LDIyICsyNiwxNCBAQAogCiAjcHJhZ21hIG9uY2UKIAotLy8gRklYTUUgKDEyMTky
Nyk6IFRoaXMgaW5jbHVkZSBzaG91bGQgbm90IGJlIG5lZWRlZC4KLSNpbmNsdWRlIDx3dGYvdGV4
dC9BdG9tU3RyaW5nSGFzaC5oPgotCi0jaW5jbHVkZSAiRWRpdGluZ0JlaGF2aW9yVHlwZXMuaCIK
ICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgIkZvbnRHZW5lcmljRmFtaWxpZXMu
aCIKLSNpbmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVkZSAiSW50ZXJuYWxTZXR0aW5nc0dlbmVy
YXRlZC5oIgotI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3Mu
aCIKLSNpbmNsdWRlICJXcml0aW5nTW9kZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIFBhZ2U7Ci1jbGFzcyBTZXR0aW5nczsKIAogY2xhc3MgSW50ZXJuYWxTZXR0aW5ncyA6IHB1
YmxpYyBJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkIHsKIHB1YmxpYzoKQEAgLTY0LDEzICs1Niwx
MyBAQCBwdWJsaWM6CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0TWluaW11bVRpbWVySW50ZXJ2
YWwoZG91YmxlIGludGVydmFsSW5TZWNvbmRzKTsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRU
aW1lV2l0aG91dE1vdXNlTW92ZW1lbnRCZWZvcmVIaWRpbmdDb250cm9scyhkb3VibGUgaW50ZXJ2
YWxJblNlY29uZHMpOwogCi0gICAgZW51bSBjbGFzcyBFZGl0aW5nQmVoYXZpb3IgOiB1aW50OF90
IHsgTWFjLCBXaW4sIFVuaXgsIElvcyB9OwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEVkaXRp
bmdCZWhhdmlvcihFZGl0aW5nQmVoYXZpb3IpOworICAgIHVzaW5nIEVkaXRpbmdCZWhhdmlvclR5
cGUgPSBXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3JUeXBlOworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+
IHNldEVkaXRpbmdCZWhhdmlvcihFZGl0aW5nQmVoYXZpb3JUeXBlKTsKICAgICAKLSAgICBlbnVt
IGNsYXNzIFBERkltYWdlQ2FjaGluZ1BvbGljeSA6IHVpbnQ4X3QgeyBFbmFibGVkLCBCZWxvd01l
bW9yeUxpbWl0LCBEaXNhYmxlZCwgQ2xpcEJvdW5kc09ubHkgfTsKKyAgICB1c2luZyBQREZJbWFn
ZUNhY2hpbmdQb2xpY3kgPSBXZWJDb3JlOjpQREZJbWFnZUNhY2hpbmdQb2xpY3k7CiAgICAgRXhj
ZXB0aW9uT3I8dm9pZD4gc2V0UERGSW1hZ2VDYWNoaW5nUG9saWN5KFBERkltYWdlQ2FjaGluZ1Bv
bGljeSk7CiAKLSAgICBlbnVtIGNsYXNzIFN0b3JhZ2VCbG9ja2luZ1BvbGljeSA6IHVpbnQ4X3Qg
eyBBbGxvd0FsbCwgQmxvY2tUaGlyZFBhcnR5LCBCbG9ja0FsbCB9OworICAgIHVzaW5nIFN0b3Jh
Z2VCbG9ja2luZ1BvbGljeSA9IFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeTsKICAgICBF
eGNlcHRpb25Pcjx2b2lkPiBzZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koU3RvcmFnZUJsb2NraW5n
UG9saWN5KTsKICAgICAKICAgICB1c2luZyBVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5ID0g
V2ViQ29yZTo6VXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeTsKQEAgLTc5LDEzICs3MSwxMyBA
QCBwdWJsaWM6CiAgICAgdXNpbmcgU3lzdGVtTGF5b3V0RGlyZWN0aW9uID0gVGV4dERpcmVjdGlv
bjsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRTeXN0ZW1MYXlvdXREaXJlY3Rpb24oU3lzdGVt
TGF5b3V0RGlyZWN0aW9uKTsKIAotICAgIHVzaW5nIEZvbnRMb2FkVGltaW5nT3ZlcnJpZGUgPSBT
ZXR0aW5nczo6Rm9udExvYWRUaW1pbmdPdmVycmlkZTsKKyAgICB1c2luZyBGb250TG9hZFRpbWlu
Z092ZXJyaWRlID0gV2ViQ29yZTo6Rm9udExvYWRUaW1pbmdPdmVycmlkZTsKICAgICBFeGNlcHRp
b25Pcjx2b2lkPiBzZXRGb250TG9hZFRpbWluZ092ZXJyaWRlKEZvbnRMb2FkVGltaW5nT3ZlcnJp
ZGUpOwogCiAgICAgdXNpbmcgRnJhbWVGbGF0dGVuaW5nVmFsdWUgPSBGcmFtZUZsYXR0ZW5pbmc7
CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0RnJhbWVGbGF0dGVuaW5nKEZyYW1lRmxhdHRlbmlu
Z1ZhbHVlKTsKIAotICAgIHVzaW5nIEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZSA9IFNldHRpbmdz
OjpGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWU7CisgICAgdXNpbmcgRm9yY2VkQWNjZXNzaWJpbGl0
eVZhbHVlID0gV2ViQ29yZTo6Rm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlOwogICAgIEZvcmNlZEFj
Y2Vzc2liaWxpdHlWYWx1ZSBmb3JjZWRDb2xvcnNBcmVJbnZlcnRlZEFjY2Vzc2liaWxpdHlWYWx1
ZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0Rm9yY2VkQ29sb3JzQXJlSW52ZXJ0ZWRBY2Nlc3NpYmls
aXR5VmFsdWUoRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlKTsKICAgICBGb3JjZWRBY2Nlc3NpYmls
aXR5VmFsdWUgZm9yY2VkRGlzcGxheUlzTW9ub2Nocm9tZUFjY2Vzc2liaWxpdHlWYWx1ZSgpIGNv
bnN0OwpAQCAtMTQ4LDE4ICsxNDAsMTggQEAgcHJpdmF0ZToKICAgICAgICAgU2NyaXB0Rm9udEZh
bWlseU1hcCBtX2N1cnNpdmVGb250RmFtaWxpZXM7CiAgICAgICAgIFNjcmlwdEZvbnRGYW1pbHlN
YXAgbV9mYW50YXN5Rm9udEZhbWlsaWVzOwogICAgICAgICBTY3JpcHRGb250RmFtaWx5TWFwIG1f
cGljdG9ncmFwaEZvbnRGYW1pbGllczsKLSAgICAgICAgRWRpdGluZ0JlaGF2aW9yVHlwZSBtX29y
aWdpbmFsRWRpdGluZ0JlaGF2aW9yOwogICAgICAgICBTZWNvbmRzIG1fbWluaW11bURPTVRpbWVy
SW50ZXJ2YWw7CiAgICAgICAgIFNlY29uZHMgbV9vcmlnaW5hbFRpbWVXaXRob3V0TW91c2VNb3Zl
bWVudEJlZm9yZUhpZGluZ0NvbnRyb2xzOwotICAgICAgICBTZWN1cml0eU9yaWdpbjo6U3RvcmFn
ZUJsb2NraW5nUG9saWN5IG1fc3RvcmFnZUJsb2NraW5nUG9saWN5OwotICAgICAgICBVc2VySW50
ZXJmYWNlRGlyZWN0aW9uUG9saWN5IG1fdXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeTsKKyAg
ICAgICAgV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yVHlwZSBtX29yaWdpbmFsRWRpdGluZ0JlaGF2
aW9yOworICAgICAgICBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgbV9zdG9yYWdlQmxv
Y2tpbmdQb2xpY3k7CisgICAgICAgIFdlYkNvcmU6OlVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xp
Y3kgbV91c2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5OwogICAgICAgICBUZXh0RGlyZWN0aW9u
IG1fc3lzdGVtTGF5b3V0RGlyZWN0aW9uOwogICAgICAgICBXZWJDb3JlOjpQREZJbWFnZUNhY2hp
bmdQb2xpY3kgbV9wZGZJbWFnZUNhY2hpbmdQb2xpY3k7Ci0gICAgICAgIFNldHRpbmdzOjpGb3Jj
ZWRBY2Nlc3NpYmlsaXR5VmFsdWUgbV9mb3JjZWRDb2xvcnNBcmVJbnZlcnRlZEFjY2Vzc2liaWxp
dHlWYWx1ZTsKLSAgICAgICAgU2V0dGluZ3M6OkZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZSBtX2Zv
cmNlZERpc3BsYXlJc01vbm9jaHJvbWVBY2Nlc3NpYmlsaXR5VmFsdWU7Ci0gICAgICAgIFNldHRp
bmdzOjpGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUgbV9mb3JjZWRQcmVmZXJzUmVkdWNlZE1vdGlv
bkFjY2Vzc2liaWxpdHlWYWx1ZTsKLSAgICAgICAgU2V0dGluZ3M6OkZvbnRMb2FkVGltaW5nT3Zl
cnJpZGUgbV9mb250TG9hZFRpbWluZ092ZXJyaWRlOwotICAgICAgICBGcmFtZUZsYXR0ZW5pbmcg
bV9mcmFtZUZsYXR0ZW5pbmc7CisgICAgICAgIFdlYkNvcmU6OkZvcmNlZEFjY2Vzc2liaWxpdHlW
YWx1ZSBtX2ZvcmNlZENvbG9yc0FyZUludmVydGVkQWNjZXNzaWJpbGl0eVZhbHVlOworICAgICAg
ICBXZWJDb3JlOjpGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUgbV9mb3JjZWREaXNwbGF5SXNNb25v
Y2hyb21lQWNjZXNzaWJpbGl0eVZhbHVlOworICAgICAgICBXZWJDb3JlOjpGb3JjZWRBY2Nlc3Np
YmlsaXR5VmFsdWUgbV9mb3JjZWRQcmVmZXJzUmVkdWNlZE1vdGlvbkFjY2Vzc2liaWxpdHlWYWx1
ZTsKKyAgICAgICAgV2ViQ29yZTo6Rm9udExvYWRUaW1pbmdPdmVycmlkZSBtX2ZvbnRMb2FkVGlt
aW5nT3ZlcnJpZGU7CisgICAgICAgIFdlYkNvcmU6OkZyYW1lRmxhdHRlbmluZyBtX2ZyYW1lRmxh
dHRlbmluZzsKIAogICAgICAgICAvLyBSdW50aW1lRW5hYmxlZEZlYXR1cmVzCiAgICAgICAgIGJv
b2wgbV93ZWJHTDJFbmFibGVkOwpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuaWRsCShyZXZpc2lvbiAyNjk4MTkpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNCwxMSArMjQsMTEg
QEAKICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotZW51bSBFZGl0aW5nQmVoYXZpb3IgeyAibWFjIiwgIndp
biIsICJ1bml4IiwgImlvcyIgfTsKK2VudW0gRWRpdGluZ0JlaGF2aW9yVHlwZSB7ICJtYWMiLCAi
d2luZG93cyIsICJ1bml4IiwgImlvcyIgfTsKIGVudW0gRm9udExvYWRUaW1pbmdPdmVycmlkZSB7
ICJOb25lIiwgIkJsb2NrIiwgIlN3YXAiLCAiRmFpbHVyZSIgfTsKIGVudW0gRm9yY2VkQWNjZXNz
aWJpbGl0eVZhbHVlIHsgInN5c3RlbSIsICJvbiIsICJvZmYiIH07CiBlbnVtIEZyYW1lRmxhdHRl
bmluZ1ZhbHVlIHsgIkRpc2FibGVkIiwgIkVuYWJsZWRGb3JOb25GdWxsU2NyZWVuSUZyYW1lcyIs
ICJGdWxseUVuYWJsZWQiIH07Ci1lbnVtIFBERkltYWdlQ2FjaGluZ1BvbGljeSB7ICJlbmFibGVk
IiwgImJlbG93TWVtb3J5TGltaXQiLCAiZGlzYWJsZWQiLCAiY2xpcEJvdW5kc09ubHkiIH07Citl
bnVtIFBERkltYWdlQ2FjaGluZ1BvbGljeSB7ICJFbmFibGVkIiwgIkJlbG93TWVtb3J5TGltaXQi
LCAiRGlzYWJsZWQiLCAiQ2xpcEJvdW5kc09ubHkiIH07CiBlbnVtIFN0b3JhZ2VCbG9ja2luZ1Bv
bGljeSB7ICJBbGxvd0FsbCIsICJCbG9ja1RoaXJkUGFydHkiLCAiQmxvY2tBbGwiIH07CiBlbnVt
IFN5c3RlbUxheW91dERpcmVjdGlvbiB7ICJMVFIiLCAiUlRMIiB9OwogZW51bSBUcmFja0tpbmQg
eyAiU3VidGl0bGVzIiwgIkNhcHRpb25zIiwgIlRleHREZXNjcmlwdGlvbnMiIH07CkBAIC01Miw3
ICs1Miw3IEBAIGVudW0gVXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeSB7ICJDb24KICAgICBb
TWF5VGhyb3dFeGNlcHRpb25dIHVuZGVmaW5lZCBzZXRUZXh0QXV0b3NpemluZ1dpbmRvd1NpemVP
dmVycmlkZShsb25nIHdpZHRoLCBsb25nIGhlaWdodCk7CiAgICAgW01heVRocm93RXhjZXB0aW9u
XSB1bmRlZmluZWQgc2V0VGltZVdpdGhvdXRNb3VzZU1vdmVtZW50QmVmb3JlSGlkaW5nQ29udHJv
bHModW5yZXN0cmljdGVkIGRvdWJsZSBpbnRlcnZhbEluU2Vjb25kcyk7CiAgICAgW01heVRocm93
RXhjZXB0aW9uXSB1bmRlZmluZWQgc2V0TWluaW11bVRpbWVySW50ZXJ2YWwodW5yZXN0cmljdGVk
IGRvdWJsZSBpbnRlcnZhbEluU2Vjb25kcyk7Ci0gICAgW01heVRocm93RXhjZXB0aW9uXSB1bmRl
ZmluZWQgc2V0RWRpdGluZ0JlaGF2aW9yKEVkaXRpbmdCZWhhdmlvciBiZWhhdmlvcik7CisgICAg
W01heVRocm93RXhjZXB0aW9uXSB1bmRlZmluZWQgc2V0RWRpdGluZ0JlaGF2aW9yKEVkaXRpbmdC
ZWhhdmlvclR5cGUgYmVoYXZpb3IpOwogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gdW5kZWZpbmVk
IHNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShTdG9yYWdlQmxvY2tpbmdQb2xpY3kgcG9saWN5KTsK
ICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHVuZGVmaW5lZCBzZXRQREZJbWFnZUNhY2hpbmdQb2xp
Y3koUERGSW1hZ2VDYWNoaW5nUG9saWN5IHBvbGljeSk7CiAgICAgW01heVRocm93RXhjZXB0aW9u
XSB1bmRlZmluZWQgc2V0RnJhbWVGbGF0dGVuaW5nKEZyYW1lRmxhdHRlbmluZ1ZhbHVlIGZyYW1l
RmxhdHRlbmluZyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAJ
KHJldmlzaW9uIDI2OTgxOSkKKysrIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUyLDcg
KzUyLDcgQEAgc3RhdGljIFVSTCB0b3BPcmlnaW5VUkwoY29uc3QgU2VjdXJpdHlPcgogICAgIHJl
dHVybiBVUkwgeyBVUkwgeyB9LCBvcmlnaW4udG9SYXdTdHJpbmcoKSB9OwogfQogCi1zdGF0aWMg
aW5saW5lIFVuaXF1ZVJlZjxQYWdlPiBjcmVhdGVQYWdlRm9yU2VydmljZVdvcmtlcihQYWdlQ29u
ZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24sIGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0
YSYgZGF0YSwgU2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBzdG9yYWdlQmxv
Y2tpbmdQb2xpY3kpCitzdGF0aWMgaW5saW5lIFVuaXF1ZVJlZjxQYWdlPiBjcmVhdGVQYWdlRm9y
U2VydmljZVdvcmtlcihQYWdlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24sIGNvbnN0IFNl
cnZpY2VXb3JrZXJDb250ZXh0RGF0YSYgZGF0YSwgU3RvcmFnZUJsb2NraW5nUG9saWN5IHN0b3Jh
Z2VCbG9ja2luZ1BvbGljeSkKIHsKICAgICBhdXRvIHBhZ2UgPSBtYWtlVW5pcXVlUmVmPFBhZ2U+
KFdURk1vdmUoY29uZmlndXJhdGlvbikpOwogCkBAIC05NCw3ICs5NCw3IEBAIHN0YXRpYyBIYXNo
U2V0PFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSoKICAgICByZXR1cm4gc2V0OwogfQogCi1TZXJ2
aWNlV29ya2VyVGhyZWFkUHJveHk6OlNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eShQYWdlQ29uZmln
dXJhdGlvbiYmIHBhZ2VDb25maWd1cmF0aW9uLCBjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERh
dGEmIGRhdGEsIFN0cmluZyYmIHVzZXJBZ2VudCwgQ2FjaGVTdG9yYWdlUHJvdmlkZXImIGNhY2hl
U3RvcmFnZVByb3ZpZGVyLCBTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5IHN0
b3JhZ2VCbG9ja2luZ1BvbGljeSkKK1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6U2VydmljZVdv
cmtlclRocmVhZFByb3h5KFBhZ2VDb25maWd1cmF0aW9uJiYgcGFnZUNvbmZpZ3VyYXRpb24sIGNv
bnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYgZGF0YSwgU3RyaW5nJiYgdXNlckFnZW50LCBD
YWNoZVN0b3JhZ2VQcm92aWRlciYgY2FjaGVTdG9yYWdlUHJvdmlkZXIsIFN0b3JhZ2VCbG9ja2lu
Z1BvbGljeSBzdG9yYWdlQmxvY2tpbmdQb2xpY3kpCiAgICAgOiBtX3BhZ2UoY3JlYXRlUGFnZUZv
clNlcnZpY2VXb3JrZXIoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbiksIGRhdGEsIHN0b3JhZ2VC
bG9ja2luZ1BvbGljeSkpCiAgICAgLCBtX2RvY3VtZW50KCptX3BhZ2UtPm1haW5GcmFtZSgpLmRv
Y3VtZW50KCkpCiAgICAgLCBtX3NlcnZpY2VXb3JrZXJUaHJlYWQoU2VydmljZVdvcmtlclRocmVh
ZDo6Y3JlYXRlKGRhdGEsIFdURk1vdmUodXNlckFnZW50KSwgKnRoaXMsICp0aGlzLCBpZGJDb25u
ZWN0aW9uUHJveHkobV9kb2N1bWVudCksIG1fZG9jdW1lbnQtPnNvY2tldFByb3ZpZGVyKCkpKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
clRocmVhZFByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmgJKHJldmlzaW9uIDI2OTgxOSkK
KysrIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSwxMSArMzEsMTEgQEAKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZldGNoSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlBh
Z2UuaCIKLSNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3Jr
ZXJEZWJ1Z2dhYmxlLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlcklkZW50aWZpZXIuaCIKICNp
bmNsdWRlICJTZXJ2aWNlV29ya2VySW5zcGVjdG9yUHJveHkuaCIKICNpbmNsdWRlICJTZXJ2aWNl
V29ya2VyVGhyZWFkLmgiCisjaW5jbHVkZSAiU3RvcmFnZUJsb2NraW5nUG9saWN5LmgiCiAjaW5j
bHVkZSAiV29ya2VyRGVidWdnZXJQcm94eS5oIgogI2luY2x1ZGUgIldvcmtlckxvYWRlclByb3h5
LmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTgwLDcgKzgwLDcgQEAgcHVibGljOgog
ICAgIHZvaWQgZmlyZUFjdGl2YXRlRXZlbnQoKTsKIAogcHJpdmF0ZToKLSAgICBXRUJDT1JFX0VY
UE9SVCBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkoUGFnZUNvbmZpZ3VyYXRpb24mJiwgY29uc3Qg
U2VydmljZVdvcmtlckNvbnRleHREYXRhJiwgU3RyaW5nJiYgdXNlckFnZW50LCBDYWNoZVN0b3Jh
Z2VQcm92aWRlciYsIFNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kpOworICAg
IFdFQkNPUkVfRVhQT1JUIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eShQYWdlQ29uZmlndXJhdGlv
biYmLCBjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmLCBTdHJpbmcmJiB1c2VyQWdlbnQs
IENhY2hlU3RvcmFnZVByb3ZpZGVyJiwgU3RvcmFnZUJsb2NraW5nUG9saWN5KTsKIAogICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIG5ldHdvcmtTdGF0ZUNoYW5nZWQoYm9vbCBpc09uTGlu
ZSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjk4MjkpCisrKyBTb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDIwLTExLTE1ICBTYW0g
V2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBTdGFuZGFyZGl6ZSBlbnVtcyB0
aGF0IGFyZSB1c2VkIGJ5IFNldHRpbmdzIGluIHByZXBlcmF0aW9uIGZvciBhdXRvZ2VuZXJhdGlv
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4OTYw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1dJUF0K
KworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaDoKKyAgICAgICAgKFdlYktp
dDo6dG9BUEkpOgorICAgICAgICAoV2ViS2l0Ojp0b0VkaXRhYmxlTGlua0JlaGF2aW9yKToKKyAg
ICAgICAgKFdlYktpdDo6dG9TdG9yYWdlQmxvY2tpbmdQb2xpY3kpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNTZXRF
ZGl0YWJsZUxpbmtCZWhhdmlvcik6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0U3RvcmFnZUJs
b2NraW5nUG9saWN5KToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNHZXRTdG9yYWdlQmxvY2tpbmdQ
b2xpY3kpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbToK
KyAgICAgICAgKHRvU3RvcmFnZUJsb2NraW5nUG9saWN5KToKKyAgICAgICAgKHRvQVBJKToKKyAg
ICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfc3RvcmFnZUJsb2NraW5nUG9saWN5XSk6CisgICAgICAg
ICgtW1dLUHJlZmVyZW5jZXMgX3NldFN0b3JhZ2VCbG9ja2luZ1BvbGljeTpdKToKKyAgICAgICAg
KHRvRWRpdGFibGVMaW5rQmVoYXZpb3IpOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIF9zZXRF
ZGl0YWJsZUxpbmtCZWhhdmlvcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJlZmVyZW5j
ZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcmVmZXJlbmNlczo6Y3JlYXRlV2l0aExlZ2Fj
eURlZmF1bHRzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbjo6dXBkYXRlUHJlZmVyZW5jZXNTdG9yZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1
cGRhdGVQcmVmZXJlbmNlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRldGVjdERhdGFJ
bkFsbEZyYW1lcyk6CisKIDIwMjAtMTEtMTUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBh
cHBsZS5jb20+CiAKICAgICAgICAgSW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiBET00gcmVuZGVy
aW5nIHZpYSB0aGUgR1BVIHByb2Nlc3MKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByZWZlcmVuY2VzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcmVmZXJlbmNlcy5jcHAJKHJldmlzaW9uIDI2OTgxOSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByZWZlcmVuY2VzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMsNyBA
QCBSZWY8V2ViUHJlZmVyZW5jZXM+IFdlYlByZWZlcmVuY2VzOjpjcmVhCiAgICAgcHJlZmVyZW5j
ZXMtPnJlZ2lzdGVyRGVmYXVsdEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6amF2
YUVuYWJsZWRLZXkoKSwgdHJ1ZSk7CiAgICAgcHJlZmVyZW5jZXMtPnJlZ2lzdGVyRGVmYXVsdEJv
b2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6amF2YUVuYWJsZWRGb3JMb2NhbEZpbGVz
S2V5KCksIHRydWUpOwogICAgIHByZWZlcmVuY2VzLT5yZWdpc3RlckRlZmF1bHRCb29sVmFsdWVG
b3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnBsdWdpbnNFbmFibGVkS2V5KCksIHRydWUpOwotICAg
IHByZWZlcmVuY2VzLT5yZWdpc3RlckRlZmF1bHRVSW50MzJWYWx1ZUZvcktleShXZWJQcmVmZXJl
bmNlc0tleTo6c3RvcmFnZUJsb2NraW5nUG9saWN5S2V5KCksIFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luOjpBbGxvd0FsbFN0b3JhZ2UpOworICAgIHByZWZlcmVuY2VzLT5yZWdpc3RlckRlZmF1bHRV
SW50MzJWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6c3RvcmFnZUJsb2NraW5nUG9saWN5
S2V5KCksIHN0YXRpY19jYXN0PHVpbnQzMl90PihXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xp
Y3k6OkFsbG93QWxsKSk7CiAgICAgcmV0dXJuIHByZWZlcmVuY2VzOwogfQogCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAkocmV2aXNpb24gMjY5ODE5KQor
KysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI1MiwxNSArMjUyLDE1IEBAIGlubGluZSBXS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNv
biB0b0FQSSgKIGlubGluZSBXS0VkaXRhYmxlTGlua0JlaGF2aW9yIHRvQVBJKFdlYkNvcmU6OkVk
aXRhYmxlTGlua0JlaGF2aW9yIGJlaGF2aW9yKQogewogICAgIHN3aXRjaCAoYmVoYXZpb3IpIHsK
LSAgICBjYXNlIFdlYkNvcmU6OkVkaXRhYmxlTGlua0RlZmF1bHRCZWhhdmlvcjoKKyAgICBjYXNl
IFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpEZWZhdWx0OgogICAgICAgICByZXR1cm4g
a1dLRWRpdGFibGVMaW5rQmVoYXZpb3JEZWZhdWx0OwotICAgIGNhc2UgV2ViQ29yZTo6RWRpdGFi
bGVMaW5rQWx3YXlzTGl2ZToKKyAgICBjYXNlIFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9y
OjpBbHdheXNMaXZlOgogICAgICAgICByZXR1cm4ga1dLRWRpdGFibGVMaW5rQmVoYXZpb3JBbHdh
eXNMaXZlOwotICAgIGNhc2UgV2ViQ29yZTo6RWRpdGFibGVMaW5rT25seUxpdmVXaXRoU2hpZnRL
ZXk6CisgICAgY2FzZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvcjo6T25seUxpdmVXaXRo
U2hpZnRLZXk6CiAgICAgICAgIHJldHVybiBrV0tFZGl0YWJsZUxpbmtCZWhhdmlvck9ubHlMaXZl
V2l0aFNoaWZ0S2V5OwotICAgIGNhc2UgV2ViQ29yZTo6RWRpdGFibGVMaW5rTGl2ZVdoZW5Ob3RG
b2N1c2VkOgorICAgIGNhc2UgV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6OkxpdmVXaGVu
Tm90Rm9jdXNlZDoKICAgICAgICAgcmV0dXJuIGtXS0VkaXRhYmxlTGlua0JlaGF2aW9yTGl2ZVdo
ZW5Ob3RGb2N1c2VkOwotICAgIGNhc2UgV2ViQ29yZTo6RWRpdGFibGVMaW5rTmV2ZXJMaXZlOgor
ICAgIGNhc2UgV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6Ok5ldmVyTGl2ZToKICAgICAg
ICAgcmV0dXJuIGtXS0VkaXRhYmxlTGlua0JlaGF2aW9yTmV2ZXJMaXZlOwogICAgIH0KICAgICAK
QEAgLTI3MiwxOSArMjcyLDE5IEBAIGlubGluZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlv
ciB0b0UKIHsKICAgICBzd2l0Y2ggKHdrQmVoYXZpb3IpIHsKICAgICBjYXNlIGtXS0VkaXRhYmxl
TGlua0JlaGF2aW9yRGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRhYmxlTGlu
a0RlZmF1bHRCZWhhdmlvcjsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRhYmxlTGlua0Jl
aGF2aW9yOjpEZWZhdWx0OwogICAgIGNhc2Uga1dLRWRpdGFibGVMaW5rQmVoYXZpb3JBbHdheXNM
aXZlOgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5rQWx3YXlzTGl2ZTsKKyAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpBbHdheXNMaXZlOwog
ICAgIGNhc2Uga1dLRWRpdGFibGVMaW5rQmVoYXZpb3JPbmx5TGl2ZVdpdGhTaGlmdEtleToKLSAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRhYmxlTGlua09ubHlMaXZlV2l0aFNoaWZ0S2V5Owor
ICAgICAgICByZXR1cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6Ok9ubHlMaXZlV2l0
aFNoaWZ0S2V5OwogICAgIGNhc2Uga1dLRWRpdGFibGVMaW5rQmVoYXZpb3JMaXZlV2hlbk5vdEZv
Y3VzZWQ6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpFZGl0YWJsZUxpbmtMaXZlV2hlbk5vdEZv
Y3VzZWQ7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvcjo6TGl2
ZVdoZW5Ob3RGb2N1c2VkOwogICAgIGNhc2Uga1dLRWRpdGFibGVMaW5rQmVoYXZpb3JOZXZlckxp
dmU6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpFZGl0YWJsZUxpbmtOZXZlckxpdmU7CisgICAg
ICAgIHJldHVybiBXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvcjo6TmV2ZXJMaXZlOwogICAg
IH0KICAgICAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gV2ViQ29yZTo6
RWRpdGFibGVMaW5rTmV2ZXJMaXZlOworICAgIHJldHVybiBXZWJDb3JlOjpFZGl0YWJsZUxpbmtC
ZWhhdmlvcjo6TmV2ZXJMaXZlOwogfQogICAgIAogaW5saW5lIFdLUHJvdGVjdGlvblNwYWNlU2Vy
dmVyVHlwZSB0b0FQSShXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlIHR5cGUpCkBA
IC0zODQsMjkgKzM4NCwyOSBAQCBpbmxpbmUgV0tIVFRQQ29va2llQWNjZXB0UG9saWN5IHRvQVBJ
KFdlCiAgICAgcmV0dXJuIGtXS0hUVFBDb29raWVBY2NlcHRQb2xpY3lBbHdheXM7CiB9CiAKLWlu
bGluZSBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5IHRvU3Rv
cmFnZUJsb2NraW5nUG9saWN5KFdLU3RvcmFnZUJsb2NraW5nUG9saWN5IHBvbGljeSkKK2lubGlu
ZSBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgdG9TdG9yYWdlQmxvY2tpbmdQb2xpY3ko
V0tTdG9yYWdlQmxvY2tpbmdQb2xpY3kgcG9saWN5KQogewogICAgIHN3aXRjaCAocG9saWN5KSB7
CiAgICAgY2FzZSBrV0tBbGxvd0FsbFN0b3JhZ2U6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbjo6QWxsb3dBbGxTdG9yYWdlOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6
U3RvcmFnZUJsb2NraW5nUG9saWN5OjpBbGxvd0FsbDsKICAgICBjYXNlIGtXS0Jsb2NrVGhpcmRQ
YXJ0eVN0b3JhZ2U6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6Qmxv
Y2tUaGlyZFBhcnR5U3RvcmFnZTsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlN0b3JhZ2VCbG9j
a2luZ1BvbGljeTo6QmxvY2tUaGlyZFBhcnR5OwogICAgIGNhc2Uga1dLQmxvY2tBbGxTdG9yYWdl
OgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OkJsb2NrQWxsU3RvcmFn
ZTsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QmxvY2tB
bGw7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luOjpBbGxvd0FsbFN0b3JhZ2U7CisgICAgcmV0dXJuIFdlYkNvcmU6
OlN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QWxsb3dBbGw7CiB9CiAKLWlubGluZSBXS1N0b3JhZ2VC
bG9ja2luZ1BvbGljeSB0b0FQSShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2Nr
aW5nUG9saWN5IHBvbGljeSkKK2lubGluZSBXS1N0b3JhZ2VCbG9ja2luZ1BvbGljeSB0b0FQSShX
ZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgcG9saWN5KQogewogICAgIHN3aXRjaCAocG9s
aWN5KSB7Ci0gICAgY2FzZSBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6QWxsb3dBbGxTdG9yYWdl
OgorICAgIGNhc2UgV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5OjpBbGxvd0FsbDoKICAg
ICAgICAgcmV0dXJuIGtXS0FsbG93QWxsU3RvcmFnZTsKLSAgICBjYXNlIFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luOjpCbG9ja1RoaXJkUGFydHlTdG9yYWdlOgorICAgIGNhc2UgV2ViQ29yZTo6U3Rv
cmFnZUJsb2NraW5nUG9saWN5OjpCbG9ja1RoaXJkUGFydHk6CiAgICAgICAgIHJldHVybiBrV0tC
bG9ja1RoaXJkUGFydHlTdG9yYWdlOwotICAgIGNhc2UgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46
OkJsb2NrQWxsU3RvcmFnZToKKyAgICBjYXNlIFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGlj
eTo6QmxvY2tBbGw6CiAgICAgICAgIHJldHVybiBrV0tCbG9ja0FsbFN0b3JhZ2U7CiAgICAgfQog
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2Vz
LmNwcAkocmV2aXNpb24gMjY5ODE5KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tQcmVmZXJlbmNlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1OCw3ICszNTgsNyBAQCBib29s
IFdLUHJlZmVyZW5jZXNHZXRDb29raWVFbmFibGVkKFdLUHJlCiAKIHZvaWQgV0tQcmVmZXJlbmNl
c1NldEVkaXRhYmxlTGlua0JlaGF2aW9yKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYs
IFdLRWRpdGFibGVMaW5rQmVoYXZpb3Igd2tCZWhhdmlvcikKIHsKLSAgICB0b0ltcGwocHJlZmVy
ZW5jZXNSZWYpLT5zZXRFZGl0YWJsZUxpbmtCZWhhdmlvcih0b0VkaXRhYmxlTGlua0JlaGF2aW9y
KHdrQmVoYXZpb3IpKTsKKyAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZXRFZGl0YWJsZUxp
bmtCZWhhdmlvcihzdGF0aWNfY2FzdDx1aW50MzJfdD4odG9FZGl0YWJsZUxpbmtCZWhhdmlvcih3
a0JlaGF2aW9yKSkpOwogfQogCiBXS0VkaXRhYmxlTGlua0JlaGF2aW9yIFdLUHJlZmVyZW5jZXNH
ZXRFZGl0YWJsZUxpbmtCZWhhdmlvcihXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQpA
QCAtOTk4LDEyICs5OTgsMTIgQEAgYm9vbCBXS1ByZWZlcmVuY2VzR2V0UmVxdWVzdEFuaW1hdGlv
bkZyYQogCiB2b2lkIFdLUHJlZmVyZW5jZXNTZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koV0tQcmVm
ZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgV0tTdG9yYWdlQmxvY2tpbmdQb2xpY3kgcG9saWN5
KQogewotICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldFN0b3JhZ2VCbG9ja2luZ1BvbGlj
eSh0b1N0b3JhZ2VCbG9ja2luZ1BvbGljeShwb2xpY3kpKTsKKyAgICB0b0ltcGwocHJlZmVyZW5j
ZXNSZWYpLT5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHRv
U3RvcmFnZUJsb2NraW5nUG9saWN5KHBvbGljeSkpKTsKIH0KIAogV0tTdG9yYWdlQmxvY2tpbmdQ
b2xpY3kgV0tQcmVmZXJlbmNlc0dldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShXS1ByZWZlcmVuY2Vz
UmVmIHByZWZlcmVuY2VzUmVmKQogewotICAgIHJldHVybiB0b0FQSShzdGF0aWNfY2FzdDxXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5Pih0b0ltcGwocHJlZmVy
ZW5jZXNSZWYpLT5zdG9yYWdlQmxvY2tpbmdQb2xpY3koKSkpOworICAgIHJldHVybiB0b0FQSShz
dGF0aWNfY2FzdDxXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k+KHRvSW1wbChwcmVmZXJl
bmNlc1JlZiktPnN0b3JhZ2VCbG9ja2luZ1BvbGljeSgpKSk7CiB9CiAKIHZvaWQgV0tQcmVmZXJl
bmNlc1NldERpYWdub3N0aWNMb2dnaW5nRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVu
Y2VzUmVmLCBib29sIGVuYWJsZWQpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmVmZXJlbmNlcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQkocmV2aXNpb24gMjY5ODE5KQorKysgU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTE3NSwyOSArMTc1LDI5IEBAIC0gKHZvaWQpX3NldFRlbGVwaG9uZU51bWJlckRl
dGVjdGlvbklzRW4KICAgICBfcHJlZmVyZW5jZXMtPnNldFRlbGVwaG9uZU51bWJlclBhcnNpbmdF
bmFibGVkKHRlbGVwaG9uZU51bWJlckRldGVjdGlvbklzRW5hYmxlZCk7CiB9CiAKLXN0YXRpYyBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5IHRvU3RvcmFnZUJs
b2NraW5nUG9saWN5KF9XS1N0b3JhZ2VCbG9ja2luZ1BvbGljeSBwb2xpY3kpCitzdGF0aWMgV2Vi
Q29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5IHRvU3RvcmFnZUJsb2NraW5nUG9saWN5KF9XS1N0
b3JhZ2VCbG9ja2luZ1BvbGljeSBwb2xpY3kpCiB7CiAgICAgc3dpdGNoIChwb2xpY3kpIHsKICAg
ICBjYXNlIF9XS1N0b3JhZ2VCbG9ja2luZ1BvbGljeUFsbG93QWxsOgotICAgICAgICByZXR1cm4g
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OkFsbG93QWxsU3RvcmFnZTsKKyAgICAgICAgcmV0dXJu
IFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QWxsb3dBbGw7CiAgICAgY2FzZSBfV0tT
dG9yYWdlQmxvY2tpbmdQb2xpY3lCbG9ja1RoaXJkUGFydHk6Ci0gICAgICAgIHJldHVybiBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbjo6QmxvY2tUaGlyZFBhcnR5U3RvcmFnZTsKKyAgICAgICAgcmV0
dXJuIFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QmxvY2tUaGlyZFBhcnR5OwogICAg
IGNhc2UgX1dLU3RvcmFnZUJsb2NraW5nUG9saWN5QmxvY2tBbGw6Ci0gICAgICAgIHJldHVybiBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6QmxvY2tBbGxTdG9yYWdlOworICAgICAgICByZXR1cm4g
V2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5OjpCbG9ja0FsbDsKICAgICB9CiAKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46
OkFsbG93QWxsU3RvcmFnZTsKKyAgICByZXR1cm4gV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9s
aWN5OjpBbGxvd0FsbDsKIH0KIAotc3RhdGljIF9XS1N0b3JhZ2VCbG9ja2luZ1BvbGljeSB0b0FQ
SShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5IHBvbGljeSkK
K3N0YXRpYyBfV0tTdG9yYWdlQmxvY2tpbmdQb2xpY3kgdG9BUEkoV2ViQ29yZTo6U3RvcmFnZUJs
b2NraW5nUG9saWN5IHBvbGljeSkKIHsKICAgICBzd2l0Y2ggKHBvbGljeSkgewotICAgIGNhc2Ug
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OkFsbG93QWxsU3RvcmFnZToKKyAgICBjYXNlIFdlYkNv
cmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QWxsb3dBbGw6CiAgICAgICAgIHJldHVybiBfV0tT
dG9yYWdlQmxvY2tpbmdQb2xpY3lBbGxvd0FsbDsKLSAgICBjYXNlIFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luOjpCbG9ja1RoaXJkUGFydHlTdG9yYWdlOgorICAgIGNhc2UgV2ViQ29yZTo6U3RvcmFn
ZUJsb2NraW5nUG9saWN5OjpCbG9ja1RoaXJkUGFydHk6CiAgICAgICAgIHJldHVybiBfV0tTdG9y
YWdlQmxvY2tpbmdQb2xpY3lCbG9ja1RoaXJkUGFydHk7Ci0gICAgY2FzZSBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbjo6QmxvY2tBbGxTdG9yYWdlOgorICAgIGNhc2UgV2ViQ29yZTo6U3RvcmFnZUJs
b2NraW5nUG9saWN5OjpCbG9ja0FsbDoKICAgICAgICAgcmV0dXJuIF9XS1N0b3JhZ2VCbG9ja2lu
Z1BvbGljeUJsb2NrQWxsOwogICAgIH0KIApAQCAtMjA3LDEyICsyMDcsMTIgQEAgc3RhdGljIF9X
S1N0b3JhZ2VCbG9ja2luZ1BvbGljeSB0b0FQSShXZQogCiAtIChfV0tTdG9yYWdlQmxvY2tpbmdQ
b2xpY3kpX3N0b3JhZ2VCbG9ja2luZ1BvbGljeQogewotICAgIHJldHVybiB0b0FQSShzdGF0aWNf
Y2FzdDxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5PihfcHJl
ZmVyZW5jZXMtPnN0b3JhZ2VCbG9ja2luZ1BvbGljeSgpKSk7CisgICAgcmV0dXJuIHRvQVBJKHN0
YXRpY19jYXN0PFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeT4oX3ByZWZlcmVuY2VzLT5z
dG9yYWdlQmxvY2tpbmdQb2xpY3koKSkpOwogfQogCiAtICh2b2lkKV9zZXRTdG9yYWdlQmxvY2tp
bmdQb2xpY3k6KF9XS1N0b3JhZ2VCbG9ja2luZ1BvbGljeSlwb2xpY3kKIHsKLSAgICBfcHJlZmVy
ZW5jZXMtPnNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeSh0b1N0b3JhZ2VCbG9ja2luZ1BvbGljeShw
b2xpY3kpKTsKKyAgICBfcHJlZmVyZW5jZXMtPnNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShzdGF0
aWNfY2FzdDx1aW50MzJfdD4odG9TdG9yYWdlQmxvY2tpbmdQb2xpY3kocG9saWN5KSkpOwogfQog
CiAtIChCT09MKV9vZmZsaW5lQXBwbGljYXRpb25DYWNoZUlzRW5hYmxlZApAQCAtNzMzLDE1ICs3
MzMsMTUgQEAgLSAodm9pZClfc2V0U2hvdWxkQWxsb3dEZXNpZ25TeXN0ZW1VSUZvbgogc3RhdGlj
IF9XS0VkaXRhYmxlTGlua0JlaGF2aW9yIHRvQVBJKFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2
aW9yIGJlaGF2aW9yKQogewogICAgIHN3aXRjaCAoYmVoYXZpb3IpIHsKLSAgICBjYXNlIFdlYkNv
cmU6OkVkaXRhYmxlTGlua0RlZmF1bHRCZWhhdmlvcjoKKyAgICBjYXNlIFdlYkNvcmU6OkVkaXRh
YmxlTGlua0JlaGF2aW9yOjpEZWZhdWx0OgogICAgICAgICByZXR1cm4gX1dLRWRpdGFibGVMaW5r
QmVoYXZpb3JEZWZhdWx0OwotICAgIGNhc2UgV2ViQ29yZTo6RWRpdGFibGVMaW5rQWx3YXlzTGl2
ZToKKyAgICBjYXNlIFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpBbHdheXNMaXZlOgog
ICAgICAgICByZXR1cm4gX1dLRWRpdGFibGVMaW5rQmVoYXZpb3JBbHdheXNMaXZlOwotICAgIGNh
c2UgV2ViQ29yZTo6RWRpdGFibGVMaW5rT25seUxpdmVXaXRoU2hpZnRLZXk6CisgICAgY2FzZSBX
ZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvcjo6T25seUxpdmVXaXRoU2hpZnRLZXk6CiAgICAg
ICAgIHJldHVybiBfV0tFZGl0YWJsZUxpbmtCZWhhdmlvck9ubHlMaXZlV2l0aFNoaWZ0S2V5Owot
ICAgIGNhc2UgV2ViQ29yZTo6RWRpdGFibGVMaW5rTGl2ZVdoZW5Ob3RGb2N1c2VkOgorICAgIGNh
c2UgV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6OkxpdmVXaGVuTm90Rm9jdXNlZDoKICAg
ICAgICAgcmV0dXJuIF9XS0VkaXRhYmxlTGlua0JlaGF2aW9yTGl2ZVdoZW5Ob3RGb2N1c2VkOwot
ICAgIGNhc2UgV2ViQ29yZTo6RWRpdGFibGVMaW5rTmV2ZXJMaXZlOgorICAgIGNhc2UgV2ViQ29y
ZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6Ok5ldmVyTGl2ZToKICAgICAgICAgcmV0dXJuIF9XS0Vk
aXRhYmxlTGlua0JlaGF2aW9yTmV2ZXJMaXZlOwogICAgIH0KICAgICAKQEAgLTc1MywxOSArNzUz
LDE5IEBAIHN0YXRpYyBXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvciB0b0UKIHsKICAgICBz
d2l0Y2ggKHdrQmVoYXZpb3IpIHsKICAgICBjYXNlIF9XS0VkaXRhYmxlTGlua0JlaGF2aW9yRGVm
YXVsdDoKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRhYmxlTGlua0RlZmF1bHRCZWhhdmlv
cjsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpEZWZhdWx0
OwogICAgIGNhc2UgX1dLRWRpdGFibGVMaW5rQmVoYXZpb3JBbHdheXNMaXZlOgotICAgICAgICBy
ZXR1cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5rQWx3YXlzTGl2ZTsKKyAgICAgICAgcmV0dXJuIFdl
YkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpBbHdheXNMaXZlOwogICAgIGNhc2UgX1dLRWRp
dGFibGVMaW5rQmVoYXZpb3JPbmx5TGl2ZVdpdGhTaGlmdEtleToKLSAgICAgICAgcmV0dXJuIFdl
YkNvcmU6OkVkaXRhYmxlTGlua09ubHlMaXZlV2l0aFNoaWZ0S2V5OworICAgICAgICByZXR1cm4g
V2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6Ok9ubHlMaXZlV2l0aFNoaWZ0S2V5OwogICAg
IGNhc2UgX1dLRWRpdGFibGVMaW5rQmVoYXZpb3JMaXZlV2hlbk5vdEZvY3VzZWQ6Ci0gICAgICAg
IHJldHVybiBXZWJDb3JlOjpFZGl0YWJsZUxpbmtMaXZlV2hlbk5vdEZvY3VzZWQ7CisgICAgICAg
IHJldHVybiBXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvcjo6TGl2ZVdoZW5Ob3RGb2N1c2Vk
OwogICAgIGNhc2UgX1dLRWRpdGFibGVMaW5rQmVoYXZpb3JOZXZlckxpdmU6Ci0gICAgICAgIHJl
dHVybiBXZWJDb3JlOjpFZGl0YWJsZUxpbmtOZXZlckxpdmU7CisgICAgICAgIHJldHVybiBXZWJD
b3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvcjo6TmV2ZXJMaXZlOwogICAgIH0KICAgICAKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5rTmV2
ZXJMaXZlOworICAgIHJldHVybiBXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvcjo6TmV2ZXJM
aXZlOwogfQogCiAtIChfV0tFZGl0YWJsZUxpbmtCZWhhdmlvcilfZWRpdGFibGVMaW5rQmVoYXZp
b3IKQEAgLTc3NSw3ICs3NzUsNyBAQCAtIChfV0tFZGl0YWJsZUxpbmtCZWhhdmlvcilfZWRpdGFi
bGVMaW5rCiAKIC0gKHZvaWQpX3NldEVkaXRhYmxlTGlua0JlaGF2aW9yOihfV0tFZGl0YWJsZUxp
bmtCZWhhdmlvcillZGl0YWJsZUxpbmtCZWhhdmlvcgogewotICAgIF9wcmVmZXJlbmNlcy0+c2V0
RWRpdGFibGVMaW5rQmVoYXZpb3IodG9FZGl0YWJsZUxpbmtCZWhhdmlvcihlZGl0YWJsZUxpbmtC
ZWhhdmlvcikpOworICAgIF9wcmVmZXJlbmNlcy0+c2V0RWRpdGFibGVMaW5rQmVoYXZpb3Ioc3Rh
dGljX2Nhc3Q8dWludDMyX3Q+KHRvRWRpdGFibGVMaW5rQmVoYXZpb3IoZWRpdGFibGVMaW5rQmVo
YXZpb3IpKSk7CiB9CiAKIC0gKHZvaWQpX3NldEFWRm91bmRhdGlvbkVuYWJsZWQ6KEJPT0wpZW5h
YmxlZApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAkocmV2aXNpb24g
MjY5ODE5KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjIsNyArMTIyLDcgQEAg
dm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6dXBkYQogewogICAgIFdlYlBhZ2U6
OnVwZGF0ZVByZWZlcmVuY2VzR2VuZXJhdGVkKHN0b3JlKTsKIAotICAgIG1fc3RvcmFnZUJsb2Nr
aW5nUG9saWN5ID0gc3RhdGljX2Nhc3Q8U2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1Bv
bGljeT4oc3RvcmUuZ2V0VUludDMyVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnN0b3Jh
Z2VCbG9ja2luZ1BvbGljeUtleSgpKSk7CisgICAgbV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgPSBz
dGF0aWNfY2FzdDxTdG9yYWdlQmxvY2tpbmdQb2xpY3k+KHN0b3JlLmdldFVJbnQzMlZhbHVlRm9y
S2V5KFdlYlByZWZlcmVuY2VzS2V5OjpzdG9yYWdlQmxvY2tpbmdQb2xpY3lLZXkoKSkpOwogICAg
IHNldFNob3VsZFVzZVNob3J0VGltZW91dChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJl
ZmVyZW5jZXNLZXk6OnNob3VsZFVzZVNlcnZpY2VXb3JrZXJTaG9ydFRpbWVvdXRLZXkoKSkpOwog
fQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgJKHJldmlzaW9uIDI2OTgx
OSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMiw3ICsxMDIsNyBAQCBwcml2YXRl
OgogICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgbV93ZWJQYWdlUHJveHlJRDsKICAgICBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBtX3BhZ2VJRDsKIAotICAgIFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgbV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgeyBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5OjpBbGxvd0FsbFN0b3Jh
Z2UgfTsKKyAgICBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgbV9zdG9yYWdlQmxvY2tp
bmdQb2xpY3kgeyBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkFsbG93QWxsIH07CiAK
ICAgICBIYXNoU2V0PHN0ZDo6dW5pcXVlX3B0cjxTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGll
bnQ+PiBtX2xvYWRlcnM7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgRmluZENsaWVudEJ5SWRlbnRp
ZmllckNhbGxiYWNrPiBtX2ZpbmRDbGllbnRCeUlkZW50aWZpZXJSZXF1ZXN0czsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCShyZXZpc2lvbiAy
Njk4MTkpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzczNCw3ICszNzM0LDcgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQ
cmVmZXJlbmNlcyhjb25zdCBXZQogICAgIHNldHRpbmdzLnNldFVzZXJJbnRlcmZhY2VEaXJlY3Rp
b25Qb2xpY3koc3RhdGljX2Nhc3Q8V2ViQ29yZTo6VXNlckludGVyZmFjZURpcmVjdGlvblBvbGlj
eT4oc3RvcmUuZ2V0VUludDMyVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnVzZXJJbnRl
cmZhY2VEaXJlY3Rpb25Qb2xpY3lLZXkoKSkpKTsKICAgICBzZXR0aW5ncy5zZXRTeXN0ZW1MYXlv
dXREaXJlY3Rpb24oc3RhdGljX2Nhc3Q8VGV4dERpcmVjdGlvbj4oc3RvcmUuZ2V0VUludDMyVmFs
dWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnN5c3RlbUxheW91dERpcmVjdGlvbktleSgpKSkp
OwogICAgIHNldHRpbmdzLnNldEphdmFTY3JpcHRSdW50aW1lRmxhZ3Moc3RhdGljX2Nhc3Q8UnVu
dGltZUZsYWdzPihzdG9yZS5nZXRVSW50MzJWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6
amF2YVNjcmlwdFJ1bnRpbWVGbGFnc0tleSgpKSkpOwotICAgIHNldHRpbmdzLnNldFN0b3JhZ2VC
bG9ja2luZ1BvbGljeShzdGF0aWNfY2FzdDxTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5n
UG9saWN5PihzdG9yZS5nZXRVSW50MzJWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6c3Rv
cmFnZUJsb2NraW5nUG9saWN5S2V5KCkpKSk7CisgICAgc2V0dGluZ3Muc2V0U3RvcmFnZUJsb2Nr
aW5nUG9saWN5KHN0YXRpY19jYXN0PFN0b3JhZ2VCbG9ja2luZ1BvbGljeT4oc3RvcmUuZ2V0VUlu
dDMyVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnN0b3JhZ2VCbG9ja2luZ1BvbGljeUtl
eSgpKSkpOwogICAgIHNldHRpbmdzLnNldEZyYW1lRmxhdHRlbmluZyhzdG9yZS5nZXRCb29sVmFs
dWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmZyYW1lRmxhdHRlbmluZ0VuYWJsZWRLZXkoKSkg
PyBXZWJDb3JlOjpGcmFtZUZsYXR0ZW5pbmc6OkZ1bGx5RW5hYmxlZCA6IFdlYkNvcmU6OkZyYW1l
RmxhdHRlbmluZzo6RGlzYWJsZWQpOwogICAgIHNldHRpbmdzLnNldEVkaXRhYmxlTGlua0JlaGF2
aW9yKHN0YXRpY19jYXN0PFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yPihzdG9yZS5nZXRV
SW50MzJWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6ZWRpdGFibGVMaW5rQmVoYXZpb3JL
ZXkoKSkpKTsKICNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCkBAIC0zODM1LDcgKzM4MzUsNyBA
QCB2b2lkIFdlYlBhZ2U6OnJlbW92ZURhdGFEZXRlY3RlZExpbmtzKENvCiAKIHZvaWQgV2ViUGFn
ZTo6ZGV0ZWN0RGF0YUluQWxsRnJhbWVzKHVpbnQ2NF90IHR5cGVzLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGNvbnN0IERhdGFEZXRlY3Rpb25SZXN1bHQmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKLSAgICBhdXRvIGRhdGFEZXRlY3RvclR5cGVzID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RGF0
YURldGVjdG9yVHlwZXM+KHR5cGVzKTsKKyAgICBhdXRvIGRhdGFEZXRlY3RvclR5cGVzID0gT3B0
aW9uU2V0PERhdGFEZXRlY3RvclR5cGVzPjo6ZnJvbVJhdyh0eXBlcyk7CiAgICAgZm9yIChhdXRv
IGZyYW1lID0gbWFrZVJlZlB0cigmbV9wYWdlLT5tYWluRnJhbWUoKSk7IGZyYW1lOyBmcmFtZSA9
IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KCkpIHsKICAgICAgICAgYXV0byBkb2N1bWVudCA9
IG1ha2VSZWZQdHIoZnJhbWUtPmRvY3VtZW50KCkpOwogICAgICAgICBpZiAoIWRvY3VtZW50KQpJ
bmRleDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gMjY5ODE5KQorKysgU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMjAtMTEtMTUgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgorCisgICAg
ICAgIFN0YW5kYXJkaXplIGVudW1zIHRoYXQgYXJlIHVzZWQgYnkgU2V0dGluZ3MgaW4gcHJlcGVy
YXRpb24gZm9yIGF1dG9nZW5lcmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTg5NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBbV0lQXQorCisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZS5tbToK
KyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisKIDIwMjAtMTEtMTMgIFNhbSBXZWluaWcg
IDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgc29tZSBtb3JlIFdlYktpdCBhbmQg
V2ViS2l0TGVnYWN5IHByZWZlcmVuY2VzIGJvdW5kIHRvIFNldHRpbmdzIHRvIFdlYlByZWZlcmVu
Y2VzLnlhbWwKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFt
ZS5tbQkocmV2aXNpb24gMjY5ODE5KQorKysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJGcmFtZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMjA3LDE4ICsyMDcsMTggQEAgV2ViQ29y
ZTo6RWRpdGFibGVMaW5rQmVoYXZpb3IgY29yZShXZWJLaQogICAgIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogICAgIHN3aXRjaCAoZWRpdGFibGVMaW5rQmVoYXZpb3IpIHsKICAgICAgICAgY2Fz
ZSBXZWJLaXRFZGl0YWJsZUxpbmtEZWZhdWx0QmVoYXZpb3I6Ci0gICAgICAgICAgICByZXR1cm4g
RWRpdGFibGVMaW5rRGVmYXVsdEJlaGF2aW9yOworICAgICAgICAgICAgcmV0dXJuIEVkaXRhYmxl
TGlua0JlaGF2aW9yOjpEZWZhdWx0OwogICAgICAgICBjYXNlIFdlYktpdEVkaXRhYmxlTGlua0Fs
d2F5c0xpdmU6Ci0gICAgICAgICAgICByZXR1cm4gRWRpdGFibGVMaW5rQWx3YXlzTGl2ZTsKKyAg
ICAgICAgICAgIHJldHVybiBFZGl0YWJsZUxpbmtCZWhhdmlvcjo6QWx3YXlzTGl2ZTsKICAgICAg
ICAgY2FzZSBXZWJLaXRFZGl0YWJsZUxpbmtPbmx5TGl2ZVdpdGhTaGlmdEtleToKLSAgICAgICAg
ICAgIHJldHVybiBFZGl0YWJsZUxpbmtPbmx5TGl2ZVdpdGhTaGlmdEtleTsKKyAgICAgICAgICAg
IHJldHVybiBFZGl0YWJsZUxpbmtCZWhhdmlvcjo6T25seUxpdmVXaXRoU2hpZnRLZXk7CiAgICAg
ICAgIGNhc2UgV2ViS2l0RWRpdGFibGVMaW5rTGl2ZVdoZW5Ob3RGb2N1c2VkOgotICAgICAgICAg
ICAgcmV0dXJuIEVkaXRhYmxlTGlua0xpdmVXaGVuTm90Rm9jdXNlZDsKKyAgICAgICAgICAgIHJl
dHVybiBFZGl0YWJsZUxpbmtCZWhhdmlvcjo6TGl2ZVdoZW5Ob3RGb2N1c2VkOwogICAgICAgICBj
YXNlIFdlYktpdEVkaXRhYmxlTGlua05ldmVyTGl2ZToKLSAgICAgICAgICAgIHJldHVybiBFZGl0
YWJsZUxpbmtOZXZlckxpdmU7CisgICAgICAgICAgICByZXR1cm4gRWRpdGFibGVMaW5rQmVoYXZp
b3I6Ok5ldmVyTGl2ZTsKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0
dXJuIEVkaXRhYmxlTGlua0RlZmF1bHRCZWhhdmlvcjsKKyAgICByZXR1cm4gRWRpdGFibGVMaW5r
QmVoYXZpb3I6OkRlZmF1bHQ7CiB9CiAKIFdlYkNvcmU6OlRleHREaXJlY3Rpb25TdWJtZW51SW5j
bHVzaW9uQmVoYXZpb3IgY29yZShXZWJUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2
aW9yIGJlaGF2aW9yKQpAQCAtMjI2LDE0ICsyMjYsMTQgQEAgV2ViQ29yZTo6VGV4dERpcmVjdGlv
blN1Ym1lbnVJbmNsdXNpb25CZQogICAgIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogICAgIHN3
aXRjaCAoYmVoYXZpb3IpIHsKICAgICAgICAgY2FzZSBXZWJUZXh0RGlyZWN0aW9uU3VibWVudU5l
dmVySW5jbHVkZWQ6Ci0gICAgICAgICAgICByZXR1cm4gVGV4dERpcmVjdGlvblN1Ym1lbnVOZXZl
ckluY2x1ZGVkOworICAgICAgICAgICAgcmV0dXJuIFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVz
aW9uQmVoYXZpb3I6Ok5ldmVySW5jbHVkZWQ7CiAgICAgICAgIGNhc2UgV2ViVGV4dERpcmVjdGlv
blN1Ym1lbnVBdXRvbWF0aWNhbGx5SW5jbHVkZWQ6Ci0gICAgICAgICAgICByZXR1cm4gVGV4dERp
cmVjdGlvblN1Ym1lbnVBdXRvbWF0aWNhbGx5SW5jbHVkZWQ7CisgICAgICAgICAgICByZXR1cm4g
VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcjo6QXV0b21hdGljYWxseUluY2x1
ZGVkOwogICAgICAgICBjYXNlIFdlYlRleHREaXJlY3Rpb25TdWJtZW51QWx3YXlzSW5jbHVkZWQ6
Ci0gICAgICAgICAgICByZXR1cm4gVGV4dERpcmVjdGlvblN1Ym1lbnVBbHdheXNJbmNsdWRlZDsK
KyAgICAgICAgICAgIHJldHVybiBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9y
OjpBbHdheXNJbmNsdWRlZDsKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
cmV0dXJuIFRleHREaXJlY3Rpb25TdWJtZW51TmV2ZXJJbmNsdWRlZDsKKyAgICByZXR1cm4gVGV4
dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcjo6TmV2ZXJJbmNsdWRlZDsKIH0KIAog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCShyZXZpc2lvbiAyNjk4MTkpCisrKyBTb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTc1NSwxOSArNzU1
LDE5IEBAIHN0YXRpYyBXZWJQYWdlVmlzaWJpbGl0eVN0YXRlIGtpdChXZWJDb3IKICAgICByZXR1
cm4gV2ViUGFnZVZpc2liaWxpdHlTdGF0ZVZpc2libGU7CiB9CiAKLXN0YXRpYyBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5IGNvcmUoV2ViU3RvcmFnZUJsb2Nr
aW5nUG9saWN5IHN0b3JhZ2VCbG9ja2luZ1BvbGljeSkKK3N0YXRpYyBXZWJDb3JlOjpTdG9yYWdl
QmxvY2tpbmdQb2xpY3kgY29yZShXZWJTdG9yYWdlQmxvY2tpbmdQb2xpY3kgc3RvcmFnZUJsb2Nr
aW5nUG9saWN5KQogewogICAgIHN3aXRjaCAoc3RvcmFnZUJsb2NraW5nUG9saWN5KSB7CiAgICAg
Y2FzZSBXZWJBbGxvd0FsbFN0b3JhZ2U6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbjo6QWxsb3dBbGxTdG9yYWdlOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6U3RvcmFn
ZUJsb2NraW5nUG9saWN5OjpBbGxvd0FsbDsKICAgICBjYXNlIFdlYkJsb2NrVGhpcmRQYXJ0eVN0
b3JhZ2U6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6QmxvY2tUaGly
ZFBhcnR5U3RvcmFnZTsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1Bv
bGljeTo6QmxvY2tUaGlyZFBhcnR5OwogICAgIGNhc2UgV2ViQmxvY2tBbGxTdG9yYWdlOgotICAg
ICAgICByZXR1cm4gV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OkJsb2NrQWxsU3RvcmFnZTsKKyAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QmxvY2tBbGw7CiAg
ICAgZGVmYXVsdDoKICAgICAgICAgLy8gSWYgYW4gaW52YWxpZCB2YWx1ZSB3YXMgc2V0IChhcyBj
YW4gYmUgZG9uZSB2aWEgTlNVc2VyRGVmYXVsdHMpLCBmYWxsIGJhY2sgdG8KLSAgICAgICAgLy8g
dGhlIGRlZmF1bHQgdmFsdWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpBbGxvd0FsbFN0b3Jh
Z2UuCi0gICAgICAgIHJldHVybiBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6QWxsb3dBbGxTdG9y
YWdlOworICAgICAgICAvLyB0aGUgZGVmYXVsdCB2YWx1ZSwgV2ViQ29yZTo6U3RvcmFnZUJsb2Nr
aW5nUG9saWN5OjpBbGxvd0FsbC4KKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlN0b3JhZ2VCbG9j
a2luZ1BvbGljeTo6QWxsb3dBbGw7CiAgICAgfQogfQogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjk4
MTkpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw2
MSBAQAorMjAyMC0xMS0xNSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAg
ICAgU3RhbmRhcmRpemUgZW51bXMgdGhhdCBhcmUgdXNlZCBieSBTZXR0aW5ncyBpbiBwcmVwZXJh
dGlvbiBmb3IgYXV0b2dlbmVyYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxODk2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFtXSVBdCisKKyAgICAgICAgKiBlZGl0aW5nL2RlbGV0aW5nL2RlbGV0
ZS1saWdhdHVyZS0wMDMuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2RlbGV0aW5nL3BhcmFncmFw
aC1pbi1wcmVzZXJ2ZU5ld2xpbmUuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2RlbGV0aW5nL3Nt
YXJ0LWVkaXRpbmctZGlzYWJsZWQtd2luLmh0bWw6CisgICAgICAgICogZWRpdGluZy9kZWxldGlu
Zy93aGl0ZXNwYWNlLXByZS0xLmh0bWw6CisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9x
dWVyeS1jb21tYW5kLXN0YXRlLmh0bWw6CisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9x
dWVyeS10ZXh0LWFsaWdubWVudC5odG1sOgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQv
cmVtb3ZlLWZvcm1hdC1tdWx0aXBsZS1lbGVtZW50cy13aW4uaHRtbDoKKyAgICAgICAgKiBlZGl0
aW5nL2V4ZWNDb21tYW5kL3RvZ2dsZS1jb21wb3VuZC1zdHlsZXMuaHRtbDoKKyAgICAgICAgKiBl
ZGl0aW5nL2V4ZWNDb21tYW5kL3RvZ2dsZS1saW5rLXdpbi5odG1sOgorICAgICAgICAqIGVkaXRp
bmcvZXhlY0NvbW1hbmQvdG9nZ2xlLXVubGluay13aW4uaHRtbDoKKyAgICAgICAgKiBlZGl0aW5n
L3NlbGVjdGlvbi81MTk1MTY2LTEuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi81
MzU0NDU1LTEuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9jbGljay1pbi1tYXJn
aW5zLWluc2lkZS1lZGl0YWJsZS1kaXYuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlv
bi9jbGljay1pbi1wYWRkaW5nLXdpdGgtbXVsdGlwbGUtbGluZS1ib3hlcy5odG1sOgorICAgICAg
ICAqIGVkaXRpbmcvc2VsZWN0aW9uL2NvbnRleHQtbWVudS10ZXh0LXNlbGVjdGlvbi1sb29rdXAu
aHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9jb250ZXh0LW1lbnUtdGV4dC1zZWxl
Y3Rpb24uaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtYWZ0ZXItbW91
c2Utc2VsZWN0aW9uLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNl
bGVjdGlvbi1hZnRlci1kb3VibGUtY2xpY2suaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVj
dGlvbi9leHRlbmQtc2VsZWN0aW9uLWVuY2xvc2luZy1ibG9jay13aW4uaHRtbDoKKyAgICAgICAg
KiBlZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC0xLmh0
bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWNy
YXNoLXRlc3QtMi5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29y
ZC12aXN1YWxseS1jcmFzaC10ZXN0LTMuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlv
bi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC00Lmh0bWw6CisgICAgICAgICogZWRp
dGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWNyYXNoLXRlc3QtNS5odG1sOgor
ICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10
ZXN0LWNzcy1nZW5lcmF0ZWQtY29udGVudC5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0
aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0LXRleHRhcmVhLmh0bWw6CisgICAg
ICAgICogZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWlubGluZS1ibG9j
ay1wb3NpdGlvbmVkLWVsZW1lbnQuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9t
b3ZlLWJ5LXdvcmQtdmlzdWFsbHktbXVsdGktbGluZS5odG1sOgorICAgICAgICAqIGVkaXRpbmcv
c2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1tdWx0aS1zcGFjZS5odG1sOgorICAgICAg
ICAqIGVkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1udWxsLWJveC5odG1s
OgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1zaW5n
bGUtc3BhY2UtaW5saW5lLWVsZW1lbnQuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlv
bi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktc2luZ2xlLXNwYWNlLW9uZS1lbGVtZW50Lmh0bWw6Cisg
ICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LXRleHRhcmVh
Lmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5
LXdyb25nLWxlZnQtcmlnaHQuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9wcm9n
cmFtbWF0aWMtc2VsZWN0aW9uLW9uLW1hYy1pcy1kaXJlY3Rpb25sZXNzLmh0bWw6CisgICAgICAg
ICogZWRpdGluZy9zZWxlY3Rpb24vcnRsLW1vdmUtc2VsZWN0aW9uLXJpZ2h0LWxlZnQuaHRtbDoK
KyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tZXh0ZW5kLXNob3VsZC1ub3Qt
bW92ZS1hY3Jvc3MtY2FyZXQtb24tbWFjLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rp
b24vc2hpZnQtY2xpY2suaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi91c2VyLXNl
bGVjdC1hbGwtd2l0aC1zaGlmdC5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvY29w
eS1wYXN0ZS1jcmFzaC5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc3R5bGUvaWZyYW1lLW9ubG9h
ZC1jcmFzaC13aW4uaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3N0eWxlL21ha2UtdGV4dC13cml0
aW5nLWRpcmVjdGlvbi1pbmxpbmUtd2luLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zdHlsZS9w
dXNoLWRvd24tZm9udC1zdHlsZXMtd2luLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zdHlsZS9w
dXNoLWRvd24taW1wbGljaXQtc3R5bGVzLWFyb3VuZC1saXN0LXdpbi5odG1sOgorICAgICAgICAq
IGVkaXRpbmcvc3R5bGUvdG9nZ2xlLXN0eWxlLWJvbGQtaXRhbGljLW1peGVkLWVkaXRhYmlsaXR5
Lmh0bWw6CisgICAgICAgICogZWRpdGluZy9zdHlsZS90b2dnbGUtc3R5bGUtYm9sZC1pdGFsaWMu
aHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9iYWNrc3BhY2UtbmF2aWdhdGVzLWJhY2suaHRt
bDoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL3NlbGVjdGlvbi1kaXJlY3Rpb24uaHRtbDoKKwogMjAy
MC0xMS0xNCAgTGF1cm8gTW91cmEgIDxsbW91cmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RL
XSBHYXJkZW5pbmcgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9y
L2NvbXBvc2l0ZWQtZmlsdGVycy11bmRlci1vcGFjaXR5Lmh0bWwKSW5kZXg6IExheW91dFRlc3Rz
L2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWxpZ2F0dXJlLTAwMy5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWxpZ2F0dXJlLTAwMy5odG1sCShy
ZXZpc2lvbiAyNjk4MTkpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1s
aWdhdHVyZS0wMDMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQAogICAgICAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOwogICAgICAgICAgICAgcnVuVGVzdE9uKCJtYWMiKTsKLSAgICAgICAgICAg
IHJ1blRlc3RPbigid2luIik7CisgICAgICAgICAgICBydW5UZXN0T24oIndpbmRvd3MiKTsKICAg
ICAgICAgICAgIHJ1blRlc3RPbigidW5peCIpOwogICAgICAgICB9CiAgICAgICAgIDwvc2NyaXB0
PgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9wYXJhZ3JhcGgtaW4tcHJlc2Vy
dmVOZXdsaW5lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGlu
Zy9wYXJhZ3JhcGgtaW4tcHJlc2VydmVOZXdsaW5lLmh0bWwJKHJldmlzaW9uIDI2OTgxOSkKKysr
IExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvcGFyYWdyYXBoLWluLXByZXNlcnZlTmV3bGlu
ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBAIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKIE1hcmt1cC5kZXNjcmlwdGlvbihkZXNjcmlwdGlvbi50ZXh0Q29udGVudCk7CiBNYXJr
dXAuZHVtcCgidGVzdCIsICJpbml0aWFsIHN0YXRlIik7CiBydW5UZXN0c09uKCJtYWMiKTsKLXJ1
blRlc3RzT24oIndpbiIpOworcnVuVGVzdHNPbigid2luZG93cyIpOwogcnVuVGVzdHNPbigidW5p
eCIpOwogPC9zY3JpcHQ+CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0
aW5nL3NtYXJ0LWVkaXRpbmctZGlzYWJsZWQtd2luLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZWRpdGluZy9kZWxldGluZy9zbWFydC1lZGl0aW5nLWRpc2FibGVkLXdpbi5odG1sCShy
ZXZpc2lvbiAyNjk4MTkpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWVk
aXRpbmctZGlzYWJsZWQtd2luLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTgsNyArOCw3IEBAIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOwogfQogaWYgKHdpbmRvdy5pbnRlcm5hbHMp
Ci0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luJyk7CisgICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luZG93cycpOwogCiBmdW5j
dGlvbiBlZGl0aW5nVGVzdCgpIHsKICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImRpdiIpOwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy93aGl0ZXNwYWNl
LXByZS0xLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy93
aGl0ZXNwYWNlLXByZS0xLmh0bWwJKHJldmlzaW9uIDI2OTgxOSkKKysrIExheW91dFRlc3RzL2Vk
aXRpbmcvZGVsZXRpbmcvd2hpdGVzcGFjZS1wcmUtMS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0y
Niw2ICsyNiw2IEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKIE1hcmt1cC5kZXNjcmlwdGlvbihk
ZXNjcmlwdGlvbi50ZXh0Q29udGVudCk7CiBNYXJrdXAuZHVtcCgidGVzdCIsICJpbml0aWFsIHN0
YXRlIik7CiBydW5UZXN0c09uKCJtYWMiKTsKLXJ1blRlc3RzT24oIndpbiIpOworcnVuVGVzdHNP
bigid2luZG93cyIpOwogcnVuVGVzdHNPbigidW5peCIpOwogPC9zY3JpcHQ+CkluZGV4OiBMYXlv
dXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3F1ZXJ5LWNvbW1hbmQtc3RhdGUuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3F1ZXJ5LWNvbW1hbmQt
c3RhdGUuaHRtbAkocmV2aXNpb24gMjY5ODE5KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9leGVj
Q29tbWFuZC9xdWVyeS1jb21tYW5kLXN0YXRlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTExNyw3
ICsxMTcsNyBAQCBmdW5jdGlvbiBydW5UZXN0cyhlZGl0aW5nQmVoYXZpb3IpIHsKICAgICB0ZXN0
UXVlcnlDb21tYW5kU3RhdGUoInN0cmlrZVRocm91Z2giLCAnaGVsbG8gPHM+d29ybGQgV2ViS2l0
PC9zPicsIHNlbGVjdEZpcnN0VHdvV29yZHMsIHsnbWFjJzogZmFsc2UsICd3aW4nOiB0cnVlfVtl
ZGl0aW5nQmVoYXZpb3JdKTsKIH0KIAotcnVuVGVzdHMoJ3dpbicpOworcnVuVGVzdHMoJ3dpbmRv
d3MnKTsKIGRlYnVnKCcnKQogcnVuVGVzdHMoJ21hYycpOwogCkluZGV4OiBMYXlvdXRUZXN0cy9l
ZGl0aW5nL2V4ZWNDb21tYW5kL3F1ZXJ5LXRleHQtYWxpZ25tZW50Lmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9xdWVyeS10ZXh0LWFsaWdubWVudC5o
dG1sCShyZXZpc2lvbiAyNjk4MTkpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5k
L3F1ZXJ5LXRleHQtYWxpZ25tZW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTExMCw3ICsxMTAs
NyBAQCBmdW5jdGlvbiBydW5SYW5nZVRlc3RzKGVkaXRpbmdCZWhhdmlvcikKIH0KIAogZGVidWco
JycpOwotcnVuUmFuZ2VUZXN0cygnd2luJyk7CitydW5SYW5nZVRlc3RzKCd3aW5kb3dzJyk7CiBk
ZWJ1ZygnJyk7CiBydW5SYW5nZVRlc3RzKCdtYWMnKTsKIApJbmRleDogTGF5b3V0VGVzdHMvZWRp
dGluZy9leGVjQ29tbWFuZC9yZW1vdmUtZm9ybWF0LW11bHRpcGxlLWVsZW1lbnRzLXdpbi5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvcmVtb3ZlLWZv
cm1hdC1tdWx0aXBsZS1lbGVtZW50cy13aW4uaHRtbAkocmV2aXNpb24gMjY5ODE5KQorKysgTGF5
b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9yZW1vdmUtZm9ybWF0LW11bHRpcGxlLWVsZW1l
bnRzLXdpbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMyw3ICsxMyw3IEBAIHZhciB0ZXN0Q29u
dGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWUKIHRlc3RDb250YWluZXIuY29udGVudEVkaXRh
YmxlID0gdHJ1ZTsKIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGVzdENvbnRhaW5lcik7CiBp
ZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0Jl
aGF2aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9y
KCd3aW5kb3dzJyk7CiAKIGZ1bmN0aW9uIHRlc3RSZW1vdmVGb3JtYXQoaW5pdGlhbENvbnRlbnRz
LCBzZWxlY3RvciwgZXhwZWN0ZWQpCiB7CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWND
b21tYW5kL3RvZ2dsZS1jb21wb3VuZC1zdHlsZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3RvZ2dsZS1jb21wb3VuZC1zdHlsZXMuaHRtbAkocmV2
aXNpb24gMjY5ODE5KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC90b2dnbGUt
Y29tcG91bmQtc3R5bGVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDcgQEAgZnVu
Y3Rpb24gdGVzdFNpbmdsZVRvZ2dsZSh0b2dnbGVDb21tYW5kLAogICAgICAgICB0ZXN0RmFpbGVk
KGFjdGlvbiArICciLCBleHBlY3RlZCAiJyArIGV4cGVjdGVkQ29udGVudHMgKyAnIicpOwogfQog
Ci1wbGF0Zm9ybXMgPSBbJ21hYycsICd3aW4nLCAndW5peCddOworcGxhdGZvcm1zID0gWydtYWMn
LCAnd2luZG93cycsICd1bml4J107CiAKIGZvciAodmFyIGkgPSAwOyBpIDwgcGxhdGZvcm1zLmxl
bmd0aDsgaSsrKSB7CiAgICAgcGxhdGZvcm0gPSBwbGF0Zm9ybXNbaV07CkluZGV4OiBMYXlvdXRU
ZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3RvZ2dsZS1saW5rLXdpbi5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvdG9nZ2xlLWxpbmstd2luLmh0bWwJ
KHJldmlzaW9uIDI2OTgxOSkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvdG9n
Z2xlLWxpbmstd2luLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEzLDcgKzEzLDcgQEAgdmFyIHRl
c3RDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZQogdGVzdENvbnRhaW5lci5jb250ZW50
RWRpdGFibGUgPSB0cnVlOwogZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZXN0Q29udGFpbmVy
KTsKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0
aW5nQmVoYXZpb3IoIndpbiIpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVo
YXZpb3IoIndpbmRvd3MiKTsKIAogZnVuY3Rpb24gdGVzdFNpbmdsZVRvZ2dsZSh0b2dnbGVDb21t
YW5kLCBpbml0aWFsQ29udGVudHMsIHNlbGVjdG9yLCBleHBlY3RlZENvbnRlbnRzKQogewpJbmRl
eDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC90b2dnbGUtdW5saW5rLXdpbi5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvdG9nZ2xlLXVu
bGluay13aW4uaHRtbAkocmV2aXNpb24gMjY5ODE5KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9l
eGVjQ29tbWFuZC90b2dnbGUtdW5saW5rLXdpbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01MSw3
ICs1MSw3IEBAIGZ1bmN0aW9uIHNlbGVjdExhc3RXb3JkKGNvbnRhaW5lcikgewogfQogCiBpZiAo
d2luZG93LmludGVybmFscykKLSAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZp
b3IoJ3dpbicpOworICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2lu
ZG93cycpOwogCiB0ZXN0U2luZ2xlVG9nZ2xlKCJ1bmxpbmsiLCAnaGVsbG8gPGI+d29ybGQ8L2I+
Jywgc2VsZWN0QWxsLCAnaGVsbG8gPGI+d29ybGQ8L2I+Jyk7CiB0ZXN0U2luZ2xlVG9nZ2xlKCJ1
bmxpbmsiLCAnPGEgaHJlZj0iaHR0cDovL3dlYmtpdC5vcmcvIj48dT5oZWxsbyB3b3JsZDwvdT48
L2E+Jywgc2VsZWN0QWxsLCAnPHU+aGVsbG8gd29ybGQ8L3U+Jyk7CkluZGV4OiBMYXlvdXRUZXN0
cy9lZGl0aW5nL3NlbGVjdGlvbi81MTk1MTY2LTEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi81MTk1MTY2LTEuaHRtbAkocmV2aXNpb24gMjY5ODE5KQor
KysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vNTE5NTE2Ni0xLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAgZnVuY3Rpb24gcnVuVGVzdChwbGF0Zm9ybSwgZXhwZWN0
ZWRUZXh0KQogaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKQogICAgIHJ1blRlc3QoJ21hYycsICdzaG91bGQgYmUg
cycpOwotICAgIHJ1blRlc3QoJ3dpbicsICdob3VsZCBiZSAnKTsKKyAgICBydW5UZXN0KCd3aW5k
b3dzJywgJ2hvdWxkIGJlICcpOwogfSBlbHNlIHsKICAgICBsb2coIkZhaWx1cmU6IFRvIHRlc3Qg
bWFudWFsbHksIHNlbGVjdCB0aGUgZ3JlZW4gdGV4dCAiICsKICAgICAgICAgInN0YXJ0aW5nIGF0
IHRoZSBlbmQgdmlhIGRvdWJsZS1jbGljayAoaS5lLiB3b3JkIGdyYW51bGFyaXR5KSwgdGhlbiBz
aGlmdCtyaWdodC1hcnJvdy4gIiArCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlv
bi81MzU0NDU1LTEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVj
dGlvbi81MzU0NDU1LTEuaHRtbAkocmV2aXNpb24gMjY5ODE5KQorKysgTGF5b3V0VGVzdHMvZWRp
dGluZy9zZWxlY3Rpb24vNTM1NDQ1NS0xLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2
LDcgQEAgaWYgKHdpbmRvdy5ldmVudFNlbmRlciAmJiB3aW5kb3cudGVzdFJ1bgogICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOwogCiAgICAgdGVzdCgnbWFjJywgJ3Jlc3VsdG1hYycpOwotICAg
IHRlc3QoJ3dpbicsICdyZXN1bHR3aW4nKTsKKyAgICB0ZXN0KCd3aW5kb3dzJywgJ3Jlc3VsdHdp
bicpOwogICAgIHRlc3QoJ3VuaXgnLCAncmVzdWx0dW5peCcpOwogfQogPC9zY3JpcHQ+CkluZGV4
OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9jbGljay1pbi1tYXJnaW5zLWluc2lkZS1l
ZGl0YWJsZS1kaXYuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVj
dGlvbi9jbGljay1pbi1tYXJnaW5zLWluc2lkZS1lZGl0YWJsZS1kaXYuaHRtbAkocmV2aXNpb24g
MjY5ODE5KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY2xpY2staW4tbWFyZ2lu
cy1pbnNpZGUtZWRpdGFibGUtZGl2Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwNCw3ICsxMDQs
NyBAQCBmdW5jdGlvbiBlZGl0aW5nVGVzdChlZGl0aW5nQmVoYXZpb3IpCiB9CiAKIGVkaXRpbmdU
ZXN0KCJtYWMiKTsKLWVkaXRpbmdUZXN0KCJ3aW4iKTsKK2VkaXRpbmdUZXN0KCJ3aW5kb3dzIik7
CiAKIC8vIENsZWFuIHVwIGFmdGVyIG91cnNlbHZlcyBpZiB3ZSdyZSBub3QgYmVpbmcgcnVuIGlu
IHRoZSBicm93c2VyCiBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CkluZGV4OiBMYXlvdXRUZXN0
cy9lZGl0aW5nL3NlbGVjdGlvbi9jbGljay1pbi1wYWRkaW5nLXdpdGgtbXVsdGlwbGUtbGluZS1i
b3hlcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2Ns
aWNrLWluLXBhZGRpbmctd2l0aC1tdWx0aXBsZS1saW5lLWJveGVzLmh0bWwJKHJldmlzaW9uIDI2
OTgxOSkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2NsaWNrLWluLXBhZGRpbmct
d2l0aC1tdWx0aXBsZS1saW5lLWJveGVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTc4LDcgKzc4
LDcgQEAgZnVuY3Rpb24gZWRpdGluZ1Rlc3QoZWRpdGluZ0JlaGF2aW9yKQogfQogCiBlZGl0aW5n
VGVzdCgibWFjIik7Ci1lZGl0aW5nVGVzdCgid2luIik7CitlZGl0aW5nVGVzdCgid2luZG93cyIp
OwogCiAvLyBDbGVhbiB1cCBhZnRlciBvdXJzZWx2ZXMgaWYgd2UncmUgbm90IGJlaW5nIHJ1biBp
biB0aGUgYnJvd3NlcgogaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewpJbmRleDogTGF5b3V0VGVz
dHMvZWRpdGluZy9zZWxlY3Rpb24vY29udGV4dC1tZW51LXRleHQtc2VsZWN0aW9uLWxvb2t1cC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2NvbnRleHQt
bWVudS10ZXh0LXNlbGVjdGlvbi1sb29rdXAuaHRtbAkocmV2aXNpb24gMjY5ODE5KQorKysgTGF5
b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY29udGV4dC1tZW51LXRleHQtc2VsZWN0aW9uLWxv
b2t1cC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01MCw3ICs1MCw3IEBAIGZ1bmN0aW9uIGxvYWQo
KQogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiAgICAgdGVzdCgnbWFjJywgdHJ1ZSwg
J05ldyBZb3JrJywgJ3Jlc3VsdG1hYycpOwotICAgIHRlc3QoJ3dpbicsIGZhbHNlLCAnJywgJ3Jl
c3VsdHdpbicpOworICAgIHRlc3QoJ3dpbmRvd3MnLCBmYWxzZSwgJycsICdyZXN1bHR3aW4nKTsK
ICAgICB0ZXN0KCd1bml4JywgZmFsc2UsICcnLCAncmVzdWx0dW5peCcpOwogfQogPC9zY3JpcHQ+
CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9jb250ZXh0LW1lbnUtdGV4dC1z
ZWxlY3Rpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlv
bi9jb250ZXh0LW1lbnUtdGV4dC1zZWxlY3Rpb24uaHRtbAkocmV2aXNpb24gMjY5ODE5KQorKysg
TGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY29udGV4dC1tZW51LXRleHQtc2VsZWN0aW9u
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDcgKzQ2LDcgQEAgZnVuY3Rpb24gbG9hZCgpCiAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKICAgICB0ZXN0KCdtYWMnLCB0cnVlLCAncmVz
dWx0bWFjJyk7Ci0gICAgdGVzdCgnd2luJywgZmFsc2UsICdyZXN1bHR3aW4nKTsKKyAgICB0ZXN0
KCd3aW5kb3dzJywgZmFsc2UsICdyZXN1bHR3aW4nKTsKICAgICB0ZXN0KCd1bml4JywgZmFsc2Us
ICdyZXN1bHR1bml4Jyk7CiB9CiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcv
c2VsZWN0aW9uL2V4dGVuZC1hZnRlci1tb3VzZS1zZWxlY3Rpb24uaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtYWZ0ZXItbW91c2Utc2VsZWN0
aW9uLmh0bWwJKHJldmlzaW9uIDI2OTgxOSkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0
aW9uL2V4dGVuZC1hZnRlci1tb3VzZS1zZWxlY3Rpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
NzUsNyArNzUsNyBAQCBmdW5jdGlvbiBlZGl0aW5nVGVzdChlZGl0aW5nQmVoYXZpb3IpIHsKIAog
PHNjcmlwdD4KIGVkaXRpbmdUZXN0KCJtYWMiKTsKLWVkaXRpbmdUZXN0KCJ3aW4iKTsKK2VkaXRp
bmdUZXN0KCJ3aW5kb3dzIik7CiBlZGl0aW5nVGVzdCgidW5peCIpOwogPC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CkluZGV4
OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWFmdGVyLWRv
dWJsZS1jbGljay5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0
aW9uL2V4dGVuZC1zZWxlY3Rpb24tYWZ0ZXItZG91YmxlLWNsaWNrLmh0bWwJKHJldmlzaW9uIDI2
OTgxOSkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24t
YWZ0ZXItZG91YmxlLWNsaWNrLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAK
ICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKICAgICAgICAgcnVuVGVzdCgibWFj
IiwgImEgcGFyYWdyYXBoIik7Ci0gICAgICAgIHJ1blRlc3QoIndpbiIsICJwYXJhZ3JhIik7Cisg
ICAgICAgIHJ1blRlc3QoIndpbmRvd3MiLCAicGFyYWdyYSIpOwogICAgIH0KIAogICAgIGZ1bmN0
aW9uIHJ1blRlc3QoYmVoYXZpb3IsIGV4cGVjdGVkVGV4dCkKSW5kZXg6IExheW91dFRlc3RzL2Vk
aXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24tZW5jbG9zaW5nLWJsb2NrLXdpbi5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxl
Y3Rpb24tZW5jbG9zaW5nLWJsb2NrLXdpbi5odG1sCShyZXZpc2lvbiAyNjk4MTkpCisrKyBMYXlv
dXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWVuY2xvc2luZy1ibG9j
ay13aW4uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjMsNyArMjMsNyBAQCBmdW5jdGlvbiBydW5T
ZWxlY3Rpb25UZXN0c1dpdGhHcmFudWxhcml0CiB9CiAKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQot
ICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoIndpbiIpOworICAgIGlu
dGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoIndpbmRvd3MiKTsKIGxvZygiXG5c
blxuRXh0ZW5kaW5nIGJ5IGNoYXJhY3RlclxuIik7CiBydW5TZWxlY3Rpb25UZXN0c1dpdGhHcmFu
dWxhcml0eUZvckVuY2xvc2luZ0Jsb2NrKGNyZWF0ZUVuY2xvc2luZ0Jsb2NrTm9kZXMoKSwgImNo
YXJhY3RlciIpOwogCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5
LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC0xLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWNyYXNoLXRlc3QtMS5o
dG1sCShyZXZpc2lvbiAyNjk4MTkpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9t
b3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC0xLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTEyLDcgKzEyLDcgQEAgb25sb2FkID0gZnVuY3Rpb24oKSB7CiAKIGlmICh3aW5kb3cudGVzdFJ1
bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
Ci0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luJyk7CisgICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luZG93cycpOwogfQogPC9z
Y3JpcHQ+CiA8dGV4dGFyZWE+PC90ZXh0YXJlYT4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcv
c2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0LTIuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFs
bHktY3Jhc2gtdGVzdC0yLmh0bWwJKHJldmlzaW9uIDI2OTgxOSkKKysrIExheW91dFRlc3RzL2Vk
aXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0LTIuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMTIsNyArMTIsNyBAQCBvbmxvYWQgPSBmdW5jdGlvbigpIHsKIAog
aWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2
aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3
aW5kb3dzJyk7CiB9CiA8L3NjcmlwdD4KIDx2a2Vybj48L3ZrZXJuPjxtYXJxdWVlPjxkaXYgdGl0
bGU9IjB8MCIgY2xhc3M9InRlc3RfbW92ZV9ieV93b3JkIj5hYmMgZGVmCkluZGV4OiBMYXlvdXRU
ZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC0z
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1i
eS13b3JkLXZpc3VhbGx5LWNyYXNoLXRlc3QtMy5odG1sCShyZXZpc2lvbiAyNjk4MTkpCisrKyBM
YXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gt
dGVzdC0zLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEyLDcgKzEyLDcgQEAgb25sb2FkID0gZnVu
Y3Rpb24oKSB7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7
CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dEVkaXRpbmdCZWhhdmlvcignd2luJyk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRp
bmdCZWhhdmlvcignd2luZG93cycpOwogfQogPC9zY3JpcHQ+CiA8dmlkZW8+PC92aWRlbz48bWV0
ZXI+PGltYWdlIGNsYXNzPSJ0ZXN0X21vdmVfYnlfd29yZCIgdGl0bGU9IjB8MCI+CkluZGV4OiBM
YXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gt
dGVzdC00Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24v
bW92ZS1ieS13b3JkLXZpc3VhbGx5LWNyYXNoLXRlc3QtNC5odG1sCShyZXZpc2lvbiAyNjk4MTkp
CisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHkt
Y3Jhc2gtdGVzdC00Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEyLDcgKzEyLDcgQEAgb25sb2Fk
ID0gZnVuY3Rpb24oKSB7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJu
YWxzKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgaW50ZXJuYWxzLnNldHRp
bmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luJyk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dEVkaXRpbmdCZWhhdmlvcignd2luZG93cycpOwogfQogPC9zY3JpcHQ+CiA+PGRpdiB0aXRsZT0i
MHwwIiBjbGFzcz0idGVzdF9tb3ZlX2J5X3dvcmQiIGRpcj1sdHI+PGtleWdlbj48YmFzZT4KSW5k
ZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1j
cmFzaC10ZXN0LTUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVj
dGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC01Lmh0bWwJKHJldmlzaW9uIDI2
OTgxOSkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1
YWxseS1jcmFzaC10ZXN0LTUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTEsNyArMTEsNyBAQCBv
bmxvYWQgPSBmdW5jdGlvbigpIHsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5p
bnRlcm5hbHMpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICBpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiB9CiA8L3NjcmlwdD4KIApJbmRleDog
TGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWNyYXNo
LXRlc3QtY3NzLWdlbmVyYXRlZC1jb250ZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWNyYXNoLXRlc3QtY3Nz
LWdlbmVyYXRlZC1jb250ZW50Lmh0bWwJKHJldmlzaW9uIDI2OTgxOSkKKysrIExheW91dFRlc3Rz
L2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0LWNzcy1n
ZW5lcmF0ZWQtY29udGVudC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xOSw3ICsxOSw3IEBAIG9u
bG9hZCA9IGZ1bmN0aW9uKCkgewogCiBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93Lmlu
dGVybmFscykgewogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIGludGVybmFscy5z
ZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbicpOworICAgIGludGVybmFscy5zZXR0aW5n
cy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbmRvd3MnKTsKIH0KIDwvc2NyaXB0PgogPGRpdiBjb250
ZW50ZWRpdGFibGUgZGlyPWx0cj4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
L21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0LXRleHRhcmVhLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5
LWNyYXNoLXRlc3QtdGV4dGFyZWEuaHRtbAkocmV2aXNpb24gMjY5ODE5KQorKysgTGF5b3V0VGVz
dHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWNyYXNoLXRlc3QtdGV4
dGFyZWEuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTgsNyArMTgsNyBAQCBvbmxvYWQgPSBmdW5j
dGlvbigpIHsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsK
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0
RWRpdGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGlu
Z0JlaGF2aW9yKCd3aW5kb3dzJyk7CiB9CiA8L3NjcmlwdD4KIApJbmRleDogTGF5b3V0VGVzdHMv
ZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWlubGluZS1ibG9jay1wb3Np
dGlvbmVkLWVsZW1lbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Nl
bGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktaW5saW5lLWJsb2NrLXBvc2l0aW9uZWQtZWxl
bWVudC5odG1sCShyZXZpc2lvbiAyNjk4MTkpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVj
dGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktaW5saW5lLWJsb2NrLXBvc2l0aW9uZWQtZWxlbWVu
dC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMiw3ICsxMiw3IEBAIG9ubG9hZCA9IGZ1bmN0aW9u
KCkgewogCiBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewogICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0
aW5nQmVoYXZpb3IoJ3dpbicpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVo
YXZpb3IoJ3dpbmRvd3MnKTsKIH0KIDwvc2NyaXB0PgogCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktbXVsdGktbGluZS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1
YWxseS1tdWx0aS1saW5lLmh0bWwJKHJldmlzaW9uIDI2OTgxOSkKKysrIExheW91dFRlc3RzL2Vk
aXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1tdWx0aS1saW5lLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTE5LDcgKzE5LDcgQEAgb25sb2FkID0gZnVuY3Rpb24oKSB7CiAKIGlm
ICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7Ci0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlv
cignd2luJyk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2lu
ZG93cycpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktbXVsdGktc3BhY2UuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFs
bHktbXVsdGktc3BhY2UuaHRtbAkocmV2aXNpb24gMjY5ODE5KQorKysgTGF5b3V0VGVzdHMvZWRp
dGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LW11bHRpLXNwYWNlLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTE5LDcgKzE5LDcgQEAgb25sb2FkID0gZnVuY3Rpb24oKSB7CiAKIGlm
ICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7Ci0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlv
cignd2luJyk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2lu
ZG93cycpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktbnVsbC1ib3guaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHkt
bnVsbC1ib3guaHRtbAkocmV2aXNpb24gMjY5ODE5KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LW51bGwtYm94Lmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTE4LDcgKzE4LDcgQEAgb25sb2FkID0gZnVuY3Rpb24oKSB7CiAKIGlmICh3aW5kb3cu
dGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7Ci0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luJyk7
CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luZG93cycpOwog
fQogPC9zY3JpcHQ+CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KSW5kZXg6IExheW91dFRlc3Rz
L2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1zaW5nbGUtc3BhY2UtaW5s
aW5lLWVsZW1lbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVj
dGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktc2luZ2xlLXNwYWNlLWlubGluZS1lbGVtZW50Lmh0
bWwJKHJldmlzaW9uIDI2OTgxOSkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21v
dmUtYnktd29yZC12aXN1YWxseS1zaW5nbGUtc3BhY2UtaW5saW5lLWVsZW1lbnQuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNyBAQCBvbmxvYWQgPSBmdW5jdGlvbigpIHsKIAogaWYg
KHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9y
KCd3aW4nKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW5k
b3dzJyk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcv
c2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1zaW5nbGUtc3BhY2Utb25lLWVsZW1lbnQu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5
LXdvcmQtdmlzdWFsbHktc2luZ2xlLXNwYWNlLW9uZS1lbGVtZW50Lmh0bWwJKHJldmlzaW9uIDI2
OTgxOSkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1
YWxseS1zaW5nbGUtc3BhY2Utb25lLWVsZW1lbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTks
NyArMTksNyBAQCBvbmxvYWQgPSBmdW5jdGlvbigpIHsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVy
ICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAg
ICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiB9CiA8L3Njcmlw
dD4KIDwvaGVhZD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnkt
d29yZC12aXN1YWxseS10ZXh0YXJlYS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Vk
aXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS10ZXh0YXJlYS5odG1sCShyZXZp
c2lvbiAyNjk4MTkpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdv
cmQtdmlzdWFsbHktdGV4dGFyZWEuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBA
QCBvbmxvYWQgPSBmdW5jdGlvbigpIHsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRv
dy5pbnRlcm5hbHMpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICBpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiB9CiA8L3NjcmlwdD4KIApJbmRl
eDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LXdy
b25nLWxlZnQtcmlnaHQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Nl
bGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktd3JvbmctbGVmdC1yaWdodC5odG1sCShyZXZp
c2lvbiAyNjk4MTkpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdv
cmQtdmlzdWFsbHktd3JvbmctbGVmdC1yaWdodC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw3
ICsyMiw3IEBAIG9ubG9hZCA9IGZ1bmN0aW9uKCkgewogCiBpZiAod2luZG93LnRlc3RSdW5uZXIg
JiYgd2luZG93LmludGVybmFscykgewogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAg
IGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbicpOworICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbmRvd3MnKTsKIH0KIDwvc2NyaXB0
PgogPHRpdGxlPndyb25nIHJlc3VsdCBiZWNhdXNlIFZpc2libGVQb3NpdGlvbi5sZWZ0KCkvcmln
aHQoKSByZXR1cm5zIHdyb25nIHJlc3VsdDwvdGl0bGU+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9wcm9ncmFtbWF0aWMtc2VsZWN0aW9uLW9uLW1hYy1pcy1kaXJlY3Rpb25s
ZXNzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vcHJv
Z3JhbW1hdGljLXNlbGVjdGlvbi1vbi1tYWMtaXMtZGlyZWN0aW9ubGVzcy5odG1sCShyZXZpc2lv
biAyNjk4MTkpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9wcm9ncmFtbWF0aWMt
c2VsZWN0aW9uLW9uLW1hYy1pcy1kaXJlY3Rpb25sZXNzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTEzNiw3ICsxMzYsNyBAQCBmdW5jdGlvbiBydW5UZXN0c0ZvcihwbGF0Zm9ybSkgewogCiBpZiAo
d2luZG93LmludGVybmFscykgewogICAgIHJ1blRlc3RzRm9yKCdtYWMnKTsKLSAgICBydW5UZXN0
c0Zvcignd2luJyk7CisgICAgcnVuVGVzdHNGb3IoJ3dpbmRvd3MnKTsKICAgICBydW5UZXN0c0Zv
cigndW5peCcpOwogCiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKS5pbm5lckhU
TUwgPSAnJzsKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3J0bC1tb3ZlLXNl
bGVjdGlvbi1yaWdodC1sZWZ0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zZWxlY3Rpb24vcnRsLW1vdmUtc2VsZWN0aW9uLXJpZ2h0LWxlZnQuaHRtbAkocmV2aXNpb24g
MjY5ODE5KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vcnRsLW1vdmUtc2VsZWN0
aW9uLXJpZ2h0LWxlZnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNzMsNyArNzMsNyBAQCBmdW5j
dGlvbiBydW5UZXN0cygpCiAgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVo
YXZpb3IoIm1hYyIpOwogICAgICAgICB0ZXN0U2VsZWN0aW9uQ2hhbmdlKGRyYWdTZWxlY3Rpb24s
ICJleHRlbmQiLCAicmlnaHQiLCAwLCAwLCAiRXh0ZW5kIGRyYWdnZWQgc2VsZWN0aW9uIHJpZ2h0
IChNYWMpIik7CiAgICAgICAgIHRlc3RTZWxlY3Rpb25DaGFuZ2UoZHJhZ1NlbGVjdGlvbiwgImV4
dGVuZCIsICJsZWZ0IiwgMCwgMCwgIkV4dGVuZCBkcmFnZ2VkIHNlbGVjdGlvbiBsZWZ0IChNYWMp
Iik7Ci0gICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoIndpbiIp
OworICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCJ3aW5kb3dz
Iik7CiAgICAgICAgIHRlc3RTZWxlY3Rpb25DaGFuZ2UoZHJhZ1NlbGVjdGlvbiwgImV4dGVuZCIs
ICJyaWdodCIsIDAsIDAsICJFeHRlbmQgZHJhZ2dlZCBzZWxlY3Rpb24gcmlnaHQgKFdpbikiKTsK
ICAgICAgICAgdGVzdFNlbGVjdGlvbkNoYW5nZShkcmFnU2VsZWN0aW9uLCAiZXh0ZW5kIiwgImxl
ZnQiLCAxLCAwLCAiRXh0ZW5kIGRyYWdnZWQgc2VsZWN0aW9uIGxlZnQgKFdpbikiKTsKICAgICAg
ICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcigidW5peCIpOwpJbmRleDog
TGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWV4dGVuZC1zaG91bGQtbm90
LW1vdmUtYWNyb3NzLWNhcmV0LW9uLW1hYy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1leHRlbmQtc2hvdWxkLW5vdC1tb3ZlLWFjcm9z
cy1jYXJldC1vbi1tYWMuaHRtbAkocmV2aXNpb24gMjY5ODE5KQorKysgTGF5b3V0VGVzdHMvZWRp
dGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWV4dGVuZC1zaG91bGQtbm90LW1vdmUtYWNyb3NzLWNh
cmV0LW9uLW1hYy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw3IEBAIGZ1bmN0aW9u
IGVkaXRpbmdUZXN0KGJlaGF2aW9yKSB7CiB9CiAKIGVkaXRpbmdUZXN0KCJtYWMiKTsKLWVkaXRp
bmdUZXN0KCJ3aW4iKTsKK2VkaXRpbmdUZXN0KCJ3aW5kb3dzIik7CiBlZGl0aW5nVGVzdCgidW5p
eCIpOwogCiB2YXIgbm9kZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0LWRpdiIpOwpJ
bmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2hpZnQtY2xpY2suaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zaGlmdC1jbGljay5odG1s
CShyZXZpc2lvbiAyNjk4MTkpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zaGlm
dC1jbGljay5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC05NSw3ICs5NSw3IEBAIGZ1bmN0aW9uIHJ1
blNoaWZ0Q2xpY2tUZXN0KGVkaXRpbmdCZWhhdmkKIAogaWYgKHdpbmRvdy5ldmVudFNlbmRlciAm
JiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgcnVuU2hpZnRDbGlja1Rlc3QoIm1hYyIpOwotICAg
IHJ1blNoaWZ0Q2xpY2tUZXN0KCJ3aW4iKTsKKyAgICBydW5TaGlmdENsaWNrVGVzdCgid2luZG93
cyIpOwogfQogCiB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRl
c3RzL2VkaXRpbmcvc2VsZWN0aW9uL3VzZXItc2VsZWN0LWFsbC13aXRoLXNoaWZ0Lmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vdXNlci1zZWxlY3QtYWxs
LXdpdGgtc2hpZnQuaHRtbAkocmV2aXNpb24gMjY5ODE5KQorKysgTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zZWxlY3Rpb24vdXNlci1zZWxlY3QtYWxsLXdpdGgtc2hpZnQuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtNTAsNyArNTAsNyBAQCBmdW5jdGlvbiBydW5UZXN0KGVkaXRpbmdCZWhhdmlvcikgewog
CiBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CiAgICAgcnVuVGVzdCgnbWFjJyk7Ci0gICAgcnVu
VGVzdCgnd2luJyk7CisgICAgcnVuVGVzdCgnd2luZG93cycpOwogICAgIHJ1blRlc3QoJ3VuaXgn
KTsKIAogfSBlbHNlCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL2NvcHktcGFz
dGUtY3Jhc2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5n
L2NvcHktcGFzdGUtY3Jhc2guaHRtbAkocmV2aXNpb24gMjY5ODE5KQorKysgTGF5b3V0VGVzdHMv
ZWRpdGluZy9zcGVsbGluZy9jb3B5LXBhc3RlLWNyYXNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTE0LDcgKzE0LDcgQEAKIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogPHNjcmlwdD4KIG9ubG9h
ZCA9IGluaXRTcGVsbFRlc3QoImRlc3RpbmF0aW9uIiwgIlNwZWxsIHdlbGxjb21lLiBJcyBpdCBi
cm9rZW4/IiwgZnVuY3Rpb24odGV4dE5vZGUpIHsKLSAgICB2YXIgYmVoYXZpb3JzID0gWyJ3aW4i
LCAibWFjIl07CisgICAgdmFyIGJlaGF2aW9ycyA9IFsid2luZG93cyIsICJtYWMiXTsKICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IGJlaGF2aW9ycy5sZW5ndGg7IGkrKykgewogICAgICAgICBpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKGJlaGF2aW9yc1tpXSk7CiAgICAgICAg
IGRvY3VtZW50LmV4ZWNDb21tYW5kKCJTZWxlY3RBbGwiKTsKSW5kZXg6IExheW91dFRlc3RzL2Vk
aXRpbmcvc3R5bGUvaWZyYW1lLW9ubG9hZC1jcmFzaC13aW4uaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL2lmcmFtZS1vbmxvYWQtY3Jhc2gtd2luLmh0bWwJKHJl
dmlzaW9uIDI2OTgxOSkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvaWZyYW1lLW9ubG9h
ZC1jcmFzaC13aW4uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIDxtZXRhPjxp
bnB1dD48aDY+PG5vYnI+PC9ub2JyPjxkYXRhZ3JpZD48aW5zPjxidXR0b24+PGVtPjxpZnJhbWUg
b25sb2FkPSIKIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVk
aXRpbmdCZWhhdmlvcignd2luJyk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdC
ZWhhdmlvcignd2luZG93cycpOwogfQogCiBpZiAoZG9jdW1lbnQuY291bnRlcikKSW5kZXg6IExh
eW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvbWFrZS10ZXh0LXdyaXRpbmctZGlyZWN0aW9uLWlubGlu
ZS13aW4uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL21ha2Ut
dGV4dC13cml0aW5nLWRpcmVjdGlvbi1pbmxpbmUtd2luLmh0bWwJKHJldmlzaW9uIDI2OTgxOSkK
KysrIExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvbWFrZS10ZXh0LXdyaXRpbmctZGlyZWN0aW9u
LWlubGluZS13aW4uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTQsNyArMTQsNyBAQCBkZXNjcmlw
dGlvbignVGVzdHMgdG8gZW5zdXJlIE1ha2VUZXh0V3JpCiBpZiAoIXdpbmRvdy50ZXN0UnVubmVy
KQogICAgIHRlc3RGYWlsZWQoJ1RoaXMgdGVzdCByZXF1aXJlcyB0ZXN0UnVubmVyJyk7CiBpZiAo
d2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2
aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3
aW5kb3dzJyk7CiAKIHZhciB0ZXN0Q29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
ZGl2Iik7CiB0ZXN0Q29udGFpbmVyLmNvbnRlbnRFZGl0YWJsZSA9IHRydWU7CkluZGV4OiBMYXlv
dXRUZXN0cy9lZGl0aW5nL3N0eWxlL3B1c2gtZG93bi1mb250LXN0eWxlcy13aW4uaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3B1c2gtZG93bi1mb250LXN0eWxl
cy13aW4uaHRtbAkocmV2aXNpb24gMjY5ODE5KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zdHls
ZS9wdXNoLWRvd24tZm9udC1zdHlsZXMtd2luLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDcg
KzEwLDcgQEAKIGRlc2NyaXB0aW9uKCdUZXN0IHRvIG1ha2Ugc3VyZSB3ZSBwdXNoIGRvd24gaW5s
aW5lIHN0eWxlcyBwcm9wZXJseS4nKTsKIAogaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50
ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luJyk7CisgICAgaW50ZXJuYWxz
LnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luZG93cycpOwogdmFyIHRlc3RDb250YWlu
ZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKIHRlc3RDb250YWluZXIuY29udGVu
dEVkaXRhYmxlID0gdHJ1ZTsKIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGVzdENvbnRhaW5l
cik7CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3B1c2gtZG93bi1pbXBsaWNpdC1z
dHlsZXMtYXJvdW5kLWxpc3Qtd2luLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRp
dGluZy9zdHlsZS9wdXNoLWRvd24taW1wbGljaXQtc3R5bGVzLWFyb3VuZC1saXN0LXdpbi5odG1s
CShyZXZpc2lvbiAyNjk4MTkpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3B1c2gtZG93
bi1pbXBsaWNpdC1zdHlsZXMtYXJvdW5kLWxpc3Qtd2luLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTEwLDcgKzEwLDcgQEAKIGRlc2NyaXB0aW9uKCdUZXN0IHRvIG1ha2Ugc3VyZSB3ZSBwdXNoIGRv
d24gaW5saW5lIHN0eWxlcyBwcm9wZXJseS4nKTsKIAogaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0g
ICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luJyk7CisgICAgaW50
ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luZG93cycpOwogdmFyIHRlc3RD
b250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKIHRlc3RDb250YWluZXIu
Y29udGVudEVkaXRhYmxlID0gdHJ1ZTsKIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGVzdENv
bnRhaW5lcik7CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3RvZ2dsZS1zdHlsZS1i
b2xkLWl0YWxpYy1taXhlZC1lZGl0YWJpbGl0eS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2VkaXRpbmcvc3R5bGUvdG9nZ2xlLXN0eWxlLWJvbGQtaXRhbGljLW1peGVkLWVkaXRhYmls
aXR5Lmh0bWwJKHJldmlzaW9uIDI2OTgxOSkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUv
dG9nZ2xlLXN0eWxlLWJvbGQtaXRhbGljLW1peGVkLWVkaXRhYmlsaXR5Lmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEwLDcgKzEwLDcgQEAgRWRpdGFibGUgPHNwYW4gY29udGVudGVkaXRhYmxlPWZh
bHNlPk5vbgogPHNjcmlwdCBzcmM9Li4vZWRpdGluZy5qcyBsYW5ndWFnZT0iSmF2YVNjcmlwdCIg
dHlwZT0idGV4dC9KYXZhU2NyaXB0IiA+PC9zY3JpcHQ+CiA8c2NyaXB0PgogdGVzdCgnbWFjJyk7
Ci10ZXN0KCd3aW4nKTsKK3Rlc3QoJ3dpbmRvd3MnKTsKIHRlc3QoJ3VuaXgnKTsKIGZ1bmN0aW9u
IHRlc3QocGxhdGZvcm0pIHsKICAgICBpZiAod2luZG93LmludGVybmFscykKSW5kZXg6IExheW91
dFRlc3RzL2VkaXRpbmcvc3R5bGUvdG9nZ2xlLXN0eWxlLWJvbGQtaXRhbGljLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS90b2dnbGUtc3R5bGUtYm9sZC1pdGFs
aWMuaHRtbAkocmV2aXNpb24gMjY5ODE5KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS90
b2dnbGUtc3R5bGUtYm9sZC1pdGFsaWMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTEsNyArMTEs
NyBAQAogPHNjcmlwdCBzcmM9Li4vZWRpdGluZy5qcyBsYW5ndWFnZT0iSmF2YVNjcmlwdCIgdHlw
ZT0idGV4dC9KYXZhU2NyaXB0IiA+PC9zY3JpcHQ+CiA8c2NyaXB0PgogdGVzdCgnbWFjJyk7Ci10
ZXN0KCd3aW4nKTsKK3Rlc3QoJ3dpbmRvd3MnKTsKIHRlc3QoJ3VuaXgnKTsKIGZ1bmN0aW9uIHRl
c3QocGxhdGZvcm0pIHsKICAgICBpZiAod2luZG93LmludGVybmFscykKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL2JhY2tzcGFjZS1uYXZpZ2F0ZXMtYmFjay5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2JhY2tzcGFjZS1uYXZpZ2F0ZXMtYmFjay5odG1s
CShyZXZpc2lvbiAyNjk4MTkpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9iYWNrc3BhY2Ut
bmF2aWdhdGVzLWJhY2suaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNTAsNyArNTAsNyBAQCBmdW5j
dGlvbiBkb1N0ZXAoc3RlcCwgbG9jYXRpb24pIHsKICAgICAgICAgaWYgKCFleHBlY3QobG9jYXRp
b24gPT0gJ3Rlc3Qtd2luJywgJ25hdmlnYXRpb24gdG8gdGVzdC13aW4nKSkKICAgICAgICAgICAg
IHJldHVybjsKIAotICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9y
KCd3aW4nKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcign
d2luZG93cycpOwogICAgICAgICB0ZXN0QmFja3NwYWNlTmF2aWdhdGVzQmFjaygpOwogCiAgICAg
ICAgIGJyZWFrOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3Rpb24tZGlyZWN0
aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3Rpb24t
ZGlyZWN0aW9uLmh0bWwJKHJldmlzaW9uIDI2OTgxOSkKKysrIExheW91dFRlc3RzL2Zhc3QvZm9y
bXMvc2VsZWN0aW9uLWRpcmVjdGlvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC05MSw3ICs5MSw3
IEBAIGZ1bmN0aW9uIHJ1blRlc3RGb3IocGxhdGZvcm0pIHsNCiANCiBpZiAod2luZG93LmludGVy
bmFscykgew0KICAgICBydW5UZXN0Rm9yKCdNYWMnKTsNCi0gICAgcnVuVGVzdEZvcignV2luJyk7
DQorICAgIHJ1blRlc3RGb3IoJ1dpbmRvd3MnKTsNCiAgICAgcnVuVGVzdEZvcignVW5peCcpOw0K
IH0gZWxzZQ0KICAgICBydW5UZXN0Rm9yKG5hdmlnYXRvci5wbGF0Zm9ybS5pbmRleE9mKCdNYWMn
KSA+PSAwID8gJ01hYycgOiAnV2luJyk7DQo=
</data>
<flag name="commit-queue"
          id="430977"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414172</attachid>
            <date>2020-11-15 10:55:48 -0800</date>
            <delta_ts>2020-11-15 12:10:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218960-20201115105547.patch</filename>
            <type>text/plain</type>
            <size>189757</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIwLTExLTE1ICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBTdGFuZGFyZGl6ZSBlbnVtcyB0aGF0IGFyZSB1c2VkIGJ5
IFNldHRpbmdzIGluIHByZXBlcmF0aW9uIGZvciBhdXRvZ2VuZXJhdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4OTYwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1dJUF0KKworICAgICAgICAqIFNj
cmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXMueWFtbDoKKwogMjAyMC0xMS0xNCAgRG9u
IE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIFtjbGFuZy10aWR5
XSBSdW4gbW9kZXJuaXplLXVzZS1vdmVycmlkZSB0aHJvdWdoIEpTQwpJbmRleDogU291cmNlL1dU
Ri9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWwJKHJldmlz
aW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJl
bmNlcy55YW1sCSh3b3JraW5nIGNvcHkpCkBAIC03MDYsNyArNzA2LDcgQEAgRWRpdGFibGVMaW5r
QmVoYXZpb3I6CiAgICAgV2ViS2l0TGVnYWN5OgogICAgICAgZGVmYXVsdDogV2ViS2l0RWRpdGFi
bGVMaW5rRGVmYXVsdEJlaGF2aW9yCiAgICAgV2ViS2l0OgotICAgICAgZGVmYXVsdDogV2ViQ29y
ZTo6RWRpdGFibGVMaW5rTmV2ZXJMaXZlCisgICAgICBkZWZhdWx0OiBXZWJDb3JlOjpFZGl0YWJs
ZUxpbmtCZWhhdmlvcjo6TmV2ZXJMaXZlCiAKIEVuYWJsZUluaGVyaXRVUklRdWVyeUNvbXBvbmVu
dDoKICAgdHlwZTogYm9vbApAQCAtMjE3Myw3ICsyMTczLDcgQEAgU3RvcmFnZUJsb2NraW5nUG9s
aWN5OgogICAgIFdlYktpdExlZ2FjeToKICAgICAgIGRlZmF1bHQ6IFdlYkFsbG93QWxsU3RvcmFn
ZQogICAgIFdlYktpdDoKLSAgICAgIGRlZmF1bHQ6IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpC
bG9ja1RoaXJkUGFydHlTdG9yYWdlCisgICAgICBkZWZhdWx0OiBXZWJDb3JlOjpTdG9yYWdlQmxv
Y2tpbmdQb2xpY3k6OkJsb2NrVGhpcmRQYXJ0eQogCiBTdWJyZXNvdXJjZUludGVncml0eUVuYWJs
ZWQ6CiAgIHR5cGU6IGJvb2wKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzOSBAQAor
MjAyMC0xMS0xNSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAgU3Rh
bmRhcmRpemUgZW51bXMgdGhhdCBhcmUgdXNlZCBieSBTZXR0aW5ncyBpbiBwcmVwZXJhdGlvbiBm
b3IgYXV0b2dlbmVyYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxODk2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFtXSVBdCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFNj
cmlwdHMvR2VuZXJhdGVTZXR0aW5ncy5yYjoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9Gb3JjZWRBY2Nlc3NpYmls
aXR5VmFsdWUuaDogQWRkZWQuCisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmZvbnRMb2FkVGltaW5nT3ZlcnJpZGUpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTRm9udEZhY2U6OmZvbnRMb2FkVGltaW5nIGNvbnN0KToKKyAgICAgICAgKiBjc3MvRm9udExv
YWRUaW1pbmdPdmVycmlkZS5oOiBBZGRlZC4KKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2YWx1
YXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjptb25vY2hyb21lRXZhbHVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6aW52ZXJ0ZWRDb2xvcnNFdmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpk
eW5hbWljUmFuZ2VFdmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpwcmVmZXJzUmVkdWNlZE1v
dGlvbkV2YWx1YXRlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmFwcGx5UXVpY2tMb29rU2FuZGJveCk6CisgICAgICAgICogZWRpdGlu
Zy9FZGl0YWJsZUxpbmtCZWhhdmlvci5oOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRp
bmdCZWhhdmlvci5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yOjpzaG91bGRN
b3ZlQ2FyZXRUb0hvcml6b250YWxCb3VuZGFyeVdoZW5QYXN0VG9wT3JCb3R0b20gY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yOjpzaG91bGRDb25zaWRlclNlbGVjdGlv
bkFzRGlyZWN0aW9uYWwgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9y
OjpzaG91bGRDZW50ZXJBbGlnbldoZW5TZWxlY3Rpb25Jc1JldmVhbGVkIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkVkaXRpbmdCZWhhdmlvcjo6c2hvdWxkVG9nZ2xlU3R5bGVCYXNlZE9uU3Rh
cnRPZlNlbGVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3I6
OnNob3VsZEFsd2F5c0dyb3dTZWxlY3Rpb25XaGVuRXh0ZW5kaW5nVG9Cb3VuZGFyeSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3I6OnNob3VsZFNlbGVjdE9uQ29udGV4
dHVhbE1lbnVDbGljayBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3I6
OnNob3VsZEFsbG93U3BlbGxpbmdTdWdnZXN0aW9uc1dpdGhvdXRTZWxlY3Rpb24gY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yOjpzaG91bGROYXZpZ2F0ZUJhY2tPbkJh
Y2tzcGFjZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3I6OnNob3Vs
ZEV4dGVuZFNlbGVjdGlvbkJ5V29yZE9yTGluZUFjcm9zc0NhcmV0IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRpbmdCZWhhdmlvcjo6c2hvdWxkU2tpcFNwYWNlV2hlbk1vdmluZ1JpZ2h0
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRpbmdCZWhhdmlvcjo6c2hvdWxkUmViYWxh
bmNlV2hpdGVTcGFjZXNJblNlY3VyZUZpZWxkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRpbmdCZWhhdmlvcjo6c2hvdWxkU2VsZWN0QmFzZWRPbkRpY3Rpb25hcnlMb29rdXAgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yOjpzaG91bGRBbHdheXNFeHRlbmRT
ZWxlY3Rpb25Gcm9tRXh0ZW50RW5kcG9pbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dGluZ0JlaGF2aW9yOjpzaG91bGRNb3ZlU2VsZWN0aW9uVG9FbmRXaGVuRm9jdXNpbmdUZXh0SW5w
dXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yOjpzaG91bGRBbHdh
eXNTbWFydERlbGV0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3I6
OnNob3VsZFNtYXJ0SW5zZXJ0RGVsZXRlUGFyYWdyYXBocyBjb25zdCk6CisgICAgICAgICogZWRp
dGluZy9FZGl0aW5nQmVoYXZpb3JUeXBlLmg6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvRWRp
dGluZ0JlaGF2aW9yVHlwZXMuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmJlaGF2aW9yIGNvbnN0KToKKyAgICAgICAg
KiBlZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24uaDoKKyAgICAgICAgKiBlZGl0aW5nL2NvY29h
L0RhdGFEZXRlY3Rpb24ubW06CisgICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RVUkxTdHJpbmdG
b3JSZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGFpbnMpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6cmVtb3ZlUmVzdWx0TGlua3NGcm9tQW5jaG9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OnNlYXJjaEZvckxpbmtSZW1vdmluZ0V4aXN0aW5nRERMaW5rcyk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpkYXRhRGV0ZWN0b3JUeXBlRm9yQ2F0ZWdvcnkpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6ZGF0YURldGVjdG9yU3RyaW5nRm9yUGF0aCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpidWlsZFF1ZXJ5KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OnF1ZXJ5T2Zmc2V0Q29tcGFyZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpE
YXRhRGV0ZWN0aW9uOjpyZW1vdmVEYXRhRGV0ZWN0ZWRMaW5rc0luRG9jdW1lbnQpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6RGF0YURldGVjdGlvbjo6ZGV0ZWN0Q29udGVudEluUmFuZ2Up
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGF0YURldGVjdGlvbjo6ZGF0YURldGVjdG9y
VVJMUHJvdG9jb2wpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGF0YURldGVjdGlvbjo6
aXNEYXRhRGV0ZWN0b3JVUkwpOiBEZWxldGVkLgorICAgICAgICAqIGVkaXRpbmcvY29jb2EvRGF0
YURldGVjdG9yVHlwZXMuaDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9tYXJrdXAuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUGFnZUZvclNhbml0aXppbmdXZWJDb250ZW50KToKKyAg
ICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxBbmNob3JFbGVtZW50OjpzZXRBY3RpdmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFuY2hv
ckVsZW1lbnQ6OnRyZWF0TGlua0FzTGl2ZUZvckV2ZW50VHlwZSBjb25zdCk6CisgICAgICAgICog
aHRtbC9wYXJzZXIvSFRNTFBhcnNlck9wdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFBhcnNlck9wdGlvbnM6OkhUTUxQYXJzZXJPcHRpb25zKToKKyAgICAgICAgKiBodG1sL3BhcnNl
ci9IVE1MUGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeS5oOiBBZGRlZC4KKyAgICAgICAgKiBsb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNoZWNr
TG9hZENvbXBsZXRlRm9yVGhpc0ZyYW1lKToKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OnBv
cHVsYXRlKToKKyAgICAgICAgKiBwYWdlL0RlYnVnT3ZlcmxheVJlZ2lvbnMuaDogQWRkZWQuCisg
ICAgICAgICogcGFnZS9EZWJ1Z1BhZ2VPdmVybGF5cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
ZWJ1Z1BhZ2VPdmVybGF5czo6dXBkYXRlT3ZlcmxheVJlZ2lvblZpc2liaWxpdHkpOgorICAgICAg
ICAoV2ViQ29yZTo6RGVidWdQYWdlT3ZlcmxheXM6OnNldHRpbmdzQ2hhbmdlZCk6CisgICAgICAg
ICogcGFnZS9EZWJ1Z1BhZ2VPdmVybGF5cy5oOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6dXNlSGFuZEN1cnNvcik6Cisg
ICAgICAgICogcGFnZS9GcmFtZUZsYXR0ZW5pbmcuaDogQWRkZWQuCisgICAgICAgICogcGFnZS9G
cmFtZVZpZXcuaDoKKyAgICAgICAgKiBwYWdlL1BERkltYWdlQ2FjaGluZ1BvbGljeS5oOiBBZGRl
ZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2hv
dWxkQnVpbGRFZGl0YWJsZVJlZ2lvbiBjb25zdCk6CisgICAgICAgICogcGFnZS9TZWN1cml0eU9y
aWdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6Y2FuQWNjZXNzU3Rv
cmFnZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6ZG9tYWluRm9y
Q2FjaGVQYXJ0aXRpb24gY29uc3QpOgorICAgICAgICAqIHBhZ2UvU2VjdXJpdHlPcmlnaW4uaDoK
KyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6CisgICAgICAgICogcGFnZS9TZXR0aW5nc0Jh
c2UuaDoKKyAgICAgICAgKiBwYWdlL1N0b3JhZ2VCbG9ja2luZ1BvbGljeS5oOiBBZGRlZC4KKyAg
ICAgICAgKiBwYWdlL1RleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IuaDogQWRk
ZWQuCisgICAgICAgICogcGFnZS9Vc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5Lmg6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL0RyYWdJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nn
L1BERkRvY3VtZW50SW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UERGRG9jdW1lbnRJbWFn
ZTo6dXBkYXRlQ2FjaGVkSW1hZ2VJZk5lZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvUERGRG9jdW1lbnRJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvRm9udFJl
bmRlcmluZ01vZGUuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0RGlyZWN0
aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6aXNMZWZ0VG9SaWdodERpcmVjdGlvbik6
CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0RmxhZ3MuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS90ZXh0L1dyaXRpbmdNb2RlLmg6CisgICAgICAgIChXZWJDb3JlOjptYWtlVGV4dEZsb3dJbml0
YWxpemVyKToKKyAgICAgICAgKFdlYkNvcmU6Om1ha2VUZXh0Rmxvdyk6CisgICAgICAgIChXZWJD
b3JlOjppc1JldmVyc2VkVGV4dEZsb3cpOgorICAgICAgICAoV2ViQ29yZTo6aXNGbGlwcGVkVGV4
dEZsb3cpOgorICAgICAgICAoV2ViQ29yZTo6aXNWZXJ0aWNhbFRleHRGbG93KToKKyAgICAgICAg
KFdlYkNvcmU6OmlzVmVydGljYWxXcml0aW5nTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjppc0Zs
aXBwZWRXcml0aW5nTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjppc0hvcml6b250YWxXcml0aW5n
TW9kZSk6CisgICAgICAgIChXZWJDb3JlOjppc0ZsaXBwZWRMaW5lc1dyaXRpbmdNb2RlKToKKyAg
ICAgICAgKFdlYkNvcmU6OmlzSG9yaXpvbnRhbFBoeXNpY2FsU2lkZSk6CisgICAgICAgIChXZWJD
b3JlOjptaXJyb3JQaHlzaWNhbFNpZGUpOgorICAgICAgICAoV2ViQ29yZTo6cm90YXRlUGh5c2lj
YWxTaWRlKToKKyAgICAgICAgKFdlYkNvcmU6Om1hcExvZ2ljYWxTaWRlVG9QaHlzaWNhbFNpZGUp
OgorICAgICAgICAoV2ViQ29yZTo6aXNMZWZ0VG9SaWdodERpcmVjdGlvbik6IERlbGV0ZWQuCisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyOjpjYWxjdWxhdGVDbGlwUmVjdHMgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJC
YWNraW5nOjpwYWludERlYnVnT3ZlcmxheXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXJCYWNraW5nOjpwYWludENvbnRlbnRzKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpC
YWNrdXApOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpyZXN0
b3JlVG8pOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6c2V0RWRpdGluZ0Jl
aGF2aW9yKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldFN0b3JhZ2VC
bG9ja2luZ1BvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRQ
REZJbWFnZUNhY2hpbmdQb2xpY3kpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGw6CisgICAgICAgICog
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZVBhZ2VGb3JTZXJ2aWNlV29ya2VyKToKKyAgICAgICAgKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6U2VydmljZVdvcmtlclRocmVhZFByb3h5
KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFk
UHJveHkuaDoKKwogMjAyMC0xMS0xNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkIGEgV2ViUlRDIFNGcmFtZSB0cmFuc2Zvcm0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZQkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQkod29ya2luZyBjb3B5KQpAQCAtMTg4LDYgKzE4OCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVf
RlJBTUVXT1JLX0hFQURFUlMKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJ
bnRlcmZhY2UuaAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5o
CiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oCisgICAgYWNjZXNz
aWJpbGl0eS9Gb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUuaAogCiAgICAgYWNjZXNzaWJpbGl0eS9p
c29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCiAgICAgYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZFRyZWUuaApAQCAtMzUzLDYgKzM1NCw3IEBAIHNldChXZWJDb3JlX1BS
SVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBjc3MvRGVwcmVjYXRlZENTU09NUmVjdC5oCiAg
ICAgY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmgKICAgICBjc3MvRGVwcmVjYXRlZENTU09NVmFs
dWVMaXN0LmgKKyAgICBjc3MvRm9udExvYWRUaW1pbmdPdmVycmlkZS5oCiAgICAgY3NzL0xlbmd0
aEZ1bmN0aW9ucy5oCiAgICAgY3NzL01lZGlhTGlzdC5oCiAgICAgY3NzL01lZGlhUXVlcnlFdmFs
dWF0b3IuaApAQCAtNTI2LDkgKzUyOCwxMCBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09S
S19IRUFERVJTCiAgICAgZWRpdGluZy9EaWN0YXRpb25Db250ZXh0LmgKICAgICBlZGl0aW5nL0Rp
Y3Rpb25hcnlQb3B1cEluZm8uaAogICAgIGVkaXRpbmcvRWRpdEFjdGlvbi5oCisgICAgZWRpdGlu
Zy9FZGl0YWJsZUxpbmtCZWhhdmlvci5oCiAgICAgZWRpdGluZy9FZGl0aW5nLmgKICAgICBlZGl0
aW5nL0VkaXRpbmdCZWhhdmlvci5oCi0gICAgZWRpdGluZy9FZGl0aW5nQmVoYXZpb3JUeXBlcy5o
CisgICAgZWRpdGluZy9FZGl0aW5nQmVoYXZpb3JUeXBlLmgKICAgICBlZGl0aW5nL0VkaXRpbmdC
b3VuZGFyeS5oCiAgICAgZWRpdGluZy9FZGl0aW5nU3R5bGUuaAogICAgIGVkaXRpbmcvRWRpdG9y
LmgKQEAgLTY5Myw2ICs2OTYsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFE
RVJTCiAKICAgICBodG1sL3BhcnNlci9QYXJzaW5nVXRpbGl0aWVzLmgKICAgICBodG1sL3BhcnNl
ci9IVE1MUGFyc2VySWRpb21zLmgKKyAgICBodG1sL3BhcnNlci9IVE1MUGFyc2VyU2NyaXB0aW5n
RmxhZ1BvbGljeS5oCiAKICAgICBodG1sL3RyYWNrL0F1ZGlvVHJhY2suaAogICAgIGh0bWwvdHJh
Y2svVGV4dFRyYWNrLmgKQEAgLTgzMSw2ICs4MzUsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZS
QU1FV09SS19IRUFERVJTCiAgICAgcGFnZS9ET01XaW5kb3dFeHRlbnNpb24uaAogICAgIHBhZ2Uv
RE9NV2luZG93UHJvcGVydHkuaAogICAgIHBhZ2UvRGF0YWJhc2VQcm92aWRlci5oCisgICAgcGFn
ZS9EZWJ1Z092ZXJsYXlSZWdpb25zLmgKICAgICBwYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmgKICAg
ICBwYWdlL0RlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oCiAgICAgcGFnZS9EZXZpY2VDbGllbnQu
aApAQCAtODQ4LDYgKzg1Myw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURF
UlMKICAgICBwYWdlL0ZvY3VzRGlyZWN0aW9uLmgKICAgICBwYWdlL0ZyYW1lLmgKICAgICBwYWdl
L0ZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5oCisgICAgcGFnZS9GcmFtZUZsYXR0ZW5pbmcuaAog
ICAgIHBhZ2UvRnJhbWVJZGVudGlmaWVyLmgKICAgICBwYWdlL0ZyYW1lU25hcHNob3R0aW5nLmgK
ICAgICBwYWdlL0ZyYW1lVHJlZS5oCkBAIC04NjAsNiArODY2LDcgQEAgc2V0KFdlYkNvcmVfUFJJ
VkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBhZ2UvTWVkaWFQcm9kdWNlci5oCiAgICAgcGFn
ZS9NZW1vcnlSZWxlYXNlLmgKICAgICBwYWdlL05hdmlnYXRvcklzTG9nZ2VkSW4uaAorICAgIHBh
Z2UvUERGSW1hZ2VDYWNoaW5nUG9saWN5LmgKICAgICBwYWdlL1BhZ2UuaAogICAgIHBhZ2UvUGFn
ZUNvbmZpZ3VyYXRpb24uaAogICAgIHBhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaApAQCAtODk2LDEy
ICs5MDMsMTUgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBh
Z2UvU29ja2V0UHJvdmlkZXIuaAogICAgIHBhZ2UvU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5o
CiAgICAgcGFnZS9TcGVlY2hTeW50aGVzaXNDbGllbnQuaAorICAgIHBhZ2UvU3RvcmFnZUJsb2Nr
aW5nUG9saWN5LmgKICAgICBwYWdlL1N1c3BlbmRhYmxlVGltZXIuaAorICAgIHBhZ2UvVGV4dERp
cmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvci5oCiAgICAgcGFnZS9UZXh0SW5kaWNhdG9y
LmgKICAgICBwYWdlL1VzZXJDb250ZW50Q29udHJvbGxlci5oCiAgICAgcGFnZS9Vc2VyQ29udGVu
dFByb3ZpZGVyLmgKICAgICBwYWdlL1VzZXJDb250ZW50VHlwZXMuaAogICAgIHBhZ2UvVXNlckNv
bnRlbnRVUkxQYXR0ZXJuLmgKKyAgICBwYWdlL1VzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3ku
aAogICAgIHBhZ2UvVXNlck1lc3NhZ2VIYW5kbGVyLmgKICAgICBwYWdlL1VzZXJNZXNzYWdlSGFu
ZGxlckRlc2NyaXB0b3IuaAogICAgIHBhZ2UvVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5o
CkBAIC0xMzgxLDExICsxMzkxLDEzIEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hF
QURFUlMKICAgICBwbGF0Zm9ybS9zcWwvU1FMaXRlVHJhbnNhY3Rpb24uaAogCiAgICAgcGxhdGZv
cm0vdGV4dC9CaWRpQ29udGV4dC5oCisgICAgcGxhdGZvcm0vdGV4dC9Gb250UmVuZGVyaW5nTW9k
ZS5oCiAgICAgcGxhdGZvcm0vdGV4dC9TdHJpbmdXaXRoRGlyZWN0aW9uLmgKICAgICBwbGF0Zm9y
bS90ZXh0L1RleHRCb3VuZGFyaWVzLmgKICAgICBwbGF0Zm9ybS90ZXh0L1RleHRDaGVja2VyQ2xp
ZW50LmgKICAgICBwbGF0Zm9ybS90ZXh0L1RleHRDaGVja2luZy5oCiAgICAgcGxhdGZvcm0vdGV4
dC9UZXh0Q29kZWMuaAorICAgIHBsYXRmb3JtL3RleHQvVGV4dERpcmVjdGlvbi5oCiAgICAgcGxh
dGZvcm0vdGV4dC9UZXh0RW5jb2RpbmcuaAogICAgIHBsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5n
UmVnaXN0cnkuaAogICAgIHBsYXRmb3JtL3RleHQvVGV4dEZsYWdzLmgKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy5yYgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MucmIJKHJldmlzaW9uIDI2OTgzMCkKKysr
IFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy5yYgkod29ya2luZyBjb3B5
KQpAQCAtMTMyLDcgKzEzMiw3IEBAIGNsYXNzIFNldHRpbmcKICAgICAgIG5hbWUKICAgICBlbHNp
ZiBuYW1lLnN0YXJ0X3dpdGg/KCJDU1MiLCAiWFNTIiwgIkZUUCIsICJET00iLCAiRE5TIiwgIlBE
RiIsICJJQ0UiLCAiSERSIikKICAgICAgIG5hbWVbMC4uMl0uZG93bmNhc2UgKyBuYW1lWzMuLm5h
bWUubGVuZ3RoXQotICAgIGVsc2lmIG5hbWUuc3RhcnRfd2l0aD8oIkhUVFAiKQorICAgIGVsc2lm
IG5hbWUuc3RhcnRfd2l0aD8oIkhUVFAiLCAiSFRNTCIpCiAgICAgICBuYW1lWzAuLjNdLmRvd25j
YXNlICsgbmFtZVs0Li5uYW1lLmxlbmd0aF0KICAgICBlbHNlCiAgICAgICBuYW1lWzBdLmRvd25j
YXNlICsgbmFtZVsxLi5uYW1lLmxlbmd0aF0KQEAgLTE3NSw3ICsxNzUsOSBAQCBjbGFzcyBTZXR0
aW5nCiAgIGVuZAogCiAgIGRlZiBzZXR0ZXJGdW5jdGlvbk5hbWUKLSAgICBpZiBAbmFtZS5zdGFy
dF93aXRoPygiY3NzIiwgInhzcyIsICJmdHAiLCAiZG9tIiwgImRucyIsICJpY2UiLCAiaGRyIikK
KyAgICBpZiBAbmFtZS5zdGFydF93aXRoPygiaHRtbCIpCisgICAgICAic2V0IiArIEBuYW1lWzAu
LjNdLnVwY2FzZSArIEBuYW1lWzQuLkBuYW1lLmxlbmd0aF0KKyAgICBlbHNpZiBAbmFtZS5zdGFy
dF93aXRoPygiY3NzIiwgInhzcyIsICJmdHAiLCAiZG9tIiwgImRucyIsICJpY2UiLCAiaGRyIikK
ICAgICAgICJzZXQiICsgQG5hbWVbMC4uMl0udXBjYXNlICsgQG5hbWVbMy4uQG5hbWUubGVuZ3Ro
XQogICAgIGVsc2UKICAgICAgICJzZXQiICsgQG5hbWVbMF0udXBjYXNlICsgQG5hbWVbMS4uQG5h
bWUubGVuZ3RoXQpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMzg1LDcg
KzEzODUsNyBAQAogCQk0RTE5NTkyQTBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFRdWVyeS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEUxOTU5MjQwQTM5
REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk0RTE5NTkyQzBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFR
dWVyeUV2YWx1YXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNEUxOTU5MjYwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnlFdmFsdWF0b3IuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0RjE1MzRE
RTExQjUzMkVDMDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9yLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RjE1MzRERDExQjUzMkVDMDAyMUZEODYgLyog
RWRpdGluZ0JlaGF2aW9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKLQkJNEYxNTM0RTAxMUI1MzMwMjAwMjFGRDg2IC8qIEVkaXRpbmdCZWhhdmlvclR5
cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RjE1
MzRERjExQjUzMzAyMDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9yVHlwZXMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0RjE1MzRFMDExQjUzMzAy
MDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9yVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEYxNTM0REYxMUI1MzMwMjAwMjFGRDg2IC8qIEVkaXRp
bmdCZWhhdmlvclR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk0RkE2NUE2QzExMDhBQkVEMDAyNjE1RTAgLyogTWF0aE1MU3BhY2VFbGVtZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RkE2NUE2
QTExMDhBQkVEMDAyNjE1RTAgLyogTWF0aE1MU3BhY2VFbGVtZW50LmggKi87IH07CiAJCTUwMUJB
QUE5MTM5NTBFMkMwMEY3QUNFQiAvKiBXaW5kUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTAxQkFBQTgxMzk1MEUyQzAwRjdBQ0VCIC8qIFdpbmRS
dWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NTA0QUFDQ0UxODM0NDU1OTAwRTNEOUJDIC8qIEluc3BlY3Rvck5vZGVGaW5kZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwNEFBQ0NDMTgzNDQ1NTkw
MEUzRDlCQyAvKiBJbnNwZWN0b3JOb2RlRmluZGVyLmggKi87IH07CkBAIC0zOTEyLDYgKzM5MTIs
MTkgQEAKIAkJQkM0OTE4QzcwQkZFQTA1MDAwOUQ2MzE2IC8qIEpTSFRNTEZyYW1lRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0OTE4QzEw
QkZFQTA1MDAwOUQ2MzE2IC8qIEpTSFRNTEZyYW1lRWxlbWVudC5oICovOyB9OwogCQlCQzQ5MThD
OTBCRkVBMDUwMDA5RDYzMTYgLyogSlNIVE1MSUZyYW1lRWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0OTE4QzMwQkZFQTA1MDAwOUQ2MzE2
IC8qIEpTSFRNTElGcmFtZUVsZW1lbnQuaCAqLzsgfTsKIAkJQkM0OTFCNzkwQzAyM0VGRDAwOUQ2
MzE2IC8qIEpTSFRNTE1hcnF1ZWVFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzQ5MUI3NzBDMDIzRUZEMDA5RDYzMTYgLyogSlNIVE1MTWFy
cXVlZUVsZW1lbnQuaCAqLzsgfTsKKwkJQkM0QTUzMjMyNTYwNTI3NjAwMjhDNTkyIC8qIEVkaXRh
YmxlTGlua0JlaGF2aW9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzRBNTMyMTI1NjA1MjcwMDAyOEM1OTIgLyogRWRpdGFibGVMaW5rQmVoYXZpb3Iu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlCQzRB
NTMyNTI1NjA1NTVGMDAyOEM1OTIgLyogVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhh
dmlvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0
QTUzMjQyNTYwNTU1OTAwMjhDNTkyIC8qIFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVo
YXZpb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQlCQzRBNTMyNzI1NjA1NUQzMDAyOEM1OTIgLyogVXNlckludGVyZmFjZURpcmVjdGlvblBvbGlj
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0QTUz
MjYyNTYwNTVEMzAwMjhDNTkyIC8qIFVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3kuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlCQzRBNTMyOTI1
NjA1NjNCMDAyOEM1OTIgLyogUERGSW1hZ2VDYWNoaW5nUG9saWN5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzRBNTMyODI1NjA1NjNCMDAyOEM1OTIg
LyogUERGSW1hZ2VDYWNoaW5nUG9saWN5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJQkM0QTUzMkIyNTYwNTY2RTAwMjhDNTkyIC8qIEZyYW1lRmxh
dHRlbmluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkM0QTUzMkEyNTYwNTY2RTAwMjhDNTkyIC8qIEZyYW1lRmxhdHRlbmluZy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUJDNEE1MzJEMjU2MDU2RDUw
MDI4QzU5MiAvKiBEZWJ1Z092ZXJsYXlSZWdpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzRBNTMyQzI1NjA1NkQ1MDAyOEM1OTIgLyogRGVidWdP
dmVybGF5UmVnaW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCUJDNEE1MzJGMjU2MDU3Q0QwMDI4QzU5MiAvKiBGb250TG9hZFRpbWluZ092ZXJy
aWRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzRB
NTMyRTI1NjA1N0NEMDAyOEM1OTIgLyogRm9udExvYWRUaW1pbmdPdmVycmlkZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUJDNEE1MzMxMjU2MDU5
MDMwMDI4QzU5MiAvKiBGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNEE1MzMwMjU2MDU5MDMwMDI4QzU5MiAv
KiBGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQlCQzRBNTMzMzI1NjA1OTgzMDAyOEM1OTIgLyogSFRNTFBh
cnNlclNjcmlwdGluZ0ZsYWdQb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDNEE1MzMyMjU2MDU5ODMwMDI4QzU5MiAvKiBIVE1MUGFyc2VyU2Ny
aXB0aW5nRmxhZ1BvbGljeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCUJDNEE1MzM1MjU2MDVBNTYwMDI4QzU5MiAvKiBEYXRhRGV0ZWN0b3JUeXBl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0QTUz
MzQyNTYwNUE1NjAwMjhDNTkyIC8qIERhdGFEZXRlY3RvclR5cGVzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQkM0QTUzMzcyNTYwNUFFMTAwMjhD
NTkyIC8qIFN0b3JhZ2VCbG9ja2luZ1BvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0QTUzMzYyNTYwNUFFMTAwMjhDNTkyIC8qIFN0b3JhZ2VC
bG9ja2luZ1BvbGljeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCUJDNEE1MzM5MjU2MDYzOTgwMDI4QzU5MiAvKiBGb250UmVuZGVyaW5nTW9kZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0QTUzMzgy
NTYwNjM5ODAwMjhDNTkyIC8qIEZvbnRSZW5kZXJpbmdNb2RlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQkM0QTUzM0IyNTYwNjRFMTAwMjhDNTky
IC8qIFRleHREaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDNEE1MzNBMjU2MDY0RTEwMDI4QzU5MiAvKiBUZXh0RGlyZWN0aW9uLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM1MTE1NkUx
MkIxNzQ5QzAwQzk2NzU0IC8qIFNjcm9sbEFuaW1hdG9yTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1MTE1NkQxMkIxNzQ5QzAwQzk2NzU0IC8q
IFNjcm9sbEFuaW1hdG9yTWFjLm1tICovOyB9OwogCQlCQzUzQzVGNTBEQTU2QjkyMDAyMUVCNUQg
LyogR3JhZGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDNTNDNUY0MERBNTZCOTIwMDIxRUI1RCAvKiBHcmFkaWVudC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDNTNDNjkyMERBNTkxMTQwMDIx
RUI1RCAvKiBDU1NHcmFkaWVudFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzUzQzY5MTBEQTU5MTE0MDAyMUVCNUQgLyogQ1NTR3JhZGllbnRW
YWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBA
IC04MzU2LDcgKzgzNjksNyBAQAogCQk0RTE5NTkyNTBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFR
dWVyeUV2YWx1YXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TWVkaWFRdWVyeUV2YWx1YXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRF
MTk1OTI2MEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5RXZhbHVhdG9yLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVF1ZXJ5RXZhbHVhdG9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGMTUzNEREMTFCNTMyRUMwMDIxRkQ4NiAvKiBFZGl0aW5n
QmVoYXZpb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRWRpdGluZ0JlaGF2
aW9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTRGMTUzNERGMTFCNTMzMDIwMDIx
RkQ4NiAvKiBFZGl0aW5nQmVoYXZpb3JUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBFZGl0aW5nQmVoYXZpb3JUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0RjE1MzRERjExQjUzMzAyMDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9yVHlwZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFZGl0aW5nQmVoYXZpb3JUeXBlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGQTY1QTY5MTEwOEFCRUQwMDI2MTVFMCAvKiBN
YXRoTUxTcGFjZUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTWF0aE1MU3BhY2VFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NEZBNjVBNkExMTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFNwYWNlRWxlbWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYXRoTUxTcGFjZUVsZW1lbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEZBQjQ4NjQxNjQzQTY2RDAwRjcwQzA3IC8qIEVsZW1lbnRS
YXJlRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFbGVtZW50
UmFyZURhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM4MTgsNiArMTM4
MzEsMTkgQEAKIAkJQkM0OTFCNEUwQzAyM0UyRDAwOUQ2MzE2IC8qIEhUTUxNYXJxdWVlRWxlbWVu
dC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTE1hcnF1ZWVFbGVtZW50LmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM0OTFCNzYwQzAyM0VGRDAwOUQ2MzE2IC8qIEpT
SFRNTE1hcnF1ZWVFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU0hUTUxNYXJxdWVlRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUJDNDkxQjc3MEMwMjNFRkQwMDlENjMxNiAvKiBKU0hUTUxNYXJxdWVlRWxlbWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MTWFycXVlZUVsZW1lbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM0QTUzMjEyNTYwNTI3MDAwMjhDNTkyIC8q
IEVkaXRhYmxlTGlua0JlaGF2aW9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVkaXRhYmxlTGlua0JlaGF2
aW9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDNEE1MzI0MjU2MDU1NTkwMDI4
QzU5MiAvKiBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM0QTUzMjYyNTYwNTVEMzAwMjhDNTkyIC8qIFVzZXJJbnRl
cmZhY2VEaXJlY3Rpb25Qb2xpY3kuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlckludGVyZmFjZURpcmVj
dGlvblBvbGljeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzRBNTMyODI1NjA1
NjNCMDAyOEM1OTIgLyogUERGSW1hZ2VDYWNoaW5nUG9saWN5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBE
RkltYWdlQ2FjaGluZ1BvbGljeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzRB
NTMyQTI1NjA1NjZFMDAyOEM1OTIgLyogRnJhbWVGbGF0dGVuaW5nLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEZyYW1lRmxhdHRlbmluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzRBNTMy
QzI1NjA1NkQ1MDAyOEM1OTIgLyogRGVidWdPdmVybGF5UmVnaW9ucy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEZWJ1Z092ZXJsYXlSZWdpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJD
NEE1MzJFMjU2MDU3Q0QwMDI4QzU5MiAvKiBGb250TG9hZFRpbWluZ092ZXJyaWRlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEZvbnRMb2FkVGltaW5nT3ZlcnJpZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQkM0QTUzMzAyNTYwNTkwMzAwMjhDNTkyIC8qIEZvcmNlZEFjY2Vzc2liaWxpdHlW
YWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM0QTUzMzIyNTYwNTk4MzAwMjhDNTkyIC8qIEhUTUxQ
YXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxQYXJzZXJTY3Jp
cHRpbmdGbGFnUG9saWN5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDNEE1MzM0
MjU2MDVBNTYwMDI4QzU5MiAvKiBEYXRhRGV0ZWN0b3JUeXBlcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
YXRhRGV0ZWN0b3JUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzRBNTMz
NjI1NjA1QUUxMDAyOEM1OTIgLyogU3RvcmFnZUJsb2NraW5nUG9saWN5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFN0b3JhZ2VCbG9ja2luZ1BvbGljeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlCQzRBNTMzODI1NjA2Mzk4MDAyOEM1OTIgLyogRm9udFJlbmRlcmluZ01vZGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRm9udFJlbmRlcmluZ01vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQkM0QTUzM0EyNTYwNjRFMTAwMjhDNTkyIC8qIFRleHREaXJlY3Rpb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gVGV4dERpcmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzUx
MTU2RDEyQjE3NDlDMDBDOTY3NTQgLyogU2Nyb2xsQW5pbWF0b3JNYWMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxBbmltYXRvck1hYy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1MTU4MEEwQzAzRDQwNDAwOEJCMEVFIC8qIEpTSFRN
TERvY3VtZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU0hUTUxEb2N1bWVudEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUJDNTNDNUY0MERBNTZCOTIwMDIxRUI1RCAvKiBHcmFkaWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBHcmFkaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTg4NzgsNiArMTg5MDQsNyBAQAogCQkJCTI5ODFDQUFGMTMxODIyRUMwMEQxMkYyQSAvKiBB
WE9iamVjdENhY2hlLmNwcCAqLywKIAkJCQkyOUE4MTIxQTBGQkI5QzFEMDA1MTAyOTMgLyogQVhP
YmplY3RDYWNoZS5oICovLAogCQkJCTkxQzlGMkY4MUFFM0JFMjQwMDk1QjYxQyAvKiBBWFRleHRT
dGF0ZUNoYW5nZUludGVudC5oICovLAorCQkJCUJDNEE1MzMwMjU2MDU5MDMwMDI4QzU5MiAvKiBG
b3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gYWNjZXNzaWJp
bGl0eTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yMTc4MCw2ICsyMTgwNyw3IEBA
CiAJCQkJOTc1Q0EyODkxMzAzNjVGODAwRTk5QUQ5IC8qIENyeXB0by5pZGwgKi8sCiAJCQkJMUFD
QjJCMjExQTU3MzNGNDAwMzMzMzkyIC8qIERhdGFiYXNlUHJvdmlkZXIuY3BwICovLAogCQkJCTFB
Q0IyQjIyMUE1NzMzRjQwMDMzMzM5MiAvKiBEYXRhYmFzZVByb3ZpZGVyLmggKi8sCisJCQkJQkM0
QTUzMkMyNTYwNTZENTAwMjhDNTkyIC8qIERlYnVnT3ZlcmxheVJlZ2lvbnMuaCAqLywKIAkJCQkw
RjZBMTJCQjFBMDA5MjM3MDBDNkRFNzIgLyogRGVidWdQYWdlT3ZlcmxheXMuY3BwICovLAogCQkJ
CTBGNkExMkJDMUEwMDkyMzcwMEM2REU3MiAvKiBEZWJ1Z1BhZ2VPdmVybGF5cy5oICovLAogCQkJ
CTdDQkQxMjlDMUY5OEI1RkYwMDEyN0QyOSAvKiBEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuY3Bw
ICovLApAQCAtMjE4MzIsNiArMjE4NjAsNyBAQAogCQkJCTY1QkYwMjJBMDk3NDgxNjMwMEM0MzE5
NiAvKiBGcmFtZS5oICovLAogCQkJCTk3NEE4NjIwMTRCN0FEQkIwMDNGREM3NiAvKiBGcmFtZURl
c3RydWN0aW9uT2JzZXJ2ZXIuY3BwICovLAogCQkJCTk3NEE4NjIxMTRCN0FEQkIwMDNGREM3NiAv
KiBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaCAqLywKKwkJCQlCQzRBNTMyQTI1NjA1NjZFMDAy
OEM1OTIgLyogRnJhbWVGbGF0dGVuaW5nLmggKi8sCiAJCQkJMEYxMTc4MTYyMkUzQzQ3RTAwOEJE
NTcwIC8qIEZyYW1lSWRlbnRpZmllci5oICovLAogCQkJCUM0Q0Q2Mjk4MTgzODM3NjYwMDdFQkFG
MSAvKiBGcmFtZVNuYXBzaG90dGluZy5jcHAgKi8sCiAJCQkJQzRDRDYyOTkxODM4Mzc2NjAwN0VC
QUYxIC8qIEZyYW1lU25hcHNob3R0aW5nLmggKi8sCkBAIC0yMTkwMiw2ICsyMTkzMSw3IEBACiAJ
CQkJMkQ1QzlDRkUxOUM3QjUyRTAwQjNDNUMxIC8qIFBhZ2VPdmVybGF5Q29udHJvbGxlci5oICov
LAogCQkJCTM3MUU2NUNEMTM2NjFFRUQwMEJFRURCMCAvKiBQYWdlU2VyaWFsaXplci5jcHAgKi8s
CiAJCQkJMzcxRTY1Q0IxMzY2MUVEQzAwQkVFREIwIC8qIFBhZ2VTZXJpYWxpemVyLmggKi8sCisJ
CQkJQkM0QTUzMjgyNTYwNTYzQjAwMjhDNTkyIC8qIFBERkltYWdlQ2FjaGluZ1BvbGljeS5oICov
LAogCQkJCTdDNzI0NzFFMjUxNjc1ODgwMEMzNjNDRCAvKiBQZXJmb3JtYW5jZStOYXZpZ2F0aW9u
VGltaW5nLmlkbCAqLywKIAkJCQk3QzcyNDcxQzI1MTY3NENFMDBDMzYzQ0QgLyogUGVyZm9ybWFu
Y2UrUGVyZm9ybWFuY2VUaW1lbGluZS5pZGwgKi8sCiAJCQkJN0M3MjQ3MUQyNTE2NzUyQzAwQzM2
M0NEIC8qIFBlcmZvcm1hbmNlK1Jlc291cmNlVGltaW5nLmlkbCAqLywKQEAgLTIyMDI1LDggKzIy
MDU1LDEwIEBACiAJCQkJNjI2Q0RFMEQxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0
aW9uLmggKi8sCiAJCQkJOTNBMDQ4MjYyNTQ5NTUwMDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0
aW9uUHJvdmlkZXIuaCAqLywKIAkJCQlDMTQ5MzgwNTIyMzQyNzE5MDAwQ0Q3MDcgLyogU3BlZWNo
U3ludGhlc2lzQ2xpZW50LmggKi8sCisJCQkJQkM0QTUzMzYyNTYwNUFFMTAwMjhDNTkyIC8qIFN0
b3JhZ2VCbG9ja2luZ1BvbGljeS5oICovLAogCQkJCTYyQzEyMTdBMTFBQjlFNzYwMDNDNDYyQyAv
KiBTdXNwZW5kYWJsZVRpbWVyLmNwcCAqLywKIAkJCQk2MkMxMjE3QjExQUI5RTc3MDAzQzQ2MkMg
LyogU3VzcGVuZGFibGVUaW1lci5oICovLAorCQkJCUJDNEE1MzI0MjU2MDU1NTkwMDI4QzU5MiAv
KiBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yLmggKi8sCiAJCQkJMkQ0Rjk2
RjExQTFFQ0MyNDAwOThCRjg4IC8qIFRleHRJbmRpY2F0b3IuY3BwICovLAogCQkJCTJENEY5NkYy
MUExRUNDMjQwMDk4QkY4OCAvKiBUZXh0SW5kaWNhdG9yLmggKi8sCiAJCQkJRjRFMTk2NUYyMUYy
NkU0RTAwMjg1MDc4IC8qIFVuZG9JdGVtLmNwcCAqLywKQEAgLTIyMDQyLDYgKzIyMDc0LDcgQEAK
IAkJCQkwMDNGMUZFOTExRTZBQjQzMDA4MjU4RDkgLyogVXNlckNvbnRlbnRUeXBlcy5oICovLAog
CQkJCUJDQUNGM0JBMTA3MjkyMUEwMEMwQzhBMyAvKiBVc2VyQ29udGVudFVSTFBhdHRlcm4uY3Bw
ICovLAogCQkJCUJDQUNGM0JCMTA3MjkyMUEwMEMwQzhBMyAvKiBVc2VyQ29udGVudFVSTFBhdHRl
cm4uaCAqLywKKwkJCQlCQzRBNTMyNjI1NjA1NUQzMDAyOEM1OTIgLyogVXNlckludGVyZmFjZURp
cmVjdGlvblBvbGljeS5oICovLAogCQkJCTdDM0I3OTZGMTkwODc1N0IwMEI0N0EyRCAvKiBVc2Vy
TWVzc2FnZUhhbmRsZXIuY3BwICovLAogCQkJCTdDM0I3OTcwMTkwODc1N0IwMEI0N0EyRCAvKiBV
c2VyTWVzc2FnZUhhbmRsZXIuaCAqLywKIAkJCQk3QzczRkIwRTE5MUVGNjBFMDA3REUwNjEgLyog
VXNlck1lc3NhZ2VIYW5kbGVyLmlkbCAqLywKQEAgLTIyNTQwLDYgKzIyNTczLDcgQEAKIAkJCQk1
Q0NDMjcwNjIyRDUzQjY4MDA5NjRGQTAgLyogQXV0b2ZpbGxFbGVtZW50cy5oICovLAogCQkJCUM1
MjI3REVGMUMzQzZERDcwMEY1RUQ1NCAvKiBEYXRhRGV0ZWN0aW9uLmggKi8sCiAJCQkJQzUyMjdE
RjAxQzNDNkRENzAwRjVFRDU0IC8qIERhdGFEZXRlY3Rpb24ubW0gKi8sCisJCQkJQkM0QTUzMzQy
NTYwNUE1NjAwMjhDNTkyIC8qIERhdGFEZXRlY3RvclR5cGVzLmggKi8sCiAJCQkJOTM3RkYzRDYx
QTEwMTMxQjAwOEVCQTMxIC8qIERpY3Rpb25hcnlMb29rdXAubW0gKi8sCiAJCQkJOUI1NUVFRTgx
QjNFODg5ODAwNTM0MkJDIC8qIEVkaXRvckNvY29hLm1tICovLAogCQkJCUY0MkNFQjU0MjE0MDMx
RUUwMDJEQ0E3MiAvKiBGb250QXR0cmlidXRlQ2hhbmdlc0NvY29hLm1tICovLApAQCAtMjI4NDYs
NiArMjI4ODAsNyBAQAogCQkJCUNFQ0FERkM1MTUzNzc4RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25D
b21tYW5kLmggKi8sCiAJCQkJOTM4NDMwQjIyNDc1REUzRjAwM0Y5NjE3IC8qIERpY3RhdGlvbkNv
bnRleHQuaCAqLywKIAkJCQkyRDU2NDZBRjFCOEY4NDkzMDAzQzQ5OTQgLyogRGljdGlvbmFyeVBv
cHVwSW5mby5oICovLAorCQkJCUJDNEE1MzIxMjU2MDUyNzAwMDI4QzU5MiAvKiBFZGl0YWJsZUxp
bmtCZWhhdmlvci5oICovLAogCQkJCUY0OUU5OEU0MjFERUU2QzEwMDlBRTU1RSAvKiBFZGl0QWN0
aW9uLmNwcCAqLywKIAkJCQk5MzMwOUQ5MzA5OUU2NDkxMDA1NkU1ODEgLyogRWRpdEFjdGlvbi5o
ICovLAogCQkJCTkzMzA5RDk0MDk5RTY0OTEwMDU2RTU4MSAvKiBFZGl0Q29tbWFuZC5jcHAgKi8s
CkBAIC0yMjg1Myw3ICsyMjg4OCw3IEBACiAJCQkJOTMzMDlEOTgwOTlFNjQ5MTAwNTZFNTgxIC8q
IEVkaXRpbmcuY3BwICovLAogCQkJCTkzMzA5RDk5MDk5RTY0OTEwMDU2RTU4MSAvKiBFZGl0aW5n
LmggKi8sCiAJCQkJNEYxNTM0REQxMUI1MzJFQzAwMjFGRDg2IC8qIEVkaXRpbmdCZWhhdmlvci5o
ICovLAotCQkJCTRGMTUzNERGMTFCNTMzMDIwMDIxRkQ4NiAvKiBFZGl0aW5nQmVoYXZpb3JUeXBl
cy5oICovLAorCQkJCTRGMTUzNERGMTFCNTMzMDIwMDIxRkQ4NiAvKiBFZGl0aW5nQmVoYXZpb3JU
eXBlLmggKi8sCiAJCQkJM0FDNjQ4QjExMjlFMTQ2NTAwQzNFQjI1IC8qIEVkaXRpbmdCb3VuZGFy
eS5oICovLAogCQkJCTlCQUI2QzZCMTI1NTA2MzEwMDE2MjZENCAvKiBFZGl0aW5nU3R5bGUuY3Bw
ICovLAogCQkJCTlCQUI2QzZBMTI1NTA2MzEwMDE2MjZENCAvKiBFZGl0aW5nU3R5bGUuaCAqLywK
QEAgLTIzODk1LDYgKzIzOTMwLDcgQEAKIAkJCQk5NzNGNDE4ODE2OUI5NUVGMDAwNkJGNjAgLyog
SFRNTFBhcnNlck9wdGlvbnMuaCAqLywKIAkJCQk5NzdCMzg1NzEyMjg4M0U5MDBCODFGRjggLyog
SFRNTFBhcnNlclNjaGVkdWxlci5jcHAgKi8sCiAJCQkJOTc3QjM4NTgxMjI4ODNFOTAwQjgxRkY4
IC8qIEhUTUxQYXJzZXJTY2hlZHVsZXIuaCAqLywKKwkJCQlCQzRBNTMzMjI1NjA1OTgzMDAyOEM1
OTIgLyogSFRNTFBhcnNlclNjcmlwdGluZ0ZsYWdQb2xpY3kuaCAqLywKIAkJCQk5NzdCMzg1OTEy
Mjg4M0U5MDBCODFGRjggLyogSFRNTFByZWxvYWRTY2FubmVyLmNwcCAqLywKIAkJCQk5NzdCMzg1
QTEyMjg4M0U5MDBCODFGRjggLyogSFRNTFByZWxvYWRTY2FubmVyLmggKi8sCiAJCQkJQThEMjIz
RkIxNkI1MkU0RTAwMTU3Mjg4IC8qIEhUTUxSZXNvdXJjZVByZWxvYWRlci5jcHAgKi8sCkBAIC0y
NjU1Nyw2ICsyNjU5Myw3IEBACiAJCQkJQ0VDQ0ZDM0ExNDE5NzNENTAwMkEwQUMxIC8qIERlY29k
ZUVzY2FwZVNlcXVlbmNlcy5oICovLAogCQkJCURGQzYxMEEyMjRGQjJBN0MwMDYyNTRDOCAvKiBF
bmNvZGluZ1RhYmxlcy5jcHAgKi8sCiAJCQkJREZDNjEwQTQyNEZCMkE3RDAwNjI1NEM4IC8qIEVu
Y29kaW5nVGFibGVzLmggKi8sCisJCQkJQkM0QTUzMzgyNTYwNjM5ODAwMjhDNTkyIC8qIEZvbnRS
ZW5kZXJpbmdNb2RlLmggKi8sCiAJCQkJMzc1Q0QyMzExMTlENDNDODAwQTJBODU5IC8qIEh5cGhl
bmF0aW9uLmggKi8sCiAJCQkJNzYzM0E3MjUxM0Q4QjMzQTAwODUwMUI2IC8qIExvY2FsZVRvU2Ny
aXB0TWFwcGluZy5jcHAgKi8sCiAJCQkJNzYzM0E3MjQxM0Q4QjMzQTAwODUwMUI2IC8qIExvY2Fs
ZVRvU2NyaXB0TWFwcGluZy5oICovLApAQCAtMjY1OTEsNiArMjY2MjgsNyBAQAogCQkJCUIyQzNE
QTEyMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNVVEYxNi5oICovLAogCQkJCTkzNDNDQjdG
MTJGMjVFNTEwMDMzQzVFRSAvKiBUZXh0Q29kZWNVVEY4LmNwcCAqLywKIAkJCQk5MzQzQ0I4MDEy
RjI1RTUxMDAzM0M1RUUgLyogVGV4dENvZGVjVVRGOC5oICovLAorCQkJCUJDNEE1MzNBMjU2MDY0
RTEwMDI4QzU5MiAvKiBUZXh0RGlyZWN0aW9uLmggKi8sCiAJCQkJQjJDM0RBMTYwRDAwNkMxRDAw
RUY2RjI2IC8qIFRleHRFbmNvZGluZy5jcHAgKi8sCiAJCQkJQjJDM0RBMTcwRDAwNkMxRDAwRUY2
RjI2IC8qIFRleHRFbmNvZGluZy5oICovLAogCQkJCUMxMDVEQTYzMEYzQUE2QjgwMDFERDQ0RiAv
KiBUZXh0RW5jb2RpbmdEZXRlY3Rvci5oICovLApAQCAtMjkyMjksNiArMjkyNjcsNyBAQAogCQkJ
CTFDMjRFRUEzMUM3MjlDRTQwMDgwRjhGQyAvKiBGb250RmFjZVNldC5oICovLAogCQkJCTFDMjRF
RUExMUM3MjlCMzIwMDgwRjhGQyAvKiBGb250RmFjZVNldC5pZGwgKi8sCiAJCQkJN0MzQThBQkMy
NTA5QTI1NjAwOEM0NzdGIC8qIEZvbnRGYWNlU291cmNlLmlkbCAqLywKKwkJCQlCQzRBNTMyRTI1
NjA1N0NEMDAyOEM1OTIgLyogRm9udExvYWRUaW1pbmdPdmVycmlkZS5oICovLAogCQkJCUMyQUIw
QjAzMUU2REU5MkMwMDEzNDhDNSAvKiBGb250U2VsZWN0aW9uVmFsdWVJbmxpbmVzLmggKi8sCiAJ
CQkJMUMzMjQ5MTAxQzZENkEzQjAwN0VEQjMyIC8qIEZvbnRWYXJpYW50QnVpbGRlci5jcHAgKi8s
CiAJCQkJQzIwMTVDMDkxQkU2RkUyQzAwODIyMzg5IC8qIEZvbnRWYXJpYW50QnVpbGRlci5oICov
LApAQCAtMzE0NjksNiArMzE1MDgsNyBAQAogCQkJCUJFMjM0ODBEMThBOTg3MTQwMEU0QjZFOCAv
KiBEYXRhQ3VlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTIyN0RGMTFDM0M2REYxMDBGNUVENTQg
LyogRGF0YURldGVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M3OTQxRTUxQzU2QzI5MzAw
QTRDNThFIC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUJDNEE1MzM1MjU2MDVBNTYwMDI4QzU5MiAvKiBEYXRhRGV0ZWN0b3JUeXBlcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRTU4QjQ1QkEyMEFEMDdERDAwOTkxMDI1IC8qIERhdGFMaXN0QnV0dG9uRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTUxNzY3MDMyMEI4OEMxNDAwRDQxMTY3IC8qIERh
dGFMaXN0U3VnZ2VzdGlvbkluZm9ybWF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNTJDRjU0
RjIwQTM1QTI4MDBEQURBMjcgLyogRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmggaW4gSGVhZGVy
cyAqLywKQEAgLTMxNDkxLDYgKzMxNTMxLDcgQEAKIAkJCQlGNTVCM0RCQTEyNTFGMTJEMDAzRUYy
NjkgLyogRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTVGMDZB
RUIyNEQ0OUJGNzAwQkJDNEY4IC8qIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRTVGMDZBRUYyNEQ0QTYzNzAwQkJDNEY4IC8qIERhdGVUaW1lU3ltYm9s
aWNGaWVsZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDNEE1MzJEMjU2MDU2RDUwMDI4
QzU5MiAvKiBEZWJ1Z092ZXJsYXlSZWdpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjZBMTJC
RTFBMDA5MjM3MDBDNkRFNzIgLyogRGVidWdQYWdlT3ZlcmxheXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQ1RkVBNUQwMTU2RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmggaW4gSGVhZGVycyAqLywK
IAkJCQk3MTVBRDcyMDIwNTA1MTMyMDBENTkyREMgLyogRGVjbGFyYXRpdmVBbmltYXRpb24uaCBp
biBIZWFkZXJzICovLApAQCAtMzE2NzEsMTEgKzMxNzEyLDEyIEBACiAJCQkJRkQ1MzczNTcxMzdC
NjUzQjAwMDA4RENFIC8qIER5bmFtaWNzQ29tcHJlc3Nvcktlcm5lbC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRkQ2RUQyQzQxMzZCOEU0MjAwM0NGMDcyIC8qIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTgzN0MwQjc2MjREQjM4NTAwMDVENTk1OSAvKiBEeW5hbWlj
c0NvbXByZXNzb3JPcHRpb25zLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzRBNTMyMzI1NjA1Mjc2
MDAyOEM1OTIgLyogRWRpdGFibGVMaW5rQmVoYXZpb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
MzA5REUyMDk5RTY0OTIwMDU2RTU4MSAvKiBFZGl0QWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5MzMwOURFNDA5OUU2NDkyMDA1NkU1ODEgLyogRWRpdENvbW1hbmQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTkzMzA5REU4MDk5RTY0OTIwMDU2RTU4MSAvKiBFZGl0aW5nLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0RjE1MzRERTExQjUzMkVDMDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9yLmggaW4g
SGVhZGVycyAqLywKLQkJCQk0RjE1MzRFMDExQjUzMzAyMDAyMUZEODYgLyogRWRpdGluZ0JlaGF2
aW9yVHlwZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTRGMTUzNEUwMTFCNTMzMDIwMDIxRkQ4NiAv
KiBFZGl0aW5nQmVoYXZpb3JUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzQUM2NDhCMjEyOUUx
NDY1MDBDM0VCMjUgLyogRWRpdGluZ0JvdW5kYXJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQk5QkFC
NkM2QzEyNTUwNjMxMDAxNjI2RDQgLyogRWRpdGluZ1N0eWxlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0QjMwNDNDRDBBRTAzNzNCMDBBODI2NDcgLyogRWRpdG9yLmggaW4gSGVhZGVycyAqLywKQEAg
LTMxODQ2LDE1ICszMTg4OCwxOCBAQAogCQkJCTFDNjYyNjExMUM2RTdDQTYwMEFCNTI3QyAvKiBG
b250RmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUMyNEVFQTUxQzcyOUNFNDAwODBGOEZDIC8q
IEZvbnRGYWNlU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzEyQUMyQjFFRTc3OEFFMDA3OUUw
QTAgLyogRm9udEZhbWlseVNwZWNpZmljYXRpb25Db3JlVGV4dC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJQkM0QTUzMkYyNTYwNTdDRDAwMjhDNTkyIC8qIEZvbnRMb2FkVGltaW5nT3ZlcnJpZGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTA4NDU2ODA4MTJCOTBEQTYwMDk2MEE5RiAvKiBGb250TWV0cmlj
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjUzMjBENkIxMjJBMjRFOTAwMkQxNDQwIC8qIEZvbnRQ
bGF0Zm9ybURhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3MUY0RkZDMEQyNUU3RjMwMEVDRTBE
NSAvKiBGb250UmFuZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzRBNTMzOTI1NjA2Mzk4MDAy
OEM1OTIgLyogRm9udFJlbmRlcmluZ01vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUMyQUIwQUY3
MUU2QjNDNkMwMDEzNDhDNSAvKiBGb250U2VsZWN0aW9uQWxnb3JpdGhtLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCMkMzREE2QjBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udFNlbGVjdG9yLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlFNDE5MDQxRjFDQzY0ODZCMDBDMzVGNUQgLyogRm9udFNlbGVjdG9yQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlGNDhEMkE2QzIxNTYyM0I0MDBDNjc1MkIgLyogRm9u
dFNoYWRvdy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEE2RTlGQzgxM0MxN0Q1NzAwNDZBN0Y4IC8q
IEZvbnRUYWdnZWRTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzIwMTVDMEExQkU2RkVC
MjAwODIyMzg5IC8qIEZvbnRWYXJpYW50QnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM0
QTUzMzEyNTYwNTkwMzAwMjhDNTkyIC8qIEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNEEwREEyRkYxMjlCMjQxOTAwQUI2MUUxIC8qIEZvcm1Bc3NvY2lhdGVk
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDA1Q0VEMkEwQTQwQkIyQzAwQzVBRjM4IC8q
IEZvcm1hdEJsb2NrQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NFNkNCRkIxODdGMzcw
NzAwRDQ2QkY1IC8qIEZvcm1hdENvbnZlcnRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTg3Miw2
ICszMTkxNyw3IEBACiAJCQkJQTg1MzEyM0QxMUQwNDcxQjAwRDREMDc3IC8qIEZyYWdtZW50U2Ny
aXB0aW5nUGVybWlzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVCRjAyMkYwOTc0ODE2MzAw
QzQzMTk2IC8qIEZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzRBODYyMzE0QjdBREJCMDAz
RkRDNzYgLyogRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlC
QzRBNTMyQjI1NjA1NjZFMDAyOEM1OTIgLyogRnJhbWVGbGF0dGVuaW5nLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjExNzgxODIyRTNDNDdGMDA4QkQ1NzAgLyogRnJhbWVJZGVudGlmaWVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk2NTZEMzczQzBBREJBNURFMDBBNDU1NEQgLyogRnJhbWVMb2FkZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTY1NkQzNzNFMEFEQkE1REUwMEE0NTU0RCAvKiBGcmFtZUxv
YWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjA3Myw2ICszMjExOSw3IEBACiAJCQkJ
OTNFMkEzMDcxMjNFOURDMDAwOUZFMTJBIC8qIEhUTUxQYXJzZXJJZGlvbXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTk3M0Y0MThBMTY5Qjk1RkYwMDA2QkY2MCAvKiBIVE1MUGFyc2VyT3B0aW9ucy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTc3QjM4NzExMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxQYXJz
ZXJTY2hlZHVsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDNEE1MzMzMjU2MDU5ODMwMDI4QzU5
MiAvKiBIVE1MUGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkNDMEU4NzYxQkZFNzBFOTAwOEY3RjUwIC8qIEhUTUxQaWN0dXJlRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTg3MUQ0NTYwQTEyN0NCQzAwQjEyQTY4IC8qIEhUTUxQbHVnSW5FbGVtZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NDE1MjkyRTBFMUFFOEEwMDBDNEEyRDAgLyogSFRNTFBs
dWdJbkltYWdlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMzY5MSw2ICszMzczOCw3IEBA
CiAJCQkJQTFERkQ1MjYyMzM0NTk0ODAwNDJGQ0RCIC8qIFBheW1lbnRTdW1tYXJ5SXRlbXMuaCBp
biBIZWFkZXJzICovLAogCQkJCUExNjc3REZEMjEzRTAwNjYwMEEwOEMzNCAvKiBQYXltZW50VmFs
aWRhdGlvbkVycm9ycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjI3NTM1NjUwQjA1MzgxNDAwMkNF
NjRGIC8qIFBERkRvY3VtZW50SW1hZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDNEE1MzI5MjU2
MDU2M0IwMDI4QzU5MiAvKiBQREZJbWFnZUNhY2hpbmdQb2xpY3kuaCBpbiBIZWFkZXJzICovLAog
CQkJCTVFMkM0MzUxMUJDRUUyRjYwMDAxRTJCQyAvKiBQZWVyQ29ubmVjdGlvbkJhY2tlbmQuaCBp
biBIZWFkZXJzICovLAogCQkJCTVFQkI4OTM5MUM3N0MzOTkwMEM2NUQ0MSAvKiBQZWVyTWVkaWFE
ZXNjcmlwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOEE3Q0M5NkIxMjA3NkQ3MzAwMUQ0NTg4
IC8qIFBlbmRpbmdTY3JpcHQuaCBpbiBIZWFkZXJzICovLApAQCAtMzQzOTUsNiArMzQ0NDMsNyBA
QAogCQkJCUU3RkJFN0MzMjRFQjJGQjYwMEExOEU2MiAvKiBTdGVyZW9QYW5uZXJPcHRpb25zLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQUMyRDg0NTE3MTczNEExMDA2NTJGQzAgLyogU3RvcmFnZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTFCRTM3RTAwREFFRTAwRTAwMTA4NUZDIC8qIFN0b3JhZ2VB
cmVhLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzRBNTMzNzI1NjA1QUUxMDAyOEM1OTIgLyogU3Rv
cmFnZUJsb2NraW5nUG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUUwQkFCQjBEQTU1NDcx
MDBBOUU0MTcgLyogU3RvcmFnZUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlDNUVCREQ4NDEw
NUVEREVDMDA1NjgxNkYgLyogU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTFFMEJCMzgwREE1QUNCNjAwQTlFNDE3IC8qIFN0b3JhZ2VNYXAuaCBpbiBIZWFkZXJz
ICovLApAQCAtMzQ3MTEsNiArMzQ3NjAsOCBAQAogCQkJCTE0MkI5N0NBMTMxMzg5NDMwMDhCRUY0
QiAvKiBUZXh0Q29udHJvbElubmVyRWxlbWVudHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU4MkRF
MzI1MUMzMEM4NTQwMEJFMDJBOCAvKiBUZXh0RGVjb3JhdGlvblBhaW50ZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFDNzNBNzE1MjE4NTc1ODcwMDRDQ0VBNSAvKiBUZXh0RGVjb3JhdGlvblRoaWNr
bmVzcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM0QTUzM0IyNTYwNjRFMTAwMjhDNTkyIC8qIFRl
eHREaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUJDNEE1MzI1MjU2MDU1NUYwMDI4QzU5
MiAvKiBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5N0JDODRCNDEyMzcxMTgwMDAwQzYxNjEgLyogVGV4dERvY3VtZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5N0JDODQ4NDEyMzZGRDkzMDAwQzYxNjEgLyogVGV4dERvY3VtZW50UGFy
c2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREE0NzBEMDA2QzFEMDBFRjZGMjYgLyogVGV4
dEVuY29kaW5nLmggaW4gSGVhZGVycyAqLywKQEAgLTM0ODM4LDYgKzM0ODg5LDcgQEAKIAkJCQlG
MzJCRENEOTIzNjNBQUNBMDA3M0I2QUUgLyogVXNlckdlc3R1cmVFbXVsYXRpb25TY29wZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMjU0MkY0REIxMTY2QzI1QTAwRTg5QTg2IC8qIFVzZXJHZXN0dXJl
SW5kaWNhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OTIwMzk4MzE4Qjk1QkM2MDBCMzlBRjkg
LyogVXNlcklucHV0QnJpZGdlLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzRBNTMyNzI1NjA1NUQz
MDAyOEM1OTIgLyogVXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNzFDOTE2MDgxRDE0ODNBMzAwQUNBNDdEIC8qIFVzZXJJbnRlcmZhY2VMYXlvdXREaXJl
Y3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTJFMTdEMTREMUMwMDQyMEFBMSAvKiBV
c2VyTWVkaWFDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTJGMTdEMTREMUMwMDQy
MEFBMSAvKiBVc2VyTWVkaWFDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9Gb3JjZWRBY2Nlc3NpYmlsaXR5
VmFsdWUuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Zv
cmNlZEFjY2Vzc2liaWxpdHlWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVt
IGNsYXNzIEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZSA6IHVpbnQ4X3QgeworICAgIFN5c3RlbSwK
KyAgICBPbiwKKyAgICBPZmYKK307CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250RmFjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNl
LmNwcAkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDU5LDkgKzQ1OSw5IEBAIEFsbG93VXNlckluc3RhbGxl
ZEZvbnRzIENTU0ZvbnRGYWNlOjphbGwKICAgICByZXR1cm4gQWxsb3dVc2VySW5zdGFsbGVkRm9u
dHM6OlllczsKIH0KIAotc3RhdGljIFNldHRpbmdzOjpGb250TG9hZFRpbWluZ092ZXJyaWRlIGZv
bnRMb2FkVGltaW5nT3ZlcnJpZGUoQ1NTRm9udFNlbGVjdG9yKiBmb250U2VsZWN0b3IpCitzdGF0
aWMgRm9udExvYWRUaW1pbmdPdmVycmlkZSBmb250TG9hZFRpbWluZ092ZXJyaWRlKENTU0ZvbnRT
ZWxlY3RvciogZm9udFNlbGVjdG9yKQogewotICAgIGF1dG8gb3ZlcnJpZGVWYWx1ZSA9IFNldHRp
bmdzOjpGb250TG9hZFRpbWluZ092ZXJyaWRlOjpOb25lOworICAgIGF1dG8gb3ZlcnJpZGVWYWx1
ZSA9IEZvbnRMb2FkVGltaW5nT3ZlcnJpZGU6Ok5vbmU7CiAgICAgaWYgKGZvbnRTZWxlY3RvciAm
JiBmb250U2VsZWN0b3ItPmRvY3VtZW50KCkpCiAgICAgICAgIG92ZXJyaWRlVmFsdWUgPSBmb250
U2VsZWN0b3ItPmRvY3VtZW50KCktPnNldHRpbmdzKCkuZm9udExvYWRUaW1pbmdPdmVycmlkZSgp
OwogICAgIHJldHVybiBvdmVycmlkZVZhbHVlOwpAQCAtNDcwLDcgKzQ3MCw3IEBAIHN0YXRpYyBT
ZXR0aW5nczo6Rm9udExvYWRUaW1pbmdPdmVycmlkZSAKIGF1dG8gQ1NTRm9udEZhY2U6OmZvbnRM
b2FkVGltaW5nKCkgY29uc3QgLT4gRm9udExvYWRUaW1pbmcKIHsKICAgICBzd2l0Y2ggKGZvbnRM
b2FkVGltaW5nT3ZlcnJpZGUobV9mb250U2VsZWN0b3IuZ2V0KCkpKSB7Ci0gICAgY2FzZSBTZXR0
aW5nczo6Rm9udExvYWRUaW1pbmdPdmVycmlkZTo6Tm9uZToKKyAgICBjYXNlIEZvbnRMb2FkVGlt
aW5nT3ZlcnJpZGU6Ok5vbmU6CiAgICAgICAgIHN3aXRjaCAobV9sb2FkaW5nQmVoYXZpb3IpIHsK
ICAgICAgICAgY2FzZSBGb250TG9hZGluZ0JlaGF2aW9yOjpBdXRvOgogICAgICAgICBjYXNlIEZv
bnRMb2FkaW5nQmVoYXZpb3I6OkJsb2NrOgpAQCAtNDgzLDExICs0ODMsMTEgQEAgYXV0byBDU1NG
b250RmFjZTo6Zm9udExvYWRUaW1pbmcoKSBjb25zdAogICAgICAgICAgICAgcmV0dXJuIHsgMC4x
X3MsIDBfcyB9OwogICAgICAgICB9CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgY2FzZSBTZXR0aW5nczo6Rm9udExvYWRUaW1pbmdPdmVycmlkZTo6QmxvY2s6Cisg
ICAgY2FzZSBGb250TG9hZFRpbWluZ092ZXJyaWRlOjpCbG9jazoKICAgICAgICAgcmV0dXJuIHsg
U2Vjb25kczo6aW5maW5pdHkoKSwgMF9zIH07Ci0gICAgY2FzZSBTZXR0aW5nczo6Rm9udExvYWRU
aW1pbmdPdmVycmlkZTo6U3dhcDoKKyAgICBjYXNlIEZvbnRMb2FkVGltaW5nT3ZlcnJpZGU6OlN3
YXA6CiAgICAgICAgIHJldHVybiB7IDBfcywgU2Vjb25kczo6aW5maW5pdHkoKSB9OwotICAgIGNh
c2UgU2V0dGluZ3M6OkZvbnRMb2FkVGltaW5nT3ZlcnJpZGU6OkZhaWx1cmU6CisgICAgY2FzZSBG
b250TG9hZFRpbWluZ092ZXJyaWRlOjpGYWlsdXJlOgogICAgICAgICByZXR1cm4geyAwX3MsIDBf
cyB9OwogICAgIH0KICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvY3NzL0ZvbnRMb2FkVGltaW5nT3ZlcnJpZGUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRUaW1pbmdPdmVycmlkZS5oCShub25leGlzdGVudCkK
KysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZFRpbWluZ092ZXJyaWRlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgRm9udExvYWRUaW1pbmdPdmVycmlkZSA6IHVp
bnQ4X3QgeworICAgIE5vbmUsCisgICAgQmxvY2ssCisgICAgU3dhcCwKKyAgICBGYWlsdXJlCit9
OworCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3Bw
CShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1
YXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxNSw5ICszMTUsOSBAQCBzdGF0aWMgYm9vbCBt
b25vY2hyb21lRXZhbHVhdGUoQ1NTVmFsdWUqCiB7CiAgICAgYm9vbCBpc01vbm9jaHJvbWU7CiAK
LSAgICBpZiAoZnJhbWUuc2V0dGluZ3MoKS5mb3JjZWREaXNwbGF5SXNNb25vY2hyb21lQWNjZXNz
aWJpbGl0eVZhbHVlKCkgPT0gU2V0dGluZ3M6OkZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZTo6T24p
CisgICAgaWYgKGZyYW1lLnNldHRpbmdzKCkuZm9yY2VkRGlzcGxheUlzTW9ub2Nocm9tZUFjY2Vz
c2liaWxpdHlWYWx1ZSgpID09IEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZTo6T24pCiAgICAgICAg
IGlzTW9ub2Nocm9tZSA9IHRydWU7Ci0gICAgZWxzZSBpZiAoZnJhbWUuc2V0dGluZ3MoKS5mb3Jj
ZWREaXNwbGF5SXNNb25vY2hyb21lQWNjZXNzaWJpbGl0eVZhbHVlKCkgPT0gU2V0dGluZ3M6OkZv
cmNlZEFjY2Vzc2liaWxpdHlWYWx1ZTo6T2ZmKQorICAgIGVsc2UgaWYgKGZyYW1lLnNldHRpbmdz
KCkuZm9yY2VkRGlzcGxheUlzTW9ub2Nocm9tZUFjY2Vzc2liaWxpdHlWYWx1ZSgpID09IEZvcmNl
ZEFjY2Vzc2liaWxpdHlWYWx1ZTo6T2ZmKQogICAgICAgICBpc01vbm9jaHJvbWUgPSBmYWxzZTsK
ICAgICBlbHNlCiAgICAgICAgIGlzTW9ub2Nocm9tZSA9IHNjcmVlbklzTW9ub2Nocm9tZShmcmFt
ZS5tYWluRnJhbWUoKS52aWV3KCkpOwpAQCAtMzMxLDkgKzMzMSw5IEBAIHN0YXRpYyBib29sIGlu
dmVydGVkQ29sb3JzRXZhbHVhdGUoQ1NTVmEKIHsKICAgICBib29sIGlzSW52ZXJ0ZWQ7CiAKLSAg
ICBpZiAoZnJhbWUuc2V0dGluZ3MoKS5mb3JjZWRDb2xvcnNBcmVJbnZlcnRlZEFjY2Vzc2liaWxp
dHlWYWx1ZSgpID09IFNldHRpbmdzOjpGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWU6Ok9uKQorICAg
IGlmIChmcmFtZS5zZXR0aW5ncygpLmZvcmNlZENvbG9yc0FyZUludmVydGVkQWNjZXNzaWJpbGl0
eVZhbHVlKCkgPT0gRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlOjpPbikKICAgICAgICAgaXNJbnZl
cnRlZCA9IHRydWU7Ci0gICAgZWxzZSBpZiAoZnJhbWUuc2V0dGluZ3MoKS5mb3JjZWRDb2xvcnNB
cmVJbnZlcnRlZEFjY2Vzc2liaWxpdHlWYWx1ZSgpID09IFNldHRpbmdzOjpGb3JjZWRBY2Nlc3Np
YmlsaXR5VmFsdWU6Ok9mZikKKyAgICBlbHNlIGlmIChmcmFtZS5zZXR0aW5ncygpLmZvcmNlZENv
bG9yc0FyZUludmVydGVkQWNjZXNzaWJpbGl0eVZhbHVlKCkgPT0gRm9yY2VkQWNjZXNzaWJpbGl0
eVZhbHVlOjpPZmYpCiAgICAgICAgIGlzSW52ZXJ0ZWQgPSBmYWxzZTsKICAgICBlbHNlCiAgICAg
ICAgIGlzSW52ZXJ0ZWQgPSBzY3JlZW5IYXNJbnZlcnRlZENvbG9ycygpOwpAQCAtNDU5LDkgKzQ1
OSw5IEBAIHN0YXRpYyBib29sIGR5bmFtaWNSYW5nZUV2YWx1YXRlKENTU1ZhbHUKIAogICAgIGJv
b2wgc3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlOwogCi0gICAgaWYgKGZyYW1lLnNldHRpbmdzKCku
Zm9yY2VkU3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlVmFsdWUoKSA9PSBTZXR0aW5nczo6Rm9yY2Vk
QWNjZXNzaWJpbGl0eVZhbHVlOjpPbikKKyAgICBpZiAoZnJhbWUuc2V0dGluZ3MoKS5mb3JjZWRT
dXBwb3J0c0hpZ2hEeW5hbWljUmFuZ2VWYWx1ZSgpID09IEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1
ZTo6T24pCiAgICAgICAgIHN1cHBvcnRzSGlnaER5bmFtaWNSYW5nZSA9IHRydWU7Ci0gICAgZWxz
ZSBpZiAoZnJhbWUuc2V0dGluZ3MoKS5mb3JjZWRTdXBwb3J0c0hpZ2hEeW5hbWljUmFuZ2VWYWx1
ZSgpID09IFNldHRpbmdzOjpGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWU6Ok9mZikKKyAgICBlbHNl
IGlmIChmcmFtZS5zZXR0aW5ncygpLmZvcmNlZFN1cHBvcnRzSGlnaER5bmFtaWNSYW5nZVZhbHVl
KCkgPT0gRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlOjpPZmYpCiAgICAgICAgIHN1cHBvcnRzSGln
aER5bmFtaWNSYW5nZSA9IGZhbHNlOwogICAgIGVsc2UKICAgICAgICAgc3VwcG9ydHNIaWdoRHlu
YW1pY1JhbmdlID0gc2NyZWVuU3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlKGZyYW1lLm1haW5GcmFt
ZSgpLnZpZXcoKSk7CkBAIC04MjUsMTIgKzgyNSwxMiBAQCBzdGF0aWMgYm9vbCBwcmVmZXJzUmVk
dWNlZE1vdGlvbkV2YWx1YXRlCiAgICAgYm9vbCB1c2VyUHJlZmVyc1JlZHVjZWRNb3Rpb24gPSBm
YWxzZTsKIAogICAgIHN3aXRjaCAoZnJhbWUuc2V0dGluZ3MoKS5mb3JjZWRQcmVmZXJzUmVkdWNl
ZE1vdGlvbkFjY2Vzc2liaWxpdHlWYWx1ZSgpKSB7Ci0gICAgY2FzZSBTZXR0aW5nczo6Rm9yY2Vk
QWNjZXNzaWJpbGl0eVZhbHVlOjpPbjoKKyAgICBjYXNlIEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1
ZTo6T246CiAgICAgICAgIHVzZXJQcmVmZXJzUmVkdWNlZE1vdGlvbiA9IHRydWU7CiAgICAgICAg
IGJyZWFrOwotICAgIGNhc2UgU2V0dGluZ3M6OkZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZTo6T2Zm
OgorICAgIGNhc2UgRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlOjpPZmY6CiAgICAgICAgIGJyZWFr
OwotICAgIGNhc2UgU2V0dGluZ3M6OkZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZTo6U3lzdGVtOgor
ICAgIGNhc2UgRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlOjpTeXN0ZW06CiAjaWYgVVNFKE5FV19U
SEVNRSkgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICAgICAgdXNlclByZWZlcnNSZWR1Y2Vk
TW90aW9uID0gVGhlbWU6OnNpbmdsZXRvbigpLnVzZXJQcmVmZXJzUmVkdWNlZE1vdGlvbigpOwog
I2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDI2OTgzMCkKKysr
IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1MDgs
NyArNzUwOCw3IEBAIHZvaWQgRG9jdW1lbnQ6OmFwcGx5UXVpY2tMb29rU2FuZGJveCgpCiAgICAg
QVNTRVJUKHJlc3BvbnNlVVJMLnByb3RvY29sSXMoUUxQcmV2aWV3UHJvdG9jb2wpKTsKIAogICAg
IGF1dG8gc2VjdXJpdHlPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlTm9uTG9jYWxXaXRo
QWxsb3dlZEZpbGVQYXRoKHJlc3BvbnNlVVJMLCBkb2N1bWVudFVSTC5maWxlU3lzdGVtUGF0aCgp
KTsKLSAgICBzZWN1cml0eU9yaWdpbi0+c2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KFNlY3VyaXR5
T3JpZ2luOjpCbG9ja0FsbFN0b3JhZ2UpOworICAgIHNlY3VyaXR5T3JpZ2luLT5zZXRTdG9yYWdl
QmxvY2tpbmdQb2xpY3koU3RvcmFnZUJsb2NraW5nUG9saWN5OjpCbG9ja0FsbCk7CiAgICAgc2V0
U2VjdXJpdHlPcmlnaW5Qb2xpY3koU2VjdXJpdHlPcmlnaW5Qb2xpY3k6OmNyZWF0ZShXVEZNb3Zl
KHNlY3VyaXR5T3JpZ2luKSkpOwogCiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4g
cXVpY2tMb29rQ1NQID0gbWFrZVN0cmluZygiZGVmYXVsdC1zcmMgIiwgUUxQcmV2aWV3UHJvdG9j
b2wsICI6ICd1bnNhZmUtaW5saW5lJzsgYmFzZS11cmkgJ25vbmUnOyBzYW5kYm94IGFsbG93LXNh
bWUtb3JpZ2luIGFsbG93LXNjcmlwdHMiKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdGFibGVMaW5rQmVoYXZpb3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRhYmxlTGlua0JlaGF2aW9yLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0YWJsZUxpbmtCZWhhdmlvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitlbnVtIGNsYXNzIEVkaXRhYmxlTGlua0JlaGF2aW9yIDogdWludDhfdCB7CisgICAgRGVm
YXVsdCwKKyAgICBBbHdheXNMaXZlLAorICAgIE9ubHlMaXZlV2l0aFNoaWZ0S2V5LAorICAgIExp
dmVXaGVuTm90Rm9jdXNlZCwKKyAgICBOZXZlckxpdmUKK307CisKK30KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0aW5nQmVoYXZpb3IuaAkocmV2aXNpb24gMjY5ODMwKQorKysgU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQmVoYXZpb3IuaAkod29ya2luZyBjb3B5KQpAQCAt
MjAsMTIgKzIwLDExIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiRWRpdGluZ0JlaGF2
aW9yVHlwZXMuaCIKKyNpbmNsdWRlICJFZGl0aW5nQmVoYXZpb3JUeXBlLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgRWRpdGluZ0JlaGF2aW9yIHsKLQogcHVibGljOgogICAgIGV4
cGxpY2l0IEVkaXRpbmdCZWhhdmlvcihFZGl0aW5nQmVoYXZpb3JUeXBlIHR5cGUpCiAgICAgICAg
IDogbV90eXBlKHR5cGUpCkBAIC00MCw2NyArMzksNjcgQEAgcHVibGljOgogICAgIC8vIGNvbnRl
bnQgb24gTWFjLgogICAgIGJvb2wgc2hvdWxkTW92ZUNhcmV0VG9Ib3Jpem9udGFsQm91bmRhcnlX
aGVuUGFzdFRvcE9yQm90dG9tKCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBtX3R5cGUg
IT0gRWRpdGluZ1dpbmRvd3NCZWhhdmlvcjsKKyAgICAgICAgcmV0dXJuIG1fdHlwZSAhPSBFZGl0
aW5nQmVoYXZpb3JUeXBlOjpXaW5kb3dzOwogICAgIH0KIAogICAgIC8vIE9uIFdpbmRvd3MsIHNl
bGVjdGlvbnMgc2hvdWxkIGFsd2F5cyBiZSBjb25zaWRlcmVkIGFzIGRpcmVjdGlvbmFsLCByZWdh
cmRsZXNzIGlmIGl0IGlzCiAgICAgLy8gbW91c2UtYmFzZWQgb3Iga2V5Ym9hcmQtYmFzZWQuCi0g
ICAgYm9vbCBzaG91bGRDb25zaWRlclNlbGVjdGlvbkFzRGlyZWN0aW9uYWwoKSBjb25zdCB7IHJl
dHVybiBtX3R5cGUgIT0gRWRpdGluZ01hY0JlaGF2aW9yICYmIG1fdHlwZSAhPSBFZGl0aW5nSU9T
QmVoYXZpb3I7IH0KKyAgICBib29sIHNob3VsZENvbnNpZGVyU2VsZWN0aW9uQXNEaXJlY3Rpb25h
bCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSAhPSBFZGl0aW5nQmVoYXZpb3JUeXBlOjpNYWMgJiYg
bV90eXBlICE9IEVkaXRpbmdCZWhhdmlvclR5cGU6OklvczsgfQogCiAgICAgLy8gT24gTWFjLCB3
aGVuIHJldmVhbGluZyBhIHNlbGVjdGlvbiAoZm9yIGV4YW1wbGUgYXMgYSByZXN1bHQgb2YgYSBG
aW5kIG9wZXJhdGlvbiBvbiB0aGUgQnJvd3NlciksCiAgICAgLy8gY29udGVudCBzaG91bGQgYmUg
c2Nyb2xsZWQgc3VjaCB0aGF0IHRoZSBzZWxlY3Rpb24gZ2V0cyBjZXJ0ZXIgYWxpZ25lZC4KLSAg
ICBib29sIHNob3VsZENlbnRlckFsaWduV2hlblNlbGVjdGlvbklzUmV2ZWFsZWQoKSBjb25zdCB7
IHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ01hY0JlaGF2aW9yIHx8IG1fdHlwZSA9PSBFZGl0aW5n
SU9TQmVoYXZpb3I7IH0KKyAgICBib29sIHNob3VsZENlbnRlckFsaWduV2hlblNlbGVjdGlvbklz
UmV2ZWFsZWQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ0JlaGF2aW9yVHlwZTo6
TWFjIHx8IG1fdHlwZSA9PSBFZGl0aW5nQmVoYXZpb3JUeXBlOjpJb3M7IH0KIAogICAgIC8vIE9u
IE1hYywgc3R5bGUgaXMgY29uc2lkZXJlZCBwcmVzZW50IHdoZW4gcHJlc2VudCBhdCB0aGUgYmVn
aW5uaW5nIG9mIHNlbGVjdGlvbi4gT24gb3RoZXIgcGxhdGZvcm1zLAogICAgIC8vIHN0eWxlIGhh
cyB0byBiZSBwcmVzZW50IHRocm91Z2hvdXQgdGhlIHNlbGVjdGlvbi4KLSAgICBib29sIHNob3Vs
ZFRvZ2dsZVN0eWxlQmFzZWRPblN0YXJ0T2ZTZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3R5
cGUgPT0gRWRpdGluZ01hY0JlaGF2aW9yIHx8IG1fdHlwZSA9PSBFZGl0aW5nSU9TQmVoYXZpb3I7
IH0KKyAgICBib29sIHNob3VsZFRvZ2dsZVN0eWxlQmFzZWRPblN0YXJ0T2ZTZWxlY3Rpb24oKSBj
b25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ0JlaGF2aW9yVHlwZTo6TWFjIHx8IG1fdHlw
ZSA9PSBFZGl0aW5nQmVoYXZpb3JUeXBlOjpJb3M7IH0KIAogICAgIC8vIFN0YW5kYXJkIE1hYyBi
ZWhhdmlvciB3aGVuIGV4dGVuZGluZyB0byBhIGJvdW5kYXJ5IGlzIGdyb3cgdGhlIHNlbGVjdGlv
biByYXRoZXIgdGhhbiBsZWF2aW5nIHRoZSBiYXNlCiAgICAgLy8gaW4gcGxhY2UgYW5kIG1vdmlu
ZyB0aGUgZXh0ZW50LiBNYXRjaGVzIE5TVGV4dFZpZXcuCi0gICAgYm9vbCBzaG91bGRBbHdheXNH
cm93U2VsZWN0aW9uV2hlbkV4dGVuZGluZ1RvQm91bmRhcnkoKSBjb25zdCB7IHJldHVybiBtX3R5
cGUgPT0gRWRpdGluZ01hY0JlaGF2aW9yIHx8IG1fdHlwZSA9PSBFZGl0aW5nSU9TQmVoYXZpb3I7
IH0KKyAgICBib29sIHNob3VsZEFsd2F5c0dyb3dTZWxlY3Rpb25XaGVuRXh0ZW5kaW5nVG9Cb3Vu
ZGFyeSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBFZGl0aW5nQmVoYXZpb3JUeXBlOjpNYWMg
fHwgbV90eXBlID09IEVkaXRpbmdCZWhhdmlvclR5cGU6OklvczsgfQogCiAgICAgLy8gT24gTWFj
LCB3aGVuIHByb2Nlc3NpbmcgYSBjb250ZXh0dWFsIGNsaWNrLCB0aGUgb2JqZWN0IGJlaW5nIGNs
aWNrZWQgdXBvbiBzaG91bGQgYmUgc2VsZWN0ZWQuCi0gICAgYm9vbCBzaG91bGRTZWxlY3RPbkNv
bnRleHR1YWxNZW51Q2xpY2soKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ01hY0Jl
aGF2aW9yOyB9CisgICAgYm9vbCBzaG91bGRTZWxlY3RPbkNvbnRleHR1YWxNZW51Q2xpY2soKSBj
b25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ0JlaGF2aW9yVHlwZTo6TWFjOyB9CiAKICAg
ICAvLyBPbiBMaW51eCwgc2hvdWxkIGJlIGFibGUgdG8gZ2V0IGFuZCBpbnNlcnQgc3BlbGxpbmcg
c3VnZ2VzdGlvbnMgd2l0aG91dCBzZWxlY3RpbmcgdGhlIG1pc3NwZWxsZWQgd29yZC4KICAgICBi
b29sIHNob3VsZEFsbG93U3BlbGxpbmdTdWdnZXN0aW9uc1dpdGhvdXRTZWxlY3Rpb24oKSBjb25z
dAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fdHlwZSA9PSBFZGl0aW5nVW5peEJlaGF2aW9yOwor
ICAgICAgICByZXR1cm4gbV90eXBlID09IEVkaXRpbmdCZWhhdmlvclR5cGU6OlVuaXg7CiAgICAg
fQogICAgIAogICAgIC8vIE9uIE1hYyBhbmQgV2luZG93cywgcHJlc3NpbmcgYmFja3NwYWNlICh3
aGVuIGl0IGlzbid0IGhhbmRsZWQgb3RoZXJ3aXNlKSBzaG91bGQgbmF2aWdhdGUgYmFjay4KICAg
ICBib29sIHNob3VsZE5hdmlnYXRlQmFja09uQmFja3NwYWNlKCkgY29uc3QKICAgICB7Ci0gICAg
ICAgIHJldHVybiBtX3R5cGUgIT0gRWRpdGluZ1VuaXhCZWhhdmlvcjsKKyAgICAgICAgcmV0dXJu
IG1fdHlwZSAhPSBFZGl0aW5nQmVoYXZpb3JUeXBlOjpVbml4OwogICAgIH0KIAogICAgIC8vIE9u
IE1hYywgc2VsZWN0aW5nIGJhY2t3YXJkcyBieSB3b3JkL2xpbmUgZnJvbSB0aGUgbWlkZGxlIG9m
IGEgd29yZC9saW5lLCBhbmQgdGhlbiBnb2luZwogICAgIC8vIGZvcndhcmQgbGVhdmVzIHRoZSBj
YXJldCBiYWNrIGluIHRoZSBtaWRkbGUgd2l0aCBubyBzZWxlY3Rpb24sIGluc3RlYWQgb2YgZGly
ZWN0bHkgc2VsZWN0aW5nCiAgICAgLy8gdG8gdGhlIG90aGVyIGVuZCBvZiB0aGUgbGluZS93b3Jk
IChVbml4L1dpbmRvd3MgYmVoYXZpb3IpLgotICAgIGJvb2wgc2hvdWxkRXh0ZW5kU2VsZWN0aW9u
QnlXb3JkT3JMaW5lQWNyb3NzQ2FyZXQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgIT0gRWRpdGlu
Z01hY0JlaGF2aW9yICYmIG1fdHlwZSAhPSBFZGl0aW5nSU9TQmVoYXZpb3I7IH0KKyAgICBib29s
IHNob3VsZEV4dGVuZFNlbGVjdGlvbkJ5V29yZE9yTGluZUFjcm9zc0NhcmV0KCkgY29uc3QgeyBy
ZXR1cm4gbV90eXBlICE9IEVkaXRpbmdCZWhhdmlvclR5cGU6Ok1hYyAmJiBtX3R5cGUgIT0gRWRp
dGluZ0JlaGF2aW9yVHlwZTo6SW9zOyB9CiAKICAgICAvLyBCYXNlZCBvbiBuYXRpdmUgYmVoYXZp
b3IsIHdoZW4gdXNpbmcgY3RybChhbHQpK2Fycm93IHRvIG1vdmUgY2FyZXQgYnkgd29yZCwgY3Ry
bChhbHQpK2xlZnQgYXJyb3cgbW92ZXMgY2FyZXQgdG8KICAgICAvLyBpbW1lZGlhdGVseSBiZWZv
cmUgdGhlIHdvcmQgaW4gYWxsIHBsYXRmb3JtcywgZm9yIGV4YW1wbGUsIHRoZSB3b3JkIGJyZWFr
IHBvc2l0aW9ucyBhcmU6ICJ8YWJjIHxkZWYgfGhpaiB8b3BxIi4KICAgICAvLyBCdXQgY3RybCty
aWdodCBhcnJvdyBtb3ZlcyBjYXJldCB0byAiYWJjIHxkZWYgfGhpaiB8b3BxIiBvbiBXaW5kb3dz
IGFuZCAiYWJjfCBkZWZ8IGhpanwgb3BxfCIgb24gTWFjIGFuZCBMaW51eC4KLSAgICBib29sIHNo
b3VsZFNraXBTcGFjZVdoZW5Nb3ZpbmdSaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBF
ZGl0aW5nV2luZG93c0JlaGF2aW9yOyB9CisgICAgYm9vbCBzaG91bGRTa2lwU3BhY2VXaGVuTW92
aW5nUmlnaHQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ0JlaGF2aW9yVHlwZTo6
V2luZG93czsgfQogCiAgICAgLy8gT24gaU9TIHRoZSBsYXN0IGVudGVyZWQgY2hhcmFjdGVyIGlu
IGEgc2VjdXJlIGZpbGVkIGlzIHNob3duIG1vbWVudGFyaWx5LCByZW1vdmluZyBhbmQgYWRkaW5n
IGJhY2sgdGhlCiAgICAgLy8gc3BhY2Ugd2hlbiBkZWxldGluZyBwYXNzd29yZCBjYXVzZSBzcGFj
ZSBiZWVuIHNob3dlZCBpbnNlY3VyZWx5LgotICAgIGJvb2wgc2hvdWxkUmViYWxhbmNlV2hpdGVT
cGFjZXNJblNlY3VyZUZpZWxkKCkgY29uc3QgeyByZXR1cm4gbV90eXBlICE9IEVkaXRpbmdJT1NC
ZWhhdmlvcjsgfQorICAgIGJvb2wgc2hvdWxkUmViYWxhbmNlV2hpdGVTcGFjZXNJblNlY3VyZUZp
ZWxkKCkgY29uc3QgeyByZXR1cm4gbV90eXBlICE9IEVkaXRpbmdCZWhhdmlvclR5cGU6Oklvczsg
fQogCi0gICAgYm9vbCBzaG91bGRTZWxlY3RCYXNlZE9uRGljdGlvbmFyeUxvb2t1cCgpIGNvbnN0
IHsgcmV0dXJuIG1fdHlwZSA9PSBFZGl0aW5nTWFjQmVoYXZpb3I7IH0KKyAgICBib29sIHNob3Vs
ZFNlbGVjdEJhc2VkT25EaWN0aW9uYXJ5TG9va3VwKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09
IEVkaXRpbmdCZWhhdmlvclR5cGU6Ok1hYzsgfQogCiAgICAgLy8gTGludXggYW5kIFdpbmRvd3Mg
YWx3YXlzIGV4dGVuZCBzZWxlY3Rpb25zIGZyb20gdGhlIGV4dGVudCBlbmRwb2ludC4KLSAgICBi
b29sIHNob3VsZEFsd2F5c0V4dGVuZFNlbGVjdGlvbkZyb21FeHRlbnRFbmRwb2ludCgpIGNvbnN0
IHsgcmV0dXJuIG1fdHlwZSAhPSBFZGl0aW5nTWFjQmVoYXZpb3IgJiYgbV90eXBlICE9IEVkaXRp
bmdJT1NCZWhhdmlvcjsgfQorICAgIGJvb2wgc2hvdWxkQWx3YXlzRXh0ZW5kU2VsZWN0aW9uRnJv
bUV4dGVudEVuZHBvaW50KCkgY29uc3QgeyByZXR1cm4gbV90eXBlICE9IEVkaXRpbmdCZWhhdmlv
clR5cGU6Ok1hYyAmJiBtX3R5cGUgIT0gRWRpdGluZ0JlaGF2aW9yVHlwZTo6SW9zOyB9CiAKICAg
ICAvLyBPbiBpT1MsIHdlIGRvbid0IHdhbnQgdG8gc2VsZWN0IGFsbCB0aGUgdGV4dCB3aGVuIGZv
Y3VzaW5nIGEgZmllbGQuIEluc3RlYWQsIG1hdGNoIHBsYXRmb3JtIGJlaGF2aW9yIGJ5IGdvaW5n
IHRvIHRoZSBlbmQgb2YgdGhlIGxpbmUuCi0gICAgYm9vbCBzaG91bGRNb3ZlU2VsZWN0aW9uVG9F
bmRXaGVuRm9jdXNpbmdUZXh0SW5wdXQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGlu
Z0lPU0JlaGF2aW9yOyB9CisgICAgYm9vbCBzaG91bGRNb3ZlU2VsZWN0aW9uVG9FbmRXaGVuRm9j
dXNpbmdUZXh0SW5wdXQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ0JlaGF2aW9y
VHlwZTo6SW9zOyB9CiAgICAgCiAgICAgLy8gT24gaU9TLCB3aGVuIHNtYXJ0IGRlbGV0ZSBpcyBv
biwgaXQgaXMgYWx3YXlzIG9uLCBhbmQgc2hvdWxkIGRvIG5vdCBhZGRpdGlvbmFsIGNoZWNrcyAo
aS5lLiBUZXh0R3JhbnVsYXJpdHk6OldvcmRHcmFudWxhcml0eSkuCi0gICAgYm9vbCBzaG91bGRB
bHdheXNTbWFydERlbGV0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBFZGl0aW5nSU9TQmVo
YXZpb3I7IH0KKyAgICBib29sIHNob3VsZEFsd2F5c1NtYXJ0RGVsZXRlKCkgY29uc3QgeyByZXR1
cm4gbV90eXBlID09IEVkaXRpbmdCZWhhdmlvclR5cGU6OklvczsgfQogICAgIAogICAgIC8vIE9u
IGlPUywgd2Ugc2hvdWxkIHR1cm4gb24gc21hcnQgaW5zZXJ0IGFuZCBkZWxldGUgYW5kIG5ld2xp
bmVzIGFyb3VuZCBwYXJhZ3JhcGhzIHRvIG1hdGNoIFVJS2l0IGJlaGF2aW91ci4KLSAgICBib29s
IHNob3VsZFNtYXJ0SW5zZXJ0RGVsZXRlUGFyYWdyYXBocygpIGNvbnN0IHsgcmV0dXJuIG1fdHlw
ZSA9PSBFZGl0aW5nSU9TQmVoYXZpb3I7IH0KKyAgICBib29sIHNob3VsZFNtYXJ0SW5zZXJ0RGVs
ZXRlUGFyYWdyYXBocygpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBFZGl0aW5nQmVoYXZpb3JU
eXBlOjpJb3M7IH0KIAogcHJpdmF0ZToKICAgICBFZGl0aW5nQmVoYXZpb3JUeXBlIG1fdHlwZTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yVHlwZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yVHlwZS5oCShu
b25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yVHlw
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNw
cmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIFRoZXJlIGFyZSBtdWx0aXBs
ZSBlZGl0aW5nIGRldGFpbHMgdGhhdCBhcmUgZGlmZmVyZW50IG9uIFdpbmRvd3MgdGhhbiBNYWNp
bnRvc2guCisvLyBXZSB1c2UgYSBzaW5nbGUgc3dpdGNoIGZvciBhbGwgb2YgdGhlbS4gU29tZSBl
eGFtcGxlczoKKy8vCisvLyAgICAxKSBDbGlja2luZyBiZWxvdyB0aGUgbGFzdCBsaW5lIG9mIGFu
IGVkaXRhYmxlIGFyZWEgcHV0cyB0aGUgY2FyZXQgYXQgdGhlIGVuZAorLy8gICAgICAgb2YgdGhl
IGxhc3QgbGluZSBvbiBNYWMsIGJ1dCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBsYXN0IGxpbmUgb24g
V2luZG93cy4KKy8vICAgIDIpIFB1c2hpbmcgdGhlIGRvd24gYXJyb3cga2V5IG9uIHRoZSBsYXN0
IGxpbmUgcHV0cyB0aGUgY2FyZXQgYXQgdGhlIGVuZCBvZiB0aGUKKy8vICAgICAgIGxhc3QgbGlu
ZSBvbiBNYWMsIGJ1dCBkb2VzIG5vdGhpbmcgb24gV2luZG93cy4gQSBzaW1pbGFyIGNhc2UgZXhp
c3RzIG9uIHRoZQorLy8gICAgICAgdG9wIGxpbmUuCisvLworLy8gVGhpcyBzZXR0aW5nIGlzIGlu
dGVuZGVkIHRvIGNvbnRyb2wgdGhlc2Ugc29ydHMgb2YgYmVoYXZpb3JzLiBUaGVyZSBhcmUgc29t
ZSBvdGhlcgorLy8gYmVoYXZpb3JzIHdpdGggaW5kaXZpZHVhbCBmdW5jdGlvbiBjYWxscyBvbiBF
ZGl0b3JDbGllbnQgKHNtYXJ0IGNvcHkgYW5kIHBhc3RlIGFuZAorLy8gc2VsZWN0aW5nIHRoZSBz
cGFjZSBhZnRlciBhIGRvdWJsZSBjbGljaykgdGhhdCBjb3VsZCBiZSBjb21iaW5lZCB3aXRoIHRo
aXMgaWYKKy8vIGlmIHBvc3NpYmxlIGluIHRoZSBmdXR1cmUuCitlbnVtIGNsYXNzIEVkaXRpbmdC
ZWhhdmlvclR5cGUgOiB1aW50OF90IHsKKyAgICBNYWMsCisgICAgV2luZG93cywKKyAgICBVbml4
LAorICAgIElvcworfTsKKworfSAvLyBXZWJDb3JlIG5hbWVzcGFjZQpJbmRleDogU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0aW5nQmVoYXZpb3JUeXBlcy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yVHlwZXMuaAkocmV2aXNpb24gMjY5ODMw
KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQmVoYXZpb3JUeXBlcy5oCShub25l
eGlzdGVudCkKQEAgLTEsNDUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKLSAqIENvcHlyaWdodCAo
QykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
LSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
LSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNwcmFnbWEgb25jZQotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLS8vIFRoZXJlIGFyZSBtdWx0aXBsZSBlZGl0aW5nIGRldGFp
bHMgdGhhdCBhcmUgZGlmZmVyZW50IG9uIFdpbmRvd3MgdGhhbiBNYWNpbnRvc2guCi0vLyBXZSB1
c2UgYSBzaW5nbGUgc3dpdGNoIGZvciBhbGwgb2YgdGhlbS4gU29tZSBleGFtcGxlczoKLS8vCi0v
LyAgICAxKSBDbGlja2luZyBiZWxvdyB0aGUgbGFzdCBsaW5lIG9mIGFuIGVkaXRhYmxlIGFyZWEg
cHV0cyB0aGUgY2FyZXQgYXQgdGhlIGVuZAotLy8gICAgICAgb2YgdGhlIGxhc3QgbGluZSBvbiBN
YWMsIGJ1dCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBsYXN0IGxpbmUgb24gV2luZG93cy4KLS8vICAg
IDIpIFB1c2hpbmcgdGhlIGRvd24gYXJyb3cga2V5IG9uIHRoZSBsYXN0IGxpbmUgcHV0cyB0aGUg
Y2FyZXQgYXQgdGhlIGVuZCBvZiB0aGUKLS8vICAgICAgIGxhc3QgbGluZSBvbiBNYWMsIGJ1dCBk
b2VzIG5vdGhpbmcgb24gV2luZG93cy4gQSBzaW1pbGFyIGNhc2UgZXhpc3RzIG9uIHRoZQotLy8g
ICAgICAgdG9wIGxpbmUuCi0vLwotLy8gVGhpcyBzZXR0aW5nIGlzIGludGVuZGVkIHRvIGNvbnRy
b2wgdGhlc2Ugc29ydHMgb2YgYmVoYXZpb3JzLiBUaGVyZSBhcmUgc29tZSBvdGhlcgotLy8gYmVo
YXZpb3JzIHdpdGggaW5kaXZpZHVhbCBmdW5jdGlvbiBjYWxscyBvbiBFZGl0b3JDbGllbnQgKHNt
YXJ0IGNvcHkgYW5kIHBhc3RlIGFuZAotLy8gc2VsZWN0aW5nIHRoZSBzcGFjZSBhZnRlciBhIGRv
dWJsZSBjbGljaykgdGhhdCBjb3VsZCBiZSBjb21iaW5lZCB3aXRoIHRoaXMgaWYKLS8vIGlmIHBv
c3NpYmxlIGluIHRoZSBmdXR1cmUuCi1lbnVtIEVkaXRpbmdCZWhhdmlvclR5cGUgewotICAgIEVk
aXRpbmdNYWNCZWhhdmlvciwKLSAgICBFZGl0aW5nV2luZG93c0JlaGF2aW9yLAotICAgIEVkaXRp
bmdVbml4QmVoYXZpb3IsCi0gICAgRWRpdGluZ0lPU0JlaGF2aW9yCi19OwotCi19IC8vIFdlYkNv
cmUgbmFtZXNwYWNlCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRpbmdCZWhhdmlvclR5cGVzLmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxl
CiMjIC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4MCw3ICsy
ODAsNyBAQCBWaXNpYmxlU2VsZWN0aW9uIEVkaXRvcjo6c2VsZWN0aW9uRm9yQ29tCiAvLyBGdW5j
dGlvbiBjb25zaWRlcnMgTWFjIGVkaXRpbmcgYmVoYXZpb3IgYSBmYWxsYmFjayB3aGVuIFBhZ2Ug
b3IgU2V0dGluZ3MgaXMgbm90IGF2YWlsYWJsZS4KIEVkaXRpbmdCZWhhdmlvciBFZGl0b3I6OmJl
aGF2aW9yKCkgY29uc3QKIHsKLSAgICByZXR1cm4gRWRpdGluZ0JlaGF2aW9yKG1fZG9jdW1lbnQu
c2V0dGluZ3MoKS5lZGl0aW5nQmVoYXZpb3JUeXBlKCkpOworICAgIHJldHVybiBtX2RvY3VtZW50
LmVkaXRpbmdCZWhhdmlvcigpOwogfQogCiBFZGl0b3JDbGllbnQqIEVkaXRvcjo6Y2xpZW50KCkg
Y29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAJKHJldmlzaW9uIDI2OTgzMCkK
KysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTgwLDcgKzE4MCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxQYWdlPiBjcmVhdGVQYWdlRm9yU2FuaXQK
ICAgICBhdXRvIHBhZ2UgPSBtYWtlVW5pcXVlPFBhZ2U+KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRp
b24pKTsKICAgICBwYWdlLT5zZXR0aW5ncygpLnNldE1lZGlhRW5hYmxlZChmYWxzZSk7CiAgICAg
cGFnZS0+c2V0dGluZ3MoKS5zZXRTY3JpcHRFbmFibGVkKGZhbHNlKTsKLSAgICBwYWdlLT5zZXR0
aW5ncygpLnNldFBhcnNlclNjcmlwdGluZ0ZsYWdQb2xpY3koU2V0dGluZ3NCYXNlOjpQYXJzZXJT
Y3JpcHRpbmdGbGFnUG9saWN5OjpFbmFibGVkKTsKKyAgICBwYWdlLT5zZXR0aW5ncygpLnNldEhU
TUxQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5KEhUTUxQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5
OjpFbmFibGVkKTsKICAgICBwYWdlLT5zZXR0aW5ncygpLnNldFBsdWdpbnNFbmFibGVkKGZhbHNl
KTsKICAgICBwYWdlLT5zZXR0aW5ncygpLnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVk
KGZhbHNlKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0
aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0
ZWN0aW9uLmgJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29j
b2EvRGF0YURldGVjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw4ICsyNywxMCBAQAogCiAj
aWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQogCisjaW1wb3J0ICJEYXRhRGV0ZWN0b3JUeXBlcy5o
IgogI2ltcG9ydCAiRmxvYXRSZWN0LmgiCiAjaW1wb3J0ICJTaW1wbGVSYW5nZS5oIgorI2ltcG9y
dCA8d3RmL09wdGlvblNldC5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiBPQkpDX0NM
QVNTIEREQWN0aW9uQ29udGV4dDsKQEAgLTM5LDE3ICs0MSw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgSGl0VGVzdFJlc3VsdDsKIAotLy8gRklYTUU6IFdvdWxkIGJlIGJldHRlciB0
byB1c2UgYW4gT3B0aW9uU2V0IGFuZCB1aW50OF90LgotZW51bSBjbGFzcyBEYXRhRGV0ZWN0b3JU
eXBlcyA6IHVpbnQzMl90IHsKLSAgICBQaG9uZU51bWJlciA9IDEgPDwgMCwKLSAgICBMaW5rID0g
MSA8PCAxLAotICAgIEFkZHJlc3MgPSAxIDw8IDIsCi0gICAgQ2FsZW5kYXJFdmVudCA9IDEgPDwg
MywKLSAgICBUcmFja2luZ051bWJlciA9IDEgPDwgNCwKLSAgICBGbGlnaHROdW1iZXIgPSAxIDw8
IDUsCi0gICAgTG9va3VwU3VnZ2VzdGlvbiA9IDEgPDwgNiwKLX07Ci0KIHN0cnVjdCBEZXRlY3Rl
ZEl0ZW0gewogICAgIFJldGFpblB0cjxEREFjdGlvbkNvbnRleHQ+IGFjdGlvbkNvbnRleHQ7CiAg
ICAgRmxvYXRSZWN0IGJvdW5kaW5nQm94OwpAQCAtNjEsNyArNTIsNyBAQCBwdWJsaWM6CiAjaWYg
UExBVEZPUk0oTUFDKQogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBPcHRpb25hbDxEZXRlY3Rl
ZEl0ZW0+IGRldGVjdEl0ZW1Bcm91bmRIaXRUZXN0UmVzdWx0KGNvbnN0IEhpdFRlc3RSZXN1bHQm
KTsKICNlbmRpZgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBOU0FycmF5ICpkZXRlY3RDb250
ZW50SW5SYW5nZShjb25zdCBTaW1wbGVSYW5nZSYsIERhdGFEZXRlY3RvclR5cGVzLCBOU0RpY3Rp
b25hcnkgKmNvbnRleHQpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBOU0FycmF5ICpkZXRl
Y3RDb250ZW50SW5SYW5nZShjb25zdCBTaW1wbGVSYW5nZSYsIE9wdGlvblNldDxEYXRhRGV0ZWN0
b3JUeXBlcz4sIE5TRGljdGlvbmFyeSAqY29udGV4dCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIHZvaWQgcmVtb3ZlRGF0YURldGVjdGVkTGlua3NJbkRvY3VtZW50KERvY3VtZW50Jik7CiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBj
YW5CZVByZXNlbnRlZEJ5RGF0YURldGVjdG9ycyhjb25zdCBVUkwmKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW0JKHJldmlzaW9uIDI2OTgz
MCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbQkod29y
a2luZyBjb3B5KQpAQCAtMjE4LDMwICsyMTgsMjQgQEAgc3RhdGljIEJPT0wgcmVzdWx0SXNVUkwo
RERSZXN1bHRSZWYgcmVzdQogICAgIHJldHVybiBbdXJsVHlwZXMgY29udGFpbnNPYmplY3Q6KE5T
U3RyaW5nICopc29mdExpbmtfRGF0YURldGVjdG9yc0NvcmVfRERSZXN1bHRHZXRUeXBlKHJlc3Vs
dCldOwogfQogCi0vLyBQb29yIG1hbidzIE9wdGlvblNldC4KLXN0YXRpYyBib29sIGNvbnRhaW5z
KERhdGFEZXRlY3RvclR5cGVzIHR5cGVzLCBEYXRhRGV0ZWN0b3JUeXBlcyBzaW5nbGVUeXBlKQot
ewotICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50MzJfdD4odHlwZXMpICYgc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KHNpbmdsZVR5cGUpOwotfQotCi1zdGF0aWMgTlNTdHJpbmcgKmNvbnN0cnVjdFVS
TFN0cmluZ0ZvclJlc3VsdChERFJlc3VsdFJlZiBjdXJyZW50UmVzdWx0LCBOU1N0cmluZyAqcmVz
dWx0SWRlbnRpZmllciwgTlNEYXRlICpyZWZlcmVuY2VEYXRlLCBOU1RpbWVab25lICpyZWZlcmVu
Y2VUaW1lWm9uZSwgRGF0YURldGVjdG9yVHlwZXMgZGV0ZWN0aW9uVHlwZXMpCitzdGF0aWMgTlNT
dHJpbmcgKmNvbnN0cnVjdFVSTFN0cmluZ0ZvclJlc3VsdChERFJlc3VsdFJlZiBjdXJyZW50UmVz
dWx0LCBOU1N0cmluZyAqcmVzdWx0SWRlbnRpZmllciwgTlNEYXRlICpyZWZlcmVuY2VEYXRlLCBO
U1RpbWVab25lICpyZWZlcmVuY2VUaW1lWm9uZSwgT3B0aW9uU2V0PERhdGFEZXRlY3RvclR5cGVz
PiBkZXRlY3Rpb25UeXBlcykKIHsKICAgICBpZiAoIXNvZnRMaW5rX0RhdGFEZXRlY3RvcnNDb3Jl
X0REUmVzdWx0SGFzUHJvcGVydGllcyhjdXJyZW50UmVzdWx0LCBERFJlc3VsdFByb3BlcnR5UGFz
c2l2ZURpc3BsYXkpKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgYXV0byBwaG9uZVR5cGVz
ID0gY29udGFpbnMoZGV0ZWN0aW9uVHlwZXMsIERhdGFEZXRlY3RvclR5cGVzOjpQaG9uZU51bWJl
cikgPyBERFVSTGlmaWVyUGhvbmVOdW1iZXJEZXRlY3Rpb25SZWd1bGFyIDogRERVUkxpZmllclBo
b25lTnVtYmVyRGV0ZWN0aW9uTm9uZTsKKyAgICBhdXRvIHBob25lVHlwZXMgPSBkZXRlY3Rpb25U
eXBlcy5jb250YWlucyhEYXRhRGV0ZWN0b3JUeXBlczo6UGhvbmVOdW1iZXIpID8gRERVUkxpZmll
clBob25lTnVtYmVyRGV0ZWN0aW9uUmVndWxhciA6IEREVVJMaWZpZXJQaG9uZU51bWJlckRldGVj
dGlvbk5vbmU7CiAgICAgYXV0byBjYXRlZ29yeSA9IHNvZnRMaW5rX0RhdGFEZXRlY3RvcnNDb3Jl
X0REUmVzdWx0R2V0Q2F0ZWdvcnkoY3VycmVudFJlc3VsdCk7CiAgICAgYXV0byB0eXBlID0gc29m
dExpbmtfRGF0YURldGVjdG9yc0NvcmVfRERSZXN1bHRHZXRUeXBlKGN1cnJlbnRSZXN1bHQpOwog
Ci0gICAgaWYgKChjb250YWlucyhkZXRlY3Rpb25UeXBlcywgRGF0YURldGVjdG9yVHlwZXM6OkFk
ZHJlc3MpICYmIEREUmVzdWx0Q2F0ZWdvcnlBZGRyZXNzID09IGNhdGVnb3J5KQotICAgICAgICB8
fCAoY29udGFpbnMoZGV0ZWN0aW9uVHlwZXMsIERhdGFEZXRlY3RvclR5cGVzOjpUcmFja2luZ051
bWJlcikgJiYgQ0ZFcXVhbChnZXRfRGF0YURldGVjdG9yc0NvcmVfRERCaW5kZXJUcmFja2luZ051
bWJlcktleSgpLCB0eXBlKSkKLSAgICAgICAgfHwgKGNvbnRhaW5zKGRldGVjdGlvblR5cGVzLCBE
YXRhRGV0ZWN0b3JUeXBlczo6RmxpZ2h0TnVtYmVyKSAmJiBDRkVxdWFsKGdldF9EYXRhRGV0ZWN0
b3JzQ29yZV9EREJpbmRlckZsaWdodEluZm9ybWF0aW9uS2V5KCksIHR5cGUpKQotICAgICAgICB8
fCAoY29udGFpbnMoZGV0ZWN0aW9uVHlwZXMsIERhdGFEZXRlY3RvclR5cGVzOjpMb29rdXBTdWdn
ZXN0aW9uKSAmJiBDRkVxdWFsKGdldF9EYXRhRGV0ZWN0b3JzQ29yZV9EREJpbmRlclBhcnNlY1Nv
dXJjZUtleSgpLCB0eXBlKSkKLSAgICAgICAgfHwgKGNvbnRhaW5zKGRldGVjdGlvblR5cGVzLCBE
YXRhRGV0ZWN0b3JUeXBlczo6UGhvbmVOdW1iZXIpICYmIEREUmVzdWx0Q2F0ZWdvcnlQaG9uZU51
bWJlciA9PSBjYXRlZ29yeSkKLSAgICAgICAgfHwgKGNvbnRhaW5zKGRldGVjdGlvblR5cGVzLCBE
YXRhRGV0ZWN0b3JUeXBlczo6TGluaykgJiYgcmVzdWx0SXNVUkwoY3VycmVudFJlc3VsdCkpKSB7
CisgICAgaWYgKChkZXRlY3Rpb25UeXBlcy5jb250YWlucyhEYXRhRGV0ZWN0b3JUeXBlczo6QWRk
cmVzcykgJiYgRERSZXN1bHRDYXRlZ29yeUFkZHJlc3MgPT0gY2F0ZWdvcnkpCisgICAgICAgIHx8
IChkZXRlY3Rpb25UeXBlcy5jb250YWlucyhEYXRhRGV0ZWN0b3JUeXBlczo6VHJhY2tpbmdOdW1i
ZXIpICYmIENGRXF1YWwoZ2V0X0RhdGFEZXRlY3RvcnNDb3JlX0REQmluZGVyVHJhY2tpbmdOdW1i
ZXJLZXkoKSwgdHlwZSkpCisgICAgICAgIHx8IChkZXRlY3Rpb25UeXBlcy5jb250YWlucyhEYXRh
RGV0ZWN0b3JUeXBlczo6RmxpZ2h0TnVtYmVyKSAmJiBDRkVxdWFsKGdldF9EYXRhRGV0ZWN0b3Jz
Q29yZV9EREJpbmRlckZsaWdodEluZm9ybWF0aW9uS2V5KCksIHR5cGUpKQorICAgICAgICB8fCAo
ZGV0ZWN0aW9uVHlwZXMuY29udGFpbnMoRGF0YURldGVjdG9yVHlwZXM6Okxvb2t1cFN1Z2dlc3Rp
b24pICYmIENGRXF1YWwoZ2V0X0RhdGFEZXRlY3RvcnNDb3JlX0REQmluZGVyUGFyc2VjU291cmNl
S2V5KCksIHR5cGUpKQorICAgICAgICB8fCAoZGV0ZWN0aW9uVHlwZXMuY29udGFpbnMoRGF0YURl
dGVjdG9yVHlwZXM6OlBob25lTnVtYmVyKSAmJiBERFJlc3VsdENhdGVnb3J5UGhvbmVOdW1iZXIg
PT0gY2F0ZWdvcnkpCisgICAgICAgIHx8IChkZXRlY3Rpb25UeXBlcy5jb250YWlucyhEYXRhRGV0
ZWN0b3JUeXBlczo6TGluaykgJiYgcmVzdWx0SXNVUkwoY3VycmVudFJlc3VsdCkpKSB7CiAgICAg
ICAgIHJldHVybiBzb2Z0TGlua19EYXRhRGV0ZWN0b3JzQ29yZV9ERFVSTFN0cmluZ0ZvclJlc3Vs
dChjdXJyZW50UmVzdWx0LCByZXN1bHRJZGVudGlmaWVyLCBwaG9uZVR5cGVzLCByZWZlcmVuY2VE
YXRlLCByZWZlcmVuY2VUaW1lWm9uZSk7CiAgICAgfQotICAgIGlmIChjb250YWlucyhkZXRlY3Rp
b25UeXBlcywgRGF0YURldGVjdG9yVHlwZXM6OkNhbGVuZGFyRXZlbnQpICYmIEREUmVzdWx0Q2F0
ZWdvcnlDYWxlbmRhckV2ZW50ID09IGNhdGVnb3J5KSB7CisgICAgaWYgKGRldGVjdGlvblR5cGVz
LmNvbnRhaW5zKERhdGFEZXRlY3RvclR5cGVzOjpDYWxlbmRhckV2ZW50KSAmJiBERFJlc3VsdENh
dGVnb3J5Q2FsZW5kYXJFdmVudCA9PSBjYXRlZ29yeSkgewogICAgICAgICBpZiAoIXNvZnRMaW5r
X0RhdGFEZXRlY3RvcnNDb3JlX0REUmVzdWx0SXNQYXN0RGF0ZShjdXJyZW50UmVzdWx0LCAoQ0ZE
YXRlUmVmKXJlZmVyZW5jZURhdGUsIChDRlRpbWVab25lUmVmKXJlZmVyZW5jZVRpbWVab25lKSkK
ICAgICAgICAgICAgIHJldHVybiBzb2Z0TGlua19EYXRhRGV0ZWN0b3JzQ29yZV9ERFVSTFN0cmlu
Z0ZvclJlc3VsdChjdXJyZW50UmVzdWx0LCByZXN1bHRJZGVudGlmaWVyLCBwaG9uZVR5cGVzLCBy
ZWZlcmVuY2VEYXRlLCByZWZlcmVuY2VUaW1lWm9uZSk7CiAgICAgfQpAQCAtNDM5LDEzICs0MzMs
MTMgQEAgdm9pZCBEYXRhRGV0ZWN0aW9uOjpyZW1vdmVEYXRhRGV0ZWN0ZWRMaQogICAgICAgICBy
ZW1vdmVSZXN1bHRMaW5rc0Zyb21BbmNob3IoYW5jaG9yLmdldCgpKTsKIH0KIAotTlNBcnJheSAq
RGF0YURldGVjdGlvbjo6ZGV0ZWN0Q29udGVudEluUmFuZ2UoY29uc3QgU2ltcGxlUmFuZ2UmIGNv
bnRleHRSYW5nZSwgRGF0YURldGVjdG9yVHlwZXMgdHlwZXMsIE5TRGljdGlvbmFyeSAqY29udGV4
dCkKK05TQXJyYXkgKkRhdGFEZXRlY3Rpb246OmRldGVjdENvbnRlbnRJblJhbmdlKGNvbnN0IFNp
bXBsZVJhbmdlJiBjb250ZXh0UmFuZ2UsIE9wdGlvblNldDxEYXRhRGV0ZWN0b3JUeXBlcz4gdHlw
ZXMsIE5TRGljdGlvbmFyeSAqY29udGV4dCkKIHsKICAgICBhdXRvIHNjYW5uZXIgPSBhZG9wdENG
KHNvZnRMaW5rX0RhdGFEZXRlY3RvcnNDb3JlX0REU2Nhbm5lckNyZWF0ZShERFNjYW5uZXJUeXBl
U3RhbmRhcmQsIDAsIG51bGxwdHIpKTsKICAgICBhdXRvIHNjYW5RdWVyeSA9IGFkb3B0Q0Yoc29m
dExpbmtfRGF0YURldGVjdG9yc0NvcmVfRERTY2FuUXVlcnlDcmVhdGUoTlVMTCkpOwogICAgIGJ1
aWxkUXVlcnkoc2NhblF1ZXJ5LmdldCgpLCBjb250ZXh0UmFuZ2UpOwogICAgIAotICAgIGlmIChj
b250YWlucyh0eXBlcywgRGF0YURldGVjdG9yVHlwZXM6Okxvb2t1cFN1Z2dlc3Rpb24pKQorICAg
IGlmICh0eXBlcy5jb250YWlucyhEYXRhRGV0ZWN0b3JUeXBlczo6TG9va3VwU3VnZ2VzdGlvbikp
CiAgICAgICAgIHNvZnRMaW5rX0RhdGFEZXRlY3RvcnNDb3JlX0REU2Nhbm5lckVuYWJsZU9wdGlv
bmFsU291cmNlKHNjYW5uZXIuZ2V0KCksIEREU2Nhbm5lclNvdXJjZVNwb3RsaWdodCwgdHJ1ZSk7
CiAKICAgICAvLyBGSVhNRTogd2Ugc2hvdWxkIGFkZCBhIHRpbWVvdXQgdG8gdGhpcyBjYWxsIHRv
IG1ha2Ugc3VyZSBpdCBkb2Vzbid0IHRha2UgdG9vIG11Y2ggdGltZS4KQEAgLTYzOCw3ICs2MzIs
NyBAQCBOU0FycmF5ICpEYXRhRGV0ZWN0aW9uOjpkZXRlY3RDb250ZW50SW5SCiAKICNlbHNlCiAK
LU5TQXJyYXkgKkRhdGFEZXRlY3Rpb246OmRldGVjdENvbnRlbnRJblJhbmdlKGNvbnN0IFNpbXBs
ZVJhbmdlJiwgRGF0YURldGVjdG9yVHlwZXMsIE5TRGljdGlvbmFyeSAqKQorTlNBcnJheSAqRGF0
YURldGVjdGlvbjo6ZGV0ZWN0Q29udGVudEluUmFuZ2UoY29uc3QgU2ltcGxlUmFuZ2UmLCBPcHRp
b25TZXQ8RGF0YURldGVjdG9yVHlwZXM+LCBOU0RpY3Rpb25hcnkgKikKIHsKICAgICByZXR1cm4g
bmlsOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0b3JU
eXBlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURl
dGVjdG9yVHlwZXMuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2Nv
Y29hL0RhdGFEZXRlY3RvclR5cGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgRGF0YURldGVjdG9yVHlwZXMgOiB1
aW50OF90IHsKKyAgICBOb25lID0gMCwKKyAgICBQaG9uZU51bWJlciA9IDEgPDwgMCwKKyAgICBM
aW5rID0gMSA8PCAxLAorICAgIEFkZHJlc3MgPSAxIDw8IDIsCisgICAgQ2FsZW5kYXJFdmVudCA9
IDEgPDwgMywKKyAgICBUcmFja2luZ051bWJlciA9IDEgPDwgNCwKKyAgICBGbGlnaHROdW1iZXIg
PSAxIDw8IDUsCisgICAgTG9va3VwU3VnZ2VzdGlvbiA9IDEgPDwgNiwKK307CisKK30KKworI2Vu
ZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAkocmV2
aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTIxNCwyOCArMjE0LDIzIEBAIHZvaWQgSFRNTEFuY2hvckVs
ZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmQKIHZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OnNldEFjdGl2
ZShib29sIGRvd24sIGJvb2wgcGF1c2UpCiB7CiAgICAgaWYgKGhhc0VkaXRhYmxlU3R5bGUoKSkg
ewotICAgICAgICBFZGl0YWJsZUxpbmtCZWhhdmlvciBlZGl0YWJsZUxpbmtCZWhhdmlvciA9IGRv
Y3VtZW50KCkuc2V0dGluZ3MoKS5lZGl0YWJsZUxpbmtCZWhhdmlvcigpOwotICAgICAgICAgICAg
Ci0gICAgICAgIHN3aXRjaCAoZWRpdGFibGVMaW5rQmVoYXZpb3IpIHsKLSAgICAgICAgICAgIGRl
ZmF1bHQ6Ci0gICAgICAgICAgICBjYXNlIEVkaXRhYmxlTGlua0RlZmF1bHRCZWhhdmlvcjoKLSAg
ICAgICAgICAgIGNhc2UgRWRpdGFibGVMaW5rQWx3YXlzTGl2ZToKLSAgICAgICAgICAgICAgICBi
cmVhazsKLQotICAgICAgICAgICAgY2FzZSBFZGl0YWJsZUxpbmtOZXZlckxpdmU6CisgICAgICAg
IHN3aXRjaCAoZG9jdW1lbnQoKS5zZXR0aW5ncygpLmVkaXRhYmxlTGlua0JlaGF2aW9yKCkpIHsK
KyAgICAgICAgY2FzZSBFZGl0YWJsZUxpbmtCZWhhdmlvcjo6RGVmYXVsdDoKKyAgICAgICAgY2Fz
ZSBFZGl0YWJsZUxpbmtCZWhhdmlvcjo6QWx3YXlzTGl2ZToKKyAgICAgICAgICAgIGJyZWFrOwor
CisgICAgICAgIC8vIERvbid0IHNldCB0aGUgbGluayB0byBiZSBhY3RpdmUgaWYgdGhlIGN1cnJl
bnQgc2VsZWN0aW9uIGlzIGluIHRoZSBzYW1lIGVkaXRhYmxlIGJsb2NrIGFzCisgICAgICAgIC8v
IHRoaXMgbGluaworICAgICAgICBjYXNlIEVkaXRhYmxlTGlua0JlaGF2aW9yOjpMaXZlV2hlbk5v
dEZvY3VzZWQ6CisgICAgICAgICAgICBpZiAoZG93biAmJiBkb2N1bWVudCgpLmZyYW1lKCkgJiYg
ZG9jdW1lbnQoKS5mcmFtZSgpLT5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKS5yb290RWRpdGFibGVF
bGVtZW50KCkgPT0gcm9vdEVkaXRhYmxlRWxlbWVudCgpKQogICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAKKyAgICAgICAgY2FzZSBFZGl0YWJsZUxp
bmtCZWhhdmlvcjo6TmV2ZXJMaXZlOgorICAgICAgICBjYXNlIEVkaXRhYmxlTGlua0JlaGF2aW9y
OjpPbmx5TGl2ZVdpdGhTaGlmdEtleToKKyAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAg
ICAgLy8gRG9uJ3Qgc2V0IHRoZSBsaW5rIHRvIGJlIGFjdGl2ZSBpZiB0aGUgY3VycmVudCBzZWxl
Y3Rpb24gaXMgaW4gdGhlIHNhbWUgZWRpdGFibGUgYmxvY2sgYXMKLSAgICAgICAgICAgIC8vIHRo
aXMgbGluawotICAgICAgICAgICAgY2FzZSBFZGl0YWJsZUxpbmtMaXZlV2hlbk5vdEZvY3VzZWQ6
Ci0gICAgICAgICAgICAgICAgaWYgKGRvd24gJiYgZG9jdW1lbnQoKS5mcmFtZSgpICYmIGRvY3Vt
ZW50KCkuZnJhbWUoKS0+c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkucm9vdEVkaXRhYmxlRWxlbWVu
dCgpID09IHJvb3RFZGl0YWJsZUVsZW1lbnQoKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBjYXNl
IEVkaXRhYmxlTGlua09ubHlMaXZlV2l0aFNoaWZ0S2V5OgotICAgICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQotCiAgICAgfQogICAgIAogICAgIEhUTUxFbGVtZW50OjpzZXRBY3RpdmUo
ZG93biwgcGF1c2UpOwpAQCAtNTUwLDE5ICs1NDUsMTkgQEAgYm9vbCBIVE1MQW5jaG9yRWxlbWVu
dDo6dHJlYXRMaW5rQXNMaXZlRgogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHN3aXRjaCAo
ZG9jdW1lbnQoKS5zZXR0aW5ncygpLmVkaXRhYmxlTGlua0JlaGF2aW9yKCkpIHsKLSAgICBjYXNl
IEVkaXRhYmxlTGlua0RlZmF1bHRCZWhhdmlvcjoKLSAgICBjYXNlIEVkaXRhYmxlTGlua0Fsd2F5
c0xpdmU6CisgICAgY2FzZSBFZGl0YWJsZUxpbmtCZWhhdmlvcjo6RGVmYXVsdDoKKyAgICBjYXNl
IEVkaXRhYmxlTGlua0JlaGF2aW9yOjpBbHdheXNMaXZlOgogICAgICAgICByZXR1cm4gdHJ1ZTsK
IAotICAgIGNhc2UgRWRpdGFibGVMaW5rTmV2ZXJMaXZlOgorICAgIGNhc2UgRWRpdGFibGVMaW5r
QmVoYXZpb3I6Ok5ldmVyTGl2ZToKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gSWYg
dGhlIHNlbGVjdGlvbiBwcmlvciB0byBjbGlja2luZyBvbiB0aGlzIGxpbmsgcmVzaWRlZCBpbiB0
aGUgc2FtZSBlZGl0YWJsZSBibG9jayBhcyB0aGlzIGxpbmssCiAgICAgLy8gYW5kIHRoZSBzaGlm
dCBrZXkgaXNuJ3QgcHJlc3NlZCwgd2UgZG9uJ3Qgd2FudCB0byBmb2xsb3cgdGhlIGxpbmsuCi0g
ICAgY2FzZSBFZGl0YWJsZUxpbmtMaXZlV2hlbk5vdEZvY3VzZWQ6CisgICAgY2FzZSBFZGl0YWJs
ZUxpbmtCZWhhdmlvcjo6TGl2ZVdoZW5Ob3RGb2N1c2VkOgogICAgICAgICByZXR1cm4gZXZlbnRU
eXBlID09IE1vdXNlRXZlbnRXaXRoU2hpZnRLZXkgfHwgKGV2ZW50VHlwZSA9PSBNb3VzZUV2ZW50
V2l0aG91dFNoaWZ0S2V5ICYmIHJvb3RFZGl0YWJsZUVsZW1lbnRGb3JTZWxlY3Rpb25Pbk1vdXNl
RG93bigpICE9IHJvb3RFZGl0YWJsZUVsZW1lbnQoKSk7CiAKLSAgICBjYXNlIEVkaXRhYmxlTGlu
a09ubHlMaXZlV2l0aFNoaWZ0S2V5OgorICAgIGNhc2UgRWRpdGFibGVMaW5rQmVoYXZpb3I6Ok9u
bHlMaXZlV2l0aFNoaWZ0S2V5OgogICAgICAgICByZXR1cm4gZXZlbnRUeXBlID09IE1vdXNlRXZl
bnRXaXRoU2hpZnRLZXk7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MUGFyc2VyT3B0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTFBhcnNlck9wdGlvbnMuY3BwCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUGFyc2VyT3B0aW9ucy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ1LDcgKzQ1LDcgQEAgSFRNTFBhcnNlck9wdGlvbnM6OkhUTUxQYXJzZXJPcHRpb25z
KCkKIEhUTUxQYXJzZXJPcHRpb25zOjpIVE1MUGFyc2VyT3B0aW9ucyhEb2N1bWVudCYgZG9jdW1l
bnQpCiB7CiAgICAgUmVmUHRyPEZyYW1lPiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCk7Ci0gICAg
aWYgKGRvY3VtZW50LnNldHRpbmdzKCkucGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeSgpID09IFNl
dHRpbmdzQmFzZTo6UGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeTo6RW5hYmxlZCkKKyAgICBpZiAo
ZG9jdW1lbnQuc2V0dGluZ3MoKS5odG1sUGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeSgpID09IEhU
TUxQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5OjpFbmFibGVkKQogICAgICAgICBzY3JpcHRpbmdG
bGFnID0gdHJ1ZTsKICAgICBlbHNlCiAgICAgICAgIHNjcmlwdGluZ0ZsYWcgPSBmcmFtZSAmJiBm
cmFtZS0+c2NyaXB0KCkuY2FuRXhlY3V0ZVNjcmlwdHMoTm90QWJvdXRUb0V4ZWN1dGVTY3JpcHQp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlclNjcmlwdGluZ0Zs
YWdQb2xpY3kuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
UGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgSFRNTFBhcnNlclNjcmlwdGluZ0ZsYWdQb2xp
Y3kgOiB1aW50OF90IHsKKyAgICBPbmx5SWZTY3JpcHRJc0VuYWJsZWQsCisgICAgRW5hYmxlZAor
fTsKKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCShyZXZpc2lv
biAyNjk4MzApCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNTgwLDggKzI1ODAsOCBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjaGVja0xv
YWRDb21wbGV0ZUZvclRoCiAgICAgICAgICAgICAgICAgRlJBTUVMT0FERVJfUkVMRUFTRV9MT0df
SUZfQUxMT1dFRChSZXNvdXJjZUxvYWRpbmcsICJjaGVja0xvYWRDb21wbGV0ZUZvclRoaXNGcmFt
ZTogRmluaXNoZWQgZnJhbWUgbG9hZCIpOwogI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKICAg
ICAgICAgICAgICAgICBhdXRvIGRvY3VtZW50ID0gbV9mcmFtZS5kb2N1bWVudCgpOwotICAgICAg
ICAgICAgICAgIGF1dG8gdHlwZXMgPSBtX2ZyYW1lLnNldHRpbmdzKCkuZGF0YURldGVjdG9yVHlw
ZXMoKTsKLSAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQgJiYgc3RhdGljX2Nhc3Q8dWludDMy
X3Q+KHR5cGVzKSkgeworICAgICAgICAgICAgICAgIGF1dG8gdHlwZXMgPSBPcHRpb25TZXQ8RGF0
YURldGVjdG9yVHlwZXM+IHsgbV9mcmFtZS5zZXR0aW5ncygpLmRhdGFEZXRlY3RvclR5cGVzKCkg
fTsKKyAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQgJiYgdHlwZXMpIHsKICAgICAgICAgICAg
ICAgICAgICAgbV9mcmFtZS5zZXREYXRhRGV0ZWN0aW9uUmVzdWx0cyhEYXRhRGV0ZWN0aW9uOjpk
ZXRlY3RDb250ZW50SW5SYW5nZShtYWtlUmFuZ2VTZWxlY3RpbmdOb2RlQ29udGVudHMoKmRvY3Vt
ZW50KSwgdHlwZXMsIG1fY2xpZW50LT5kYXRhRGV0ZWN0aW9uQ29udGV4dCgpKSk7CiAgICAgICAg
ICAgICAgICAgICAgIGlmIChtX2ZyYW1lLmlzTWFpbkZyYW1lKCkpCiAgICAgICAgICAgICAgICAg
ICAgICAgICBtX2NsaWVudC0+ZGlzcGF0Y2hEaWRGaW5pc2hEYXRhRGV0ZWN0aW9uKG1fZnJhbWUu
ZGF0YURldGVjdGlvblJlc3VsdHMoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRl
eHRNZW51Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9D
b250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEx
MTAsOCArMTExMCw4IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpwb3B1bGF0ZSgpCiAg
ICAgICAgICAgICBjcmVhdGVBbmRBcHBlbmRXcml0aW5nRGlyZWN0aW9uU3ViTWVudShXcml0aW5n
RGlyZWN0aW9uTWVudUl0ZW0pOwogICAgICAgICAgICAgYXBwZW5kSXRlbShXcml0aW5nRGlyZWN0
aW9uTWVudUl0ZW0sIG1fY29udGV4dE1lbnUuZ2V0KCkpOwogICAgICAgICAgICAgaWYgKFBhZ2Uq
IHBhZ2UgPSBmcmFtZS0+cGFnZSgpKSB7Ci0gICAgICAgICAgICAgICAgYm9vbCBpbmNsdWRlVGV4
dERpcmVjdGlvblN1Ym1lbnUgPSBwYWdlLT5zZXR0aW5ncygpLnRleHREaXJlY3Rpb25TdWJtZW51
SW5jbHVzaW9uQmVoYXZpb3IoKSA9PSBUZXh0RGlyZWN0aW9uU3VibWVudUFsd2F5c0luY2x1ZGVk
Ci0gICAgICAgICAgICAgICAgICAgIHx8IChwYWdlLT5zZXR0aW5ncygpLnRleHREaXJlY3Rpb25T
dWJtZW51SW5jbHVzaW9uQmVoYXZpb3IoKSA9PSBUZXh0RGlyZWN0aW9uU3VibWVudUF1dG9tYXRp
Y2FsbHlJbmNsdWRlZCAmJiBmcmFtZS0+ZWRpdG9yKCkuaGFzQmlkaVNlbGVjdGlvbigpKTsKKyAg
ICAgICAgICAgICAgICBib29sIGluY2x1ZGVUZXh0RGlyZWN0aW9uU3VibWVudSA9IHBhZ2UtPnNl
dHRpbmdzKCkudGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcigpID09IFRleHRE
aXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3I6OkFsd2F5c0luY2x1ZGVkCisgICAgICAg
ICAgICAgICAgICAgIHx8IChwYWdlLT5zZXR0aW5ncygpLnRleHREaXJlY3Rpb25TdWJtZW51SW5j
bHVzaW9uQmVoYXZpb3IoKSA9PSBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9y
OjpBdXRvbWF0aWNhbGx5SW5jbHVkZWQgJiYgZnJhbWUtPmVkaXRvcigpLmhhc0JpZGlTZWxlY3Rp
b24oKSk7CiAgICAgICAgICAgICAgICAgaWYgKGluY2x1ZGVUZXh0RGlyZWN0aW9uU3VibWVudSkg
ewogICAgICAgICAgICAgICAgICAgICBDb250ZXh0TWVudUl0ZW0gVGV4dERpcmVjdGlvbk1lbnVJ
dGVtKFN1Ym1lbnVUeXBlLCBDb250ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0aW9uTWVudSwgY29u
dGV4dE1lbnVJdGVtVGFnVGV4dERpcmVjdGlvbk1lbnUoKSk7CiAgICAgICAgICAgICAgICAgICAg
IGNyZWF0ZUFuZEFwcGVuZFRleHREaXJlY3Rpb25TdWJNZW51KFRleHREaXJlY3Rpb25NZW51SXRl
bSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RlYnVnT3ZlcmxheVJlZ2lvbnMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0RlYnVnT3ZlcmxheVJlZ2lvbnMuaAkobm9u
ZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RlYnVnT3ZlcmxheVJlZ2lvbnMuaAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBEZWJ1Z092ZXJsYXlSZWdpb25z
IDogdWludDhfdCB7CisgICAgTm9uRmFzdFNjcm9sbGFibGVSZWdpb24gPSAxIDw8IDAsCisgICAg
V2hlZWxFdmVudEhhbmRsZXJSZWdpb24gPSAxIDw8IDEsCisgICAgVG91Y2hBY3Rpb25SZWdpb24g
PSAxIDw8IDIsCisgICAgRWRpdGFibGVFbGVtZW50UmVnaW9uID0gMSA8PCAzLAorfTsKKworfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9EZWJ1Z1BhZ2VPdmVybGF5cy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9EZWJ1Z1BhZ2VPdmVybGF5cy5jcHAJKHJldmlzaW9u
IDI2OTgzMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zOTksMTQgKzM5OSwxNCBAQCBSZWdpb25PdmVybGF5KiBEZWJ1Z1Bh
Z2VPdmVybGF5czo6cmVnaW9uCiAgICAgcmV0dXJuIGl0LT52YWx1ZS5hdChpbmRleE9mKHJlZ2lv
blR5cGUpKS5nZXQoKTsKIH0KIAotdm9pZCBEZWJ1Z1BhZ2VPdmVybGF5czo6dXBkYXRlT3Zlcmxh
eVJlZ2lvblZpc2liaWxpdHkoUGFnZSYgcGFnZSwgRGVidWdPdmVybGF5UmVnaW9ucyB2aXNpYmxl
UmVnaW9ucykKK3ZvaWQgRGVidWdQYWdlT3ZlcmxheXM6OnVwZGF0ZU92ZXJsYXlSZWdpb25WaXNp
YmlsaXR5KFBhZ2UmIHBhZ2UsIE9wdGlvblNldDxEZWJ1Z092ZXJsYXlSZWdpb25zPiB2aXNpYmxl
UmVnaW9ucykKIHsKLSAgICBpZiAodmlzaWJsZVJlZ2lvbnMgJiBOb25GYXN0U2Nyb2xsYWJsZVJl
Z2lvbikKKyAgICBpZiAodmlzaWJsZVJlZ2lvbnMuY29udGFpbnMoRGVidWdPdmVybGF5UmVnaW9u
czo6Tm9uRmFzdFNjcm9sbGFibGVSZWdpb24pKQogICAgICAgICBzaG93UmVnaW9uT3ZlcmxheShw
YWdlLCBSZWdpb25UeXBlOjpOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbik7CiAgICAgZWxzZQogICAg
ICAgICBoaWRlUmVnaW9uT3ZlcmxheShwYWdlLCBSZWdpb25UeXBlOjpOb25GYXN0U2Nyb2xsYWJs
ZVJlZ2lvbik7CiAKLSAgICBpZiAodmlzaWJsZVJlZ2lvbnMgJiBXaGVlbEV2ZW50SGFuZGxlclJl
Z2lvbikKKyAgICBpZiAodmlzaWJsZVJlZ2lvbnMgJiBEZWJ1Z092ZXJsYXlSZWdpb25zOjpXaGVl
bEV2ZW50SGFuZGxlclJlZ2lvbikKICAgICAgICAgc2hvd1JlZ2lvbk92ZXJsYXkocGFnZSwgUmVn
aW9uVHlwZTo6V2hlZWxFdmVudEhhbmRsZXJzKTsKICAgICBlbHNlCiAgICAgICAgIGhpZGVSZWdp
b25PdmVybGF5KHBhZ2UsIFJlZ2lvblR5cGU6OldoZWVsRXZlbnRIYW5kbGVycyk7CkBAIC00MTQs
NyArNDE0LDcgQEAgdm9pZCBEZWJ1Z1BhZ2VPdmVybGF5czo6dXBkYXRlT3ZlcmxheVJlZwogCiB2
b2lkIERlYnVnUGFnZU92ZXJsYXlzOjpzZXR0aW5nc0NoYW5nZWQoUGFnZSYgcGFnZSkKIHsKLSAg
ICBEZWJ1Z092ZXJsYXlSZWdpb25zIGFjdGl2ZU92ZXJsYXlSZWdpb25zID0gcGFnZS5zZXR0aW5n
cygpLnZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zKCk7CisgICAgYXV0byBhY3RpdmVPdmVybGF5
UmVnaW9ucyA9IE9wdGlvblNldDxEZWJ1Z092ZXJsYXlSZWdpb25zPjo6ZnJvbVJhdyhwYWdlLnNl
dHRpbmdzKCkudmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMoKSk7CiAgICAgaWYgKCFhY3RpdmVP
dmVybGF5UmVnaW9ucyAmJiAhaGFzT3ZlcmxheXMocGFnZSkpCiAgICAgICAgIHJldHVybjsKIApJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9EZWJ1Z1BhZ2VPdmVybGF5cy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuaAkocmV2aXNpb24gMjY5
ODMwKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9EZWJ1Z1BhZ2VPdmVybGF5cy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yNSw5ICsyNSwxMCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkRl
YnVnT3ZlcmxheVJlZ2lvbnMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIlNldHRp
bmdzLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0
Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00
Myw3ICs0NCw3IEBAIHB1YmxpYzoKICAgICAgICAgV2hlZWxFdmVudEhhbmRsZXJzLAogICAgICAg
ICBOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbiwKICAgICB9OwotICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBOdW1iZXJPZlJlZ2lvblR5cGVzID0gTm9uRmFzdFNjcm9sbGFibGVSZWdpb24gKyAxOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgTnVtYmVyT2ZSZWdpb25UeXBlcyA9IHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihSZWdpb25UeXBlOjpOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbikgKyAx
OwogCiAgICAgc3RhdGljIHZvaWQgZGlkTGF5b3V0KEZyYW1lJik7CiAgICAgc3RhdGljIHZvaWQg
ZGlkQ2hhbmdlRXZlbnRIYW5kbGVycyhGcmFtZSYpOwpAQCAtNjYsNyArNjcsNyBAQCBwcml2YXRl
OgogICAgICAgICByZXR1cm4gbV9wYWdlUmVnaW9uT3ZlcmxheXMuY29udGFpbnMoJnBhZ2UpOwog
ICAgIH0KICAgICAKLSAgICB2b2lkIHVwZGF0ZU92ZXJsYXlSZWdpb25WaXNpYmlsaXR5KFBhZ2Um
LCBEZWJ1Z092ZXJsYXlSZWdpb25zKTsKKyAgICB2b2lkIHVwZGF0ZU92ZXJsYXlSZWdpb25WaXNp
YmlsaXR5KFBhZ2UmLCBPcHRpb25TZXQ8RGVidWdPdmVybGF5UmVnaW9ucz4pOwogCiAgICAgUmVn
aW9uT3ZlcmxheSogcmVnaW9uT3ZlcmxheUZvclBhZ2UoUGFnZSYsIFJlZ2lvblR5cGUpIGNvbnN0
OwogICAgIFJlZ2lvbk92ZXJsYXkmIGVuc3VyZVJlZ2lvbk92ZXJsYXlGb3JQYWdlKFBhZ2UmLCBS
ZWdpb25UeXBlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAJKHJldmlz
aW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTM4MywyMSArMTM4MywyMCBAQCBib29sIEV2ZW50SGFuZGxlcjo6dXNl
SGFuZEN1cnNvcihOb2RlKiBuCiAgICAgLy8gSWYgdGhlIGxpbmsgaXMgZWRpdGFibGUsIHRoZW4g
d2UgbmVlZCB0byBjaGVjayB0aGUgc2V0dGluZ3MgdG8gc2VlIHdoZXRoZXIgb3Igbm90IHRoZSBs
aW5rIHNob3VsZCBiZSBmb2xsb3dlZAogICAgIGlmIChlZGl0YWJsZSkgewogICAgICAgICBzd2l0
Y2ggKG1fZnJhbWUuc2V0dGluZ3MoKS5lZGl0YWJsZUxpbmtCZWhhdmlvcigpKSB7Ci0gICAgICAg
IGRlZmF1bHQ6Ci0gICAgICAgIGNhc2UgRWRpdGFibGVMaW5rRGVmYXVsdEJlaGF2aW9yOgotICAg
ICAgICBjYXNlIEVkaXRhYmxlTGlua0Fsd2F5c0xpdmU6CisgICAgICAgIGNhc2UgRWRpdGFibGVM
aW5rQmVoYXZpb3I6OkRlZmF1bHQ6CisgICAgICAgIGNhc2UgRWRpdGFibGVMaW5rQmVoYXZpb3I6
OkFsd2F5c0xpdmU6CiAgICAgICAgICAgICBlZGl0YWJsZUxpbmtFbmFibGVkID0gdHJ1ZTsKICAg
ICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgIGNhc2UgRWRpdGFibGVMaW5rTmV2ZXJMaXZlOgor
ICAgICAgICBjYXNlIEVkaXRhYmxlTGlua0JlaGF2aW9yOjpOZXZlckxpdmU6CiAgICAgICAgICAg
ICBlZGl0YWJsZUxpbmtFbmFibGVkID0gZmFsc2U7CiAgICAgICAgICAgICBicmVhazsKIAotICAg
ICAgICBjYXNlIEVkaXRhYmxlTGlua0xpdmVXaGVuTm90Rm9jdXNlZDoKKyAgICAgICAgY2FzZSBF
ZGl0YWJsZUxpbmtCZWhhdmlvcjo6TGl2ZVdoZW5Ob3RGb2N1c2VkOgogICAgICAgICAgICAgZWRp
dGFibGVMaW5rRW5hYmxlZCA9IG5vZGVJc05vdEJlaW5nRWRpdGVkKCpub2RlLCBtX2ZyYW1lKSB8
fCBzaGlmdEtleTsKICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgIGNhc2UgRWRpdGFibGVM
aW5rT25seUxpdmVXaXRoU2hpZnRLZXk6CisgICAgICAgIGNhc2UgRWRpdGFibGVMaW5rQmVoYXZp
b3I6Ok9ubHlMaXZlV2l0aFNoaWZ0S2V5OgogICAgICAgICAgICAgZWRpdGFibGVMaW5rRW5hYmxl
ZCA9IHNoaWZ0S2V5OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVGbGF0dGVuaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZUZsYXR0ZW5pbmcuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lRmxhdHRlbmluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitl
bnVtIGNsYXNzIEZyYW1lRmxhdHRlbmluZyA6IHVpbnQ4X3QgeworICAgIERpc2FibGVkLAorICAg
IEVuYWJsZWRGb3JOb25GdWxsU2NyZWVuSUZyYW1lcywKKyAgICBGdWxseUVuYWJsZWQKK307CisK
K30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAkocmV2aXNpb24gMjY5ODMwKQorKysgU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcs
NyBAQAogI2luY2x1ZGUgIkFkanVzdFZpZXdTaXplT3JOb3QuaCIKICNpbmNsdWRlICJDb2xvci5o
IgogI2luY2x1ZGUgIkNvbnRhaW5lck5vZGUuaCIKKyNpbmNsdWRlICJGcmFtZUZsYXR0ZW5pbmcu
aCIKICNpbmNsdWRlICJGcmFtZVZpZXdMYXlvdXRDb250ZXh0LmgiCiAjaW5jbHVkZSAiR3JhcGhp
Y3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiTGF5b3V0TWlsZXN0b25lLmgiCkBAIC04MCw4ICs4MSw2
IEBAIGNsYXNzIFZpZXc7CiB9CiAjZW5kaWYKIAotZW51bSBjbGFzcyBGcmFtZUZsYXR0ZW5pbmc7
Ci0KIFBhZ2luYXRpb246Ok1vZGUgcGFnaW5hdGlvbk1vZGVGb3JSZW5kZXJTdHlsZShjb25zdCBS
ZW5kZXJTdHlsZSYpOwogCiBjbGFzcyBGcmFtZVZpZXcgZmluYWwgOiBwdWJsaWMgU2Nyb2xsVmll
dyB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BERkltYWdlQ2FjaGluZ1BvbGljeS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUERGSW1hZ2VDYWNoaW5nUG9saWN5LmgJ
KG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QREZJbWFnZUNhY2hpbmdQb2xp
Y3kuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBQREZJbWFnZUNhY2hp
bmdQb2xpY3kgOiB1aW50OF90IHsKKyAgICBFbmFibGVkLAorICAgIEJlbG93TWVtb3J5TGltaXQs
CisgICAgRGlzYWJsZWQsCisgICAgQ2xpcEJvdW5kc09ubHksCisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKKyAgICBEZWZhdWx0ID0gQmVsb3dNZW1vcnlMaW1pdAorI2Vsc2UKKyAgICBEZWZhdWx0
ID0gRW5hYmxlZAorI2VuZGlmCit9OworCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAJKHJldmlz
aW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJET01SZWN0LmgiCiAjaW5jbHVkZSAiRE9N
UmVjdExpc3QuaCIKICNpbmNsdWRlICJEYXRhYmFzZVByb3ZpZGVyLmgiCisjaW5jbHVkZSAiRGVi
dWdPdmVybGF5UmVnaW9ucy5oIgogI2luY2x1ZGUgIkRlYnVnUGFnZU92ZXJsYXlzLmgiCiAjaW5j
bHVkZSAiRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCIKICNpbmNsdWRlICJEaWFnbm9zdGljTG9n
Z2luZ0tleXMuaCIKQEAgLTk0NCw3ICs5NDUsNyBAQCB2b2lkIFBhZ2U6OnNldEVkaXRhYmxlUmVn
aW9uRW5hYmxlZChib29sCiAKIGJvb2wgUGFnZTo6c2hvdWxkQnVpbGRFZGl0YWJsZVJlZ2lvbigp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1faXNFZGl0YWJsZVJlZ2lvbkVuYWJsZWQgfHwgbV9zZXR0
aW5ncy0+dmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMoKSAmIEVkaXRhYmxlRWxlbWVudFJlZ2lv
bjsKKyAgICByZXR1cm4gbV9pc0VkaXRhYmxlUmVnaW9uRW5hYmxlZCB8fCBtX3NldHRpbmdzLT52
aXNpYmxlRGVidWdPdmVybGF5UmVnaW9ucygpICYgRGVidWdPdmVybGF5UmVnaW9uczo6RWRpdGFi
bGVFbGVtZW50UmVnaW9uOwogfQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2VjdXJpdHlPcmlnaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2Vj
dXJpdHlPcmlnaW4uY3BwCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdl
L1NlY3VyaXR5T3JpZ2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDA0LDE0ICs0MDQsMTQgQEAg
Ym9vbCBTZWN1cml0eU9yaWdpbjo6Y2FuQWNjZXNzU3RvcmFnZShjbwogICAgIGlmIChpc0xvY2Fs
KCkgJiYgIW5lZWRzU3RvcmFnZUFjY2Vzc0Zyb21GaWxlVVJMc1F1aXJrKCkgJiYgIW1fdW5pdmVy
c2FsQWNjZXNzICYmIHNob3VsZEFsbG93RnJvbVRoaXJkUGFydHkgIT0gQWx3YXlzQWxsb3dGcm9t
VGhpcmRQYXJ0eSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAotICAgIGlmIChtX3N0b3Jh
Z2VCbG9ja2luZ1BvbGljeSA9PSBCbG9ja0FsbFN0b3JhZ2UpCisgICAgaWYgKG1fc3RvcmFnZUJs
b2NraW5nUG9saWN5ID09IFN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QmxvY2tBbGwpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIC8vIEZJWE1FOiBUaGlzIGNoZWNrIHNob3VsZCBiZSByZXBs
YWNlZCB3aXRoIGFuIEFTU0VSVCBvbmNlIHdlIGNhbiBndWFyYW50ZWUgdGhhdCB0b3BPcmlnaW4g
aXMgbm90IG51bGwuCiAgICAgaWYgKCF0b3BPcmlnaW4pCiAgICAgICAgIHJldHVybiB0cnVlOwog
Ci0gICAgaWYgKHRvcE9yaWdpbi0+bV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgPT0gQmxvY2tBbGxT
dG9yYWdlKQorICAgIGlmICh0b3BPcmlnaW4tPm1fc3RvcmFnZUJsb2NraW5nUG9saWN5ID09IFN0
b3JhZ2VCbG9ja2luZ1BvbGljeTo6QmxvY2tBbGwpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIGlmIChzaG91bGRBbGxvd0Zyb21UaGlyZFBhcnR5ID09IEFsd2F5c0FsbG93RnJvbVRoaXJk
UGFydHkpCkBAIC00MjAsNyArNDIwLDcgQEAgYm9vbCBTZWN1cml0eU9yaWdpbjo6Y2FuQWNjZXNz
U3RvcmFnZShjbwogICAgIGlmIChtX3VuaXZlcnNhbEFjY2VzcykKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAKLSAgICBpZiAoKG1fc3RvcmFnZUJsb2NraW5nUG9saWN5ID09IEJsb2NrVGhpcmRQYXJ0
eVN0b3JhZ2UgfHwgdG9wT3JpZ2luLT5tX3N0b3JhZ2VCbG9ja2luZ1BvbGljeSA9PSBCbG9ja1Ro
aXJkUGFydHlTdG9yYWdlKSAmJiAhdG9wT3JpZ2luLT5pc1NhbWVPcmlnaW5BcygqdGhpcykpCisg
ICAgaWYgKChtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeSA9PSBTdG9yYWdlQmxvY2tpbmdQb2xpY3k6
OkJsb2NrVGhpcmRQYXJ0eSB8fCB0b3BPcmlnaW4tPm1fc3RvcmFnZUJsb2NraW5nUG9saWN5ID09
IFN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QmxvY2tUaGlyZFBhcnR5KSAmJiAhdG9wT3JpZ2luLT5p
c1NhbWVPcmlnaW5BcygqdGhpcykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVy
biB0cnVlOwpAQCAtNDg4LDcgKzQ4OCw3IEBAIHZvaWQgU2VjdXJpdHlPcmlnaW46OmdyYW50U3Rv
cmFnZUFjY2Vzc0YKIAogU3RyaW5nIFNlY3VyaXR5T3JpZ2luOjpkb21haW5Gb3JDYWNoZVBhcnRp
dGlvbigpIGNvbnN0CiB7Ci0gICAgaWYgKG1fc3RvcmFnZUJsb2NraW5nUG9saWN5ICE9IEJsb2Nr
VGhpcmRQYXJ0eVN0b3JhZ2UpCisgICAgaWYgKG1fc3RvcmFnZUJsb2NraW5nUG9saWN5ICE9IFN0
b3JhZ2VCbG9ja2luZ1BvbGljeTo6QmxvY2tUaGlyZFBhcnR5KQogICAgICAgICByZXR1cm4gZW1w
dHlTdHJpbmcoKTsKIAogICAgIGlmIChpc0hUVFBGYW1pbHkoKSkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL1NlY3VyaXR5T3JpZ2luLmgJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2VjdXJpdHlPcmlnaW4uaAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAog
I3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKKyNpbmNsdWRl
ICJTdG9yYWdlQmxvY2tpbmdQb2xpY3kuaCIKICNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgog
I2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgpAQCAtNDMsMTIgKzQ0LDYgQEAgcHVibGljOgogICAgICAgICBBc2sKICAg
ICB9OwogCi0gICAgZW51bSBTdG9yYWdlQmxvY2tpbmdQb2xpY3kgewotICAgICAgICBBbGxvd0Fs
bFN0b3JhZ2UgPSAwLAotICAgICAgICBCbG9ja1RoaXJkUGFydHlTdG9yYWdlLAotICAgICAgICBC
bG9ja0FsbFN0b3JhZ2UKLSAgICB9OwotCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxT
ZWN1cml0eU9yaWdpbj4gY3JlYXRlKGNvbnN0IFVSTCYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBSZWY8U2VjdXJpdHlPcmlnaW4+IGNyZWF0ZVVuaXF1ZSgpOwogCkBAIC0yNDMsNyArMjM4
LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fdW5pdmVyc2FsQWNjZXNzIHsgZmFsc2UgfTsKICAg
ICBib29sIG1fZG9tYWluV2FzU2V0SW5ET00geyBmYWxzZSB9OwogICAgIGJvb2wgbV9jYW5Mb2Fk
TG9jYWxSZXNvdXJjZXMgeyBmYWxzZSB9OwotICAgIFN0b3JhZ2VCbG9ja2luZ1BvbGljeSBtX3N0
b3JhZ2VCbG9ja2luZ1BvbGljeSB7IEFsbG93QWxsU3RvcmFnZSB9OworICAgIFN0b3JhZ2VCbG9j
a2luZ1BvbGljeSBtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeSB7IFN0b3JhZ2VCbG9ja2luZ1BvbGlj
eTo6QWxsb3dBbGwgfTsKICAgICBib29sIG1fZW5mb3JjZXNGaWxlUGF0aFNlcGFyYXRpb24geyBm
YWxzZSB9OwogICAgIGJvb2wgbV9uZWVkc1N0b3JhZ2VBY2Nlc3NGcm9tRmlsZVVSTHNRdWlyayB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzUG90ZW50aWFsbHlUcnVzdHdvcnRoeSB7IGZhbHNlIH07
CkBAIC0zMDgsMTcgKzMwMywzIEBAIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IGlubGluZSBSZWZQ
dHI8U2UKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi1uYW1lc3BhY2UgV1RGIHsKLQot
dGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6U3Rv
cmFnZUJsb2NraW5nUG9saWN5PiB7Ci0gICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKLSAg
ICAgICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSwKLSAg
ICAgICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QWxs
b3dBbGxTdG9yYWdlLAotICAgICAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJs
b2NraW5nUG9saWN5OjpCbG9ja1RoaXJkUGFydHlTdG9yYWdlLAotICAgICAgICBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5OjpCbG9ja0FsbFN0b3JhZ2UKLSAg
ICA+OwotfTsKLQotCi19IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MueWFtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLnlhbWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MueWFtbAkod29ya2luZyBjb3B5KQpAQCAtOTQsNyArOTQsNyBAQCBEYXRhRGV0ZWN0b3JUeXBl
czoKICAgY29uZGl0aW9uOiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCiAgIGRlZmF1bHRWYWx1ZToK
ICAgICBXZWJDb3JlOgotICAgICAgZGVmYXVsdDoKKyAgICAgIGRlZmF1bHQ6IERhdGFEZXRlY3Rv
clR5cGVzOjpOb25lCiAKIERlZmF1bHRWaWRlb1Bvc3RlclVSTDoKICAgY29tbWVudDogPi0KQEAg
LTEyNSwxOCArMTI1LDE4IEBAIEVkaXRhYmxlTGlua0JlaGF2aW9yOgogICByZWZpbmVkVHlwZTog
RWRpdGFibGVMaW5rQmVoYXZpb3IKICAgZGVmYXVsdFZhbHVlOgogICAgIFdlYkNvcmU6Ci0gICAg
ICBkZWZhdWx0OiBFZGl0YWJsZUxpbmtEZWZhdWx0QmVoYXZpb3IKKyAgICAgIGRlZmF1bHQ6IEVk
aXRhYmxlTGlua0JlaGF2aW9yOjpEZWZhdWx0CiAKIEVkaXRpbmdCZWhhdmlvclR5cGU6CiAgIHR5
cGU6IHVpbnQzMl90CiAgIHJlZmluZWRUeXBlOiBFZGl0aW5nQmVoYXZpb3JUeXBlCiAgIGRlZmF1
bHRWYWx1ZToKICAgICBXZWJDb3JlOgotICAgICAgUExBVEZPUk0oSU9TX0ZBTUlMWSk6IEVkaXRp
bmdJT1NCZWhhdmlvcgotICAgICAgT1MoREFSV0lOKTogRWRpdGluZ01hY0JlaGF2aW9yCi0gICAg
ICBPUyhXSU5ET1dTKTogRWRpdGluZ1dpbmRvd3NCZWhhdmlvcgotICAgICAgT1MoVU5JWCk6IEVk
aXRpbmdVbml4QmVoYXZpb3IKLSAgICAgIGRlZmF1bHQ6IEVkaXRpbmdNYWNCZWhhdmlvcgorICAg
ICAgUExBVEZPUk0oSU9TX0ZBTUlMWSk6IEVkaXRpbmdCZWhhdmlvclR5cGU6OklvcworICAgICAg
T1MoREFSV0lOKTogRWRpdGluZ0JlaGF2aW9yVHlwZTo6TWFjCisgICAgICBPUyhXSU5ET1dTKTog
RWRpdGluZ0JlaGF2aW9yVHlwZTo6V2luZG93cworICAgICAgT1MoVU5JWCk6IEVkaXRpbmdCZWhh
dmlvclR5cGU6OlVuaXgKKyAgICAgIGRlZmF1bHQ6IEVkaXRpbmdCZWhhdmlvclR5cGU6Ok1hYwog
CiBGaXhlZEJhY2tncm91bmRzUGFpbnRSZWxhdGl2ZVRvRG9jdW1lbnQ6CiAgIHR5cGU6IGJvb2wK
QEAgLTIyOCw2ICsyMjgsMTMgQEAgR2VvbG9jYXRpb25GbG9vckxldmVsRW5hYmxlZDoKICAgICBX
ZWJDb3JlOgogICAgICAgZGVmYXVsdDogdHJ1ZQogCitIVE1MUGFyc2VyU2NyaXB0aW5nRmxhZ1Bv
bGljeToKKyAgdHlwZTogdWludDMyX3QKKyAgcmVmaW5lZFR5cGU6IEhUTUxQYXJzZXJTY3JpcHRp
bmdGbGFnUG9saWN5CisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJDb3JlOgorICAgICAgZGVmYXVs
dDogSFRNTFBhcnNlclNjcmlwdGluZ0ZsYWdQb2xpY3k6Ok9ubHlJZlNjcmlwdElzRW5hYmxlZAor
CiBJZGVtcG90ZW50TW9kZUF1dG9zaXppbmdPbmx5SG9ub3JzUGVyY2VudGFnZXM6CiAgIHR5cGU6
IGJvb2wKICAgY29uZGl0aW9uOiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQpAQCAtMzg5LDEzICsz
OTYsNiBAQCBOZWVkc0RlZmVyS2V5RG93bkFuZEtleVByZXNzVGltZXJzVW50aWxOCiAgICAgV2Vi
Q29yZToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKLVBhcnNlclNjcmlwdGluZ0ZsYWdQb2xpY3k6
Ci0gIHR5cGU6IHVpbnQzMl90Ci0gIHJlZmluZWRUeXBlOiBQYXJzZXJTY3JpcHRpbmdGbGFnUG9s
aWN5Ci0gIGRlZmF1bHRWYWx1ZToKLSAgICBXZWJDb3JlOgotICAgICAgZGVmYXVsdDogUGFyc2Vy
U2NyaXB0aW5nRmxhZ1BvbGljeTo6T25seUlmU2NyaXB0SXNFbmFibGVkCi0KIFBheW1lbnRSZXF1
ZXN0RW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBjb25kaXRpb246IEVOQUJMRShQQVlNRU5UX1JF
UVVFU1QpCkBAIC00MDgsNyArNDA4LDggQEAgUERGSW1hZ2VDYWNoaW5nUG9saWN5OgogICByZWZp
bmVkVHlwZTogUERGSW1hZ2VDYWNoaW5nUG9saWN5CiAgIGRlZmF1bHRWYWx1ZToKICAgICBXZWJD
b3JlOgotICAgICAgZGVmYXVsdDogUERGSW1hZ2VDYWNoaW5nRGVmYXVsdAorICAgICAgUExBVEZP
Uk0oSU9TX0ZBTUlMWSk6IFBERkltYWdlQ2FjaGluZ1BvbGljeTo6QmVsb3dNZW1vcnlMaW1pdAor
ICAgICAgZGVmYXVsdDogUERGSW1hZ2VDYWNoaW5nUG9saWN5OjpFbmFibGVkCiAKIFByZWZlck1J
TUVUeXBlRm9ySW1hZ2VzOgogICB0eXBlOiBib29sCkBAIC00ODksMTEgKzQ5MCwxMSBAQCBTdG9y
YWdlQWNjZXNzQVBJUGVyUGFnZVNjb3BlRW5hYmxlZDoKIAogU3RvcmFnZUJsb2NraW5nUG9saWN5
OgogICB0eXBlOiB1aW50MzJfdAotICByZWZpbmVkVHlwZTogU2VjdXJpdHlPcmlnaW46OlN0b3Jh
Z2VCbG9ja2luZ1BvbGljeQorICByZWZpbmVkVHlwZTogU3RvcmFnZUJsb2NraW5nUG9saWN5CiAg
IHdlYmNvcmVPbkNoYW5nZTogc3RvcmFnZUJsb2NraW5nUG9saWN5Q2hhbmdlZAogICBkZWZhdWx0
VmFsdWU6CiAgICAgV2ViQ29yZToKLSAgICAgIGRlZmF1bHQ6IFNlY3VyaXR5T3JpZ2luOjpBbGxv
d0FsbFN0b3JhZ2UKKyAgICAgIGRlZmF1bHQ6IFN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QWxsb3dB
bGwKIAogU3lzdGVtTGF5b3V0RGlyZWN0aW9uOgogICB0eXBlOiB1aW50MzJfdApAQCAtNTIzLDcg
KzUyNCw3IEBAIFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3I6CiAgIHJlZmlu
ZWRUeXBlOiBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yCiAgIGRlZmF1bHRW
YWx1ZToKICAgICBXZWJDb3JlOgotICAgICAgZGVmYXVsdDogVGV4dERpcmVjdGlvblN1Ym1lbnVB
dXRvbWF0aWNhbGx5SW5jbHVkZWQKKyAgICAgIGRlZmF1bHQ6IFRleHREaXJlY3Rpb25TdWJtZW51
SW5jbHVzaW9uQmVoYXZpb3I6OkF1dG9tYXRpY2FsbHlJbmNsdWRlZAogCiBUaW1lV2l0aG91dE1v
dXNlTW92ZW1lbnRCZWZvcmVIaWRpbmdDb250cm9sczoKICAgdHlwZTogZG91YmxlCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3NCYXNlLmgJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3NCYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDc0ICsyOCwz
NyBAQAogCiAjaW5jbHVkZSAiQ2xpcGJvYXJkQWNjZXNzUG9saWN5LmgiCiAjaW5jbHVkZSAiQ29u
dGVudFR5cGUuaCIKLSNpbmNsdWRlICJFZGl0aW5nQmVoYXZpb3JUeXBlcy5oIgotI2luY2x1ZGUg
IkludFNpemUuaCIKLSNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIkVkaXRh
YmxlTGlua0JlaGF2aW9yLmgiCisjaW5jbHVkZSAiRWRpdGluZ0JlaGF2aW9yVHlwZS5oIgorI2lu
Y2x1ZGUgIkZvbnRMb2FkVGltaW5nT3ZlcnJpZGUuaCIKKyNpbmNsdWRlICJGb250UmVuZGVyaW5n
TW9kZS5oIgorI2luY2x1ZGUgIkZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZS5oIgorI2luY2x1ZGUg
IkZyYW1lRmxhdHRlbmluZy5oIgorI2luY2x1ZGUgIkhUTUxQYXJzZXJTY3JpcHRpbmdGbGFnUG9s
aWN5LmgiCisjaW5jbHVkZSAiUERGSW1hZ2VDYWNoaW5nUG9saWN5LmgiCisjaW5jbHVkZSAiU3Rv
cmFnZUJsb2NraW5nUG9saWN5LmgiCiAjaW5jbHVkZSAiU3RvcmFnZU1hcC5oIgotI2luY2x1ZGUg
IlRleHRGbGFncy5oIgorI2luY2x1ZGUgIlRleHREaXJlY3Rpb24uaCIKKyNpbmNsdWRlICJUZXh0
RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIK
LSNpbmNsdWRlICJXcml0aW5nTW9kZS5oIgorI2luY2x1ZGUgIlVzZXJJbnRlcmZhY2VEaXJlY3Rp
b25Qb2xpY3kuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9SdW50aW1lRmxhZ3MuaD4KICNp
bmNsdWRlIDx1bmljb2RlL3VzY3JpcHQuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KICNpbmNs
dWRlIDx3dGYvVVJMLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L0F0b21TdHJpbmcuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nSGFzaC5oPgor
CisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorI2luY2x1ZGUgIkRhdGFEZXRlY3RvclR5cGVz
LmgiCisjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGb250R2VuZXJpY0Zh
bWlsaWVzOwogY2xhc3MgUGFnZTsKIAotZW51bSBjbGFzcyBEYXRhRGV0ZWN0b3JUeXBlcyA6IHVp
bnQzMl90OwotCi1lbnVtIEVkaXRhYmxlTGlua0JlaGF2aW9yIHsKLSAgICBFZGl0YWJsZUxpbmtE
ZWZhdWx0QmVoYXZpb3IsCi0gICAgRWRpdGFibGVMaW5rQWx3YXlzTGl2ZSwKLSAgICBFZGl0YWJs
ZUxpbmtPbmx5TGl2ZVdpdGhTaGlmdEtleSwKLSAgICBFZGl0YWJsZUxpbmtMaXZlV2hlbk5vdEZv
Y3VzZWQsCi0gICAgRWRpdGFibGVMaW5rTmV2ZXJMaXZlCi19OwotCi1lbnVtIFRleHREaXJlY3Rp
b25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IgewotICAgIFRleHREaXJlY3Rpb25TdWJtZW51TmV2
ZXJJbmNsdWRlZCwKLSAgICBUZXh0RGlyZWN0aW9uU3VibWVudUF1dG9tYXRpY2FsbHlJbmNsdWRl
ZCwKLSAgICBUZXh0RGlyZWN0aW9uU3VibWVudUFsd2F5c0luY2x1ZGVkCi19OwotCi1lbnVtIERl
YnVnT3ZlcmxheVJlZ2lvbkZsYWdzIHsKLSAgICBOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbiA9IDEg
PDwgMCwKLSAgICBXaGVlbEV2ZW50SGFuZGxlclJlZ2lvbiA9IDEgPDwgMSwKLSAgICBUb3VjaEFj
dGlvblJlZ2lvbiA9IDEgPDwgMiwKLSAgICBFZGl0YWJsZUVsZW1lbnRSZWdpb24gPSAxIDw8IDMs
Ci19OwotCi1lbnVtIGNsYXNzIFVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3kgewotICAgIENv
bnRlbnQsCi0gICAgU3lzdGVtCi19OwotCi1lbnVtIFBERkltYWdlQ2FjaGluZ1BvbGljeSB7Ci0g
ICAgUERGSW1hZ2VDYWNoaW5nRW5hYmxlZCwKLSAgICBQREZJbWFnZUNhY2hpbmdCZWxvd01lbW9y
eUxpbWl0LAotICAgIFBERkltYWdlQ2FjaGluZ0Rpc2FibGVkLAotICAgIFBERkltYWdlQ2FjaGlu
Z0NsaXBCb3VuZHNPbmx5LAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgUERGSW1hZ2VD
YWNoaW5nRGVmYXVsdCA9IFBERkltYWdlQ2FjaGluZ0JlbG93TWVtb3J5TGltaXQKLSNlbHNlCi0g
ICAgUERGSW1hZ2VDYWNoaW5nRGVmYXVsdCA9IFBERkltYWdlQ2FjaGluZ0VuYWJsZWQKLSNlbmRp
ZgotfTsKLQotZW51bSBjbGFzcyBGcmFtZUZsYXR0ZW5pbmcgewotICAgIERpc2FibGVkLAotICAg
IEVuYWJsZWRGb3JOb25GdWxsU2NyZWVuSUZyYW1lcywKLSAgICBGdWxseUVuYWJsZWQKLX07Ci0K
LXR5cGVkZWYgdW5zaWduZWQgRGVidWdPdmVybGF5UmVnaW9uczsKLQogY2xhc3MgU2V0dGluZ3NC
YXNlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTZXR0aW5nc0Jhc2UpOyBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKQEAgLTEwMywxMCArNjYsNiBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIHBhZ2VEZXN0cm95ZWQoKSB7IG1fcGFnZSA9IG51bGxwdHI7IH0KIAotICAgIGVudW0g
Y2xhc3MgRm9udExvYWRUaW1pbmdPdmVycmlkZSA6IHVpbnQ4X3QgeyBOb25lLCBCbG9jaywgU3dh
cCwgRmFpbHVyZSB9OwotICAgIGVudW0gY2xhc3MgUGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeSA6
IHVpbnQ4X3QgeyBPbmx5SWZTY3JpcHRJc0VuYWJsZWQsIEVuYWJsZWQgfTsKLSAgICBlbnVtIGNs
YXNzIEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZSA6IHVpbnQ4X3QgeyBTeXN0ZW0sIE9uLCBPZmYg
fTsKLQogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IGJvb2wgcGxhdGZvcm1EZWZhdWx0TWVkaWFTb3VyY2VFbmFibGVkKCk7CiAjZW5kaWYKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU3RvcmFnZUJsb2NraW5nUG9saWN5LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGFnZS9TdG9yYWdlQmxvY2tpbmdQb2xpY3kuaAkobm9uZXhpc3Rl
bnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1N0b3JhZ2VCbG9ja2luZ1BvbGljeS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51
bSBjbGFzcyBTdG9yYWdlQmxvY2tpbmdQb2xpY3kgOiB1aW50OF90IHsKKyAgICBBbGxvd0FsbCA9
IDAsCisgICAgQmxvY2tUaGlyZFBhcnR5LAorICAgIEJsb2NrQWxsCit9OworCit9CisKK25hbWVz
cGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlN0b3Jh
Z2VCbG9ja2luZ1BvbGljeT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAg
ICAgIFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSwKKyAgICAgICAgV2ViQ29yZTo6U3Rv
cmFnZUJsb2NraW5nUG9saWN5OjpBbGxvd0FsbCwKKyAgICAgICAgV2ViQ29yZTo6U3RvcmFnZUJs
b2NraW5nUG9saWN5OjpCbG9ja1RoaXJkUGFydHksCisgICAgICAgIFdlYkNvcmU6OlN0b3JhZ2VC
bG9ja2luZ1BvbGljeTo6QmxvY2tBbGwKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RG
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1RleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9u
QmVoYXZpb3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1RleHREaXJlY3Rp
b25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wYWdlL1RleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1
c2lvbkJlaGF2aW9yIDogdWludDhfdCB7CisgICAgTmV2ZXJJbmNsdWRlZCwKKyAgICBBdXRvbWF0
aWNhbGx5SW5jbHVkZWQsCisgICAgQWx3YXlzSW5jbHVkZWQKK307CisKK30KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvVXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvVXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeS5oCShu
b25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvVXNlckludGVyZmFjZURpcmVjdGlv
blBvbGljeS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFVzZXJJbnRl
cmZhY2VEaXJlY3Rpb25Qb2xpY3kgOiBib29sIHsKKyAgICBDb250ZW50LAorICAgIFN5c3RlbQor
fTsKKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmgJKHJldmlzaW9uIDI2
OTgzMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkZsb2F0U2l6
ZS5oIgorI2luY2x1ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgiCiAjaW5jbHVkZSAiSW1hZ2VPcmll
bnRhdGlvbi5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJQYXRoLmgiCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRp
b24uaAkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udERlc2NyaXB0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI0LDYgKzI0LDcgQEAKIAog
I3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJGb250UmVuZGVyaW5nTW9kZS5oIgogI2luY2x1ZGUg
IkZvbnRTZWxlY3Rpb25BbGdvcml0aG0uaCIKICNpbmNsdWRlICJGb250VGFnZ2VkU2V0dGluZ3Mu
aCIKICNpbmNsdWRlICJUZXh0RmxhZ3MuaCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuY3BwCShyZXZpc2lv
biAyNjk4MzApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1
bWVudEltYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAxLDcgKzIwMSw3IEBAIHZvaWQgUERG
RG9jdW1lbnRJbWFnZTo6ZGVjb2RlZFNpemVDaGFuZ2UKIHZvaWQgUERGRG9jdW1lbnRJbWFnZTo6
dXBkYXRlQ2FjaGVkSW1hZ2VJZk5lZWRlZChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0KQogewogICAgIC8v
IENsaXBwZWQgb3B0aW9uIGlzIGZvciB0ZXN0aW5nIG9ubHkuIEZvcmNlIHJlLWNhY2hpbmcgdGhl
IFBERiB3aXRoIGVhY2ggZHJhdy4KLSAgICBib29sIGZvcmNlVXBkYXRlQ2FjaGVkSW1hZ2UgPSBt
X3BkZkltYWdlQ2FjaGluZ1BvbGljeSA9PSBQREZJbWFnZUNhY2hpbmdDbGlwQm91bmRzT25seSB8
fCAhbV9jYWNoZWRJbWFnZUJ1ZmZlcjsKKyAgICBib29sIGZvcmNlVXBkYXRlQ2FjaGVkSW1hZ2Ug
PSBtX3BkZkltYWdlQ2FjaGluZ1BvbGljeSA9PSBQREZJbWFnZUNhY2hpbmdQb2xpY3k6OkNsaXBC
b3VuZHNPbmx5IHx8ICFtX2NhY2hlZEltYWdlQnVmZmVyOwogICAgIGlmICghZm9yY2VVcGRhdGVD
YWNoZWRJbWFnZSAmJiBjYWNoZVBhcmFtZXRlcnNNYXRjaChjb250ZXh0LCBkc3RSZWN0LCBzcmNS
ZWN0KSkgewogICAgICAgICAvLyBBZGp1c3QgdGhlIHZpZXctcG9ydCByZWN0YW5nbGVzIGlmIG5v
IHJlLWNhY2hpbmcgd2lsbCBoYXBwZW4uCiAgICAgICAgIG1fY2FjaGVkSW1hZ2VSZWN0Lm1vdmUo
RmxvYXRTaXplKGRzdFJlY3QubG9jYXRpb24oKSAtIG1fY2FjaGVkRGVzdGluYXRpb25SZWN0Lmxv
Y2F0aW9uKCkpKTsKQEAgLTIxMCwxNyArMjEwLDE3IEBAIHZvaWQgUERGRG9jdW1lbnRJbWFnZTo6
dXBkYXRlQ2FjaGVkSW1hZ2UKICAgICB9CiAKICAgICBzd2l0Y2ggKG1fcGRmSW1hZ2VDYWNoaW5n
UG9saWN5KSB7Ci0gICAgY2FzZSBQREZJbWFnZUNhY2hpbmdEaXNhYmxlZDoKKyAgICBjYXNlIFBE
RkltYWdlQ2FjaGluZ1BvbGljeTo6RGlzYWJsZWQ6CiAgICAgICAgIHJldHVybjsKLSAgICBjYXNl
IFBERkltYWdlQ2FjaGluZ0JlbG93TWVtb3J5TGltaXQ6CisgICAgY2FzZSBQREZJbWFnZUNhY2hp
bmdQb2xpY3k6OkJlbG93TWVtb3J5TGltaXQ6CiAgICAgICAgIC8vIEtlZXAgdGhlIG1lbW9yeSB1
c2VkIGJ5IHRoZSBjYWNoZWQgaW1hZ2UgYmVsb3cgc29tZSB0aHJlc2hvbGQsIG90aGVyd2lzZSBX
ZWJLaXQgcHJvY2VzcwogICAgICAgICAvLyB3aWxsIGpldHNhbSBpZiBpdCBleGNlZWRzIGl0cyBt
ZW1vcnkgbGltaXQuIE9ubHkgYSByZWN0YW5nbGUgZnJvbSB0aGUgUERGIG1heSBiZSBjYWNoZWQu
CiAgICAgICAgIG1fY2FjaGVkSW1hZ2VSZWN0ID0gY2FjaGVkSW1hZ2VSZWN0KGNvbnRleHQsIGRz
dFJlY3QpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFBERkltYWdlQ2FjaGluZ0NsaXBCb3Vu
ZHNPbmx5OgorICAgIGNhc2UgUERGSW1hZ2VDYWNoaW5nUG9saWN5OjpDbGlwQm91bmRzT25seToK
ICAgICAgICAgbV9jYWNoZWRJbWFnZVJlY3QgPSBpbnRlcnNlY3Rpb24oY29udGV4dC5jbGlwQm91
bmRzKCksIGRzdFJlY3QpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFBERkltYWdlQ2FjaGlu
Z0VuYWJsZWQ6CisgICAgY2FzZSBQREZJbWFnZUNhY2hpbmdQb2xpY3k6OkVuYWJsZWQ6CiAgICAg
ICAgIG1fY2FjaGVkSW1hZ2VSZWN0ID0gZHN0UmVjdDsKICAgICAgICAgYnJlYWs7CiAgICAgfQpA
QCAtMjI4LDcgKzIyOCw3IEBAIHZvaWQgUERGRG9jdW1lbnRJbWFnZTo6dXBkYXRlQ2FjaGVkSW1h
Z2UKICAgICBGbG9hdFNpemUgY2FjaGVkSW1hZ2VTaXplID0gRmxvYXRSZWN0KGVuY2xvc2luZ0lu
dFJlY3QobV9jYWNoZWRJbWFnZVJlY3QpKS5zaXplKCk7CiAKICAgICAvLyBDYWNoZSB0aGUgUERG
IGltYWdlIG9ubHkgaWYgdGhlIHNpemUgb2YgdGhlIG5ldyBpbWFnZSB3b24ndCBleGNlZWQgdGhl
IGNhY2hlIHRocmVzaG9sZC4KLSAgICBpZiAobV9wZGZJbWFnZUNhY2hpbmdQb2xpY3kgPT0gUERG
SW1hZ2VDYWNoaW5nQmVsb3dNZW1vcnlMaW1pdCkgeworICAgIGlmIChtX3BkZkltYWdlQ2FjaGlu
Z1BvbGljeSA9PSBQREZJbWFnZUNhY2hpbmdQb2xpY3k6OkJlbG93TWVtb3J5TGltaXQpIHsKICAg
ICAgICAgSW50U2l6ZSBzY2FsZWRTaXplID0gSW1hZ2VCdWZmZXI6OmNvbXBhdGlibGVCdWZmZXJT
aXplKGNhY2hlZEltYWdlU2l6ZSwgY29udGV4dCk7CiAgICAgICAgIGlmIChzX2FsbERlY29kZWRE
YXRhU2l6ZSArIHNjYWxlZFNpemUudW5jbGFtcGVkQXJlYSgpICogNCAtIG1fY2FjaGVkQnl0ZXMg
PiBzX21heERlY29kZWREYXRhU2l6ZSkgewogICAgICAgICAgICAgZGVzdHJveURlY29kZWREYXRh
KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1bWVu
dEltYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvUERGRG9jdW1lbnRJbWFnZS5oCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1bWVudEltYWdlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTk0LDcgKzk0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUNhY2hlZEltYWdlSWZO
ZWVkZWQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHNyY1JlY3QpOwogICAgIGJvb2wgY2FjaGVQYXJhbWV0ZXJzTWF0Y2goR3JhcGhp
Y3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QpIGNvbnN0OwogCi0gICAgUERGSW1hZ2VDYWNoaW5nUG9saWN5IG1fcGRmSW1hZ2VDYWNo
aW5nUG9saWN5IHsgUERGSW1hZ2VDYWNoaW5nRGVmYXVsdCB9OworICAgIFBERkltYWdlQ2FjaGlu
Z1BvbGljeSBtX3BkZkltYWdlQ2FjaGluZ1BvbGljeSB7IFBERkltYWdlQ2FjaGluZ1BvbGljeTo6
RGVmYXVsdCB9OwogCiAjaWYgVVNFKFBERktJVF9GT1JfUERGRE9DVU1FTlRJTUFHRSkKICAgICBS
ZXRhaW5QdHI8UERGRG9jdW1lbnQ+IG1fZG9jdW1lbnQ7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L0ZvbnRSZW5kZXJpbmdNb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9Gb250UmVuZGVyaW5nTW9kZS5oCShub25leGlzdGVudCkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvRm9udFJlbmRlcmluZ01vZGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIFRo
aXMgc2V0dGluZyBpcyB1c2VkIHRvIHByb3ZpZGUgd2F5cyBvZiBzd2l0Y2hpbmcgYmV0d2VlbiBt
dWx0aXBsZSByZW5kZXJpbmcgbW9kZXMgdGhhdCBtYXkgaGF2ZSBkaWZmZXJlbnQKKy8vIG1ldHJp
Y3MuIEl0IGlzIHVzZWQgdG8gc3dpdGNoIGJldHdlZW4gQ0cgYW5kIEdESSB0ZXh0IG9uIFdpbmRv
d3MuCitlbnVtIGNsYXNzIEZvbnRSZW5kZXJpbmdNb2RlIDogdWludDhfdCB7CisgICAgTm9ybWFs
LAorICAgIEFsdGVybmF0ZQorfTsKKworfQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8
PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpGb250UmVuZGVyaW5nTW9kZT4geworICAgIHVz
aW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OkZvbnRSZW5kZXJpbmdN
b2RlLAorICAgICAgICBXZWJDb3JlOjpGb250UmVuZGVyaW5nTW9kZTo6Tm9ybWFsLAorICAgICAg
ICBXZWJDb3JlOjpGb250UmVuZGVyaW5nTW9kZTo6QWx0ZXJuYXRlCisgICAgPjsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdURgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0
RGlyZWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9U
ZXh0RGlyZWN0aW9uLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9UZXh0RGlyZWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xh
c3MgVGV4dERpcmVjdGlvbiA6IGJvb2wgeyBMVFIsIFJUTCB9OworCitpbmxpbmUgYm9vbCBpc0xl
ZnRUb1JpZ2h0RGlyZWN0aW9uKFRleHREaXJlY3Rpb24gZGlyZWN0aW9uKQoreworICAgIHJldHVy
biBkaXJlY3Rpb24gPT0gVGV4dERpcmVjdGlvbjo6TFRSOworfQorCit9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRGbGFncy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEZsYWdzLmgJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEZsYWdzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTQ0LDEzICs0NCw2IEBAIGVudW0gY2xhc3MgRm9udFNtb290aGluZ01vZGUgOiB1aW50OF90IHsK
ICAgICBTdWJwaXhlbEFudGlhbGlhc2VkCiB9OwogCi0vLyBUaGlzIHNldHRpbmcgaXMgdXNlZCB0
byBwcm92aWRlIHdheXMgb2Ygc3dpdGNoaW5nIGJldHdlZW4gbXVsdGlwbGUgcmVuZGVyaW5nIG1v
ZGVzIHRoYXQgbWF5IGhhdmUgZGlmZmVyZW50Ci0vLyBtZXRyaWNzLiBJdCBpcyB1c2VkIHRvIHN3
aXRjaCBiZXR3ZWVuIENHIGFuZCBHREkgdGV4dCBvbiBXaW5kb3dzLgotZW51bSBjbGFzcyBGb250
UmVuZGVyaW5nTW9kZSA6IHVpbnQ4X3QgewotICAgIE5vcm1hbCwKLSAgICBBbHRlcm5hdGUKLX07
Ci0KIGVudW0gY2xhc3MgRm9udE9yaWVudGF0aW9uIDogdWludDhfdCB7CiAgICAgSG9yaXpvbnRh
bCwKICAgICBWZXJ0aWNhbApAQCAtNjQ3LDE0ICs2NDAsNiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBF
bnVtVHJhaXRzPFdlYkNvcmU6OkZvCiAgICAgPjsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IEVu
dW1UcmFpdHM8V2ViQ29yZTo6Rm9udFJlbmRlcmluZ01vZGU+IHsKLSAgICB1c2luZyB2YWx1ZXMg
PSBFbnVtVmFsdWVzPAotICAgIFdlYkNvcmU6OkZvbnRSZW5kZXJpbmdNb2RlLAotICAgIFdlYkNv
cmU6OkZvbnRSZW5kZXJpbmdNb2RlOjpOb3JtYWwsCi0gICAgV2ViQ29yZTo6Rm9udFJlbmRlcmlu
Z01vZGU6OkFsdGVybmF0ZQotICAgID47Ci19OwotCiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJh
aXRzPFdlYkNvcmU6OkZvbnRPcmllbnRhdGlvbj4gewogICAgIHVzaW5nIHZhbHVlcyA9IEVudW1W
YWx1ZXM8CiAgICAgV2ViQ29yZTo6Rm9udE9yaWVudGF0aW9uLApJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9Xcml0aW5nTW9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvV3JpdGluZ01vZGUuaAkocmV2aXNpb24gMjY5ODMwKQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Xcml0aW5nTW9kZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zMSwxOCArMzEsMTEgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJUZXh0RGlyZWN0
aW9uLmgiCiAjaW5jbHVkZSA8YXJyYXk+Ci0jaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIGNsYXNzIFRleHREaXJlY3Rpb24gOiBib29sIHsg
TFRSLCBSVEwgfTsKLQotaW5saW5lIGJvb2wgaXNMZWZ0VG9SaWdodERpcmVjdGlvbihUZXh0RGly
ZWN0aW9uIGRpcmVjdGlvbikKLXsKLSAgICByZXR1cm4gZGlyZWN0aW9uID09IFRleHREaXJlY3Rp
b246OkxUUjsKLX0KLQogZW51bSBjbGFzcyBXcml0aW5nTW9kZSA6IHVpbnQ4X3QgewogICAgIFRv
cFRvQm90dG9tID0gMCwgLy8gaG9yaXpvbnRhbC10YgogICAgIEJvdHRvbVRvVG9wID0gMSwgLy8g
aG9yaXpvbnRhbC1idApAQCAtNTAsNjcgKzQzLDY4IEBAIGVudW0gY2xhc3MgV3JpdGluZ01vZGUg
OiB1aW50OF90IHsKICAgICBSaWdodFRvTGVmdCA9IDMsIC8vIHZlcnRpY2FsLXJsCiB9OwogCi0j
ZGVmaW5lIE1BS0VfVEVYVF9GTE9XKHdyaXRpbmdNb2RlLCBkaXJlY3Rpb24pICAoc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KHdyaXRpbmdNb2RlKSA8PCAxIHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGRp
cmVjdGlvbikpCitjb25zdGV4cHIgdW5zaWduZWQgbWFrZVRleHRGbG93SW5pdGFsaXplcihXcml0
aW5nTW9kZSB3cml0aW5nTW9kZSwgVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24pCit7CisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPih3cml0aW5nTW9kZSkgPDwgMSB8IHN0YXRpY19jYXN0
PHVuc2lnbmVkPihkaXJlY3Rpb24pOworfQogCiAvLyBEZWZpbmUgdGhlIHRleHQgZmxvdyBpbiB0
ZXJtcyBvZiB0aGUgd3JpdGluZyBtb2RlIGFuZCB0aGUgdGV4dCBkaXJlY3Rpb24uIFRoZSBmaXJz
dAogLy8gcGFydCBpcyB0aGUgbGluZSBncm93aW5nIGRpcmVjdGlvbiBhbmQgdGhlIHNlY29uZCBw
YXJ0IGlzIHRoZSBibG9jayBncm93aW5nIGRpcmVjdGlvbi4KIGVudW0gVGV4dEZsb3cgewotICAg
IElubGluZUVhc3RCbG9ja1NvdXRoID0gTUFLRV9URVhUX0ZMT1coV3JpdGluZ01vZGU6OlRvcFRv
Qm90dG9tLCBUZXh0RGlyZWN0aW9uOjpMVFIpLAotICAgIElubGluZVdlc3RCbG9ja1NvdXRoID0g
TUFLRV9URVhUX0ZMT1coV3JpdGluZ01vZGU6OlRvcFRvQm90dG9tLCBUZXh0RGlyZWN0aW9uOjpS
VEwpLAotICAgIElubGluZUVhc3RCbG9ja05vcnRoID0gTUFLRV9URVhUX0ZMT1coV3JpdGluZ01v
ZGU6OkJvdHRvbVRvVG9wLCBUZXh0RGlyZWN0aW9uOjpMVFIpLAotICAgIElubGluZVdlc3RCbG9j
a05vcnRoID0gTUFLRV9URVhUX0ZMT1coV3JpdGluZ01vZGU6OkJvdHRvbVRvVG9wLCBUZXh0RGly
ZWN0aW9uOjpSVEwpLAotICAgIElubGluZVNvdXRoQmxvY2tFYXN0ID0gTUFLRV9URVhUX0ZMT1co
V3JpdGluZ01vZGU6OkxlZnRUb1JpZ2h0LCBUZXh0RGlyZWN0aW9uOjpMVFIpLAotICAgIElubGlu
ZVNvdXRoQmxvY2tXZXN0ID0gTUFLRV9URVhUX0ZMT1coV3JpdGluZ01vZGU6OkxlZnRUb1JpZ2h0
LCBUZXh0RGlyZWN0aW9uOjpSVEwpLAotICAgIElubGluZU5vcnRoQmxvY2tFYXN0ID0gTUFLRV9U
RVhUX0ZMT1coV3JpdGluZ01vZGU6OlJpZ2h0VG9MZWZ0LCBUZXh0RGlyZWN0aW9uOjpMVFIpLAot
ICAgIElubGluZU5vcnRoQmxvY2tXZXN0ID0gTUFLRV9URVhUX0ZMT1coV3JpdGluZ01vZGU6OlJp
Z2h0VG9MZWZ0LCBUZXh0RGlyZWN0aW9uOjpSVEwpCisgICAgSW5saW5lRWFzdEJsb2NrU291dGgg
PSBtYWtlVGV4dEZsb3dJbml0YWxpemVyKFdyaXRpbmdNb2RlOjpUb3BUb0JvdHRvbSwgVGV4dERp
cmVjdGlvbjo6TFRSKSwKKyAgICBJbmxpbmVXZXN0QmxvY2tTb3V0aCA9IG1ha2VUZXh0Rmxvd0lu
aXRhbGl6ZXIoV3JpdGluZ01vZGU6OlRvcFRvQm90dG9tLCBUZXh0RGlyZWN0aW9uOjpSVEwpLAor
ICAgIElubGluZUVhc3RCbG9ja05vcnRoID0gbWFrZVRleHRGbG93SW5pdGFsaXplcihXcml0aW5n
TW9kZTo6Qm90dG9tVG9Ub3AsIFRleHREaXJlY3Rpb246OkxUUiksCisgICAgSW5saW5lV2VzdEJs
b2NrTm9ydGggPSBtYWtlVGV4dEZsb3dJbml0YWxpemVyKFdyaXRpbmdNb2RlOjpCb3R0b21Ub1Rv
cCwgVGV4dERpcmVjdGlvbjo6UlRMKSwKKyAgICBJbmxpbmVTb3V0aEJsb2NrRWFzdCA9IG1ha2VU
ZXh0Rmxvd0luaXRhbGl6ZXIoV3JpdGluZ01vZGU6OkxlZnRUb1JpZ2h0LCBUZXh0RGlyZWN0aW9u
OjpMVFIpLAorICAgIElubGluZVNvdXRoQmxvY2tXZXN0ID0gbWFrZVRleHRGbG93SW5pdGFsaXpl
cihXcml0aW5nTW9kZTo6TGVmdFRvUmlnaHQsIFRleHREaXJlY3Rpb246OlJUTCksCisgICAgSW5s
aW5lTm9ydGhCbG9ja0Vhc3QgPSBtYWtlVGV4dEZsb3dJbml0YWxpemVyKFdyaXRpbmdNb2RlOjpS
aWdodFRvTGVmdCwgVGV4dERpcmVjdGlvbjo6TFRSKSwKKyAgICBJbmxpbmVOb3J0aEJsb2NrV2Vz
dCA9IG1ha2VUZXh0Rmxvd0luaXRhbGl6ZXIoV3JpdGluZ01vZGU6OlJpZ2h0VG9MZWZ0LCBUZXh0
RGlyZWN0aW9uOjpSVEwpCiB9OwogCi1pbmxpbmUgVGV4dEZsb3cgbWFrZVRleHRGbG93KFdyaXRp
bmdNb2RlIHdyaXRpbmdNb2RlLCBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbikKK2NvbnN0ZXhwciBp
bmxpbmUgVGV4dEZsb3cgbWFrZVRleHRGbG93KFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlLCBUZXh0
RGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VGV4dEZsb3c+
KE1BS0VfVEVYVF9GTE9XKHdyaXRpbmdNb2RlLCBkaXJlY3Rpb24pKTsKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8VGV4dEZsb3c+KG1ha2VUZXh0Rmxvd0luaXRhbGl6ZXIod3JpdGluZ01vZGUsIGRp
cmVjdGlvbikpOwogfQogCi0jdW5kZWYgTUFLRV9URVhUX0ZMT1cKLQotY29uc3QgdW5zaWduZWQg
VGV4dEZsb3dSZXZlcnNlZE1hc2sgPSAxOwotY29uc3QgdW5zaWduZWQgVGV4dEZsb3dGbGlwcGVk
TWFzayA9IDI7Ci1jb25zdCB1bnNpZ25lZCBUZXh0Rmxvd1ZlcnRpY2FsTWFzayA9IDQ7Citjb25z
dGV4cHIgdW5zaWduZWQgVGV4dEZsb3dSZXZlcnNlZE1hc2sgPSAxOworY29uc3RleHByIHVuc2ln
bmVkIFRleHRGbG93RmxpcHBlZE1hc2sgPSAyOworY29uc3RleHByIHVuc2lnbmVkIFRleHRGbG93
VmVydGljYWxNYXNrID0gNDsKIAotaW5saW5lIGJvb2wgaXNSZXZlcnNlZFRleHRGbG93KFRleHRG
bG93IHRleHRmbG93KQorY29uc3RleHByIGlubGluZSBib29sIGlzUmV2ZXJzZWRUZXh0RmxvdyhU
ZXh0RmxvdyB0ZXh0ZmxvdykKIHsKICAgICByZXR1cm4gdGV4dGZsb3cgJiBUZXh0Rmxvd1JldmVy
c2VkTWFzazsKIH0KIAotaW5saW5lIGJvb2wgaXNGbGlwcGVkVGV4dEZsb3coVGV4dEZsb3cgdGV4
dGZsb3cpCitjb25zdGV4cHIgaW5saW5lIGJvb2wgaXNGbGlwcGVkVGV4dEZsb3coVGV4dEZsb3cg
dGV4dGZsb3cpCiB7CiAgICAgcmV0dXJuIHRleHRmbG93ICYgVGV4dEZsb3dGbGlwcGVkTWFzazsK
IH0KIAotaW5saW5lIGJvb2wgaXNWZXJ0aWNhbFRleHRGbG93KFRleHRGbG93IHRleHRmbG93KQor
Y29uc3RleHByIGlubGluZSBib29sIGlzVmVydGljYWxUZXh0RmxvdyhUZXh0RmxvdyB0ZXh0Zmxv
dykKIHsKICAgICByZXR1cm4gdGV4dGZsb3cgJiBUZXh0Rmxvd1ZlcnRpY2FsTWFzazsKIH0KIAog
Ly8gTGluZXMgaGF2ZSB2ZXJ0aWNhbCBvcmllbnRhdGlvbjsgbW9kZXMgdmVydGljYWwtbHIgb3Ig
dmVydGljYWwtcmwuCi1pbmxpbmUgYm9vbCBpc1ZlcnRpY2FsV3JpdGluZ01vZGUoV3JpdGluZ01v
ZGUgd3JpdGluZ01vZGUpCitjb25zdGV4cHIgaW5saW5lIGJvb2wgaXNWZXJ0aWNhbFdyaXRpbmdN
b2RlKFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKQogewogICAgIHJldHVybiBpc1ZlcnRpY2FsVGV4
dEZsb3cobWFrZVRleHRGbG93KHdyaXRpbmdNb2RlLCBUZXh0RGlyZWN0aW9uOjpMVFIpKTsKIH0K
IAogLy8gQmxvY2sgcHJvZ3Jlc3Npb24gaW5jcmVhc2VzIGluIHRoZSBvcHBvc2l0ZSBkaXJlY3Rp
b24gdG8gbm9ybWFsOyBtb2RlcyB2ZXJ0aWNhbC1ybCBvciBob3Jpem9udGFsLWJ0LgotaW5saW5l
IGJvb2wgaXNGbGlwcGVkV3JpdGluZ01vZGUoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUpCitjb25z
dGV4cHIgaW5saW5lIGJvb2wgaXNGbGlwcGVkV3JpdGluZ01vZGUoV3JpdGluZ01vZGUgd3JpdGlu
Z01vZGUpCiB7CiAgICAgcmV0dXJuIGlzRmxpcHBlZFRleHRGbG93KG1ha2VUZXh0Rmxvdyh3cml0
aW5nTW9kZSwgVGV4dERpcmVjdGlvbjo6TFRSKSk7CiB9CiAKIC8vIExpbmVzIGhhdmUgaG9yaXpv
bnRhbCBvcmllbnRhdGlvbjsgbW9kZXMgaG9yaXpvbnRhbC10YiBvciBob3Jpem9udGFsLWJ0Lgot
aW5saW5lIGJvb2wgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoV3JpdGluZ01vZGUgd3JpdGluZ01v
ZGUpCitjb25zdGV4cHIgaW5saW5lIGJvb2wgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoV3JpdGlu
Z01vZGUgd3JpdGluZ01vZGUpCiB7CiAgICAgcmV0dXJuICFpc1ZlcnRpY2FsV3JpdGluZ01vZGUo
d3JpdGluZ01vZGUpOwogfQogCiAvLyBCb3R0b20gb2YgdGhlIGxpbmUgb2NjdXJzIGVhcmxpZXIg
aW4gdGhlIGJsb2NrOyBtb2RlcyB2ZXJ0aWNhbC1sciBvciBob3Jpem9udGFsLWJ0LgotaW5saW5l
IGJvb2wgaXNGbGlwcGVkTGluZXNXcml0aW5nTW9kZShXcml0aW5nTW9kZSB3cml0aW5nTW9kZSkK
K2NvbnN0ZXhwciBpbmxpbmUgYm9vbCBpc0ZsaXBwZWRMaW5lc1dyaXRpbmdNb2RlKFdyaXRpbmdN
b2RlIHdyaXRpbmdNb2RlKQogewogICAgIHJldHVybiBpc1ZlcnRpY2FsV3JpdGluZ01vZGUod3Jp
dGluZ01vZGUpICE9IGlzRmxpcHBlZFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKTsKIH0KQEAgLTEz
MSwyNSArMTI1LDI1IEBAIGVudW0gY2xhc3MgQm94U2lkZSA6IHVpbnQ4X3QgewogCiBjb25zdGV4
cHIgc3RkOjphcnJheTxCb3hTaWRlLCA0PiBhbGxCb3hTaWRlcyA9IHsgQm94U2lkZTo6VG9wLCBC
b3hTaWRlOjpSaWdodCwgQm94U2lkZTo6Qm90dG9tLCBCb3hTaWRlOjpMZWZ0IH07CiAKLWlubGlu
ZSBib29sIGlzSG9yaXpvbnRhbFBoeXNpY2FsU2lkZShCb3hTaWRlIHBoeXNpY2FsU2lkZSkKK2Nv
bnN0ZXhwciBpbmxpbmUgYm9vbCBpc0hvcml6b250YWxQaHlzaWNhbFNpZGUoQm94U2lkZSBwaHlz
aWNhbFNpZGUpCiB7CiAgICAgcmV0dXJuIHBoeXNpY2FsU2lkZSA9PSBCb3hTaWRlOjpMZWZ0IHx8
IHBoeXNpY2FsU2lkZSA9PSBCb3hTaWRlOjpSaWdodDsKIH0KIAotaW5saW5lIEJveFNpZGUgbWly
cm9yUGh5c2ljYWxTaWRlKEJveFNpZGUgcGh5c2ljYWxTaWRlKQorY29uc3RleHByIGlubGluZSBC
b3hTaWRlIG1pcnJvclBoeXNpY2FsU2lkZShCb3hTaWRlIHBoeXNpY2FsU2lkZSkKIHsKICAgICAv
LyB0b3AgPC0+IGJvdHRvbSBhbmQgbGVmdCA8LT4gcmlnaHQgY29udmVyc2lvbgogICAgIHJldHVy
biBzdGF0aWNfY2FzdDxCb3hTaWRlPigoc3RhdGljX2Nhc3Q8aW50PihwaHlzaWNhbFNpZGUpICsg
MikgJSA0KTsKIH0KIAotaW5saW5lIEJveFNpZGUgcm90YXRlUGh5c2ljYWxTaWRlKEJveFNpZGUg
cGh5c2ljYWxTaWRlKQorY29uc3RleHByIGlubGluZSBCb3hTaWRlIHJvdGF0ZVBoeXNpY2FsU2lk
ZShCb3hTaWRlIHBoeXNpY2FsU2lkZSkKIHsKICAgICAvLyB0b3AgPC0+IGxlZnQgYW5kIHJpZ2h0
IDwtPiBib3R0b20gY29udmVyc2lvbgogICAgIGJvb2wgaG9yaXpvbnRhbFNpZGUgPSBpc0hvcml6
b250YWxQaHlzaWNhbFNpZGUocGh5c2ljYWxTaWRlKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
Qm94U2lkZT4oKHN0YXRpY19jYXN0PGludD4ocGh5c2ljYWxTaWRlKSArIChob3Jpem9udGFsU2lk
ZSA/IDEgOiAzKSkgJSA0KTsKIH0KIAotaW5saW5lIEJveFNpZGUgbWFwTG9naWNhbFNpZGVUb1Bo
eXNpY2FsU2lkZShUZXh0RmxvdyB0ZXh0ZmxvdywgTG9naWNhbEJveFNpZGUgbG9naWNhbFNpZGUp
Citjb25zdGV4cHIgaW5saW5lIEJveFNpZGUgbWFwTG9naWNhbFNpZGVUb1BoeXNpY2FsU2lkZShU
ZXh0RmxvdyB0ZXh0ZmxvdywgTG9naWNhbEJveFNpZGUgbG9naWNhbFNpZGUpCiB7CiAgICAgQm94
U2lkZSBwaHlzaWNhbFNpZGUgPSBzdGF0aWNfY2FzdDxCb3hTaWRlPihsb2dpY2FsU2lkZSk7CiAg
ICAgYm9vbCBob3Jpem9udGFsU2lkZSA9IGlzSG9yaXpvbnRhbFBoeXNpY2FsU2lkZShwaHlzaWNh
bFNpZGUpOwpAQCAtMTYzLDcgKzE1Nyw3IEBAIGlubGluZSBCb3hTaWRlIG1hcExvZ2ljYWxTaWRl
VG9QaHlzaWNhbFMKICAgICByZXR1cm4gcGh5c2ljYWxTaWRlOwogfQogCi1pbmxpbmUgQm94U2lk
ZSBtYXBMb2dpY2FsU2lkZVRvUGh5c2ljYWxTaWRlKFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlLCBM
b2dpY2FsQm94U2lkZSBsb2dpY2FsU2lkZSkKK2NvbnN0ZXhwciBpbmxpbmUgQm94U2lkZSBtYXBM
b2dpY2FsU2lkZVRvUGh5c2ljYWxTaWRlKFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlLCBMb2dpY2Fs
Qm94U2lkZSBsb2dpY2FsU2lkZSkKIHsKICAgICAvLyBTZXQgdGhlIGRpcmVjdGlvbiBzdWNoIHRo
YXQgc2lkZSBpcyBtaXJyb3JlZCBpZiBpc0ZsaXBwZWRXcml0aW5nTW9kZSgpIGlzIHRydWUKICAg
ICBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbiA9IGlzRmxpcHBlZFdyaXRpbmdNb2RlKHdyaXRpbmdN
b2RlKSA/IFRleHREaXJlY3Rpb246OlJUTCA6IFRleHREaXJlY3Rpb246OkxUUjsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAkocmV2aXNpb24gMjY5ODMwKQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNzA2Miw3ICs3MDYyLDggQEAgYm9vbCBSZW5kZXJMYXllcjo6aW52YWxpZGF0ZUV2ZW50
UmVnaW9uKAogICAgICAgICBhdXRvJiB2aWV3ID0gcmVuZGVyZXIoKS52aWV3KCk7CiAgICAgICAg
IExPR19XSVRIX1NUUkVBTShFdmVudFJlZ2lvbnMsIHN0cmVhbSA8PCAiIGNhbGxpbmcgc2V0TmVl
ZHNFdmVudFJlZ2lvblVwZGF0ZUZvck5vbkNvbXBvc2l0ZWRGcmFtZSBvbiAiIDw8IHZpZXcpOwog
ICAgICAgICB2aWV3LnNldE5lZWRzRXZlbnRSZWdpb25VcGRhdGVGb3JOb25Db21wb3NpdGVkRnJh
bWUoKTsKLSAgICAgICAgaWYgKHJlbmRlcmVyKCkuc2V0dGluZ3MoKS52aXNpYmxlRGVidWdPdmVy
bGF5UmVnaW9ucygpICYgKFRvdWNoQWN0aW9uUmVnaW9uIHwgRWRpdGFibGVFbGVtZW50UmVnaW9u
IHwgV2hlZWxFdmVudEhhbmRsZXJSZWdpb24pKQorICAgICAgICBhdXRvIHZpc2libGVEZWJ1Z092
ZXJsYXlSZWdpb25zID0gT3B0aW9uU2V0PERlYnVnT3ZlcmxheVJlZ2lvbnM+Ojpmcm9tUmF3KHJl
bmRlcmVyKCkuc2V0dGluZ3MoKS52aXNpYmxlRGVidWdPdmVybGF5UmVnaW9ucygpKTsKKyAgICAg
ICAgaWYgKHZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zLmNvbnRhaW5zQW55KHsgRGVidWdPdmVy
bGF5UmVnaW9uczo6VG91Y2hBY3Rpb25SZWdpb24sIERlYnVnT3ZlcmxheVJlZ2lvbnM6OkVkaXRh
YmxlRWxlbWVudFJlZ2lvbiwgRGVidWdPdmVybGF5UmVnaW9uczo6V2hlZWxFdmVudEhhbmRsZXJS
ZWdpb24gfSkpCiAgICAgICAgICAgICB2aWV3LnNldE5lZWRzUmVwYWludEhhY2tBZnRlckNvbXBv
c2l0aW5nTGF5ZXJVcGRhdGVGb3JEZWJ1Z092ZXJsYXlzT25seSgpOwogICAgICAgICB2aWV3LmNv
bXBvc2l0b3IoKS5zY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJVcGRhdGUoKTsKICAgICB9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAko
cmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzMTksOCArMzMxOSw4IEBAIHZvaWQgUmVu
ZGVyTGF5ZXJCYWNraW5nOjpwYWludERlYnVnT3ZlcmwKICAgICBhdXRvIGNvbnRlbnRPZmZzZXQg
PSByb3VuZGVkSW50U2l6ZShncmFwaGljc0xheWVyLT5vZmZzZXRGcm9tUmVuZGVyZXIoKSk7CiAg
ICAgY29udGV4dC50cmFuc2xhdGUoY29udGVudE9mZnNldCk7CiAKLSAgICBhdXRvIHZpc2libGVE
ZWJ1Z092ZXJsYXlSZWdpb25zID0gcmVuZGVyZXIoKS5zZXR0aW5ncygpLnZpc2libGVEZWJ1Z092
ZXJsYXlSZWdpb25zKCk7Ci0gICAgaWYgKHZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zICYgKFRv
dWNoQWN0aW9uUmVnaW9uIHwgV2hlZWxFdmVudEhhbmRsZXJSZWdpb24pKSB7CisgICAgYXV0byB2
aXNpYmxlRGVidWdPdmVybGF5UmVnaW9ucyA9IE9wdGlvblNldDxEZWJ1Z092ZXJsYXlSZWdpb25z
Pjo6ZnJvbVJhdyhyZW5kZXJlcigpLnNldHRpbmdzKCkudmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lv
bnMoKSk7CisgICAgaWYgKHZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zLmNvbnRhaW5zQW55KHsg
RGVidWdPdmVybGF5UmVnaW9uczo6VG91Y2hBY3Rpb25SZWdpb24sIERlYnVnT3ZlcmxheVJlZ2lv
bnM6OldoZWVsRXZlbnRIYW5kbGVyUmVnaW9uIH0pKSB7CiAgICAgICAgIGNvbnN0ZXhwciBhdXRv
IHJlZ2lvbkNvbG9yID0gQ29sb3I6OmJsdWUuY29sb3JXaXRoQWxwaGFCeXRlKDUwKTsKICAgICAg
ICAgY29udGV4dC5zZXRGaWxsQ29sb3IocmVnaW9uQ29sb3IpOwogICAgICAgICBmb3IgKGF1dG8g
cmVjdCA6IGV2ZW50UmVnaW9uLnJlZ2lvbigpLnJlY3RzKCkpCkBAIC0zMzI4LDcgKzMzMjgsNyBA
QCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnREZWJ1Z092ZXJsCiAgICAgfQogCiAjaWYg
RU5BQkxFKFRPVUNIX0FDVElPTl9SRUdJT05TKQotICAgIGlmICh2aXNpYmxlRGVidWdPdmVybGF5
UmVnaW9ucyAmIFRvdWNoQWN0aW9uUmVnaW9uKSB7CisgICAgaWYgKHZpc2libGVEZWJ1Z092ZXJs
YXlSZWdpb25zLmNvbnRhaW5zKERlYnVnT3ZlcmxheVJlZ2lvbnM6OlRvdWNoQWN0aW9uUmVnaW9u
KSkgewogICAgICAgICBjb25zdCBUb3VjaEFjdGlvbiB0b3VjaEFjdGlvbkxpc3RbXSA9IHsKICAg
ICAgICAgICAgIFRvdWNoQWN0aW9uOjpOb25lLAogICAgICAgICAgICAgVG91Y2hBY3Rpb246Ok1h
bmlwdWxhdGlvbiwKQEAgLTMzNTQsNyArMzM1NCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5n
OjpwYWludERlYnVnT3ZlcmwKICNlbmRpZgogCiAjaWYgRU5BQkxFKFdIRUVMX0VWRU5UX1JFR0lP
TlMpCi0gICAgaWYgKHZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zICYgV2hlZWxFdmVudEhhbmRs
ZXJSZWdpb24pIHsKKyAgICBpZiAodmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMuY29udGFpbnMo
RGVidWdPdmVybGF5UmVnaW9uczo6V2hlZWxFdmVudEhhbmRsZXJSZWdpb24pKSB7CiAgICAgICAg
IGZvciAoYXV0byB0eXBlIDogeyBFdmVudExpc3RlbmVyUmVnaW9uVHlwZTo6V2hlZWwsIEV2ZW50
TGlzdGVuZXJSZWdpb25UeXBlOjpOb25QYXNzaXZlV2hlZWwgfSkgewogICAgICAgICAgICAgYXV0
byBmaWxsUGF0dGVybiA9IHBhdHRlcm5Gb3JFdmVudExpc3RlbmVyUmVnaW9uVHlwZSh0eXBlLCBn
cmFwaGljc0xheWVyLT5vZmZzZXRGcm9tUmVuZGVyZXIoKSwgY29udGV4dCk7CiAgICAgICAgICAg
ICBjb250ZXh0LnNldEZpbGxQYXR0ZXJuKGZpbGxQYXR0ZXJuLnJlbGVhc2VOb25OdWxsKCkpOwpA
QCAtMzM2Nyw3ICszMzY3LDcgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50RGVidWdP
dmVybAogI2VuZGlmCiAKICNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQotICAgIGlmICh2aXNp
YmxlRGVidWdPdmVybGF5UmVnaW9ucyAmIEVkaXRhYmxlRWxlbWVudFJlZ2lvbikgeworICAgIGlm
ICh2aXNpYmxlRGVidWdPdmVybGF5UmVnaW9ucy5jb250YWlucyhEZWJ1Z092ZXJsYXlSZWdpb25z
OjpFZGl0YWJsZUVsZW1lbnRSZWdpb24pKSB7CiAgICAgICAgIGNvbnRleHQuc2V0RmlsbENvbG9y
KFNSR0JBPHVpbnQ4X3Q+IHsgMTI4LCAwLCAxMjgsIDUwIH0pOwogICAgICAgICBmb3IgKGF1dG8g
cmVjdCA6IGV2ZW50UmVnaW9uLnJlY3RzRm9yRWRpdGFibGVFbGVtZW50cygpKQogICAgICAgICAg
ICAgY29udGV4dC5maWxsUmVjdChyZWN0KTsKQEAgLTM0MTQsNyArMzQxNCw4IEBAIHZvaWQgUmVu
ZGVyTGF5ZXJCYWNraW5nOjpwYWludENvbnRlbnRzKGMKIAogICAgICAgICBwYWludEludG9MYXll
cihncmFwaGljc0xheWVyLCBjb250ZXh0LCBkaXJ0eVJlY3QsIGJlaGF2aW9yKTsKIAotICAgICAg
ICBpZiAocmVuZGVyZXIoKS5zZXR0aW5ncygpLnZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zKCkg
JiAoVG91Y2hBY3Rpb25SZWdpb24gfCBFZGl0YWJsZUVsZW1lbnRSZWdpb24gfCBXaGVlbEV2ZW50
SGFuZGxlclJlZ2lvbikpCisgICAgICAgIGF1dG8gdmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMg
PSBPcHRpb25TZXQ8RGVidWdPdmVybGF5UmVnaW9ucz46OmZyb21SYXcocmVuZGVyZXIoKS5zZXR0
aW5ncygpLnZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zKCkpOworICAgICAgICBpZiAodmlzaWJs
ZURlYnVnT3ZlcmxheVJlZ2lvbnMuY29udGFpbnNBbnkoeyBEZWJ1Z092ZXJsYXlSZWdpb25zOjpU
b3VjaEFjdGlvblJlZ2lvbiwgRGVidWdPdmVybGF5UmVnaW9uczo6RWRpdGFibGVFbGVtZW50UmVn
aW9uLCBEZWJ1Z092ZXJsYXlSZWdpb25zOjpXaGVlbEV2ZW50SGFuZGxlclJlZ2lvbiB9KSkKICAg
ICAgICAgICAgIHBhaW50RGVidWdPdmVybGF5cyhncmFwaGljc0xheWVyLCBjb250ZXh0KTsKIAog
ICAgIH0gZWxzZSBpZiAoZ3JhcGhpY3NMYXllciA9PSBsYXllckZvckhvcml6b250YWxTY3JvbGxi
YXIoKSkgewpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3Mu
Y3BwCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
U2V0dGluZ3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw2IEBACiAjaW5jbHVkZSAi
UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIK
ICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCi0jaW5jbHVkZSAiU2V0dGluZ3Mu
aCIKICNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgogI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5o
PgogCkBAIC01MCw5ICs0OSw5IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEludGVybmFsU2V0
dGluZ3M6OkJhY2t1cDo6QmFja3VwKFNldHRpbmdzJiBzZXR0aW5ncykKLSAgICA6IG1fb3JpZ2lu
YWxFZGl0aW5nQmVoYXZpb3Ioc2V0dGluZ3MuZWRpdGluZ0JlaGF2aW9yVHlwZSgpKQotICAgICwg
bV9taW5pbXVtRE9NVGltZXJJbnRlcnZhbChzZXR0aW5ncy5taW5pbXVtRE9NVGltZXJJbnRlcnZh
bCgpKQorICAgIDogbV9taW5pbXVtRE9NVGltZXJJbnRlcnZhbChzZXR0aW5ncy5taW5pbXVtRE9N
VGltZXJJbnRlcnZhbCgpKQogICAgICwgbV9vcmlnaW5hbFRpbWVXaXRob3V0TW91c2VNb3ZlbWVu
dEJlZm9yZUhpZGluZ0NvbnRyb2xzKHNldHRpbmdzLnRpbWVXaXRob3V0TW91c2VNb3ZlbWVudEJl
Zm9yZUhpZGluZ0NvbnRyb2xzKCkpCisgICAgLCBtX29yaWdpbmFsRWRpdGluZ0JlaGF2aW9yKHNl
dHRpbmdzLmVkaXRpbmdCZWhhdmlvclR5cGUoKSkKICAgICAsIG1fc3RvcmFnZUJsb2NraW5nUG9s
aWN5KHNldHRpbmdzLnN0b3JhZ2VCbG9ja2luZ1BvbGljeSgpKQogICAgICwgbV91c2VySW50ZXJm
YWNlRGlyZWN0aW9uUG9saWN5KHNldHRpbmdzLnVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3ko
KSkKICAgICAsIG1fc3lzdGVtTGF5b3V0RGlyZWN0aW9uKHNldHRpbmdzLnN5c3RlbUxheW91dERp
cmVjdGlvbigpKQpAQCAtMTA4LDkgKzEwNyw5IEBAIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6QmFj
a3VwOjpyZXN0b3JlVG8KICAgICAgICAgc2V0dGluZ3Muc2V0UGljdG9ncmFwaEZvbnRGYW1pbHko
cGljdG9ncmFwaEZvbnQudmFsdWUsIHN0YXRpY19jYXN0PFVTY3JpcHRDb2RlPihwaWN0b2dyYXBo
Rm9udC5rZXkpKTsKICAgICBtX3BpY3RvZ3JhcGhGb250RmFtaWxpZXMuY2xlYXIoKTsKIAotICAg
IHNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvclR5cGUobV9vcmlnaW5hbEVkaXRpbmdCZWhhdmlv
cik7CiAgICAgc2V0dGluZ3Muc2V0TWluaW11bURPTVRpbWVySW50ZXJ2YWwobV9taW5pbXVtRE9N
VGltZXJJbnRlcnZhbCk7CiAgICAgc2V0dGluZ3Muc2V0VGltZVdpdGhvdXRNb3VzZU1vdmVtZW50
QmVmb3JlSGlkaW5nQ29udHJvbHMobV9vcmlnaW5hbFRpbWVXaXRob3V0TW91c2VNb3ZlbWVudEJl
Zm9yZUhpZGluZ0NvbnRyb2xzKTsKKyAgICBzZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3JUeXBl
KG1fb3JpZ2luYWxFZGl0aW5nQmVoYXZpb3IpOwogICAgIHNldHRpbmdzLnNldFN0b3JhZ2VCbG9j
a2luZ1BvbGljeShtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeSk7CiAgICAgc2V0dGluZ3Muc2V0VXNl
ckludGVyZmFjZURpcmVjdGlvblBvbGljeShtX3VzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3kp
OwogICAgIHNldHRpbmdzLnNldFN5c3RlbUxheW91dERpcmVjdGlvbihtX3N5c3RlbUxheW91dERp
cmVjdGlvbik7CkBAIC0zMDQsMjQgKzMwMywxMSBAQCBFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5h
bFNldHRpbmdzOjpzZXRUCiAgICAgcmV0dXJuIHsgfTsKIH0KIAotRXhjZXB0aW9uT3I8dm9pZD4g
SW50ZXJuYWxTZXR0aW5nczo6c2V0RWRpdGluZ0JlaGF2aW9yKEVkaXRpbmdCZWhhdmlvciBlZGl0
aW5nQmVoYXZpb3IpCitFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNldHRpbmdzOjpzZXRFZGl0
aW5nQmVoYXZpb3IoRWRpdGluZ0JlaGF2aW9yVHlwZSBlZGl0aW5nQmVoYXZpb3JUeXBlKQogewog
ICAgIGlmICghbV9wYWdlKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vz
c0Vycm9yIH07Ci0gICAgc3dpdGNoIChlZGl0aW5nQmVoYXZpb3IpIHsKLSAgICBjYXNlIEVkaXRp
bmdCZWhhdmlvcjo6V2luOgotICAgICAgICBzZXR0aW5ncygpLnNldEVkaXRpbmdCZWhhdmlvclR5
cGUoRWRpdGluZ1dpbmRvd3NCZWhhdmlvcik7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRWRp
dGluZ0JlaGF2aW9yOjpNYWM6Ci0gICAgICAgIHNldHRpbmdzKCkuc2V0RWRpdGluZ0JlaGF2aW9y
VHlwZShFZGl0aW5nTWFjQmVoYXZpb3IpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEVkaXRp
bmdCZWhhdmlvcjo6VW5peDoKLSAgICAgICAgc2V0dGluZ3MoKS5zZXRFZGl0aW5nQmVoYXZpb3JU
eXBlKEVkaXRpbmdVbml4QmVoYXZpb3IpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEVkaXRp
bmdCZWhhdmlvcjo6SW9zOgotICAgICAgICBzZXR0aW5ncygpLnNldEVkaXRpbmdCZWhhdmlvclR5
cGUoRWRpdGluZ0lPU0JlaGF2aW9yKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQorICAgIHNldHRp
bmdzKCkuc2V0RWRpdGluZ0JlaGF2aW9yVHlwZShlZGl0aW5nQmVoYXZpb3JUeXBlKTsKICAgICBy
ZXR1cm4geyB9OwogfQogCkBAIC0zMjksMTcgKzMxNSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IElu
dGVybmFsU2V0dGluZ3M6OnNldFMKIHsKICAgICBpZiAoIW1fcGFnZSkKICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OwotICAgIHN3aXRjaCAocG9saWN5KSB7
Ci0gICAgY2FzZSBTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkFsbG93QWxsOgotICAgICAgICBzZXR0
aW5ncygpLnNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShTZWN1cml0eU9yaWdpbjo6QWxsb3dBbGxT
dG9yYWdlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBTdG9yYWdlQmxvY2tpbmdQb2xpY3k6
OkJsb2NrVGhpcmRQYXJ0eToKLSAgICAgICAgc2V0dGluZ3MoKS5zZXRTdG9yYWdlQmxvY2tpbmdQ
b2xpY3koU2VjdXJpdHlPcmlnaW46OkJsb2NrVGhpcmRQYXJ0eVN0b3JhZ2UpOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIFN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QmxvY2tBbGw6Ci0gICAgICAg
IHNldHRpbmdzKCkuc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KFNlY3VyaXR5T3JpZ2luOjpCbG9j
a0FsbFN0b3JhZ2UpOwotICAgICAgICBicmVhazsKLSAgICB9CisgICAgc2V0dGluZ3MoKS5zZXRT
dG9yYWdlQmxvY2tpbmdQb2xpY3kocG9saWN5KTsKICAgICByZXR1cm4geyB9OwogfQogCkBAIC0z
NDcsMjAgKzMyMyw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFsU2V0dGluZ3M6OnNldFAK
IHsKICAgICBpZiAoIW1fcGFnZSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRB
Y2Nlc3NFcnJvciB9OwotICAgIHN3aXRjaCAocG9saWN5KSB7Ci0gICAgY2FzZSBQREZJbWFnZUNh
Y2hpbmdQb2xpY3k6OkVuYWJsZWQ6Ci0gICAgICAgIHNldHRpbmdzKCkuc2V0UGRmSW1hZ2VDYWNo
aW5nUG9saWN5KFBERkltYWdlQ2FjaGluZ0Rpc2FibGVkKTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBQREZJbWFnZUNhY2hpbmdQb2xpY3k6OkJlbG93TWVtb3J5TGltaXQ6Ci0gICAgICAgIHNl
dHRpbmdzKCkuc2V0UGRmSW1hZ2VDYWNoaW5nUG9saWN5KFBERkltYWdlQ2FjaGluZ0JlbG93TWVt
b3J5TGltaXQpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBERkltYWdlQ2FjaGluZ1BvbGlj
eTo6RGlzYWJsZWQ6Ci0gICAgICAgIHNldHRpbmdzKCkuc2V0UGRmSW1hZ2VDYWNoaW5nUG9saWN5
KFBERkltYWdlQ2FjaGluZ0Rpc2FibGVkKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQREZJ
bWFnZUNhY2hpbmdQb2xpY3k6OkNsaXBCb3VuZHNPbmx5OgotICAgICAgICBzZXR0aW5ncygpLnNl
dFBkZkltYWdlQ2FjaGluZ1BvbGljeShQREZJbWFnZUNhY2hpbmdDbGlwQm91bmRzT25seSk7Ci0g
ICAgICAgIGJyZWFrOwotICAgIH0KKyAgICBzZXR0aW5ncygpLnNldFBkZkltYWdlQ2FjaGluZ1Bv
bGljeShwb2xpY3kpOwogICAgIHJldHVybiB7IH07CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAkod29ya2luZyBjb3B5KQpAQCAtMjYs
MjIgKzI2LDE0IEBACiAKICNwcmFnbWEgb25jZQogCi0vLyBGSVhNRSAoMTIxOTI3KTogVGhpcyBp
bmNsdWRlIHNob3VsZCBub3QgYmUgbmVlZGVkLgotI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJp
bmdIYXNoLmg+Ci0KLSNpbmNsdWRlICJFZGl0aW5nQmVoYXZpb3JUeXBlcy5oIgogI2luY2x1ZGUg
IkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiRm9udEdlbmVyaWNGYW1pbGllcy5oIgotI2luY2x1
ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmgiCi0j
aW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgotI2luY2x1
ZGUgIldyaXRpbmdNb2RlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUGFnZTsK
LWNsYXNzIFNldHRpbmdzOwogCiBjbGFzcyBJbnRlcm5hbFNldHRpbmdzIDogcHVibGljIEludGVy
bmFsU2V0dGluZ3NHZW5lcmF0ZWQgewogcHVibGljOgpAQCAtNjQsMTMgKzU2LDEzIEBAIHB1Ymxp
YzoKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRNaW5pbXVtVGltZXJJbnRlcnZhbChkb3VibGUg
aW50ZXJ2YWxJblNlY29uZHMpOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFRpbWVXaXRob3V0
TW91c2VNb3ZlbWVudEJlZm9yZUhpZGluZ0NvbnRyb2xzKGRvdWJsZSBpbnRlcnZhbEluU2Vjb25k
cyk7CiAKLSAgICBlbnVtIGNsYXNzIEVkaXRpbmdCZWhhdmlvciA6IHVpbnQ4X3QgeyBNYWMsIFdp
biwgVW5peCwgSW9zIH07Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0RWRpdGluZ0JlaGF2aW9y
KEVkaXRpbmdCZWhhdmlvcik7CisgICAgdXNpbmcgRWRpdGluZ0JlaGF2aW9yVHlwZSA9IFdlYkNv
cmU6OkVkaXRpbmdCZWhhdmlvclR5cGU7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0RWRpdGlu
Z0JlaGF2aW9yKEVkaXRpbmdCZWhhdmlvclR5cGUpOwogICAgIAotICAgIGVudW0gY2xhc3MgUERG
SW1hZ2VDYWNoaW5nUG9saWN5IDogdWludDhfdCB7IEVuYWJsZWQsIEJlbG93TWVtb3J5TGltaXQs
IERpc2FibGVkLCBDbGlwQm91bmRzT25seSB9OworICAgIHVzaW5nIFBERkltYWdlQ2FjaGluZ1Bv
bGljeSA9IFdlYkNvcmU6OlBERkltYWdlQ2FjaGluZ1BvbGljeTsKICAgICBFeGNlcHRpb25Pcjx2
b2lkPiBzZXRQREZJbWFnZUNhY2hpbmdQb2xpY3koUERGSW1hZ2VDYWNoaW5nUG9saWN5KTsKIAot
ICAgIGVudW0gY2xhc3MgU3RvcmFnZUJsb2NraW5nUG9saWN5IDogdWludDhfdCB7IEFsbG93QWxs
LCBCbG9ja1RoaXJkUGFydHksIEJsb2NrQWxsIH07CisgICAgdXNpbmcgU3RvcmFnZUJsb2NraW5n
UG9saWN5ID0gV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5OwogICAgIEV4Y2VwdGlvbk9y
PHZvaWQ+IHNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShTdG9yYWdlQmxvY2tpbmdQb2xpY3kpOwog
ICAgIAogICAgIHVzaW5nIFVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3kgPSBXZWJDb3JlOjpV
c2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5OwpAQCAtNzksMTMgKzcxLDEzIEBAIHB1YmxpYzoK
ICAgICB1c2luZyBTeXN0ZW1MYXlvdXREaXJlY3Rpb24gPSBUZXh0RGlyZWN0aW9uOwogICAgIEV4
Y2VwdGlvbk9yPHZvaWQ+IHNldFN5c3RlbUxheW91dERpcmVjdGlvbihTeXN0ZW1MYXlvdXREaXJl
Y3Rpb24pOwogCi0gICAgdXNpbmcgRm9udExvYWRUaW1pbmdPdmVycmlkZSA9IFNldHRpbmdzOjpG
b250TG9hZFRpbWluZ092ZXJyaWRlOworICAgIHVzaW5nIEZvbnRMb2FkVGltaW5nT3ZlcnJpZGUg
PSBXZWJDb3JlOjpGb250TG9hZFRpbWluZ092ZXJyaWRlOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+
IHNldEZvbnRMb2FkVGltaW5nT3ZlcnJpZGUoRm9udExvYWRUaW1pbmdPdmVycmlkZSk7CiAKICAg
ICB1c2luZyBGcmFtZUZsYXR0ZW5pbmdWYWx1ZSA9IEZyYW1lRmxhdHRlbmluZzsKICAgICBFeGNl
cHRpb25Pcjx2b2lkPiBzZXRGcmFtZUZsYXR0ZW5pbmcoRnJhbWVGbGF0dGVuaW5nVmFsdWUpOwog
Ci0gICAgdXNpbmcgRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlID0gU2V0dGluZ3M6OkZvcmNlZEFj
Y2Vzc2liaWxpdHlWYWx1ZTsKKyAgICB1c2luZyBGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUgPSBX
ZWJDb3JlOjpGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWU7CiAgICAgRm9yY2VkQWNjZXNzaWJpbGl0
eVZhbHVlIGZvcmNlZENvbG9yc0FyZUludmVydGVkQWNjZXNzaWJpbGl0eVZhbHVlKCkgY29uc3Q7
CiAgICAgdm9pZCBzZXRGb3JjZWRDb2xvcnNBcmVJbnZlcnRlZEFjY2Vzc2liaWxpdHlWYWx1ZShG
b3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUpOwogICAgIEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZSBm
b3JjZWREaXNwbGF5SXNNb25vY2hyb21lQWNjZXNzaWJpbGl0eVZhbHVlKCkgY29uc3Q7CkBAIC0x
NDgsMTggKzE0MCwxOCBAQCBwcml2YXRlOgogICAgICAgICBTY3JpcHRGb250RmFtaWx5TWFwIG1f
Y3Vyc2l2ZUZvbnRGYW1pbGllczsKICAgICAgICAgU2NyaXB0Rm9udEZhbWlseU1hcCBtX2ZhbnRh
c3lGb250RmFtaWxpZXM7CiAgICAgICAgIFNjcmlwdEZvbnRGYW1pbHlNYXAgbV9waWN0b2dyYXBo
Rm9udEZhbWlsaWVzOwotICAgICAgICBFZGl0aW5nQmVoYXZpb3JUeXBlIG1fb3JpZ2luYWxFZGl0
aW5nQmVoYXZpb3I7CiAgICAgICAgIFNlY29uZHMgbV9taW5pbXVtRE9NVGltZXJJbnRlcnZhbDsK
ICAgICAgICAgU2Vjb25kcyBtX29yaWdpbmFsVGltZVdpdGhvdXRNb3VzZU1vdmVtZW50QmVmb3Jl
SGlkaW5nQ29udHJvbHM7Ci0gICAgICAgIFNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQ
b2xpY3kgbV9zdG9yYWdlQmxvY2tpbmdQb2xpY3k7Ci0gICAgICAgIFVzZXJJbnRlcmZhY2VEaXJl
Y3Rpb25Qb2xpY3kgbV91c2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5OworICAgICAgICBXZWJD
b3JlOjpFZGl0aW5nQmVoYXZpb3JUeXBlIG1fb3JpZ2luYWxFZGl0aW5nQmVoYXZpb3I7CisgICAg
ICAgIFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBtX3N0b3JhZ2VCbG9ja2luZ1BvbGlj
eTsKKyAgICAgICAgV2ViQ29yZTo6VXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeSBtX3VzZXJJ
bnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3k7CiAgICAgICAgIFRleHREaXJlY3Rpb24gbV9zeXN0ZW1M
YXlvdXREaXJlY3Rpb247CiAgICAgICAgIFdlYkNvcmU6OlBERkltYWdlQ2FjaGluZ1BvbGljeSBt
X3BkZkltYWdlQ2FjaGluZ1BvbGljeTsKLSAgICAgICAgU2V0dGluZ3M6OkZvcmNlZEFjY2Vzc2li
aWxpdHlWYWx1ZSBtX2ZvcmNlZENvbG9yc0FyZUludmVydGVkQWNjZXNzaWJpbGl0eVZhbHVlOwot
ICAgICAgICBTZXR0aW5nczo6Rm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlIG1fZm9yY2VkRGlzcGxh
eUlzTW9ub2Nocm9tZUFjY2Vzc2liaWxpdHlWYWx1ZTsKLSAgICAgICAgU2V0dGluZ3M6OkZvcmNl
ZEFjY2Vzc2liaWxpdHlWYWx1ZSBtX2ZvcmNlZFByZWZlcnNSZWR1Y2VkTW90aW9uQWNjZXNzaWJp
bGl0eVZhbHVlOwotICAgICAgICBTZXR0aW5nczo6Rm9udExvYWRUaW1pbmdPdmVycmlkZSBtX2Zv
bnRMb2FkVGltaW5nT3ZlcnJpZGU7Ci0gICAgICAgIEZyYW1lRmxhdHRlbmluZyBtX2ZyYW1lRmxh
dHRlbmluZzsKKyAgICAgICAgV2ViQ29yZTo6Rm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlIG1fZm9y
Y2VkQ29sb3JzQXJlSW52ZXJ0ZWRBY2Nlc3NpYmlsaXR5VmFsdWU7CisgICAgICAgIFdlYkNvcmU6
OkZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZSBtX2ZvcmNlZERpc3BsYXlJc01vbm9jaHJvbWVBY2Nl
c3NpYmlsaXR5VmFsdWU7CisgICAgICAgIFdlYkNvcmU6OkZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1
ZSBtX2ZvcmNlZFByZWZlcnNSZWR1Y2VkTW90aW9uQWNjZXNzaWJpbGl0eVZhbHVlOworICAgICAg
ICBXZWJDb3JlOjpGb250TG9hZFRpbWluZ092ZXJyaWRlIG1fZm9udExvYWRUaW1pbmdPdmVycmlk
ZTsKKyAgICAgICAgV2ViQ29yZTo6RnJhbWVGbGF0dGVuaW5nIG1fZnJhbWVGbGF0dGVuaW5nOwog
CiAgICAgICAgIC8vIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMKICAgICAgICAgYm9vbCBtX3dlYkdM
MkVuYWJsZWQ7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3Mu
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5pZGwJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxTZXR0aW5ncy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI0LDExICsyNCwxMSBAQAogICogVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KICAqLwogCi1lbnVtIEVkaXRpbmdCZWhhdmlvciB7ICJtYWMiLCAid2luIiwgInVuaXgi
LCAiaW9zIiB9OworZW51bSBFZGl0aW5nQmVoYXZpb3JUeXBlIHsgIm1hYyIsICJ3aW5kb3dzIiwg
InVuaXgiLCAiaW9zIiB9OwogZW51bSBGb250TG9hZFRpbWluZ092ZXJyaWRlIHsgIk5vbmUiLCAi
QmxvY2siLCAiU3dhcCIsICJGYWlsdXJlIiB9OwogZW51bSBGb3JjZWRBY2Nlc3NpYmlsaXR5VmFs
dWUgeyAic3lzdGVtIiwgIm9uIiwgIm9mZiIgfTsKIGVudW0gRnJhbWVGbGF0dGVuaW5nVmFsdWUg
eyAiRGlzYWJsZWQiLCAiRW5hYmxlZEZvck5vbkZ1bGxTY3JlZW5JRnJhbWVzIiwgIkZ1bGx5RW5h
YmxlZCIgfTsKLWVudW0gUERGSW1hZ2VDYWNoaW5nUG9saWN5IHsgImVuYWJsZWQiLCAiYmVsb3dN
ZW1vcnlMaW1pdCIsICJkaXNhYmxlZCIsICJjbGlwQm91bmRzT25seSIgfTsKK2VudW0gUERGSW1h
Z2VDYWNoaW5nUG9saWN5IHsgIkVuYWJsZWQiLCAiQmVsb3dNZW1vcnlMaW1pdCIsICJEaXNhYmxl
ZCIsICJDbGlwQm91bmRzT25seSIgfTsKIGVudW0gU3RvcmFnZUJsb2NraW5nUG9saWN5IHsgIkFs
bG93QWxsIiwgIkJsb2NrVGhpcmRQYXJ0eSIsICJCbG9ja0FsbCIgfTsKIGVudW0gU3lzdGVtTGF5
b3V0RGlyZWN0aW9uIHsgIkxUUiIsICJSVEwiIH07CiBlbnVtIFRyYWNrS2luZCB7ICJTdWJ0aXRs
ZXMiLCAiQ2FwdGlvbnMiLCAiVGV4dERlc2NyaXB0aW9ucyIgfTsKQEAgLTUyLDcgKzUyLDcgQEAg
ZW51bSBVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5IHsgIkNvbgogICAgIFtNYXlUaHJvd0V4
Y2VwdGlvbl0gdW5kZWZpbmVkIHNldFRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKGxv
bmcgd2lkdGgsIGxvbmcgaGVpZ2h0KTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHVuZGVmaW5l
ZCBzZXRUaW1lV2l0aG91dE1vdXNlTW92ZW1lbnRCZWZvcmVIaWRpbmdDb250cm9scyh1bnJlc3Ry
aWN0ZWQgZG91YmxlIGludGVydmFsSW5TZWNvbmRzKTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25d
IHVuZGVmaW5lZCBzZXRNaW5pbXVtVGltZXJJbnRlcnZhbCh1bnJlc3RyaWN0ZWQgZG91YmxlIGlu
dGVydmFsSW5TZWNvbmRzKTsKLSAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHVuZGVmaW5lZCBzZXRF
ZGl0aW5nQmVoYXZpb3IoRWRpdGluZ0JlaGF2aW9yIGJlaGF2aW9yKTsKKyAgICBbTWF5VGhyb3dF
eGNlcHRpb25dIHVuZGVmaW5lZCBzZXRFZGl0aW5nQmVoYXZpb3IoRWRpdGluZ0JlaGF2aW9yVHlw
ZSBiZWhhdmlvcik7CiAgICAgW01heVRocm93RXhjZXB0aW9uXSB1bmRlZmluZWQgc2V0U3RvcmFn
ZUJsb2NraW5nUG9saWN5KFN0b3JhZ2VCbG9ja2luZ1BvbGljeSBwb2xpY3kpOwogICAgIFtNYXlU
aHJvd0V4Y2VwdGlvbl0gdW5kZWZpbmVkIHNldFBERkltYWdlQ2FjaGluZ1BvbGljeShQREZJbWFn
ZUNhY2hpbmdQb2xpY3kgcG9saWN5KTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHVuZGVmaW5l
ZCBzZXRGcmFtZUZsYXR0ZW5pbmcoRnJhbWVGbGF0dGVuaW5nVmFsdWUgZnJhbWVGbGF0dGVuaW5n
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VX
b3JrZXJUaHJlYWRQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcAkocmV2aXNpb24g
MjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vydmlj
ZVdvcmtlclRocmVhZFByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTIsNyArNTIsNyBAQCBz
dGF0aWMgVVJMIHRvcE9yaWdpblVSTChjb25zdCBTZWN1cml0eU9yCiAgICAgcmV0dXJuIFVSTCB7
IFVSTCB7IH0sIG9yaWdpbi50b1Jhd1N0cmluZygpIH07CiB9CiAKLXN0YXRpYyBpbmxpbmUgVW5p
cXVlUmVmPFBhZ2U+IGNyZWF0ZVBhZ2VGb3JTZXJ2aWNlV29ya2VyKFBhZ2VDb25maWd1cmF0aW9u
JiYgY29uZmlndXJhdGlvbiwgY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiBkYXRhLCBT
ZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5IHN0b3JhZ2VCbG9ja2luZ1BvbGlj
eSkKK3N0YXRpYyBpbmxpbmUgVW5pcXVlUmVmPFBhZ2U+IGNyZWF0ZVBhZ2VGb3JTZXJ2aWNlV29y
a2VyKFBhZ2VDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbiwgY29uc3QgU2VydmljZVdvcmtl
ckNvbnRleHREYXRhJiBkYXRhLCBTdG9yYWdlQmxvY2tpbmdQb2xpY3kgc3RvcmFnZUJsb2NraW5n
UG9saWN5KQogewogICAgIGF1dG8gcGFnZSA9IG1ha2VVbmlxdWVSZWY8UGFnZT4oV1RGTW92ZShj
b25maWd1cmF0aW9uKSk7CiAKQEAgLTk0LDcgKzk0LDcgQEAgc3RhdGljIEhhc2hTZXQ8U2Vydmlj
ZVdvcmtlclRocmVhZFByb3h5KgogICAgIHJldHVybiBzZXQ7CiB9CiAKLVNlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eTo6U2VydmljZVdvcmtlclRocmVhZFByb3h5KFBhZ2VDb25maWd1cmF0aW9uJiYg
cGFnZUNvbmZpZ3VyYXRpb24sIGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYgZGF0YSwg
U3RyaW5nJiYgdXNlckFnZW50LCBDYWNoZVN0b3JhZ2VQcm92aWRlciYgY2FjaGVTdG9yYWdlUHJv
dmlkZXIsIFNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgc3RvcmFnZUJsb2Nr
aW5nUG9saWN5KQorU2VydmljZVdvcmtlclRocmVhZFByb3h5OjpTZXJ2aWNlV29ya2VyVGhyZWFk
UHJveHkoUGFnZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29uZmlndXJhdGlvbiwgY29uc3QgU2Vydmlj
ZVdvcmtlckNvbnRleHREYXRhJiBkYXRhLCBTdHJpbmcmJiB1c2VyQWdlbnQsIENhY2hlU3RvcmFn
ZVByb3ZpZGVyJiBjYWNoZVN0b3JhZ2VQcm92aWRlciwgU3RvcmFnZUJsb2NraW5nUG9saWN5IHN0
b3JhZ2VCbG9ja2luZ1BvbGljeSkKICAgICA6IG1fcGFnZShjcmVhdGVQYWdlRm9yU2VydmljZVdv
cmtlcihXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uKSwgZGF0YSwgc3RvcmFnZUJsb2NraW5nUG9s
aWN5KSkKICAgICAsIG1fZG9jdW1lbnQoKm1fcGFnZS0+bWFpbkZyYW1lKCkuZG9jdW1lbnQoKSkK
ICAgICAsIG1fc2VydmljZVdvcmtlclRocmVhZChTZXJ2aWNlV29ya2VyVGhyZWFkOjpjcmVhdGUo
ZGF0YSwgV1RGTW92ZSh1c2VyQWdlbnQpLCAqdGhpcywgKnRoaXMsIGlkYkNvbm5lY3Rpb25Qcm94
eShtX2RvY3VtZW50KSwgbV9kb2N1bWVudC0+c29ja2V0UHJvdmlkZXIoKSkpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJv
eHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaAkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDExICszMSwxMSBAQAogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiRmV0Y2hJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgotI2lu
Y2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckRlYnVnZ2Fi
bGUuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VySWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNl
cnZpY2VXb3JrZXJJbnNwZWN0b3JQcm94eS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJUaHJl
YWQuaCIKKyNpbmNsdWRlICJTdG9yYWdlQmxvY2tpbmdQb2xpY3kuaCIKICNpbmNsdWRlICJXb3Jr
ZXJEZWJ1Z2dlclByb3h5LmgiCiAjaW5jbHVkZSAiV29ya2VyTG9hZGVyUHJveHkuaCIKICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtODAsNyArODAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBm
aXJlQWN0aXZhdGVFdmVudCgpOwogCiBwcml2YXRlOgotICAgIFdFQkNPUkVfRVhQT1JUIFNlcnZp
Y2VXb3JrZXJUaHJlYWRQcm94eShQYWdlQ29uZmlndXJhdGlvbiYmLCBjb25zdCBTZXJ2aWNlV29y
a2VyQ29udGV4dERhdGEmLCBTdHJpbmcmJiB1c2VyQWdlbnQsIENhY2hlU3RvcmFnZVByb3ZpZGVy
JiwgU2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSk7CisgICAgV0VCQ09SRV9F
WFBPUlQgU2VydmljZVdvcmtlclRocmVhZFByb3h5KFBhZ2VDb25maWd1cmF0aW9uJiYsIGNvbnN0
IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYsIFN0cmluZyYmIHVzZXJBZ2VudCwgQ2FjaGVTdG9y
YWdlUHJvdmlkZXImLCBTdG9yYWdlQmxvY2tpbmdQb2xpY3kpOwogCiAgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIHZvaWQgbmV0d29ya1N0YXRlQ2hhbmdlZChib29sIGlzT25MaW5lKTsKIApJbmRl
eDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjAtMTEtMTUgIFNhbSBXZWluaWcgIDx3
ZWluaWdAYXBwbGUuY29tPgorCisgICAgICAgIFN0YW5kYXJkaXplIGVudW1zIHRoYXQgYXJlIHVz
ZWQgYnkgU2V0dGluZ3MgaW4gcHJlcGVyYXRpb24gZm9yIGF1dG9nZW5lcmF0aW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg5NjAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbV0lQXQorCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oOgorICAgICAgICAoV2ViS2l0Ojp0b0FQSSk6
CisgICAgICAgIChXZWJLaXQ6OnRvRWRpdGFibGVMaW5rQmVoYXZpb3IpOgorICAgICAgICAoV2Vi
S2l0Ojp0b1N0b3JhZ2VCbG9ja2luZ1BvbGljeSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
L1dLUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAoV0tQcmVmZXJlbmNlc1NldEVkaXRhYmxlTGlu
a0JlaGF2aW9yKToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNTZXRTdG9yYWdlQmxvY2tpbmdQb2xp
Y3kpOgorICAgICAgICAoV0tQcmVmZXJlbmNlc0dldFN0b3JhZ2VCbG9ja2luZ1BvbGljeSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tOgorICAgICAgICAo
dG9TdG9yYWdlQmxvY2tpbmdQb2xpY3kpOgorICAgICAgICAodG9BUEkpOgorICAgICAgICAoLVtX
S1ByZWZlcmVuY2VzIF9zdG9yYWdlQmxvY2tpbmdQb2xpY3ldKToKKyAgICAgICAgKC1bV0tQcmVm
ZXJlbmNlcyBfc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5Ol0pOgorICAgICAgICAodG9FZGl0YWJs
ZUxpbmtCZWhhdmlvcik6CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX3NldEVkaXRhYmxlTGlu
a0JlaGF2aW9yOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByZWZlcmVuY2VzOjpjcmVhdGVXaXRoTGVnYWN5RGVmYXVsdHMp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
Ojp1cGRhdGVQcmVmZXJlbmNlc1N0b3JlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZl
cmVuY2VzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGV0ZWN0RGF0YUluQWxsRnJhbWVz
KToKKwogMjAyMC0xMS0xNSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4K
IAogICAgICAgICBJbml0aWFsIGltcGxlbWVudGF0aW9uIG9mIERPTSByZW5kZXJpbmcgdmlhIHRo
ZSBHUFUgcHJvY2VzcwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJlZmVyZW5j
ZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByZWZlcmVu
Y2VzLmNwcAkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJlZmVyZW5jZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Myw3ICs1Myw3IEBAIFJlZjxXZWJQ
cmVmZXJlbmNlcz4gV2ViUHJlZmVyZW5jZXM6OmNyZWEKICAgICBwcmVmZXJlbmNlcy0+cmVnaXN0
ZXJEZWZhdWx0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpqYXZhRW5hYmxlZEtl
eSgpLCB0cnVlKTsKICAgICBwcmVmZXJlbmNlcy0+cmVnaXN0ZXJEZWZhdWx0Qm9vbFZhbHVlRm9y
S2V5KFdlYlByZWZlcmVuY2VzS2V5OjpqYXZhRW5hYmxlZEZvckxvY2FsRmlsZXNLZXkoKSwgdHJ1
ZSk7CiAgICAgcHJlZmVyZW5jZXMtPnJlZ2lzdGVyRGVmYXVsdEJvb2xWYWx1ZUZvcktleShXZWJQ
cmVmZXJlbmNlc0tleTo6cGx1Z2luc0VuYWJsZWRLZXkoKSwgdHJ1ZSk7Ci0gICAgcHJlZmVyZW5j
ZXMtPnJlZ2lzdGVyRGVmYXVsdFVJbnQzMlZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpz
dG9yYWdlQmxvY2tpbmdQb2xpY3lLZXkoKSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OkFsbG93
QWxsU3RvcmFnZSk7CisgICAgcHJlZmVyZW5jZXMtPnJlZ2lzdGVyRGVmYXVsdFVJbnQzMlZhbHVl
Rm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpzdG9yYWdlQmxvY2tpbmdQb2xpY3lLZXkoKSwgc3Rh
dGljX2Nhc3Q8dWludDMyX3Q+KFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QWxsb3dB
bGwpKTsKICAgICByZXR1cm4gcHJlZmVyZW5jZXM7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMjUy
LDE1ICsyNTIsMTUgQEAgaW5saW5lIFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uIHRvQVBJKAog
aW5saW5lIFdLRWRpdGFibGVMaW5rQmVoYXZpb3IgdG9BUEkoV2ViQ29yZTo6RWRpdGFibGVMaW5r
QmVoYXZpb3IgYmVoYXZpb3IpCiB7CiAgICAgc3dpdGNoIChiZWhhdmlvcikgewotICAgIGNhc2Ug
V2ViQ29yZTo6RWRpdGFibGVMaW5rRGVmYXVsdEJlaGF2aW9yOgorICAgIGNhc2UgV2ViQ29yZTo6
RWRpdGFibGVMaW5rQmVoYXZpb3I6OkRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBrV0tFZGl0YWJs
ZUxpbmtCZWhhdmlvckRlZmF1bHQ7Ci0gICAgY2FzZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtBbHdh
eXNMaXZlOgorICAgIGNhc2UgV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6OkFsd2F5c0xp
dmU6CiAgICAgICAgIHJldHVybiBrV0tFZGl0YWJsZUxpbmtCZWhhdmlvckFsd2F5c0xpdmU7Ci0g
ICAgY2FzZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtPbmx5TGl2ZVdpdGhTaGlmdEtleToKKyAgICBj
YXNlIFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpPbmx5TGl2ZVdpdGhTaGlmdEtleToK
ICAgICAgICAgcmV0dXJuIGtXS0VkaXRhYmxlTGlua0JlaGF2aW9yT25seUxpdmVXaXRoU2hpZnRL
ZXk7Ci0gICAgY2FzZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtMaXZlV2hlbk5vdEZvY3VzZWQ6Cisg
ICAgY2FzZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvcjo6TGl2ZVdoZW5Ob3RGb2N1c2Vk
OgogICAgICAgICByZXR1cm4ga1dLRWRpdGFibGVMaW5rQmVoYXZpb3JMaXZlV2hlbk5vdEZvY3Vz
ZWQ7Ci0gICAgY2FzZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtOZXZlckxpdmU6CisgICAgY2FzZSBX
ZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvcjo6TmV2ZXJMaXZlOgogICAgICAgICByZXR1cm4g
a1dLRWRpdGFibGVMaW5rQmVoYXZpb3JOZXZlckxpdmU7CiAgICAgfQogICAgIApAQCAtMjcyLDE5
ICsyNzIsMTkgQEAgaW5saW5lIFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yIHRvRQogewog
ICAgIHN3aXRjaCAod2tCZWhhdmlvcikgewogICAgIGNhc2Uga1dLRWRpdGFibGVMaW5rQmVoYXZp
b3JEZWZhdWx0OgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5rRGVmYXVsdEJl
aGF2aW9yOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6OkRl
ZmF1bHQ7CiAgICAgY2FzZSBrV0tFZGl0YWJsZUxpbmtCZWhhdmlvckFsd2F5c0xpdmU6Ci0gICAg
ICAgIHJldHVybiBXZWJDb3JlOjpFZGl0YWJsZUxpbmtBbHdheXNMaXZlOworICAgICAgICByZXR1
cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6OkFsd2F5c0xpdmU7CiAgICAgY2FzZSBr
V0tFZGl0YWJsZUxpbmtCZWhhdmlvck9ubHlMaXZlV2l0aFNoaWZ0S2V5OgotICAgICAgICByZXR1
cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5rT25seUxpdmVXaXRoU2hpZnRLZXk7CisgICAgICAgIHJl
dHVybiBXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvcjo6T25seUxpdmVXaXRoU2hpZnRLZXk7
CiAgICAgY2FzZSBrV0tFZGl0YWJsZUxpbmtCZWhhdmlvckxpdmVXaGVuTm90Rm9jdXNlZDoKLSAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRhYmxlTGlua0xpdmVXaGVuTm90Rm9jdXNlZDsKKyAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpMaXZlV2hlbk5vdEZv
Y3VzZWQ7CiAgICAgY2FzZSBrV0tFZGl0YWJsZUxpbmtCZWhhdmlvck5ldmVyTGl2ZToKLSAgICAg
ICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRhYmxlTGlua05ldmVyTGl2ZTsKKyAgICAgICAgcmV0dXJu
IFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpOZXZlckxpdmU7CiAgICAgfQogICAgIAog
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBXZWJDb3JlOjpFZGl0YWJsZUxp
bmtOZXZlckxpdmU7CisgICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpO
ZXZlckxpdmU7CiB9CiAgICAgCiBpbmxpbmUgV0tQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlIHRv
QVBJKFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUgdHlwZSkKQEAgLTM4NCwyOSAr
Mzg0LDI5IEBAIGlubGluZSBXS0hUVFBDb29raWVBY2NlcHRQb2xpY3kgdG9BUEkoV2UKICAgICBy
ZXR1cm4ga1dLSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5czsKIH0KIAotaW5saW5lIFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgdG9TdG9yYWdlQmxvY2tp
bmdQb2xpY3koV0tTdG9yYWdlQmxvY2tpbmdQb2xpY3kgcG9saWN5KQoraW5saW5lIFdlYkNvcmU6
OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSB0b1N0b3JhZ2VCbG9ja2luZ1BvbGljeShXS1N0b3JhZ2VC
bG9ja2luZ1BvbGljeSBwb2xpY3kpCiB7CiAgICAgc3dpdGNoIChwb2xpY3kpIHsKICAgICBjYXNl
IGtXS0FsbG93QWxsU3RvcmFnZToKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luOjpBbGxvd0FsbFN0b3JhZ2U7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpTdG9yYWdlQmxv
Y2tpbmdQb2xpY3k6OkFsbG93QWxsOwogICAgIGNhc2Uga1dLQmxvY2tUaGlyZFBhcnR5U3RvcmFn
ZToKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpCbG9ja1RoaXJkUGFy
dHlTdG9yYWdlOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5
OjpCbG9ja1RoaXJkUGFydHk7CiAgICAgY2FzZSBrV0tCbG9ja0FsbFN0b3JhZ2U6Ci0gICAgICAg
IHJldHVybiBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6QmxvY2tBbGxTdG9yYWdlOworICAgICAg
ICByZXR1cm4gV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5OjpCbG9ja0FsbDsKICAgICB9
CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW46OkFsbG93QWxsU3RvcmFnZTsKKyAgICByZXR1cm4gV2ViQ29yZTo6U3RvcmFnZUJs
b2NraW5nUG9saWN5OjpBbGxvd0FsbDsKIH0KIAotaW5saW5lIFdLU3RvcmFnZUJsb2NraW5nUG9s
aWN5IHRvQVBJKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kg
cG9saWN5KQoraW5saW5lIFdLU3RvcmFnZUJsb2NraW5nUG9saWN5IHRvQVBJKFdlYkNvcmU6OlN0
b3JhZ2VCbG9ja2luZ1BvbGljeSBwb2xpY3kpCiB7CiAgICAgc3dpdGNoIChwb2xpY3kpIHsKLSAg
ICBjYXNlIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpBbGxvd0FsbFN0b3JhZ2U6CisgICAgY2Fz
ZSBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkFsbG93QWxsOgogICAgICAgICByZXR1
cm4ga1dLQWxsb3dBbGxTdG9yYWdlOwotICAgIGNhc2UgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46
OkJsb2NrVGhpcmRQYXJ0eVN0b3JhZ2U6CisgICAgY2FzZSBXZWJDb3JlOjpTdG9yYWdlQmxvY2tp
bmdQb2xpY3k6OkJsb2NrVGhpcmRQYXJ0eToKICAgICAgICAgcmV0dXJuIGtXS0Jsb2NrVGhpcmRQ
YXJ0eVN0b3JhZ2U7Ci0gICAgY2FzZSBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6QmxvY2tBbGxT
dG9yYWdlOgorICAgIGNhc2UgV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5OjpCbG9ja0Fs
bDoKICAgICAgICAgcmV0dXJuIGtXS0Jsb2NrQWxsU3RvcmFnZTsKICAgICB9CiAKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCShyZXZp
c2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVu
Y2VzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzU4LDcgKzM1OCw3IEBAIGJvb2wgV0tQcmVmZXJl
bmNlc0dldENvb2tpZUVuYWJsZWQoV0tQcmUKIAogdm9pZCBXS1ByZWZlcmVuY2VzU2V0RWRpdGFi
bGVMaW5rQmVoYXZpb3IoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgV0tFZGl0YWJs
ZUxpbmtCZWhhdmlvciB3a0JlaGF2aW9yKQogewotICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZikt
PnNldEVkaXRhYmxlTGlua0JlaGF2aW9yKHRvRWRpdGFibGVMaW5rQmVoYXZpb3Iod2tCZWhhdmlv
cikpOworICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldEVkaXRhYmxlTGlua0JlaGF2aW9y
KHN0YXRpY19jYXN0PHVpbnQzMl90Pih0b0VkaXRhYmxlTGlua0JlaGF2aW9yKHdrQmVoYXZpb3Ip
KSk7CiB9CiAKIFdLRWRpdGFibGVMaW5rQmVoYXZpb3IgV0tQcmVmZXJlbmNlc0dldEVkaXRhYmxl
TGlua0JlaGF2aW9yKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpCkBAIC05OTgsMTIg
Kzk5OCwxMiBAQCBib29sIFdLUHJlZmVyZW5jZXNHZXRSZXF1ZXN0QW5pbWF0aW9uRnJhCiAKIHZv
aWQgV0tQcmVmZXJlbmNlc1NldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShXS1ByZWZlcmVuY2VzUmVm
IHByZWZlcmVuY2VzUmVmLCBXS1N0b3JhZ2VCbG9ja2luZ1BvbGljeSBwb2xpY3kpCiB7Ci0gICAg
dG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KHRvU3RvcmFn
ZUJsb2NraW5nUG9saWN5KHBvbGljeSkpOworICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNl
dFN0b3JhZ2VCbG9ja2luZ1BvbGljeShzdGF0aWNfY2FzdDx1aW50MzJfdD4odG9TdG9yYWdlQmxv
Y2tpbmdQb2xpY3kocG9saWN5KSkpOwogfQogCiBXS1N0b3JhZ2VCbG9ja2luZ1BvbGljeSBXS1By
ZWZlcmVuY2VzR2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVy
ZW5jZXNSZWYpCiB7Ci0gICAgcmV0dXJuIHRvQVBJKHN0YXRpY19jYXN0PFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k+KHRvSW1wbChwcmVmZXJlbmNlc1JlZikt
PnN0b3JhZ2VCbG9ja2luZ1BvbGljeSgpKSk7CisgICAgcmV0dXJuIHRvQVBJKHN0YXRpY19jYXN0
PFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeT4odG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+
c3RvcmFnZUJsb2NraW5nUG9saWN5KCkpKTsKIH0KIAogdm9pZCBXS1ByZWZlcmVuY2VzU2V0RGlh
Z25vc3RpY0xvZ2dpbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJv
b2wgZW5hYmxlZCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
ZWZlcmVuY2VzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1ByZWZlcmVuY2VzLm1tCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQkod29ya2luZyBjb3B5KQpAQCAt
MTc1LDI5ICsxNzUsMjkgQEAgLSAodm9pZClfc2V0VGVsZXBob25lTnVtYmVyRGV0ZWN0aW9uSXNF
bgogICAgIF9wcmVmZXJlbmNlcy0+c2V0VGVsZXBob25lTnVtYmVyUGFyc2luZ0VuYWJsZWQodGVs
ZXBob25lTnVtYmVyRGV0ZWN0aW9uSXNFbmFibGVkKTsKIH0KIAotc3RhdGljIFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgdG9TdG9yYWdlQmxvY2tpbmdQb2xp
Y3koX1dLU3RvcmFnZUJsb2NraW5nUG9saWN5IHBvbGljeSkKK3N0YXRpYyBXZWJDb3JlOjpTdG9y
YWdlQmxvY2tpbmdQb2xpY3kgdG9TdG9yYWdlQmxvY2tpbmdQb2xpY3koX1dLU3RvcmFnZUJsb2Nr
aW5nUG9saWN5IHBvbGljeSkKIHsKICAgICBzd2l0Y2ggKHBvbGljeSkgewogICAgIGNhc2UgX1dL
U3RvcmFnZUJsb2NraW5nUG9saWN5QWxsb3dBbGw6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbjo6QWxsb3dBbGxTdG9yYWdlOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6
U3RvcmFnZUJsb2NraW5nUG9saWN5OjpBbGxvd0FsbDsKICAgICBjYXNlIF9XS1N0b3JhZ2VCbG9j
a2luZ1BvbGljeUJsb2NrVGhpcmRQYXJ0eToKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luOjpCbG9ja1RoaXJkUGFydHlTdG9yYWdlOworICAgICAgICByZXR1cm4gV2ViQ29y
ZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5OjpCbG9ja1RoaXJkUGFydHk7CiAgICAgY2FzZSBfV0tT
dG9yYWdlQmxvY2tpbmdQb2xpY3lCbG9ja0FsbDoKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luOjpCbG9ja0FsbFN0b3JhZ2U7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpT
dG9yYWdlQmxvY2tpbmdQb2xpY3k6OkJsb2NrQWxsOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgIHJldHVybiBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6QWxsb3dBbGxT
dG9yYWdlOworICAgIHJldHVybiBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkFsbG93
QWxsOwogfQogCi1zdGF0aWMgX1dLU3RvcmFnZUJsb2NraW5nUG9saWN5IHRvQVBJKFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgcG9saWN5KQorc3RhdGljIF9X
S1N0b3JhZ2VCbG9ja2luZ1BvbGljeSB0b0FQSShXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xp
Y3kgcG9saWN5KQogewogICAgIHN3aXRjaCAocG9saWN5KSB7Ci0gICAgY2FzZSBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbjo6QWxsb3dBbGxTdG9yYWdlOgorICAgIGNhc2UgV2ViQ29yZTo6U3RvcmFn
ZUJsb2NraW5nUG9saWN5OjpBbGxvd0FsbDoKICAgICAgICAgcmV0dXJuIF9XS1N0b3JhZ2VCbG9j
a2luZ1BvbGljeUFsbG93QWxsOwotICAgIGNhc2UgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OkJs
b2NrVGhpcmRQYXJ0eVN0b3JhZ2U6CisgICAgY2FzZSBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQ
b2xpY3k6OkJsb2NrVGhpcmRQYXJ0eToKICAgICAgICAgcmV0dXJuIF9XS1N0b3JhZ2VCbG9ja2lu
Z1BvbGljeUJsb2NrVGhpcmRQYXJ0eTsKLSAgICBjYXNlIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
OjpCbG9ja0FsbFN0b3JhZ2U6CisgICAgY2FzZSBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xp
Y3k6OkJsb2NrQWxsOgogICAgICAgICByZXR1cm4gX1dLU3RvcmFnZUJsb2NraW5nUG9saWN5Qmxv
Y2tBbGw7CiAgICAgfQogCkBAIC0yMDcsMTIgKzIwNywxMiBAQCBzdGF0aWMgX1dLU3RvcmFnZUJs
b2NraW5nUG9saWN5IHRvQVBJKFdlCiAKIC0gKF9XS1N0b3JhZ2VCbG9ja2luZ1BvbGljeSlfc3Rv
cmFnZUJsb2NraW5nUG9saWN5CiB7Ci0gICAgcmV0dXJuIHRvQVBJKHN0YXRpY19jYXN0PFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k+KF9wcmVmZXJlbmNlcy0+
c3RvcmFnZUJsb2NraW5nUG9saWN5KCkpKTsKKyAgICByZXR1cm4gdG9BUEkoc3RhdGljX2Nhc3Q8
V2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5PihfcHJlZmVyZW5jZXMtPnN0b3JhZ2VCbG9j
a2luZ1BvbGljeSgpKSk7CiB9CiAKIC0gKHZvaWQpX3NldFN0b3JhZ2VCbG9ja2luZ1BvbGljeToo
X1dLU3RvcmFnZUJsb2NraW5nUG9saWN5KXBvbGljeQogewotICAgIF9wcmVmZXJlbmNlcy0+c2V0
U3RvcmFnZUJsb2NraW5nUG9saWN5KHRvU3RvcmFnZUJsb2NraW5nUG9saWN5KHBvbGljeSkpOwor
ICAgIF9wcmVmZXJlbmNlcy0+c2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KHN0YXRpY19jYXN0PHVp
bnQzMl90Pih0b1N0b3JhZ2VCbG9ja2luZ1BvbGljeShwb2xpY3kpKSk7CiB9CiAKIC0gKEJPT0wp
X29mZmxpbmVBcHBsaWNhdGlvbkNhY2hlSXNFbmFibGVkCkBAIC03MzMsMTUgKzczMywxNSBAQCAt
ICh2b2lkKV9zZXRTaG91bGRBbGxvd0Rlc2lnblN5c3RlbVVJRm9uCiBzdGF0aWMgX1dLRWRpdGFi
bGVMaW5rQmVoYXZpb3IgdG9BUEkoV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3IgYmVoYXZp
b3IpCiB7CiAgICAgc3dpdGNoIChiZWhhdmlvcikgewotICAgIGNhc2UgV2ViQ29yZTo6RWRpdGFi
bGVMaW5rRGVmYXVsdEJlaGF2aW9yOgorICAgIGNhc2UgV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVo
YXZpb3I6OkRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBfV0tFZGl0YWJsZUxpbmtCZWhhdmlvckRl
ZmF1bHQ7Ci0gICAgY2FzZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtBbHdheXNMaXZlOgorICAgIGNh
c2UgV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6OkFsd2F5c0xpdmU6CiAgICAgICAgIHJl
dHVybiBfV0tFZGl0YWJsZUxpbmtCZWhhdmlvckFsd2F5c0xpdmU7Ci0gICAgY2FzZSBXZWJDb3Jl
OjpFZGl0YWJsZUxpbmtPbmx5TGl2ZVdpdGhTaGlmdEtleToKKyAgICBjYXNlIFdlYkNvcmU6OkVk
aXRhYmxlTGlua0JlaGF2aW9yOjpPbmx5TGl2ZVdpdGhTaGlmdEtleToKICAgICAgICAgcmV0dXJu
IF9XS0VkaXRhYmxlTGlua0JlaGF2aW9yT25seUxpdmVXaXRoU2hpZnRLZXk7Ci0gICAgY2FzZSBX
ZWJDb3JlOjpFZGl0YWJsZUxpbmtMaXZlV2hlbk5vdEZvY3VzZWQ6CisgICAgY2FzZSBXZWJDb3Jl
OjpFZGl0YWJsZUxpbmtCZWhhdmlvcjo6TGl2ZVdoZW5Ob3RGb2N1c2VkOgogICAgICAgICByZXR1
cm4gX1dLRWRpdGFibGVMaW5rQmVoYXZpb3JMaXZlV2hlbk5vdEZvY3VzZWQ7Ci0gICAgY2FzZSBX
ZWJDb3JlOjpFZGl0YWJsZUxpbmtOZXZlckxpdmU6CisgICAgY2FzZSBXZWJDb3JlOjpFZGl0YWJs
ZUxpbmtCZWhhdmlvcjo6TmV2ZXJMaXZlOgogICAgICAgICByZXR1cm4gX1dLRWRpdGFibGVMaW5r
QmVoYXZpb3JOZXZlckxpdmU7CiAgICAgfQogICAgIApAQCAtNzUzLDE5ICs3NTMsMTkgQEAgc3Rh
dGljIFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yIHRvRQogewogICAgIHN3aXRjaCAod2tC
ZWhhdmlvcikgewogICAgIGNhc2UgX1dLRWRpdGFibGVMaW5rQmVoYXZpb3JEZWZhdWx0OgotICAg
ICAgICByZXR1cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5rRGVmYXVsdEJlaGF2aW9yOworICAgICAg
ICByZXR1cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6OkRlZmF1bHQ7CiAgICAgY2Fz
ZSBfV0tFZGl0YWJsZUxpbmtCZWhhdmlvckFsd2F5c0xpdmU6Ci0gICAgICAgIHJldHVybiBXZWJD
b3JlOjpFZGl0YWJsZUxpbmtBbHdheXNMaXZlOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6RWRp
dGFibGVMaW5rQmVoYXZpb3I6OkFsd2F5c0xpdmU7CiAgICAgY2FzZSBfV0tFZGl0YWJsZUxpbmtC
ZWhhdmlvck9ubHlMaXZlV2l0aFNoaWZ0S2V5OgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6RWRp
dGFibGVMaW5rT25seUxpdmVXaXRoU2hpZnRLZXk7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpF
ZGl0YWJsZUxpbmtCZWhhdmlvcjo6T25seUxpdmVXaXRoU2hpZnRLZXk7CiAgICAgY2FzZSBfV0tF
ZGl0YWJsZUxpbmtCZWhhdmlvckxpdmVXaGVuTm90Rm9jdXNlZDoKLSAgICAgICAgcmV0dXJuIFdl
YkNvcmU6OkVkaXRhYmxlTGlua0xpdmVXaGVuTm90Rm9jdXNlZDsKKyAgICAgICAgcmV0dXJuIFdl
YkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpMaXZlV2hlbk5vdEZvY3VzZWQ7CiAgICAgY2Fz
ZSBfV0tFZGl0YWJsZUxpbmtCZWhhdmlvck5ldmVyTGl2ZToKLSAgICAgICAgcmV0dXJuIFdlYkNv
cmU6OkVkaXRhYmxlTGlua05ldmVyTGl2ZTsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRh
YmxlTGlua0JlaGF2aW9yOjpOZXZlckxpdmU7CiAgICAgfQogICAgIAogICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgIHJldHVybiBXZWJDb3JlOjpFZGl0YWJsZUxpbmtOZXZlckxpdmU7Cisg
ICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpOZXZlckxpdmU7CiB9CiAK
IC0gKF9XS0VkaXRhYmxlTGlua0JlaGF2aW9yKV9lZGl0YWJsZUxpbmtCZWhhdmlvcgpAQCAtNzc1
LDcgKzc3NSw3IEBAIC0gKF9XS0VkaXRhYmxlTGlua0JlaGF2aW9yKV9lZGl0YWJsZUxpbmsKIAog
LSAodm9pZClfc2V0RWRpdGFibGVMaW5rQmVoYXZpb3I6KF9XS0VkaXRhYmxlTGlua0JlaGF2aW9y
KWVkaXRhYmxlTGlua0JlaGF2aW9yCiB7Ci0gICAgX3ByZWZlcmVuY2VzLT5zZXRFZGl0YWJsZUxp
bmtCZWhhdmlvcih0b0VkaXRhYmxlTGlua0JlaGF2aW9yKGVkaXRhYmxlTGlua0JlaGF2aW9yKSk7
CisgICAgX3ByZWZlcmVuY2VzLT5zZXRFZGl0YWJsZUxpbmtCZWhhdmlvcihzdGF0aWNfY2FzdDx1
aW50MzJfdD4odG9FZGl0YWJsZUxpbmtCZWhhdmlvcihlZGl0YWJsZUxpbmtCZWhhdmlvcikpKTsK
IH0KIAogLSAodm9pZClfc2V0QVZGb3VuZGF0aW9uRW5hYmxlZDooQk9PTCllbmFibGVkCkluZGV4
OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCShyZXZpc2lvbiAyNjk4MzApCisr
KyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMiw3ICsxMjIsNyBAQCB2b2lkIFdlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjp1cGRhCiB7CiAgICAgV2ViUGFnZTo6dXBkYXRlUHJl
ZmVyZW5jZXNHZW5lcmF0ZWQoc3RvcmUpOwogCi0gICAgbV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kg
PSBzdGF0aWNfY2FzdDxTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5PihzdG9y
ZS5nZXRVSW50MzJWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6c3RvcmFnZUJsb2NraW5n
UG9saWN5S2V5KCkpKTsKKyAgICBtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeSA9IHN0YXRpY19jYXN0
PFN0b3JhZ2VCbG9ja2luZ1BvbGljeT4oc3RvcmUuZ2V0VUludDMyVmFsdWVGb3JLZXkoV2ViUHJl
ZmVyZW5jZXNLZXk6OnN0b3JhZ2VCbG9ja2luZ1BvbGljeUtleSgpKSk7CiAgICAgc2V0U2hvdWxk
VXNlU2hvcnRUaW1lb3V0KHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tl
eTo6c2hvdWxkVXNlU2VydmljZVdvcmtlclNob3J0VGltZW91dEtleSgpKSk7CiB9CiAKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaAkocmV2aXNpb24gMjY5ODMwKQorKysgU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24uaAkod29ya2luZyBjb3B5KQpAQCAtMTAyLDcgKzEwMiw3IEBAIHByaXZhdGU6CiAgICAgV2Vi
UGFnZVByb3h5SWRlbnRpZmllciBtX3dlYlBhZ2VQcm94eUlEOwogICAgIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyIG1fcGFnZUlEOwogCi0gICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OlN0b3Jh
Z2VCbG9ja2luZ1BvbGljeSBtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeSB7IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkFsbG93QWxsU3RvcmFnZSB9OworICAg
IFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeSB7
IFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QWxsb3dBbGwgfTsKIAogICAgIEhhc2hT
ZXQ8c3RkOjp1bmlxdWVfcHRyPFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudD4+IG1fbG9h
ZGVyczsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBGaW5kQ2xpZW50QnlJZGVudGlmaWVyQ2FsbGJh
Y2s+IG1fZmluZENsaWVudEJ5SWRlbnRpZmllclJlcXVlc3RzOwpJbmRleDogU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDI2OTgzMCkKKysr
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zNzM1LDcgKzM3MzUsNyBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2Vz
KGNvbnN0IFdlCiAgICAgc2V0dGluZ3Muc2V0VXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeShz
dGF0aWNfY2FzdDxXZWJDb3JlOjpVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5PihzdG9yZS5n
ZXRVSW50MzJWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6dXNlckludGVyZmFjZURpcmVj
dGlvblBvbGljeUtleSgpKSkpOwogICAgIHNldHRpbmdzLnNldFN5c3RlbUxheW91dERpcmVjdGlv
bihzdGF0aWNfY2FzdDxUZXh0RGlyZWN0aW9uPihzdG9yZS5nZXRVSW50MzJWYWx1ZUZvcktleShX
ZWJQcmVmZXJlbmNlc0tleTo6c3lzdGVtTGF5b3V0RGlyZWN0aW9uS2V5KCkpKSk7CiAgICAgc2V0
dGluZ3Muc2V0SmF2YVNjcmlwdFJ1bnRpbWVGbGFncyhzdGF0aWNfY2FzdDxSdW50aW1lRmxhZ3M+
KHN0b3JlLmdldFVJbnQzMlZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpqYXZhU2NyaXB0
UnVudGltZUZsYWdzS2V5KCkpKSk7Ci0gICAgc2V0dGluZ3Muc2V0U3RvcmFnZUJsb2NraW5nUG9s
aWN5KHN0YXRpY19jYXN0PFNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k+KHN0
b3JlLmdldFVJbnQzMlZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpzdG9yYWdlQmxvY2tp
bmdQb2xpY3lLZXkoKSkpKTsKKyAgICBzZXR0aW5ncy5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3ko
c3RhdGljX2Nhc3Q8U3RvcmFnZUJsb2NraW5nUG9saWN5PihzdG9yZS5nZXRVSW50MzJWYWx1ZUZv
cktleShXZWJQcmVmZXJlbmNlc0tleTo6c3RvcmFnZUJsb2NraW5nUG9saWN5S2V5KCkpKSk7CiAg
ICAgc2V0dGluZ3Muc2V0RnJhbWVGbGF0dGVuaW5nKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShX
ZWJQcmVmZXJlbmNlc0tleTo6ZnJhbWVGbGF0dGVuaW5nRW5hYmxlZEtleSgpKSA/IFdlYkNvcmU6
OkZyYW1lRmxhdHRlbmluZzo6RnVsbHlFbmFibGVkIDogV2ViQ29yZTo6RnJhbWVGbGF0dGVuaW5n
OjpEaXNhYmxlZCk7CiAgICAgc2V0dGluZ3Muc2V0RWRpdGFibGVMaW5rQmVoYXZpb3Ioc3RhdGlj
X2Nhc3Q8V2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I+KHN0b3JlLmdldFVJbnQzMlZhbHVl
Rm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjplZGl0YWJsZUxpbmtCZWhhdmlvcktleSgpKSkpOwog
I2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKQEAgLTM4MzYsNyArMzgzNiw3IEBAIHZvaWQgV2Vi
UGFnZTo6cmVtb3ZlRGF0YURldGVjdGVkTGlua3MoQ28KIAogdm9pZCBXZWJQYWdlOjpkZXRlY3RE
YXRhSW5BbGxGcmFtZXModWludDY0X3QgdHlwZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29u
c3QgRGF0YURldGVjdGlvblJlc3VsdCYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGF1
dG8gZGF0YURldGVjdG9yVHlwZXMgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpEYXRhRGV0ZWN0b3JU
eXBlcz4odHlwZXMpOworICAgIGF1dG8gZGF0YURldGVjdG9yVHlwZXMgPSBPcHRpb25TZXQ8RGF0
YURldGVjdG9yVHlwZXM+Ojpmcm9tUmF3KHR5cGVzKTsKICAgICBmb3IgKGF1dG8gZnJhbWUgPSBt
YWtlUmVmUHRyKCZtX3BhZ2UtPm1haW5GcmFtZSgpKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRy
ZWUoKS50cmF2ZXJzZU5leHQoKSkgewogICAgICAgICBhdXRvIGRvY3VtZW50ID0gbWFrZVJlZlB0
cihmcmFtZS0+ZG9jdW1lbnQoKSk7CiAgICAgICAgIGlmICghZG9jdW1lbnQpCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAy
MC0xMS0xNSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAgU3RhbmRh
cmRpemUgZW51bXMgdGhhdCBhcmUgdXNlZCBieSBTZXR0aW5ncyBpbiBwcmVwZXJhdGlvbiBmb3Ig
YXV0b2dlbmVyYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxODk2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFtXSVBdCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lLm1tOgorICAgICAgICAq
IFdlYlZpZXcvV2ViVmlldy5tbToKKwogMjAyMC0xMS0xMyAgU2FtIFdlaW5pZyAgPHdlaW5pZ0Bh
cHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBzb21lIG1vcmUgV2ViS2l0IGFuZCBXZWJLaXRMZWdh
Y3kgcHJlZmVyZW5jZXMgYm91bmQgdG8gU2V0dGluZ3MgdG8gV2ViUHJlZmVyZW5jZXMueWFtbApJ
bmRleDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCShyZXZp
c2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1l
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yMDcsMTggKzIwNywxOCBAQCBXZWJDb3JlOjpFZGl0YWJs
ZUxpbmtCZWhhdmlvciBjb3JlKFdlYktpCiAgICAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAg
ICAgc3dpdGNoIChlZGl0YWJsZUxpbmtCZWhhdmlvcikgewogICAgICAgICBjYXNlIFdlYktpdEVk
aXRhYmxlTGlua0RlZmF1bHRCZWhhdmlvcjoKLSAgICAgICAgICAgIHJldHVybiBFZGl0YWJsZUxp
bmtEZWZhdWx0QmVoYXZpb3I7CisgICAgICAgICAgICByZXR1cm4gRWRpdGFibGVMaW5rQmVoYXZp
b3I6OkRlZmF1bHQ7CiAgICAgICAgIGNhc2UgV2ViS2l0RWRpdGFibGVMaW5rQWx3YXlzTGl2ZToK
LSAgICAgICAgICAgIHJldHVybiBFZGl0YWJsZUxpbmtBbHdheXNMaXZlOworICAgICAgICAgICAg
cmV0dXJuIEVkaXRhYmxlTGlua0JlaGF2aW9yOjpBbHdheXNMaXZlOwogICAgICAgICBjYXNlIFdl
YktpdEVkaXRhYmxlTGlua09ubHlMaXZlV2l0aFNoaWZ0S2V5OgotICAgICAgICAgICAgcmV0dXJu
IEVkaXRhYmxlTGlua09ubHlMaXZlV2l0aFNoaWZ0S2V5OworICAgICAgICAgICAgcmV0dXJuIEVk
aXRhYmxlTGlua0JlaGF2aW9yOjpPbmx5TGl2ZVdpdGhTaGlmdEtleTsKICAgICAgICAgY2FzZSBX
ZWJLaXRFZGl0YWJsZUxpbmtMaXZlV2hlbk5vdEZvY3VzZWQ6Ci0gICAgICAgICAgICByZXR1cm4g
RWRpdGFibGVMaW5rTGl2ZVdoZW5Ob3RGb2N1c2VkOworICAgICAgICAgICAgcmV0dXJuIEVkaXRh
YmxlTGlua0JlaGF2aW9yOjpMaXZlV2hlbk5vdEZvY3VzZWQ7CiAgICAgICAgIGNhc2UgV2ViS2l0
RWRpdGFibGVMaW5rTmV2ZXJMaXZlOgotICAgICAgICAgICAgcmV0dXJuIEVkaXRhYmxlTGlua05l
dmVyTGl2ZTsKKyAgICAgICAgICAgIHJldHVybiBFZGl0YWJsZUxpbmtCZWhhdmlvcjo6TmV2ZXJM
aXZlOwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gRWRpdGFi
bGVMaW5rRGVmYXVsdEJlaGF2aW9yOworICAgIHJldHVybiBFZGl0YWJsZUxpbmtCZWhhdmlvcjo6
RGVmYXVsdDsKIH0KIAogV2ViQ29yZTo6VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhh
dmlvciBjb3JlKFdlYlRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IgYmVoYXZp
b3IpCkBAIC0yMjYsMTQgKzIyNiwxNCBAQCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uU3VibWVudUlu
Y2x1c2lvbkJlCiAgICAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAgICAgc3dpdGNoIChiZWhh
dmlvcikgewogICAgICAgICBjYXNlIFdlYlRleHREaXJlY3Rpb25TdWJtZW51TmV2ZXJJbmNsdWRl
ZDoKLSAgICAgICAgICAgIHJldHVybiBUZXh0RGlyZWN0aW9uU3VibWVudU5ldmVySW5jbHVkZWQ7
CisgICAgICAgICAgICByZXR1cm4gVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlv
cjo6TmV2ZXJJbmNsdWRlZDsKICAgICAgICAgY2FzZSBXZWJUZXh0RGlyZWN0aW9uU3VibWVudUF1
dG9tYXRpY2FsbHlJbmNsdWRlZDoKLSAgICAgICAgICAgIHJldHVybiBUZXh0RGlyZWN0aW9uU3Vi
bWVudUF1dG9tYXRpY2FsbHlJbmNsdWRlZDsKKyAgICAgICAgICAgIHJldHVybiBUZXh0RGlyZWN0
aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yOjpBdXRvbWF0aWNhbGx5SW5jbHVkZWQ7CiAgICAg
ICAgIGNhc2UgV2ViVGV4dERpcmVjdGlvblN1Ym1lbnVBbHdheXNJbmNsdWRlZDoKLSAgICAgICAg
ICAgIHJldHVybiBUZXh0RGlyZWN0aW9uU3VibWVudUFsd2F5c0luY2x1ZGVkOworICAgICAgICAg
ICAgcmV0dXJuIFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3I6OkFsd2F5c0lu
Y2x1ZGVkOwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gVGV4
dERpcmVjdGlvblN1Ym1lbnVOZXZlckluY2x1ZGVkOworICAgIHJldHVybiBUZXh0RGlyZWN0aW9u
U3VibWVudUluY2x1c2lvbkJlaGF2aW9yOjpOZXZlckluY2x1ZGVkOwogfQogCiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0JKHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtNzU1LDE5ICs3NTUsMTkgQEAgc3Rh
dGljIFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGUga2l0KFdlYkNvcgogICAgIHJldHVybiBXZWJQYWdl
VmlzaWJpbGl0eVN0YXRlVmlzaWJsZTsKIH0KIAotc3RhdGljIFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgY29yZShXZWJTdG9yYWdlQmxvY2tpbmdQb2xpY3kg
c3RvcmFnZUJsb2NraW5nUG9saWN5KQorc3RhdGljIFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1Bv
bGljeSBjb3JlKFdlYlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBzdG9yYWdlQmxvY2tpbmdQb2xpY3kp
CiB7CiAgICAgc3dpdGNoIChzdG9yYWdlQmxvY2tpbmdQb2xpY3kpIHsKICAgICBjYXNlIFdlYkFs
bG93QWxsU3RvcmFnZToKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpB
bGxvd0FsbFN0b3JhZ2U7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQ
b2xpY3k6OkFsbG93QWxsOwogICAgIGNhc2UgV2ViQmxvY2tUaGlyZFBhcnR5U3RvcmFnZToKLSAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpCbG9ja1RoaXJkUGFydHlTdG9y
YWdlOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5OjpCbG9j
a1RoaXJkUGFydHk7CiAgICAgY2FzZSBXZWJCbG9ja0FsbFN0b3JhZ2U6Ci0gICAgICAgIHJldHVy
biBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6QmxvY2tBbGxTdG9yYWdlOworICAgICAgICByZXR1
cm4gV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5OjpCbG9ja0FsbDsKICAgICBkZWZhdWx0
OgogICAgICAgICAvLyBJZiBhbiBpbnZhbGlkIHZhbHVlIHdhcyBzZXQgKGFzIGNhbiBiZSBkb25l
IHZpYSBOU1VzZXJEZWZhdWx0cyksIGZhbGwgYmFjayB0bwotICAgICAgICAvLyB0aGUgZGVmYXVs
dCB2YWx1ZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OkFsbG93QWxsU3RvcmFnZS4KLSAgICAg
ICAgcmV0dXJuIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpBbGxvd0FsbFN0b3JhZ2U7CisgICAg
ICAgIC8vIHRoZSBkZWZhdWx0IHZhbHVlLCBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6
OkFsbG93QWxsLgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5
OjpBbGxvd0FsbDsKICAgICB9CiB9CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2OTgzMCkKKysrIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYxIEBACisyMDIw
LTExLTE1ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBTdGFuZGFy
ZGl6ZSBlbnVtcyB0aGF0IGFyZSB1c2VkIGJ5IFNldHRpbmdzIGluIHByZXBlcmF0aW9uIGZvciBh
dXRvZ2VuZXJhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE4OTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgW1dJUF0KKworICAgICAgICAqIGVkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWxpZ2F0dXJl
LTAwMy5odG1sOgorICAgICAgICAqIGVkaXRpbmcvZGVsZXRpbmcvcGFyYWdyYXBoLWluLXByZXNl
cnZlTmV3bGluZS5odG1sOgorICAgICAgICAqIGVkaXRpbmcvZGVsZXRpbmcvc21hcnQtZWRpdGlu
Zy1kaXNhYmxlZC13aW4uaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2RlbGV0aW5nL3doaXRlc3Bh
Y2UtcHJlLTEuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL3F1ZXJ5LWNvbW1h
bmQtc3RhdGUuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL3F1ZXJ5LXRleHQt
YWxpZ25tZW50Lmh0bWw6CisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9yZW1vdmUtZm9y
bWF0LW11bHRpcGxlLWVsZW1lbnRzLXdpbi5odG1sOgorICAgICAgICAqIGVkaXRpbmcvZXhlY0Nv
bW1hbmQvdG9nZ2xlLWNvbXBvdW5kLXN0eWxlcy5odG1sOgorICAgICAgICAqIGVkaXRpbmcvZXhl
Y0NvbW1hbmQvdG9nZ2xlLWxpbmstd2luLmh0bWw6CisgICAgICAgICogZWRpdGluZy9leGVjQ29t
bWFuZC90b2dnbGUtdW5saW5rLXdpbi5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9u
LzUxOTUxNjYtMS5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uLzUzNTQ0NTUtMS5o
dG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2NsaWNrLWluLW1hcmdpbnMtaW5zaWRl
LWVkaXRhYmxlLWRpdi5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2NsaWNrLWlu
LXBhZGRpbmctd2l0aC1tdWx0aXBsZS1saW5lLWJveGVzLmh0bWw6CisgICAgICAgICogZWRpdGlu
Zy9zZWxlY3Rpb24vY29udGV4dC1tZW51LXRleHQtc2VsZWN0aW9uLWxvb2t1cC5odG1sOgorICAg
ICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2NvbnRleHQtbWVudS10ZXh0LXNlbGVjdGlvbi5odG1s
OgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1hZnRlci1tb3VzZS1zZWxlY3Rp
b24uaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWFm
dGVyLWRvdWJsZS1jbGljay5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2V4dGVu
ZC1zZWxlY3Rpb24tZW5jbG9zaW5nLWJsb2NrLXdpbi5odG1sOgorICAgICAgICAqIGVkaXRpbmcv
c2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0LTEuaHRtbDoKKyAgICAg
ICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC0y
Lmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5
LWNyYXNoLXRlc3QtMy5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnkt
d29yZC12aXN1YWxseS1jcmFzaC10ZXN0LTQuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVj
dGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC01Lmh0bWw6CisgICAgICAgICog
ZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWNyYXNoLXRlc3QtY3NzLWdl
bmVyYXRlZC1jb250ZW50Lmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1i
eS13b3JkLXZpc3VhbGx5LWNyYXNoLXRlc3QtdGV4dGFyZWEuaHRtbDoKKyAgICAgICAgKiBlZGl0
aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktaW5saW5lLWJsb2NrLXBvc2l0aW9u
ZWQtZWxlbWVudC5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29y
ZC12aXN1YWxseS1tdWx0aS1saW5lLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24v
bW92ZS1ieS13b3JkLXZpc3VhbGx5LW11bHRpLXNwYWNlLmh0bWw6CisgICAgICAgICogZWRpdGlu
Zy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LW51bGwtYm94Lmh0bWw6CisgICAgICAg
ICogZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LXNpbmdsZS1zcGFjZS1p
bmxpbmUtZWxlbWVudC5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnkt
d29yZC12aXN1YWxseS1zaW5nbGUtc3BhY2Utb25lLWVsZW1lbnQuaHRtbDoKKyAgICAgICAgKiBl
ZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktdGV4dGFyZWEuaHRtbDoKKyAg
ICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktd3JvbmctbGVm
dC1yaWdodC5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL3Byb2dyYW1tYXRpYy1z
ZWxlY3Rpb24tb24tbWFjLWlzLWRpcmVjdGlvbmxlc3MuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5n
L3NlbGVjdGlvbi9ydGwtbW92ZS1zZWxlY3Rpb24tcmlnaHQtbGVmdC5odG1sOgorICAgICAgICAq
IGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1leHRlbmQtc2hvdWxkLW5vdC1tb3ZlLWFjcm9z
cy1jYXJldC1vbi1tYWMuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9zaGlmdC1j
bGljay5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL3VzZXItc2VsZWN0LWFsbC13
aXRoLXNoaWZ0Lmh0bWw6CisgICAgICAgICogZWRpdGluZy9zcGVsbGluZy9jb3B5LXBhc3RlLWNy
YXNoLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zdHlsZS9pZnJhbWUtb25sb2FkLWNyYXNoLXdp
bi5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc3R5bGUvbWFrZS10ZXh0LXdyaXRpbmctZGlyZWN0
aW9uLWlubGluZS13aW4uaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3N0eWxlL3B1c2gtZG93bi1m
b250LXN0eWxlcy13aW4uaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3N0eWxlL3B1c2gtZG93bi1p
bXBsaWNpdC1zdHlsZXMtYXJvdW5kLWxpc3Qtd2luLmh0bWw6CisgICAgICAgICogZWRpdGluZy9z
dHlsZS90b2dnbGUtc3R5bGUtYm9sZC1pdGFsaWMtbWl4ZWQtZWRpdGFiaWxpdHkuaHRtbDoKKyAg
ICAgICAgKiBlZGl0aW5nL3N0eWxlL3RvZ2dsZS1zdHlsZS1ib2xkLWl0YWxpYy5odG1sOgorICAg
ICAgICAqIGZhc3QvZXZlbnRzL2JhY2tzcGFjZS1uYXZpZ2F0ZXMtYmFjay5odG1sOgorICAgICAg
ICAqIGZhc3QvZm9ybXMvc2VsZWN0aW9uLWRpcmVjdGlvbi5odG1sOgorCiAyMDIwLTExLTE1ICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBXZWJSVEMg
U0ZyYW1lIHRyYW5zZm9ybQpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxl
dGUtbGlnYXR1cmUtMDAzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9k
ZWxldGluZy9kZWxldGUtbGlnYXR1cmUtMDAzLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExh
eW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWxpZ2F0dXJlLTAwMy5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCiAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAg
ICAgICBydW5UZXN0T24oIm1hYyIpOwotICAgICAgICAgICAgcnVuVGVzdE9uKCJ3aW4iKTsKKyAg
ICAgICAgICAgIHJ1blRlc3RPbigid2luZG93cyIpOwogICAgICAgICAgICAgcnVuVGVzdE9uKCJ1
bml4Iik7CiAgICAgICAgIH0KICAgICAgICAgPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9l
ZGl0aW5nL2RlbGV0aW5nL3BhcmFncmFwaC1pbi1wcmVzZXJ2ZU5ld2xpbmUuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3BhcmFncmFwaC1pbi1wcmVzZXJ2
ZU5ld2xpbmUuaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9k
ZWxldGluZy9wYXJhZ3JhcGgtaW4tcHJlc2VydmVOZXdsaW5lLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTI5LDcgKzI5LDcgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogTWFya3VwLmRlc2NyaXB0
aW9uKGRlc2NyaXB0aW9uLnRleHRDb250ZW50KTsKIE1hcmt1cC5kdW1wKCJ0ZXN0IiwgImluaXRp
YWwgc3RhdGUiKTsKIHJ1blRlc3RzT24oIm1hYyIpOwotcnVuVGVzdHNPbigid2luIik7CitydW5U
ZXN0c09uKCJ3aW5kb3dzIik7CiBydW5UZXN0c09uKCJ1bml4Iik7CiA8L3NjcmlwdD4KIDwvYm9k
eT4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvc21hcnQtZWRpdGluZy1kaXNh
YmxlZC13aW4uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5n
L3NtYXJ0LWVkaXRpbmctZGlzYWJsZWQtd2luLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExh
eW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvc21hcnQtZWRpdGluZy1kaXNhYmxlZC13aW4uaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtOCw3ICs4LDcgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CiAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQodHJ1ZSk7CiB9CiBpZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0
RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiAKIGZ1bmN0aW9uIGVkaXRpbmdUZXN0KCkgewog
ICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2Iik7CkluZGV4OiBMYXlv
dXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3doaXRlc3BhY2UtcHJlLTEuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3doaXRlc3BhY2UtcHJlLTEuaHRtbAko
cmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy93aGl0ZXNw
YWNlLXByZS0xLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDYgQEAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQogTWFya3VwLmRlc2NyaXB0aW9uKGRlc2NyaXB0aW9uLnRleHRDb250ZW50
KTsKIE1hcmt1cC5kdW1wKCJ0ZXN0IiwgImluaXRpYWwgc3RhdGUiKTsKIHJ1blRlc3RzT24oIm1h
YyIpOwotcnVuVGVzdHNPbigid2luIik7CitydW5UZXN0c09uKCJ3aW5kb3dzIik7CiBydW5UZXN0
c09uKCJ1bml4Iik7CiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0Nv
bW1hbmQvcXVlcnktY29tbWFuZC1zdGF0ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2VkaXRpbmcvZXhlY0NvbW1hbmQvcXVlcnktY29tbWFuZC1zdGF0ZS5odG1sCShyZXZpc2lvbiAy
Njk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3F1ZXJ5LWNvbW1hbmQt
c3RhdGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTE3LDcgKzExNyw3IEBAIGZ1bmN0aW9uIHJ1
blRlc3RzKGVkaXRpbmdCZWhhdmlvcikgewogICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3Ry
aWtlVGhyb3VnaCIsICdoZWxsbyA8cz53b3JsZCBXZWJLaXQ8L3M+Jywgc2VsZWN0Rmlyc3RUd29X
b3JkcywgeydtYWMnOiBmYWxzZSwgJ3dpbic6IHRydWV9W2VkaXRpbmdCZWhhdmlvcl0pOwogfQog
Ci1ydW5UZXN0cygnd2luJyk7CitydW5UZXN0cygnd2luZG93cycpOwogZGVidWcoJycpCiBydW5U
ZXN0cygnbWFjJyk7CiAKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvcXVl
cnktdGV4dC1hbGlnbm1lbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5n
L2V4ZWNDb21tYW5kL3F1ZXJ5LXRleHQtYWxpZ25tZW50Lmh0bWwJKHJldmlzaW9uIDI2OTgzMCkK
KysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvcXVlcnktdGV4dC1hbGlnbm1lbnQu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTEwLDcgKzExMCw3IEBAIGZ1bmN0aW9uIHJ1blJhbmdl
VGVzdHMoZWRpdGluZ0JlaGF2aW9yKQogfQogCiBkZWJ1ZygnJyk7Ci1ydW5SYW5nZVRlc3RzKCd3
aW4nKTsKK3J1blJhbmdlVGVzdHMoJ3dpbmRvd3MnKTsKIGRlYnVnKCcnKTsKIHJ1blJhbmdlVGVz
dHMoJ21hYycpOwogCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3JlbW92
ZS1mb3JtYXQtbXVsdGlwbGUtZWxlbWVudHMtd2luLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9yZW1vdmUtZm9ybWF0LW11bHRpcGxlLWVsZW1lbnRz
LXdpbi5odG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWND
b21tYW5kL3JlbW92ZS1mb3JtYXQtbXVsdGlwbGUtZWxlbWVudHMtd2luLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEzLDcgKzEzLDcgQEAgdmFyIHRlc3RDb250YWluZXIgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZQogdGVzdENvbnRhaW5lci5jb250ZW50RWRpdGFibGUgPSB0cnVlOwogZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZCh0ZXN0Q29udGFpbmVyKTsKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQot
ICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbicpOworICAgIGlu
dGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbmRvd3MnKTsKIAogZnVuY3Rp
b24gdGVzdFJlbW92ZUZvcm1hdChpbml0aWFsQ29udGVudHMsIHNlbGVjdG9yLCBleHBlY3RlZCkK
IHsKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvdG9nZ2xlLWNvbXBvdW5k
LXN0eWxlcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1h
bmQvdG9nZ2xlLWNvbXBvdW5kLXN0eWxlcy5odG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlv
dXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3RvZ2dsZS1jb21wb3VuZC1zdHlsZXMuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUsNyBAQCBmdW5jdGlvbiB0ZXN0U2luZ2xlVG9nZ2xl
KHRvZ2dsZUNvbW1hbmQsCiAgICAgICAgIHRlc3RGYWlsZWQoYWN0aW9uICsgJyIsIGV4cGVjdGVk
ICInICsgZXhwZWN0ZWRDb250ZW50cyArICciJyk7CiB9CiAKLXBsYXRmb3JtcyA9IFsnbWFjJywg
J3dpbicsICd1bml4J107CitwbGF0Zm9ybXMgPSBbJ21hYycsICd3aW5kb3dzJywgJ3VuaXgnXTsK
IAogZm9yICh2YXIgaSA9IDA7IGkgPCBwbGF0Zm9ybXMubGVuZ3RoOyBpKyspIHsKICAgICBwbGF0
Zm9ybSA9IHBsYXRmb3Jtc1tpXTsKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1h
bmQvdG9nZ2xlLWxpbmstd2luLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGlu
Zy9leGVjQ29tbWFuZC90b2dnbGUtbGluay13aW4uaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysg
TGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC90b2dnbGUtbGluay13aW4uaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMTMsNyArMTMsNyBAQCB2YXIgdGVzdENvbnRhaW5lciA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lCiB0ZXN0Q29udGFpbmVyLmNvbnRlbnRFZGl0YWJsZSA9IHRydWU7CiBkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKHRlc3RDb250YWluZXIpOwogaWYgKHdpbmRvdy5pbnRlcm5h
bHMpCi0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcigid2luIik7Cisg
ICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcigid2luZG93cyIpOwogCiBm
dW5jdGlvbiB0ZXN0U2luZ2xlVG9nZ2xlKHRvZ2dsZUNvbW1hbmQsIGluaXRpYWxDb250ZW50cywg
c2VsZWN0b3IsIGV4cGVjdGVkQ29udGVudHMpCiB7CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5n
L2V4ZWNDb21tYW5kL3RvZ2dsZS11bmxpbmstd2luLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC90b2dnbGUtdW5saW5rLXdpbi5odG1sCShyZXZpc2lv
biAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3RvZ2dsZS11bmxp
bmstd2luLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTUxLDcgKzUxLDcgQEAgZnVuY3Rpb24gc2Vs
ZWN0TGFzdFdvcmQoY29udGFpbmVyKSB7CiB9CiAKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luJyk7CisgICBpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiAKIHRlc3RTaW5nbGVU
b2dnbGUoInVubGluayIsICdoZWxsbyA8Yj53b3JsZDwvYj4nLCBzZWxlY3RBbGwsICdoZWxsbyA8
Yj53b3JsZDwvYj4nKTsKIHRlc3RTaW5nbGVUb2dnbGUoInVubGluayIsICc8YSBocmVmPSJodHRw
Oi8vd2Via2l0Lm9yZy8iPjx1PmhlbGxvIHdvcmxkPC91PjwvYT4nLCBzZWxlY3RBbGwsICc8dT5o
ZWxsbyB3b3JsZDwvdT4nKTsKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uLzUx
OTUxNjYtMS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
LzUxOTUxNjYtMS5odG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi81MTk1MTY2LTEuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsNyBA
QCBmdW5jdGlvbiBydW5UZXN0KHBsYXRmb3JtLCBleHBlY3RlZFRleHQpCiBpZiAod2luZG93LnRl
c3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpCiAgICAgcnVuVGVzdCgnbWFjJywgJ3Nob3VsZCBiZSBzJyk7Ci0gICAgcnVuVGVzdCgnd2lu
JywgJ2hvdWxkIGJlICcpOworICAgIHJ1blRlc3QoJ3dpbmRvd3MnLCAnaG91bGQgYmUgJyk7CiB9
IGVsc2UgewogICAgIGxvZygiRmFpbHVyZTogVG8gdGVzdCBtYW51YWxseSwgc2VsZWN0IHRoZSBn
cmVlbiB0ZXh0ICIgKwogICAgICAgICAic3RhcnRpbmcgYXQgdGhlIGVuZCB2aWEgZG91YmxlLWNs
aWNrIChpLmUuIHdvcmQgZ3JhbnVsYXJpdHkpLCB0aGVuIHNoaWZ0K3JpZ2h0LWFycm93LiAiICsK
SW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uLzUzNTQ0NTUtMS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uLzUzNTQ0NTUtMS5odG1sCShy
ZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi81MzU0NDU1
LTEuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQCBpZiAod2luZG93LmV2ZW50
U2VuZGVyICYmIHdpbmRvdy50ZXN0UnVuCiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAK
ICAgICB0ZXN0KCdtYWMnLCAncmVzdWx0bWFjJyk7Ci0gICAgdGVzdCgnd2luJywgJ3Jlc3VsdHdp
bicpOworICAgIHRlc3QoJ3dpbmRvd3MnLCAncmVzdWx0d2luJyk7CiAgICAgdGVzdCgndW5peCcs
ICdyZXN1bHR1bml4Jyk7CiB9CiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcv
c2VsZWN0aW9uL2NsaWNrLWluLW1hcmdpbnMtaW5zaWRlLWVkaXRhYmxlLWRpdi5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2NsaWNrLWluLW1hcmdpbnMt
aW5zaWRlLWVkaXRhYmxlLWRpdi5odG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0
cy9lZGl0aW5nL3NlbGVjdGlvbi9jbGljay1pbi1tYXJnaW5zLWluc2lkZS1lZGl0YWJsZS1kaXYu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTA0LDcgKzEwNCw3IEBAIGZ1bmN0aW9uIGVkaXRpbmdU
ZXN0KGVkaXRpbmdCZWhhdmlvcikKIH0KIAogZWRpdGluZ1Rlc3QoIm1hYyIpOwotZWRpdGluZ1Rl
c3QoIndpbiIpOworZWRpdGluZ1Rlc3QoIndpbmRvd3MiKTsKIAogLy8gQ2xlYW4gdXAgYWZ0ZXIg
b3Vyc2VsdmVzIGlmIHdlJ3JlIG5vdCBiZWluZyBydW4gaW4gdGhlIGJyb3dzZXIKIGlmICh3aW5k
b3cuZXZlbnRTZW5kZXIpIHsKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2Ns
aWNrLWluLXBhZGRpbmctd2l0aC1tdWx0aXBsZS1saW5lLWJveGVzLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY2xpY2staW4tcGFkZGluZy13aXRoLW11
bHRpcGxlLWxpbmUtYm94ZXMuaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMv
ZWRpdGluZy9zZWxlY3Rpb24vY2xpY2staW4tcGFkZGluZy13aXRoLW11bHRpcGxlLWxpbmUtYm94
ZXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNzgsNyArNzgsNyBAQCBmdW5jdGlvbiBlZGl0aW5n
VGVzdChlZGl0aW5nQmVoYXZpb3IpCiB9CiAKIGVkaXRpbmdUZXN0KCJtYWMiKTsKLWVkaXRpbmdU
ZXN0KCJ3aW4iKTsKK2VkaXRpbmdUZXN0KCJ3aW5kb3dzIik7CiAKIC8vIENsZWFuIHVwIGFmdGVy
IG91cnNlbHZlcyBpZiB3ZSdyZSBub3QgYmVpbmcgcnVuIGluIHRoZSBicm93c2VyCiBpZiAod2lu
ZG93LmV2ZW50U2VuZGVyKSB7CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9j
b250ZXh0LW1lbnUtdGV4dC1zZWxlY3Rpb24tbG9va3VwLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY29udGV4dC1tZW51LXRleHQtc2VsZWN0aW9uLWxv
b2t1cC5odG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVj
dGlvbi9jb250ZXh0LW1lbnUtdGV4dC1zZWxlY3Rpb24tbG9va3VwLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTUwLDcgKzUwLDcgQEAgZnVuY3Rpb24gbG9hZCgpCiAgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CiAKICAgICB0ZXN0KCdtYWMnLCB0cnVlLCAnTmV3IFlvcmsnLCAncmVzdWx0bWFj
Jyk7Ci0gICAgdGVzdCgnd2luJywgZmFsc2UsICcnLCAncmVzdWx0d2luJyk7CisgICAgdGVzdCgn
d2luZG93cycsIGZhbHNlLCAnJywgJ3Jlc3VsdHdpbicpOwogICAgIHRlc3QoJ3VuaXgnLCBmYWxz
ZSwgJycsICdyZXN1bHR1bml4Jyk7CiB9CiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2Vk
aXRpbmcvc2VsZWN0aW9uL2NvbnRleHQtbWVudS10ZXh0LXNlbGVjdGlvbi5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2NvbnRleHQtbWVudS10ZXh0LXNl
bGVjdGlvbi5odG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3Nl
bGVjdGlvbi9jb250ZXh0LW1lbnUtdGV4dC1zZWxlY3Rpb24uaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtNDYsNyArNDYsNyBAQCBmdW5jdGlvbiBsb2FkKCkKICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKIAogICAgIHRlc3QoJ21hYycsIHRydWUsICdyZXN1bHRtYWMnKTsKLSAgICB0ZXN0KCd3
aW4nLCBmYWxzZSwgJ3Jlc3VsdHdpbicpOworICAgIHRlc3QoJ3dpbmRvd3MnLCBmYWxzZSwgJ3Jl
c3VsdHdpbicpOwogICAgIHRlc3QoJ3VuaXgnLCBmYWxzZSwgJ3Jlc3VsdHVuaXgnKTsKIH0KIDwv
c2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLWFmdGVy
LW1vdXNlLXNlbGVjdGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcv
c2VsZWN0aW9uL2V4dGVuZC1hZnRlci1tb3VzZS1zZWxlY3Rpb24uaHRtbAkocmV2aXNpb24gMjY5
ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLWFmdGVyLW1vdXNl
LXNlbGVjdGlvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03NSw3ICs3NSw3IEBAIGZ1bmN0aW9u
IGVkaXRpbmdUZXN0KGVkaXRpbmdCZWhhdmlvcikgewogCiA8c2NyaXB0PgogZWRpdGluZ1Rlc3Qo
Im1hYyIpOwotZWRpdGluZ1Rlc3QoIndpbiIpOworZWRpdGluZ1Rlc3QoIndpbmRvd3MiKTsKIGVk
aXRpbmdUZXN0KCJ1bml4Iik7CiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcv
c2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24tYWZ0ZXItZG91YmxlLWNsaWNrLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1h
ZnRlci1kb3VibGUtY2xpY2suaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMv
ZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1hZnRlci1kb3VibGUtY2xpY2suaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQAogICAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKIAogICAgICAgICBydW5UZXN0KCJtYWMiLCAiYSBwYXJhZ3JhcGgiKTsKLSAg
ICAgICAgcnVuVGVzdCgid2luIiwgInBhcmFncmEiKTsKKyAgICAgICAgcnVuVGVzdCgid2luZG93
cyIsICJwYXJhZ3JhIik7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gcnVuVGVzdChiZWhhdmlvciwg
ZXhwZWN0ZWRUZXh0KQpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5k
LXNlbGVjdGlvbi1lbmNsb3NpbmctYmxvY2std2luLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1lbmNsb3NpbmctYmxvY2st
d2luLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0
aW9uL2V4dGVuZC1zZWxlY3Rpb24tZW5jbG9zaW5nLWJsb2NrLXdpbi5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0yMyw3ICsyMyw3IEBAIGZ1bmN0aW9uIHJ1blNlbGVjdGlvblRlc3RzV2l0aEdyYW51
bGFyaXQKIH0KIAogaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldEVkaXRpbmdCZWhhdmlvcigid2luIik7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVk
aXRpbmdCZWhhdmlvcigid2luZG93cyIpOwogbG9nKCJcblxuXG5FeHRlbmRpbmcgYnkgY2hhcmFj
dGVyXG4iKTsKIHJ1blNlbGVjdGlvblRlc3RzV2l0aEdyYW51bGFyaXR5Rm9yRW5jbG9zaW5nQmxv
Y2soY3JlYXRlRW5jbG9zaW5nQmxvY2tOb2RlcygpLCAiY2hhcmFjdGVyIik7CiAKSW5kZXg6IExh
eW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10
ZXN0LTEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9t
b3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC0xLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkK
KysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1j
cmFzaC10ZXN0LTEuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTIsNyArMTIsNyBAQCBvbmxvYWQg
PSBmdW5jdGlvbigpIHsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5h
bHMpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICBpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0
RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiB9CiA8L3NjcmlwdD4KIDx0ZXh0YXJlYT48L3Rl
eHRhcmVhPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3Jk
LXZpc3VhbGx5LWNyYXNoLXRlc3QtMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Vk
aXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0LTIuaHRtbAko
cmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1i
eS13b3JkLXZpc3VhbGx5LWNyYXNoLXRlc3QtMi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMiw3
ICsxMiw3IEBAIG9ubG9hZCA9IGZ1bmN0aW9uKCkgewogCiBpZiAod2luZG93LnRlc3RSdW5uZXIg
JiYgd2luZG93LmludGVybmFscykgewogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAg
IGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbicpOworICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbmRvd3MnKTsKIH0KIDwvc2NyaXB0
PgogPHZrZXJuPjwvdmtlcm4+PG1hcnF1ZWU+PGRpdiB0aXRsZT0iMHwwIiBjbGFzcz0idGVzdF9t
b3ZlX2J5X3dvcmQiPmFiYyBkZWYKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
L21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0LTMuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gt
dGVzdC0zLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2Vs
ZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0LTMuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMTIsNyArMTIsNyBAQCBvbmxvYWQgPSBmdW5jdGlvbigpIHsKIAogaWYgKHdpbmRv
dy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW4n
KTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7
CiB9CiA8L3NjcmlwdD4KIDx2aWRlbz48L3ZpZGVvPjxtZXRlcj48aW1hZ2UgY2xhc3M9InRlc3Rf
bW92ZV9ieV93b3JkIiB0aXRsZT0iMHwwIj4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2Vs
ZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0LTQuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHkt
Y3Jhc2gtdGVzdC00Lmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRp
bmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0LTQuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMTIsNyArMTIsNyBAQCBvbmxvYWQgPSBmdW5jdGlvbigpIHsKIAogaWYg
KHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9y
KCd3aW4nKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW5k
b3dzJyk7CiB9CiA8L3NjcmlwdD4KID48ZGl2IHRpdGxlPSIwfDAiIGNsYXNzPSJ0ZXN0X21vdmVf
Ynlfd29yZCIgZGlyPWx0cj48a2V5Z2VuPjxiYXNlPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWNyYXNoLXRlc3QtNS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1
YWxseS1jcmFzaC10ZXN0LTUuaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMv
ZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWNyYXNoLXRlc3QtNS5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xMSw3ICsxMSw3IEBAIG9ubG9hZCA9IGZ1bmN0aW9uKCkgewog
CiBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewogICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVo
YXZpb3IoJ3dpbicpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3Io
J3dpbmRvd3MnKTsKIH0KIDwvc2NyaXB0PgogCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Nl
bGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC1jc3MtZ2VuZXJhdGVkLWNv
bnRlbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9t
b3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC1jc3MtZ2VuZXJhdGVkLWNvbnRlbnQuaHRt
bAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92
ZS1ieS13b3JkLXZpc3VhbGx5LWNyYXNoLXRlc3QtY3NzLWdlbmVyYXRlZC1jb250ZW50Lmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTE5LDcgKzE5LDcgQEAgb25sb2FkID0gZnVuY3Rpb24oKSB7CiAK
IGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhh
dmlvcignd2luJyk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcign
d2luZG93cycpOwogfQogPC9zY3JpcHQ+CiA8ZGl2IGNvbnRlbnRlZGl0YWJsZSBkaXI9bHRyPgpJ
bmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5
LWNyYXNoLXRlc3QtdGV4dGFyZWEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC10ZXh0YXJlYS5o
dG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9t
b3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC10ZXh0YXJlYS5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xOCw3ICsxOCw3IEBAIG9ubG9hZCA9IGZ1bmN0aW9uKCkgewogCiBpZiAod2luZG93
LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewogICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbicp
OworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbmRvd3MnKTsK
IH0KIDwvc2NyaXB0PgogCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3Zl
LWJ5LXdvcmQtdmlzdWFsbHktaW5saW5lLWJsb2NrLXBvc2l0aW9uZWQtZWxlbWVudC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12
aXN1YWxseS1pbmxpbmUtYmxvY2stcG9zaXRpb25lZC1lbGVtZW50Lmh0bWwJKHJldmlzaW9uIDI2
OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1
YWxseS1pbmxpbmUtYmxvY2stcG9zaXRpb25lZC1lbGVtZW50Lmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTEyLDcgKzEyLDcgQEAgb25sb2FkID0gZnVuY3Rpb24oKSB7CiAKIGlmICh3aW5kb3cudGVz
dFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7Ci0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luJyk7Cisg
ICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luZG93cycpOwogfQog
PC9zY3JpcHQ+CiAKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnkt
d29yZC12aXN1YWxseS1tdWx0aS1saW5lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LW11bHRpLWxpbmUuaHRtbAko
cmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1i
eS13b3JkLXZpc3VhbGx5LW11bHRpLWxpbmUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTksNyAr
MTksNyBAQCBvbmxvYWQgPSBmdW5jdGlvbigpIHsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyICYm
IHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICBp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiB9CiA8L3NjcmlwdD4K
IDwvaGVhZD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29y
ZC12aXN1YWxseS1tdWx0aS1zcGFjZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Vk
aXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1tdWx0aS1zcGFjZS5odG1sCShy
ZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5
LXdvcmQtdmlzdWFsbHktbXVsdGktc3BhY2UuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTksNyAr
MTksNyBAQCBvbmxvYWQgPSBmdW5jdGlvbigpIHsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyICYm
IHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICBp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiB9CiA8L3NjcmlwdD4K
IDwvaGVhZD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29y
ZC12aXN1YWxseS1udWxsLWJveC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRp
bmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1udWxsLWJveC5odG1sCShyZXZpc2lv
biAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQt
dmlzdWFsbHktbnVsbC1ib3guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTgsNyArMTgsNyBAQCBv
bmxvYWQgPSBmdW5jdGlvbigpIHsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5p
bnRlcm5hbHMpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICBpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiB9CiA8L3NjcmlwdD4KIDxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92
ZS1ieS13b3JkLXZpc3VhbGx5LXNpbmdsZS1zcGFjZS1pbmxpbmUtZWxlbWVudC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1
YWxseS1zaW5nbGUtc3BhY2UtaW5saW5lLWVsZW1lbnQuaHRtbAkocmV2aXNpb24gMjY5ODMwKQor
KysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LXNp
bmdsZS1zcGFjZS1pbmxpbmUtZWxlbWVudC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw3ICsy
Miw3IEBAIG9ubG9hZCA9IGZ1bmN0aW9uKCkgewogCiBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYg
d2luZG93LmludGVybmFscykgewogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIGlu
dGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbicpOworICAgIGludGVybmFs
cy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbmRvd3MnKTsKIH0KIDwvc2NyaXB0Pgog
PC9oZWFkPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3Jk
LXZpc3VhbGx5LXNpbmdsZS1zcGFjZS1vbmUtZWxlbWVudC5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1zaW5nbGUt
c3BhY2Utb25lLWVsZW1lbnQuaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMv
ZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LXNpbmdsZS1zcGFjZS1vbmUt
ZWxlbWVudC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xOSw3ICsxOSw3IEBAIG9ubG9hZCA9IGZ1
bmN0aW9uKCkgewogCiBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykg
ewogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIGludGVybmFscy5zZXR0aW5ncy5z
ZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbicpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0
aW5nQmVoYXZpb3IoJ3dpbmRvd3MnKTsKIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpJbmRleDogTGF5
b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LXRleHRhcmVh
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1i
eS13b3JkLXZpc3VhbGx5LXRleHRhcmVhLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91
dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS10ZXh0YXJlYS5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBAIG9ubG9hZCA9IGZ1bmN0aW9uKCkg
ewogCiBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewogICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5n
QmVoYXZpb3IoJ3dpbicpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZp
b3IoJ3dpbmRvd3MnKTsKIH0KIDwvc2NyaXB0PgogCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktd3JvbmctbGVmdC1yaWdodC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12
aXN1YWxseS13cm9uZy1sZWZ0LXJpZ2h0Lmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91
dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS13cm9uZy1sZWZ0
LXJpZ2h0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIyLDcgKzIyLDcgQEAgb25sb2FkID0gZnVu
Y3Rpb24oKSB7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7
CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dEVkaXRpbmdCZWhhdmlvcignd2luJyk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRp
bmdCZWhhdmlvcignd2luZG93cycpOwogfQogPC9zY3JpcHQ+CiA8dGl0bGU+d3JvbmcgcmVzdWx0
IGJlY2F1c2UgVmlzaWJsZVBvc2l0aW9uLmxlZnQoKS9yaWdodCgpIHJldHVybnMgd3JvbmcgcmVz
dWx0PC90aXRsZT4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3Byb2dyYW1t
YXRpYy1zZWxlY3Rpb24tb24tbWFjLWlzLWRpcmVjdGlvbmxlc3MuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9wcm9ncmFtbWF0aWMtc2VsZWN0aW9uLW9u
LW1hYy1pcy1kaXJlY3Rpb25sZXNzLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRl
c3RzL2VkaXRpbmcvc2VsZWN0aW9uL3Byb2dyYW1tYXRpYy1zZWxlY3Rpb24tb24tbWFjLWlzLWRp
cmVjdGlvbmxlc3MuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTM2LDcgKzEzNiw3IEBAIGZ1bmN0
aW9uIHJ1blRlc3RzRm9yKHBsYXRmb3JtKSB7CiAKIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAg
ICAgcnVuVGVzdHNGb3IoJ21hYycpOwotICAgIHJ1blRlc3RzRm9yKCd3aW4nKTsKKyAgICBydW5U
ZXN0c0Zvcignd2luZG93cycpOwogICAgIHJ1blRlc3RzRm9yKCd1bml4Jyk7CiAKICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdCcpLmlubmVySFRNTCA9ICcnOwpJbmRleDogTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vcnRsLW1vdmUtc2VsZWN0aW9uLXJpZ2h0LWxlZnQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9ydGwtbW92ZS1z
ZWxlY3Rpb24tcmlnaHQtbGVmdC5odG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0
cy9lZGl0aW5nL3NlbGVjdGlvbi9ydGwtbW92ZS1zZWxlY3Rpb24tcmlnaHQtbGVmdC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC03Myw3ICs3Myw3IEBAIGZ1bmN0aW9uIHJ1blRlc3RzKCkKICAgICAg
ICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcigibWFjIik7CiAgICAgICAg
IHRlc3RTZWxlY3Rpb25DaGFuZ2UoZHJhZ1NlbGVjdGlvbiwgImV4dGVuZCIsICJyaWdodCIsIDAs
IDAsICJFeHRlbmQgZHJhZ2dlZCBzZWxlY3Rpb24gcmlnaHQgKE1hYykiKTsKICAgICAgICAgdGVz
dFNlbGVjdGlvbkNoYW5nZShkcmFnU2VsZWN0aW9uLCAiZXh0ZW5kIiwgImxlZnQiLCAwLCAwLCAi
RXh0ZW5kIGRyYWdnZWQgc2VsZWN0aW9uIGxlZnQgKE1hYykiKTsKLSAgICAgICAgaW50ZXJuYWxz
LnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcigid2luIik7CisgICAgICAgIGludGVybmFscy5z
ZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoIndpbmRvd3MiKTsKICAgICAgICAgdGVzdFNlbGVj
dGlvbkNoYW5nZShkcmFnU2VsZWN0aW9uLCAiZXh0ZW5kIiwgInJpZ2h0IiwgMCwgMCwgIkV4dGVu
ZCBkcmFnZ2VkIHNlbGVjdGlvbiByaWdodCAoV2luKSIpOwogICAgICAgICB0ZXN0U2VsZWN0aW9u
Q2hhbmdlKGRyYWdTZWxlY3Rpb24sICJleHRlbmQiLCAibGVmdCIsIDEsIDAsICJFeHRlbmQgZHJh
Z2dlZCBzZWxlY3Rpb24gbGVmdCAoV2luKSIpOwogICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0RWRpdGluZ0JlaGF2aW9yKCJ1bml4Iik7CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Nl
bGVjdGlvbi9zZWxlY3Rpb24tZXh0ZW5kLXNob3VsZC1ub3QtbW92ZS1hY3Jvc3MtY2FyZXQtb24t
bWFjLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2Vs
ZWN0aW9uLWV4dGVuZC1zaG91bGQtbm90LW1vdmUtYWNyb3NzLWNhcmV0LW9uLW1hYy5odG1sCShy
ZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rp
b24tZXh0ZW5kLXNob3VsZC1ub3QtbW92ZS1hY3Jvc3MtY2FyZXQtb24tbWFjLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTU3LDcgKzU3LDcgQEAgZnVuY3Rpb24gZWRpdGluZ1Rlc3QoYmVoYXZpb3Ip
IHsKIH0KIAogZWRpdGluZ1Rlc3QoIm1hYyIpOwotZWRpdGluZ1Rlc3QoIndpbiIpOworZWRpdGlu
Z1Rlc3QoIndpbmRvd3MiKTsKIGVkaXRpbmdUZXN0KCJ1bml4Iik7CiAKIHZhciBub2RlID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QtZGl2Iik7CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9zaGlmdC1jbGljay5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2VkaXRpbmcvc2VsZWN0aW9uL3NoaWZ0LWNsaWNrLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysr
IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NoaWZ0LWNsaWNrLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTk1LDcgKzk1LDcgQEAgZnVuY3Rpb24gcnVuU2hpZnRDbGlja1Rlc3QoZWRpdGlu
Z0JlaGF2aQogCiBpZiAod2luZG93LmV2ZW50U2VuZGVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsK
ICAgICBydW5TaGlmdENsaWNrVGVzdCgibWFjIik7Ci0gICAgcnVuU2hpZnRDbGlja1Rlc3QoIndp
biIpOworICAgIHJ1blNoaWZ0Q2xpY2tUZXN0KCJ3aW5kb3dzIik7CiB9CiAKIHZhciBzdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24v
dXNlci1zZWxlY3QtYWxsLXdpdGgtc2hpZnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9lZGl0aW5nL3NlbGVjdGlvbi91c2VyLXNlbGVjdC1hbGwtd2l0aC1zaGlmdC5odG1sCShyZXZp
c2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi91c2VyLXNlbGVj
dC1hbGwtd2l0aC1zaGlmdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01MCw3ICs1MCw3IEBAIGZ1
bmN0aW9uIHJ1blRlc3QoZWRpdGluZ0JlaGF2aW9yKSB7CiAKIGlmICh3aW5kb3cuZXZlbnRTZW5k
ZXIpIHsKICAgICBydW5UZXN0KCdtYWMnKTsKLSAgICBydW5UZXN0KCd3aW4nKTsKKyAgICBydW5U
ZXN0KCd3aW5kb3dzJyk7CiAgICAgcnVuVGVzdCgndW5peCcpOwogCiB9IGVsc2UKSW5kZXg6IExh
eW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvY29weS1wYXN0ZS1jcmFzaC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvY29weS1wYXN0ZS1jcmFzaC5odG1s
CShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL2NvcHkt
cGFzdGUtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTQsNyArMTQsNyBAQAogPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+CiA8c2NyaXB0Pgogb25sb2FkID0gaW5pdFNwZWxsVGVzdCgiZGVz
dGluYXRpb24iLCAiU3BlbGwgd2VsbGNvbWUuIElzIGl0IGJyb2tlbj8iLCBmdW5jdGlvbih0ZXh0
Tm9kZSkgewotICAgIHZhciBiZWhhdmlvcnMgPSBbIndpbiIsICJtYWMiXTsKKyAgICB2YXIgYmVo
YXZpb3JzID0gWyJ3aW5kb3dzIiwgIm1hYyJdOwogICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYmVo
YXZpb3JzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0
aW5nQmVoYXZpb3IoYmVoYXZpb3JzW2ldKTsKICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQo
IlNlbGVjdEFsbCIpOwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9pZnJhbWUtb25s
b2FkLWNyYXNoLXdpbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc3R5
bGUvaWZyYW1lLW9ubG9hZC1jcmFzaC13aW4uaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5
b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9pZnJhbWUtb25sb2FkLWNyYXNoLXdpbi5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAogPG1ldGE+PGlucHV0PjxoNj48bm9icj48L25vYnI+
PGRhdGFncmlkPjxpbnM+PGJ1dHRvbj48ZW0+PGlmcmFtZSBvbmxvYWQ9IgogaWYgKHdpbmRvdy50
ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW4nKTsK
KyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiB9
CiAKIGlmIChkb2N1bWVudC5jb3VudGVyKQpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zdHls
ZS9tYWtlLXRleHQtd3JpdGluZy1kaXJlY3Rpb24taW5saW5lLXdpbi5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvbWFrZS10ZXh0LXdyaXRpbmctZGlyZWN0aW9u
LWlubGluZS13aW4uaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zdHlsZS9tYWtlLXRleHQtd3JpdGluZy1kaXJlY3Rpb24taW5saW5lLXdpbi5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNCw3ICsxNCw3IEBAIGRlc2NyaXB0aW9uKCdUZXN0cyB0byBlbnN1cmUg
TWFrZVRleHRXcmkKIGlmICghd2luZG93LnRlc3RSdW5uZXIpCiAgICAgdGVzdEZhaWxlZCgnVGhp
cyB0ZXN0IHJlcXVpcmVzIHRlc3RSdW5uZXInKTsKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAg
IGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbicpOworICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbmRvd3MnKTsKIAogdmFyIHRlc3RD
b250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKIHRlc3RDb250YWluZXIu
Y29udGVudEVkaXRhYmxlID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUv
cHVzaC1kb3duLWZvbnQtc3R5bGVzLXdpbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2VkaXRpbmcvc3R5bGUvcHVzaC1kb3duLWZvbnQtc3R5bGVzLXdpbi5odG1sCShyZXZpc2lvbiAy
Njk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3B1c2gtZG93bi1mb250LXN0eWxl
cy13aW4uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQAogZGVzY3JpcHRpb24o
J1Rlc3QgdG8gbWFrZSBzdXJlIHdlIHB1c2ggZG93biBpbmxpbmUgc3R5bGVzIHByb3Blcmx5Licp
OwogCiBpZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRp
dGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0Jl
aGF2aW9yKCd3aW5kb3dzJyk7CiB2YXIgdGVzdENvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImRpdiIpOwogdGVzdENvbnRhaW5lci5jb250ZW50RWRpdGFibGUgPSB0cnVlOwogZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZXN0Q29udGFpbmVyKTsKSW5kZXg6IExheW91dFRlc3Rz
L2VkaXRpbmcvc3R5bGUvcHVzaC1kb3duLWltcGxpY2l0LXN0eWxlcy1hcm91bmQtbGlzdC13aW4u
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3B1c2gtZG93bi1p
bXBsaWNpdC1zdHlsZXMtYXJvdW5kLWxpc3Qtd2luLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysr
IExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvcHVzaC1kb3duLWltcGxpY2l0LXN0eWxlcy1hcm91
bmQtbGlzdC13aW4uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQAogZGVzY3Jp
cHRpb24oJ1Rlc3QgdG8gbWFrZSBzdXJlIHdlIHB1c2ggZG93biBpbmxpbmUgc3R5bGVzIHByb3Bl
cmx5LicpOwogCiBpZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0RWRpdGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRp
dGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiB2YXIgdGVzdENvbnRhaW5lciA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImRpdiIpOwogdGVzdENvbnRhaW5lci5jb250ZW50RWRpdGFibGUgPSB0cnVl
OwogZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZXN0Q29udGFpbmVyKTsKSW5kZXg6IExheW91
dFRlc3RzL2VkaXRpbmcvc3R5bGUvdG9nZ2xlLXN0eWxlLWJvbGQtaXRhbGljLW1peGVkLWVkaXRh
YmlsaXR5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS90b2dn
bGUtc3R5bGUtYm9sZC1pdGFsaWMtbWl4ZWQtZWRpdGFiaWxpdHkuaHRtbAkocmV2aXNpb24gMjY5
ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS90b2dnbGUtc3R5bGUtYm9sZC1pdGFs
aWMtbWl4ZWQtZWRpdGFiaWxpdHkuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBA
QCBFZGl0YWJsZSA8c3BhbiBjb250ZW50ZWRpdGFibGU9ZmFsc2U+Tm9uCiA8c2NyaXB0IHNyYz0u
Li9lZGl0aW5nLmpzIGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L0phdmFTY3JpcHQi
ID48L3NjcmlwdD4KIDxzY3JpcHQ+CiB0ZXN0KCdtYWMnKTsKLXRlc3QoJ3dpbicpOwordGVzdCgn
d2luZG93cycpOwogdGVzdCgndW5peCcpOwogZnVuY3Rpb24gdGVzdChwbGF0Zm9ybSkgewogICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKQpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS90
b2dnbGUtc3R5bGUtYm9sZC1pdGFsaWMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3N0eWxlL3RvZ2dsZS1zdHlsZS1ib2xkLWl0YWxpYy5odG1sCShyZXZpc2lvbiAyNjk4
MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3RvZ2dsZS1zdHlsZS1ib2xkLWl0YWxp
Yy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMSw3ICsxMSw3IEBACiA8c2NyaXB0IHNyYz0uLi9l
ZGl0aW5nLmpzIGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L0phdmFTY3JpcHQiID48
L3NjcmlwdD4KIDxzY3JpcHQ+CiB0ZXN0KCdtYWMnKTsKLXRlc3QoJ3dpbicpOwordGVzdCgnd2lu
ZG93cycpOwogdGVzdCgndW5peCcpOwogZnVuY3Rpb24gdGVzdChwbGF0Zm9ybSkgewogICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvYmFja3Nw
YWNlLW5hdmlnYXRlcy1iYWNrLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvYmFja3NwYWNlLW5hdmlnYXRlcy1iYWNrLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysr
IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2JhY2tzcGFjZS1uYXZpZ2F0ZXMtYmFjay5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC01MCw3ICs1MCw3IEBAIGZ1bmN0aW9uIGRvU3RlcChzdGVwLCBsb2Nh
dGlvbikgewogICAgICAgICBpZiAoIWV4cGVjdChsb2NhdGlvbiA9PSAndGVzdC13aW4nLCAnbmF2
aWdhdGlvbiB0byB0ZXN0LXdpbicpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGlu
dGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbicpOworICAgICAgICBpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiAgICAgICAgIHRl
c3RCYWNrc3BhY2VOYXZpZ2F0ZXNCYWNrKCk7CiAKICAgICAgICAgYnJlYWs7CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdGlvbi1kaXJlY3Rpb24uaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdGlvbi1kaXJlY3Rpb24uaHRtbAkocmV2aXNp
b24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3Rpb24tZGlyZWN0aW9u
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTkxLDcgKzkxLDcgQEAgZnVuY3Rpb24gcnVuVGVzdEZv
cihwbGF0Zm9ybSkgew0KIA0KIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7DQogICAgIHJ1blRlc3RG
b3IoJ01hYycpOw0KLSAgICBydW5UZXN0Rm9yKCdXaW4nKTsNCisgICAgcnVuVGVzdEZvcignV2lu
ZG93cycpOw0KICAgICBydW5UZXN0Rm9yKCdVbml4Jyk7DQogfSBlbHNlDQogICAgIHJ1blRlc3RG
b3IobmF2aWdhdG9yLnBsYXRmb3JtLmluZGV4T2YoJ01hYycpID49IDAgPyAnTWFjJyA6ICdXaW4n
KTsNCg==
</data>
<flag name="commit-queue"
          id="430979"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414174</attachid>
            <date>2020-11-15 11:39:02 -0800</date>
            <delta_ts>2020-11-15 12:16:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218960-20201115113901.patch</filename>
            <type>text/plain</type>
            <size>189229</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIwLTExLTE1ICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBTdGFuZGFyZGl6ZSBlbnVtcyB0aGF0IGFyZSB1c2VkIGJ5
IFNldHRpbmdzIGluIHByZXBlcmF0aW9uIGZvciBhdXRvZ2VuZXJhdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4OTYwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1dJUF0KKworICAgICAgICAqIFNj
cmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXMueWFtbDoKKwogMjAyMC0xMS0xNCAgRG9u
IE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIFtjbGFuZy10aWR5
XSBSdW4gbW9kZXJuaXplLXVzZS1vdmVycmlkZSB0aHJvdWdoIEpTQwpJbmRleDogU291cmNlL1dU
Ri9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWwJKHJldmlz
aW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJl
bmNlcy55YW1sCSh3b3JraW5nIGNvcHkpCkBAIC03MDYsNyArNzA2LDcgQEAgRWRpdGFibGVMaW5r
QmVoYXZpb3I6CiAgICAgV2ViS2l0TGVnYWN5OgogICAgICAgZGVmYXVsdDogV2ViS2l0RWRpdGFi
bGVMaW5rRGVmYXVsdEJlaGF2aW9yCiAgICAgV2ViS2l0OgotICAgICAgZGVmYXVsdDogV2ViQ29y
ZTo6RWRpdGFibGVMaW5rTmV2ZXJMaXZlCisgICAgICBkZWZhdWx0OiBXZWJDb3JlOjpFZGl0YWJs
ZUxpbmtCZWhhdmlvcjo6TmV2ZXJMaXZlCiAKIEVuYWJsZUluaGVyaXRVUklRdWVyeUNvbXBvbmVu
dDoKICAgdHlwZTogYm9vbApAQCAtMjE3Myw3ICsyMTczLDcgQEAgU3RvcmFnZUJsb2NraW5nUG9s
aWN5OgogICAgIFdlYktpdExlZ2FjeToKICAgICAgIGRlZmF1bHQ6IFdlYkFsbG93QWxsU3RvcmFn
ZQogICAgIFdlYktpdDoKLSAgICAgIGRlZmF1bHQ6IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpC
bG9ja1RoaXJkUGFydHlTdG9yYWdlCisgICAgICBkZWZhdWx0OiBXZWJDb3JlOjpTdG9yYWdlQmxv
Y2tpbmdQb2xpY3k6OkJsb2NrVGhpcmRQYXJ0eQogCiBTdWJyZXNvdXJjZUludGVncml0eUVuYWJs
ZWQ6CiAgIHR5cGU6IGJvb2wKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzOSBAQAor
MjAyMC0xMS0xNSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAgU3Rh
bmRhcmRpemUgZW51bXMgdGhhdCBhcmUgdXNlZCBieSBTZXR0aW5ncyBpbiBwcmVwZXJhdGlvbiBm
b3IgYXV0b2dlbmVyYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxODk2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFtXSVBdCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFNj
cmlwdHMvR2VuZXJhdGVTZXR0aW5ncy5yYjoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9Gb3JjZWRBY2Nlc3NpYmls
aXR5VmFsdWUuaDogQWRkZWQuCisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmZvbnRMb2FkVGltaW5nT3ZlcnJpZGUpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTRm9udEZhY2U6OmZvbnRMb2FkVGltaW5nIGNvbnN0KToKKyAgICAgICAgKiBjc3MvRm9udExv
YWRUaW1pbmdPdmVycmlkZS5oOiBBZGRlZC4KKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2YWx1
YXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjptb25vY2hyb21lRXZhbHVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6aW52ZXJ0ZWRDb2xvcnNFdmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpk
eW5hbWljUmFuZ2VFdmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpwcmVmZXJzUmVkdWNlZE1v
dGlvbkV2YWx1YXRlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmFwcGx5UXVpY2tMb29rU2FuZGJveCk6CisgICAgICAgICogZWRpdGlu
Zy9FZGl0YWJsZUxpbmtCZWhhdmlvci5oOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRp
bmdCZWhhdmlvci5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yOjpzaG91bGRN
b3ZlQ2FyZXRUb0hvcml6b250YWxCb3VuZGFyeVdoZW5QYXN0VG9wT3JCb3R0b20gY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yOjpzaG91bGRDb25zaWRlclNlbGVjdGlv
bkFzRGlyZWN0aW9uYWwgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9y
OjpzaG91bGRDZW50ZXJBbGlnbldoZW5TZWxlY3Rpb25Jc1JldmVhbGVkIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkVkaXRpbmdCZWhhdmlvcjo6c2hvdWxkVG9nZ2xlU3R5bGVCYXNlZE9uU3Rh
cnRPZlNlbGVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3I6
OnNob3VsZEFsd2F5c0dyb3dTZWxlY3Rpb25XaGVuRXh0ZW5kaW5nVG9Cb3VuZGFyeSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3I6OnNob3VsZFNlbGVjdE9uQ29udGV4
dHVhbE1lbnVDbGljayBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3I6
OnNob3VsZEFsbG93U3BlbGxpbmdTdWdnZXN0aW9uc1dpdGhvdXRTZWxlY3Rpb24gY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yOjpzaG91bGROYXZpZ2F0ZUJhY2tPbkJh
Y2tzcGFjZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3I6OnNob3Vs
ZEV4dGVuZFNlbGVjdGlvbkJ5V29yZE9yTGluZUFjcm9zc0NhcmV0IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRpbmdCZWhhdmlvcjo6c2hvdWxkU2tpcFNwYWNlV2hlbk1vdmluZ1JpZ2h0
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRpbmdCZWhhdmlvcjo6c2hvdWxkUmViYWxh
bmNlV2hpdGVTcGFjZXNJblNlY3VyZUZpZWxkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRpbmdCZWhhdmlvcjo6c2hvdWxkU2VsZWN0QmFzZWRPbkRpY3Rpb25hcnlMb29rdXAgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yOjpzaG91bGRBbHdheXNFeHRlbmRT
ZWxlY3Rpb25Gcm9tRXh0ZW50RW5kcG9pbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dGluZ0JlaGF2aW9yOjpzaG91bGRNb3ZlU2VsZWN0aW9uVG9FbmRXaGVuRm9jdXNpbmdUZXh0SW5w
dXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yOjpzaG91bGRBbHdh
eXNTbWFydERlbGV0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3I6
OnNob3VsZFNtYXJ0SW5zZXJ0RGVsZXRlUGFyYWdyYXBocyBjb25zdCk6CisgICAgICAgICogZWRp
dGluZy9FZGl0aW5nQmVoYXZpb3JUeXBlLmg6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvRWRp
dGluZ0JlaGF2aW9yVHlwZXMuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmJlaGF2aW9yIGNvbnN0KToKKyAgICAgICAg
KiBlZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24uaDoKKyAgICAgICAgKiBlZGl0aW5nL2NvY29h
L0RhdGFEZXRlY3Rpb24ubW06CisgICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RVUkxTdHJpbmdG
b3JSZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGFpbnMpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6cmVtb3ZlUmVzdWx0TGlua3NGcm9tQW5jaG9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OnNlYXJjaEZvckxpbmtSZW1vdmluZ0V4aXN0aW5nRERMaW5rcyk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpkYXRhRGV0ZWN0b3JUeXBlRm9yQ2F0ZWdvcnkpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6ZGF0YURldGVjdG9yU3RyaW5nRm9yUGF0aCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpidWlsZFF1ZXJ5KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OnF1ZXJ5T2Zmc2V0Q29tcGFyZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpE
YXRhRGV0ZWN0aW9uOjpyZW1vdmVEYXRhRGV0ZWN0ZWRMaW5rc0luRG9jdW1lbnQpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6RGF0YURldGVjdGlvbjo6ZGV0ZWN0Q29udGVudEluUmFuZ2Up
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGF0YURldGVjdGlvbjo6ZGF0YURldGVjdG9y
VVJMUHJvdG9jb2wpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGF0YURldGVjdGlvbjo6
aXNEYXRhRGV0ZWN0b3JVUkwpOiBEZWxldGVkLgorICAgICAgICAqIGVkaXRpbmcvY29jb2EvRGF0
YURldGVjdG9yVHlwZXMuaDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9tYXJrdXAuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUGFnZUZvclNhbml0aXppbmdXZWJDb250ZW50KToKKyAg
ICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxBbmNob3JFbGVtZW50OjpzZXRBY3RpdmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFuY2hv
ckVsZW1lbnQ6OnRyZWF0TGlua0FzTGl2ZUZvckV2ZW50VHlwZSBjb25zdCk6CisgICAgICAgICog
aHRtbC9wYXJzZXIvSFRNTFBhcnNlck9wdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFBhcnNlck9wdGlvbnM6OkhUTUxQYXJzZXJPcHRpb25zKToKKyAgICAgICAgKiBodG1sL3BhcnNl
ci9IVE1MUGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeS5oOiBBZGRlZC4KKyAgICAgICAgKiBsb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNoZWNr
TG9hZENvbXBsZXRlRm9yVGhpc0ZyYW1lKToKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OnBv
cHVsYXRlKToKKyAgICAgICAgKiBwYWdlL0RlYnVnT3ZlcmxheVJlZ2lvbnMuaDogQWRkZWQuCisg
ICAgICAgICogcGFnZS9EZWJ1Z1BhZ2VPdmVybGF5cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
ZWJ1Z1BhZ2VPdmVybGF5czo6dXBkYXRlT3ZlcmxheVJlZ2lvblZpc2liaWxpdHkpOgorICAgICAg
ICAoV2ViQ29yZTo6RGVidWdQYWdlT3ZlcmxheXM6OnNldHRpbmdzQ2hhbmdlZCk6CisgICAgICAg
ICogcGFnZS9EZWJ1Z1BhZ2VPdmVybGF5cy5oOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6dXNlSGFuZEN1cnNvcik6Cisg
ICAgICAgICogcGFnZS9GcmFtZUZsYXR0ZW5pbmcuaDogQWRkZWQuCisgICAgICAgICogcGFnZS9G
cmFtZVZpZXcuaDoKKyAgICAgICAgKiBwYWdlL1BERkltYWdlQ2FjaGluZ1BvbGljeS5oOiBBZGRl
ZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2hv
dWxkQnVpbGRFZGl0YWJsZVJlZ2lvbiBjb25zdCk6CisgICAgICAgICogcGFnZS9TZWN1cml0eU9y
aWdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6Y2FuQWNjZXNzU3Rv
cmFnZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6ZG9tYWluRm9y
Q2FjaGVQYXJ0aXRpb24gY29uc3QpOgorICAgICAgICAqIHBhZ2UvU2VjdXJpdHlPcmlnaW4uaDoK
KyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6CisgICAgICAgICogcGFnZS9TZXR0aW5nc0Jh
c2UuaDoKKyAgICAgICAgKiBwYWdlL1N0b3JhZ2VCbG9ja2luZ1BvbGljeS5oOiBBZGRlZC4KKyAg
ICAgICAgKiBwYWdlL1RleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IuaDogQWRk
ZWQuCisgICAgICAgICogcGFnZS9Vc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5Lmg6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL0RyYWdJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nn
L1BERkRvY3VtZW50SW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UERGRG9jdW1lbnRJbWFn
ZTo6dXBkYXRlQ2FjaGVkSW1hZ2VJZk5lZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvUERGRG9jdW1lbnRJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvRm9udFJl
bmRlcmluZ01vZGUuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0RGlyZWN0
aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6aXNMZWZ0VG9SaWdodERpcmVjdGlvbik6
CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0RmxhZ3MuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS90ZXh0L1dyaXRpbmdNb2RlLmg6CisgICAgICAgIChXZWJDb3JlOjptYWtlVGV4dEZsb3dJbml0
YWxpemVyKToKKyAgICAgICAgKFdlYkNvcmU6Om1ha2VUZXh0Rmxvdyk6CisgICAgICAgIChXZWJD
b3JlOjppc1JldmVyc2VkVGV4dEZsb3cpOgorICAgICAgICAoV2ViQ29yZTo6aXNGbGlwcGVkVGV4
dEZsb3cpOgorICAgICAgICAoV2ViQ29yZTo6aXNWZXJ0aWNhbFRleHRGbG93KToKKyAgICAgICAg
KFdlYkNvcmU6OmlzVmVydGljYWxXcml0aW5nTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjppc0Zs
aXBwZWRXcml0aW5nTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjppc0hvcml6b250YWxXcml0aW5n
TW9kZSk6CisgICAgICAgIChXZWJDb3JlOjppc0ZsaXBwZWRMaW5lc1dyaXRpbmdNb2RlKToKKyAg
ICAgICAgKFdlYkNvcmU6OmlzSG9yaXpvbnRhbFBoeXNpY2FsU2lkZSk6CisgICAgICAgIChXZWJD
b3JlOjptaXJyb3JQaHlzaWNhbFNpZGUpOgorICAgICAgICAoV2ViQ29yZTo6cm90YXRlUGh5c2lj
YWxTaWRlKToKKyAgICAgICAgKFdlYkNvcmU6Om1hcExvZ2ljYWxTaWRlVG9QaHlzaWNhbFNpZGUp
OgorICAgICAgICAoV2ViQ29yZTo6aXNMZWZ0VG9SaWdodERpcmVjdGlvbik6IERlbGV0ZWQuCisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyOjpjYWxjdWxhdGVDbGlwUmVjdHMgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJC
YWNraW5nOjpwYWludERlYnVnT3ZlcmxheXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXJCYWNraW5nOjpwYWludENvbnRlbnRzKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpC
YWNrdXApOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpyZXN0
b3JlVG8pOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6c2V0RWRpdGluZ0Jl
aGF2aW9yKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldFN0b3JhZ2VC
bG9ja2luZ1BvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRQ
REZJbWFnZUNhY2hpbmdQb2xpY3kpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGw6CisgICAgICAgICog
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZVBhZ2VGb3JTZXJ2aWNlV29ya2VyKToKKyAgICAgICAgKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6U2VydmljZVdvcmtlclRocmVhZFByb3h5
KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFk
UHJveHkuaDoKKwogMjAyMC0xMS0xNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkIGEgV2ViUlRDIFNGcmFtZSB0cmFuc2Zvcm0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZQkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQkod29ya2luZyBjb3B5KQpAQCAtMTg4LDYgKzE4OCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVf
RlJBTUVXT1JLX0hFQURFUlMKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJ
bnRlcmZhY2UuaAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5o
CiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oCisgICAgYWNjZXNz
aWJpbGl0eS9Gb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUuaAogCiAgICAgYWNjZXNzaWJpbGl0eS9p
c29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCiAgICAgYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZFRyZWUuaApAQCAtMzUzLDYgKzM1NCw3IEBAIHNldChXZWJDb3JlX1BS
SVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBjc3MvRGVwcmVjYXRlZENTU09NUmVjdC5oCiAg
ICAgY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmgKICAgICBjc3MvRGVwcmVjYXRlZENTU09NVmFs
dWVMaXN0LmgKKyAgICBjc3MvRm9udExvYWRUaW1pbmdPdmVycmlkZS5oCiAgICAgY3NzL0xlbmd0
aEZ1bmN0aW9ucy5oCiAgICAgY3NzL01lZGlhTGlzdC5oCiAgICAgY3NzL01lZGlhUXVlcnlFdmFs
dWF0b3IuaApAQCAtNTI2LDkgKzUyOCwxMCBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09S
S19IRUFERVJTCiAgICAgZWRpdGluZy9EaWN0YXRpb25Db250ZXh0LmgKICAgICBlZGl0aW5nL0Rp
Y3Rpb25hcnlQb3B1cEluZm8uaAogICAgIGVkaXRpbmcvRWRpdEFjdGlvbi5oCisgICAgZWRpdGlu
Zy9FZGl0YWJsZUxpbmtCZWhhdmlvci5oCiAgICAgZWRpdGluZy9FZGl0aW5nLmgKICAgICBlZGl0
aW5nL0VkaXRpbmdCZWhhdmlvci5oCi0gICAgZWRpdGluZy9FZGl0aW5nQmVoYXZpb3JUeXBlcy5o
CisgICAgZWRpdGluZy9FZGl0aW5nQmVoYXZpb3JUeXBlLmgKICAgICBlZGl0aW5nL0VkaXRpbmdC
b3VuZGFyeS5oCiAgICAgZWRpdGluZy9FZGl0aW5nU3R5bGUuaAogICAgIGVkaXRpbmcvRWRpdG9y
LmgKQEAgLTY5Myw2ICs2OTYsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFE
RVJTCiAKICAgICBodG1sL3BhcnNlci9QYXJzaW5nVXRpbGl0aWVzLmgKICAgICBodG1sL3BhcnNl
ci9IVE1MUGFyc2VySWRpb21zLmgKKyAgICBodG1sL3BhcnNlci9IVE1MUGFyc2VyU2NyaXB0aW5n
RmxhZ1BvbGljeS5oCiAKICAgICBodG1sL3RyYWNrL0F1ZGlvVHJhY2suaAogICAgIGh0bWwvdHJh
Y2svVGV4dFRyYWNrLmgKQEAgLTgzMSw2ICs4MzUsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZS
QU1FV09SS19IRUFERVJTCiAgICAgcGFnZS9ET01XaW5kb3dFeHRlbnNpb24uaAogICAgIHBhZ2Uv
RE9NV2luZG93UHJvcGVydHkuaAogICAgIHBhZ2UvRGF0YWJhc2VQcm92aWRlci5oCisgICAgcGFn
ZS9EZWJ1Z092ZXJsYXlSZWdpb25zLmgKICAgICBwYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmgKICAg
ICBwYWdlL0RlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oCiAgICAgcGFnZS9EZXZpY2VDbGllbnQu
aApAQCAtODQ4LDYgKzg1Myw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURF
UlMKICAgICBwYWdlL0ZvY3VzRGlyZWN0aW9uLmgKICAgICBwYWdlL0ZyYW1lLmgKICAgICBwYWdl
L0ZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5oCisgICAgcGFnZS9GcmFtZUZsYXR0ZW5pbmcuaAog
ICAgIHBhZ2UvRnJhbWVJZGVudGlmaWVyLmgKICAgICBwYWdlL0ZyYW1lU25hcHNob3R0aW5nLmgK
ICAgICBwYWdlL0ZyYW1lVHJlZS5oCkBAIC04NjAsNiArODY2LDcgQEAgc2V0KFdlYkNvcmVfUFJJ
VkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBhZ2UvTWVkaWFQcm9kdWNlci5oCiAgICAgcGFn
ZS9NZW1vcnlSZWxlYXNlLmgKICAgICBwYWdlL05hdmlnYXRvcklzTG9nZ2VkSW4uaAorICAgIHBh
Z2UvUERGSW1hZ2VDYWNoaW5nUG9saWN5LmgKICAgICBwYWdlL1BhZ2UuaAogICAgIHBhZ2UvUGFn
ZUNvbmZpZ3VyYXRpb24uaAogICAgIHBhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaApAQCAtODk2LDEy
ICs5MDMsMTUgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBh
Z2UvU29ja2V0UHJvdmlkZXIuaAogICAgIHBhZ2UvU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5o
CiAgICAgcGFnZS9TcGVlY2hTeW50aGVzaXNDbGllbnQuaAorICAgIHBhZ2UvU3RvcmFnZUJsb2Nr
aW5nUG9saWN5LmgKICAgICBwYWdlL1N1c3BlbmRhYmxlVGltZXIuaAorICAgIHBhZ2UvVGV4dERp
cmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvci5oCiAgICAgcGFnZS9UZXh0SW5kaWNhdG9y
LmgKICAgICBwYWdlL1VzZXJDb250ZW50Q29udHJvbGxlci5oCiAgICAgcGFnZS9Vc2VyQ29udGVu
dFByb3ZpZGVyLmgKICAgICBwYWdlL1VzZXJDb250ZW50VHlwZXMuaAogICAgIHBhZ2UvVXNlckNv
bnRlbnRVUkxQYXR0ZXJuLmgKKyAgICBwYWdlL1VzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3ku
aAogICAgIHBhZ2UvVXNlck1lc3NhZ2VIYW5kbGVyLmgKICAgICBwYWdlL1VzZXJNZXNzYWdlSGFu
ZGxlckRlc2NyaXB0b3IuaAogICAgIHBhZ2UvVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5o
CkBAIC0xMzgxLDExICsxMzkxLDEzIEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hF
QURFUlMKICAgICBwbGF0Zm9ybS9zcWwvU1FMaXRlVHJhbnNhY3Rpb24uaAogCiAgICAgcGxhdGZv
cm0vdGV4dC9CaWRpQ29udGV4dC5oCisgICAgcGxhdGZvcm0vdGV4dC9Gb250UmVuZGVyaW5nTW9k
ZS5oCiAgICAgcGxhdGZvcm0vdGV4dC9TdHJpbmdXaXRoRGlyZWN0aW9uLmgKICAgICBwbGF0Zm9y
bS90ZXh0L1RleHRCb3VuZGFyaWVzLmgKICAgICBwbGF0Zm9ybS90ZXh0L1RleHRDaGVja2VyQ2xp
ZW50LmgKICAgICBwbGF0Zm9ybS90ZXh0L1RleHRDaGVja2luZy5oCiAgICAgcGxhdGZvcm0vdGV4
dC9UZXh0Q29kZWMuaAorICAgIHBsYXRmb3JtL3RleHQvVGV4dERpcmVjdGlvbi5oCiAgICAgcGxh
dGZvcm0vdGV4dC9UZXh0RW5jb2RpbmcuaAogICAgIHBsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5n
UmVnaXN0cnkuaAogICAgIHBsYXRmb3JtL3RleHQvVGV4dEZsYWdzLmgKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy5yYgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MucmIJKHJldmlzaW9uIDI2OTgzMCkKKysr
IFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy5yYgkod29ya2luZyBjb3B5
KQpAQCAtMTMyLDcgKzEzMiw3IEBAIGNsYXNzIFNldHRpbmcKICAgICAgIG5hbWUKICAgICBlbHNp
ZiBuYW1lLnN0YXJ0X3dpdGg/KCJDU1MiLCAiWFNTIiwgIkZUUCIsICJET00iLCAiRE5TIiwgIlBE
RiIsICJJQ0UiLCAiSERSIikKICAgICAgIG5hbWVbMC4uMl0uZG93bmNhc2UgKyBuYW1lWzMuLm5h
bWUubGVuZ3RoXQotICAgIGVsc2lmIG5hbWUuc3RhcnRfd2l0aD8oIkhUVFAiKQorICAgIGVsc2lm
IG5hbWUuc3RhcnRfd2l0aD8oIkhUVFAiLCAiSFRNTCIpCiAgICAgICBuYW1lWzAuLjNdLmRvd25j
YXNlICsgbmFtZVs0Li5uYW1lLmxlbmd0aF0KICAgICBlbHNlCiAgICAgICBuYW1lWzBdLmRvd25j
YXNlICsgbmFtZVsxLi5uYW1lLmxlbmd0aF0KQEAgLTE3NSw3ICsxNzUsOSBAQCBjbGFzcyBTZXR0
aW5nCiAgIGVuZAogCiAgIGRlZiBzZXR0ZXJGdW5jdGlvbk5hbWUKLSAgICBpZiBAbmFtZS5zdGFy
dF93aXRoPygiY3NzIiwgInhzcyIsICJmdHAiLCAiZG9tIiwgImRucyIsICJpY2UiLCAiaGRyIikK
KyAgICBpZiBAbmFtZS5zdGFydF93aXRoPygiaHRtbCIpCisgICAgICAic2V0IiArIEBuYW1lWzAu
LjNdLnVwY2FzZSArIEBuYW1lWzQuLkBuYW1lLmxlbmd0aF0KKyAgICBlbHNpZiBAbmFtZS5zdGFy
dF93aXRoPygiY3NzIiwgInhzcyIsICJmdHAiLCAiZG9tIiwgImRucyIsICJpY2UiLCAiaGRyIikK
ICAgICAgICJzZXQiICsgQG5hbWVbMC4uMl0udXBjYXNlICsgQG5hbWVbMy4uQG5hbWUubGVuZ3Ro
XQogICAgIGVsc2UKICAgICAgICJzZXQiICsgQG5hbWVbMF0udXBjYXNlICsgQG5hbWVbMS4uQG5h
bWUubGVuZ3RoXQpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMzg1LDcg
KzEzODUsNyBAQAogCQk0RTE5NTkyQTBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFRdWVyeS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEUxOTU5MjQwQTM5
REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk0RTE5NTkyQzBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFR
dWVyeUV2YWx1YXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNEUxOTU5MjYwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnlFdmFsdWF0b3IuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0RjE1MzRE
RTExQjUzMkVDMDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9yLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RjE1MzRERDExQjUzMkVDMDAyMUZEODYgLyog
RWRpdGluZ0JlaGF2aW9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKLQkJNEYxNTM0RTAxMUI1MzMwMjAwMjFGRDg2IC8qIEVkaXRpbmdCZWhhdmlvclR5
cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RjE1
MzRERjExQjUzMzAyMDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9yVHlwZXMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0RjE1MzRFMDExQjUzMzAy
MDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9yVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEYxNTM0REYxMUI1MzMwMjAwMjFGRDg2IC8qIEVkaXRp
bmdCZWhhdmlvclR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk0RkE2NUE2QzExMDhBQkVEMDAyNjE1RTAgLyogTWF0aE1MU3BhY2VFbGVtZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RkE2NUE2
QTExMDhBQkVEMDAyNjE1RTAgLyogTWF0aE1MU3BhY2VFbGVtZW50LmggKi87IH07CiAJCTUwMUJB
QUE5MTM5NTBFMkMwMEY3QUNFQiAvKiBXaW5kUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTAxQkFBQTgxMzk1MEUyQzAwRjdBQ0VCIC8qIFdpbmRS
dWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NTA0QUFDQ0UxODM0NDU1OTAwRTNEOUJDIC8qIEluc3BlY3Rvck5vZGVGaW5kZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwNEFBQ0NDMTgzNDQ1NTkw
MEUzRDlCQyAvKiBJbnNwZWN0b3JOb2RlRmluZGVyLmggKi87IH07CkBAIC0zOTEyLDYgKzM5MTIs
MTkgQEAKIAkJQkM0OTE4QzcwQkZFQTA1MDAwOUQ2MzE2IC8qIEpTSFRNTEZyYW1lRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0OTE4QzEw
QkZFQTA1MDAwOUQ2MzE2IC8qIEpTSFRNTEZyYW1lRWxlbWVudC5oICovOyB9OwogCQlCQzQ5MThD
OTBCRkVBMDUwMDA5RDYzMTYgLyogSlNIVE1MSUZyYW1lRWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0OTE4QzMwQkZFQTA1MDAwOUQ2MzE2
IC8qIEpTSFRNTElGcmFtZUVsZW1lbnQuaCAqLzsgfTsKIAkJQkM0OTFCNzkwQzAyM0VGRDAwOUQ2
MzE2IC8qIEpTSFRNTE1hcnF1ZWVFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzQ5MUI3NzBDMDIzRUZEMDA5RDYzMTYgLyogSlNIVE1MTWFy
cXVlZUVsZW1lbnQuaCAqLzsgfTsKKwkJQkM0QTUzMjMyNTYwNTI3NjAwMjhDNTkyIC8qIEVkaXRh
YmxlTGlua0JlaGF2aW9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzRBNTMyMTI1NjA1MjcwMDAyOEM1OTIgLyogRWRpdGFibGVMaW5rQmVoYXZpb3Iu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlCQzRB
NTMyNTI1NjA1NTVGMDAyOEM1OTIgLyogVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhh
dmlvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0
QTUzMjQyNTYwNTU1OTAwMjhDNTkyIC8qIFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVo
YXZpb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQlCQzRBNTMyNzI1NjA1NUQzMDAyOEM1OTIgLyogVXNlckludGVyZmFjZURpcmVjdGlvblBvbGlj
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0QTUz
MjYyNTYwNTVEMzAwMjhDNTkyIC8qIFVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3kuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlCQzRBNTMyOTI1
NjA1NjNCMDAyOEM1OTIgLyogUERGSW1hZ2VDYWNoaW5nUG9saWN5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzRBNTMyODI1NjA1NjNCMDAyOEM1OTIg
LyogUERGSW1hZ2VDYWNoaW5nUG9saWN5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJQkM0QTUzMkIyNTYwNTY2RTAwMjhDNTkyIC8qIEZyYW1lRmxh
dHRlbmluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkM0QTUzMkEyNTYwNTY2RTAwMjhDNTkyIC8qIEZyYW1lRmxhdHRlbmluZy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUJDNEE1MzJEMjU2MDU2RDUw
MDI4QzU5MiAvKiBEZWJ1Z092ZXJsYXlSZWdpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzRBNTMyQzI1NjA1NkQ1MDAyOEM1OTIgLyogRGVidWdP
dmVybGF5UmVnaW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCUJDNEE1MzJGMjU2MDU3Q0QwMDI4QzU5MiAvKiBGb250TG9hZFRpbWluZ092ZXJy
aWRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzRB
NTMyRTI1NjA1N0NEMDAyOEM1OTIgLyogRm9udExvYWRUaW1pbmdPdmVycmlkZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUJDNEE1MzMxMjU2MDU5
MDMwMDI4QzU5MiAvKiBGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNEE1MzMwMjU2MDU5MDMwMDI4QzU5MiAv
KiBGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQlCQzRBNTMzMzI1NjA1OTgzMDAyOEM1OTIgLyogSFRNTFBh
cnNlclNjcmlwdGluZ0ZsYWdQb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDNEE1MzMyMjU2MDU5ODMwMDI4QzU5MiAvKiBIVE1MUGFyc2VyU2Ny
aXB0aW5nRmxhZ1BvbGljeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCUJDNEE1MzM1MjU2MDVBNTYwMDI4QzU5MiAvKiBEYXRhRGV0ZWN0b3JUeXBl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0QTUz
MzQyNTYwNUE1NjAwMjhDNTkyIC8qIERhdGFEZXRlY3RvclR5cGVzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQkM0QTUzMzcyNTYwNUFFMTAwMjhD
NTkyIC8qIFN0b3JhZ2VCbG9ja2luZ1BvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0QTUzMzYyNTYwNUFFMTAwMjhDNTkyIC8qIFN0b3JhZ2VC
bG9ja2luZ1BvbGljeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCUJDNEE1MzM5MjU2MDYzOTgwMDI4QzU5MiAvKiBGb250UmVuZGVyaW5nTW9kZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0QTUzMzgy
NTYwNjM5ODAwMjhDNTkyIC8qIEZvbnRSZW5kZXJpbmdNb2RlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQkM0QTUzM0IyNTYwNjRFMTAwMjhDNTky
IC8qIFRleHREaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDNEE1MzNBMjU2MDY0RTEwMDI4QzU5MiAvKiBUZXh0RGlyZWN0aW9uLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM1MTE1NkUx
MkIxNzQ5QzAwQzk2NzU0IC8qIFNjcm9sbEFuaW1hdG9yTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1MTE1NkQxMkIxNzQ5QzAwQzk2NzU0IC8q
IFNjcm9sbEFuaW1hdG9yTWFjLm1tICovOyB9OwogCQlCQzUzQzVGNTBEQTU2QjkyMDAyMUVCNUQg
LyogR3JhZGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDNTNDNUY0MERBNTZCOTIwMDIxRUI1RCAvKiBHcmFkaWVudC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDNTNDNjkyMERBNTkxMTQwMDIx
RUI1RCAvKiBDU1NHcmFkaWVudFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzUzQzY5MTBEQTU5MTE0MDAyMUVCNUQgLyogQ1NTR3JhZGllbnRW
YWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBA
IC04MzU2LDcgKzgzNjksNyBAQAogCQk0RTE5NTkyNTBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFR
dWVyeUV2YWx1YXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TWVkaWFRdWVyeUV2YWx1YXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRF
MTk1OTI2MEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5RXZhbHVhdG9yLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVF1ZXJ5RXZhbHVhdG9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGMTUzNEREMTFCNTMyRUMwMDIxRkQ4NiAvKiBFZGl0aW5n
QmVoYXZpb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRWRpdGluZ0JlaGF2
aW9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTRGMTUzNERGMTFCNTMzMDIwMDIx
RkQ4NiAvKiBFZGl0aW5nQmVoYXZpb3JUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBFZGl0aW5nQmVoYXZpb3JUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0RjE1MzRERjExQjUzMzAyMDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9yVHlwZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFZGl0aW5nQmVoYXZpb3JUeXBlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGQTY1QTY5MTEwOEFCRUQwMDI2MTVFMCAvKiBN
YXRoTUxTcGFjZUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTWF0aE1MU3BhY2VFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NEZBNjVBNkExMTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFNwYWNlRWxlbWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYXRoTUxTcGFjZUVsZW1lbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEZBQjQ4NjQxNjQzQTY2RDAwRjcwQzA3IC8qIEVsZW1lbnRS
YXJlRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFbGVtZW50
UmFyZURhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM4MTgsNiArMTM4
MzEsMTkgQEAKIAkJQkM0OTFCNEUwQzAyM0UyRDAwOUQ2MzE2IC8qIEhUTUxNYXJxdWVlRWxlbWVu
dC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTE1hcnF1ZWVFbGVtZW50LmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM0OTFCNzYwQzAyM0VGRDAwOUQ2MzE2IC8qIEpT
SFRNTE1hcnF1ZWVFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU0hUTUxNYXJxdWVlRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUJDNDkxQjc3MEMwMjNFRkQwMDlENjMxNiAvKiBKU0hUTUxNYXJxdWVlRWxlbWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MTWFycXVlZUVsZW1lbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM0QTUzMjEyNTYwNTI3MDAwMjhDNTkyIC8q
IEVkaXRhYmxlTGlua0JlaGF2aW9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVkaXRhYmxlTGlua0JlaGF2
aW9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDNEE1MzI0MjU2MDU1NTkwMDI4
QzU5MiAvKiBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM0QTUzMjYyNTYwNTVEMzAwMjhDNTkyIC8qIFVzZXJJbnRl
cmZhY2VEaXJlY3Rpb25Qb2xpY3kuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlckludGVyZmFjZURpcmVj
dGlvblBvbGljeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzRBNTMyODI1NjA1
NjNCMDAyOEM1OTIgLyogUERGSW1hZ2VDYWNoaW5nUG9saWN5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBE
RkltYWdlQ2FjaGluZ1BvbGljeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzRB
NTMyQTI1NjA1NjZFMDAyOEM1OTIgLyogRnJhbWVGbGF0dGVuaW5nLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEZyYW1lRmxhdHRlbmluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzRBNTMy
QzI1NjA1NkQ1MDAyOEM1OTIgLyogRGVidWdPdmVybGF5UmVnaW9ucy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEZWJ1Z092ZXJsYXlSZWdpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJD
NEE1MzJFMjU2MDU3Q0QwMDI4QzU5MiAvKiBGb250TG9hZFRpbWluZ092ZXJyaWRlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEZvbnRMb2FkVGltaW5nT3ZlcnJpZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQkM0QTUzMzAyNTYwNTkwMzAwMjhDNTkyIC8qIEZvcmNlZEFjY2Vzc2liaWxpdHlW
YWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM0QTUzMzIyNTYwNTk4MzAwMjhDNTkyIC8qIEhUTUxQ
YXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxQYXJzZXJTY3Jp
cHRpbmdGbGFnUG9saWN5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDNEE1MzM0
MjU2MDVBNTYwMDI4QzU5MiAvKiBEYXRhRGV0ZWN0b3JUeXBlcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
YXRhRGV0ZWN0b3JUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzRBNTMz
NjI1NjA1QUUxMDAyOEM1OTIgLyogU3RvcmFnZUJsb2NraW5nUG9saWN5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFN0b3JhZ2VCbG9ja2luZ1BvbGljeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlCQzRBNTMzODI1NjA2Mzk4MDAyOEM1OTIgLyogRm9udFJlbmRlcmluZ01vZGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRm9udFJlbmRlcmluZ01vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQkM0QTUzM0EyNTYwNjRFMTAwMjhDNTkyIC8qIFRleHREaXJlY3Rpb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gVGV4dERpcmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzUx
MTU2RDEyQjE3NDlDMDBDOTY3NTQgLyogU2Nyb2xsQW5pbWF0b3JNYWMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxBbmltYXRvck1hYy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1MTU4MEEwQzAzRDQwNDAwOEJCMEVFIC8qIEpTSFRN
TERvY3VtZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU0hUTUxEb2N1bWVudEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUJDNTNDNUY0MERBNTZCOTIwMDIxRUI1RCAvKiBHcmFkaWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBHcmFkaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTg4NzgsNiArMTg5MDQsNyBAQAogCQkJCTI5ODFDQUFGMTMxODIyRUMwMEQxMkYyQSAvKiBB
WE9iamVjdENhY2hlLmNwcCAqLywKIAkJCQkyOUE4MTIxQTBGQkI5QzFEMDA1MTAyOTMgLyogQVhP
YmplY3RDYWNoZS5oICovLAogCQkJCTkxQzlGMkY4MUFFM0JFMjQwMDk1QjYxQyAvKiBBWFRleHRT
dGF0ZUNoYW5nZUludGVudC5oICovLAorCQkJCUJDNEE1MzMwMjU2MDU5MDMwMDI4QzU5MiAvKiBG
b3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gYWNjZXNzaWJp
bGl0eTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yMTc4MCw2ICsyMTgwNyw3IEBA
CiAJCQkJOTc1Q0EyODkxMzAzNjVGODAwRTk5QUQ5IC8qIENyeXB0by5pZGwgKi8sCiAJCQkJMUFD
QjJCMjExQTU3MzNGNDAwMzMzMzkyIC8qIERhdGFiYXNlUHJvdmlkZXIuY3BwICovLAogCQkJCTFB
Q0IyQjIyMUE1NzMzRjQwMDMzMzM5MiAvKiBEYXRhYmFzZVByb3ZpZGVyLmggKi8sCisJCQkJQkM0
QTUzMkMyNTYwNTZENTAwMjhDNTkyIC8qIERlYnVnT3ZlcmxheVJlZ2lvbnMuaCAqLywKIAkJCQkw
RjZBMTJCQjFBMDA5MjM3MDBDNkRFNzIgLyogRGVidWdQYWdlT3ZlcmxheXMuY3BwICovLAogCQkJ
CTBGNkExMkJDMUEwMDkyMzcwMEM2REU3MiAvKiBEZWJ1Z1BhZ2VPdmVybGF5cy5oICovLAogCQkJ
CTdDQkQxMjlDMUY5OEI1RkYwMDEyN0QyOSAvKiBEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuY3Bw
ICovLApAQCAtMjE4MzIsNiArMjE4NjAsNyBAQAogCQkJCTY1QkYwMjJBMDk3NDgxNjMwMEM0MzE5
NiAvKiBGcmFtZS5oICovLAogCQkJCTk3NEE4NjIwMTRCN0FEQkIwMDNGREM3NiAvKiBGcmFtZURl
c3RydWN0aW9uT2JzZXJ2ZXIuY3BwICovLAogCQkJCTk3NEE4NjIxMTRCN0FEQkIwMDNGREM3NiAv
KiBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaCAqLywKKwkJCQlCQzRBNTMyQTI1NjA1NjZFMDAy
OEM1OTIgLyogRnJhbWVGbGF0dGVuaW5nLmggKi8sCiAJCQkJMEYxMTc4MTYyMkUzQzQ3RTAwOEJE
NTcwIC8qIEZyYW1lSWRlbnRpZmllci5oICovLAogCQkJCUM0Q0Q2Mjk4MTgzODM3NjYwMDdFQkFG
MSAvKiBGcmFtZVNuYXBzaG90dGluZy5jcHAgKi8sCiAJCQkJQzRDRDYyOTkxODM4Mzc2NjAwN0VC
QUYxIC8qIEZyYW1lU25hcHNob3R0aW5nLmggKi8sCkBAIC0yMTkwMiw2ICsyMTkzMSw3IEBACiAJ
CQkJMkQ1QzlDRkUxOUM3QjUyRTAwQjNDNUMxIC8qIFBhZ2VPdmVybGF5Q29udHJvbGxlci5oICov
LAogCQkJCTM3MUU2NUNEMTM2NjFFRUQwMEJFRURCMCAvKiBQYWdlU2VyaWFsaXplci5jcHAgKi8s
CiAJCQkJMzcxRTY1Q0IxMzY2MUVEQzAwQkVFREIwIC8qIFBhZ2VTZXJpYWxpemVyLmggKi8sCisJ
CQkJQkM0QTUzMjgyNTYwNTYzQjAwMjhDNTkyIC8qIFBERkltYWdlQ2FjaGluZ1BvbGljeS5oICov
LAogCQkJCTdDNzI0NzFFMjUxNjc1ODgwMEMzNjNDRCAvKiBQZXJmb3JtYW5jZStOYXZpZ2F0aW9u
VGltaW5nLmlkbCAqLywKIAkJCQk3QzcyNDcxQzI1MTY3NENFMDBDMzYzQ0QgLyogUGVyZm9ybWFu
Y2UrUGVyZm9ybWFuY2VUaW1lbGluZS5pZGwgKi8sCiAJCQkJN0M3MjQ3MUQyNTE2NzUyQzAwQzM2
M0NEIC8qIFBlcmZvcm1hbmNlK1Jlc291cmNlVGltaW5nLmlkbCAqLywKQEAgLTIyMDI1LDggKzIy
MDU1LDEwIEBACiAJCQkJNjI2Q0RFMEQxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0
aW9uLmggKi8sCiAJCQkJOTNBMDQ4MjYyNTQ5NTUwMDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0
aW9uUHJvdmlkZXIuaCAqLywKIAkJCQlDMTQ5MzgwNTIyMzQyNzE5MDAwQ0Q3MDcgLyogU3BlZWNo
U3ludGhlc2lzQ2xpZW50LmggKi8sCisJCQkJQkM0QTUzMzYyNTYwNUFFMTAwMjhDNTkyIC8qIFN0
b3JhZ2VCbG9ja2luZ1BvbGljeS5oICovLAogCQkJCTYyQzEyMTdBMTFBQjlFNzYwMDNDNDYyQyAv
KiBTdXNwZW5kYWJsZVRpbWVyLmNwcCAqLywKIAkJCQk2MkMxMjE3QjExQUI5RTc3MDAzQzQ2MkMg
LyogU3VzcGVuZGFibGVUaW1lci5oICovLAorCQkJCUJDNEE1MzI0MjU2MDU1NTkwMDI4QzU5MiAv
KiBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yLmggKi8sCiAJCQkJMkQ0Rjk2
RjExQTFFQ0MyNDAwOThCRjg4IC8qIFRleHRJbmRpY2F0b3IuY3BwICovLAogCQkJCTJENEY5NkYy
MUExRUNDMjQwMDk4QkY4OCAvKiBUZXh0SW5kaWNhdG9yLmggKi8sCiAJCQkJRjRFMTk2NUYyMUYy
NkU0RTAwMjg1MDc4IC8qIFVuZG9JdGVtLmNwcCAqLywKQEAgLTIyMDQyLDYgKzIyMDc0LDcgQEAK
IAkJCQkwMDNGMUZFOTExRTZBQjQzMDA4MjU4RDkgLyogVXNlckNvbnRlbnRUeXBlcy5oICovLAog
CQkJCUJDQUNGM0JBMTA3MjkyMUEwMEMwQzhBMyAvKiBVc2VyQ29udGVudFVSTFBhdHRlcm4uY3Bw
ICovLAogCQkJCUJDQUNGM0JCMTA3MjkyMUEwMEMwQzhBMyAvKiBVc2VyQ29udGVudFVSTFBhdHRl
cm4uaCAqLywKKwkJCQlCQzRBNTMyNjI1NjA1NUQzMDAyOEM1OTIgLyogVXNlckludGVyZmFjZURp
cmVjdGlvblBvbGljeS5oICovLAogCQkJCTdDM0I3OTZGMTkwODc1N0IwMEI0N0EyRCAvKiBVc2Vy
TWVzc2FnZUhhbmRsZXIuY3BwICovLAogCQkJCTdDM0I3OTcwMTkwODc1N0IwMEI0N0EyRCAvKiBV
c2VyTWVzc2FnZUhhbmRsZXIuaCAqLywKIAkJCQk3QzczRkIwRTE5MUVGNjBFMDA3REUwNjEgLyog
VXNlck1lc3NhZ2VIYW5kbGVyLmlkbCAqLywKQEAgLTIyNTQwLDYgKzIyNTczLDcgQEAKIAkJCQk1
Q0NDMjcwNjIyRDUzQjY4MDA5NjRGQTAgLyogQXV0b2ZpbGxFbGVtZW50cy5oICovLAogCQkJCUM1
MjI3REVGMUMzQzZERDcwMEY1RUQ1NCAvKiBEYXRhRGV0ZWN0aW9uLmggKi8sCiAJCQkJQzUyMjdE
RjAxQzNDNkRENzAwRjVFRDU0IC8qIERhdGFEZXRlY3Rpb24ubW0gKi8sCisJCQkJQkM0QTUzMzQy
NTYwNUE1NjAwMjhDNTkyIC8qIERhdGFEZXRlY3RvclR5cGVzLmggKi8sCiAJCQkJOTM3RkYzRDYx
QTEwMTMxQjAwOEVCQTMxIC8qIERpY3Rpb25hcnlMb29rdXAubW0gKi8sCiAJCQkJOUI1NUVFRTgx
QjNFODg5ODAwNTM0MkJDIC8qIEVkaXRvckNvY29hLm1tICovLAogCQkJCUY0MkNFQjU0MjE0MDMx
RUUwMDJEQ0E3MiAvKiBGb250QXR0cmlidXRlQ2hhbmdlc0NvY29hLm1tICovLApAQCAtMjI4NDYs
NiArMjI4ODAsNyBAQAogCQkJCUNFQ0FERkM1MTUzNzc4RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25D
b21tYW5kLmggKi8sCiAJCQkJOTM4NDMwQjIyNDc1REUzRjAwM0Y5NjE3IC8qIERpY3RhdGlvbkNv
bnRleHQuaCAqLywKIAkJCQkyRDU2NDZBRjFCOEY4NDkzMDAzQzQ5OTQgLyogRGljdGlvbmFyeVBv
cHVwSW5mby5oICovLAorCQkJCUJDNEE1MzIxMjU2MDUyNzAwMDI4QzU5MiAvKiBFZGl0YWJsZUxp
bmtCZWhhdmlvci5oICovLAogCQkJCUY0OUU5OEU0MjFERUU2QzEwMDlBRTU1RSAvKiBFZGl0QWN0
aW9uLmNwcCAqLywKIAkJCQk5MzMwOUQ5MzA5OUU2NDkxMDA1NkU1ODEgLyogRWRpdEFjdGlvbi5o
ICovLAogCQkJCTkzMzA5RDk0MDk5RTY0OTEwMDU2RTU4MSAvKiBFZGl0Q29tbWFuZC5jcHAgKi8s
CkBAIC0yMjg1Myw3ICsyMjg4OCw3IEBACiAJCQkJOTMzMDlEOTgwOTlFNjQ5MTAwNTZFNTgxIC8q
IEVkaXRpbmcuY3BwICovLAogCQkJCTkzMzA5RDk5MDk5RTY0OTEwMDU2RTU4MSAvKiBFZGl0aW5n
LmggKi8sCiAJCQkJNEYxNTM0REQxMUI1MzJFQzAwMjFGRDg2IC8qIEVkaXRpbmdCZWhhdmlvci5o
ICovLAotCQkJCTRGMTUzNERGMTFCNTMzMDIwMDIxRkQ4NiAvKiBFZGl0aW5nQmVoYXZpb3JUeXBl
cy5oICovLAorCQkJCTRGMTUzNERGMTFCNTMzMDIwMDIxRkQ4NiAvKiBFZGl0aW5nQmVoYXZpb3JU
eXBlLmggKi8sCiAJCQkJM0FDNjQ4QjExMjlFMTQ2NTAwQzNFQjI1IC8qIEVkaXRpbmdCb3VuZGFy
eS5oICovLAogCQkJCTlCQUI2QzZCMTI1NTA2MzEwMDE2MjZENCAvKiBFZGl0aW5nU3R5bGUuY3Bw
ICovLAogCQkJCTlCQUI2QzZBMTI1NTA2MzEwMDE2MjZENCAvKiBFZGl0aW5nU3R5bGUuaCAqLywK
QEAgLTIzODk1LDYgKzIzOTMwLDcgQEAKIAkJCQk5NzNGNDE4ODE2OUI5NUVGMDAwNkJGNjAgLyog
SFRNTFBhcnNlck9wdGlvbnMuaCAqLywKIAkJCQk5NzdCMzg1NzEyMjg4M0U5MDBCODFGRjggLyog
SFRNTFBhcnNlclNjaGVkdWxlci5jcHAgKi8sCiAJCQkJOTc3QjM4NTgxMjI4ODNFOTAwQjgxRkY4
IC8qIEhUTUxQYXJzZXJTY2hlZHVsZXIuaCAqLywKKwkJCQlCQzRBNTMzMjI1NjA1OTgzMDAyOEM1
OTIgLyogSFRNTFBhcnNlclNjcmlwdGluZ0ZsYWdQb2xpY3kuaCAqLywKIAkJCQk5NzdCMzg1OTEy
Mjg4M0U5MDBCODFGRjggLyogSFRNTFByZWxvYWRTY2FubmVyLmNwcCAqLywKIAkJCQk5NzdCMzg1
QTEyMjg4M0U5MDBCODFGRjggLyogSFRNTFByZWxvYWRTY2FubmVyLmggKi8sCiAJCQkJQThEMjIz
RkIxNkI1MkU0RTAwMTU3Mjg4IC8qIEhUTUxSZXNvdXJjZVByZWxvYWRlci5jcHAgKi8sCkBAIC0y
NjU1Nyw2ICsyNjU5Myw3IEBACiAJCQkJQ0VDQ0ZDM0ExNDE5NzNENTAwMkEwQUMxIC8qIERlY29k
ZUVzY2FwZVNlcXVlbmNlcy5oICovLAogCQkJCURGQzYxMEEyMjRGQjJBN0MwMDYyNTRDOCAvKiBF
bmNvZGluZ1RhYmxlcy5jcHAgKi8sCiAJCQkJREZDNjEwQTQyNEZCMkE3RDAwNjI1NEM4IC8qIEVu
Y29kaW5nVGFibGVzLmggKi8sCisJCQkJQkM0QTUzMzgyNTYwNjM5ODAwMjhDNTkyIC8qIEZvbnRS
ZW5kZXJpbmdNb2RlLmggKi8sCiAJCQkJMzc1Q0QyMzExMTlENDNDODAwQTJBODU5IC8qIEh5cGhl
bmF0aW9uLmggKi8sCiAJCQkJNzYzM0E3MjUxM0Q4QjMzQTAwODUwMUI2IC8qIExvY2FsZVRvU2Ny
aXB0TWFwcGluZy5jcHAgKi8sCiAJCQkJNzYzM0E3MjQxM0Q4QjMzQTAwODUwMUI2IC8qIExvY2Fs
ZVRvU2NyaXB0TWFwcGluZy5oICovLApAQCAtMjY1OTEsNiArMjY2MjgsNyBAQAogCQkJCUIyQzNE
QTEyMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNVVEYxNi5oICovLAogCQkJCTkzNDNDQjdG
MTJGMjVFNTEwMDMzQzVFRSAvKiBUZXh0Q29kZWNVVEY4LmNwcCAqLywKIAkJCQk5MzQzQ0I4MDEy
RjI1RTUxMDAzM0M1RUUgLyogVGV4dENvZGVjVVRGOC5oICovLAorCQkJCUJDNEE1MzNBMjU2MDY0
RTEwMDI4QzU5MiAvKiBUZXh0RGlyZWN0aW9uLmggKi8sCiAJCQkJQjJDM0RBMTYwRDAwNkMxRDAw
RUY2RjI2IC8qIFRleHRFbmNvZGluZy5jcHAgKi8sCiAJCQkJQjJDM0RBMTcwRDAwNkMxRDAwRUY2
RjI2IC8qIFRleHRFbmNvZGluZy5oICovLAogCQkJCUMxMDVEQTYzMEYzQUE2QjgwMDFERDQ0RiAv
KiBUZXh0RW5jb2RpbmdEZXRlY3Rvci5oICovLApAQCAtMjkyMjksNiArMjkyNjcsNyBAQAogCQkJ
CTFDMjRFRUEzMUM3MjlDRTQwMDgwRjhGQyAvKiBGb250RmFjZVNldC5oICovLAogCQkJCTFDMjRF
RUExMUM3MjlCMzIwMDgwRjhGQyAvKiBGb250RmFjZVNldC5pZGwgKi8sCiAJCQkJN0MzQThBQkMy
NTA5QTI1NjAwOEM0NzdGIC8qIEZvbnRGYWNlU291cmNlLmlkbCAqLywKKwkJCQlCQzRBNTMyRTI1
NjA1N0NEMDAyOEM1OTIgLyogRm9udExvYWRUaW1pbmdPdmVycmlkZS5oICovLAogCQkJCUMyQUIw
QjAzMUU2REU5MkMwMDEzNDhDNSAvKiBGb250U2VsZWN0aW9uVmFsdWVJbmxpbmVzLmggKi8sCiAJ
CQkJMUMzMjQ5MTAxQzZENkEzQjAwN0VEQjMyIC8qIEZvbnRWYXJpYW50QnVpbGRlci5jcHAgKi8s
CiAJCQkJQzIwMTVDMDkxQkU2RkUyQzAwODIyMzg5IC8qIEZvbnRWYXJpYW50QnVpbGRlci5oICov
LApAQCAtMzE0NjksNiArMzE1MDgsNyBAQAogCQkJCUJFMjM0ODBEMThBOTg3MTQwMEU0QjZFOCAv
KiBEYXRhQ3VlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTIyN0RGMTFDM0M2REYxMDBGNUVENTQg
LyogRGF0YURldGVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M3OTQxRTUxQzU2QzI5MzAw
QTRDNThFIC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUJDNEE1MzM1MjU2MDVBNTYwMDI4QzU5MiAvKiBEYXRhRGV0ZWN0b3JUeXBlcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRTU4QjQ1QkEyMEFEMDdERDAwOTkxMDI1IC8qIERhdGFMaXN0QnV0dG9uRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTUxNzY3MDMyMEI4OEMxNDAwRDQxMTY3IC8qIERh
dGFMaXN0U3VnZ2VzdGlvbkluZm9ybWF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNTJDRjU0
RjIwQTM1QTI4MDBEQURBMjcgLyogRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmggaW4gSGVhZGVy
cyAqLywKQEAgLTMxNDkxLDYgKzMxNTMxLDcgQEAKIAkJCQlGNTVCM0RCQTEyNTFGMTJEMDAzRUYy
NjkgLyogRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTVGMDZB
RUIyNEQ0OUJGNzAwQkJDNEY4IC8qIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRTVGMDZBRUYyNEQ0QTYzNzAwQkJDNEY4IC8qIERhdGVUaW1lU3ltYm9s
aWNGaWVsZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDNEE1MzJEMjU2MDU2RDUwMDI4
QzU5MiAvKiBEZWJ1Z092ZXJsYXlSZWdpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjZBMTJC
RTFBMDA5MjM3MDBDNkRFNzIgLyogRGVidWdQYWdlT3ZlcmxheXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQ1RkVBNUQwMTU2RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmggaW4gSGVhZGVycyAqLywK
IAkJCQk3MTVBRDcyMDIwNTA1MTMyMDBENTkyREMgLyogRGVjbGFyYXRpdmVBbmltYXRpb24uaCBp
biBIZWFkZXJzICovLApAQCAtMzE2NzEsMTEgKzMxNzEyLDEyIEBACiAJCQkJRkQ1MzczNTcxMzdC
NjUzQjAwMDA4RENFIC8qIER5bmFtaWNzQ29tcHJlc3Nvcktlcm5lbC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRkQ2RUQyQzQxMzZCOEU0MjAwM0NGMDcyIC8qIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTgzN0MwQjc2MjREQjM4NTAwMDVENTk1OSAvKiBEeW5hbWlj
c0NvbXByZXNzb3JPcHRpb25zLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzRBNTMyMzI1NjA1Mjc2
MDAyOEM1OTIgLyogRWRpdGFibGVMaW5rQmVoYXZpb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
MzA5REUyMDk5RTY0OTIwMDU2RTU4MSAvKiBFZGl0QWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5MzMwOURFNDA5OUU2NDkyMDA1NkU1ODEgLyogRWRpdENvbW1hbmQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTkzMzA5REU4MDk5RTY0OTIwMDU2RTU4MSAvKiBFZGl0aW5nLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0RjE1MzRERTExQjUzMkVDMDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9yLmggaW4g
SGVhZGVycyAqLywKLQkJCQk0RjE1MzRFMDExQjUzMzAyMDAyMUZEODYgLyogRWRpdGluZ0JlaGF2
aW9yVHlwZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTRGMTUzNEUwMTFCNTMzMDIwMDIxRkQ4NiAv
KiBFZGl0aW5nQmVoYXZpb3JUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzQUM2NDhCMjEyOUUx
NDY1MDBDM0VCMjUgLyogRWRpdGluZ0JvdW5kYXJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQk5QkFC
NkM2QzEyNTUwNjMxMDAxNjI2RDQgLyogRWRpdGluZ1N0eWxlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0QjMwNDNDRDBBRTAzNzNCMDBBODI2NDcgLyogRWRpdG9yLmggaW4gSGVhZGVycyAqLywKQEAg
LTMxODQ2LDE1ICszMTg4OCwxOCBAQAogCQkJCTFDNjYyNjExMUM2RTdDQTYwMEFCNTI3QyAvKiBG
b250RmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUMyNEVFQTUxQzcyOUNFNDAwODBGOEZDIC8q
IEZvbnRGYWNlU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzEyQUMyQjFFRTc3OEFFMDA3OUUw
QTAgLyogRm9udEZhbWlseVNwZWNpZmljYXRpb25Db3JlVGV4dC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJQkM0QTUzMkYyNTYwNTdDRDAwMjhDNTkyIC8qIEZvbnRMb2FkVGltaW5nT3ZlcnJpZGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTA4NDU2ODA4MTJCOTBEQTYwMDk2MEE5RiAvKiBGb250TWV0cmlj
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjUzMjBENkIxMjJBMjRFOTAwMkQxNDQwIC8qIEZvbnRQ
bGF0Zm9ybURhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3MUY0RkZDMEQyNUU3RjMwMEVDRTBE
NSAvKiBGb250UmFuZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzRBNTMzOTI1NjA2Mzk4MDAy
OEM1OTIgLyogRm9udFJlbmRlcmluZ01vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUMyQUIwQUY3
MUU2QjNDNkMwMDEzNDhDNSAvKiBGb250U2VsZWN0aW9uQWxnb3JpdGhtLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCMkMzREE2QjBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udFNlbGVjdG9yLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlFNDE5MDQxRjFDQzY0ODZCMDBDMzVGNUQgLyogRm9udFNlbGVjdG9yQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlGNDhEMkE2QzIxNTYyM0I0MDBDNjc1MkIgLyogRm9u
dFNoYWRvdy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEE2RTlGQzgxM0MxN0Q1NzAwNDZBN0Y4IC8q
IEZvbnRUYWdnZWRTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzIwMTVDMEExQkU2RkVC
MjAwODIyMzg5IC8qIEZvbnRWYXJpYW50QnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM0
QTUzMzEyNTYwNTkwMzAwMjhDNTkyIC8qIEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNEEwREEyRkYxMjlCMjQxOTAwQUI2MUUxIC8qIEZvcm1Bc3NvY2lhdGVk
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDA1Q0VEMkEwQTQwQkIyQzAwQzVBRjM4IC8q
IEZvcm1hdEJsb2NrQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NFNkNCRkIxODdGMzcw
NzAwRDQ2QkY1IC8qIEZvcm1hdENvbnZlcnRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTg3Miw2
ICszMTkxNyw3IEBACiAJCQkJQTg1MzEyM0QxMUQwNDcxQjAwRDREMDc3IC8qIEZyYWdtZW50U2Ny
aXB0aW5nUGVybWlzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVCRjAyMkYwOTc0ODE2MzAw
QzQzMTk2IC8qIEZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzRBODYyMzE0QjdBREJCMDAz
RkRDNzYgLyogRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlC
QzRBNTMyQjI1NjA1NjZFMDAyOEM1OTIgLyogRnJhbWVGbGF0dGVuaW5nLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjExNzgxODIyRTNDNDdGMDA4QkQ1NzAgLyogRnJhbWVJZGVudGlmaWVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk2NTZEMzczQzBBREJBNURFMDBBNDU1NEQgLyogRnJhbWVMb2FkZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTY1NkQzNzNFMEFEQkE1REUwMEE0NTU0RCAvKiBGcmFtZUxv
YWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjA3Myw2ICszMjExOSw3IEBACiAJCQkJ
OTNFMkEzMDcxMjNFOURDMDAwOUZFMTJBIC8qIEhUTUxQYXJzZXJJZGlvbXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTk3M0Y0MThBMTY5Qjk1RkYwMDA2QkY2MCAvKiBIVE1MUGFyc2VyT3B0aW9ucy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTc3QjM4NzExMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxQYXJz
ZXJTY2hlZHVsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDNEE1MzMzMjU2MDU5ODMwMDI4QzU5
MiAvKiBIVE1MUGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkNDMEU4NzYxQkZFNzBFOTAwOEY3RjUwIC8qIEhUTUxQaWN0dXJlRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTg3MUQ0NTYwQTEyN0NCQzAwQjEyQTY4IC8qIEhUTUxQbHVnSW5FbGVtZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NDE1MjkyRTBFMUFFOEEwMDBDNEEyRDAgLyogSFRNTFBs
dWdJbkltYWdlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMzY5MSw2ICszMzczOCw3IEBA
CiAJCQkJQTFERkQ1MjYyMzM0NTk0ODAwNDJGQ0RCIC8qIFBheW1lbnRTdW1tYXJ5SXRlbXMuaCBp
biBIZWFkZXJzICovLAogCQkJCUExNjc3REZEMjEzRTAwNjYwMEEwOEMzNCAvKiBQYXltZW50VmFs
aWRhdGlvbkVycm9ycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjI3NTM1NjUwQjA1MzgxNDAwMkNF
NjRGIC8qIFBERkRvY3VtZW50SW1hZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDNEE1MzI5MjU2
MDU2M0IwMDI4QzU5MiAvKiBQREZJbWFnZUNhY2hpbmdQb2xpY3kuaCBpbiBIZWFkZXJzICovLAog
CQkJCTVFMkM0MzUxMUJDRUUyRjYwMDAxRTJCQyAvKiBQZWVyQ29ubmVjdGlvbkJhY2tlbmQuaCBp
biBIZWFkZXJzICovLAogCQkJCTVFQkI4OTM5MUM3N0MzOTkwMEM2NUQ0MSAvKiBQZWVyTWVkaWFE
ZXNjcmlwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOEE3Q0M5NkIxMjA3NkQ3MzAwMUQ0NTg4
IC8qIFBlbmRpbmdTY3JpcHQuaCBpbiBIZWFkZXJzICovLApAQCAtMzQzOTUsNiArMzQ0NDMsNyBA
QAogCQkJCUU3RkJFN0MzMjRFQjJGQjYwMEExOEU2MiAvKiBTdGVyZW9QYW5uZXJPcHRpb25zLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQUMyRDg0NTE3MTczNEExMDA2NTJGQzAgLyogU3RvcmFnZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTFCRTM3RTAwREFFRTAwRTAwMTA4NUZDIC8qIFN0b3JhZ2VB
cmVhLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzRBNTMzNzI1NjA1QUUxMDAyOEM1OTIgLyogU3Rv
cmFnZUJsb2NraW5nUG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUUwQkFCQjBEQTU1NDcx
MDBBOUU0MTcgLyogU3RvcmFnZUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlDNUVCREQ4NDEw
NUVEREVDMDA1NjgxNkYgLyogU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTFFMEJCMzgwREE1QUNCNjAwQTlFNDE3IC8qIFN0b3JhZ2VNYXAuaCBpbiBIZWFkZXJz
ICovLApAQCAtMzQ3MTEsNiArMzQ3NjAsOCBAQAogCQkJCTE0MkI5N0NBMTMxMzg5NDMwMDhCRUY0
QiAvKiBUZXh0Q29udHJvbElubmVyRWxlbWVudHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU4MkRF
MzI1MUMzMEM4NTQwMEJFMDJBOCAvKiBUZXh0RGVjb3JhdGlvblBhaW50ZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFDNzNBNzE1MjE4NTc1ODcwMDRDQ0VBNSAvKiBUZXh0RGVjb3JhdGlvblRoaWNr
bmVzcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM0QTUzM0IyNTYwNjRFMTAwMjhDNTkyIC8qIFRl
eHREaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUJDNEE1MzI1MjU2MDU1NUYwMDI4QzU5
MiAvKiBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5N0JDODRCNDEyMzcxMTgwMDAwQzYxNjEgLyogVGV4dERvY3VtZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5N0JDODQ4NDEyMzZGRDkzMDAwQzYxNjEgLyogVGV4dERvY3VtZW50UGFy
c2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREE0NzBEMDA2QzFEMDBFRjZGMjYgLyogVGV4
dEVuY29kaW5nLmggaW4gSGVhZGVycyAqLywKQEAgLTM0ODM4LDYgKzM0ODg5LDcgQEAKIAkJCQlG
MzJCRENEOTIzNjNBQUNBMDA3M0I2QUUgLyogVXNlckdlc3R1cmVFbXVsYXRpb25TY29wZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMjU0MkY0REIxMTY2QzI1QTAwRTg5QTg2IC8qIFVzZXJHZXN0dXJl
SW5kaWNhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OTIwMzk4MzE4Qjk1QkM2MDBCMzlBRjkg
LyogVXNlcklucHV0QnJpZGdlLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzRBNTMyNzI1NjA1NUQz
MDAyOEM1OTIgLyogVXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNzFDOTE2MDgxRDE0ODNBMzAwQUNBNDdEIC8qIFVzZXJJbnRlcmZhY2VMYXlvdXREaXJl
Y3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTJFMTdEMTREMUMwMDQyMEFBMSAvKiBV
c2VyTWVkaWFDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTJGMTdEMTREMUMwMDQy
MEFBMSAvKiBVc2VyTWVkaWFDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9Gb3JjZWRBY2Nlc3NpYmlsaXR5
VmFsdWUuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Zv
cmNlZEFjY2Vzc2liaWxpdHlWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVt
IGNsYXNzIEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZSA6IHVpbnQ4X3QgeworICAgIFN5c3RlbSwK
KyAgICBPbiwKKyAgICBPZmYKK307CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250RmFjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNl
LmNwcAkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDU5LDkgKzQ1OSw5IEBAIEFsbG93VXNlckluc3RhbGxl
ZEZvbnRzIENTU0ZvbnRGYWNlOjphbGwKICAgICByZXR1cm4gQWxsb3dVc2VySW5zdGFsbGVkRm9u
dHM6OlllczsKIH0KIAotc3RhdGljIFNldHRpbmdzOjpGb250TG9hZFRpbWluZ092ZXJyaWRlIGZv
bnRMb2FkVGltaW5nT3ZlcnJpZGUoQ1NTRm9udFNlbGVjdG9yKiBmb250U2VsZWN0b3IpCitzdGF0
aWMgRm9udExvYWRUaW1pbmdPdmVycmlkZSBmb250TG9hZFRpbWluZ092ZXJyaWRlKENTU0ZvbnRT
ZWxlY3RvciogZm9udFNlbGVjdG9yKQogewotICAgIGF1dG8gb3ZlcnJpZGVWYWx1ZSA9IFNldHRp
bmdzOjpGb250TG9hZFRpbWluZ092ZXJyaWRlOjpOb25lOworICAgIGF1dG8gb3ZlcnJpZGVWYWx1
ZSA9IEZvbnRMb2FkVGltaW5nT3ZlcnJpZGU6Ok5vbmU7CiAgICAgaWYgKGZvbnRTZWxlY3RvciAm
JiBmb250U2VsZWN0b3ItPmRvY3VtZW50KCkpCiAgICAgICAgIG92ZXJyaWRlVmFsdWUgPSBmb250
U2VsZWN0b3ItPmRvY3VtZW50KCktPnNldHRpbmdzKCkuZm9udExvYWRUaW1pbmdPdmVycmlkZSgp
OwogICAgIHJldHVybiBvdmVycmlkZVZhbHVlOwpAQCAtNDcwLDcgKzQ3MCw3IEBAIHN0YXRpYyBT
ZXR0aW5nczo6Rm9udExvYWRUaW1pbmdPdmVycmlkZSAKIGF1dG8gQ1NTRm9udEZhY2U6OmZvbnRM
b2FkVGltaW5nKCkgY29uc3QgLT4gRm9udExvYWRUaW1pbmcKIHsKICAgICBzd2l0Y2ggKGZvbnRM
b2FkVGltaW5nT3ZlcnJpZGUobV9mb250U2VsZWN0b3IuZ2V0KCkpKSB7Ci0gICAgY2FzZSBTZXR0
aW5nczo6Rm9udExvYWRUaW1pbmdPdmVycmlkZTo6Tm9uZToKKyAgICBjYXNlIEZvbnRMb2FkVGlt
aW5nT3ZlcnJpZGU6Ok5vbmU6CiAgICAgICAgIHN3aXRjaCAobV9sb2FkaW5nQmVoYXZpb3IpIHsK
ICAgICAgICAgY2FzZSBGb250TG9hZGluZ0JlaGF2aW9yOjpBdXRvOgogICAgICAgICBjYXNlIEZv
bnRMb2FkaW5nQmVoYXZpb3I6OkJsb2NrOgpAQCAtNDgzLDExICs0ODMsMTEgQEAgYXV0byBDU1NG
b250RmFjZTo6Zm9udExvYWRUaW1pbmcoKSBjb25zdAogICAgICAgICAgICAgcmV0dXJuIHsgMC4x
X3MsIDBfcyB9OwogICAgICAgICB9CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgY2FzZSBTZXR0aW5nczo6Rm9udExvYWRUaW1pbmdPdmVycmlkZTo6QmxvY2s6Cisg
ICAgY2FzZSBGb250TG9hZFRpbWluZ092ZXJyaWRlOjpCbG9jazoKICAgICAgICAgcmV0dXJuIHsg
U2Vjb25kczo6aW5maW5pdHkoKSwgMF9zIH07Ci0gICAgY2FzZSBTZXR0aW5nczo6Rm9udExvYWRU
aW1pbmdPdmVycmlkZTo6U3dhcDoKKyAgICBjYXNlIEZvbnRMb2FkVGltaW5nT3ZlcnJpZGU6OlN3
YXA6CiAgICAgICAgIHJldHVybiB7IDBfcywgU2Vjb25kczo6aW5maW5pdHkoKSB9OwotICAgIGNh
c2UgU2V0dGluZ3M6OkZvbnRMb2FkVGltaW5nT3ZlcnJpZGU6OkZhaWx1cmU6CisgICAgY2FzZSBG
b250TG9hZFRpbWluZ092ZXJyaWRlOjpGYWlsdXJlOgogICAgICAgICByZXR1cm4geyAwX3MsIDBf
cyB9OwogICAgIH0KICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvY3NzL0ZvbnRMb2FkVGltaW5nT3ZlcnJpZGUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRUaW1pbmdPdmVycmlkZS5oCShub25leGlzdGVudCkK
KysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZFRpbWluZ092ZXJyaWRlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgRm9udExvYWRUaW1pbmdPdmVycmlkZSA6IHVp
bnQ4X3QgeworICAgIE5vbmUsCisgICAgQmxvY2ssCisgICAgU3dhcCwKKyAgICBGYWlsdXJlCit9
OworCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3Bw
CShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1
YXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxNSw5ICszMTUsOSBAQCBzdGF0aWMgYm9vbCBt
b25vY2hyb21lRXZhbHVhdGUoQ1NTVmFsdWUqCiB7CiAgICAgYm9vbCBpc01vbm9jaHJvbWU7CiAK
LSAgICBpZiAoZnJhbWUuc2V0dGluZ3MoKS5mb3JjZWREaXNwbGF5SXNNb25vY2hyb21lQWNjZXNz
aWJpbGl0eVZhbHVlKCkgPT0gU2V0dGluZ3M6OkZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZTo6T24p
CisgICAgaWYgKGZyYW1lLnNldHRpbmdzKCkuZm9yY2VkRGlzcGxheUlzTW9ub2Nocm9tZUFjY2Vz
c2liaWxpdHlWYWx1ZSgpID09IEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZTo6T24pCiAgICAgICAg
IGlzTW9ub2Nocm9tZSA9IHRydWU7Ci0gICAgZWxzZSBpZiAoZnJhbWUuc2V0dGluZ3MoKS5mb3Jj
ZWREaXNwbGF5SXNNb25vY2hyb21lQWNjZXNzaWJpbGl0eVZhbHVlKCkgPT0gU2V0dGluZ3M6OkZv
cmNlZEFjY2Vzc2liaWxpdHlWYWx1ZTo6T2ZmKQorICAgIGVsc2UgaWYgKGZyYW1lLnNldHRpbmdz
KCkuZm9yY2VkRGlzcGxheUlzTW9ub2Nocm9tZUFjY2Vzc2liaWxpdHlWYWx1ZSgpID09IEZvcmNl
ZEFjY2Vzc2liaWxpdHlWYWx1ZTo6T2ZmKQogICAgICAgICBpc01vbm9jaHJvbWUgPSBmYWxzZTsK
ICAgICBlbHNlCiAgICAgICAgIGlzTW9ub2Nocm9tZSA9IHNjcmVlbklzTW9ub2Nocm9tZShmcmFt
ZS5tYWluRnJhbWUoKS52aWV3KCkpOwpAQCAtMzMxLDkgKzMzMSw5IEBAIHN0YXRpYyBib29sIGlu
dmVydGVkQ29sb3JzRXZhbHVhdGUoQ1NTVmEKIHsKICAgICBib29sIGlzSW52ZXJ0ZWQ7CiAKLSAg
ICBpZiAoZnJhbWUuc2V0dGluZ3MoKS5mb3JjZWRDb2xvcnNBcmVJbnZlcnRlZEFjY2Vzc2liaWxp
dHlWYWx1ZSgpID09IFNldHRpbmdzOjpGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWU6Ok9uKQorICAg
IGlmIChmcmFtZS5zZXR0aW5ncygpLmZvcmNlZENvbG9yc0FyZUludmVydGVkQWNjZXNzaWJpbGl0
eVZhbHVlKCkgPT0gRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlOjpPbikKICAgICAgICAgaXNJbnZl
cnRlZCA9IHRydWU7Ci0gICAgZWxzZSBpZiAoZnJhbWUuc2V0dGluZ3MoKS5mb3JjZWRDb2xvcnNB
cmVJbnZlcnRlZEFjY2Vzc2liaWxpdHlWYWx1ZSgpID09IFNldHRpbmdzOjpGb3JjZWRBY2Nlc3Np
YmlsaXR5VmFsdWU6Ok9mZikKKyAgICBlbHNlIGlmIChmcmFtZS5zZXR0aW5ncygpLmZvcmNlZENv
bG9yc0FyZUludmVydGVkQWNjZXNzaWJpbGl0eVZhbHVlKCkgPT0gRm9yY2VkQWNjZXNzaWJpbGl0
eVZhbHVlOjpPZmYpCiAgICAgICAgIGlzSW52ZXJ0ZWQgPSBmYWxzZTsKICAgICBlbHNlCiAgICAg
ICAgIGlzSW52ZXJ0ZWQgPSBzY3JlZW5IYXNJbnZlcnRlZENvbG9ycygpOwpAQCAtNDU5LDkgKzQ1
OSw5IEBAIHN0YXRpYyBib29sIGR5bmFtaWNSYW5nZUV2YWx1YXRlKENTU1ZhbHUKIAogICAgIGJv
b2wgc3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlOwogCi0gICAgaWYgKGZyYW1lLnNldHRpbmdzKCku
Zm9yY2VkU3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlVmFsdWUoKSA9PSBTZXR0aW5nczo6Rm9yY2Vk
QWNjZXNzaWJpbGl0eVZhbHVlOjpPbikKKyAgICBpZiAoZnJhbWUuc2V0dGluZ3MoKS5mb3JjZWRT
dXBwb3J0c0hpZ2hEeW5hbWljUmFuZ2VWYWx1ZSgpID09IEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1
ZTo6T24pCiAgICAgICAgIHN1cHBvcnRzSGlnaER5bmFtaWNSYW5nZSA9IHRydWU7Ci0gICAgZWxz
ZSBpZiAoZnJhbWUuc2V0dGluZ3MoKS5mb3JjZWRTdXBwb3J0c0hpZ2hEeW5hbWljUmFuZ2VWYWx1
ZSgpID09IFNldHRpbmdzOjpGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWU6Ok9mZikKKyAgICBlbHNl
IGlmIChmcmFtZS5zZXR0aW5ncygpLmZvcmNlZFN1cHBvcnRzSGlnaER5bmFtaWNSYW5nZVZhbHVl
KCkgPT0gRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlOjpPZmYpCiAgICAgICAgIHN1cHBvcnRzSGln
aER5bmFtaWNSYW5nZSA9IGZhbHNlOwogICAgIGVsc2UKICAgICAgICAgc3VwcG9ydHNIaWdoRHlu
YW1pY1JhbmdlID0gc2NyZWVuU3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlKGZyYW1lLm1haW5GcmFt
ZSgpLnZpZXcoKSk7CkBAIC04MjUsMTIgKzgyNSwxMiBAQCBzdGF0aWMgYm9vbCBwcmVmZXJzUmVk
dWNlZE1vdGlvbkV2YWx1YXRlCiAgICAgYm9vbCB1c2VyUHJlZmVyc1JlZHVjZWRNb3Rpb24gPSBm
YWxzZTsKIAogICAgIHN3aXRjaCAoZnJhbWUuc2V0dGluZ3MoKS5mb3JjZWRQcmVmZXJzUmVkdWNl
ZE1vdGlvbkFjY2Vzc2liaWxpdHlWYWx1ZSgpKSB7Ci0gICAgY2FzZSBTZXR0aW5nczo6Rm9yY2Vk
QWNjZXNzaWJpbGl0eVZhbHVlOjpPbjoKKyAgICBjYXNlIEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1
ZTo6T246CiAgICAgICAgIHVzZXJQcmVmZXJzUmVkdWNlZE1vdGlvbiA9IHRydWU7CiAgICAgICAg
IGJyZWFrOwotICAgIGNhc2UgU2V0dGluZ3M6OkZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZTo6T2Zm
OgorICAgIGNhc2UgRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlOjpPZmY6CiAgICAgICAgIGJyZWFr
OwotICAgIGNhc2UgU2V0dGluZ3M6OkZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZTo6U3lzdGVtOgor
ICAgIGNhc2UgRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlOjpTeXN0ZW06CiAjaWYgVVNFKE5FV19U
SEVNRSkgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICAgICAgdXNlclByZWZlcnNSZWR1Y2Vk
TW90aW9uID0gVGhlbWU6OnNpbmdsZXRvbigpLnVzZXJQcmVmZXJzUmVkdWNlZE1vdGlvbigpOwog
I2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDI2OTgzMCkKKysr
IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1MDgs
NyArNzUwOCw3IEBAIHZvaWQgRG9jdW1lbnQ6OmFwcGx5UXVpY2tMb29rU2FuZGJveCgpCiAgICAg
QVNTRVJUKHJlc3BvbnNlVVJMLnByb3RvY29sSXMoUUxQcmV2aWV3UHJvdG9jb2wpKTsKIAogICAg
IGF1dG8gc2VjdXJpdHlPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlTm9uTG9jYWxXaXRo
QWxsb3dlZEZpbGVQYXRoKHJlc3BvbnNlVVJMLCBkb2N1bWVudFVSTC5maWxlU3lzdGVtUGF0aCgp
KTsKLSAgICBzZWN1cml0eU9yaWdpbi0+c2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KFNlY3VyaXR5
T3JpZ2luOjpCbG9ja0FsbFN0b3JhZ2UpOworICAgIHNlY3VyaXR5T3JpZ2luLT5zZXRTdG9yYWdl
QmxvY2tpbmdQb2xpY3koU3RvcmFnZUJsb2NraW5nUG9saWN5OjpCbG9ja0FsbCk7CiAgICAgc2V0
U2VjdXJpdHlPcmlnaW5Qb2xpY3koU2VjdXJpdHlPcmlnaW5Qb2xpY3k6OmNyZWF0ZShXVEZNb3Zl
KHNlY3VyaXR5T3JpZ2luKSkpOwogCiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4g
cXVpY2tMb29rQ1NQID0gbWFrZVN0cmluZygiZGVmYXVsdC1zcmMgIiwgUUxQcmV2aWV3UHJvdG9j
b2wsICI6ICd1bnNhZmUtaW5saW5lJzsgYmFzZS11cmkgJ25vbmUnOyBzYW5kYm94IGFsbG93LXNh
bWUtb3JpZ2luIGFsbG93LXNjcmlwdHMiKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdGFibGVMaW5rQmVoYXZpb3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRhYmxlTGlua0JlaGF2aW9yLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0YWJsZUxpbmtCZWhhdmlvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitlbnVtIGNsYXNzIEVkaXRhYmxlTGlua0JlaGF2aW9yIDogdWludDhfdCB7CisgICAgRGVm
YXVsdCwKKyAgICBBbHdheXNMaXZlLAorICAgIE9ubHlMaXZlV2l0aFNoaWZ0S2V5LAorICAgIExp
dmVXaGVuTm90Rm9jdXNlZCwKKyAgICBOZXZlckxpdmUKK307CisKK30KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0aW5nQmVoYXZpb3IuaAkocmV2aXNpb24gMjY5ODMwKQorKysgU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQmVoYXZpb3IuaAkod29ya2luZyBjb3B5KQpAQCAt
MjAsMTIgKzIwLDExIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiRWRpdGluZ0JlaGF2
aW9yVHlwZXMuaCIKKyNpbmNsdWRlICJFZGl0aW5nQmVoYXZpb3JUeXBlLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgRWRpdGluZ0JlaGF2aW9yIHsKLQogcHVibGljOgogICAgIGV4
cGxpY2l0IEVkaXRpbmdCZWhhdmlvcihFZGl0aW5nQmVoYXZpb3JUeXBlIHR5cGUpCiAgICAgICAg
IDogbV90eXBlKHR5cGUpCkBAIC00MCw2NyArMzksNjcgQEAgcHVibGljOgogICAgIC8vIGNvbnRl
bnQgb24gTWFjLgogICAgIGJvb2wgc2hvdWxkTW92ZUNhcmV0VG9Ib3Jpem9udGFsQm91bmRhcnlX
aGVuUGFzdFRvcE9yQm90dG9tKCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBtX3R5cGUg
IT0gRWRpdGluZ1dpbmRvd3NCZWhhdmlvcjsKKyAgICAgICAgcmV0dXJuIG1fdHlwZSAhPSBFZGl0
aW5nQmVoYXZpb3JUeXBlOjpXaW5kb3dzOwogICAgIH0KIAogICAgIC8vIE9uIFdpbmRvd3MsIHNl
bGVjdGlvbnMgc2hvdWxkIGFsd2F5cyBiZSBjb25zaWRlcmVkIGFzIGRpcmVjdGlvbmFsLCByZWdh
cmRsZXNzIGlmIGl0IGlzCiAgICAgLy8gbW91c2UtYmFzZWQgb3Iga2V5Ym9hcmQtYmFzZWQuCi0g
ICAgYm9vbCBzaG91bGRDb25zaWRlclNlbGVjdGlvbkFzRGlyZWN0aW9uYWwoKSBjb25zdCB7IHJl
dHVybiBtX3R5cGUgIT0gRWRpdGluZ01hY0JlaGF2aW9yICYmIG1fdHlwZSAhPSBFZGl0aW5nSU9T
QmVoYXZpb3I7IH0KKyAgICBib29sIHNob3VsZENvbnNpZGVyU2VsZWN0aW9uQXNEaXJlY3Rpb25h
bCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSAhPSBFZGl0aW5nQmVoYXZpb3JUeXBlOjpNYWMgJiYg
bV90eXBlICE9IEVkaXRpbmdCZWhhdmlvclR5cGU6OklvczsgfQogCiAgICAgLy8gT24gTWFjLCB3
aGVuIHJldmVhbGluZyBhIHNlbGVjdGlvbiAoZm9yIGV4YW1wbGUgYXMgYSByZXN1bHQgb2YgYSBG
aW5kIG9wZXJhdGlvbiBvbiB0aGUgQnJvd3NlciksCiAgICAgLy8gY29udGVudCBzaG91bGQgYmUg
c2Nyb2xsZWQgc3VjaCB0aGF0IHRoZSBzZWxlY3Rpb24gZ2V0cyBjZXJ0ZXIgYWxpZ25lZC4KLSAg
ICBib29sIHNob3VsZENlbnRlckFsaWduV2hlblNlbGVjdGlvbklzUmV2ZWFsZWQoKSBjb25zdCB7
IHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ01hY0JlaGF2aW9yIHx8IG1fdHlwZSA9PSBFZGl0aW5n
SU9TQmVoYXZpb3I7IH0KKyAgICBib29sIHNob3VsZENlbnRlckFsaWduV2hlblNlbGVjdGlvbklz
UmV2ZWFsZWQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ0JlaGF2aW9yVHlwZTo6
TWFjIHx8IG1fdHlwZSA9PSBFZGl0aW5nQmVoYXZpb3JUeXBlOjpJb3M7IH0KIAogICAgIC8vIE9u
IE1hYywgc3R5bGUgaXMgY29uc2lkZXJlZCBwcmVzZW50IHdoZW4gcHJlc2VudCBhdCB0aGUgYmVn
aW5uaW5nIG9mIHNlbGVjdGlvbi4gT24gb3RoZXIgcGxhdGZvcm1zLAogICAgIC8vIHN0eWxlIGhh
cyB0byBiZSBwcmVzZW50IHRocm91Z2hvdXQgdGhlIHNlbGVjdGlvbi4KLSAgICBib29sIHNob3Vs
ZFRvZ2dsZVN0eWxlQmFzZWRPblN0YXJ0T2ZTZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3R5
cGUgPT0gRWRpdGluZ01hY0JlaGF2aW9yIHx8IG1fdHlwZSA9PSBFZGl0aW5nSU9TQmVoYXZpb3I7
IH0KKyAgICBib29sIHNob3VsZFRvZ2dsZVN0eWxlQmFzZWRPblN0YXJ0T2ZTZWxlY3Rpb24oKSBj
b25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ0JlaGF2aW9yVHlwZTo6TWFjIHx8IG1fdHlw
ZSA9PSBFZGl0aW5nQmVoYXZpb3JUeXBlOjpJb3M7IH0KIAogICAgIC8vIFN0YW5kYXJkIE1hYyBi
ZWhhdmlvciB3aGVuIGV4dGVuZGluZyB0byBhIGJvdW5kYXJ5IGlzIGdyb3cgdGhlIHNlbGVjdGlv
biByYXRoZXIgdGhhbiBsZWF2aW5nIHRoZSBiYXNlCiAgICAgLy8gaW4gcGxhY2UgYW5kIG1vdmlu
ZyB0aGUgZXh0ZW50LiBNYXRjaGVzIE5TVGV4dFZpZXcuCi0gICAgYm9vbCBzaG91bGRBbHdheXNH
cm93U2VsZWN0aW9uV2hlbkV4dGVuZGluZ1RvQm91bmRhcnkoKSBjb25zdCB7IHJldHVybiBtX3R5
cGUgPT0gRWRpdGluZ01hY0JlaGF2aW9yIHx8IG1fdHlwZSA9PSBFZGl0aW5nSU9TQmVoYXZpb3I7
IH0KKyAgICBib29sIHNob3VsZEFsd2F5c0dyb3dTZWxlY3Rpb25XaGVuRXh0ZW5kaW5nVG9Cb3Vu
ZGFyeSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBFZGl0aW5nQmVoYXZpb3JUeXBlOjpNYWMg
fHwgbV90eXBlID09IEVkaXRpbmdCZWhhdmlvclR5cGU6OklvczsgfQogCiAgICAgLy8gT24gTWFj
LCB3aGVuIHByb2Nlc3NpbmcgYSBjb250ZXh0dWFsIGNsaWNrLCB0aGUgb2JqZWN0IGJlaW5nIGNs
aWNrZWQgdXBvbiBzaG91bGQgYmUgc2VsZWN0ZWQuCi0gICAgYm9vbCBzaG91bGRTZWxlY3RPbkNv
bnRleHR1YWxNZW51Q2xpY2soKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ01hY0Jl
aGF2aW9yOyB9CisgICAgYm9vbCBzaG91bGRTZWxlY3RPbkNvbnRleHR1YWxNZW51Q2xpY2soKSBj
b25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ0JlaGF2aW9yVHlwZTo6TWFjOyB9CiAKICAg
ICAvLyBPbiBMaW51eCwgc2hvdWxkIGJlIGFibGUgdG8gZ2V0IGFuZCBpbnNlcnQgc3BlbGxpbmcg
c3VnZ2VzdGlvbnMgd2l0aG91dCBzZWxlY3RpbmcgdGhlIG1pc3NwZWxsZWQgd29yZC4KICAgICBi
b29sIHNob3VsZEFsbG93U3BlbGxpbmdTdWdnZXN0aW9uc1dpdGhvdXRTZWxlY3Rpb24oKSBjb25z
dAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fdHlwZSA9PSBFZGl0aW5nVW5peEJlaGF2aW9yOwor
ICAgICAgICByZXR1cm4gbV90eXBlID09IEVkaXRpbmdCZWhhdmlvclR5cGU6OlVuaXg7CiAgICAg
fQogICAgIAogICAgIC8vIE9uIE1hYyBhbmQgV2luZG93cywgcHJlc3NpbmcgYmFja3NwYWNlICh3
aGVuIGl0IGlzbid0IGhhbmRsZWQgb3RoZXJ3aXNlKSBzaG91bGQgbmF2aWdhdGUgYmFjay4KICAg
ICBib29sIHNob3VsZE5hdmlnYXRlQmFja09uQmFja3NwYWNlKCkgY29uc3QKICAgICB7Ci0gICAg
ICAgIHJldHVybiBtX3R5cGUgIT0gRWRpdGluZ1VuaXhCZWhhdmlvcjsKKyAgICAgICAgcmV0dXJu
IG1fdHlwZSAhPSBFZGl0aW5nQmVoYXZpb3JUeXBlOjpVbml4OwogICAgIH0KIAogICAgIC8vIE9u
IE1hYywgc2VsZWN0aW5nIGJhY2t3YXJkcyBieSB3b3JkL2xpbmUgZnJvbSB0aGUgbWlkZGxlIG9m
IGEgd29yZC9saW5lLCBhbmQgdGhlbiBnb2luZwogICAgIC8vIGZvcndhcmQgbGVhdmVzIHRoZSBj
YXJldCBiYWNrIGluIHRoZSBtaWRkbGUgd2l0aCBubyBzZWxlY3Rpb24sIGluc3RlYWQgb2YgZGly
ZWN0bHkgc2VsZWN0aW5nCiAgICAgLy8gdG8gdGhlIG90aGVyIGVuZCBvZiB0aGUgbGluZS93b3Jk
IChVbml4L1dpbmRvd3MgYmVoYXZpb3IpLgotICAgIGJvb2wgc2hvdWxkRXh0ZW5kU2VsZWN0aW9u
QnlXb3JkT3JMaW5lQWNyb3NzQ2FyZXQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgIT0gRWRpdGlu
Z01hY0JlaGF2aW9yICYmIG1fdHlwZSAhPSBFZGl0aW5nSU9TQmVoYXZpb3I7IH0KKyAgICBib29s
IHNob3VsZEV4dGVuZFNlbGVjdGlvbkJ5V29yZE9yTGluZUFjcm9zc0NhcmV0KCkgY29uc3QgeyBy
ZXR1cm4gbV90eXBlICE9IEVkaXRpbmdCZWhhdmlvclR5cGU6Ok1hYyAmJiBtX3R5cGUgIT0gRWRp
dGluZ0JlaGF2aW9yVHlwZTo6SW9zOyB9CiAKICAgICAvLyBCYXNlZCBvbiBuYXRpdmUgYmVoYXZp
b3IsIHdoZW4gdXNpbmcgY3RybChhbHQpK2Fycm93IHRvIG1vdmUgY2FyZXQgYnkgd29yZCwgY3Ry
bChhbHQpK2xlZnQgYXJyb3cgbW92ZXMgY2FyZXQgdG8KICAgICAvLyBpbW1lZGlhdGVseSBiZWZv
cmUgdGhlIHdvcmQgaW4gYWxsIHBsYXRmb3JtcywgZm9yIGV4YW1wbGUsIHRoZSB3b3JkIGJyZWFr
IHBvc2l0aW9ucyBhcmU6ICJ8YWJjIHxkZWYgfGhpaiB8b3BxIi4KICAgICAvLyBCdXQgY3RybCty
aWdodCBhcnJvdyBtb3ZlcyBjYXJldCB0byAiYWJjIHxkZWYgfGhpaiB8b3BxIiBvbiBXaW5kb3dz
IGFuZCAiYWJjfCBkZWZ8IGhpanwgb3BxfCIgb24gTWFjIGFuZCBMaW51eC4KLSAgICBib29sIHNo
b3VsZFNraXBTcGFjZVdoZW5Nb3ZpbmdSaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBF
ZGl0aW5nV2luZG93c0JlaGF2aW9yOyB9CisgICAgYm9vbCBzaG91bGRTa2lwU3BhY2VXaGVuTW92
aW5nUmlnaHQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ0JlaGF2aW9yVHlwZTo6
V2luZG93czsgfQogCiAgICAgLy8gT24gaU9TIHRoZSBsYXN0IGVudGVyZWQgY2hhcmFjdGVyIGlu
IGEgc2VjdXJlIGZpbGVkIGlzIHNob3duIG1vbWVudGFyaWx5LCByZW1vdmluZyBhbmQgYWRkaW5n
IGJhY2sgdGhlCiAgICAgLy8gc3BhY2Ugd2hlbiBkZWxldGluZyBwYXNzd29yZCBjYXVzZSBzcGFj
ZSBiZWVuIHNob3dlZCBpbnNlY3VyZWx5LgotICAgIGJvb2wgc2hvdWxkUmViYWxhbmNlV2hpdGVT
cGFjZXNJblNlY3VyZUZpZWxkKCkgY29uc3QgeyByZXR1cm4gbV90eXBlICE9IEVkaXRpbmdJT1NC
ZWhhdmlvcjsgfQorICAgIGJvb2wgc2hvdWxkUmViYWxhbmNlV2hpdGVTcGFjZXNJblNlY3VyZUZp
ZWxkKCkgY29uc3QgeyByZXR1cm4gbV90eXBlICE9IEVkaXRpbmdCZWhhdmlvclR5cGU6Oklvczsg
fQogCi0gICAgYm9vbCBzaG91bGRTZWxlY3RCYXNlZE9uRGljdGlvbmFyeUxvb2t1cCgpIGNvbnN0
IHsgcmV0dXJuIG1fdHlwZSA9PSBFZGl0aW5nTWFjQmVoYXZpb3I7IH0KKyAgICBib29sIHNob3Vs
ZFNlbGVjdEJhc2VkT25EaWN0aW9uYXJ5TG9va3VwKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09
IEVkaXRpbmdCZWhhdmlvclR5cGU6Ok1hYzsgfQogCiAgICAgLy8gTGludXggYW5kIFdpbmRvd3Mg
YWx3YXlzIGV4dGVuZCBzZWxlY3Rpb25zIGZyb20gdGhlIGV4dGVudCBlbmRwb2ludC4KLSAgICBi
b29sIHNob3VsZEFsd2F5c0V4dGVuZFNlbGVjdGlvbkZyb21FeHRlbnRFbmRwb2ludCgpIGNvbnN0
IHsgcmV0dXJuIG1fdHlwZSAhPSBFZGl0aW5nTWFjQmVoYXZpb3IgJiYgbV90eXBlICE9IEVkaXRp
bmdJT1NCZWhhdmlvcjsgfQorICAgIGJvb2wgc2hvdWxkQWx3YXlzRXh0ZW5kU2VsZWN0aW9uRnJv
bUV4dGVudEVuZHBvaW50KCkgY29uc3QgeyByZXR1cm4gbV90eXBlICE9IEVkaXRpbmdCZWhhdmlv
clR5cGU6Ok1hYyAmJiBtX3R5cGUgIT0gRWRpdGluZ0JlaGF2aW9yVHlwZTo6SW9zOyB9CiAKICAg
ICAvLyBPbiBpT1MsIHdlIGRvbid0IHdhbnQgdG8gc2VsZWN0IGFsbCB0aGUgdGV4dCB3aGVuIGZv
Y3VzaW5nIGEgZmllbGQuIEluc3RlYWQsIG1hdGNoIHBsYXRmb3JtIGJlaGF2aW9yIGJ5IGdvaW5n
IHRvIHRoZSBlbmQgb2YgdGhlIGxpbmUuCi0gICAgYm9vbCBzaG91bGRNb3ZlU2VsZWN0aW9uVG9F
bmRXaGVuRm9jdXNpbmdUZXh0SW5wdXQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGlu
Z0lPU0JlaGF2aW9yOyB9CisgICAgYm9vbCBzaG91bGRNb3ZlU2VsZWN0aW9uVG9FbmRXaGVuRm9j
dXNpbmdUZXh0SW5wdXQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ0JlaGF2aW9y
VHlwZTo6SW9zOyB9CiAgICAgCiAgICAgLy8gT24gaU9TLCB3aGVuIHNtYXJ0IGRlbGV0ZSBpcyBv
biwgaXQgaXMgYWx3YXlzIG9uLCBhbmQgc2hvdWxkIGRvIG5vdCBhZGRpdGlvbmFsIGNoZWNrcyAo
aS5lLiBUZXh0R3JhbnVsYXJpdHk6OldvcmRHcmFudWxhcml0eSkuCi0gICAgYm9vbCBzaG91bGRB
bHdheXNTbWFydERlbGV0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBFZGl0aW5nSU9TQmVo
YXZpb3I7IH0KKyAgICBib29sIHNob3VsZEFsd2F5c1NtYXJ0RGVsZXRlKCkgY29uc3QgeyByZXR1
cm4gbV90eXBlID09IEVkaXRpbmdCZWhhdmlvclR5cGU6OklvczsgfQogICAgIAogICAgIC8vIE9u
IGlPUywgd2Ugc2hvdWxkIHR1cm4gb24gc21hcnQgaW5zZXJ0IGFuZCBkZWxldGUgYW5kIG5ld2xp
bmVzIGFyb3VuZCBwYXJhZ3JhcGhzIHRvIG1hdGNoIFVJS2l0IGJlaGF2aW91ci4KLSAgICBib29s
IHNob3VsZFNtYXJ0SW5zZXJ0RGVsZXRlUGFyYWdyYXBocygpIGNvbnN0IHsgcmV0dXJuIG1fdHlw
ZSA9PSBFZGl0aW5nSU9TQmVoYXZpb3I7IH0KKyAgICBib29sIHNob3VsZFNtYXJ0SW5zZXJ0RGVs
ZXRlUGFyYWdyYXBocygpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBFZGl0aW5nQmVoYXZpb3JU
eXBlOjpJb3M7IH0KIAogcHJpdmF0ZToKICAgICBFZGl0aW5nQmVoYXZpb3JUeXBlIG1fdHlwZTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yVHlwZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yVHlwZS5oCShu
b25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yVHlw
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNw
cmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIFRoZXJlIGFyZSBtdWx0aXBs
ZSBlZGl0aW5nIGRldGFpbHMgdGhhdCBhcmUgZGlmZmVyZW50IG9uIFdpbmRvd3MgdGhhbiBNYWNp
bnRvc2guCisvLyBXZSB1c2UgYSBzaW5nbGUgc3dpdGNoIGZvciBhbGwgb2YgdGhlbS4gU29tZSBl
eGFtcGxlczoKKy8vCisvLyAgICAxKSBDbGlja2luZyBiZWxvdyB0aGUgbGFzdCBsaW5lIG9mIGFu
IGVkaXRhYmxlIGFyZWEgcHV0cyB0aGUgY2FyZXQgYXQgdGhlIGVuZAorLy8gICAgICAgb2YgdGhl
IGxhc3QgbGluZSBvbiBNYWMsIGJ1dCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBsYXN0IGxpbmUgb24g
V2luZG93cy4KKy8vICAgIDIpIFB1c2hpbmcgdGhlIGRvd24gYXJyb3cga2V5IG9uIHRoZSBsYXN0
IGxpbmUgcHV0cyB0aGUgY2FyZXQgYXQgdGhlIGVuZCBvZiB0aGUKKy8vICAgICAgIGxhc3QgbGlu
ZSBvbiBNYWMsIGJ1dCBkb2VzIG5vdGhpbmcgb24gV2luZG93cy4gQSBzaW1pbGFyIGNhc2UgZXhp
c3RzIG9uIHRoZQorLy8gICAgICAgdG9wIGxpbmUuCisvLworLy8gVGhpcyBzZXR0aW5nIGlzIGlu
dGVuZGVkIHRvIGNvbnRyb2wgdGhlc2Ugc29ydHMgb2YgYmVoYXZpb3JzLiBUaGVyZSBhcmUgc29t
ZSBvdGhlcgorLy8gYmVoYXZpb3JzIHdpdGggaW5kaXZpZHVhbCBmdW5jdGlvbiBjYWxscyBvbiBF
ZGl0b3JDbGllbnQgKHNtYXJ0IGNvcHkgYW5kIHBhc3RlIGFuZAorLy8gc2VsZWN0aW5nIHRoZSBz
cGFjZSBhZnRlciBhIGRvdWJsZSBjbGljaykgdGhhdCBjb3VsZCBiZSBjb21iaW5lZCB3aXRoIHRo
aXMgaWYKKy8vIGlmIHBvc3NpYmxlIGluIHRoZSBmdXR1cmUuCitlbnVtIGNsYXNzIEVkaXRpbmdC
ZWhhdmlvclR5cGUgOiB1aW50OF90IHsKKyAgICBNYWMsCisgICAgV2luZG93cywKKyAgICBVbml4
LAorICAgIElvcworfTsKKworfSAvLyBXZWJDb3JlIG5hbWVzcGFjZQpJbmRleDogU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0aW5nQmVoYXZpb3JUeXBlcy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yVHlwZXMuaAkocmV2aXNpb24gMjY5ODMw
KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQmVoYXZpb3JUeXBlcy5oCShub25l
eGlzdGVudCkKQEAgLTEsNDUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKLSAqIENvcHlyaWdodCAo
QykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
LSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
LSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNwcmFnbWEgb25jZQotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLS8vIFRoZXJlIGFyZSBtdWx0aXBsZSBlZGl0aW5nIGRldGFp
bHMgdGhhdCBhcmUgZGlmZmVyZW50IG9uIFdpbmRvd3MgdGhhbiBNYWNpbnRvc2guCi0vLyBXZSB1
c2UgYSBzaW5nbGUgc3dpdGNoIGZvciBhbGwgb2YgdGhlbS4gU29tZSBleGFtcGxlczoKLS8vCi0v
LyAgICAxKSBDbGlja2luZyBiZWxvdyB0aGUgbGFzdCBsaW5lIG9mIGFuIGVkaXRhYmxlIGFyZWEg
cHV0cyB0aGUgY2FyZXQgYXQgdGhlIGVuZAotLy8gICAgICAgb2YgdGhlIGxhc3QgbGluZSBvbiBN
YWMsIGJ1dCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBsYXN0IGxpbmUgb24gV2luZG93cy4KLS8vICAg
IDIpIFB1c2hpbmcgdGhlIGRvd24gYXJyb3cga2V5IG9uIHRoZSBsYXN0IGxpbmUgcHV0cyB0aGUg
Y2FyZXQgYXQgdGhlIGVuZCBvZiB0aGUKLS8vICAgICAgIGxhc3QgbGluZSBvbiBNYWMsIGJ1dCBk
b2VzIG5vdGhpbmcgb24gV2luZG93cy4gQSBzaW1pbGFyIGNhc2UgZXhpc3RzIG9uIHRoZQotLy8g
ICAgICAgdG9wIGxpbmUuCi0vLwotLy8gVGhpcyBzZXR0aW5nIGlzIGludGVuZGVkIHRvIGNvbnRy
b2wgdGhlc2Ugc29ydHMgb2YgYmVoYXZpb3JzLiBUaGVyZSBhcmUgc29tZSBvdGhlcgotLy8gYmVo
YXZpb3JzIHdpdGggaW5kaXZpZHVhbCBmdW5jdGlvbiBjYWxscyBvbiBFZGl0b3JDbGllbnQgKHNt
YXJ0IGNvcHkgYW5kIHBhc3RlIGFuZAotLy8gc2VsZWN0aW5nIHRoZSBzcGFjZSBhZnRlciBhIGRv
dWJsZSBjbGljaykgdGhhdCBjb3VsZCBiZSBjb21iaW5lZCB3aXRoIHRoaXMgaWYKLS8vIGlmIHBv
c3NpYmxlIGluIHRoZSBmdXR1cmUuCi1lbnVtIEVkaXRpbmdCZWhhdmlvclR5cGUgewotICAgIEVk
aXRpbmdNYWNCZWhhdmlvciwKLSAgICBFZGl0aW5nV2luZG93c0JlaGF2aW9yLAotICAgIEVkaXRp
bmdVbml4QmVoYXZpb3IsCi0gICAgRWRpdGluZ0lPU0JlaGF2aW9yCi19OwotCi19IC8vIFdlYkNv
cmUgbmFtZXNwYWNlCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRpbmdCZWhhdmlvclR5cGVzLmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxl
CiMjIC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4MCw3ICsy
ODAsNyBAQCBWaXNpYmxlU2VsZWN0aW9uIEVkaXRvcjo6c2VsZWN0aW9uRm9yQ29tCiAvLyBGdW5j
dGlvbiBjb25zaWRlcnMgTWFjIGVkaXRpbmcgYmVoYXZpb3IgYSBmYWxsYmFjayB3aGVuIFBhZ2Ug
b3IgU2V0dGluZ3MgaXMgbm90IGF2YWlsYWJsZS4KIEVkaXRpbmdCZWhhdmlvciBFZGl0b3I6OmJl
aGF2aW9yKCkgY29uc3QKIHsKLSAgICByZXR1cm4gRWRpdGluZ0JlaGF2aW9yKG1fZG9jdW1lbnQu
c2V0dGluZ3MoKS5lZGl0aW5nQmVoYXZpb3JUeXBlKCkpOworICAgIHJldHVybiBtX2RvY3VtZW50
LmVkaXRpbmdCZWhhdmlvcigpOwogfQogCiBFZGl0b3JDbGllbnQqIEVkaXRvcjo6Y2xpZW50KCkg
Y29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAJKHJldmlzaW9uIDI2OTgzMCkK
KysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTgwLDcgKzE4MCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxQYWdlPiBjcmVhdGVQYWdlRm9yU2FuaXQK
ICAgICBhdXRvIHBhZ2UgPSBtYWtlVW5pcXVlPFBhZ2U+KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRp
b24pKTsKICAgICBwYWdlLT5zZXR0aW5ncygpLnNldE1lZGlhRW5hYmxlZChmYWxzZSk7CiAgICAg
cGFnZS0+c2V0dGluZ3MoKS5zZXRTY3JpcHRFbmFibGVkKGZhbHNlKTsKLSAgICBwYWdlLT5zZXR0
aW5ncygpLnNldFBhcnNlclNjcmlwdGluZ0ZsYWdQb2xpY3koU2V0dGluZ3NCYXNlOjpQYXJzZXJT
Y3JpcHRpbmdGbGFnUG9saWN5OjpFbmFibGVkKTsKKyAgICBwYWdlLT5zZXR0aW5ncygpLnNldEhU
TUxQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5KEhUTUxQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5
OjpFbmFibGVkKTsKICAgICBwYWdlLT5zZXR0aW5ncygpLnNldFBsdWdpbnNFbmFibGVkKGZhbHNl
KTsKICAgICBwYWdlLT5zZXR0aW5ncygpLnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVk
KGZhbHNlKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0
aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0
ZWN0aW9uLmgJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29j
b2EvRGF0YURldGVjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw4ICsyNywxMCBAQAogCiAj
aWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQogCisjaW1wb3J0ICJEYXRhRGV0ZWN0b3JUeXBlcy5o
IgogI2ltcG9ydCAiRmxvYXRSZWN0LmgiCiAjaW1wb3J0ICJTaW1wbGVSYW5nZS5oIgorI2ltcG9y
dCA8d3RmL09wdGlvblNldC5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiBPQkpDX0NM
QVNTIEREQWN0aW9uQ29udGV4dDsKQEAgLTM5LDE3ICs0MSw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgSGl0VGVzdFJlc3VsdDsKIAotLy8gRklYTUU6IFdvdWxkIGJlIGJldHRlciB0
byB1c2UgYW4gT3B0aW9uU2V0IGFuZCB1aW50OF90LgotZW51bSBjbGFzcyBEYXRhRGV0ZWN0b3JU
eXBlcyA6IHVpbnQzMl90IHsKLSAgICBQaG9uZU51bWJlciA9IDEgPDwgMCwKLSAgICBMaW5rID0g
MSA8PCAxLAotICAgIEFkZHJlc3MgPSAxIDw8IDIsCi0gICAgQ2FsZW5kYXJFdmVudCA9IDEgPDwg
MywKLSAgICBUcmFja2luZ051bWJlciA9IDEgPDwgNCwKLSAgICBGbGlnaHROdW1iZXIgPSAxIDw8
IDUsCi0gICAgTG9va3VwU3VnZ2VzdGlvbiA9IDEgPDwgNiwKLX07Ci0KIHN0cnVjdCBEZXRlY3Rl
ZEl0ZW0gewogICAgIFJldGFpblB0cjxEREFjdGlvbkNvbnRleHQ+IGFjdGlvbkNvbnRleHQ7CiAg
ICAgRmxvYXRSZWN0IGJvdW5kaW5nQm94OwpAQCAtNjEsNyArNTIsNyBAQCBwdWJsaWM6CiAjaWYg
UExBVEZPUk0oTUFDKQogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBPcHRpb25hbDxEZXRlY3Rl
ZEl0ZW0+IGRldGVjdEl0ZW1Bcm91bmRIaXRUZXN0UmVzdWx0KGNvbnN0IEhpdFRlc3RSZXN1bHQm
KTsKICNlbmRpZgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBOU0FycmF5ICpkZXRlY3RDb250
ZW50SW5SYW5nZShjb25zdCBTaW1wbGVSYW5nZSYsIERhdGFEZXRlY3RvclR5cGVzLCBOU0RpY3Rp
b25hcnkgKmNvbnRleHQpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBOU0FycmF5ICpkZXRl
Y3RDb250ZW50SW5SYW5nZShjb25zdCBTaW1wbGVSYW5nZSYsIE9wdGlvblNldDxEYXRhRGV0ZWN0
b3JUeXBlcz4sIE5TRGljdGlvbmFyeSAqY29udGV4dCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIHZvaWQgcmVtb3ZlRGF0YURldGVjdGVkTGlua3NJbkRvY3VtZW50KERvY3VtZW50Jik7CiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBj
YW5CZVByZXNlbnRlZEJ5RGF0YURldGVjdG9ycyhjb25zdCBVUkwmKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW0JKHJldmlzaW9uIDI2OTgz
MCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbQkod29y
a2luZyBjb3B5KQpAQCAtMjE4LDMwICsyMTgsMjQgQEAgc3RhdGljIEJPT0wgcmVzdWx0SXNVUkwo
RERSZXN1bHRSZWYgcmVzdQogICAgIHJldHVybiBbdXJsVHlwZXMgY29udGFpbnNPYmplY3Q6KE5T
U3RyaW5nICopc29mdExpbmtfRGF0YURldGVjdG9yc0NvcmVfRERSZXN1bHRHZXRUeXBlKHJlc3Vs
dCldOwogfQogCi0vLyBQb29yIG1hbidzIE9wdGlvblNldC4KLXN0YXRpYyBib29sIGNvbnRhaW5z
KERhdGFEZXRlY3RvclR5cGVzIHR5cGVzLCBEYXRhRGV0ZWN0b3JUeXBlcyBzaW5nbGVUeXBlKQot
ewotICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50MzJfdD4odHlwZXMpICYgc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KHNpbmdsZVR5cGUpOwotfQotCi1zdGF0aWMgTlNTdHJpbmcgKmNvbnN0cnVjdFVS
TFN0cmluZ0ZvclJlc3VsdChERFJlc3VsdFJlZiBjdXJyZW50UmVzdWx0LCBOU1N0cmluZyAqcmVz
dWx0SWRlbnRpZmllciwgTlNEYXRlICpyZWZlcmVuY2VEYXRlLCBOU1RpbWVab25lICpyZWZlcmVu
Y2VUaW1lWm9uZSwgRGF0YURldGVjdG9yVHlwZXMgZGV0ZWN0aW9uVHlwZXMpCitzdGF0aWMgTlNT
dHJpbmcgKmNvbnN0cnVjdFVSTFN0cmluZ0ZvclJlc3VsdChERFJlc3VsdFJlZiBjdXJyZW50UmVz
dWx0LCBOU1N0cmluZyAqcmVzdWx0SWRlbnRpZmllciwgTlNEYXRlICpyZWZlcmVuY2VEYXRlLCBO
U1RpbWVab25lICpyZWZlcmVuY2VUaW1lWm9uZSwgT3B0aW9uU2V0PERhdGFEZXRlY3RvclR5cGVz
PiBkZXRlY3Rpb25UeXBlcykKIHsKICAgICBpZiAoIXNvZnRMaW5rX0RhdGFEZXRlY3RvcnNDb3Jl
X0REUmVzdWx0SGFzUHJvcGVydGllcyhjdXJyZW50UmVzdWx0LCBERFJlc3VsdFByb3BlcnR5UGFz
c2l2ZURpc3BsYXkpKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgYXV0byBwaG9uZVR5cGVz
ID0gY29udGFpbnMoZGV0ZWN0aW9uVHlwZXMsIERhdGFEZXRlY3RvclR5cGVzOjpQaG9uZU51bWJl
cikgPyBERFVSTGlmaWVyUGhvbmVOdW1iZXJEZXRlY3Rpb25SZWd1bGFyIDogRERVUkxpZmllclBo
b25lTnVtYmVyRGV0ZWN0aW9uTm9uZTsKKyAgICBhdXRvIHBob25lVHlwZXMgPSBkZXRlY3Rpb25U
eXBlcy5jb250YWlucyhEYXRhRGV0ZWN0b3JUeXBlczo6UGhvbmVOdW1iZXIpID8gRERVUkxpZmll
clBob25lTnVtYmVyRGV0ZWN0aW9uUmVndWxhciA6IEREVVJMaWZpZXJQaG9uZU51bWJlckRldGVj
dGlvbk5vbmU7CiAgICAgYXV0byBjYXRlZ29yeSA9IHNvZnRMaW5rX0RhdGFEZXRlY3RvcnNDb3Jl
X0REUmVzdWx0R2V0Q2F0ZWdvcnkoY3VycmVudFJlc3VsdCk7CiAgICAgYXV0byB0eXBlID0gc29m
dExpbmtfRGF0YURldGVjdG9yc0NvcmVfRERSZXN1bHRHZXRUeXBlKGN1cnJlbnRSZXN1bHQpOwog
Ci0gICAgaWYgKChjb250YWlucyhkZXRlY3Rpb25UeXBlcywgRGF0YURldGVjdG9yVHlwZXM6OkFk
ZHJlc3MpICYmIEREUmVzdWx0Q2F0ZWdvcnlBZGRyZXNzID09IGNhdGVnb3J5KQotICAgICAgICB8
fCAoY29udGFpbnMoZGV0ZWN0aW9uVHlwZXMsIERhdGFEZXRlY3RvclR5cGVzOjpUcmFja2luZ051
bWJlcikgJiYgQ0ZFcXVhbChnZXRfRGF0YURldGVjdG9yc0NvcmVfRERCaW5kZXJUcmFja2luZ051
bWJlcktleSgpLCB0eXBlKSkKLSAgICAgICAgfHwgKGNvbnRhaW5zKGRldGVjdGlvblR5cGVzLCBE
YXRhRGV0ZWN0b3JUeXBlczo6RmxpZ2h0TnVtYmVyKSAmJiBDRkVxdWFsKGdldF9EYXRhRGV0ZWN0
b3JzQ29yZV9EREJpbmRlckZsaWdodEluZm9ybWF0aW9uS2V5KCksIHR5cGUpKQotICAgICAgICB8
fCAoY29udGFpbnMoZGV0ZWN0aW9uVHlwZXMsIERhdGFEZXRlY3RvclR5cGVzOjpMb29rdXBTdWdn
ZXN0aW9uKSAmJiBDRkVxdWFsKGdldF9EYXRhRGV0ZWN0b3JzQ29yZV9EREJpbmRlclBhcnNlY1Nv
dXJjZUtleSgpLCB0eXBlKSkKLSAgICAgICAgfHwgKGNvbnRhaW5zKGRldGVjdGlvblR5cGVzLCBE
YXRhRGV0ZWN0b3JUeXBlczo6UGhvbmVOdW1iZXIpICYmIEREUmVzdWx0Q2F0ZWdvcnlQaG9uZU51
bWJlciA9PSBjYXRlZ29yeSkKLSAgICAgICAgfHwgKGNvbnRhaW5zKGRldGVjdGlvblR5cGVzLCBE
YXRhRGV0ZWN0b3JUeXBlczo6TGluaykgJiYgcmVzdWx0SXNVUkwoY3VycmVudFJlc3VsdCkpKSB7
CisgICAgaWYgKChkZXRlY3Rpb25UeXBlcy5jb250YWlucyhEYXRhRGV0ZWN0b3JUeXBlczo6QWRk
cmVzcykgJiYgRERSZXN1bHRDYXRlZ29yeUFkZHJlc3MgPT0gY2F0ZWdvcnkpCisgICAgICAgIHx8
IChkZXRlY3Rpb25UeXBlcy5jb250YWlucyhEYXRhRGV0ZWN0b3JUeXBlczo6VHJhY2tpbmdOdW1i
ZXIpICYmIENGRXF1YWwoZ2V0X0RhdGFEZXRlY3RvcnNDb3JlX0REQmluZGVyVHJhY2tpbmdOdW1i
ZXJLZXkoKSwgdHlwZSkpCisgICAgICAgIHx8IChkZXRlY3Rpb25UeXBlcy5jb250YWlucyhEYXRh
RGV0ZWN0b3JUeXBlczo6RmxpZ2h0TnVtYmVyKSAmJiBDRkVxdWFsKGdldF9EYXRhRGV0ZWN0b3Jz
Q29yZV9EREJpbmRlckZsaWdodEluZm9ybWF0aW9uS2V5KCksIHR5cGUpKQorICAgICAgICB8fCAo
ZGV0ZWN0aW9uVHlwZXMuY29udGFpbnMoRGF0YURldGVjdG9yVHlwZXM6Okxvb2t1cFN1Z2dlc3Rp
b24pICYmIENGRXF1YWwoZ2V0X0RhdGFEZXRlY3RvcnNDb3JlX0REQmluZGVyUGFyc2VjU291cmNl
S2V5KCksIHR5cGUpKQorICAgICAgICB8fCAoZGV0ZWN0aW9uVHlwZXMuY29udGFpbnMoRGF0YURl
dGVjdG9yVHlwZXM6OlBob25lTnVtYmVyKSAmJiBERFJlc3VsdENhdGVnb3J5UGhvbmVOdW1iZXIg
PT0gY2F0ZWdvcnkpCisgICAgICAgIHx8IChkZXRlY3Rpb25UeXBlcy5jb250YWlucyhEYXRhRGV0
ZWN0b3JUeXBlczo6TGluaykgJiYgcmVzdWx0SXNVUkwoY3VycmVudFJlc3VsdCkpKSB7CiAgICAg
ICAgIHJldHVybiBzb2Z0TGlua19EYXRhRGV0ZWN0b3JzQ29yZV9ERFVSTFN0cmluZ0ZvclJlc3Vs
dChjdXJyZW50UmVzdWx0LCByZXN1bHRJZGVudGlmaWVyLCBwaG9uZVR5cGVzLCByZWZlcmVuY2VE
YXRlLCByZWZlcmVuY2VUaW1lWm9uZSk7CiAgICAgfQotICAgIGlmIChjb250YWlucyhkZXRlY3Rp
b25UeXBlcywgRGF0YURldGVjdG9yVHlwZXM6OkNhbGVuZGFyRXZlbnQpICYmIEREUmVzdWx0Q2F0
ZWdvcnlDYWxlbmRhckV2ZW50ID09IGNhdGVnb3J5KSB7CisgICAgaWYgKGRldGVjdGlvblR5cGVz
LmNvbnRhaW5zKERhdGFEZXRlY3RvclR5cGVzOjpDYWxlbmRhckV2ZW50KSAmJiBERFJlc3VsdENh
dGVnb3J5Q2FsZW5kYXJFdmVudCA9PSBjYXRlZ29yeSkgewogICAgICAgICBpZiAoIXNvZnRMaW5r
X0RhdGFEZXRlY3RvcnNDb3JlX0REUmVzdWx0SXNQYXN0RGF0ZShjdXJyZW50UmVzdWx0LCAoQ0ZE
YXRlUmVmKXJlZmVyZW5jZURhdGUsIChDRlRpbWVab25lUmVmKXJlZmVyZW5jZVRpbWVab25lKSkK
ICAgICAgICAgICAgIHJldHVybiBzb2Z0TGlua19EYXRhRGV0ZWN0b3JzQ29yZV9ERFVSTFN0cmlu
Z0ZvclJlc3VsdChjdXJyZW50UmVzdWx0LCByZXN1bHRJZGVudGlmaWVyLCBwaG9uZVR5cGVzLCBy
ZWZlcmVuY2VEYXRlLCByZWZlcmVuY2VUaW1lWm9uZSk7CiAgICAgfQpAQCAtNDM5LDEzICs0MzMs
MTMgQEAgdm9pZCBEYXRhRGV0ZWN0aW9uOjpyZW1vdmVEYXRhRGV0ZWN0ZWRMaQogICAgICAgICBy
ZW1vdmVSZXN1bHRMaW5rc0Zyb21BbmNob3IoYW5jaG9yLmdldCgpKTsKIH0KIAotTlNBcnJheSAq
RGF0YURldGVjdGlvbjo6ZGV0ZWN0Q29udGVudEluUmFuZ2UoY29uc3QgU2ltcGxlUmFuZ2UmIGNv
bnRleHRSYW5nZSwgRGF0YURldGVjdG9yVHlwZXMgdHlwZXMsIE5TRGljdGlvbmFyeSAqY29udGV4
dCkKK05TQXJyYXkgKkRhdGFEZXRlY3Rpb246OmRldGVjdENvbnRlbnRJblJhbmdlKGNvbnN0IFNp
bXBsZVJhbmdlJiBjb250ZXh0UmFuZ2UsIE9wdGlvblNldDxEYXRhRGV0ZWN0b3JUeXBlcz4gdHlw
ZXMsIE5TRGljdGlvbmFyeSAqY29udGV4dCkKIHsKICAgICBhdXRvIHNjYW5uZXIgPSBhZG9wdENG
KHNvZnRMaW5rX0RhdGFEZXRlY3RvcnNDb3JlX0REU2Nhbm5lckNyZWF0ZShERFNjYW5uZXJUeXBl
U3RhbmRhcmQsIDAsIG51bGxwdHIpKTsKICAgICBhdXRvIHNjYW5RdWVyeSA9IGFkb3B0Q0Yoc29m
dExpbmtfRGF0YURldGVjdG9yc0NvcmVfRERTY2FuUXVlcnlDcmVhdGUoTlVMTCkpOwogICAgIGJ1
aWxkUXVlcnkoc2NhblF1ZXJ5LmdldCgpLCBjb250ZXh0UmFuZ2UpOwogICAgIAotICAgIGlmIChj
b250YWlucyh0eXBlcywgRGF0YURldGVjdG9yVHlwZXM6Okxvb2t1cFN1Z2dlc3Rpb24pKQorICAg
IGlmICh0eXBlcy5jb250YWlucyhEYXRhRGV0ZWN0b3JUeXBlczo6TG9va3VwU3VnZ2VzdGlvbikp
CiAgICAgICAgIHNvZnRMaW5rX0RhdGFEZXRlY3RvcnNDb3JlX0REU2Nhbm5lckVuYWJsZU9wdGlv
bmFsU291cmNlKHNjYW5uZXIuZ2V0KCksIEREU2Nhbm5lclNvdXJjZVNwb3RsaWdodCwgdHJ1ZSk7
CiAKICAgICAvLyBGSVhNRTogd2Ugc2hvdWxkIGFkZCBhIHRpbWVvdXQgdG8gdGhpcyBjYWxsIHRv
IG1ha2Ugc3VyZSBpdCBkb2Vzbid0IHRha2UgdG9vIG11Y2ggdGltZS4KQEAgLTYzOCw3ICs2MzIs
NyBAQCBOU0FycmF5ICpEYXRhRGV0ZWN0aW9uOjpkZXRlY3RDb250ZW50SW5SCiAKICNlbHNlCiAK
LU5TQXJyYXkgKkRhdGFEZXRlY3Rpb246OmRldGVjdENvbnRlbnRJblJhbmdlKGNvbnN0IFNpbXBs
ZVJhbmdlJiwgRGF0YURldGVjdG9yVHlwZXMsIE5TRGljdGlvbmFyeSAqKQorTlNBcnJheSAqRGF0
YURldGVjdGlvbjo6ZGV0ZWN0Q29udGVudEluUmFuZ2UoY29uc3QgU2ltcGxlUmFuZ2UmLCBPcHRp
b25TZXQ8RGF0YURldGVjdG9yVHlwZXM+LCBOU0RpY3Rpb25hcnkgKikKIHsKICAgICByZXR1cm4g
bmlsOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0b3JU
eXBlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURl
dGVjdG9yVHlwZXMuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2Nv
Y29hL0RhdGFEZXRlY3RvclR5cGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgRGF0YURldGVjdG9yVHlwZXMgOiB1
aW50OF90IHsKKyAgICBOb25lID0gMCwKKyAgICBQaG9uZU51bWJlciA9IDEgPDwgMCwKKyAgICBM
aW5rID0gMSA8PCAxLAorICAgIEFkZHJlc3MgPSAxIDw8IDIsCisgICAgQ2FsZW5kYXJFdmVudCA9
IDEgPDwgMywKKyAgICBUcmFja2luZ051bWJlciA9IDEgPDwgNCwKKyAgICBGbGlnaHROdW1iZXIg
PSAxIDw8IDUsCisgICAgTG9va3VwU3VnZ2VzdGlvbiA9IDEgPDwgNiwKK307CisKK30KKworI2Vu
ZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAkocmV2
aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTIxNCwyOCArMjE0LDIzIEBAIHZvaWQgSFRNTEFuY2hvckVs
ZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmQKIHZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OnNldEFjdGl2
ZShib29sIGRvd24sIGJvb2wgcGF1c2UpCiB7CiAgICAgaWYgKGhhc0VkaXRhYmxlU3R5bGUoKSkg
ewotICAgICAgICBFZGl0YWJsZUxpbmtCZWhhdmlvciBlZGl0YWJsZUxpbmtCZWhhdmlvciA9IGRv
Y3VtZW50KCkuc2V0dGluZ3MoKS5lZGl0YWJsZUxpbmtCZWhhdmlvcigpOwotICAgICAgICAgICAg
Ci0gICAgICAgIHN3aXRjaCAoZWRpdGFibGVMaW5rQmVoYXZpb3IpIHsKLSAgICAgICAgICAgIGRl
ZmF1bHQ6Ci0gICAgICAgICAgICBjYXNlIEVkaXRhYmxlTGlua0RlZmF1bHRCZWhhdmlvcjoKLSAg
ICAgICAgICAgIGNhc2UgRWRpdGFibGVMaW5rQWx3YXlzTGl2ZToKLSAgICAgICAgICAgICAgICBi
cmVhazsKLQotICAgICAgICAgICAgY2FzZSBFZGl0YWJsZUxpbmtOZXZlckxpdmU6CisgICAgICAg
IHN3aXRjaCAoZG9jdW1lbnQoKS5zZXR0aW5ncygpLmVkaXRhYmxlTGlua0JlaGF2aW9yKCkpIHsK
KyAgICAgICAgY2FzZSBFZGl0YWJsZUxpbmtCZWhhdmlvcjo6RGVmYXVsdDoKKyAgICAgICAgY2Fz
ZSBFZGl0YWJsZUxpbmtCZWhhdmlvcjo6QWx3YXlzTGl2ZToKKyAgICAgICAgICAgIGJyZWFrOwor
CisgICAgICAgIC8vIERvbid0IHNldCB0aGUgbGluayB0byBiZSBhY3RpdmUgaWYgdGhlIGN1cnJl
bnQgc2VsZWN0aW9uIGlzIGluIHRoZSBzYW1lIGVkaXRhYmxlIGJsb2NrIGFzCisgICAgICAgIC8v
IHRoaXMgbGluaworICAgICAgICBjYXNlIEVkaXRhYmxlTGlua0JlaGF2aW9yOjpMaXZlV2hlbk5v
dEZvY3VzZWQ6CisgICAgICAgICAgICBpZiAoZG93biAmJiBkb2N1bWVudCgpLmZyYW1lKCkgJiYg
ZG9jdW1lbnQoKS5mcmFtZSgpLT5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKS5yb290RWRpdGFibGVF
bGVtZW50KCkgPT0gcm9vdEVkaXRhYmxlRWxlbWVudCgpKQogICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAKKyAgICAgICAgY2FzZSBFZGl0YWJsZUxp
bmtCZWhhdmlvcjo6TmV2ZXJMaXZlOgorICAgICAgICBjYXNlIEVkaXRhYmxlTGlua0JlaGF2aW9y
OjpPbmx5TGl2ZVdpdGhTaGlmdEtleToKKyAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAg
ICAgLy8gRG9uJ3Qgc2V0IHRoZSBsaW5rIHRvIGJlIGFjdGl2ZSBpZiB0aGUgY3VycmVudCBzZWxl
Y3Rpb24gaXMgaW4gdGhlIHNhbWUgZWRpdGFibGUgYmxvY2sgYXMKLSAgICAgICAgICAgIC8vIHRo
aXMgbGluawotICAgICAgICAgICAgY2FzZSBFZGl0YWJsZUxpbmtMaXZlV2hlbk5vdEZvY3VzZWQ6
Ci0gICAgICAgICAgICAgICAgaWYgKGRvd24gJiYgZG9jdW1lbnQoKS5mcmFtZSgpICYmIGRvY3Vt
ZW50KCkuZnJhbWUoKS0+c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkucm9vdEVkaXRhYmxlRWxlbWVu
dCgpID09IHJvb3RFZGl0YWJsZUVsZW1lbnQoKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBjYXNl
IEVkaXRhYmxlTGlua09ubHlMaXZlV2l0aFNoaWZ0S2V5OgotICAgICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQotCiAgICAgfQogICAgIAogICAgIEhUTUxFbGVtZW50OjpzZXRBY3RpdmUo
ZG93biwgcGF1c2UpOwpAQCAtNTUwLDE5ICs1NDUsMTkgQEAgYm9vbCBIVE1MQW5jaG9yRWxlbWVu
dDo6dHJlYXRMaW5rQXNMaXZlRgogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHN3aXRjaCAo
ZG9jdW1lbnQoKS5zZXR0aW5ncygpLmVkaXRhYmxlTGlua0JlaGF2aW9yKCkpIHsKLSAgICBjYXNl
IEVkaXRhYmxlTGlua0RlZmF1bHRCZWhhdmlvcjoKLSAgICBjYXNlIEVkaXRhYmxlTGlua0Fsd2F5
c0xpdmU6CisgICAgY2FzZSBFZGl0YWJsZUxpbmtCZWhhdmlvcjo6RGVmYXVsdDoKKyAgICBjYXNl
IEVkaXRhYmxlTGlua0JlaGF2aW9yOjpBbHdheXNMaXZlOgogICAgICAgICByZXR1cm4gdHJ1ZTsK
IAotICAgIGNhc2UgRWRpdGFibGVMaW5rTmV2ZXJMaXZlOgorICAgIGNhc2UgRWRpdGFibGVMaW5r
QmVoYXZpb3I6Ok5ldmVyTGl2ZToKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gSWYg
dGhlIHNlbGVjdGlvbiBwcmlvciB0byBjbGlja2luZyBvbiB0aGlzIGxpbmsgcmVzaWRlZCBpbiB0
aGUgc2FtZSBlZGl0YWJsZSBibG9jayBhcyB0aGlzIGxpbmssCiAgICAgLy8gYW5kIHRoZSBzaGlm
dCBrZXkgaXNuJ3QgcHJlc3NlZCwgd2UgZG9uJ3Qgd2FudCB0byBmb2xsb3cgdGhlIGxpbmsuCi0g
ICAgY2FzZSBFZGl0YWJsZUxpbmtMaXZlV2hlbk5vdEZvY3VzZWQ6CisgICAgY2FzZSBFZGl0YWJs
ZUxpbmtCZWhhdmlvcjo6TGl2ZVdoZW5Ob3RGb2N1c2VkOgogICAgICAgICByZXR1cm4gZXZlbnRU
eXBlID09IE1vdXNlRXZlbnRXaXRoU2hpZnRLZXkgfHwgKGV2ZW50VHlwZSA9PSBNb3VzZUV2ZW50
V2l0aG91dFNoaWZ0S2V5ICYmIHJvb3RFZGl0YWJsZUVsZW1lbnRGb3JTZWxlY3Rpb25Pbk1vdXNl
RG93bigpICE9IHJvb3RFZGl0YWJsZUVsZW1lbnQoKSk7CiAKLSAgICBjYXNlIEVkaXRhYmxlTGlu
a09ubHlMaXZlV2l0aFNoaWZ0S2V5OgorICAgIGNhc2UgRWRpdGFibGVMaW5rQmVoYXZpb3I6Ok9u
bHlMaXZlV2l0aFNoaWZ0S2V5OgogICAgICAgICByZXR1cm4gZXZlbnRUeXBlID09IE1vdXNlRXZl
bnRXaXRoU2hpZnRLZXk7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MUGFyc2VyT3B0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTFBhcnNlck9wdGlvbnMuY3BwCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUGFyc2VyT3B0aW9ucy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ1LDcgKzQ1LDcgQEAgSFRNTFBhcnNlck9wdGlvbnM6OkhUTUxQYXJzZXJPcHRpb25z
KCkKIEhUTUxQYXJzZXJPcHRpb25zOjpIVE1MUGFyc2VyT3B0aW9ucyhEb2N1bWVudCYgZG9jdW1l
bnQpCiB7CiAgICAgUmVmUHRyPEZyYW1lPiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCk7Ci0gICAg
aWYgKGRvY3VtZW50LnNldHRpbmdzKCkucGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeSgpID09IFNl
dHRpbmdzQmFzZTo6UGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeTo6RW5hYmxlZCkKKyAgICBpZiAo
ZG9jdW1lbnQuc2V0dGluZ3MoKS5odG1sUGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeSgpID09IEhU
TUxQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5OjpFbmFibGVkKQogICAgICAgICBzY3JpcHRpbmdG
bGFnID0gdHJ1ZTsKICAgICBlbHNlCiAgICAgICAgIHNjcmlwdGluZ0ZsYWcgPSBmcmFtZSAmJiBm
cmFtZS0+c2NyaXB0KCkuY2FuRXhlY3V0ZVNjcmlwdHMoTm90QWJvdXRUb0V4ZWN1dGVTY3JpcHQp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlclNjcmlwdGluZ0Zs
YWdQb2xpY3kuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
UGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgSFRNTFBhcnNlclNjcmlwdGluZ0ZsYWdQb2xp
Y3kgOiB1aW50OF90IHsKKyAgICBPbmx5SWZTY3JpcHRJc0VuYWJsZWQsCisgICAgRW5hYmxlZAor
fTsKKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCShyZXZpc2lv
biAyNjk4MzApCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNTgwLDggKzI1ODAsOCBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjaGVja0xv
YWRDb21wbGV0ZUZvclRoCiAgICAgICAgICAgICAgICAgRlJBTUVMT0FERVJfUkVMRUFTRV9MT0df
SUZfQUxMT1dFRChSZXNvdXJjZUxvYWRpbmcsICJjaGVja0xvYWRDb21wbGV0ZUZvclRoaXNGcmFt
ZTogRmluaXNoZWQgZnJhbWUgbG9hZCIpOwogI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKICAg
ICAgICAgICAgICAgICBhdXRvIGRvY3VtZW50ID0gbV9mcmFtZS5kb2N1bWVudCgpOwotICAgICAg
ICAgICAgICAgIGF1dG8gdHlwZXMgPSBtX2ZyYW1lLnNldHRpbmdzKCkuZGF0YURldGVjdG9yVHlw
ZXMoKTsKLSAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQgJiYgc3RhdGljX2Nhc3Q8dWludDMy
X3Q+KHR5cGVzKSkgeworICAgICAgICAgICAgICAgIGF1dG8gdHlwZXMgPSBPcHRpb25TZXQ8RGF0
YURldGVjdG9yVHlwZXM+IHsgbV9mcmFtZS5zZXR0aW5ncygpLmRhdGFEZXRlY3RvclR5cGVzKCkg
fTsKKyAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQgJiYgdHlwZXMpIHsKICAgICAgICAgICAg
ICAgICAgICAgbV9mcmFtZS5zZXREYXRhRGV0ZWN0aW9uUmVzdWx0cyhEYXRhRGV0ZWN0aW9uOjpk
ZXRlY3RDb250ZW50SW5SYW5nZShtYWtlUmFuZ2VTZWxlY3RpbmdOb2RlQ29udGVudHMoKmRvY3Vt
ZW50KSwgdHlwZXMsIG1fY2xpZW50LT5kYXRhRGV0ZWN0aW9uQ29udGV4dCgpKSk7CiAgICAgICAg
ICAgICAgICAgICAgIGlmIChtX2ZyYW1lLmlzTWFpbkZyYW1lKCkpCiAgICAgICAgICAgICAgICAg
ICAgICAgICBtX2NsaWVudC0+ZGlzcGF0Y2hEaWRGaW5pc2hEYXRhRGV0ZWN0aW9uKG1fZnJhbWUu
ZGF0YURldGVjdGlvblJlc3VsdHMoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRl
eHRNZW51Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9D
b250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEx
MTAsOCArMTExMCw4IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpwb3B1bGF0ZSgpCiAg
ICAgICAgICAgICBjcmVhdGVBbmRBcHBlbmRXcml0aW5nRGlyZWN0aW9uU3ViTWVudShXcml0aW5n
RGlyZWN0aW9uTWVudUl0ZW0pOwogICAgICAgICAgICAgYXBwZW5kSXRlbShXcml0aW5nRGlyZWN0
aW9uTWVudUl0ZW0sIG1fY29udGV4dE1lbnUuZ2V0KCkpOwogICAgICAgICAgICAgaWYgKFBhZ2Uq
IHBhZ2UgPSBmcmFtZS0+cGFnZSgpKSB7Ci0gICAgICAgICAgICAgICAgYm9vbCBpbmNsdWRlVGV4
dERpcmVjdGlvblN1Ym1lbnUgPSBwYWdlLT5zZXR0aW5ncygpLnRleHREaXJlY3Rpb25TdWJtZW51
SW5jbHVzaW9uQmVoYXZpb3IoKSA9PSBUZXh0RGlyZWN0aW9uU3VibWVudUFsd2F5c0luY2x1ZGVk
Ci0gICAgICAgICAgICAgICAgICAgIHx8IChwYWdlLT5zZXR0aW5ncygpLnRleHREaXJlY3Rpb25T
dWJtZW51SW5jbHVzaW9uQmVoYXZpb3IoKSA9PSBUZXh0RGlyZWN0aW9uU3VibWVudUF1dG9tYXRp
Y2FsbHlJbmNsdWRlZCAmJiBmcmFtZS0+ZWRpdG9yKCkuaGFzQmlkaVNlbGVjdGlvbigpKTsKKyAg
ICAgICAgICAgICAgICBib29sIGluY2x1ZGVUZXh0RGlyZWN0aW9uU3VibWVudSA9IHBhZ2UtPnNl
dHRpbmdzKCkudGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcigpID09IFRleHRE
aXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3I6OkFsd2F5c0luY2x1ZGVkCisgICAgICAg
ICAgICAgICAgICAgIHx8IChwYWdlLT5zZXR0aW5ncygpLnRleHREaXJlY3Rpb25TdWJtZW51SW5j
bHVzaW9uQmVoYXZpb3IoKSA9PSBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9y
OjpBdXRvbWF0aWNhbGx5SW5jbHVkZWQgJiYgZnJhbWUtPmVkaXRvcigpLmhhc0JpZGlTZWxlY3Rp
b24oKSk7CiAgICAgICAgICAgICAgICAgaWYgKGluY2x1ZGVUZXh0RGlyZWN0aW9uU3VibWVudSkg
ewogICAgICAgICAgICAgICAgICAgICBDb250ZXh0TWVudUl0ZW0gVGV4dERpcmVjdGlvbk1lbnVJ
dGVtKFN1Ym1lbnVUeXBlLCBDb250ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0aW9uTWVudSwgY29u
dGV4dE1lbnVJdGVtVGFnVGV4dERpcmVjdGlvbk1lbnUoKSk7CiAgICAgICAgICAgICAgICAgICAg
IGNyZWF0ZUFuZEFwcGVuZFRleHREaXJlY3Rpb25TdWJNZW51KFRleHREaXJlY3Rpb25NZW51SXRl
bSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RlYnVnT3ZlcmxheVJlZ2lvbnMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0RlYnVnT3ZlcmxheVJlZ2lvbnMuaAkobm9u
ZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RlYnVnT3ZlcmxheVJlZ2lvbnMuaAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBEZWJ1Z092ZXJsYXlSZWdpb25z
IDogdWludDhfdCB7CisgICAgTm9uRmFzdFNjcm9sbGFibGVSZWdpb24gPSAxIDw8IDAsCisgICAg
V2hlZWxFdmVudEhhbmRsZXJSZWdpb24gPSAxIDw8IDEsCisgICAgVG91Y2hBY3Rpb25SZWdpb24g
PSAxIDw8IDIsCisgICAgRWRpdGFibGVFbGVtZW50UmVnaW9uID0gMSA8PCAzLAorfTsKKworfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9EZWJ1Z1BhZ2VPdmVybGF5cy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9EZWJ1Z1BhZ2VPdmVybGF5cy5jcHAJKHJldmlzaW9u
IDI2OTgzMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zOTksMTQgKzM5OSwxNCBAQCBSZWdpb25PdmVybGF5KiBEZWJ1Z1Bh
Z2VPdmVybGF5czo6cmVnaW9uCiAgICAgcmV0dXJuIGl0LT52YWx1ZS5hdChpbmRleE9mKHJlZ2lv
blR5cGUpKS5nZXQoKTsKIH0KIAotdm9pZCBEZWJ1Z1BhZ2VPdmVybGF5czo6dXBkYXRlT3Zlcmxh
eVJlZ2lvblZpc2liaWxpdHkoUGFnZSYgcGFnZSwgRGVidWdPdmVybGF5UmVnaW9ucyB2aXNpYmxl
UmVnaW9ucykKK3ZvaWQgRGVidWdQYWdlT3ZlcmxheXM6OnVwZGF0ZU92ZXJsYXlSZWdpb25WaXNp
YmlsaXR5KFBhZ2UmIHBhZ2UsIE9wdGlvblNldDxEZWJ1Z092ZXJsYXlSZWdpb25zPiB2aXNpYmxl
UmVnaW9ucykKIHsKLSAgICBpZiAodmlzaWJsZVJlZ2lvbnMgJiBOb25GYXN0U2Nyb2xsYWJsZVJl
Z2lvbikKKyAgICBpZiAodmlzaWJsZVJlZ2lvbnMuY29udGFpbnMoRGVidWdPdmVybGF5UmVnaW9u
czo6Tm9uRmFzdFNjcm9sbGFibGVSZWdpb24pKQogICAgICAgICBzaG93UmVnaW9uT3ZlcmxheShw
YWdlLCBSZWdpb25UeXBlOjpOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbik7CiAgICAgZWxzZQogICAg
ICAgICBoaWRlUmVnaW9uT3ZlcmxheShwYWdlLCBSZWdpb25UeXBlOjpOb25GYXN0U2Nyb2xsYWJs
ZVJlZ2lvbik7CiAKLSAgICBpZiAodmlzaWJsZVJlZ2lvbnMgJiBXaGVlbEV2ZW50SGFuZGxlclJl
Z2lvbikKKyAgICBpZiAodmlzaWJsZVJlZ2lvbnMgJiBEZWJ1Z092ZXJsYXlSZWdpb25zOjpXaGVl
bEV2ZW50SGFuZGxlclJlZ2lvbikKICAgICAgICAgc2hvd1JlZ2lvbk92ZXJsYXkocGFnZSwgUmVn
aW9uVHlwZTo6V2hlZWxFdmVudEhhbmRsZXJzKTsKICAgICBlbHNlCiAgICAgICAgIGhpZGVSZWdp
b25PdmVybGF5KHBhZ2UsIFJlZ2lvblR5cGU6OldoZWVsRXZlbnRIYW5kbGVycyk7CkBAIC00MTQs
NyArNDE0LDcgQEAgdm9pZCBEZWJ1Z1BhZ2VPdmVybGF5czo6dXBkYXRlT3ZlcmxheVJlZwogCiB2
b2lkIERlYnVnUGFnZU92ZXJsYXlzOjpzZXR0aW5nc0NoYW5nZWQoUGFnZSYgcGFnZSkKIHsKLSAg
ICBEZWJ1Z092ZXJsYXlSZWdpb25zIGFjdGl2ZU92ZXJsYXlSZWdpb25zID0gcGFnZS5zZXR0aW5n
cygpLnZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zKCk7CisgICAgYXV0byBhY3RpdmVPdmVybGF5
UmVnaW9ucyA9IE9wdGlvblNldDxEZWJ1Z092ZXJsYXlSZWdpb25zPjo6ZnJvbVJhdyhwYWdlLnNl
dHRpbmdzKCkudmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMoKSk7CiAgICAgaWYgKCFhY3RpdmVP
dmVybGF5UmVnaW9ucyAmJiAhaGFzT3ZlcmxheXMocGFnZSkpCiAgICAgICAgIHJldHVybjsKIApJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9EZWJ1Z1BhZ2VPdmVybGF5cy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuaAkocmV2aXNpb24gMjY5
ODMwKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9EZWJ1Z1BhZ2VPdmVybGF5cy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yNSw5ICsyNSwxMCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkRl
YnVnT3ZlcmxheVJlZ2lvbnMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIlNldHRp
bmdzLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0
Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00
Myw3ICs0NCw3IEBAIHB1YmxpYzoKICAgICAgICAgV2hlZWxFdmVudEhhbmRsZXJzLAogICAgICAg
ICBOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbiwKICAgICB9OwotICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBOdW1iZXJPZlJlZ2lvblR5cGVzID0gTm9uRmFzdFNjcm9sbGFibGVSZWdpb24gKyAxOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgTnVtYmVyT2ZSZWdpb25UeXBlcyA9IHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihSZWdpb25UeXBlOjpOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbikgKyAx
OwogCiAgICAgc3RhdGljIHZvaWQgZGlkTGF5b3V0KEZyYW1lJik7CiAgICAgc3RhdGljIHZvaWQg
ZGlkQ2hhbmdlRXZlbnRIYW5kbGVycyhGcmFtZSYpOwpAQCAtNjYsNyArNjcsNyBAQCBwcml2YXRl
OgogICAgICAgICByZXR1cm4gbV9wYWdlUmVnaW9uT3ZlcmxheXMuY29udGFpbnMoJnBhZ2UpOwog
ICAgIH0KICAgICAKLSAgICB2b2lkIHVwZGF0ZU92ZXJsYXlSZWdpb25WaXNpYmlsaXR5KFBhZ2Um
LCBEZWJ1Z092ZXJsYXlSZWdpb25zKTsKKyAgICB2b2lkIHVwZGF0ZU92ZXJsYXlSZWdpb25WaXNp
YmlsaXR5KFBhZ2UmLCBPcHRpb25TZXQ8RGVidWdPdmVybGF5UmVnaW9ucz4pOwogCiAgICAgUmVn
aW9uT3ZlcmxheSogcmVnaW9uT3ZlcmxheUZvclBhZ2UoUGFnZSYsIFJlZ2lvblR5cGUpIGNvbnN0
OwogICAgIFJlZ2lvbk92ZXJsYXkmIGVuc3VyZVJlZ2lvbk92ZXJsYXlGb3JQYWdlKFBhZ2UmLCBS
ZWdpb25UeXBlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAJKHJldmlz
aW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTM4MywyMSArMTM4MywyMCBAQCBib29sIEV2ZW50SGFuZGxlcjo6dXNl
SGFuZEN1cnNvcihOb2RlKiBuCiAgICAgLy8gSWYgdGhlIGxpbmsgaXMgZWRpdGFibGUsIHRoZW4g
d2UgbmVlZCB0byBjaGVjayB0aGUgc2V0dGluZ3MgdG8gc2VlIHdoZXRoZXIgb3Igbm90IHRoZSBs
aW5rIHNob3VsZCBiZSBmb2xsb3dlZAogICAgIGlmIChlZGl0YWJsZSkgewogICAgICAgICBzd2l0
Y2ggKG1fZnJhbWUuc2V0dGluZ3MoKS5lZGl0YWJsZUxpbmtCZWhhdmlvcigpKSB7Ci0gICAgICAg
IGRlZmF1bHQ6Ci0gICAgICAgIGNhc2UgRWRpdGFibGVMaW5rRGVmYXVsdEJlaGF2aW9yOgotICAg
ICAgICBjYXNlIEVkaXRhYmxlTGlua0Fsd2F5c0xpdmU6CisgICAgICAgIGNhc2UgRWRpdGFibGVM
aW5rQmVoYXZpb3I6OkRlZmF1bHQ6CisgICAgICAgIGNhc2UgRWRpdGFibGVMaW5rQmVoYXZpb3I6
OkFsd2F5c0xpdmU6CiAgICAgICAgICAgICBlZGl0YWJsZUxpbmtFbmFibGVkID0gdHJ1ZTsKICAg
ICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgIGNhc2UgRWRpdGFibGVMaW5rTmV2ZXJMaXZlOgor
ICAgICAgICBjYXNlIEVkaXRhYmxlTGlua0JlaGF2aW9yOjpOZXZlckxpdmU6CiAgICAgICAgICAg
ICBlZGl0YWJsZUxpbmtFbmFibGVkID0gZmFsc2U7CiAgICAgICAgICAgICBicmVhazsKIAotICAg
ICAgICBjYXNlIEVkaXRhYmxlTGlua0xpdmVXaGVuTm90Rm9jdXNlZDoKKyAgICAgICAgY2FzZSBF
ZGl0YWJsZUxpbmtCZWhhdmlvcjo6TGl2ZVdoZW5Ob3RGb2N1c2VkOgogICAgICAgICAgICAgZWRp
dGFibGVMaW5rRW5hYmxlZCA9IG5vZGVJc05vdEJlaW5nRWRpdGVkKCpub2RlLCBtX2ZyYW1lKSB8
fCBzaGlmdEtleTsKICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgIGNhc2UgRWRpdGFibGVM
aW5rT25seUxpdmVXaXRoU2hpZnRLZXk6CisgICAgICAgIGNhc2UgRWRpdGFibGVMaW5rQmVoYXZp
b3I6Ok9ubHlMaXZlV2l0aFNoaWZ0S2V5OgogICAgICAgICAgICAgZWRpdGFibGVMaW5rRW5hYmxl
ZCA9IHNoaWZ0S2V5OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVGbGF0dGVuaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZUZsYXR0ZW5pbmcuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lRmxhdHRlbmluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitl
bnVtIGNsYXNzIEZyYW1lRmxhdHRlbmluZyA6IHVpbnQ4X3QgeworICAgIERpc2FibGVkLAorICAg
IEVuYWJsZWRGb3JOb25GdWxsU2NyZWVuSUZyYW1lcywKKyAgICBGdWxseUVuYWJsZWQKK307CisK
K30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAkocmV2aXNpb24gMjY5ODMwKQorKysgU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcs
NyBAQAogI2luY2x1ZGUgIkFkanVzdFZpZXdTaXplT3JOb3QuaCIKICNpbmNsdWRlICJDb2xvci5o
IgogI2luY2x1ZGUgIkNvbnRhaW5lck5vZGUuaCIKKyNpbmNsdWRlICJGcmFtZUZsYXR0ZW5pbmcu
aCIKICNpbmNsdWRlICJGcmFtZVZpZXdMYXlvdXRDb250ZXh0LmgiCiAjaW5jbHVkZSAiR3JhcGhp
Y3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiTGF5b3V0TWlsZXN0b25lLmgiCkBAIC04MCw4ICs4MSw2
IEBAIGNsYXNzIFZpZXc7CiB9CiAjZW5kaWYKIAotZW51bSBjbGFzcyBGcmFtZUZsYXR0ZW5pbmc7
Ci0KIFBhZ2luYXRpb246Ok1vZGUgcGFnaW5hdGlvbk1vZGVGb3JSZW5kZXJTdHlsZShjb25zdCBS
ZW5kZXJTdHlsZSYpOwogCiBjbGFzcyBGcmFtZVZpZXcgZmluYWwgOiBwdWJsaWMgU2Nyb2xsVmll
dyB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BERkltYWdlQ2FjaGluZ1BvbGljeS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUERGSW1hZ2VDYWNoaW5nUG9saWN5LmgJ
KG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QREZJbWFnZUNhY2hpbmdQb2xp
Y3kuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBQREZJbWFnZUNhY2hp
bmdQb2xpY3kgOiB1aW50OF90IHsKKyAgICBFbmFibGVkLAorICAgIEJlbG93TWVtb3J5TGltaXQs
CisgICAgRGlzYWJsZWQsCisgICAgQ2xpcEJvdW5kc09ubHksCisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKKyAgICBEZWZhdWx0ID0gQmVsb3dNZW1vcnlMaW1pdAorI2Vsc2UKKyAgICBEZWZhdWx0
ID0gRW5hYmxlZAorI2VuZGlmCit9OworCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAJKHJldmlz
aW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJET01SZWN0LmgiCiAjaW5jbHVkZSAiRE9N
UmVjdExpc3QuaCIKICNpbmNsdWRlICJEYXRhYmFzZVByb3ZpZGVyLmgiCisjaW5jbHVkZSAiRGVi
dWdPdmVybGF5UmVnaW9ucy5oIgogI2luY2x1ZGUgIkRlYnVnUGFnZU92ZXJsYXlzLmgiCiAjaW5j
bHVkZSAiRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCIKICNpbmNsdWRlICJEaWFnbm9zdGljTG9n
Z2luZ0tleXMuaCIKQEAgLTk0NCw3ICs5NDUsNyBAQCB2b2lkIFBhZ2U6OnNldEVkaXRhYmxlUmVn
aW9uRW5hYmxlZChib29sCiAKIGJvb2wgUGFnZTo6c2hvdWxkQnVpbGRFZGl0YWJsZVJlZ2lvbigp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1faXNFZGl0YWJsZVJlZ2lvbkVuYWJsZWQgfHwgbV9zZXR0
aW5ncy0+dmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMoKSAmIEVkaXRhYmxlRWxlbWVudFJlZ2lv
bjsKKyAgICByZXR1cm4gbV9pc0VkaXRhYmxlUmVnaW9uRW5hYmxlZCB8fCBtX3NldHRpbmdzLT52
aXNpYmxlRGVidWdPdmVybGF5UmVnaW9ucygpICYgRGVidWdPdmVybGF5UmVnaW9uczo6RWRpdGFi
bGVFbGVtZW50UmVnaW9uOwogfQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2VjdXJpdHlPcmlnaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2Vj
dXJpdHlPcmlnaW4uY3BwCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdl
L1NlY3VyaXR5T3JpZ2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDA0LDE0ICs0MDQsMTQgQEAg
Ym9vbCBTZWN1cml0eU9yaWdpbjo6Y2FuQWNjZXNzU3RvcmFnZShjbwogICAgIGlmIChpc0xvY2Fs
KCkgJiYgIW5lZWRzU3RvcmFnZUFjY2Vzc0Zyb21GaWxlVVJMc1F1aXJrKCkgJiYgIW1fdW5pdmVy
c2FsQWNjZXNzICYmIHNob3VsZEFsbG93RnJvbVRoaXJkUGFydHkgIT0gQWx3YXlzQWxsb3dGcm9t
VGhpcmRQYXJ0eSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAotICAgIGlmIChtX3N0b3Jh
Z2VCbG9ja2luZ1BvbGljeSA9PSBCbG9ja0FsbFN0b3JhZ2UpCisgICAgaWYgKG1fc3RvcmFnZUJs
b2NraW5nUG9saWN5ID09IFN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QmxvY2tBbGwpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIC8vIEZJWE1FOiBUaGlzIGNoZWNrIHNob3VsZCBiZSByZXBs
YWNlZCB3aXRoIGFuIEFTU0VSVCBvbmNlIHdlIGNhbiBndWFyYW50ZWUgdGhhdCB0b3BPcmlnaW4g
aXMgbm90IG51bGwuCiAgICAgaWYgKCF0b3BPcmlnaW4pCiAgICAgICAgIHJldHVybiB0cnVlOwog
Ci0gICAgaWYgKHRvcE9yaWdpbi0+bV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgPT0gQmxvY2tBbGxT
dG9yYWdlKQorICAgIGlmICh0b3BPcmlnaW4tPm1fc3RvcmFnZUJsb2NraW5nUG9saWN5ID09IFN0
b3JhZ2VCbG9ja2luZ1BvbGljeTo6QmxvY2tBbGwpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIGlmIChzaG91bGRBbGxvd0Zyb21UaGlyZFBhcnR5ID09IEFsd2F5c0FsbG93RnJvbVRoaXJk
UGFydHkpCkBAIC00MjAsNyArNDIwLDcgQEAgYm9vbCBTZWN1cml0eU9yaWdpbjo6Y2FuQWNjZXNz
U3RvcmFnZShjbwogICAgIGlmIChtX3VuaXZlcnNhbEFjY2VzcykKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAKLSAgICBpZiAoKG1fc3RvcmFnZUJsb2NraW5nUG9saWN5ID09IEJsb2NrVGhpcmRQYXJ0
eVN0b3JhZ2UgfHwgdG9wT3JpZ2luLT5tX3N0b3JhZ2VCbG9ja2luZ1BvbGljeSA9PSBCbG9ja1Ro
aXJkUGFydHlTdG9yYWdlKSAmJiAhdG9wT3JpZ2luLT5pc1NhbWVPcmlnaW5BcygqdGhpcykpCisg
ICAgaWYgKChtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeSA9PSBTdG9yYWdlQmxvY2tpbmdQb2xpY3k6
OkJsb2NrVGhpcmRQYXJ0eSB8fCB0b3BPcmlnaW4tPm1fc3RvcmFnZUJsb2NraW5nUG9saWN5ID09
IFN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QmxvY2tUaGlyZFBhcnR5KSAmJiAhdG9wT3JpZ2luLT5p
c1NhbWVPcmlnaW5BcygqdGhpcykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVy
biB0cnVlOwpAQCAtNDg4LDcgKzQ4OCw3IEBAIHZvaWQgU2VjdXJpdHlPcmlnaW46OmdyYW50U3Rv
cmFnZUFjY2Vzc0YKIAogU3RyaW5nIFNlY3VyaXR5T3JpZ2luOjpkb21haW5Gb3JDYWNoZVBhcnRp
dGlvbigpIGNvbnN0CiB7Ci0gICAgaWYgKG1fc3RvcmFnZUJsb2NraW5nUG9saWN5ICE9IEJsb2Nr
VGhpcmRQYXJ0eVN0b3JhZ2UpCisgICAgaWYgKG1fc3RvcmFnZUJsb2NraW5nUG9saWN5ICE9IFN0
b3JhZ2VCbG9ja2luZ1BvbGljeTo6QmxvY2tUaGlyZFBhcnR5KQogICAgICAgICByZXR1cm4gZW1w
dHlTdHJpbmcoKTsKIAogICAgIGlmIChpc0hUVFBGYW1pbHkoKSkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL1NlY3VyaXR5T3JpZ2luLmgJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2VjdXJpdHlPcmlnaW4uaAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAog
I3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKKyNpbmNsdWRl
ICJTdG9yYWdlQmxvY2tpbmdQb2xpY3kuaCIKICNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgog
I2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgpAQCAtNDMsMTIgKzQ0LDYgQEAgcHVibGljOgogICAgICAgICBBc2sKICAg
ICB9OwogCi0gICAgZW51bSBTdG9yYWdlQmxvY2tpbmdQb2xpY3kgewotICAgICAgICBBbGxvd0Fs
bFN0b3JhZ2UgPSAwLAotICAgICAgICBCbG9ja1RoaXJkUGFydHlTdG9yYWdlLAotICAgICAgICBC
bG9ja0FsbFN0b3JhZ2UKLSAgICB9OwotCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxT
ZWN1cml0eU9yaWdpbj4gY3JlYXRlKGNvbnN0IFVSTCYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBSZWY8U2VjdXJpdHlPcmlnaW4+IGNyZWF0ZVVuaXF1ZSgpOwogCkBAIC0yNDMsNyArMjM4
LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fdW5pdmVyc2FsQWNjZXNzIHsgZmFsc2UgfTsKICAg
ICBib29sIG1fZG9tYWluV2FzU2V0SW5ET00geyBmYWxzZSB9OwogICAgIGJvb2wgbV9jYW5Mb2Fk
TG9jYWxSZXNvdXJjZXMgeyBmYWxzZSB9OwotICAgIFN0b3JhZ2VCbG9ja2luZ1BvbGljeSBtX3N0
b3JhZ2VCbG9ja2luZ1BvbGljeSB7IEFsbG93QWxsU3RvcmFnZSB9OworICAgIFN0b3JhZ2VCbG9j
a2luZ1BvbGljeSBtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeSB7IFN0b3JhZ2VCbG9ja2luZ1BvbGlj
eTo6QWxsb3dBbGwgfTsKICAgICBib29sIG1fZW5mb3JjZXNGaWxlUGF0aFNlcGFyYXRpb24geyBm
YWxzZSB9OwogICAgIGJvb2wgbV9uZWVkc1N0b3JhZ2VBY2Nlc3NGcm9tRmlsZVVSTHNRdWlyayB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzUG90ZW50aWFsbHlUcnVzdHdvcnRoeSB7IGZhbHNlIH07
CkBAIC0zMDgsMTcgKzMwMywzIEBAIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IGlubGluZSBSZWZQ
dHI8U2UKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi1uYW1lc3BhY2UgV1RGIHsKLQot
dGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6U3Rv
cmFnZUJsb2NraW5nUG9saWN5PiB7Ci0gICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKLSAg
ICAgICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSwKLSAg
ICAgICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QWxs
b3dBbGxTdG9yYWdlLAotICAgICAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJs
b2NraW5nUG9saWN5OjpCbG9ja1RoaXJkUGFydHlTdG9yYWdlLAotICAgICAgICBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5OjpCbG9ja0FsbFN0b3JhZ2UKLSAg
ICA+OwotfTsKLQotCi19IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MueWFtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLnlhbWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MueWFtbAkod29ya2luZyBjb3B5KQpAQCAtOTQsNyArOTQsNyBAQCBEYXRhRGV0ZWN0b3JUeXBl
czoKICAgY29uZGl0aW9uOiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCiAgIGRlZmF1bHRWYWx1ZToK
ICAgICBXZWJDb3JlOgotICAgICAgZGVmYXVsdDoKKyAgICAgIGRlZmF1bHQ6IERhdGFEZXRlY3Rv
clR5cGVzOjpOb25lCiAKIERlZmF1bHRWaWRlb1Bvc3RlclVSTDoKICAgY29tbWVudDogPi0KQEAg
LTEyNSwxOCArMTI1LDE4IEBAIEVkaXRhYmxlTGlua0JlaGF2aW9yOgogICByZWZpbmVkVHlwZTog
RWRpdGFibGVMaW5rQmVoYXZpb3IKICAgZGVmYXVsdFZhbHVlOgogICAgIFdlYkNvcmU6Ci0gICAg
ICBkZWZhdWx0OiBFZGl0YWJsZUxpbmtEZWZhdWx0QmVoYXZpb3IKKyAgICAgIGRlZmF1bHQ6IEVk
aXRhYmxlTGlua0JlaGF2aW9yOjpEZWZhdWx0CiAKIEVkaXRpbmdCZWhhdmlvclR5cGU6CiAgIHR5
cGU6IHVpbnQzMl90CiAgIHJlZmluZWRUeXBlOiBFZGl0aW5nQmVoYXZpb3JUeXBlCiAgIGRlZmF1
bHRWYWx1ZToKICAgICBXZWJDb3JlOgotICAgICAgUExBVEZPUk0oSU9TX0ZBTUlMWSk6IEVkaXRp
bmdJT1NCZWhhdmlvcgotICAgICAgT1MoREFSV0lOKTogRWRpdGluZ01hY0JlaGF2aW9yCi0gICAg
ICBPUyhXSU5ET1dTKTogRWRpdGluZ1dpbmRvd3NCZWhhdmlvcgotICAgICAgT1MoVU5JWCk6IEVk
aXRpbmdVbml4QmVoYXZpb3IKLSAgICAgIGRlZmF1bHQ6IEVkaXRpbmdNYWNCZWhhdmlvcgorICAg
ICAgUExBVEZPUk0oSU9TX0ZBTUlMWSk6IEVkaXRpbmdCZWhhdmlvclR5cGU6OklvcworICAgICAg
T1MoREFSV0lOKTogRWRpdGluZ0JlaGF2aW9yVHlwZTo6TWFjCisgICAgICBPUyhXSU5ET1dTKTog
RWRpdGluZ0JlaGF2aW9yVHlwZTo6V2luZG93cworICAgICAgT1MoVU5JWCk6IEVkaXRpbmdCZWhh
dmlvclR5cGU6OlVuaXgKKyAgICAgIGRlZmF1bHQ6IEVkaXRpbmdCZWhhdmlvclR5cGU6Ok1hYwog
CiBGaXhlZEJhY2tncm91bmRzUGFpbnRSZWxhdGl2ZVRvRG9jdW1lbnQ6CiAgIHR5cGU6IGJvb2wK
QEAgLTIyOCw2ICsyMjgsMTMgQEAgR2VvbG9jYXRpb25GbG9vckxldmVsRW5hYmxlZDoKICAgICBX
ZWJDb3JlOgogICAgICAgZGVmYXVsdDogdHJ1ZQogCitIVE1MUGFyc2VyU2NyaXB0aW5nRmxhZ1Bv
bGljeToKKyAgdHlwZTogdWludDMyX3QKKyAgcmVmaW5lZFR5cGU6IEhUTUxQYXJzZXJTY3JpcHRp
bmdGbGFnUG9saWN5CisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJDb3JlOgorICAgICAgZGVmYXVs
dDogSFRNTFBhcnNlclNjcmlwdGluZ0ZsYWdQb2xpY3k6Ok9ubHlJZlNjcmlwdElzRW5hYmxlZAor
CiBJZGVtcG90ZW50TW9kZUF1dG9zaXppbmdPbmx5SG9ub3JzUGVyY2VudGFnZXM6CiAgIHR5cGU6
IGJvb2wKICAgY29uZGl0aW9uOiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQpAQCAtMzg5LDEzICsz
OTYsNiBAQCBOZWVkc0RlZmVyS2V5RG93bkFuZEtleVByZXNzVGltZXJzVW50aWxOCiAgICAgV2Vi
Q29yZToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKLVBhcnNlclNjcmlwdGluZ0ZsYWdQb2xpY3k6
Ci0gIHR5cGU6IHVpbnQzMl90Ci0gIHJlZmluZWRUeXBlOiBQYXJzZXJTY3JpcHRpbmdGbGFnUG9s
aWN5Ci0gIGRlZmF1bHRWYWx1ZToKLSAgICBXZWJDb3JlOgotICAgICAgZGVmYXVsdDogUGFyc2Vy
U2NyaXB0aW5nRmxhZ1BvbGljeTo6T25seUlmU2NyaXB0SXNFbmFibGVkCi0KIFBheW1lbnRSZXF1
ZXN0RW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBjb25kaXRpb246IEVOQUJMRShQQVlNRU5UX1JF
UVVFU1QpCkBAIC00MDgsNyArNDA4LDggQEAgUERGSW1hZ2VDYWNoaW5nUG9saWN5OgogICByZWZp
bmVkVHlwZTogUERGSW1hZ2VDYWNoaW5nUG9saWN5CiAgIGRlZmF1bHRWYWx1ZToKICAgICBXZWJD
b3JlOgotICAgICAgZGVmYXVsdDogUERGSW1hZ2VDYWNoaW5nRGVmYXVsdAorICAgICAgUExBVEZP
Uk0oSU9TX0ZBTUlMWSk6IFBERkltYWdlQ2FjaGluZ1BvbGljeTo6QmVsb3dNZW1vcnlMaW1pdAor
ICAgICAgZGVmYXVsdDogUERGSW1hZ2VDYWNoaW5nUG9saWN5OjpFbmFibGVkCiAKIFByZWZlck1J
TUVUeXBlRm9ySW1hZ2VzOgogICB0eXBlOiBib29sCkBAIC00ODksMTEgKzQ5MCwxMSBAQCBTdG9y
YWdlQWNjZXNzQVBJUGVyUGFnZVNjb3BlRW5hYmxlZDoKIAogU3RvcmFnZUJsb2NraW5nUG9saWN5
OgogICB0eXBlOiB1aW50MzJfdAotICByZWZpbmVkVHlwZTogU2VjdXJpdHlPcmlnaW46OlN0b3Jh
Z2VCbG9ja2luZ1BvbGljeQorICByZWZpbmVkVHlwZTogU3RvcmFnZUJsb2NraW5nUG9saWN5CiAg
IHdlYmNvcmVPbkNoYW5nZTogc3RvcmFnZUJsb2NraW5nUG9saWN5Q2hhbmdlZAogICBkZWZhdWx0
VmFsdWU6CiAgICAgV2ViQ29yZToKLSAgICAgIGRlZmF1bHQ6IFNlY3VyaXR5T3JpZ2luOjpBbGxv
d0FsbFN0b3JhZ2UKKyAgICAgIGRlZmF1bHQ6IFN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QWxsb3dB
bGwKIAogU3lzdGVtTGF5b3V0RGlyZWN0aW9uOgogICB0eXBlOiB1aW50MzJfdApAQCAtNTIzLDcg
KzUyNCw3IEBAIFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3I6CiAgIHJlZmlu
ZWRUeXBlOiBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yCiAgIGRlZmF1bHRW
YWx1ZToKICAgICBXZWJDb3JlOgotICAgICAgZGVmYXVsdDogVGV4dERpcmVjdGlvblN1Ym1lbnVB
dXRvbWF0aWNhbGx5SW5jbHVkZWQKKyAgICAgIGRlZmF1bHQ6IFRleHREaXJlY3Rpb25TdWJtZW51
SW5jbHVzaW9uQmVoYXZpb3I6OkF1dG9tYXRpY2FsbHlJbmNsdWRlZAogCiBUaW1lV2l0aG91dE1v
dXNlTW92ZW1lbnRCZWZvcmVIaWRpbmdDb250cm9sczoKICAgdHlwZTogZG91YmxlCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3NCYXNlLmgJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3NCYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDc0ICsyOCwz
NyBAQAogCiAjaW5jbHVkZSAiQ2xpcGJvYXJkQWNjZXNzUG9saWN5LmgiCiAjaW5jbHVkZSAiQ29u
dGVudFR5cGUuaCIKLSNpbmNsdWRlICJFZGl0aW5nQmVoYXZpb3JUeXBlcy5oIgotI2luY2x1ZGUg
IkludFNpemUuaCIKLSNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIkVkaXRh
YmxlTGlua0JlaGF2aW9yLmgiCisjaW5jbHVkZSAiRWRpdGluZ0JlaGF2aW9yVHlwZS5oIgorI2lu
Y2x1ZGUgIkZvbnRMb2FkVGltaW5nT3ZlcnJpZGUuaCIKKyNpbmNsdWRlICJGb250UmVuZGVyaW5n
TW9kZS5oIgorI2luY2x1ZGUgIkZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZS5oIgorI2luY2x1ZGUg
IkZyYW1lRmxhdHRlbmluZy5oIgorI2luY2x1ZGUgIkhUTUxQYXJzZXJTY3JpcHRpbmdGbGFnUG9s
aWN5LmgiCisjaW5jbHVkZSAiUERGSW1hZ2VDYWNoaW5nUG9saWN5LmgiCisjaW5jbHVkZSAiU3Rv
cmFnZUJsb2NraW5nUG9saWN5LmgiCiAjaW5jbHVkZSAiU3RvcmFnZU1hcC5oIgotI2luY2x1ZGUg
IlRleHRGbGFncy5oIgorI2luY2x1ZGUgIlRleHREaXJlY3Rpb24uaCIKKyNpbmNsdWRlICJUZXh0
RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIK
LSNpbmNsdWRlICJXcml0aW5nTW9kZS5oIgorI2luY2x1ZGUgIlVzZXJJbnRlcmZhY2VEaXJlY3Rp
b25Qb2xpY3kuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9SdW50aW1lRmxhZ3MuaD4KICNp
bmNsdWRlIDx1bmljb2RlL3VzY3JpcHQuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KICNpbmNs
dWRlIDx3dGYvVVJMLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L0F0b21TdHJpbmcuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nSGFzaC5oPgor
CisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorI2luY2x1ZGUgIkRhdGFEZXRlY3RvclR5cGVz
LmgiCisjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGb250R2VuZXJpY0Zh
bWlsaWVzOwogY2xhc3MgUGFnZTsKIAotZW51bSBjbGFzcyBEYXRhRGV0ZWN0b3JUeXBlcyA6IHVp
bnQzMl90OwotCi1lbnVtIEVkaXRhYmxlTGlua0JlaGF2aW9yIHsKLSAgICBFZGl0YWJsZUxpbmtE
ZWZhdWx0QmVoYXZpb3IsCi0gICAgRWRpdGFibGVMaW5rQWx3YXlzTGl2ZSwKLSAgICBFZGl0YWJs
ZUxpbmtPbmx5TGl2ZVdpdGhTaGlmdEtleSwKLSAgICBFZGl0YWJsZUxpbmtMaXZlV2hlbk5vdEZv
Y3VzZWQsCi0gICAgRWRpdGFibGVMaW5rTmV2ZXJMaXZlCi19OwotCi1lbnVtIFRleHREaXJlY3Rp
b25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IgewotICAgIFRleHREaXJlY3Rpb25TdWJtZW51TmV2
ZXJJbmNsdWRlZCwKLSAgICBUZXh0RGlyZWN0aW9uU3VibWVudUF1dG9tYXRpY2FsbHlJbmNsdWRl
ZCwKLSAgICBUZXh0RGlyZWN0aW9uU3VibWVudUFsd2F5c0luY2x1ZGVkCi19OwotCi1lbnVtIERl
YnVnT3ZlcmxheVJlZ2lvbkZsYWdzIHsKLSAgICBOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbiA9IDEg
PDwgMCwKLSAgICBXaGVlbEV2ZW50SGFuZGxlclJlZ2lvbiA9IDEgPDwgMSwKLSAgICBUb3VjaEFj
dGlvblJlZ2lvbiA9IDEgPDwgMiwKLSAgICBFZGl0YWJsZUVsZW1lbnRSZWdpb24gPSAxIDw8IDMs
Ci19OwotCi1lbnVtIGNsYXNzIFVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3kgewotICAgIENv
bnRlbnQsCi0gICAgU3lzdGVtCi19OwotCi1lbnVtIFBERkltYWdlQ2FjaGluZ1BvbGljeSB7Ci0g
ICAgUERGSW1hZ2VDYWNoaW5nRW5hYmxlZCwKLSAgICBQREZJbWFnZUNhY2hpbmdCZWxvd01lbW9y
eUxpbWl0LAotICAgIFBERkltYWdlQ2FjaGluZ0Rpc2FibGVkLAotICAgIFBERkltYWdlQ2FjaGlu
Z0NsaXBCb3VuZHNPbmx5LAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgUERGSW1hZ2VD
YWNoaW5nRGVmYXVsdCA9IFBERkltYWdlQ2FjaGluZ0JlbG93TWVtb3J5TGltaXQKLSNlbHNlCi0g
ICAgUERGSW1hZ2VDYWNoaW5nRGVmYXVsdCA9IFBERkltYWdlQ2FjaGluZ0VuYWJsZWQKLSNlbmRp
ZgotfTsKLQotZW51bSBjbGFzcyBGcmFtZUZsYXR0ZW5pbmcgewotICAgIERpc2FibGVkLAotICAg
IEVuYWJsZWRGb3JOb25GdWxsU2NyZWVuSUZyYW1lcywKLSAgICBGdWxseUVuYWJsZWQKLX07Ci0K
LXR5cGVkZWYgdW5zaWduZWQgRGVidWdPdmVybGF5UmVnaW9uczsKLQogY2xhc3MgU2V0dGluZ3NC
YXNlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTZXR0aW5nc0Jhc2UpOyBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKQEAgLTEwMywxMCArNjYsNiBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIHBhZ2VEZXN0cm95ZWQoKSB7IG1fcGFnZSA9IG51bGxwdHI7IH0KIAotICAgIGVudW0g
Y2xhc3MgRm9udExvYWRUaW1pbmdPdmVycmlkZSA6IHVpbnQ4X3QgeyBOb25lLCBCbG9jaywgU3dh
cCwgRmFpbHVyZSB9OwotICAgIGVudW0gY2xhc3MgUGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeSA6
IHVpbnQ4X3QgeyBPbmx5SWZTY3JpcHRJc0VuYWJsZWQsIEVuYWJsZWQgfTsKLSAgICBlbnVtIGNs
YXNzIEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZSA6IHVpbnQ4X3QgeyBTeXN0ZW0sIE9uLCBPZmYg
fTsKLQogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IGJvb2wgcGxhdGZvcm1EZWZhdWx0TWVkaWFTb3VyY2VFbmFibGVkKCk7CiAjZW5kaWYKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU3RvcmFnZUJsb2NraW5nUG9saWN5LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGFnZS9TdG9yYWdlQmxvY2tpbmdQb2xpY3kuaAkobm9uZXhpc3Rl
bnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1N0b3JhZ2VCbG9ja2luZ1BvbGljeS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51
bSBjbGFzcyBTdG9yYWdlQmxvY2tpbmdQb2xpY3kgOiB1aW50OF90IHsKKyAgICBBbGxvd0FsbCA9
IDAsCisgICAgQmxvY2tUaGlyZFBhcnR5LAorICAgIEJsb2NrQWxsCit9OworCit9CisKK25hbWVz
cGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlN0b3Jh
Z2VCbG9ja2luZ1BvbGljeT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAg
ICAgIFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSwKKyAgICAgICAgV2ViQ29yZTo6U3Rv
cmFnZUJsb2NraW5nUG9saWN5OjpBbGxvd0FsbCwKKyAgICAgICAgV2ViQ29yZTo6U3RvcmFnZUJs
b2NraW5nUG9saWN5OjpCbG9ja1RoaXJkUGFydHksCisgICAgICAgIFdlYkNvcmU6OlN0b3JhZ2VC
bG9ja2luZ1BvbGljeTo6QmxvY2tBbGwKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RG
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1RleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9u
QmVoYXZpb3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1RleHREaXJlY3Rp
b25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wYWdlL1RleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1
c2lvbkJlaGF2aW9yIDogdWludDhfdCB7CisgICAgTmV2ZXJJbmNsdWRlZCwKKyAgICBBdXRvbWF0
aWNhbGx5SW5jbHVkZWQsCisgICAgQWx3YXlzSW5jbHVkZWQKK307CisKK30KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvVXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvVXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeS5oCShu
b25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvVXNlckludGVyZmFjZURpcmVjdGlv
blBvbGljeS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFVzZXJJbnRl
cmZhY2VEaXJlY3Rpb25Qb2xpY3kgOiBib29sIHsKKyAgICBDb250ZW50LAorICAgIFN5c3RlbQor
fTsKKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmgJKHJldmlzaW9uIDI2
OTgzMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkZsb2F0U2l6
ZS5oIgorI2luY2x1ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgiCiAjaW5jbHVkZSAiSW1hZ2VPcmll
bnRhdGlvbi5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJQYXRoLmgiCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRp
b24uaAkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udERlc2NyaXB0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI0LDYgKzI0LDcgQEAKIAog
I3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJGb250UmVuZGVyaW5nTW9kZS5oIgogI2luY2x1ZGUg
IkZvbnRTZWxlY3Rpb25BbGdvcml0aG0uaCIKICNpbmNsdWRlICJGb250VGFnZ2VkU2V0dGluZ3Mu
aCIKICNpbmNsdWRlICJUZXh0RmxhZ3MuaCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuY3BwCShyZXZpc2lv
biAyNjk4MzApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1
bWVudEltYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAxLDcgKzIwMSw3IEBAIHZvaWQgUERG
RG9jdW1lbnRJbWFnZTo6ZGVjb2RlZFNpemVDaGFuZ2UKIHZvaWQgUERGRG9jdW1lbnRJbWFnZTo6
dXBkYXRlQ2FjaGVkSW1hZ2VJZk5lZWRlZChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0KQogewogICAgIC8v
IENsaXBwZWQgb3B0aW9uIGlzIGZvciB0ZXN0aW5nIG9ubHkuIEZvcmNlIHJlLWNhY2hpbmcgdGhl
IFBERiB3aXRoIGVhY2ggZHJhdy4KLSAgICBib29sIGZvcmNlVXBkYXRlQ2FjaGVkSW1hZ2UgPSBt
X3BkZkltYWdlQ2FjaGluZ1BvbGljeSA9PSBQREZJbWFnZUNhY2hpbmdDbGlwQm91bmRzT25seSB8
fCAhbV9jYWNoZWRJbWFnZUJ1ZmZlcjsKKyAgICBib29sIGZvcmNlVXBkYXRlQ2FjaGVkSW1hZ2Ug
PSBtX3BkZkltYWdlQ2FjaGluZ1BvbGljeSA9PSBQREZJbWFnZUNhY2hpbmdQb2xpY3k6OkNsaXBC
b3VuZHNPbmx5IHx8ICFtX2NhY2hlZEltYWdlQnVmZmVyOwogICAgIGlmICghZm9yY2VVcGRhdGVD
YWNoZWRJbWFnZSAmJiBjYWNoZVBhcmFtZXRlcnNNYXRjaChjb250ZXh0LCBkc3RSZWN0LCBzcmNS
ZWN0KSkgewogICAgICAgICAvLyBBZGp1c3QgdGhlIHZpZXctcG9ydCByZWN0YW5nbGVzIGlmIG5v
IHJlLWNhY2hpbmcgd2lsbCBoYXBwZW4uCiAgICAgICAgIG1fY2FjaGVkSW1hZ2VSZWN0Lm1vdmUo
RmxvYXRTaXplKGRzdFJlY3QubG9jYXRpb24oKSAtIG1fY2FjaGVkRGVzdGluYXRpb25SZWN0Lmxv
Y2F0aW9uKCkpKTsKQEAgLTIxMCwxNyArMjEwLDE3IEBAIHZvaWQgUERGRG9jdW1lbnRJbWFnZTo6
dXBkYXRlQ2FjaGVkSW1hZ2UKICAgICB9CiAKICAgICBzd2l0Y2ggKG1fcGRmSW1hZ2VDYWNoaW5n
UG9saWN5KSB7Ci0gICAgY2FzZSBQREZJbWFnZUNhY2hpbmdEaXNhYmxlZDoKKyAgICBjYXNlIFBE
RkltYWdlQ2FjaGluZ1BvbGljeTo6RGlzYWJsZWQ6CiAgICAgICAgIHJldHVybjsKLSAgICBjYXNl
IFBERkltYWdlQ2FjaGluZ0JlbG93TWVtb3J5TGltaXQ6CisgICAgY2FzZSBQREZJbWFnZUNhY2hp
bmdQb2xpY3k6OkJlbG93TWVtb3J5TGltaXQ6CiAgICAgICAgIC8vIEtlZXAgdGhlIG1lbW9yeSB1
c2VkIGJ5IHRoZSBjYWNoZWQgaW1hZ2UgYmVsb3cgc29tZSB0aHJlc2hvbGQsIG90aGVyd2lzZSBX
ZWJLaXQgcHJvY2VzcwogICAgICAgICAvLyB3aWxsIGpldHNhbSBpZiBpdCBleGNlZWRzIGl0cyBt
ZW1vcnkgbGltaXQuIE9ubHkgYSByZWN0YW5nbGUgZnJvbSB0aGUgUERGIG1heSBiZSBjYWNoZWQu
CiAgICAgICAgIG1fY2FjaGVkSW1hZ2VSZWN0ID0gY2FjaGVkSW1hZ2VSZWN0KGNvbnRleHQsIGRz
dFJlY3QpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFBERkltYWdlQ2FjaGluZ0NsaXBCb3Vu
ZHNPbmx5OgorICAgIGNhc2UgUERGSW1hZ2VDYWNoaW5nUG9saWN5OjpDbGlwQm91bmRzT25seToK
ICAgICAgICAgbV9jYWNoZWRJbWFnZVJlY3QgPSBpbnRlcnNlY3Rpb24oY29udGV4dC5jbGlwQm91
bmRzKCksIGRzdFJlY3QpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFBERkltYWdlQ2FjaGlu
Z0VuYWJsZWQ6CisgICAgY2FzZSBQREZJbWFnZUNhY2hpbmdQb2xpY3k6OkVuYWJsZWQ6CiAgICAg
ICAgIG1fY2FjaGVkSW1hZ2VSZWN0ID0gZHN0UmVjdDsKICAgICAgICAgYnJlYWs7CiAgICAgfQpA
QCAtMjI4LDcgKzIyOCw3IEBAIHZvaWQgUERGRG9jdW1lbnRJbWFnZTo6dXBkYXRlQ2FjaGVkSW1h
Z2UKICAgICBGbG9hdFNpemUgY2FjaGVkSW1hZ2VTaXplID0gRmxvYXRSZWN0KGVuY2xvc2luZ0lu
dFJlY3QobV9jYWNoZWRJbWFnZVJlY3QpKS5zaXplKCk7CiAKICAgICAvLyBDYWNoZSB0aGUgUERG
IGltYWdlIG9ubHkgaWYgdGhlIHNpemUgb2YgdGhlIG5ldyBpbWFnZSB3b24ndCBleGNlZWQgdGhl
IGNhY2hlIHRocmVzaG9sZC4KLSAgICBpZiAobV9wZGZJbWFnZUNhY2hpbmdQb2xpY3kgPT0gUERG
SW1hZ2VDYWNoaW5nQmVsb3dNZW1vcnlMaW1pdCkgeworICAgIGlmIChtX3BkZkltYWdlQ2FjaGlu
Z1BvbGljeSA9PSBQREZJbWFnZUNhY2hpbmdQb2xpY3k6OkJlbG93TWVtb3J5TGltaXQpIHsKICAg
ICAgICAgSW50U2l6ZSBzY2FsZWRTaXplID0gSW1hZ2VCdWZmZXI6OmNvbXBhdGlibGVCdWZmZXJT
aXplKGNhY2hlZEltYWdlU2l6ZSwgY29udGV4dCk7CiAgICAgICAgIGlmIChzX2FsbERlY29kZWRE
YXRhU2l6ZSArIHNjYWxlZFNpemUudW5jbGFtcGVkQXJlYSgpICogNCAtIG1fY2FjaGVkQnl0ZXMg
PiBzX21heERlY29kZWREYXRhU2l6ZSkgewogICAgICAgICAgICAgZGVzdHJveURlY29kZWREYXRh
KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1bWVu
dEltYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvUERGRG9jdW1lbnRJbWFnZS5oCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1bWVudEltYWdlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTk0LDcgKzk0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUNhY2hlZEltYWdlSWZO
ZWVkZWQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHNyY1JlY3QpOwogICAgIGJvb2wgY2FjaGVQYXJhbWV0ZXJzTWF0Y2goR3JhcGhp
Y3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QpIGNvbnN0OwogCi0gICAgUERGSW1hZ2VDYWNoaW5nUG9saWN5IG1fcGRmSW1hZ2VDYWNo
aW5nUG9saWN5IHsgUERGSW1hZ2VDYWNoaW5nRGVmYXVsdCB9OworICAgIFBERkltYWdlQ2FjaGlu
Z1BvbGljeSBtX3BkZkltYWdlQ2FjaGluZ1BvbGljeSB7IFBERkltYWdlQ2FjaGluZ1BvbGljeTo6
RGVmYXVsdCB9OwogCiAjaWYgVVNFKFBERktJVF9GT1JfUERGRE9DVU1FTlRJTUFHRSkKICAgICBS
ZXRhaW5QdHI8UERGRG9jdW1lbnQ+IG1fZG9jdW1lbnQ7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L0ZvbnRSZW5kZXJpbmdNb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9Gb250UmVuZGVyaW5nTW9kZS5oCShub25leGlzdGVudCkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvRm9udFJlbmRlcmluZ01vZGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIFRo
aXMgc2V0dGluZyBpcyB1c2VkIHRvIHByb3ZpZGUgd2F5cyBvZiBzd2l0Y2hpbmcgYmV0d2VlbiBt
dWx0aXBsZSByZW5kZXJpbmcgbW9kZXMgdGhhdCBtYXkgaGF2ZSBkaWZmZXJlbnQKKy8vIG1ldHJp
Y3MuIEl0IGlzIHVzZWQgdG8gc3dpdGNoIGJldHdlZW4gQ0cgYW5kIEdESSB0ZXh0IG9uIFdpbmRv
d3MuCitlbnVtIGNsYXNzIEZvbnRSZW5kZXJpbmdNb2RlIDogdWludDhfdCB7CisgICAgTm9ybWFs
LAorICAgIEFsdGVybmF0ZQorfTsKKworfQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8
PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpGb250UmVuZGVyaW5nTW9kZT4geworICAgIHVz
aW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OkZvbnRSZW5kZXJpbmdN
b2RlLAorICAgICAgICBXZWJDb3JlOjpGb250UmVuZGVyaW5nTW9kZTo6Tm9ybWFsLAorICAgICAg
ICBXZWJDb3JlOjpGb250UmVuZGVyaW5nTW9kZTo6QWx0ZXJuYXRlCisgICAgPjsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdURgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0
RGlyZWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9U
ZXh0RGlyZWN0aW9uLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9UZXh0RGlyZWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xh
c3MgVGV4dERpcmVjdGlvbiA6IGJvb2wgeyBMVFIsIFJUTCB9OworCitpbmxpbmUgYm9vbCBpc0xl
ZnRUb1JpZ2h0RGlyZWN0aW9uKFRleHREaXJlY3Rpb24gZGlyZWN0aW9uKQoreworICAgIHJldHVy
biBkaXJlY3Rpb24gPT0gVGV4dERpcmVjdGlvbjo6TFRSOworfQorCit9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRGbGFncy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEZsYWdzLmgJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEZsYWdzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTQ0LDEzICs0NCw2IEBAIGVudW0gY2xhc3MgRm9udFNtb290aGluZ01vZGUgOiB1aW50OF90IHsK
ICAgICBTdWJwaXhlbEFudGlhbGlhc2VkCiB9OwogCi0vLyBUaGlzIHNldHRpbmcgaXMgdXNlZCB0
byBwcm92aWRlIHdheXMgb2Ygc3dpdGNoaW5nIGJldHdlZW4gbXVsdGlwbGUgcmVuZGVyaW5nIG1v
ZGVzIHRoYXQgbWF5IGhhdmUgZGlmZmVyZW50Ci0vLyBtZXRyaWNzLiBJdCBpcyB1c2VkIHRvIHN3
aXRjaCBiZXR3ZWVuIENHIGFuZCBHREkgdGV4dCBvbiBXaW5kb3dzLgotZW51bSBjbGFzcyBGb250
UmVuZGVyaW5nTW9kZSA6IHVpbnQ4X3QgewotICAgIE5vcm1hbCwKLSAgICBBbHRlcm5hdGUKLX07
Ci0KIGVudW0gY2xhc3MgRm9udE9yaWVudGF0aW9uIDogdWludDhfdCB7CiAgICAgSG9yaXpvbnRh
bCwKICAgICBWZXJ0aWNhbApAQCAtNjQ3LDE0ICs2NDAsNiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBF
bnVtVHJhaXRzPFdlYkNvcmU6OkZvCiAgICAgPjsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IEVu
dW1UcmFpdHM8V2ViQ29yZTo6Rm9udFJlbmRlcmluZ01vZGU+IHsKLSAgICB1c2luZyB2YWx1ZXMg
PSBFbnVtVmFsdWVzPAotICAgIFdlYkNvcmU6OkZvbnRSZW5kZXJpbmdNb2RlLAotICAgIFdlYkNv
cmU6OkZvbnRSZW5kZXJpbmdNb2RlOjpOb3JtYWwsCi0gICAgV2ViQ29yZTo6Rm9udFJlbmRlcmlu
Z01vZGU6OkFsdGVybmF0ZQotICAgID47Ci19OwotCiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJh
aXRzPFdlYkNvcmU6OkZvbnRPcmllbnRhdGlvbj4gewogICAgIHVzaW5nIHZhbHVlcyA9IEVudW1W
YWx1ZXM8CiAgICAgV2ViQ29yZTo6Rm9udE9yaWVudGF0aW9uLApJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9Xcml0aW5nTW9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvV3JpdGluZ01vZGUuaAkocmV2aXNpb24gMjY5ODMwKQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Xcml0aW5nTW9kZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zMSwxOCArMzEsMTEgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJUZXh0RGlyZWN0
aW9uLmgiCiAjaW5jbHVkZSA8YXJyYXk+Ci0jaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIGNsYXNzIFRleHREaXJlY3Rpb24gOiBib29sIHsg
TFRSLCBSVEwgfTsKLQotaW5saW5lIGJvb2wgaXNMZWZ0VG9SaWdodERpcmVjdGlvbihUZXh0RGly
ZWN0aW9uIGRpcmVjdGlvbikKLXsKLSAgICByZXR1cm4gZGlyZWN0aW9uID09IFRleHREaXJlY3Rp
b246OkxUUjsKLX0KLQogZW51bSBjbGFzcyBXcml0aW5nTW9kZSA6IHVpbnQ4X3QgewogICAgIFRv
cFRvQm90dG9tID0gMCwgLy8gaG9yaXpvbnRhbC10YgogICAgIEJvdHRvbVRvVG9wID0gMSwgLy8g
aG9yaXpvbnRhbC1idApAQCAtNTAsNjcgKzQzLDY4IEBAIGVudW0gY2xhc3MgV3JpdGluZ01vZGUg
OiB1aW50OF90IHsKICAgICBSaWdodFRvTGVmdCA9IDMsIC8vIHZlcnRpY2FsLXJsCiB9OwogCi0j
ZGVmaW5lIE1BS0VfVEVYVF9GTE9XKHdyaXRpbmdNb2RlLCBkaXJlY3Rpb24pICAoc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KHdyaXRpbmdNb2RlKSA8PCAxIHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGRp
cmVjdGlvbikpCitjb25zdGV4cHIgdW5zaWduZWQgbWFrZVRleHRGbG93SW5pdGFsaXplcihXcml0
aW5nTW9kZSB3cml0aW5nTW9kZSwgVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24pCit7CisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPih3cml0aW5nTW9kZSkgPDwgMSB8IHN0YXRpY19jYXN0
PHVuc2lnbmVkPihkaXJlY3Rpb24pOworfQogCiAvLyBEZWZpbmUgdGhlIHRleHQgZmxvdyBpbiB0
ZXJtcyBvZiB0aGUgd3JpdGluZyBtb2RlIGFuZCB0aGUgdGV4dCBkaXJlY3Rpb24uIFRoZSBmaXJz
dAogLy8gcGFydCBpcyB0aGUgbGluZSBncm93aW5nIGRpcmVjdGlvbiBhbmQgdGhlIHNlY29uZCBw
YXJ0IGlzIHRoZSBibG9jayBncm93aW5nIGRpcmVjdGlvbi4KIGVudW0gVGV4dEZsb3cgewotICAg
IElubGluZUVhc3RCbG9ja1NvdXRoID0gTUFLRV9URVhUX0ZMT1coV3JpdGluZ01vZGU6OlRvcFRv
Qm90dG9tLCBUZXh0RGlyZWN0aW9uOjpMVFIpLAotICAgIElubGluZVdlc3RCbG9ja1NvdXRoID0g
TUFLRV9URVhUX0ZMT1coV3JpdGluZ01vZGU6OlRvcFRvQm90dG9tLCBUZXh0RGlyZWN0aW9uOjpS
VEwpLAotICAgIElubGluZUVhc3RCbG9ja05vcnRoID0gTUFLRV9URVhUX0ZMT1coV3JpdGluZ01v
ZGU6OkJvdHRvbVRvVG9wLCBUZXh0RGlyZWN0aW9uOjpMVFIpLAotICAgIElubGluZVdlc3RCbG9j
a05vcnRoID0gTUFLRV9URVhUX0ZMT1coV3JpdGluZ01vZGU6OkJvdHRvbVRvVG9wLCBUZXh0RGly
ZWN0aW9uOjpSVEwpLAotICAgIElubGluZVNvdXRoQmxvY2tFYXN0ID0gTUFLRV9URVhUX0ZMT1co
V3JpdGluZ01vZGU6OkxlZnRUb1JpZ2h0LCBUZXh0RGlyZWN0aW9uOjpMVFIpLAotICAgIElubGlu
ZVNvdXRoQmxvY2tXZXN0ID0gTUFLRV9URVhUX0ZMT1coV3JpdGluZ01vZGU6OkxlZnRUb1JpZ2h0
LCBUZXh0RGlyZWN0aW9uOjpSVEwpLAotICAgIElubGluZU5vcnRoQmxvY2tFYXN0ID0gTUFLRV9U
RVhUX0ZMT1coV3JpdGluZ01vZGU6OlJpZ2h0VG9MZWZ0LCBUZXh0RGlyZWN0aW9uOjpMVFIpLAot
ICAgIElubGluZU5vcnRoQmxvY2tXZXN0ID0gTUFLRV9URVhUX0ZMT1coV3JpdGluZ01vZGU6OlJp
Z2h0VG9MZWZ0LCBUZXh0RGlyZWN0aW9uOjpSVEwpCisgICAgSW5saW5lRWFzdEJsb2NrU291dGgg
PSBtYWtlVGV4dEZsb3dJbml0YWxpemVyKFdyaXRpbmdNb2RlOjpUb3BUb0JvdHRvbSwgVGV4dERp
cmVjdGlvbjo6TFRSKSwKKyAgICBJbmxpbmVXZXN0QmxvY2tTb3V0aCA9IG1ha2VUZXh0Rmxvd0lu
aXRhbGl6ZXIoV3JpdGluZ01vZGU6OlRvcFRvQm90dG9tLCBUZXh0RGlyZWN0aW9uOjpSVEwpLAor
ICAgIElubGluZUVhc3RCbG9ja05vcnRoID0gbWFrZVRleHRGbG93SW5pdGFsaXplcihXcml0aW5n
TW9kZTo6Qm90dG9tVG9Ub3AsIFRleHREaXJlY3Rpb246OkxUUiksCisgICAgSW5saW5lV2VzdEJs
b2NrTm9ydGggPSBtYWtlVGV4dEZsb3dJbml0YWxpemVyKFdyaXRpbmdNb2RlOjpCb3R0b21Ub1Rv
cCwgVGV4dERpcmVjdGlvbjo6UlRMKSwKKyAgICBJbmxpbmVTb3V0aEJsb2NrRWFzdCA9IG1ha2VU
ZXh0Rmxvd0luaXRhbGl6ZXIoV3JpdGluZ01vZGU6OkxlZnRUb1JpZ2h0LCBUZXh0RGlyZWN0aW9u
OjpMVFIpLAorICAgIElubGluZVNvdXRoQmxvY2tXZXN0ID0gbWFrZVRleHRGbG93SW5pdGFsaXpl
cihXcml0aW5nTW9kZTo6TGVmdFRvUmlnaHQsIFRleHREaXJlY3Rpb246OlJUTCksCisgICAgSW5s
aW5lTm9ydGhCbG9ja0Vhc3QgPSBtYWtlVGV4dEZsb3dJbml0YWxpemVyKFdyaXRpbmdNb2RlOjpS
aWdodFRvTGVmdCwgVGV4dERpcmVjdGlvbjo6TFRSKSwKKyAgICBJbmxpbmVOb3J0aEJsb2NrV2Vz
dCA9IG1ha2VUZXh0Rmxvd0luaXRhbGl6ZXIoV3JpdGluZ01vZGU6OlJpZ2h0VG9MZWZ0LCBUZXh0
RGlyZWN0aW9uOjpSVEwpCiB9OwogCi1pbmxpbmUgVGV4dEZsb3cgbWFrZVRleHRGbG93KFdyaXRp
bmdNb2RlIHdyaXRpbmdNb2RlLCBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbikKK2NvbnN0ZXhwciBp
bmxpbmUgVGV4dEZsb3cgbWFrZVRleHRGbG93KFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlLCBUZXh0
RGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VGV4dEZsb3c+
KE1BS0VfVEVYVF9GTE9XKHdyaXRpbmdNb2RlLCBkaXJlY3Rpb24pKTsKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8VGV4dEZsb3c+KG1ha2VUZXh0Rmxvd0luaXRhbGl6ZXIod3JpdGluZ01vZGUsIGRp
cmVjdGlvbikpOwogfQogCi0jdW5kZWYgTUFLRV9URVhUX0ZMT1cKLQotY29uc3QgdW5zaWduZWQg
VGV4dEZsb3dSZXZlcnNlZE1hc2sgPSAxOwotY29uc3QgdW5zaWduZWQgVGV4dEZsb3dGbGlwcGVk
TWFzayA9IDI7Ci1jb25zdCB1bnNpZ25lZCBUZXh0Rmxvd1ZlcnRpY2FsTWFzayA9IDQ7Citjb25z
dGV4cHIgdW5zaWduZWQgVGV4dEZsb3dSZXZlcnNlZE1hc2sgPSAxOworY29uc3RleHByIHVuc2ln
bmVkIFRleHRGbG93RmxpcHBlZE1hc2sgPSAyOworY29uc3RleHByIHVuc2lnbmVkIFRleHRGbG93
VmVydGljYWxNYXNrID0gNDsKIAotaW5saW5lIGJvb2wgaXNSZXZlcnNlZFRleHRGbG93KFRleHRG
bG93IHRleHRmbG93KQorY29uc3RleHByIGlubGluZSBib29sIGlzUmV2ZXJzZWRUZXh0RmxvdyhU
ZXh0RmxvdyB0ZXh0ZmxvdykKIHsKICAgICByZXR1cm4gdGV4dGZsb3cgJiBUZXh0Rmxvd1JldmVy
c2VkTWFzazsKIH0KIAotaW5saW5lIGJvb2wgaXNGbGlwcGVkVGV4dEZsb3coVGV4dEZsb3cgdGV4
dGZsb3cpCitjb25zdGV4cHIgaW5saW5lIGJvb2wgaXNGbGlwcGVkVGV4dEZsb3coVGV4dEZsb3cg
dGV4dGZsb3cpCiB7CiAgICAgcmV0dXJuIHRleHRmbG93ICYgVGV4dEZsb3dGbGlwcGVkTWFzazsK
IH0KIAotaW5saW5lIGJvb2wgaXNWZXJ0aWNhbFRleHRGbG93KFRleHRGbG93IHRleHRmbG93KQor
Y29uc3RleHByIGlubGluZSBib29sIGlzVmVydGljYWxUZXh0RmxvdyhUZXh0RmxvdyB0ZXh0Zmxv
dykKIHsKICAgICByZXR1cm4gdGV4dGZsb3cgJiBUZXh0Rmxvd1ZlcnRpY2FsTWFzazsKIH0KIAog
Ly8gTGluZXMgaGF2ZSB2ZXJ0aWNhbCBvcmllbnRhdGlvbjsgbW9kZXMgdmVydGljYWwtbHIgb3Ig
dmVydGljYWwtcmwuCi1pbmxpbmUgYm9vbCBpc1ZlcnRpY2FsV3JpdGluZ01vZGUoV3JpdGluZ01v
ZGUgd3JpdGluZ01vZGUpCitjb25zdGV4cHIgaW5saW5lIGJvb2wgaXNWZXJ0aWNhbFdyaXRpbmdN
b2RlKFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKQogewogICAgIHJldHVybiBpc1ZlcnRpY2FsVGV4
dEZsb3cobWFrZVRleHRGbG93KHdyaXRpbmdNb2RlLCBUZXh0RGlyZWN0aW9uOjpMVFIpKTsKIH0K
IAogLy8gQmxvY2sgcHJvZ3Jlc3Npb24gaW5jcmVhc2VzIGluIHRoZSBvcHBvc2l0ZSBkaXJlY3Rp
b24gdG8gbm9ybWFsOyBtb2RlcyB2ZXJ0aWNhbC1ybCBvciBob3Jpem9udGFsLWJ0LgotaW5saW5l
IGJvb2wgaXNGbGlwcGVkV3JpdGluZ01vZGUoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUpCitjb25z
dGV4cHIgaW5saW5lIGJvb2wgaXNGbGlwcGVkV3JpdGluZ01vZGUoV3JpdGluZ01vZGUgd3JpdGlu
Z01vZGUpCiB7CiAgICAgcmV0dXJuIGlzRmxpcHBlZFRleHRGbG93KG1ha2VUZXh0Rmxvdyh3cml0
aW5nTW9kZSwgVGV4dERpcmVjdGlvbjo6TFRSKSk7CiB9CiAKIC8vIExpbmVzIGhhdmUgaG9yaXpv
bnRhbCBvcmllbnRhdGlvbjsgbW9kZXMgaG9yaXpvbnRhbC10YiBvciBob3Jpem9udGFsLWJ0Lgot
aW5saW5lIGJvb2wgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoV3JpdGluZ01vZGUgd3JpdGluZ01v
ZGUpCitjb25zdGV4cHIgaW5saW5lIGJvb2wgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoV3JpdGlu
Z01vZGUgd3JpdGluZ01vZGUpCiB7CiAgICAgcmV0dXJuICFpc1ZlcnRpY2FsV3JpdGluZ01vZGUo
d3JpdGluZ01vZGUpOwogfQogCiAvLyBCb3R0b20gb2YgdGhlIGxpbmUgb2NjdXJzIGVhcmxpZXIg
aW4gdGhlIGJsb2NrOyBtb2RlcyB2ZXJ0aWNhbC1sciBvciBob3Jpem9udGFsLWJ0LgotaW5saW5l
IGJvb2wgaXNGbGlwcGVkTGluZXNXcml0aW5nTW9kZShXcml0aW5nTW9kZSB3cml0aW5nTW9kZSkK
K2NvbnN0ZXhwciBpbmxpbmUgYm9vbCBpc0ZsaXBwZWRMaW5lc1dyaXRpbmdNb2RlKFdyaXRpbmdN
b2RlIHdyaXRpbmdNb2RlKQogewogICAgIHJldHVybiBpc1ZlcnRpY2FsV3JpdGluZ01vZGUod3Jp
dGluZ01vZGUpICE9IGlzRmxpcHBlZFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKTsKIH0KQEAgLTEz
MSwyNSArMTI1LDI1IEBAIGVudW0gY2xhc3MgQm94U2lkZSA6IHVpbnQ4X3QgewogCiBjb25zdGV4
cHIgc3RkOjphcnJheTxCb3hTaWRlLCA0PiBhbGxCb3hTaWRlcyA9IHsgQm94U2lkZTo6VG9wLCBC
b3hTaWRlOjpSaWdodCwgQm94U2lkZTo6Qm90dG9tLCBCb3hTaWRlOjpMZWZ0IH07CiAKLWlubGlu
ZSBib29sIGlzSG9yaXpvbnRhbFBoeXNpY2FsU2lkZShCb3hTaWRlIHBoeXNpY2FsU2lkZSkKK2Nv
bnN0ZXhwciBpbmxpbmUgYm9vbCBpc0hvcml6b250YWxQaHlzaWNhbFNpZGUoQm94U2lkZSBwaHlz
aWNhbFNpZGUpCiB7CiAgICAgcmV0dXJuIHBoeXNpY2FsU2lkZSA9PSBCb3hTaWRlOjpMZWZ0IHx8
IHBoeXNpY2FsU2lkZSA9PSBCb3hTaWRlOjpSaWdodDsKIH0KIAotaW5saW5lIEJveFNpZGUgbWly
cm9yUGh5c2ljYWxTaWRlKEJveFNpZGUgcGh5c2ljYWxTaWRlKQorY29uc3RleHByIGlubGluZSBC
b3hTaWRlIG1pcnJvclBoeXNpY2FsU2lkZShCb3hTaWRlIHBoeXNpY2FsU2lkZSkKIHsKICAgICAv
LyB0b3AgPC0+IGJvdHRvbSBhbmQgbGVmdCA8LT4gcmlnaHQgY29udmVyc2lvbgogICAgIHJldHVy
biBzdGF0aWNfY2FzdDxCb3hTaWRlPigoc3RhdGljX2Nhc3Q8aW50PihwaHlzaWNhbFNpZGUpICsg
MikgJSA0KTsKIH0KIAotaW5saW5lIEJveFNpZGUgcm90YXRlUGh5c2ljYWxTaWRlKEJveFNpZGUg
cGh5c2ljYWxTaWRlKQorY29uc3RleHByIGlubGluZSBCb3hTaWRlIHJvdGF0ZVBoeXNpY2FsU2lk
ZShCb3hTaWRlIHBoeXNpY2FsU2lkZSkKIHsKICAgICAvLyB0b3AgPC0+IGxlZnQgYW5kIHJpZ2h0
IDwtPiBib3R0b20gY29udmVyc2lvbgogICAgIGJvb2wgaG9yaXpvbnRhbFNpZGUgPSBpc0hvcml6
b250YWxQaHlzaWNhbFNpZGUocGh5c2ljYWxTaWRlKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
Qm94U2lkZT4oKHN0YXRpY19jYXN0PGludD4ocGh5c2ljYWxTaWRlKSArIChob3Jpem9udGFsU2lk
ZSA/IDEgOiAzKSkgJSA0KTsKIH0KIAotaW5saW5lIEJveFNpZGUgbWFwTG9naWNhbFNpZGVUb1Bo
eXNpY2FsU2lkZShUZXh0RmxvdyB0ZXh0ZmxvdywgTG9naWNhbEJveFNpZGUgbG9naWNhbFNpZGUp
Citjb25zdGV4cHIgaW5saW5lIEJveFNpZGUgbWFwTG9naWNhbFNpZGVUb1BoeXNpY2FsU2lkZShU
ZXh0RmxvdyB0ZXh0ZmxvdywgTG9naWNhbEJveFNpZGUgbG9naWNhbFNpZGUpCiB7CiAgICAgQm94
U2lkZSBwaHlzaWNhbFNpZGUgPSBzdGF0aWNfY2FzdDxCb3hTaWRlPihsb2dpY2FsU2lkZSk7CiAg
ICAgYm9vbCBob3Jpem9udGFsU2lkZSA9IGlzSG9yaXpvbnRhbFBoeXNpY2FsU2lkZShwaHlzaWNh
bFNpZGUpOwpAQCAtMTYzLDcgKzE1Nyw3IEBAIGlubGluZSBCb3hTaWRlIG1hcExvZ2ljYWxTaWRl
VG9QaHlzaWNhbFMKICAgICByZXR1cm4gcGh5c2ljYWxTaWRlOwogfQogCi1pbmxpbmUgQm94U2lk
ZSBtYXBMb2dpY2FsU2lkZVRvUGh5c2ljYWxTaWRlKFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlLCBM
b2dpY2FsQm94U2lkZSBsb2dpY2FsU2lkZSkKK2NvbnN0ZXhwciBpbmxpbmUgQm94U2lkZSBtYXBM
b2dpY2FsU2lkZVRvUGh5c2ljYWxTaWRlKFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlLCBMb2dpY2Fs
Qm94U2lkZSBsb2dpY2FsU2lkZSkKIHsKICAgICAvLyBTZXQgdGhlIGRpcmVjdGlvbiBzdWNoIHRo
YXQgc2lkZSBpcyBtaXJyb3JlZCBpZiBpc0ZsaXBwZWRXcml0aW5nTW9kZSgpIGlzIHRydWUKICAg
ICBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbiA9IGlzRmxpcHBlZFdyaXRpbmdNb2RlKHdyaXRpbmdN
b2RlKSA/IFRleHREaXJlY3Rpb246OlJUTCA6IFRleHREaXJlY3Rpb246OkxUUjsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAkocmV2aXNpb24gMjY5ODMwKQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNzA2Miw3ICs3MDYyLDggQEAgYm9vbCBSZW5kZXJMYXllcjo6aW52YWxpZGF0ZUV2ZW50
UmVnaW9uKAogICAgICAgICBhdXRvJiB2aWV3ID0gcmVuZGVyZXIoKS52aWV3KCk7CiAgICAgICAg
IExPR19XSVRIX1NUUkVBTShFdmVudFJlZ2lvbnMsIHN0cmVhbSA8PCAiIGNhbGxpbmcgc2V0TmVl
ZHNFdmVudFJlZ2lvblVwZGF0ZUZvck5vbkNvbXBvc2l0ZWRGcmFtZSBvbiAiIDw8IHZpZXcpOwog
ICAgICAgICB2aWV3LnNldE5lZWRzRXZlbnRSZWdpb25VcGRhdGVGb3JOb25Db21wb3NpdGVkRnJh
bWUoKTsKLSAgICAgICAgaWYgKHJlbmRlcmVyKCkuc2V0dGluZ3MoKS52aXNpYmxlRGVidWdPdmVy
bGF5UmVnaW9ucygpICYgKFRvdWNoQWN0aW9uUmVnaW9uIHwgRWRpdGFibGVFbGVtZW50UmVnaW9u
IHwgV2hlZWxFdmVudEhhbmRsZXJSZWdpb24pKQorICAgICAgICBhdXRvIHZpc2libGVEZWJ1Z092
ZXJsYXlSZWdpb25zID0gT3B0aW9uU2V0PERlYnVnT3ZlcmxheVJlZ2lvbnM+Ojpmcm9tUmF3KHJl
bmRlcmVyKCkuc2V0dGluZ3MoKS52aXNpYmxlRGVidWdPdmVybGF5UmVnaW9ucygpKTsKKyAgICAg
ICAgaWYgKHZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zLmNvbnRhaW5zQW55KHsgRGVidWdPdmVy
bGF5UmVnaW9uczo6VG91Y2hBY3Rpb25SZWdpb24sIERlYnVnT3ZlcmxheVJlZ2lvbnM6OkVkaXRh
YmxlRWxlbWVudFJlZ2lvbiwgRGVidWdPdmVybGF5UmVnaW9uczo6V2hlZWxFdmVudEhhbmRsZXJS
ZWdpb24gfSkpCiAgICAgICAgICAgICB2aWV3LnNldE5lZWRzUmVwYWludEhhY2tBZnRlckNvbXBv
c2l0aW5nTGF5ZXJVcGRhdGVGb3JEZWJ1Z092ZXJsYXlzT25seSgpOwogICAgICAgICB2aWV3LmNv
bXBvc2l0b3IoKS5zY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJVcGRhdGUoKTsKICAgICB9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAko
cmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzMTksOCArMzMxOSw4IEBAIHZvaWQgUmVu
ZGVyTGF5ZXJCYWNraW5nOjpwYWludERlYnVnT3ZlcmwKICAgICBhdXRvIGNvbnRlbnRPZmZzZXQg
PSByb3VuZGVkSW50U2l6ZShncmFwaGljc0xheWVyLT5vZmZzZXRGcm9tUmVuZGVyZXIoKSk7CiAg
ICAgY29udGV4dC50cmFuc2xhdGUoY29udGVudE9mZnNldCk7CiAKLSAgICBhdXRvIHZpc2libGVE
ZWJ1Z092ZXJsYXlSZWdpb25zID0gcmVuZGVyZXIoKS5zZXR0aW5ncygpLnZpc2libGVEZWJ1Z092
ZXJsYXlSZWdpb25zKCk7Ci0gICAgaWYgKHZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zICYgKFRv
dWNoQWN0aW9uUmVnaW9uIHwgV2hlZWxFdmVudEhhbmRsZXJSZWdpb24pKSB7CisgICAgYXV0byB2
aXNpYmxlRGVidWdPdmVybGF5UmVnaW9ucyA9IE9wdGlvblNldDxEZWJ1Z092ZXJsYXlSZWdpb25z
Pjo6ZnJvbVJhdyhyZW5kZXJlcigpLnNldHRpbmdzKCkudmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lv
bnMoKSk7CisgICAgaWYgKHZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zLmNvbnRhaW5zQW55KHsg
RGVidWdPdmVybGF5UmVnaW9uczo6VG91Y2hBY3Rpb25SZWdpb24sIERlYnVnT3ZlcmxheVJlZ2lv
bnM6OldoZWVsRXZlbnRIYW5kbGVyUmVnaW9uIH0pKSB7CiAgICAgICAgIGNvbnN0ZXhwciBhdXRv
IHJlZ2lvbkNvbG9yID0gQ29sb3I6OmJsdWUuY29sb3JXaXRoQWxwaGFCeXRlKDUwKTsKICAgICAg
ICAgY29udGV4dC5zZXRGaWxsQ29sb3IocmVnaW9uQ29sb3IpOwogICAgICAgICBmb3IgKGF1dG8g
cmVjdCA6IGV2ZW50UmVnaW9uLnJlZ2lvbigpLnJlY3RzKCkpCkBAIC0zMzI4LDcgKzMzMjgsNyBA
QCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnREZWJ1Z092ZXJsCiAgICAgfQogCiAjaWYg
RU5BQkxFKFRPVUNIX0FDVElPTl9SRUdJT05TKQotICAgIGlmICh2aXNpYmxlRGVidWdPdmVybGF5
UmVnaW9ucyAmIFRvdWNoQWN0aW9uUmVnaW9uKSB7CisgICAgaWYgKHZpc2libGVEZWJ1Z092ZXJs
YXlSZWdpb25zLmNvbnRhaW5zKERlYnVnT3ZlcmxheVJlZ2lvbnM6OlRvdWNoQWN0aW9uUmVnaW9u
KSkgewogICAgICAgICBjb25zdCBUb3VjaEFjdGlvbiB0b3VjaEFjdGlvbkxpc3RbXSA9IHsKICAg
ICAgICAgICAgIFRvdWNoQWN0aW9uOjpOb25lLAogICAgICAgICAgICAgVG91Y2hBY3Rpb246Ok1h
bmlwdWxhdGlvbiwKQEAgLTMzNTQsNyArMzM1NCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5n
OjpwYWludERlYnVnT3ZlcmwKICNlbmRpZgogCiAjaWYgRU5BQkxFKFdIRUVMX0VWRU5UX1JFR0lP
TlMpCi0gICAgaWYgKHZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zICYgV2hlZWxFdmVudEhhbmRs
ZXJSZWdpb24pIHsKKyAgICBpZiAodmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMuY29udGFpbnMo
RGVidWdPdmVybGF5UmVnaW9uczo6V2hlZWxFdmVudEhhbmRsZXJSZWdpb24pKSB7CiAgICAgICAg
IGZvciAoYXV0byB0eXBlIDogeyBFdmVudExpc3RlbmVyUmVnaW9uVHlwZTo6V2hlZWwsIEV2ZW50
TGlzdGVuZXJSZWdpb25UeXBlOjpOb25QYXNzaXZlV2hlZWwgfSkgewogICAgICAgICAgICAgYXV0
byBmaWxsUGF0dGVybiA9IHBhdHRlcm5Gb3JFdmVudExpc3RlbmVyUmVnaW9uVHlwZSh0eXBlLCBn
cmFwaGljc0xheWVyLT5vZmZzZXRGcm9tUmVuZGVyZXIoKSwgY29udGV4dCk7CiAgICAgICAgICAg
ICBjb250ZXh0LnNldEZpbGxQYXR0ZXJuKGZpbGxQYXR0ZXJuLnJlbGVhc2VOb25OdWxsKCkpOwpA
QCAtMzM2Nyw3ICszMzY3LDcgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50RGVidWdP
dmVybAogI2VuZGlmCiAKICNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQotICAgIGlmICh2aXNp
YmxlRGVidWdPdmVybGF5UmVnaW9ucyAmIEVkaXRhYmxlRWxlbWVudFJlZ2lvbikgeworICAgIGlm
ICh2aXNpYmxlRGVidWdPdmVybGF5UmVnaW9ucy5jb250YWlucyhEZWJ1Z092ZXJsYXlSZWdpb25z
OjpFZGl0YWJsZUVsZW1lbnRSZWdpb24pKSB7CiAgICAgICAgIGNvbnRleHQuc2V0RmlsbENvbG9y
KFNSR0JBPHVpbnQ4X3Q+IHsgMTI4LCAwLCAxMjgsIDUwIH0pOwogICAgICAgICBmb3IgKGF1dG8g
cmVjdCA6IGV2ZW50UmVnaW9uLnJlY3RzRm9yRWRpdGFibGVFbGVtZW50cygpKQogICAgICAgICAg
ICAgY29udGV4dC5maWxsUmVjdChyZWN0KTsKQEAgLTM0MTQsNyArMzQxNCw4IEBAIHZvaWQgUmVu
ZGVyTGF5ZXJCYWNraW5nOjpwYWludENvbnRlbnRzKGMKIAogICAgICAgICBwYWludEludG9MYXll
cihncmFwaGljc0xheWVyLCBjb250ZXh0LCBkaXJ0eVJlY3QsIGJlaGF2aW9yKTsKIAotICAgICAg
ICBpZiAocmVuZGVyZXIoKS5zZXR0aW5ncygpLnZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zKCkg
JiAoVG91Y2hBY3Rpb25SZWdpb24gfCBFZGl0YWJsZUVsZW1lbnRSZWdpb24gfCBXaGVlbEV2ZW50
SGFuZGxlclJlZ2lvbikpCisgICAgICAgIGF1dG8gdmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMg
PSBPcHRpb25TZXQ8RGVidWdPdmVybGF5UmVnaW9ucz46OmZyb21SYXcocmVuZGVyZXIoKS5zZXR0
aW5ncygpLnZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zKCkpOworICAgICAgICBpZiAodmlzaWJs
ZURlYnVnT3ZlcmxheVJlZ2lvbnMuY29udGFpbnNBbnkoeyBEZWJ1Z092ZXJsYXlSZWdpb25zOjpU
b3VjaEFjdGlvblJlZ2lvbiwgRGVidWdPdmVybGF5UmVnaW9uczo6RWRpdGFibGVFbGVtZW50UmVn
aW9uLCBEZWJ1Z092ZXJsYXlSZWdpb25zOjpXaGVlbEV2ZW50SGFuZGxlclJlZ2lvbiB9KSkKICAg
ICAgICAgICAgIHBhaW50RGVidWdPdmVybGF5cyhncmFwaGljc0xheWVyLCBjb250ZXh0KTsKIAog
ICAgIH0gZWxzZSBpZiAoZ3JhcGhpY3NMYXllciA9PSBsYXllckZvckhvcml6b250YWxTY3JvbGxi
YXIoKSkgewpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3Mu
Y3BwCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
U2V0dGluZ3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw2IEBACiAjaW5jbHVkZSAi
UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIK
ICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCi0jaW5jbHVkZSAiU2V0dGluZ3Mu
aCIKICNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgogI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5o
PgogCkBAIC01MCw5ICs0OSw5IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEludGVybmFsU2V0
dGluZ3M6OkJhY2t1cDo6QmFja3VwKFNldHRpbmdzJiBzZXR0aW5ncykKLSAgICA6IG1fb3JpZ2lu
YWxFZGl0aW5nQmVoYXZpb3Ioc2V0dGluZ3MuZWRpdGluZ0JlaGF2aW9yVHlwZSgpKQotICAgICwg
bV9taW5pbXVtRE9NVGltZXJJbnRlcnZhbChzZXR0aW5ncy5taW5pbXVtRE9NVGltZXJJbnRlcnZh
bCgpKQorICAgIDogbV9taW5pbXVtRE9NVGltZXJJbnRlcnZhbChzZXR0aW5ncy5taW5pbXVtRE9N
VGltZXJJbnRlcnZhbCgpKQogICAgICwgbV9vcmlnaW5hbFRpbWVXaXRob3V0TW91c2VNb3ZlbWVu
dEJlZm9yZUhpZGluZ0NvbnRyb2xzKHNldHRpbmdzLnRpbWVXaXRob3V0TW91c2VNb3ZlbWVudEJl
Zm9yZUhpZGluZ0NvbnRyb2xzKCkpCisgICAgLCBtX29yaWdpbmFsRWRpdGluZ0JlaGF2aW9yKHNl
dHRpbmdzLmVkaXRpbmdCZWhhdmlvclR5cGUoKSkKICAgICAsIG1fc3RvcmFnZUJsb2NraW5nUG9s
aWN5KHNldHRpbmdzLnN0b3JhZ2VCbG9ja2luZ1BvbGljeSgpKQogICAgICwgbV91c2VySW50ZXJm
YWNlRGlyZWN0aW9uUG9saWN5KHNldHRpbmdzLnVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3ko
KSkKICAgICAsIG1fc3lzdGVtTGF5b3V0RGlyZWN0aW9uKHNldHRpbmdzLnN5c3RlbUxheW91dERp
cmVjdGlvbigpKQpAQCAtMTA4LDkgKzEwNyw5IEBAIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6QmFj
a3VwOjpyZXN0b3JlVG8KICAgICAgICAgc2V0dGluZ3Muc2V0UGljdG9ncmFwaEZvbnRGYW1pbHko
cGljdG9ncmFwaEZvbnQudmFsdWUsIHN0YXRpY19jYXN0PFVTY3JpcHRDb2RlPihwaWN0b2dyYXBo
Rm9udC5rZXkpKTsKICAgICBtX3BpY3RvZ3JhcGhGb250RmFtaWxpZXMuY2xlYXIoKTsKIAotICAg
IHNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvclR5cGUobV9vcmlnaW5hbEVkaXRpbmdCZWhhdmlv
cik7CiAgICAgc2V0dGluZ3Muc2V0TWluaW11bURPTVRpbWVySW50ZXJ2YWwobV9taW5pbXVtRE9N
VGltZXJJbnRlcnZhbCk7CiAgICAgc2V0dGluZ3Muc2V0VGltZVdpdGhvdXRNb3VzZU1vdmVtZW50
QmVmb3JlSGlkaW5nQ29udHJvbHMobV9vcmlnaW5hbFRpbWVXaXRob3V0TW91c2VNb3ZlbWVudEJl
Zm9yZUhpZGluZ0NvbnRyb2xzKTsKKyAgICBzZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3JUeXBl
KG1fb3JpZ2luYWxFZGl0aW5nQmVoYXZpb3IpOwogICAgIHNldHRpbmdzLnNldFN0b3JhZ2VCbG9j
a2luZ1BvbGljeShtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeSk7CiAgICAgc2V0dGluZ3Muc2V0VXNl
ckludGVyZmFjZURpcmVjdGlvblBvbGljeShtX3VzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3kp
OwogICAgIHNldHRpbmdzLnNldFN5c3RlbUxheW91dERpcmVjdGlvbihtX3N5c3RlbUxheW91dERp
cmVjdGlvbik7CkBAIC0zMDQsMjQgKzMwMywxMSBAQCBFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5h
bFNldHRpbmdzOjpzZXRUCiAgICAgcmV0dXJuIHsgfTsKIH0KIAotRXhjZXB0aW9uT3I8dm9pZD4g
SW50ZXJuYWxTZXR0aW5nczo6c2V0RWRpdGluZ0JlaGF2aW9yKEVkaXRpbmdCZWhhdmlvciBlZGl0
aW5nQmVoYXZpb3IpCitFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNldHRpbmdzOjpzZXRFZGl0
aW5nQmVoYXZpb3IoRWRpdGluZ0JlaGF2aW9yVHlwZSBlZGl0aW5nQmVoYXZpb3JUeXBlKQogewog
ICAgIGlmICghbV9wYWdlKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vz
c0Vycm9yIH07Ci0gICAgc3dpdGNoIChlZGl0aW5nQmVoYXZpb3IpIHsKLSAgICBjYXNlIEVkaXRp
bmdCZWhhdmlvcjo6V2luOgotICAgICAgICBzZXR0aW5ncygpLnNldEVkaXRpbmdCZWhhdmlvclR5
cGUoRWRpdGluZ1dpbmRvd3NCZWhhdmlvcik7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRWRp
dGluZ0JlaGF2aW9yOjpNYWM6Ci0gICAgICAgIHNldHRpbmdzKCkuc2V0RWRpdGluZ0JlaGF2aW9y
VHlwZShFZGl0aW5nTWFjQmVoYXZpb3IpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEVkaXRp
bmdCZWhhdmlvcjo6VW5peDoKLSAgICAgICAgc2V0dGluZ3MoKS5zZXRFZGl0aW5nQmVoYXZpb3JU
eXBlKEVkaXRpbmdVbml4QmVoYXZpb3IpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEVkaXRp
bmdCZWhhdmlvcjo6SW9zOgotICAgICAgICBzZXR0aW5ncygpLnNldEVkaXRpbmdCZWhhdmlvclR5
cGUoRWRpdGluZ0lPU0JlaGF2aW9yKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQorICAgIHNldHRp
bmdzKCkuc2V0RWRpdGluZ0JlaGF2aW9yVHlwZShlZGl0aW5nQmVoYXZpb3JUeXBlKTsKICAgICBy
ZXR1cm4geyB9OwogfQogCkBAIC0zMjksMTcgKzMxNSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IElu
dGVybmFsU2V0dGluZ3M6OnNldFMKIHsKICAgICBpZiAoIW1fcGFnZSkKICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OwotICAgIHN3aXRjaCAocG9saWN5KSB7
Ci0gICAgY2FzZSBTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkFsbG93QWxsOgotICAgICAgICBzZXR0
aW5ncygpLnNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShTZWN1cml0eU9yaWdpbjo6QWxsb3dBbGxT
dG9yYWdlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBTdG9yYWdlQmxvY2tpbmdQb2xpY3k6
OkJsb2NrVGhpcmRQYXJ0eToKLSAgICAgICAgc2V0dGluZ3MoKS5zZXRTdG9yYWdlQmxvY2tpbmdQ
b2xpY3koU2VjdXJpdHlPcmlnaW46OkJsb2NrVGhpcmRQYXJ0eVN0b3JhZ2UpOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIFN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QmxvY2tBbGw6Ci0gICAgICAg
IHNldHRpbmdzKCkuc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KFNlY3VyaXR5T3JpZ2luOjpCbG9j
a0FsbFN0b3JhZ2UpOwotICAgICAgICBicmVhazsKLSAgICB9CisgICAgc2V0dGluZ3MoKS5zZXRT
dG9yYWdlQmxvY2tpbmdQb2xpY3kocG9saWN5KTsKICAgICByZXR1cm4geyB9OwogfQogCkBAIC0z
NDcsMjAgKzMyMyw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFsU2V0dGluZ3M6OnNldFAK
IHsKICAgICBpZiAoIW1fcGFnZSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRB
Y2Nlc3NFcnJvciB9OwotICAgIHN3aXRjaCAocG9saWN5KSB7Ci0gICAgY2FzZSBQREZJbWFnZUNh
Y2hpbmdQb2xpY3k6OkVuYWJsZWQ6Ci0gICAgICAgIHNldHRpbmdzKCkuc2V0UGRmSW1hZ2VDYWNo
aW5nUG9saWN5KFBERkltYWdlQ2FjaGluZ0Rpc2FibGVkKTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBQREZJbWFnZUNhY2hpbmdQb2xpY3k6OkJlbG93TWVtb3J5TGltaXQ6Ci0gICAgICAgIHNl
dHRpbmdzKCkuc2V0UGRmSW1hZ2VDYWNoaW5nUG9saWN5KFBERkltYWdlQ2FjaGluZ0JlbG93TWVt
b3J5TGltaXQpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBERkltYWdlQ2FjaGluZ1BvbGlj
eTo6RGlzYWJsZWQ6Ci0gICAgICAgIHNldHRpbmdzKCkuc2V0UGRmSW1hZ2VDYWNoaW5nUG9saWN5
KFBERkltYWdlQ2FjaGluZ0Rpc2FibGVkKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQREZJ
bWFnZUNhY2hpbmdQb2xpY3k6OkNsaXBCb3VuZHNPbmx5OgotICAgICAgICBzZXR0aW5ncygpLnNl
dFBkZkltYWdlQ2FjaGluZ1BvbGljeShQREZJbWFnZUNhY2hpbmdDbGlwQm91bmRzT25seSk7Ci0g
ICAgICAgIGJyZWFrOwotICAgIH0KKyAgICBzZXR0aW5ncygpLnNldFBkZkltYWdlQ2FjaGluZ1Bv
bGljeShwb2xpY3kpOwogICAgIHJldHVybiB7IH07CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAkod29ya2luZyBjb3B5KQpAQCAtMjYs
MjIgKzI2LDE0IEBACiAKICNwcmFnbWEgb25jZQogCi0vLyBGSVhNRSAoMTIxOTI3KTogVGhpcyBp
bmNsdWRlIHNob3VsZCBub3QgYmUgbmVlZGVkLgotI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJp
bmdIYXNoLmg+Ci0KLSNpbmNsdWRlICJFZGl0aW5nQmVoYXZpb3JUeXBlcy5oIgogI2luY2x1ZGUg
IkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiRm9udEdlbmVyaWNGYW1pbGllcy5oIgotI2luY2x1
ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmgiCi0j
aW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgotI2luY2x1
ZGUgIldyaXRpbmdNb2RlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUGFnZTsK
LWNsYXNzIFNldHRpbmdzOwogCiBjbGFzcyBJbnRlcm5hbFNldHRpbmdzIDogcHVibGljIEludGVy
bmFsU2V0dGluZ3NHZW5lcmF0ZWQgewogcHVibGljOgpAQCAtNjQsMTMgKzU2LDEzIEBAIHB1Ymxp
YzoKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRNaW5pbXVtVGltZXJJbnRlcnZhbChkb3VibGUg
aW50ZXJ2YWxJblNlY29uZHMpOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFRpbWVXaXRob3V0
TW91c2VNb3ZlbWVudEJlZm9yZUhpZGluZ0NvbnRyb2xzKGRvdWJsZSBpbnRlcnZhbEluU2Vjb25k
cyk7CiAKLSAgICBlbnVtIGNsYXNzIEVkaXRpbmdCZWhhdmlvciA6IHVpbnQ4X3QgeyBNYWMsIFdp
biwgVW5peCwgSW9zIH07Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0RWRpdGluZ0JlaGF2aW9y
KEVkaXRpbmdCZWhhdmlvcik7CisgICAgdXNpbmcgRWRpdGluZ0JlaGF2aW9yVHlwZSA9IFdlYkNv
cmU6OkVkaXRpbmdCZWhhdmlvclR5cGU7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0RWRpdGlu
Z0JlaGF2aW9yKEVkaXRpbmdCZWhhdmlvclR5cGUpOwogICAgIAotICAgIGVudW0gY2xhc3MgUERG
SW1hZ2VDYWNoaW5nUG9saWN5IDogdWludDhfdCB7IEVuYWJsZWQsIEJlbG93TWVtb3J5TGltaXQs
IERpc2FibGVkLCBDbGlwQm91bmRzT25seSB9OworICAgIHVzaW5nIFBERkltYWdlQ2FjaGluZ1Bv
bGljeSA9IFdlYkNvcmU6OlBERkltYWdlQ2FjaGluZ1BvbGljeTsKICAgICBFeGNlcHRpb25Pcjx2
b2lkPiBzZXRQREZJbWFnZUNhY2hpbmdQb2xpY3koUERGSW1hZ2VDYWNoaW5nUG9saWN5KTsKIAot
ICAgIGVudW0gY2xhc3MgU3RvcmFnZUJsb2NraW5nUG9saWN5IDogdWludDhfdCB7IEFsbG93QWxs
LCBCbG9ja1RoaXJkUGFydHksIEJsb2NrQWxsIH07CisgICAgdXNpbmcgU3RvcmFnZUJsb2NraW5n
UG9saWN5ID0gV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5OwogICAgIEV4Y2VwdGlvbk9y
PHZvaWQ+IHNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShTdG9yYWdlQmxvY2tpbmdQb2xpY3kpOwog
ICAgIAogICAgIHVzaW5nIFVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3kgPSBXZWJDb3JlOjpV
c2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5OwpAQCAtNzksMTMgKzcxLDEzIEBAIHB1YmxpYzoK
ICAgICB1c2luZyBTeXN0ZW1MYXlvdXREaXJlY3Rpb24gPSBUZXh0RGlyZWN0aW9uOwogICAgIEV4
Y2VwdGlvbk9yPHZvaWQ+IHNldFN5c3RlbUxheW91dERpcmVjdGlvbihTeXN0ZW1MYXlvdXREaXJl
Y3Rpb24pOwogCi0gICAgdXNpbmcgRm9udExvYWRUaW1pbmdPdmVycmlkZSA9IFNldHRpbmdzOjpG
b250TG9hZFRpbWluZ092ZXJyaWRlOworICAgIHVzaW5nIEZvbnRMb2FkVGltaW5nT3ZlcnJpZGUg
PSBXZWJDb3JlOjpGb250TG9hZFRpbWluZ092ZXJyaWRlOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+
IHNldEZvbnRMb2FkVGltaW5nT3ZlcnJpZGUoRm9udExvYWRUaW1pbmdPdmVycmlkZSk7CiAKICAg
ICB1c2luZyBGcmFtZUZsYXR0ZW5pbmdWYWx1ZSA9IEZyYW1lRmxhdHRlbmluZzsKICAgICBFeGNl
cHRpb25Pcjx2b2lkPiBzZXRGcmFtZUZsYXR0ZW5pbmcoRnJhbWVGbGF0dGVuaW5nVmFsdWUpOwog
Ci0gICAgdXNpbmcgRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlID0gU2V0dGluZ3M6OkZvcmNlZEFj
Y2Vzc2liaWxpdHlWYWx1ZTsKKyAgICB1c2luZyBGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUgPSBX
ZWJDb3JlOjpGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWU7CiAgICAgRm9yY2VkQWNjZXNzaWJpbGl0
eVZhbHVlIGZvcmNlZENvbG9yc0FyZUludmVydGVkQWNjZXNzaWJpbGl0eVZhbHVlKCkgY29uc3Q7
CiAgICAgdm9pZCBzZXRGb3JjZWRDb2xvcnNBcmVJbnZlcnRlZEFjY2Vzc2liaWxpdHlWYWx1ZShG
b3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUpOwogICAgIEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZSBm
b3JjZWREaXNwbGF5SXNNb25vY2hyb21lQWNjZXNzaWJpbGl0eVZhbHVlKCkgY29uc3Q7CkBAIC0x
NDgsMTggKzE0MCwxOCBAQCBwcml2YXRlOgogICAgICAgICBTY3JpcHRGb250RmFtaWx5TWFwIG1f
Y3Vyc2l2ZUZvbnRGYW1pbGllczsKICAgICAgICAgU2NyaXB0Rm9udEZhbWlseU1hcCBtX2ZhbnRh
c3lGb250RmFtaWxpZXM7CiAgICAgICAgIFNjcmlwdEZvbnRGYW1pbHlNYXAgbV9waWN0b2dyYXBo
Rm9udEZhbWlsaWVzOwotICAgICAgICBFZGl0aW5nQmVoYXZpb3JUeXBlIG1fb3JpZ2luYWxFZGl0
aW5nQmVoYXZpb3I7CiAgICAgICAgIFNlY29uZHMgbV9taW5pbXVtRE9NVGltZXJJbnRlcnZhbDsK
ICAgICAgICAgU2Vjb25kcyBtX29yaWdpbmFsVGltZVdpdGhvdXRNb3VzZU1vdmVtZW50QmVmb3Jl
SGlkaW5nQ29udHJvbHM7Ci0gICAgICAgIFNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQ
b2xpY3kgbV9zdG9yYWdlQmxvY2tpbmdQb2xpY3k7Ci0gICAgICAgIFVzZXJJbnRlcmZhY2VEaXJl
Y3Rpb25Qb2xpY3kgbV91c2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5OworICAgICAgICBXZWJD
b3JlOjpFZGl0aW5nQmVoYXZpb3JUeXBlIG1fb3JpZ2luYWxFZGl0aW5nQmVoYXZpb3I7CisgICAg
ICAgIFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBtX3N0b3JhZ2VCbG9ja2luZ1BvbGlj
eTsKKyAgICAgICAgV2ViQ29yZTo6VXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeSBtX3VzZXJJ
bnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3k7CiAgICAgICAgIFRleHREaXJlY3Rpb24gbV9zeXN0ZW1M
YXlvdXREaXJlY3Rpb247CiAgICAgICAgIFdlYkNvcmU6OlBERkltYWdlQ2FjaGluZ1BvbGljeSBt
X3BkZkltYWdlQ2FjaGluZ1BvbGljeTsKLSAgICAgICAgU2V0dGluZ3M6OkZvcmNlZEFjY2Vzc2li
aWxpdHlWYWx1ZSBtX2ZvcmNlZENvbG9yc0FyZUludmVydGVkQWNjZXNzaWJpbGl0eVZhbHVlOwot
ICAgICAgICBTZXR0aW5nczo6Rm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlIG1fZm9yY2VkRGlzcGxh
eUlzTW9ub2Nocm9tZUFjY2Vzc2liaWxpdHlWYWx1ZTsKLSAgICAgICAgU2V0dGluZ3M6OkZvcmNl
ZEFjY2Vzc2liaWxpdHlWYWx1ZSBtX2ZvcmNlZFByZWZlcnNSZWR1Y2VkTW90aW9uQWNjZXNzaWJp
bGl0eVZhbHVlOwotICAgICAgICBTZXR0aW5nczo6Rm9udExvYWRUaW1pbmdPdmVycmlkZSBtX2Zv
bnRMb2FkVGltaW5nT3ZlcnJpZGU7Ci0gICAgICAgIEZyYW1lRmxhdHRlbmluZyBtX2ZyYW1lRmxh
dHRlbmluZzsKKyAgICAgICAgV2ViQ29yZTo6Rm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlIG1fZm9y
Y2VkQ29sb3JzQXJlSW52ZXJ0ZWRBY2Nlc3NpYmlsaXR5VmFsdWU7CisgICAgICAgIFdlYkNvcmU6
OkZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZSBtX2ZvcmNlZERpc3BsYXlJc01vbm9jaHJvbWVBY2Nl
c3NpYmlsaXR5VmFsdWU7CisgICAgICAgIFdlYkNvcmU6OkZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1
ZSBtX2ZvcmNlZFByZWZlcnNSZWR1Y2VkTW90aW9uQWNjZXNzaWJpbGl0eVZhbHVlOworICAgICAg
ICBXZWJDb3JlOjpGb250TG9hZFRpbWluZ092ZXJyaWRlIG1fZm9udExvYWRUaW1pbmdPdmVycmlk
ZTsKKyAgICAgICAgV2ViQ29yZTo6RnJhbWVGbGF0dGVuaW5nIG1fZnJhbWVGbGF0dGVuaW5nOwog
CiAgICAgICAgIC8vIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMKICAgICAgICAgYm9vbCBtX3dlYkdM
MkVuYWJsZWQ7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3Mu
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5pZGwJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxTZXR0aW5ncy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI0LDExICsyNCwxMSBAQAogICogVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KICAqLwogCi1lbnVtIEVkaXRpbmdCZWhhdmlvciB7ICJtYWMiLCAid2luIiwgInVuaXgi
LCAiaW9zIiB9OworZW51bSBFZGl0aW5nQmVoYXZpb3JUeXBlIHsgIm1hYyIsICJ3aW5kb3dzIiwg
InVuaXgiLCAiaW9zIiB9OwogZW51bSBGb250TG9hZFRpbWluZ092ZXJyaWRlIHsgIk5vbmUiLCAi
QmxvY2siLCAiU3dhcCIsICJGYWlsdXJlIiB9OwogZW51bSBGb3JjZWRBY2Nlc3NpYmlsaXR5VmFs
dWUgeyAic3lzdGVtIiwgIm9uIiwgIm9mZiIgfTsKIGVudW0gRnJhbWVGbGF0dGVuaW5nVmFsdWUg
eyAiRGlzYWJsZWQiLCAiRW5hYmxlZEZvck5vbkZ1bGxTY3JlZW5JRnJhbWVzIiwgIkZ1bGx5RW5h
YmxlZCIgfTsKLWVudW0gUERGSW1hZ2VDYWNoaW5nUG9saWN5IHsgImVuYWJsZWQiLCAiYmVsb3dN
ZW1vcnlMaW1pdCIsICJkaXNhYmxlZCIsICJjbGlwQm91bmRzT25seSIgfTsKK2VudW0gUERGSW1h
Z2VDYWNoaW5nUG9saWN5IHsgIkVuYWJsZWQiLCAiQmVsb3dNZW1vcnlMaW1pdCIsICJEaXNhYmxl
ZCIsICJDbGlwQm91bmRzT25seSIgfTsKIGVudW0gU3RvcmFnZUJsb2NraW5nUG9saWN5IHsgIkFs
bG93QWxsIiwgIkJsb2NrVGhpcmRQYXJ0eSIsICJCbG9ja0FsbCIgfTsKIGVudW0gU3lzdGVtTGF5
b3V0RGlyZWN0aW9uIHsgIkxUUiIsICJSVEwiIH07CiBlbnVtIFRyYWNrS2luZCB7ICJTdWJ0aXRs
ZXMiLCAiQ2FwdGlvbnMiLCAiVGV4dERlc2NyaXB0aW9ucyIgfTsKQEAgLTUyLDcgKzUyLDcgQEAg
ZW51bSBVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5IHsgIkNvbgogICAgIFtNYXlUaHJvd0V4
Y2VwdGlvbl0gdW5kZWZpbmVkIHNldFRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKGxv
bmcgd2lkdGgsIGxvbmcgaGVpZ2h0KTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHVuZGVmaW5l
ZCBzZXRUaW1lV2l0aG91dE1vdXNlTW92ZW1lbnRCZWZvcmVIaWRpbmdDb250cm9scyh1bnJlc3Ry
aWN0ZWQgZG91YmxlIGludGVydmFsSW5TZWNvbmRzKTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25d
IHVuZGVmaW5lZCBzZXRNaW5pbXVtVGltZXJJbnRlcnZhbCh1bnJlc3RyaWN0ZWQgZG91YmxlIGlu
dGVydmFsSW5TZWNvbmRzKTsKLSAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHVuZGVmaW5lZCBzZXRF
ZGl0aW5nQmVoYXZpb3IoRWRpdGluZ0JlaGF2aW9yIGJlaGF2aW9yKTsKKyAgICBbTWF5VGhyb3dF
eGNlcHRpb25dIHVuZGVmaW5lZCBzZXRFZGl0aW5nQmVoYXZpb3IoRWRpdGluZ0JlaGF2aW9yVHlw
ZSBiZWhhdmlvcik7CiAgICAgW01heVRocm93RXhjZXB0aW9uXSB1bmRlZmluZWQgc2V0U3RvcmFn
ZUJsb2NraW5nUG9saWN5KFN0b3JhZ2VCbG9ja2luZ1BvbGljeSBwb2xpY3kpOwogICAgIFtNYXlU
aHJvd0V4Y2VwdGlvbl0gdW5kZWZpbmVkIHNldFBERkltYWdlQ2FjaGluZ1BvbGljeShQREZJbWFn
ZUNhY2hpbmdQb2xpY3kgcG9saWN5KTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHVuZGVmaW5l
ZCBzZXRGcmFtZUZsYXR0ZW5pbmcoRnJhbWVGbGF0dGVuaW5nVmFsdWUgZnJhbWVGbGF0dGVuaW5n
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VX
b3JrZXJUaHJlYWRQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcAkocmV2aXNpb24g
MjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vydmlj
ZVdvcmtlclRocmVhZFByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTIsNyArNTIsNyBAQCBz
dGF0aWMgVVJMIHRvcE9yaWdpblVSTChjb25zdCBTZWN1cml0eU9yCiAgICAgcmV0dXJuIFVSTCB7
IFVSTCB7IH0sIG9yaWdpbi50b1Jhd1N0cmluZygpIH07CiB9CiAKLXN0YXRpYyBpbmxpbmUgVW5p
cXVlUmVmPFBhZ2U+IGNyZWF0ZVBhZ2VGb3JTZXJ2aWNlV29ya2VyKFBhZ2VDb25maWd1cmF0aW9u
JiYgY29uZmlndXJhdGlvbiwgY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiBkYXRhLCBT
ZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5IHN0b3JhZ2VCbG9ja2luZ1BvbGlj
eSkKK3N0YXRpYyBpbmxpbmUgVW5pcXVlUmVmPFBhZ2U+IGNyZWF0ZVBhZ2VGb3JTZXJ2aWNlV29y
a2VyKFBhZ2VDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbiwgY29uc3QgU2VydmljZVdvcmtl
ckNvbnRleHREYXRhJiBkYXRhLCBTdG9yYWdlQmxvY2tpbmdQb2xpY3kgc3RvcmFnZUJsb2NraW5n
UG9saWN5KQogewogICAgIGF1dG8gcGFnZSA9IG1ha2VVbmlxdWVSZWY8UGFnZT4oV1RGTW92ZShj
b25maWd1cmF0aW9uKSk7CiAKQEAgLTk0LDcgKzk0LDcgQEAgc3RhdGljIEhhc2hTZXQ8U2Vydmlj
ZVdvcmtlclRocmVhZFByb3h5KgogICAgIHJldHVybiBzZXQ7CiB9CiAKLVNlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eTo6U2VydmljZVdvcmtlclRocmVhZFByb3h5KFBhZ2VDb25maWd1cmF0aW9uJiYg
cGFnZUNvbmZpZ3VyYXRpb24sIGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYgZGF0YSwg
U3RyaW5nJiYgdXNlckFnZW50LCBDYWNoZVN0b3JhZ2VQcm92aWRlciYgY2FjaGVTdG9yYWdlUHJv
dmlkZXIsIFNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgc3RvcmFnZUJsb2Nr
aW5nUG9saWN5KQorU2VydmljZVdvcmtlclRocmVhZFByb3h5OjpTZXJ2aWNlV29ya2VyVGhyZWFk
UHJveHkoUGFnZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29uZmlndXJhdGlvbiwgY29uc3QgU2Vydmlj
ZVdvcmtlckNvbnRleHREYXRhJiBkYXRhLCBTdHJpbmcmJiB1c2VyQWdlbnQsIENhY2hlU3RvcmFn
ZVByb3ZpZGVyJiBjYWNoZVN0b3JhZ2VQcm92aWRlciwgU3RvcmFnZUJsb2NraW5nUG9saWN5IHN0
b3JhZ2VCbG9ja2luZ1BvbGljeSkKICAgICA6IG1fcGFnZShjcmVhdGVQYWdlRm9yU2VydmljZVdv
cmtlcihXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uKSwgZGF0YSwgc3RvcmFnZUJsb2NraW5nUG9s
aWN5KSkKICAgICAsIG1fZG9jdW1lbnQoKm1fcGFnZS0+bWFpbkZyYW1lKCkuZG9jdW1lbnQoKSkK
ICAgICAsIG1fc2VydmljZVdvcmtlclRocmVhZChTZXJ2aWNlV29ya2VyVGhyZWFkOjpjcmVhdGUo
ZGF0YSwgV1RGTW92ZSh1c2VyQWdlbnQpLCAqdGhpcywgKnRoaXMsIGlkYkNvbm5lY3Rpb25Qcm94
eShtX2RvY3VtZW50KSwgbV9kb2N1bWVudC0+c29ja2V0UHJvdmlkZXIoKSkpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJv
eHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaAkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDExICszMSwxMSBAQAogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiRmV0Y2hJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgotI2lu
Y2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckRlYnVnZ2Fi
bGUuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VySWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNl
cnZpY2VXb3JrZXJJbnNwZWN0b3JQcm94eS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJUaHJl
YWQuaCIKKyNpbmNsdWRlICJTdG9yYWdlQmxvY2tpbmdQb2xpY3kuaCIKICNpbmNsdWRlICJXb3Jr
ZXJEZWJ1Z2dlclByb3h5LmgiCiAjaW5jbHVkZSAiV29ya2VyTG9hZGVyUHJveHkuaCIKICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtODAsNyArODAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBm
aXJlQWN0aXZhdGVFdmVudCgpOwogCiBwcml2YXRlOgotICAgIFdFQkNPUkVfRVhQT1JUIFNlcnZp
Y2VXb3JrZXJUaHJlYWRQcm94eShQYWdlQ29uZmlndXJhdGlvbiYmLCBjb25zdCBTZXJ2aWNlV29y
a2VyQ29udGV4dERhdGEmLCBTdHJpbmcmJiB1c2VyQWdlbnQsIENhY2hlU3RvcmFnZVByb3ZpZGVy
JiwgU2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSk7CisgICAgV0VCQ09SRV9F
WFBPUlQgU2VydmljZVdvcmtlclRocmVhZFByb3h5KFBhZ2VDb25maWd1cmF0aW9uJiYsIGNvbnN0
IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYsIFN0cmluZyYmIHVzZXJBZ2VudCwgQ2FjaGVTdG9y
YWdlUHJvdmlkZXImLCBTdG9yYWdlQmxvY2tpbmdQb2xpY3kpOwogCiAgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIHZvaWQgbmV0d29ya1N0YXRlQ2hhbmdlZChib29sIGlzT25MaW5lKTsKIApJbmRl
eDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjAtMTEtMTUgIFNhbSBXZWluaWcgIDx3
ZWluaWdAYXBwbGUuY29tPgorCisgICAgICAgIFN0YW5kYXJkaXplIGVudW1zIHRoYXQgYXJlIHVz
ZWQgYnkgU2V0dGluZ3MgaW4gcHJlcGVyYXRpb24gZm9yIGF1dG9nZW5lcmF0aW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg5NjAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbV0lQXQorCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oOgorICAgICAgICAoV2ViS2l0Ojp0b0FQSSk6
CisgICAgICAgIChXZWJLaXQ6OnRvRWRpdGFibGVMaW5rQmVoYXZpb3IpOgorICAgICAgICAoV2Vi
S2l0Ojp0b1N0b3JhZ2VCbG9ja2luZ1BvbGljeSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
L1dLUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAoV0tQcmVmZXJlbmNlc1NldEVkaXRhYmxlTGlu
a0JlaGF2aW9yKToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNTZXRTdG9yYWdlQmxvY2tpbmdQb2xp
Y3kpOgorICAgICAgICAoV0tQcmVmZXJlbmNlc0dldFN0b3JhZ2VCbG9ja2luZ1BvbGljeSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tOgorICAgICAgICAo
dG9TdG9yYWdlQmxvY2tpbmdQb2xpY3kpOgorICAgICAgICAodG9BUEkpOgorICAgICAgICAoLVtX
S1ByZWZlcmVuY2VzIF9zdG9yYWdlQmxvY2tpbmdQb2xpY3ldKToKKyAgICAgICAgKC1bV0tQcmVm
ZXJlbmNlcyBfc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5Ol0pOgorICAgICAgICAodG9FZGl0YWJs
ZUxpbmtCZWhhdmlvcik6CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX3NldEVkaXRhYmxlTGlu
a0JlaGF2aW9yOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByZWZlcmVuY2VzOjpjcmVhdGVXaXRoTGVnYWN5RGVmYXVsdHMp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
Ojp1cGRhdGVQcmVmZXJlbmNlc1N0b3JlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZl
cmVuY2VzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGV0ZWN0RGF0YUluQWxsRnJhbWVz
KToKKwogMjAyMC0xMS0xNSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4K
IAogICAgICAgICBJbml0aWFsIGltcGxlbWVudGF0aW9uIG9mIERPTSByZW5kZXJpbmcgdmlhIHRo
ZSBHUFUgcHJvY2VzcwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJlZmVyZW5j
ZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByZWZlcmVu
Y2VzLmNwcAkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJlZmVyZW5jZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Myw3ICs1Myw3IEBAIFJlZjxXZWJQ
cmVmZXJlbmNlcz4gV2ViUHJlZmVyZW5jZXM6OmNyZWEKICAgICBwcmVmZXJlbmNlcy0+cmVnaXN0
ZXJEZWZhdWx0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpqYXZhRW5hYmxlZEtl
eSgpLCB0cnVlKTsKICAgICBwcmVmZXJlbmNlcy0+cmVnaXN0ZXJEZWZhdWx0Qm9vbFZhbHVlRm9y
S2V5KFdlYlByZWZlcmVuY2VzS2V5OjpqYXZhRW5hYmxlZEZvckxvY2FsRmlsZXNLZXkoKSwgdHJ1
ZSk7CiAgICAgcHJlZmVyZW5jZXMtPnJlZ2lzdGVyRGVmYXVsdEJvb2xWYWx1ZUZvcktleShXZWJQ
cmVmZXJlbmNlc0tleTo6cGx1Z2luc0VuYWJsZWRLZXkoKSwgdHJ1ZSk7Ci0gICAgcHJlZmVyZW5j
ZXMtPnJlZ2lzdGVyRGVmYXVsdFVJbnQzMlZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpz
dG9yYWdlQmxvY2tpbmdQb2xpY3lLZXkoKSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OkFsbG93
QWxsU3RvcmFnZSk7CisgICAgcHJlZmVyZW5jZXMtPnJlZ2lzdGVyRGVmYXVsdFVJbnQzMlZhbHVl
Rm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpzdG9yYWdlQmxvY2tpbmdQb2xpY3lLZXkoKSwgc3Rh
dGljX2Nhc3Q8dWludDMyX3Q+KFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QWxsb3dB
bGwpKTsKICAgICByZXR1cm4gcHJlZmVyZW5jZXM7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMjUy
LDE1ICsyNTIsMTUgQEAgaW5saW5lIFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uIHRvQVBJKAog
aW5saW5lIFdLRWRpdGFibGVMaW5rQmVoYXZpb3IgdG9BUEkoV2ViQ29yZTo6RWRpdGFibGVMaW5r
QmVoYXZpb3IgYmVoYXZpb3IpCiB7CiAgICAgc3dpdGNoIChiZWhhdmlvcikgewotICAgIGNhc2Ug
V2ViQ29yZTo6RWRpdGFibGVMaW5rRGVmYXVsdEJlaGF2aW9yOgorICAgIGNhc2UgV2ViQ29yZTo6
RWRpdGFibGVMaW5rQmVoYXZpb3I6OkRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBrV0tFZGl0YWJs
ZUxpbmtCZWhhdmlvckRlZmF1bHQ7Ci0gICAgY2FzZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtBbHdh
eXNMaXZlOgorICAgIGNhc2UgV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6OkFsd2F5c0xp
dmU6CiAgICAgICAgIHJldHVybiBrV0tFZGl0YWJsZUxpbmtCZWhhdmlvckFsd2F5c0xpdmU7Ci0g
ICAgY2FzZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtPbmx5TGl2ZVdpdGhTaGlmdEtleToKKyAgICBj
YXNlIFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpPbmx5TGl2ZVdpdGhTaGlmdEtleToK
ICAgICAgICAgcmV0dXJuIGtXS0VkaXRhYmxlTGlua0JlaGF2aW9yT25seUxpdmVXaXRoU2hpZnRL
ZXk7Ci0gICAgY2FzZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtMaXZlV2hlbk5vdEZvY3VzZWQ6Cisg
ICAgY2FzZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvcjo6TGl2ZVdoZW5Ob3RGb2N1c2Vk
OgogICAgICAgICByZXR1cm4ga1dLRWRpdGFibGVMaW5rQmVoYXZpb3JMaXZlV2hlbk5vdEZvY3Vz
ZWQ7Ci0gICAgY2FzZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtOZXZlckxpdmU6CisgICAgY2FzZSBX
ZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvcjo6TmV2ZXJMaXZlOgogICAgICAgICByZXR1cm4g
a1dLRWRpdGFibGVMaW5rQmVoYXZpb3JOZXZlckxpdmU7CiAgICAgfQogICAgIApAQCAtMjcyLDE5
ICsyNzIsMTkgQEAgaW5saW5lIFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yIHRvRQogewog
ICAgIHN3aXRjaCAod2tCZWhhdmlvcikgewogICAgIGNhc2Uga1dLRWRpdGFibGVMaW5rQmVoYXZp
b3JEZWZhdWx0OgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5rRGVmYXVsdEJl
aGF2aW9yOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6OkRl
ZmF1bHQ7CiAgICAgY2FzZSBrV0tFZGl0YWJsZUxpbmtCZWhhdmlvckFsd2F5c0xpdmU6Ci0gICAg
ICAgIHJldHVybiBXZWJDb3JlOjpFZGl0YWJsZUxpbmtBbHdheXNMaXZlOworICAgICAgICByZXR1
cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6OkFsd2F5c0xpdmU7CiAgICAgY2FzZSBr
V0tFZGl0YWJsZUxpbmtCZWhhdmlvck9ubHlMaXZlV2l0aFNoaWZ0S2V5OgotICAgICAgICByZXR1
cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5rT25seUxpdmVXaXRoU2hpZnRLZXk7CisgICAgICAgIHJl
dHVybiBXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvcjo6T25seUxpdmVXaXRoU2hpZnRLZXk7
CiAgICAgY2FzZSBrV0tFZGl0YWJsZUxpbmtCZWhhdmlvckxpdmVXaGVuTm90Rm9jdXNlZDoKLSAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRhYmxlTGlua0xpdmVXaGVuTm90Rm9jdXNlZDsKKyAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpMaXZlV2hlbk5vdEZv
Y3VzZWQ7CiAgICAgY2FzZSBrV0tFZGl0YWJsZUxpbmtCZWhhdmlvck5ldmVyTGl2ZToKLSAgICAg
ICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRhYmxlTGlua05ldmVyTGl2ZTsKKyAgICAgICAgcmV0dXJu
IFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpOZXZlckxpdmU7CiAgICAgfQogICAgIAog
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBXZWJDb3JlOjpFZGl0YWJsZUxp
bmtOZXZlckxpdmU7CisgICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpO
ZXZlckxpdmU7CiB9CiAgICAgCiBpbmxpbmUgV0tQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlIHRv
QVBJKFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUgdHlwZSkKQEAgLTM4NCwyOSAr
Mzg0LDI5IEBAIGlubGluZSBXS0hUVFBDb29raWVBY2NlcHRQb2xpY3kgdG9BUEkoV2UKICAgICBy
ZXR1cm4ga1dLSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5czsKIH0KIAotaW5saW5lIFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgdG9TdG9yYWdlQmxvY2tp
bmdQb2xpY3koV0tTdG9yYWdlQmxvY2tpbmdQb2xpY3kgcG9saWN5KQoraW5saW5lIFdlYkNvcmU6
OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSB0b1N0b3JhZ2VCbG9ja2luZ1BvbGljeShXS1N0b3JhZ2VC
bG9ja2luZ1BvbGljeSBwb2xpY3kpCiB7CiAgICAgc3dpdGNoIChwb2xpY3kpIHsKICAgICBjYXNl
IGtXS0FsbG93QWxsU3RvcmFnZToKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luOjpBbGxvd0FsbFN0b3JhZ2U7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpTdG9yYWdlQmxv
Y2tpbmdQb2xpY3k6OkFsbG93QWxsOwogICAgIGNhc2Uga1dLQmxvY2tUaGlyZFBhcnR5U3RvcmFn
ZToKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpCbG9ja1RoaXJkUGFy
dHlTdG9yYWdlOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5
OjpCbG9ja1RoaXJkUGFydHk7CiAgICAgY2FzZSBrV0tCbG9ja0FsbFN0b3JhZ2U6Ci0gICAgICAg
IHJldHVybiBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6QmxvY2tBbGxTdG9yYWdlOworICAgICAg
ICByZXR1cm4gV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5OjpCbG9ja0FsbDsKICAgICB9
CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW46OkFsbG93QWxsU3RvcmFnZTsKKyAgICByZXR1cm4gV2ViQ29yZTo6U3RvcmFnZUJs
b2NraW5nUG9saWN5OjpBbGxvd0FsbDsKIH0KIAotaW5saW5lIFdLU3RvcmFnZUJsb2NraW5nUG9s
aWN5IHRvQVBJKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kg
cG9saWN5KQoraW5saW5lIFdLU3RvcmFnZUJsb2NraW5nUG9saWN5IHRvQVBJKFdlYkNvcmU6OlN0
b3JhZ2VCbG9ja2luZ1BvbGljeSBwb2xpY3kpCiB7CiAgICAgc3dpdGNoIChwb2xpY3kpIHsKLSAg
ICBjYXNlIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpBbGxvd0FsbFN0b3JhZ2U6CisgICAgY2Fz
ZSBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkFsbG93QWxsOgogICAgICAgICByZXR1
cm4ga1dLQWxsb3dBbGxTdG9yYWdlOwotICAgIGNhc2UgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46
OkJsb2NrVGhpcmRQYXJ0eVN0b3JhZ2U6CisgICAgY2FzZSBXZWJDb3JlOjpTdG9yYWdlQmxvY2tp
bmdQb2xpY3k6OkJsb2NrVGhpcmRQYXJ0eToKICAgICAgICAgcmV0dXJuIGtXS0Jsb2NrVGhpcmRQ
YXJ0eVN0b3JhZ2U7Ci0gICAgY2FzZSBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6QmxvY2tBbGxT
dG9yYWdlOgorICAgIGNhc2UgV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5OjpCbG9ja0Fs
bDoKICAgICAgICAgcmV0dXJuIGtXS0Jsb2NrQWxsU3RvcmFnZTsKICAgICB9CiAKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCShyZXZp
c2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVu
Y2VzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzU4LDcgKzM1OCw3IEBAIGJvb2wgV0tQcmVmZXJl
bmNlc0dldENvb2tpZUVuYWJsZWQoV0tQcmUKIAogdm9pZCBXS1ByZWZlcmVuY2VzU2V0RWRpdGFi
bGVMaW5rQmVoYXZpb3IoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgV0tFZGl0YWJs
ZUxpbmtCZWhhdmlvciB3a0JlaGF2aW9yKQogewotICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZikt
PnNldEVkaXRhYmxlTGlua0JlaGF2aW9yKHRvRWRpdGFibGVMaW5rQmVoYXZpb3Iod2tCZWhhdmlv
cikpOworICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldEVkaXRhYmxlTGlua0JlaGF2aW9y
KHN0YXRpY19jYXN0PHVpbnQzMl90Pih0b0VkaXRhYmxlTGlua0JlaGF2aW9yKHdrQmVoYXZpb3Ip
KSk7CiB9CiAKIFdLRWRpdGFibGVMaW5rQmVoYXZpb3IgV0tQcmVmZXJlbmNlc0dldEVkaXRhYmxl
TGlua0JlaGF2aW9yKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpCkBAIC05OTgsMTIg
Kzk5OCwxMiBAQCBib29sIFdLUHJlZmVyZW5jZXNHZXRSZXF1ZXN0QW5pbWF0aW9uRnJhCiAKIHZv
aWQgV0tQcmVmZXJlbmNlc1NldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShXS1ByZWZlcmVuY2VzUmVm
IHByZWZlcmVuY2VzUmVmLCBXS1N0b3JhZ2VCbG9ja2luZ1BvbGljeSBwb2xpY3kpCiB7Ci0gICAg
dG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KHRvU3RvcmFn
ZUJsb2NraW5nUG9saWN5KHBvbGljeSkpOworICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNl
dFN0b3JhZ2VCbG9ja2luZ1BvbGljeShzdGF0aWNfY2FzdDx1aW50MzJfdD4odG9TdG9yYWdlQmxv
Y2tpbmdQb2xpY3kocG9saWN5KSkpOwogfQogCiBXS1N0b3JhZ2VCbG9ja2luZ1BvbGljeSBXS1By
ZWZlcmVuY2VzR2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVy
ZW5jZXNSZWYpCiB7Ci0gICAgcmV0dXJuIHRvQVBJKHN0YXRpY19jYXN0PFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k+KHRvSW1wbChwcmVmZXJlbmNlc1JlZikt
PnN0b3JhZ2VCbG9ja2luZ1BvbGljeSgpKSk7CisgICAgcmV0dXJuIHRvQVBJKHN0YXRpY19jYXN0
PFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeT4odG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+
c3RvcmFnZUJsb2NraW5nUG9saWN5KCkpKTsKIH0KIAogdm9pZCBXS1ByZWZlcmVuY2VzU2V0RGlh
Z25vc3RpY0xvZ2dpbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJv
b2wgZW5hYmxlZCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
ZWZlcmVuY2VzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1ByZWZlcmVuY2VzLm1tCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQkod29ya2luZyBjb3B5KQpAQCAt
MTc1LDI5ICsxNzUsMjkgQEAgLSAodm9pZClfc2V0VGVsZXBob25lTnVtYmVyRGV0ZWN0aW9uSXNF
bgogICAgIF9wcmVmZXJlbmNlcy0+c2V0VGVsZXBob25lTnVtYmVyUGFyc2luZ0VuYWJsZWQodGVs
ZXBob25lTnVtYmVyRGV0ZWN0aW9uSXNFbmFibGVkKTsKIH0KIAotc3RhdGljIFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgdG9TdG9yYWdlQmxvY2tpbmdQb2xp
Y3koX1dLU3RvcmFnZUJsb2NraW5nUG9saWN5IHBvbGljeSkKK3N0YXRpYyBXZWJDb3JlOjpTdG9y
YWdlQmxvY2tpbmdQb2xpY3kgdG9TdG9yYWdlQmxvY2tpbmdQb2xpY3koX1dLU3RvcmFnZUJsb2Nr
aW5nUG9saWN5IHBvbGljeSkKIHsKICAgICBzd2l0Y2ggKHBvbGljeSkgewogICAgIGNhc2UgX1dL
U3RvcmFnZUJsb2NraW5nUG9saWN5QWxsb3dBbGw6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbjo6QWxsb3dBbGxTdG9yYWdlOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6
U3RvcmFnZUJsb2NraW5nUG9saWN5OjpBbGxvd0FsbDsKICAgICBjYXNlIF9XS1N0b3JhZ2VCbG9j
a2luZ1BvbGljeUJsb2NrVGhpcmRQYXJ0eToKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luOjpCbG9ja1RoaXJkUGFydHlTdG9yYWdlOworICAgICAgICByZXR1cm4gV2ViQ29y
ZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5OjpCbG9ja1RoaXJkUGFydHk7CiAgICAgY2FzZSBfV0tT
dG9yYWdlQmxvY2tpbmdQb2xpY3lCbG9ja0FsbDoKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luOjpCbG9ja0FsbFN0b3JhZ2U7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpT
dG9yYWdlQmxvY2tpbmdQb2xpY3k6OkJsb2NrQWxsOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgIHJldHVybiBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6QWxsb3dBbGxT
dG9yYWdlOworICAgIHJldHVybiBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkFsbG93
QWxsOwogfQogCi1zdGF0aWMgX1dLU3RvcmFnZUJsb2NraW5nUG9saWN5IHRvQVBJKFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgcG9saWN5KQorc3RhdGljIF9X
S1N0b3JhZ2VCbG9ja2luZ1BvbGljeSB0b0FQSShXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xp
Y3kgcG9saWN5KQogewogICAgIHN3aXRjaCAocG9saWN5KSB7Ci0gICAgY2FzZSBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbjo6QWxsb3dBbGxTdG9yYWdlOgorICAgIGNhc2UgV2ViQ29yZTo6U3RvcmFn
ZUJsb2NraW5nUG9saWN5OjpBbGxvd0FsbDoKICAgICAgICAgcmV0dXJuIF9XS1N0b3JhZ2VCbG9j
a2luZ1BvbGljeUFsbG93QWxsOwotICAgIGNhc2UgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OkJs
b2NrVGhpcmRQYXJ0eVN0b3JhZ2U6CisgICAgY2FzZSBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQ
b2xpY3k6OkJsb2NrVGhpcmRQYXJ0eToKICAgICAgICAgcmV0dXJuIF9XS1N0b3JhZ2VCbG9ja2lu
Z1BvbGljeUJsb2NrVGhpcmRQYXJ0eTsKLSAgICBjYXNlIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
OjpCbG9ja0FsbFN0b3JhZ2U6CisgICAgY2FzZSBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xp
Y3k6OkJsb2NrQWxsOgogICAgICAgICByZXR1cm4gX1dLU3RvcmFnZUJsb2NraW5nUG9saWN5Qmxv
Y2tBbGw7CiAgICAgfQogCkBAIC0yMDcsMTIgKzIwNywxMiBAQCBzdGF0aWMgX1dLU3RvcmFnZUJs
b2NraW5nUG9saWN5IHRvQVBJKFdlCiAKIC0gKF9XS1N0b3JhZ2VCbG9ja2luZ1BvbGljeSlfc3Rv
cmFnZUJsb2NraW5nUG9saWN5CiB7Ci0gICAgcmV0dXJuIHRvQVBJKHN0YXRpY19jYXN0PFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k+KF9wcmVmZXJlbmNlcy0+
c3RvcmFnZUJsb2NraW5nUG9saWN5KCkpKTsKKyAgICByZXR1cm4gdG9BUEkoc3RhdGljX2Nhc3Q8
V2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5PihfcHJlZmVyZW5jZXMtPnN0b3JhZ2VCbG9j
a2luZ1BvbGljeSgpKSk7CiB9CiAKIC0gKHZvaWQpX3NldFN0b3JhZ2VCbG9ja2luZ1BvbGljeToo
X1dLU3RvcmFnZUJsb2NraW5nUG9saWN5KXBvbGljeQogewotICAgIF9wcmVmZXJlbmNlcy0+c2V0
U3RvcmFnZUJsb2NraW5nUG9saWN5KHRvU3RvcmFnZUJsb2NraW5nUG9saWN5KHBvbGljeSkpOwor
ICAgIF9wcmVmZXJlbmNlcy0+c2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KHN0YXRpY19jYXN0PHVp
bnQzMl90Pih0b1N0b3JhZ2VCbG9ja2luZ1BvbGljeShwb2xpY3kpKSk7CiB9CiAKIC0gKEJPT0wp
X29mZmxpbmVBcHBsaWNhdGlvbkNhY2hlSXNFbmFibGVkCkBAIC03MzMsMTUgKzczMywxNSBAQCAt
ICh2b2lkKV9zZXRTaG91bGRBbGxvd0Rlc2lnblN5c3RlbVVJRm9uCiBzdGF0aWMgX1dLRWRpdGFi
bGVMaW5rQmVoYXZpb3IgdG9BUEkoV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3IgYmVoYXZp
b3IpCiB7CiAgICAgc3dpdGNoIChiZWhhdmlvcikgewotICAgIGNhc2UgV2ViQ29yZTo6RWRpdGFi
bGVMaW5rRGVmYXVsdEJlaGF2aW9yOgorICAgIGNhc2UgV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVo
YXZpb3I6OkRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBfV0tFZGl0YWJsZUxpbmtCZWhhdmlvckRl
ZmF1bHQ7Ci0gICAgY2FzZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtBbHdheXNMaXZlOgorICAgIGNh
c2UgV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6OkFsd2F5c0xpdmU6CiAgICAgICAgIHJl
dHVybiBfV0tFZGl0YWJsZUxpbmtCZWhhdmlvckFsd2F5c0xpdmU7Ci0gICAgY2FzZSBXZWJDb3Jl
OjpFZGl0YWJsZUxpbmtPbmx5TGl2ZVdpdGhTaGlmdEtleToKKyAgICBjYXNlIFdlYkNvcmU6OkVk
aXRhYmxlTGlua0JlaGF2aW9yOjpPbmx5TGl2ZVdpdGhTaGlmdEtleToKICAgICAgICAgcmV0dXJu
IF9XS0VkaXRhYmxlTGlua0JlaGF2aW9yT25seUxpdmVXaXRoU2hpZnRLZXk7Ci0gICAgY2FzZSBX
ZWJDb3JlOjpFZGl0YWJsZUxpbmtMaXZlV2hlbk5vdEZvY3VzZWQ6CisgICAgY2FzZSBXZWJDb3Jl
OjpFZGl0YWJsZUxpbmtCZWhhdmlvcjo6TGl2ZVdoZW5Ob3RGb2N1c2VkOgogICAgICAgICByZXR1
cm4gX1dLRWRpdGFibGVMaW5rQmVoYXZpb3JMaXZlV2hlbk5vdEZvY3VzZWQ7Ci0gICAgY2FzZSBX
ZWJDb3JlOjpFZGl0YWJsZUxpbmtOZXZlckxpdmU6CisgICAgY2FzZSBXZWJDb3JlOjpFZGl0YWJs
ZUxpbmtCZWhhdmlvcjo6TmV2ZXJMaXZlOgogICAgICAgICByZXR1cm4gX1dLRWRpdGFibGVMaW5r
QmVoYXZpb3JOZXZlckxpdmU7CiAgICAgfQogICAgIApAQCAtNzUzLDE5ICs3NTMsMTkgQEAgc3Rh
dGljIFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yIHRvRQogewogICAgIHN3aXRjaCAod2tC
ZWhhdmlvcikgewogICAgIGNhc2UgX1dLRWRpdGFibGVMaW5rQmVoYXZpb3JEZWZhdWx0OgotICAg
ICAgICByZXR1cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5rRGVmYXVsdEJlaGF2aW9yOworICAgICAg
ICByZXR1cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6OkRlZmF1bHQ7CiAgICAgY2Fz
ZSBfV0tFZGl0YWJsZUxpbmtCZWhhdmlvckFsd2F5c0xpdmU6Ci0gICAgICAgIHJldHVybiBXZWJD
b3JlOjpFZGl0YWJsZUxpbmtBbHdheXNMaXZlOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6RWRp
dGFibGVMaW5rQmVoYXZpb3I6OkFsd2F5c0xpdmU7CiAgICAgY2FzZSBfV0tFZGl0YWJsZUxpbmtC
ZWhhdmlvck9ubHlMaXZlV2l0aFNoaWZ0S2V5OgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6RWRp
dGFibGVMaW5rT25seUxpdmVXaXRoU2hpZnRLZXk7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpF
ZGl0YWJsZUxpbmtCZWhhdmlvcjo6T25seUxpdmVXaXRoU2hpZnRLZXk7CiAgICAgY2FzZSBfV0tF
ZGl0YWJsZUxpbmtCZWhhdmlvckxpdmVXaGVuTm90Rm9jdXNlZDoKLSAgICAgICAgcmV0dXJuIFdl
YkNvcmU6OkVkaXRhYmxlTGlua0xpdmVXaGVuTm90Rm9jdXNlZDsKKyAgICAgICAgcmV0dXJuIFdl
YkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpMaXZlV2hlbk5vdEZvY3VzZWQ7CiAgICAgY2Fz
ZSBfV0tFZGl0YWJsZUxpbmtCZWhhdmlvck5ldmVyTGl2ZToKLSAgICAgICAgcmV0dXJuIFdlYkNv
cmU6OkVkaXRhYmxlTGlua05ldmVyTGl2ZTsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRh
YmxlTGlua0JlaGF2aW9yOjpOZXZlckxpdmU7CiAgICAgfQogICAgIAogICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgIHJldHVybiBXZWJDb3JlOjpFZGl0YWJsZUxpbmtOZXZlckxpdmU7Cisg
ICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpOZXZlckxpdmU7CiB9CiAK
IC0gKF9XS0VkaXRhYmxlTGlua0JlaGF2aW9yKV9lZGl0YWJsZUxpbmtCZWhhdmlvcgpAQCAtNzc1
LDcgKzc3NSw3IEBAIC0gKF9XS0VkaXRhYmxlTGlua0JlaGF2aW9yKV9lZGl0YWJsZUxpbmsKIAog
LSAodm9pZClfc2V0RWRpdGFibGVMaW5rQmVoYXZpb3I6KF9XS0VkaXRhYmxlTGlua0JlaGF2aW9y
KWVkaXRhYmxlTGlua0JlaGF2aW9yCiB7Ci0gICAgX3ByZWZlcmVuY2VzLT5zZXRFZGl0YWJsZUxp
bmtCZWhhdmlvcih0b0VkaXRhYmxlTGlua0JlaGF2aW9yKGVkaXRhYmxlTGlua0JlaGF2aW9yKSk7
CisgICAgX3ByZWZlcmVuY2VzLT5zZXRFZGl0YWJsZUxpbmtCZWhhdmlvcihzdGF0aWNfY2FzdDx1
aW50MzJfdD4odG9FZGl0YWJsZUxpbmtCZWhhdmlvcihlZGl0YWJsZUxpbmtCZWhhdmlvcikpKTsK
IH0KIAogLSAodm9pZClfc2V0QVZGb3VuZGF0aW9uRW5hYmxlZDooQk9PTCllbmFibGVkCkluZGV4
OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCShyZXZpc2lvbiAyNjk4MzApCisr
KyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMiw3ICsxMjIsNyBAQCB2b2lkIFdlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjp1cGRhCiB7CiAgICAgV2ViUGFnZTo6dXBkYXRlUHJl
ZmVyZW5jZXNHZW5lcmF0ZWQoc3RvcmUpOwogCi0gICAgbV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kg
PSBzdGF0aWNfY2FzdDxTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5PihzdG9y
ZS5nZXRVSW50MzJWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6c3RvcmFnZUJsb2NraW5n
UG9saWN5S2V5KCkpKTsKKyAgICBtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeSA9IHN0YXRpY19jYXN0
PFN0b3JhZ2VCbG9ja2luZ1BvbGljeT4oc3RvcmUuZ2V0VUludDMyVmFsdWVGb3JLZXkoV2ViUHJl
ZmVyZW5jZXNLZXk6OnN0b3JhZ2VCbG9ja2luZ1BvbGljeUtleSgpKSk7CiAgICAgc2V0U2hvdWxk
VXNlU2hvcnRUaW1lb3V0KHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tl
eTo6c2hvdWxkVXNlU2VydmljZVdvcmtlclNob3J0VGltZW91dEtleSgpKSk7CiB9CiAKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaAkocmV2aXNpb24gMjY5ODMwKQorKysgU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24uaAkod29ya2luZyBjb3B5KQpAQCAtMTAyLDcgKzEwMiw3IEBAIHByaXZhdGU6CiAgICAgV2Vi
UGFnZVByb3h5SWRlbnRpZmllciBtX3dlYlBhZ2VQcm94eUlEOwogICAgIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyIG1fcGFnZUlEOwogCi0gICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OlN0b3Jh
Z2VCbG9ja2luZ1BvbGljeSBtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeSB7IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkFsbG93QWxsU3RvcmFnZSB9OworICAg
IFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeSB7
IFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QWxsb3dBbGwgfTsKIAogICAgIEhhc2hT
ZXQ8c3RkOjp1bmlxdWVfcHRyPFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudD4+IG1fbG9h
ZGVyczsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBGaW5kQ2xpZW50QnlJZGVudGlmaWVyQ2FsbGJh
Y2s+IG1fZmluZENsaWVudEJ5SWRlbnRpZmllclJlcXVlc3RzOwpJbmRleDogU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDI2OTgzMCkKKysr
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zNzM1LDcgKzM3MzUsNyBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2Vz
KGNvbnN0IFdlCiAgICAgc2V0dGluZ3Muc2V0VXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeShz
dGF0aWNfY2FzdDxXZWJDb3JlOjpVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5PihzdG9yZS5n
ZXRVSW50MzJWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6dXNlckludGVyZmFjZURpcmVj
dGlvblBvbGljeUtleSgpKSkpOwogICAgIHNldHRpbmdzLnNldFN5c3RlbUxheW91dERpcmVjdGlv
bihzdGF0aWNfY2FzdDxUZXh0RGlyZWN0aW9uPihzdG9yZS5nZXRVSW50MzJWYWx1ZUZvcktleShX
ZWJQcmVmZXJlbmNlc0tleTo6c3lzdGVtTGF5b3V0RGlyZWN0aW9uS2V5KCkpKSk7CiAgICAgc2V0
dGluZ3Muc2V0SmF2YVNjcmlwdFJ1bnRpbWVGbGFncyhzdGF0aWNfY2FzdDxSdW50aW1lRmxhZ3M+
KHN0b3JlLmdldFVJbnQzMlZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpqYXZhU2NyaXB0
UnVudGltZUZsYWdzS2V5KCkpKSk7Ci0gICAgc2V0dGluZ3Muc2V0U3RvcmFnZUJsb2NraW5nUG9s
aWN5KHN0YXRpY19jYXN0PFNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k+KHN0
b3JlLmdldFVJbnQzMlZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpzdG9yYWdlQmxvY2tp
bmdQb2xpY3lLZXkoKSkpKTsKKyAgICBzZXR0aW5ncy5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3ko
c3RhdGljX2Nhc3Q8U3RvcmFnZUJsb2NraW5nUG9saWN5PihzdG9yZS5nZXRVSW50MzJWYWx1ZUZv
cktleShXZWJQcmVmZXJlbmNlc0tleTo6c3RvcmFnZUJsb2NraW5nUG9saWN5S2V5KCkpKSk7CiAg
ICAgc2V0dGluZ3Muc2V0RnJhbWVGbGF0dGVuaW5nKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShX
ZWJQcmVmZXJlbmNlc0tleTo6ZnJhbWVGbGF0dGVuaW5nRW5hYmxlZEtleSgpKSA/IFdlYkNvcmU6
OkZyYW1lRmxhdHRlbmluZzo6RnVsbHlFbmFibGVkIDogV2ViQ29yZTo6RnJhbWVGbGF0dGVuaW5n
OjpEaXNhYmxlZCk7CiAgICAgc2V0dGluZ3Muc2V0RWRpdGFibGVMaW5rQmVoYXZpb3Ioc3RhdGlj
X2Nhc3Q8V2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I+KHN0b3JlLmdldFVJbnQzMlZhbHVl
Rm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjplZGl0YWJsZUxpbmtCZWhhdmlvcktleSgpKSkpOwog
I2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKQEAgLTM4MzYsNyArMzgzNiw3IEBAIHZvaWQgV2Vi
UGFnZTo6cmVtb3ZlRGF0YURldGVjdGVkTGlua3MoQ28KIAogdm9pZCBXZWJQYWdlOjpkZXRlY3RE
YXRhSW5BbGxGcmFtZXModWludDY0X3QgdHlwZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29u
c3QgRGF0YURldGVjdGlvblJlc3VsdCYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGF1
dG8gZGF0YURldGVjdG9yVHlwZXMgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpEYXRhRGV0ZWN0b3JU
eXBlcz4odHlwZXMpOworICAgIGF1dG8gZGF0YURldGVjdG9yVHlwZXMgPSBPcHRpb25TZXQ8RGF0
YURldGVjdG9yVHlwZXM+Ojpmcm9tUmF3KHR5cGVzKTsKICAgICBmb3IgKGF1dG8gZnJhbWUgPSBt
YWtlUmVmUHRyKCZtX3BhZ2UtPm1haW5GcmFtZSgpKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRy
ZWUoKS50cmF2ZXJzZU5leHQoKSkgewogICAgICAgICBhdXRvIGRvY3VtZW50ID0gbWFrZVJlZlB0
cihmcmFtZS0+ZG9jdW1lbnQoKSk7CiAgICAgICAgIGlmICghZG9jdW1lbnQpCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAy
MC0xMS0xNSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAgU3RhbmRh
cmRpemUgZW51bXMgdGhhdCBhcmUgdXNlZCBieSBTZXR0aW5ncyBpbiBwcmVwZXJhdGlvbiBmb3Ig
YXV0b2dlbmVyYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxODk2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFtXSVBdCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lLm1tOgorICAgICAgICAq
IFdlYlZpZXcvV2ViVmlldy5tbToKKwogMjAyMC0xMS0xMyAgU2FtIFdlaW5pZyAgPHdlaW5pZ0Bh
cHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBzb21lIG1vcmUgV2ViS2l0IGFuZCBXZWJLaXRMZWdh
Y3kgcHJlZmVyZW5jZXMgYm91bmQgdG8gU2V0dGluZ3MgdG8gV2ViUHJlZmVyZW5jZXMueWFtbApJ
bmRleDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCShyZXZp
c2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1l
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yMDcsMTggKzIwNywxOCBAQCBXZWJDb3JlOjpFZGl0YWJs
ZUxpbmtCZWhhdmlvciBjb3JlKFdlYktpCiAgICAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAg
ICAgc3dpdGNoIChlZGl0YWJsZUxpbmtCZWhhdmlvcikgewogICAgICAgICBjYXNlIFdlYktpdEVk
aXRhYmxlTGlua0RlZmF1bHRCZWhhdmlvcjoKLSAgICAgICAgICAgIHJldHVybiBFZGl0YWJsZUxp
bmtEZWZhdWx0QmVoYXZpb3I7CisgICAgICAgICAgICByZXR1cm4gRWRpdGFibGVMaW5rQmVoYXZp
b3I6OkRlZmF1bHQ7CiAgICAgICAgIGNhc2UgV2ViS2l0RWRpdGFibGVMaW5rQWx3YXlzTGl2ZToK
LSAgICAgICAgICAgIHJldHVybiBFZGl0YWJsZUxpbmtBbHdheXNMaXZlOworICAgICAgICAgICAg
cmV0dXJuIEVkaXRhYmxlTGlua0JlaGF2aW9yOjpBbHdheXNMaXZlOwogICAgICAgICBjYXNlIFdl
YktpdEVkaXRhYmxlTGlua09ubHlMaXZlV2l0aFNoaWZ0S2V5OgotICAgICAgICAgICAgcmV0dXJu
IEVkaXRhYmxlTGlua09ubHlMaXZlV2l0aFNoaWZ0S2V5OworICAgICAgICAgICAgcmV0dXJuIEVk
aXRhYmxlTGlua0JlaGF2aW9yOjpPbmx5TGl2ZVdpdGhTaGlmdEtleTsKICAgICAgICAgY2FzZSBX
ZWJLaXRFZGl0YWJsZUxpbmtMaXZlV2hlbk5vdEZvY3VzZWQ6Ci0gICAgICAgICAgICByZXR1cm4g
RWRpdGFibGVMaW5rTGl2ZVdoZW5Ob3RGb2N1c2VkOworICAgICAgICAgICAgcmV0dXJuIEVkaXRh
YmxlTGlua0JlaGF2aW9yOjpMaXZlV2hlbk5vdEZvY3VzZWQ7CiAgICAgICAgIGNhc2UgV2ViS2l0
RWRpdGFibGVMaW5rTmV2ZXJMaXZlOgotICAgICAgICAgICAgcmV0dXJuIEVkaXRhYmxlTGlua05l
dmVyTGl2ZTsKKyAgICAgICAgICAgIHJldHVybiBFZGl0YWJsZUxpbmtCZWhhdmlvcjo6TmV2ZXJM
aXZlOwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gRWRpdGFi
bGVMaW5rRGVmYXVsdEJlaGF2aW9yOworICAgIHJldHVybiBFZGl0YWJsZUxpbmtCZWhhdmlvcjo6
RGVmYXVsdDsKIH0KIAogV2ViQ29yZTo6VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhh
dmlvciBjb3JlKFdlYlRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IgYmVoYXZp
b3IpCkBAIC0yMjYsMTQgKzIyNiwxNCBAQCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uU3VibWVudUlu
Y2x1c2lvbkJlCiAgICAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAgICAgc3dpdGNoIChiZWhh
dmlvcikgewogICAgICAgICBjYXNlIFdlYlRleHREaXJlY3Rpb25TdWJtZW51TmV2ZXJJbmNsdWRl
ZDoKLSAgICAgICAgICAgIHJldHVybiBUZXh0RGlyZWN0aW9uU3VibWVudU5ldmVySW5jbHVkZWQ7
CisgICAgICAgICAgICByZXR1cm4gVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlv
cjo6TmV2ZXJJbmNsdWRlZDsKICAgICAgICAgY2FzZSBXZWJUZXh0RGlyZWN0aW9uU3VibWVudUF1
dG9tYXRpY2FsbHlJbmNsdWRlZDoKLSAgICAgICAgICAgIHJldHVybiBUZXh0RGlyZWN0aW9uU3Vi
bWVudUF1dG9tYXRpY2FsbHlJbmNsdWRlZDsKKyAgICAgICAgICAgIHJldHVybiBUZXh0RGlyZWN0
aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yOjpBdXRvbWF0aWNhbGx5SW5jbHVkZWQ7CiAgICAg
ICAgIGNhc2UgV2ViVGV4dERpcmVjdGlvblN1Ym1lbnVBbHdheXNJbmNsdWRlZDoKLSAgICAgICAg
ICAgIHJldHVybiBUZXh0RGlyZWN0aW9uU3VibWVudUFsd2F5c0luY2x1ZGVkOworICAgICAgICAg
ICAgcmV0dXJuIFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3I6OkFsd2F5c0lu
Y2x1ZGVkOwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gVGV4
dERpcmVjdGlvblN1Ym1lbnVOZXZlckluY2x1ZGVkOworICAgIHJldHVybiBUZXh0RGlyZWN0aW9u
U3VibWVudUluY2x1c2lvbkJlaGF2aW9yOjpOZXZlckluY2x1ZGVkOwogfQogCiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0JKHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtNzU1LDE5ICs3NTUsMTkgQEAgc3Rh
dGljIFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGUga2l0KFdlYkNvcgogICAgIHJldHVybiBXZWJQYWdl
VmlzaWJpbGl0eVN0YXRlVmlzaWJsZTsKIH0KIAotc3RhdGljIFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgY29yZShXZWJTdG9yYWdlQmxvY2tpbmdQb2xpY3kg
c3RvcmFnZUJsb2NraW5nUG9saWN5KQorc3RhdGljIFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1Bv
bGljeSBjb3JlKFdlYlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBzdG9yYWdlQmxvY2tpbmdQb2xpY3kp
CiB7CiAgICAgc3dpdGNoIChzdG9yYWdlQmxvY2tpbmdQb2xpY3kpIHsKICAgICBjYXNlIFdlYkFs
bG93QWxsU3RvcmFnZToKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpB
bGxvd0FsbFN0b3JhZ2U7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQ
b2xpY3k6OkFsbG93QWxsOwogICAgIGNhc2UgV2ViQmxvY2tUaGlyZFBhcnR5U3RvcmFnZToKLSAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpCbG9ja1RoaXJkUGFydHlTdG9y
YWdlOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5OjpCbG9j
a1RoaXJkUGFydHk7CiAgICAgY2FzZSBXZWJCbG9ja0FsbFN0b3JhZ2U6Ci0gICAgICAgIHJldHVy
biBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6QmxvY2tBbGxTdG9yYWdlOworICAgICAgICByZXR1
cm4gV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5OjpCbG9ja0FsbDsKICAgICBkZWZhdWx0
OgogICAgICAgICAvLyBJZiBhbiBpbnZhbGlkIHZhbHVlIHdhcyBzZXQgKGFzIGNhbiBiZSBkb25l
IHZpYSBOU1VzZXJEZWZhdWx0cyksIGZhbGwgYmFjayB0bwotICAgICAgICAvLyB0aGUgZGVmYXVs
dCB2YWx1ZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OkFsbG93QWxsU3RvcmFnZS4KLSAgICAg
ICAgcmV0dXJuIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpBbGxvd0FsbFN0b3JhZ2U7CisgICAg
ICAgIC8vIHRoZSBkZWZhdWx0IHZhbHVlLCBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6
OkFsbG93QWxsLgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5
OjpBbGxvd0FsbDsKICAgICB9CiB9CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2OTgzMCkKKysrIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYxIEBACisyMDIw
LTExLTE1ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBTdGFuZGFy
ZGl6ZSBlbnVtcyB0aGF0IGFyZSB1c2VkIGJ5IFNldHRpbmdzIGluIHByZXBlcmF0aW9uIGZvciBh
dXRvZ2VuZXJhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE4OTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgW1dJUF0KKworICAgICAgICAqIGVkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWxpZ2F0dXJl
LTAwMy5odG1sOgorICAgICAgICAqIGVkaXRpbmcvZGVsZXRpbmcvcGFyYWdyYXBoLWluLXByZXNl
cnZlTmV3bGluZS5odG1sOgorICAgICAgICAqIGVkaXRpbmcvZGVsZXRpbmcvc21hcnQtZWRpdGlu
Zy1kaXNhYmxlZC13aW4uaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2RlbGV0aW5nL3doaXRlc3Bh
Y2UtcHJlLTEuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL3F1ZXJ5LWNvbW1h
bmQtc3RhdGUuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL3F1ZXJ5LXRleHQt
YWxpZ25tZW50Lmh0bWw6CisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9yZW1vdmUtZm9y
bWF0LW11bHRpcGxlLWVsZW1lbnRzLXdpbi5odG1sOgorICAgICAgICAqIGVkaXRpbmcvZXhlY0Nv
bW1hbmQvdG9nZ2xlLWNvbXBvdW5kLXN0eWxlcy5odG1sOgorICAgICAgICAqIGVkaXRpbmcvZXhl
Y0NvbW1hbmQvdG9nZ2xlLWxpbmstd2luLmh0bWw6CisgICAgICAgICogZWRpdGluZy9leGVjQ29t
bWFuZC90b2dnbGUtdW5saW5rLXdpbi5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9u
LzUxOTUxNjYtMS5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uLzUzNTQ0NTUtMS5o
dG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2NsaWNrLWluLW1hcmdpbnMtaW5zaWRl
LWVkaXRhYmxlLWRpdi5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2NsaWNrLWlu
LXBhZGRpbmctd2l0aC1tdWx0aXBsZS1saW5lLWJveGVzLmh0bWw6CisgICAgICAgICogZWRpdGlu
Zy9zZWxlY3Rpb24vY29udGV4dC1tZW51LXRleHQtc2VsZWN0aW9uLWxvb2t1cC5odG1sOgorICAg
ICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2NvbnRleHQtbWVudS10ZXh0LXNlbGVjdGlvbi5odG1s
OgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1hZnRlci1tb3VzZS1zZWxlY3Rp
b24uaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWFm
dGVyLWRvdWJsZS1jbGljay5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2V4dGVu
ZC1zZWxlY3Rpb24tZW5jbG9zaW5nLWJsb2NrLXdpbi5odG1sOgorICAgICAgICAqIGVkaXRpbmcv
c2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0LTEuaHRtbDoKKyAgICAg
ICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC0y
Lmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5
LWNyYXNoLXRlc3QtMy5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnkt
d29yZC12aXN1YWxseS1jcmFzaC10ZXN0LTQuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVj
dGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC01Lmh0bWw6CisgICAgICAgICog
ZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWNyYXNoLXRlc3QtY3NzLWdl
bmVyYXRlZC1jb250ZW50Lmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1i
eS13b3JkLXZpc3VhbGx5LWNyYXNoLXRlc3QtdGV4dGFyZWEuaHRtbDoKKyAgICAgICAgKiBlZGl0
aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktaW5saW5lLWJsb2NrLXBvc2l0aW9u
ZWQtZWxlbWVudC5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29y
ZC12aXN1YWxseS1tdWx0aS1saW5lLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24v
bW92ZS1ieS13b3JkLXZpc3VhbGx5LW11bHRpLXNwYWNlLmh0bWw6CisgICAgICAgICogZWRpdGlu
Zy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LW51bGwtYm94Lmh0bWw6CisgICAgICAg
ICogZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LXNpbmdsZS1zcGFjZS1p
bmxpbmUtZWxlbWVudC5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnkt
d29yZC12aXN1YWxseS1zaW5nbGUtc3BhY2Utb25lLWVsZW1lbnQuaHRtbDoKKyAgICAgICAgKiBl
ZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktdGV4dGFyZWEuaHRtbDoKKyAg
ICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktd3JvbmctbGVm
dC1yaWdodC5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL3Byb2dyYW1tYXRpYy1z
ZWxlY3Rpb24tb24tbWFjLWlzLWRpcmVjdGlvbmxlc3MuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5n
L3NlbGVjdGlvbi9ydGwtbW92ZS1zZWxlY3Rpb24tcmlnaHQtbGVmdC5odG1sOgorICAgICAgICAq
IGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1leHRlbmQtc2hvdWxkLW5vdC1tb3ZlLWFjcm9z
cy1jYXJldC1vbi1tYWMuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9zaGlmdC1j
bGljay5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL3VzZXItc2VsZWN0LWFsbC13
aXRoLXNoaWZ0Lmh0bWw6CisgICAgICAgICogZWRpdGluZy9zcGVsbGluZy9jb3B5LXBhc3RlLWNy
YXNoLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zdHlsZS9pZnJhbWUtb25sb2FkLWNyYXNoLXdp
bi5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc3R5bGUvbWFrZS10ZXh0LXdyaXRpbmctZGlyZWN0
aW9uLWlubGluZS13aW4uaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3N0eWxlL3B1c2gtZG93bi1m
b250LXN0eWxlcy13aW4uaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3N0eWxlL3B1c2gtZG93bi1p
bXBsaWNpdC1zdHlsZXMtYXJvdW5kLWxpc3Qtd2luLmh0bWw6CisgICAgICAgICogZWRpdGluZy9z
dHlsZS90b2dnbGUtc3R5bGUtYm9sZC1pdGFsaWMtbWl4ZWQtZWRpdGFiaWxpdHkuaHRtbDoKKyAg
ICAgICAgKiBlZGl0aW5nL3N0eWxlL3RvZ2dsZS1zdHlsZS1ib2xkLWl0YWxpYy5odG1sOgorICAg
ICAgICAqIGZhc3QvZXZlbnRzL2JhY2tzcGFjZS1uYXZpZ2F0ZXMtYmFjay5odG1sOgorICAgICAg
ICAqIGZhc3QvZm9ybXMvc2VsZWN0aW9uLWRpcmVjdGlvbi5odG1sOgorCiAyMDIwLTExLTE1ICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBXZWJSVEMg
U0ZyYW1lIHRyYW5zZm9ybQpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxl
dGUtbGlnYXR1cmUtMDAzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9k
ZWxldGluZy9kZWxldGUtbGlnYXR1cmUtMDAzLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExh
eW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWxpZ2F0dXJlLTAwMy5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCiAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAg
ICAgICBydW5UZXN0T24oIm1hYyIpOwotICAgICAgICAgICAgcnVuVGVzdE9uKCJ3aW4iKTsKKyAg
ICAgICAgICAgIHJ1blRlc3RPbigid2luZG93cyIpOwogICAgICAgICAgICAgcnVuVGVzdE9uKCJ1
bml4Iik7CiAgICAgICAgIH0KICAgICAgICAgPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9l
ZGl0aW5nL2RlbGV0aW5nL3BhcmFncmFwaC1pbi1wcmVzZXJ2ZU5ld2xpbmUuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3BhcmFncmFwaC1pbi1wcmVzZXJ2
ZU5ld2xpbmUuaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9k
ZWxldGluZy9wYXJhZ3JhcGgtaW4tcHJlc2VydmVOZXdsaW5lLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTI5LDcgKzI5LDcgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogTWFya3VwLmRlc2NyaXB0
aW9uKGRlc2NyaXB0aW9uLnRleHRDb250ZW50KTsKIE1hcmt1cC5kdW1wKCJ0ZXN0IiwgImluaXRp
YWwgc3RhdGUiKTsKIHJ1blRlc3RzT24oIm1hYyIpOwotcnVuVGVzdHNPbigid2luIik7CitydW5U
ZXN0c09uKCJ3aW5kb3dzIik7CiBydW5UZXN0c09uKCJ1bml4Iik7CiA8L3NjcmlwdD4KIDwvYm9k
eT4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvc21hcnQtZWRpdGluZy1kaXNh
YmxlZC13aW4uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5n
L3NtYXJ0LWVkaXRpbmctZGlzYWJsZWQtd2luLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExh
eW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvc21hcnQtZWRpdGluZy1kaXNhYmxlZC13aW4uaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtOCw3ICs4LDcgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CiAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQodHJ1ZSk7CiB9CiBpZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0
RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiAKIGZ1bmN0aW9uIGVkaXRpbmdUZXN0KCkgewog
ICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2Iik7CkluZGV4OiBMYXlv
dXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3doaXRlc3BhY2UtcHJlLTEuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3doaXRlc3BhY2UtcHJlLTEuaHRtbAko
cmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy93aGl0ZXNw
YWNlLXByZS0xLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDYgQEAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQogTWFya3VwLmRlc2NyaXB0aW9uKGRlc2NyaXB0aW9uLnRleHRDb250ZW50
KTsKIE1hcmt1cC5kdW1wKCJ0ZXN0IiwgImluaXRpYWwgc3RhdGUiKTsKIHJ1blRlc3RzT24oIm1h
YyIpOwotcnVuVGVzdHNPbigid2luIik7CitydW5UZXN0c09uKCJ3aW5kb3dzIik7CiBydW5UZXN0
c09uKCJ1bml4Iik7CiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0Nv
bW1hbmQvcXVlcnktY29tbWFuZC1zdGF0ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2VkaXRpbmcvZXhlY0NvbW1hbmQvcXVlcnktY29tbWFuZC1zdGF0ZS5odG1sCShyZXZpc2lvbiAy
Njk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3F1ZXJ5LWNvbW1hbmQt
c3RhdGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTE3LDcgKzExNyw3IEBAIGZ1bmN0aW9uIHJ1
blRlc3RzKGVkaXRpbmdCZWhhdmlvcikgewogICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3Ry
aWtlVGhyb3VnaCIsICdoZWxsbyA8cz53b3JsZCBXZWJLaXQ8L3M+Jywgc2VsZWN0Rmlyc3RUd29X
b3JkcywgeydtYWMnOiBmYWxzZSwgJ3dpbic6IHRydWV9W2VkaXRpbmdCZWhhdmlvcl0pOwogfQog
Ci1ydW5UZXN0cygnd2luJyk7CitydW5UZXN0cygnd2luZG93cycpOwogZGVidWcoJycpCiBydW5U
ZXN0cygnbWFjJyk7CiAKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvcXVl
cnktdGV4dC1hbGlnbm1lbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5n
L2V4ZWNDb21tYW5kL3F1ZXJ5LXRleHQtYWxpZ25tZW50Lmh0bWwJKHJldmlzaW9uIDI2OTgzMCkK
KysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvcXVlcnktdGV4dC1hbGlnbm1lbnQu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTEwLDcgKzExMCw3IEBAIGZ1bmN0aW9uIHJ1blJhbmdl
VGVzdHMoZWRpdGluZ0JlaGF2aW9yKQogfQogCiBkZWJ1ZygnJyk7Ci1ydW5SYW5nZVRlc3RzKCd3
aW4nKTsKK3J1blJhbmdlVGVzdHMoJ3dpbmRvd3MnKTsKIGRlYnVnKCcnKTsKIHJ1blJhbmdlVGVz
dHMoJ21hYycpOwogCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3JlbW92
ZS1mb3JtYXQtbXVsdGlwbGUtZWxlbWVudHMtd2luLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9yZW1vdmUtZm9ybWF0LW11bHRpcGxlLWVsZW1lbnRz
LXdpbi5odG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWND
b21tYW5kL3JlbW92ZS1mb3JtYXQtbXVsdGlwbGUtZWxlbWVudHMtd2luLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEzLDcgKzEzLDcgQEAgdmFyIHRlc3RDb250YWluZXIgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZQogdGVzdENvbnRhaW5lci5jb250ZW50RWRpdGFibGUgPSB0cnVlOwogZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZCh0ZXN0Q29udGFpbmVyKTsKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQot
ICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbicpOworICAgIGlu
dGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbmRvd3MnKTsKIAogZnVuY3Rp
b24gdGVzdFJlbW92ZUZvcm1hdChpbml0aWFsQ29udGVudHMsIHNlbGVjdG9yLCBleHBlY3RlZCkK
IHsKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvdG9nZ2xlLWNvbXBvdW5k
LXN0eWxlcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1h
bmQvdG9nZ2xlLWNvbXBvdW5kLXN0eWxlcy5odG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlv
dXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3RvZ2dsZS1jb21wb3VuZC1zdHlsZXMuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUsNyBAQCBmdW5jdGlvbiB0ZXN0U2luZ2xlVG9nZ2xl
KHRvZ2dsZUNvbW1hbmQsCiAgICAgICAgIHRlc3RGYWlsZWQoYWN0aW9uICsgJyIsIGV4cGVjdGVk
ICInICsgZXhwZWN0ZWRDb250ZW50cyArICciJyk7CiB9CiAKLXBsYXRmb3JtcyA9IFsnbWFjJywg
J3dpbicsICd1bml4J107CitwbGF0Zm9ybXMgPSBbJ21hYycsICd3aW5kb3dzJywgJ3VuaXgnXTsK
IAogZm9yICh2YXIgaSA9IDA7IGkgPCBwbGF0Zm9ybXMubGVuZ3RoOyBpKyspIHsKICAgICBwbGF0
Zm9ybSA9IHBsYXRmb3Jtc1tpXTsKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1h
bmQvdG9nZ2xlLWxpbmstd2luLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGlu
Zy9leGVjQ29tbWFuZC90b2dnbGUtbGluay13aW4uaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysg
TGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC90b2dnbGUtbGluay13aW4uaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMTMsNyArMTMsNyBAQCB2YXIgdGVzdENvbnRhaW5lciA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lCiB0ZXN0Q29udGFpbmVyLmNvbnRlbnRFZGl0YWJsZSA9IHRydWU7CiBkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKHRlc3RDb250YWluZXIpOwogaWYgKHdpbmRvdy5pbnRlcm5h
bHMpCi0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcigid2luIik7Cisg
ICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcigid2luZG93cyIpOwogCiBm
dW5jdGlvbiB0ZXN0U2luZ2xlVG9nZ2xlKHRvZ2dsZUNvbW1hbmQsIGluaXRpYWxDb250ZW50cywg
c2VsZWN0b3IsIGV4cGVjdGVkQ29udGVudHMpCiB7CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5n
L2V4ZWNDb21tYW5kL3RvZ2dsZS11bmxpbmstd2luLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC90b2dnbGUtdW5saW5rLXdpbi5odG1sCShyZXZpc2lv
biAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3RvZ2dsZS11bmxp
bmstd2luLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTUxLDcgKzUxLDcgQEAgZnVuY3Rpb24gc2Vs
ZWN0TGFzdFdvcmQoY29udGFpbmVyKSB7CiB9CiAKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luJyk7CisgICBpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiAKIHRlc3RTaW5nbGVU
b2dnbGUoInVubGluayIsICdoZWxsbyA8Yj53b3JsZDwvYj4nLCBzZWxlY3RBbGwsICdoZWxsbyA8
Yj53b3JsZDwvYj4nKTsKIHRlc3RTaW5nbGVUb2dnbGUoInVubGluayIsICc8YSBocmVmPSJodHRw
Oi8vd2Via2l0Lm9yZy8iPjx1PmhlbGxvIHdvcmxkPC91PjwvYT4nLCBzZWxlY3RBbGwsICc8dT5o
ZWxsbyB3b3JsZDwvdT4nKTsKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uLzUx
OTUxNjYtMS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
LzUxOTUxNjYtMS5odG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi81MTk1MTY2LTEuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsNyBA
QCBmdW5jdGlvbiBydW5UZXN0KHBsYXRmb3JtLCBleHBlY3RlZFRleHQpCiBpZiAod2luZG93LnRl
c3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpCiAgICAgcnVuVGVzdCgnbWFjJywgJ3Nob3VsZCBiZSBzJyk7Ci0gICAgcnVuVGVzdCgnd2lu
JywgJ2hvdWxkIGJlICcpOworICAgIHJ1blRlc3QoJ3dpbmRvd3MnLCAnaG91bGQgYmUgJyk7CiB9
IGVsc2UgewogICAgIGxvZygiRmFpbHVyZTogVG8gdGVzdCBtYW51YWxseSwgc2VsZWN0IHRoZSBn
cmVlbiB0ZXh0ICIgKwogICAgICAgICAic3RhcnRpbmcgYXQgdGhlIGVuZCB2aWEgZG91YmxlLWNs
aWNrIChpLmUuIHdvcmQgZ3JhbnVsYXJpdHkpLCB0aGVuIHNoaWZ0K3JpZ2h0LWFycm93LiAiICsK
SW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uLzUzNTQ0NTUtMS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uLzUzNTQ0NTUtMS5odG1sCShy
ZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi81MzU0NDU1
LTEuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQCBpZiAod2luZG93LmV2ZW50
U2VuZGVyICYmIHdpbmRvdy50ZXN0UnVuCiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAK
ICAgICB0ZXN0KCdtYWMnLCAncmVzdWx0bWFjJyk7Ci0gICAgdGVzdCgnd2luJywgJ3Jlc3VsdHdp
bicpOworICAgIHRlc3QoJ3dpbmRvd3MnLCAncmVzdWx0d2luJyk7CiAgICAgdGVzdCgndW5peCcs
ICdyZXN1bHR1bml4Jyk7CiB9CiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcv
c2VsZWN0aW9uL2NsaWNrLWluLW1hcmdpbnMtaW5zaWRlLWVkaXRhYmxlLWRpdi5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2NsaWNrLWluLW1hcmdpbnMt
aW5zaWRlLWVkaXRhYmxlLWRpdi5odG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0
cy9lZGl0aW5nL3NlbGVjdGlvbi9jbGljay1pbi1tYXJnaW5zLWluc2lkZS1lZGl0YWJsZS1kaXYu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTA0LDcgKzEwNCw3IEBAIGZ1bmN0aW9uIGVkaXRpbmdU
ZXN0KGVkaXRpbmdCZWhhdmlvcikKIH0KIAogZWRpdGluZ1Rlc3QoIm1hYyIpOwotZWRpdGluZ1Rl
c3QoIndpbiIpOworZWRpdGluZ1Rlc3QoIndpbmRvd3MiKTsKIAogLy8gQ2xlYW4gdXAgYWZ0ZXIg
b3Vyc2VsdmVzIGlmIHdlJ3JlIG5vdCBiZWluZyBydW4gaW4gdGhlIGJyb3dzZXIKIGlmICh3aW5k
b3cuZXZlbnRTZW5kZXIpIHsKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2Ns
aWNrLWluLXBhZGRpbmctd2l0aC1tdWx0aXBsZS1saW5lLWJveGVzLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY2xpY2staW4tcGFkZGluZy13aXRoLW11
bHRpcGxlLWxpbmUtYm94ZXMuaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMv
ZWRpdGluZy9zZWxlY3Rpb24vY2xpY2staW4tcGFkZGluZy13aXRoLW11bHRpcGxlLWxpbmUtYm94
ZXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNzgsNyArNzgsNyBAQCBmdW5jdGlvbiBlZGl0aW5n
VGVzdChlZGl0aW5nQmVoYXZpb3IpCiB9CiAKIGVkaXRpbmdUZXN0KCJtYWMiKTsKLWVkaXRpbmdU
ZXN0KCJ3aW4iKTsKK2VkaXRpbmdUZXN0KCJ3aW5kb3dzIik7CiAKIC8vIENsZWFuIHVwIGFmdGVy
IG91cnNlbHZlcyBpZiB3ZSdyZSBub3QgYmVpbmcgcnVuIGluIHRoZSBicm93c2VyCiBpZiAod2lu
ZG93LmV2ZW50U2VuZGVyKSB7CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9j
b250ZXh0LW1lbnUtdGV4dC1zZWxlY3Rpb24tbG9va3VwLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY29udGV4dC1tZW51LXRleHQtc2VsZWN0aW9uLWxv
b2t1cC5odG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVj
dGlvbi9jb250ZXh0LW1lbnUtdGV4dC1zZWxlY3Rpb24tbG9va3VwLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTUwLDcgKzUwLDcgQEAgZnVuY3Rpb24gbG9hZCgpCiAgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CiAKICAgICB0ZXN0KCdtYWMnLCB0cnVlLCAnTmV3IFlvcmsnLCAncmVzdWx0bWFj
Jyk7Ci0gICAgdGVzdCgnd2luJywgZmFsc2UsICcnLCAncmVzdWx0d2luJyk7CisgICAgdGVzdCgn
d2luZG93cycsIGZhbHNlLCAnJywgJ3Jlc3VsdHdpbicpOwogICAgIHRlc3QoJ3VuaXgnLCBmYWxz
ZSwgJycsICdyZXN1bHR1bml4Jyk7CiB9CiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2Vk
aXRpbmcvc2VsZWN0aW9uL2NvbnRleHQtbWVudS10ZXh0LXNlbGVjdGlvbi5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2NvbnRleHQtbWVudS10ZXh0LXNl
bGVjdGlvbi5odG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3Nl
bGVjdGlvbi9jb250ZXh0LW1lbnUtdGV4dC1zZWxlY3Rpb24uaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtNDYsNyArNDYsNyBAQCBmdW5jdGlvbiBsb2FkKCkKICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKIAogICAgIHRlc3QoJ21hYycsIHRydWUsICdyZXN1bHRtYWMnKTsKLSAgICB0ZXN0KCd3
aW4nLCBmYWxzZSwgJ3Jlc3VsdHdpbicpOworICAgIHRlc3QoJ3dpbmRvd3MnLCBmYWxzZSwgJ3Jl
c3VsdHdpbicpOwogICAgIHRlc3QoJ3VuaXgnLCBmYWxzZSwgJ3Jlc3VsdHVuaXgnKTsKIH0KIDwv
c2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLWFmdGVy
LW1vdXNlLXNlbGVjdGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcv
c2VsZWN0aW9uL2V4dGVuZC1hZnRlci1tb3VzZS1zZWxlY3Rpb24uaHRtbAkocmV2aXNpb24gMjY5
ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLWFmdGVyLW1vdXNl
LXNlbGVjdGlvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03NSw3ICs3NSw3IEBAIGZ1bmN0aW9u
IGVkaXRpbmdUZXN0KGVkaXRpbmdCZWhhdmlvcikgewogCiA8c2NyaXB0PgogZWRpdGluZ1Rlc3Qo
Im1hYyIpOwotZWRpdGluZ1Rlc3QoIndpbiIpOworZWRpdGluZ1Rlc3QoIndpbmRvd3MiKTsKIGVk
aXRpbmdUZXN0KCJ1bml4Iik7CiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcv
c2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24tYWZ0ZXItZG91YmxlLWNsaWNrLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1h
ZnRlci1kb3VibGUtY2xpY2suaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMv
ZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1hZnRlci1kb3VibGUtY2xpY2suaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQAogICAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKIAogICAgICAgICBydW5UZXN0KCJtYWMiLCAiYSBwYXJhZ3JhcGgiKTsKLSAg
ICAgICAgcnVuVGVzdCgid2luIiwgInBhcmFncmEiKTsKKyAgICAgICAgcnVuVGVzdCgid2luZG93
cyIsICJwYXJhZ3JhIik7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gcnVuVGVzdChiZWhhdmlvciwg
ZXhwZWN0ZWRUZXh0KQpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5k
LXNlbGVjdGlvbi1lbmNsb3NpbmctYmxvY2std2luLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1lbmNsb3NpbmctYmxvY2st
d2luLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0
aW9uL2V4dGVuZC1zZWxlY3Rpb24tZW5jbG9zaW5nLWJsb2NrLXdpbi5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0yMyw3ICsyMyw3IEBAIGZ1bmN0aW9uIHJ1blNlbGVjdGlvblRlc3RzV2l0aEdyYW51
bGFyaXQKIH0KIAogaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldEVkaXRpbmdCZWhhdmlvcigid2luIik7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVk
aXRpbmdCZWhhdmlvcigid2luZG93cyIpOwogbG9nKCJcblxuXG5FeHRlbmRpbmcgYnkgY2hhcmFj
dGVyXG4iKTsKIHJ1blNlbGVjdGlvblRlc3RzV2l0aEdyYW51bGFyaXR5Rm9yRW5jbG9zaW5nQmxv
Y2soY3JlYXRlRW5jbG9zaW5nQmxvY2tOb2RlcygpLCAiY2hhcmFjdGVyIik7CiAKSW5kZXg6IExh
eW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10
ZXN0LTEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9t
b3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC0xLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkK
KysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1j
cmFzaC10ZXN0LTEuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTIsNyArMTIsNyBAQCBvbmxvYWQg
PSBmdW5jdGlvbigpIHsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5h
bHMpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICBpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0
RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiB9CiA8L3NjcmlwdD4KIDx0ZXh0YXJlYT48L3Rl
eHRhcmVhPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3Jk
LXZpc3VhbGx5LWNyYXNoLXRlc3QtMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Vk
aXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0LTIuaHRtbAko
cmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1i
eS13b3JkLXZpc3VhbGx5LWNyYXNoLXRlc3QtMi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMiw3
ICsxMiw3IEBAIG9ubG9hZCA9IGZ1bmN0aW9uKCkgewogCiBpZiAod2luZG93LnRlc3RSdW5uZXIg
JiYgd2luZG93LmludGVybmFscykgewogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAg
IGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbicpOworICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbmRvd3MnKTsKIH0KIDwvc2NyaXB0
PgogPHZrZXJuPjwvdmtlcm4+PG1hcnF1ZWU+PGRpdiB0aXRsZT0iMHwwIiBjbGFzcz0idGVzdF9t
b3ZlX2J5X3dvcmQiPmFiYyBkZWYKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
L21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0LTMuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gt
dGVzdC0zLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2Vs
ZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0LTMuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMTIsNyArMTIsNyBAQCBvbmxvYWQgPSBmdW5jdGlvbigpIHsKIAogaWYgKHdpbmRv
dy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW4n
KTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7
CiB9CiA8L3NjcmlwdD4KIDx2aWRlbz48L3ZpZGVvPjxtZXRlcj48aW1hZ2UgY2xhc3M9InRlc3Rf
bW92ZV9ieV93b3JkIiB0aXRsZT0iMHwwIj4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2Vs
ZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0LTQuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHkt
Y3Jhc2gtdGVzdC00Lmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRp
bmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0LTQuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMTIsNyArMTIsNyBAQCBvbmxvYWQgPSBmdW5jdGlvbigpIHsKIAogaWYg
KHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9y
KCd3aW4nKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW5k
b3dzJyk7CiB9CiA8L3NjcmlwdD4KID48ZGl2IHRpdGxlPSIwfDAiIGNsYXNzPSJ0ZXN0X21vdmVf
Ynlfd29yZCIgZGlyPWx0cj48a2V5Z2VuPjxiYXNlPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWNyYXNoLXRlc3QtNS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1
YWxseS1jcmFzaC10ZXN0LTUuaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMv
ZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWNyYXNoLXRlc3QtNS5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xMSw3ICsxMSw3IEBAIG9ubG9hZCA9IGZ1bmN0aW9uKCkgewog
CiBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewogICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVo
YXZpb3IoJ3dpbicpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3Io
J3dpbmRvd3MnKTsKIH0KIDwvc2NyaXB0PgogCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Nl
bGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC1jc3MtZ2VuZXJhdGVkLWNv
bnRlbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9t
b3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC1jc3MtZ2VuZXJhdGVkLWNvbnRlbnQuaHRt
bAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92
ZS1ieS13b3JkLXZpc3VhbGx5LWNyYXNoLXRlc3QtY3NzLWdlbmVyYXRlZC1jb250ZW50Lmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTE5LDcgKzE5LDcgQEAgb25sb2FkID0gZnVuY3Rpb24oKSB7CiAK
IGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhh
dmlvcignd2luJyk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcign
d2luZG93cycpOwogfQogPC9zY3JpcHQ+CiA8ZGl2IGNvbnRlbnRlZGl0YWJsZSBkaXI9bHRyPgpJ
bmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5
LWNyYXNoLXRlc3QtdGV4dGFyZWEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC10ZXh0YXJlYS5o
dG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9t
b3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC10ZXh0YXJlYS5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xOCw3ICsxOCw3IEBAIG9ubG9hZCA9IGZ1bmN0aW9uKCkgewogCiBpZiAod2luZG93
LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewogICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbicp
OworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbmRvd3MnKTsK
IH0KIDwvc2NyaXB0PgogCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3Zl
LWJ5LXdvcmQtdmlzdWFsbHktaW5saW5lLWJsb2NrLXBvc2l0aW9uZWQtZWxlbWVudC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12
aXN1YWxseS1pbmxpbmUtYmxvY2stcG9zaXRpb25lZC1lbGVtZW50Lmh0bWwJKHJldmlzaW9uIDI2
OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1
YWxseS1pbmxpbmUtYmxvY2stcG9zaXRpb25lZC1lbGVtZW50Lmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTEyLDcgKzEyLDcgQEAgb25sb2FkID0gZnVuY3Rpb24oKSB7CiAKIGlmICh3aW5kb3cudGVz
dFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7Ci0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luJyk7Cisg
ICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luZG93cycpOwogfQog
PC9zY3JpcHQ+CiAKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnkt
d29yZC12aXN1YWxseS1tdWx0aS1saW5lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LW11bHRpLWxpbmUuaHRtbAko
cmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1i
eS13b3JkLXZpc3VhbGx5LW11bHRpLWxpbmUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTksNyAr
MTksNyBAQCBvbmxvYWQgPSBmdW5jdGlvbigpIHsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyICYm
IHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICBp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiB9CiA8L3NjcmlwdD4K
IDwvaGVhZD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29y
ZC12aXN1YWxseS1tdWx0aS1zcGFjZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Vk
aXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1tdWx0aS1zcGFjZS5odG1sCShy
ZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5
LXdvcmQtdmlzdWFsbHktbXVsdGktc3BhY2UuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTksNyAr
MTksNyBAQCBvbmxvYWQgPSBmdW5jdGlvbigpIHsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyICYm
IHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICBp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiB9CiA8L3NjcmlwdD4K
IDwvaGVhZD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29y
ZC12aXN1YWxseS1udWxsLWJveC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRp
bmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1udWxsLWJveC5odG1sCShyZXZpc2lv
biAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQt
dmlzdWFsbHktbnVsbC1ib3guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTgsNyArMTgsNyBAQCBv
bmxvYWQgPSBmdW5jdGlvbigpIHsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5p
bnRlcm5hbHMpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICBpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiB9CiA8L3NjcmlwdD4KIDxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92
ZS1ieS13b3JkLXZpc3VhbGx5LXNpbmdsZS1zcGFjZS1pbmxpbmUtZWxlbWVudC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1
YWxseS1zaW5nbGUtc3BhY2UtaW5saW5lLWVsZW1lbnQuaHRtbAkocmV2aXNpb24gMjY5ODMwKQor
KysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LXNp
bmdsZS1zcGFjZS1pbmxpbmUtZWxlbWVudC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw3ICsy
Miw3IEBAIG9ubG9hZCA9IGZ1bmN0aW9uKCkgewogCiBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYg
d2luZG93LmludGVybmFscykgewogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIGlu
dGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbicpOworICAgIGludGVybmFs
cy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbmRvd3MnKTsKIH0KIDwvc2NyaXB0Pgog
PC9oZWFkPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3Jk
LXZpc3VhbGx5LXNpbmdsZS1zcGFjZS1vbmUtZWxlbWVudC5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1zaW5nbGUt
c3BhY2Utb25lLWVsZW1lbnQuaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMv
ZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LXNpbmdsZS1zcGFjZS1vbmUt
ZWxlbWVudC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xOSw3ICsxOSw3IEBAIG9ubG9hZCA9IGZ1
bmN0aW9uKCkgewogCiBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykg
ewogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIGludGVybmFscy5zZXR0aW5ncy5z
ZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbicpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0
aW5nQmVoYXZpb3IoJ3dpbmRvd3MnKTsKIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpJbmRleDogTGF5
b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LXRleHRhcmVh
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1i
eS13b3JkLXZpc3VhbGx5LXRleHRhcmVhLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91
dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS10ZXh0YXJlYS5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBAIG9ubG9hZCA9IGZ1bmN0aW9uKCkg
ewogCiBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewogICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5n
QmVoYXZpb3IoJ3dpbicpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZp
b3IoJ3dpbmRvd3MnKTsKIH0KIDwvc2NyaXB0PgogCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktd3JvbmctbGVmdC1yaWdodC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12
aXN1YWxseS13cm9uZy1sZWZ0LXJpZ2h0Lmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91
dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS13cm9uZy1sZWZ0
LXJpZ2h0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIyLDcgKzIyLDcgQEAgb25sb2FkID0gZnVu
Y3Rpb24oKSB7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7
CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dEVkaXRpbmdCZWhhdmlvcignd2luJyk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRp
bmdCZWhhdmlvcignd2luZG93cycpOwogfQogPC9zY3JpcHQ+CiA8dGl0bGU+d3JvbmcgcmVzdWx0
IGJlY2F1c2UgVmlzaWJsZVBvc2l0aW9uLmxlZnQoKS9yaWdodCgpIHJldHVybnMgd3JvbmcgcmVz
dWx0PC90aXRsZT4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3Byb2dyYW1t
YXRpYy1zZWxlY3Rpb24tb24tbWFjLWlzLWRpcmVjdGlvbmxlc3MuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9wcm9ncmFtbWF0aWMtc2VsZWN0aW9uLW9u
LW1hYy1pcy1kaXJlY3Rpb25sZXNzLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRl
c3RzL2VkaXRpbmcvc2VsZWN0aW9uL3Byb2dyYW1tYXRpYy1zZWxlY3Rpb24tb24tbWFjLWlzLWRp
cmVjdGlvbmxlc3MuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTM2LDcgKzEzNiw3IEBAIGZ1bmN0
aW9uIHJ1blRlc3RzRm9yKHBsYXRmb3JtKSB7CiAKIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAg
ICAgcnVuVGVzdHNGb3IoJ21hYycpOwotICAgIHJ1blRlc3RzRm9yKCd3aW4nKTsKKyAgICBydW5U
ZXN0c0Zvcignd2luZG93cycpOwogICAgIHJ1blRlc3RzRm9yKCd1bml4Jyk7CiAKICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdCcpLmlubmVySFRNTCA9ICcnOwpJbmRleDogTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vcnRsLW1vdmUtc2VsZWN0aW9uLXJpZ2h0LWxlZnQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9ydGwtbW92ZS1z
ZWxlY3Rpb24tcmlnaHQtbGVmdC5odG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0
cy9lZGl0aW5nL3NlbGVjdGlvbi9ydGwtbW92ZS1zZWxlY3Rpb24tcmlnaHQtbGVmdC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC03Myw3ICs3Myw3IEBAIGZ1bmN0aW9uIHJ1blRlc3RzKCkKICAgICAg
ICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcigibWFjIik7CiAgICAgICAg
IHRlc3RTZWxlY3Rpb25DaGFuZ2UoZHJhZ1NlbGVjdGlvbiwgImV4dGVuZCIsICJyaWdodCIsIDAs
IDAsICJFeHRlbmQgZHJhZ2dlZCBzZWxlY3Rpb24gcmlnaHQgKE1hYykiKTsKICAgICAgICAgdGVz
dFNlbGVjdGlvbkNoYW5nZShkcmFnU2VsZWN0aW9uLCAiZXh0ZW5kIiwgImxlZnQiLCAwLCAwLCAi
RXh0ZW5kIGRyYWdnZWQgc2VsZWN0aW9uIGxlZnQgKE1hYykiKTsKLSAgICAgICAgaW50ZXJuYWxz
LnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcigid2luIik7CisgICAgICAgIGludGVybmFscy5z
ZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoIndpbmRvd3MiKTsKICAgICAgICAgdGVzdFNlbGVj
dGlvbkNoYW5nZShkcmFnU2VsZWN0aW9uLCAiZXh0ZW5kIiwgInJpZ2h0IiwgMCwgMCwgIkV4dGVu
ZCBkcmFnZ2VkIHNlbGVjdGlvbiByaWdodCAoV2luKSIpOwogICAgICAgICB0ZXN0U2VsZWN0aW9u
Q2hhbmdlKGRyYWdTZWxlY3Rpb24sICJleHRlbmQiLCAibGVmdCIsIDEsIDAsICJFeHRlbmQgZHJh
Z2dlZCBzZWxlY3Rpb24gbGVmdCAoV2luKSIpOwogICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0RWRpdGluZ0JlaGF2aW9yKCJ1bml4Iik7CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Nl
bGVjdGlvbi9zZWxlY3Rpb24tZXh0ZW5kLXNob3VsZC1ub3QtbW92ZS1hY3Jvc3MtY2FyZXQtb24t
bWFjLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2Vs
ZWN0aW9uLWV4dGVuZC1zaG91bGQtbm90LW1vdmUtYWNyb3NzLWNhcmV0LW9uLW1hYy5odG1sCShy
ZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rp
b24tZXh0ZW5kLXNob3VsZC1ub3QtbW92ZS1hY3Jvc3MtY2FyZXQtb24tbWFjLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTU3LDcgKzU3LDcgQEAgZnVuY3Rpb24gZWRpdGluZ1Rlc3QoYmVoYXZpb3Ip
IHsKIH0KIAogZWRpdGluZ1Rlc3QoIm1hYyIpOwotZWRpdGluZ1Rlc3QoIndpbiIpOworZWRpdGlu
Z1Rlc3QoIndpbmRvd3MiKTsKIGVkaXRpbmdUZXN0KCJ1bml4Iik7CiAKIHZhciBub2RlID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QtZGl2Iik7CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9zaGlmdC1jbGljay5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2VkaXRpbmcvc2VsZWN0aW9uL3NoaWZ0LWNsaWNrLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysr
IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NoaWZ0LWNsaWNrLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTk1LDcgKzk1LDcgQEAgZnVuY3Rpb24gcnVuU2hpZnRDbGlja1Rlc3QoZWRpdGlu
Z0JlaGF2aQogCiBpZiAod2luZG93LmV2ZW50U2VuZGVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsK
ICAgICBydW5TaGlmdENsaWNrVGVzdCgibWFjIik7Ci0gICAgcnVuU2hpZnRDbGlja1Rlc3QoIndp
biIpOworICAgIHJ1blNoaWZ0Q2xpY2tUZXN0KCJ3aW5kb3dzIik7CiB9CiAKIHZhciBzdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24v
dXNlci1zZWxlY3QtYWxsLXdpdGgtc2hpZnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9lZGl0aW5nL3NlbGVjdGlvbi91c2VyLXNlbGVjdC1hbGwtd2l0aC1zaGlmdC5odG1sCShyZXZp
c2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi91c2VyLXNlbGVj
dC1hbGwtd2l0aC1zaGlmdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01MCw3ICs1MCw3IEBAIGZ1
bmN0aW9uIHJ1blRlc3QoZWRpdGluZ0JlaGF2aW9yKSB7CiAKIGlmICh3aW5kb3cuZXZlbnRTZW5k
ZXIpIHsKICAgICBydW5UZXN0KCdtYWMnKTsKLSAgICBydW5UZXN0KCd3aW4nKTsKKyAgICBydW5U
ZXN0KCd3aW5kb3dzJyk7CiAgICAgcnVuVGVzdCgndW5peCcpOwogCiB9IGVsc2UKSW5kZXg6IExh
eW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvY29weS1wYXN0ZS1jcmFzaC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvY29weS1wYXN0ZS1jcmFzaC5odG1s
CShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL2NvcHkt
cGFzdGUtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTQsNyArMTQsNyBAQAogPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+CiA8c2NyaXB0Pgogb25sb2FkID0gaW5pdFNwZWxsVGVzdCgiZGVz
dGluYXRpb24iLCAiU3BlbGwgd2VsbGNvbWUuIElzIGl0IGJyb2tlbj8iLCBmdW5jdGlvbih0ZXh0
Tm9kZSkgewotICAgIHZhciBiZWhhdmlvcnMgPSBbIndpbiIsICJtYWMiXTsKKyAgICB2YXIgYmVo
YXZpb3JzID0gWyJ3aW5kb3dzIiwgIm1hYyJdOwogICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYmVo
YXZpb3JzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0
aW5nQmVoYXZpb3IoYmVoYXZpb3JzW2ldKTsKICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQo
IlNlbGVjdEFsbCIpOwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9pZnJhbWUtb25s
b2FkLWNyYXNoLXdpbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc3R5
bGUvaWZyYW1lLW9ubG9hZC1jcmFzaC13aW4uaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5
b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9pZnJhbWUtb25sb2FkLWNyYXNoLXdpbi5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAogPG1ldGE+PGlucHV0PjxoNj48bm9icj48L25vYnI+
PGRhdGFncmlkPjxpbnM+PGJ1dHRvbj48ZW0+PGlmcmFtZSBvbmxvYWQ9IgogaWYgKHdpbmRvdy50
ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW4nKTsK
KyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiB9
CiAKIGlmIChkb2N1bWVudC5jb3VudGVyKQpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zdHls
ZS9tYWtlLXRleHQtd3JpdGluZy1kaXJlY3Rpb24taW5saW5lLXdpbi5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvbWFrZS10ZXh0LXdyaXRpbmctZGlyZWN0aW9u
LWlubGluZS13aW4uaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zdHlsZS9tYWtlLXRleHQtd3JpdGluZy1kaXJlY3Rpb24taW5saW5lLXdpbi5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNCw3ICsxNCw3IEBAIGRlc2NyaXB0aW9uKCdUZXN0cyB0byBlbnN1cmUg
TWFrZVRleHRXcmkKIGlmICghd2luZG93LnRlc3RSdW5uZXIpCiAgICAgdGVzdEZhaWxlZCgnVGhp
cyB0ZXN0IHJlcXVpcmVzIHRlc3RSdW5uZXInKTsKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAg
IGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbicpOworICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbmRvd3MnKTsKIAogdmFyIHRlc3RD
b250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKIHRlc3RDb250YWluZXIu
Y29udGVudEVkaXRhYmxlID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUv
cHVzaC1kb3duLWZvbnQtc3R5bGVzLXdpbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2VkaXRpbmcvc3R5bGUvcHVzaC1kb3duLWZvbnQtc3R5bGVzLXdpbi5odG1sCShyZXZpc2lvbiAy
Njk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3B1c2gtZG93bi1mb250LXN0eWxl
cy13aW4uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQAogZGVzY3JpcHRpb24o
J1Rlc3QgdG8gbWFrZSBzdXJlIHdlIHB1c2ggZG93biBpbmxpbmUgc3R5bGVzIHByb3Blcmx5Licp
OwogCiBpZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRp
dGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0Jl
aGF2aW9yKCd3aW5kb3dzJyk7CiB2YXIgdGVzdENvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImRpdiIpOwogdGVzdENvbnRhaW5lci5jb250ZW50RWRpdGFibGUgPSB0cnVlOwogZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZXN0Q29udGFpbmVyKTsKSW5kZXg6IExheW91dFRlc3Rz
L2VkaXRpbmcvc3R5bGUvcHVzaC1kb3duLWltcGxpY2l0LXN0eWxlcy1hcm91bmQtbGlzdC13aW4u
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3B1c2gtZG93bi1p
bXBsaWNpdC1zdHlsZXMtYXJvdW5kLWxpc3Qtd2luLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysr
IExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvcHVzaC1kb3duLWltcGxpY2l0LXN0eWxlcy1hcm91
bmQtbGlzdC13aW4uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQAogZGVzY3Jp
cHRpb24oJ1Rlc3QgdG8gbWFrZSBzdXJlIHdlIHB1c2ggZG93biBpbmxpbmUgc3R5bGVzIHByb3Bl
cmx5LicpOwogCiBpZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0RWRpdGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRp
dGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiB2YXIgdGVzdENvbnRhaW5lciA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImRpdiIpOwogdGVzdENvbnRhaW5lci5jb250ZW50RWRpdGFibGUgPSB0cnVl
OwogZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZXN0Q29udGFpbmVyKTsKSW5kZXg6IExheW91
dFRlc3RzL2VkaXRpbmcvc3R5bGUvdG9nZ2xlLXN0eWxlLWJvbGQtaXRhbGljLW1peGVkLWVkaXRh
YmlsaXR5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS90b2dn
bGUtc3R5bGUtYm9sZC1pdGFsaWMtbWl4ZWQtZWRpdGFiaWxpdHkuaHRtbAkocmV2aXNpb24gMjY5
ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS90b2dnbGUtc3R5bGUtYm9sZC1pdGFs
aWMtbWl4ZWQtZWRpdGFiaWxpdHkuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBA
QCBFZGl0YWJsZSA8c3BhbiBjb250ZW50ZWRpdGFibGU9ZmFsc2U+Tm9uCiA8c2NyaXB0IHNyYz0u
Li9lZGl0aW5nLmpzIGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L0phdmFTY3JpcHQi
ID48L3NjcmlwdD4KIDxzY3JpcHQ+CiB0ZXN0KCdtYWMnKTsKLXRlc3QoJ3dpbicpOwordGVzdCgn
d2luZG93cycpOwogdGVzdCgndW5peCcpOwogZnVuY3Rpb24gdGVzdChwbGF0Zm9ybSkgewogICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKQpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS90
b2dnbGUtc3R5bGUtYm9sZC1pdGFsaWMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3N0eWxlL3RvZ2dsZS1zdHlsZS1ib2xkLWl0YWxpYy5odG1sCShyZXZpc2lvbiAyNjk4
MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3RvZ2dsZS1zdHlsZS1ib2xkLWl0YWxp
Yy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMSw3ICsxMSw3IEBACiA8c2NyaXB0IHNyYz0uLi9l
ZGl0aW5nLmpzIGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L0phdmFTY3JpcHQiID48
L3NjcmlwdD4KIDxzY3JpcHQ+CiB0ZXN0KCdtYWMnKTsKLXRlc3QoJ3dpbicpOwordGVzdCgnd2lu
ZG93cycpOwogdGVzdCgndW5peCcpOwogZnVuY3Rpb24gdGVzdChwbGF0Zm9ybSkgewogICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvYmFja3Nw
YWNlLW5hdmlnYXRlcy1iYWNrLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvYmFja3NwYWNlLW5hdmlnYXRlcy1iYWNrLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysr
IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2JhY2tzcGFjZS1uYXZpZ2F0ZXMtYmFjay5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC01MCw3ICs1MCw3IEBAIGZ1bmN0aW9uIGRvU3RlcChzdGVwLCBsb2Nh
dGlvbikgewogICAgICAgICBpZiAoIWV4cGVjdChsb2NhdGlvbiA9PSAndGVzdC13aW4nLCAnbmF2
aWdhdGlvbiB0byB0ZXN0LXdpbicpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGlu
dGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbicpOworICAgICAgICBpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiAgICAgICAgIHRl
c3RCYWNrc3BhY2VOYXZpZ2F0ZXNCYWNrKCk7CiAKICAgICAgICAgYnJlYWs7Cg==
</data>
<flag name="commit-queue"
          id="430980"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414176</attachid>
            <date>2020-11-15 12:09:49 -0800</date>
            <delta_ts>2020-11-15 14:45:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218960-20201115120948.patch</filename>
            <type>text/plain</type>
            <size>217723</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIwLTExLTE1ICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBTdGFuZGFyZGl6ZSBlbnVtcyB0aGF0IGFyZSB1c2VkIGJ5
IFNldHRpbmdzIGluIHByZXBlcmF0aW9uIGZvciBhdXRvZ2VuZXJhdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4OTYwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1dJUF0KKworICAgICAgICAqIFNj
cmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXMueWFtbDoKKwogMjAyMC0xMS0xNCAgRG9u
IE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIFtjbGFuZy10aWR5
XSBSdW4gbW9kZXJuaXplLXVzZS1vdmVycmlkZSB0aHJvdWdoIEpTQwpJbmRleDogU291cmNlL1dU
Ri9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWwJKHJldmlz
aW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJl
bmNlcy55YW1sCSh3b3JraW5nIGNvcHkpCkBAIC03MDYsNyArNzA2LDcgQEAgRWRpdGFibGVMaW5r
QmVoYXZpb3I6CiAgICAgV2ViS2l0TGVnYWN5OgogICAgICAgZGVmYXVsdDogV2ViS2l0RWRpdGFi
bGVMaW5rRGVmYXVsdEJlaGF2aW9yCiAgICAgV2ViS2l0OgotICAgICAgZGVmYXVsdDogV2ViQ29y
ZTo6RWRpdGFibGVMaW5rTmV2ZXJMaXZlCisgICAgICBkZWZhdWx0OiBXZWJDb3JlOjpFZGl0YWJs
ZUxpbmtCZWhhdmlvcjo6TmV2ZXJMaXZlCiAKIEVuYWJsZUluaGVyaXRVUklRdWVyeUNvbXBvbmVu
dDoKICAgdHlwZTogYm9vbApAQCAtMjE3Myw3ICsyMTczLDcgQEAgU3RvcmFnZUJsb2NraW5nUG9s
aWN5OgogICAgIFdlYktpdExlZ2FjeToKICAgICAgIGRlZmF1bHQ6IFdlYkFsbG93QWxsU3RvcmFn
ZQogICAgIFdlYktpdDoKLSAgICAgIGRlZmF1bHQ6IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpC
bG9ja1RoaXJkUGFydHlTdG9yYWdlCisgICAgICBkZWZhdWx0OiBXZWJDb3JlOjpTdG9yYWdlQmxv
Y2tpbmdQb2xpY3k6OkJsb2NrVGhpcmRQYXJ0eQogCiBTdWJyZXNvdXJjZUludGVncml0eUVuYWJs
ZWQ6CiAgIHR5cGU6IGJvb2wKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzOSBAQAor
MjAyMC0xMS0xNSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAgU3Rh
bmRhcmRpemUgZW51bXMgdGhhdCBhcmUgdXNlZCBieSBTZXR0aW5ncyBpbiBwcmVwZXJhdGlvbiBm
b3IgYXV0b2dlbmVyYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxODk2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFtXSVBdCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFNj
cmlwdHMvR2VuZXJhdGVTZXR0aW5ncy5yYjoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9Gb3JjZWRBY2Nlc3NpYmls
aXR5VmFsdWUuaDogQWRkZWQuCisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmZvbnRMb2FkVGltaW5nT3ZlcnJpZGUpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTRm9udEZhY2U6OmZvbnRMb2FkVGltaW5nIGNvbnN0KToKKyAgICAgICAgKiBjc3MvRm9udExv
YWRUaW1pbmdPdmVycmlkZS5oOiBBZGRlZC4KKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2YWx1
YXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjptb25vY2hyb21lRXZhbHVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6aW52ZXJ0ZWRDb2xvcnNFdmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpk
eW5hbWljUmFuZ2VFdmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpwcmVmZXJzUmVkdWNlZE1v
dGlvbkV2YWx1YXRlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmFwcGx5UXVpY2tMb29rU2FuZGJveCk6CisgICAgICAgICogZWRpdGlu
Zy9FZGl0YWJsZUxpbmtCZWhhdmlvci5oOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRp
bmdCZWhhdmlvci5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yOjpzaG91bGRN
b3ZlQ2FyZXRUb0hvcml6b250YWxCb3VuZGFyeVdoZW5QYXN0VG9wT3JCb3R0b20gY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yOjpzaG91bGRDb25zaWRlclNlbGVjdGlv
bkFzRGlyZWN0aW9uYWwgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9y
OjpzaG91bGRDZW50ZXJBbGlnbldoZW5TZWxlY3Rpb25Jc1JldmVhbGVkIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkVkaXRpbmdCZWhhdmlvcjo6c2hvdWxkVG9nZ2xlU3R5bGVCYXNlZE9uU3Rh
cnRPZlNlbGVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3I6
OnNob3VsZEFsd2F5c0dyb3dTZWxlY3Rpb25XaGVuRXh0ZW5kaW5nVG9Cb3VuZGFyeSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3I6OnNob3VsZFNlbGVjdE9uQ29udGV4
dHVhbE1lbnVDbGljayBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3I6
OnNob3VsZEFsbG93U3BlbGxpbmdTdWdnZXN0aW9uc1dpdGhvdXRTZWxlY3Rpb24gY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yOjpzaG91bGROYXZpZ2F0ZUJhY2tPbkJh
Y2tzcGFjZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3I6OnNob3Vs
ZEV4dGVuZFNlbGVjdGlvbkJ5V29yZE9yTGluZUFjcm9zc0NhcmV0IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRpbmdCZWhhdmlvcjo6c2hvdWxkU2tpcFNwYWNlV2hlbk1vdmluZ1JpZ2h0
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRpbmdCZWhhdmlvcjo6c2hvdWxkUmViYWxh
bmNlV2hpdGVTcGFjZXNJblNlY3VyZUZpZWxkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRpbmdCZWhhdmlvcjo6c2hvdWxkU2VsZWN0QmFzZWRPbkRpY3Rpb25hcnlMb29rdXAgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yOjpzaG91bGRBbHdheXNFeHRlbmRT
ZWxlY3Rpb25Gcm9tRXh0ZW50RW5kcG9pbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dGluZ0JlaGF2aW9yOjpzaG91bGRNb3ZlU2VsZWN0aW9uVG9FbmRXaGVuRm9jdXNpbmdUZXh0SW5w
dXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yOjpzaG91bGRBbHdh
eXNTbWFydERlbGV0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3I6
OnNob3VsZFNtYXJ0SW5zZXJ0RGVsZXRlUGFyYWdyYXBocyBjb25zdCk6CisgICAgICAgICogZWRp
dGluZy9FZGl0aW5nQmVoYXZpb3JUeXBlLmg6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvRWRp
dGluZ0JlaGF2aW9yVHlwZXMuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmJlaGF2aW9yIGNvbnN0KToKKyAgICAgICAg
KiBlZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24uaDoKKyAgICAgICAgKiBlZGl0aW5nL2NvY29h
L0RhdGFEZXRlY3Rpb24ubW06CisgICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RVUkxTdHJpbmdG
b3JSZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGFpbnMpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6cmVtb3ZlUmVzdWx0TGlua3NGcm9tQW5jaG9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OnNlYXJjaEZvckxpbmtSZW1vdmluZ0V4aXN0aW5nRERMaW5rcyk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpkYXRhRGV0ZWN0b3JUeXBlRm9yQ2F0ZWdvcnkpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6ZGF0YURldGVjdG9yU3RyaW5nRm9yUGF0aCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpidWlsZFF1ZXJ5KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OnF1ZXJ5T2Zmc2V0Q29tcGFyZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpE
YXRhRGV0ZWN0aW9uOjpyZW1vdmVEYXRhRGV0ZWN0ZWRMaW5rc0luRG9jdW1lbnQpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6RGF0YURldGVjdGlvbjo6ZGV0ZWN0Q29udGVudEluUmFuZ2Up
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGF0YURldGVjdGlvbjo6ZGF0YURldGVjdG9y
VVJMUHJvdG9jb2wpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGF0YURldGVjdGlvbjo6
aXNEYXRhRGV0ZWN0b3JVUkwpOiBEZWxldGVkLgorICAgICAgICAqIGVkaXRpbmcvY29jb2EvRGF0
YURldGVjdG9yVHlwZXMuaDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9tYXJrdXAuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUGFnZUZvclNhbml0aXppbmdXZWJDb250ZW50KToKKyAg
ICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxBbmNob3JFbGVtZW50OjpzZXRBY3RpdmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFuY2hv
ckVsZW1lbnQ6OnRyZWF0TGlua0FzTGl2ZUZvckV2ZW50VHlwZSBjb25zdCk6CisgICAgICAgICog
aHRtbC9wYXJzZXIvSFRNTFBhcnNlck9wdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFBhcnNlck9wdGlvbnM6OkhUTUxQYXJzZXJPcHRpb25zKToKKyAgICAgICAgKiBodG1sL3BhcnNl
ci9IVE1MUGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeS5oOiBBZGRlZC4KKyAgICAgICAgKiBsb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNoZWNr
TG9hZENvbXBsZXRlRm9yVGhpc0ZyYW1lKToKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OnBv
cHVsYXRlKToKKyAgICAgICAgKiBwYWdlL0RlYnVnT3ZlcmxheVJlZ2lvbnMuaDogQWRkZWQuCisg
ICAgICAgICogcGFnZS9EZWJ1Z1BhZ2VPdmVybGF5cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
ZWJ1Z1BhZ2VPdmVybGF5czo6dXBkYXRlT3ZlcmxheVJlZ2lvblZpc2liaWxpdHkpOgorICAgICAg
ICAoV2ViQ29yZTo6RGVidWdQYWdlT3ZlcmxheXM6OnNldHRpbmdzQ2hhbmdlZCk6CisgICAgICAg
ICogcGFnZS9EZWJ1Z1BhZ2VPdmVybGF5cy5oOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6dXNlSGFuZEN1cnNvcik6Cisg
ICAgICAgICogcGFnZS9GcmFtZUZsYXR0ZW5pbmcuaDogQWRkZWQuCisgICAgICAgICogcGFnZS9G
cmFtZVZpZXcuaDoKKyAgICAgICAgKiBwYWdlL1BERkltYWdlQ2FjaGluZ1BvbGljeS5oOiBBZGRl
ZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2hv
dWxkQnVpbGRFZGl0YWJsZVJlZ2lvbiBjb25zdCk6CisgICAgICAgICogcGFnZS9TZWN1cml0eU9y
aWdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6Y2FuQWNjZXNzU3Rv
cmFnZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6ZG9tYWluRm9y
Q2FjaGVQYXJ0aXRpb24gY29uc3QpOgorICAgICAgICAqIHBhZ2UvU2VjdXJpdHlPcmlnaW4uaDoK
KyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6CisgICAgICAgICogcGFnZS9TZXR0aW5nc0Jh
c2UuaDoKKyAgICAgICAgKiBwYWdlL1N0b3JhZ2VCbG9ja2luZ1BvbGljeS5oOiBBZGRlZC4KKyAg
ICAgICAgKiBwYWdlL1RleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IuaDogQWRk
ZWQuCisgICAgICAgICogcGFnZS9Vc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5Lmg6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL0RyYWdJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nn
L1BERkRvY3VtZW50SW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UERGRG9jdW1lbnRJbWFn
ZTo6dXBkYXRlQ2FjaGVkSW1hZ2VJZk5lZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvUERGRG9jdW1lbnRJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvRm9udFJl
bmRlcmluZ01vZGUuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0RGlyZWN0
aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6aXNMZWZ0VG9SaWdodERpcmVjdGlvbik6
CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0RmxhZ3MuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS90ZXh0L1dyaXRpbmdNb2RlLmg6CisgICAgICAgIChXZWJDb3JlOjptYWtlVGV4dEZsb3dJbml0
YWxpemVyKToKKyAgICAgICAgKFdlYkNvcmU6Om1ha2VUZXh0Rmxvdyk6CisgICAgICAgIChXZWJD
b3JlOjppc1JldmVyc2VkVGV4dEZsb3cpOgorICAgICAgICAoV2ViQ29yZTo6aXNGbGlwcGVkVGV4
dEZsb3cpOgorICAgICAgICAoV2ViQ29yZTo6aXNWZXJ0aWNhbFRleHRGbG93KToKKyAgICAgICAg
KFdlYkNvcmU6OmlzVmVydGljYWxXcml0aW5nTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjppc0Zs
aXBwZWRXcml0aW5nTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjppc0hvcml6b250YWxXcml0aW5n
TW9kZSk6CisgICAgICAgIChXZWJDb3JlOjppc0ZsaXBwZWRMaW5lc1dyaXRpbmdNb2RlKToKKyAg
ICAgICAgKFdlYkNvcmU6OmlzSG9yaXpvbnRhbFBoeXNpY2FsU2lkZSk6CisgICAgICAgIChXZWJD
b3JlOjptaXJyb3JQaHlzaWNhbFNpZGUpOgorICAgICAgICAoV2ViQ29yZTo6cm90YXRlUGh5c2lj
YWxTaWRlKToKKyAgICAgICAgKFdlYkNvcmU6Om1hcExvZ2ljYWxTaWRlVG9QaHlzaWNhbFNpZGUp
OgorICAgICAgICAoV2ViQ29yZTo6aXNMZWZ0VG9SaWdodERpcmVjdGlvbik6IERlbGV0ZWQuCisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyOjpjYWxjdWxhdGVDbGlwUmVjdHMgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJC
YWNraW5nOjpwYWludERlYnVnT3ZlcmxheXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXJCYWNraW5nOjpwYWludENvbnRlbnRzKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpC
YWNrdXApOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpyZXN0
b3JlVG8pOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6c2V0RWRpdGluZ0Jl
aGF2aW9yKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldFN0b3JhZ2VC
bG9ja2luZ1BvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRQ
REZJbWFnZUNhY2hpbmdQb2xpY3kpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGw6CisgICAgICAgICog
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZVBhZ2VGb3JTZXJ2aWNlV29ya2VyKToKKyAgICAgICAgKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6U2VydmljZVdvcmtlclRocmVhZFByb3h5
KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFk
UHJveHkuaDoKKwogMjAyMC0xMS0xNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkIGEgV2ViUlRDIFNGcmFtZSB0cmFuc2Zvcm0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZQkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQkod29ya2luZyBjb3B5KQpAQCAtMTg4LDYgKzE4OCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVf
RlJBTUVXT1JLX0hFQURFUlMKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJ
bnRlcmZhY2UuaAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5o
CiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oCisgICAgYWNjZXNz
aWJpbGl0eS9Gb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUuaAogCiAgICAgYWNjZXNzaWJpbGl0eS9p
c29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCiAgICAgYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZFRyZWUuaApAQCAtMzUzLDYgKzM1NCw3IEBAIHNldChXZWJDb3JlX1BS
SVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBjc3MvRGVwcmVjYXRlZENTU09NUmVjdC5oCiAg
ICAgY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmgKICAgICBjc3MvRGVwcmVjYXRlZENTU09NVmFs
dWVMaXN0LmgKKyAgICBjc3MvRm9udExvYWRUaW1pbmdPdmVycmlkZS5oCiAgICAgY3NzL0xlbmd0
aEZ1bmN0aW9ucy5oCiAgICAgY3NzL01lZGlhTGlzdC5oCiAgICAgY3NzL01lZGlhUXVlcnlFdmFs
dWF0b3IuaApAQCAtNTI2LDkgKzUyOCwxMCBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09S
S19IRUFERVJTCiAgICAgZWRpdGluZy9EaWN0YXRpb25Db250ZXh0LmgKICAgICBlZGl0aW5nL0Rp
Y3Rpb25hcnlQb3B1cEluZm8uaAogICAgIGVkaXRpbmcvRWRpdEFjdGlvbi5oCisgICAgZWRpdGlu
Zy9FZGl0YWJsZUxpbmtCZWhhdmlvci5oCiAgICAgZWRpdGluZy9FZGl0aW5nLmgKICAgICBlZGl0
aW5nL0VkaXRpbmdCZWhhdmlvci5oCi0gICAgZWRpdGluZy9FZGl0aW5nQmVoYXZpb3JUeXBlcy5o
CisgICAgZWRpdGluZy9FZGl0aW5nQmVoYXZpb3JUeXBlLmgKICAgICBlZGl0aW5nL0VkaXRpbmdC
b3VuZGFyeS5oCiAgICAgZWRpdGluZy9FZGl0aW5nU3R5bGUuaAogICAgIGVkaXRpbmcvRWRpdG9y
LmgKQEAgLTY5Myw2ICs2OTYsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFE
RVJTCiAKICAgICBodG1sL3BhcnNlci9QYXJzaW5nVXRpbGl0aWVzLmgKICAgICBodG1sL3BhcnNl
ci9IVE1MUGFyc2VySWRpb21zLmgKKyAgICBodG1sL3BhcnNlci9IVE1MUGFyc2VyU2NyaXB0aW5n
RmxhZ1BvbGljeS5oCiAKICAgICBodG1sL3RyYWNrL0F1ZGlvVHJhY2suaAogICAgIGh0bWwvdHJh
Y2svVGV4dFRyYWNrLmgKQEAgLTgzMSw2ICs4MzUsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZS
QU1FV09SS19IRUFERVJTCiAgICAgcGFnZS9ET01XaW5kb3dFeHRlbnNpb24uaAogICAgIHBhZ2Uv
RE9NV2luZG93UHJvcGVydHkuaAogICAgIHBhZ2UvRGF0YWJhc2VQcm92aWRlci5oCisgICAgcGFn
ZS9EZWJ1Z092ZXJsYXlSZWdpb25zLmgKICAgICBwYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmgKICAg
ICBwYWdlL0RlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oCiAgICAgcGFnZS9EZXZpY2VDbGllbnQu
aApAQCAtODQ4LDYgKzg1Myw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURF
UlMKICAgICBwYWdlL0ZvY3VzRGlyZWN0aW9uLmgKICAgICBwYWdlL0ZyYW1lLmgKICAgICBwYWdl
L0ZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5oCisgICAgcGFnZS9GcmFtZUZsYXR0ZW5pbmcuaAog
ICAgIHBhZ2UvRnJhbWVJZGVudGlmaWVyLmgKICAgICBwYWdlL0ZyYW1lU25hcHNob3R0aW5nLmgK
ICAgICBwYWdlL0ZyYW1lVHJlZS5oCkBAIC04NjAsNiArODY2LDcgQEAgc2V0KFdlYkNvcmVfUFJJ
VkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBhZ2UvTWVkaWFQcm9kdWNlci5oCiAgICAgcGFn
ZS9NZW1vcnlSZWxlYXNlLmgKICAgICBwYWdlL05hdmlnYXRvcklzTG9nZ2VkSW4uaAorICAgIHBh
Z2UvUERGSW1hZ2VDYWNoaW5nUG9saWN5LmgKICAgICBwYWdlL1BhZ2UuaAogICAgIHBhZ2UvUGFn
ZUNvbmZpZ3VyYXRpb24uaAogICAgIHBhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaApAQCAtODk2LDEy
ICs5MDMsMTUgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBh
Z2UvU29ja2V0UHJvdmlkZXIuaAogICAgIHBhZ2UvU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5o
CiAgICAgcGFnZS9TcGVlY2hTeW50aGVzaXNDbGllbnQuaAorICAgIHBhZ2UvU3RvcmFnZUJsb2Nr
aW5nUG9saWN5LmgKICAgICBwYWdlL1N1c3BlbmRhYmxlVGltZXIuaAorICAgIHBhZ2UvVGV4dERp
cmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvci5oCiAgICAgcGFnZS9UZXh0SW5kaWNhdG9y
LmgKICAgICBwYWdlL1VzZXJDb250ZW50Q29udHJvbGxlci5oCiAgICAgcGFnZS9Vc2VyQ29udGVu
dFByb3ZpZGVyLmgKICAgICBwYWdlL1VzZXJDb250ZW50VHlwZXMuaAogICAgIHBhZ2UvVXNlckNv
bnRlbnRVUkxQYXR0ZXJuLmgKKyAgICBwYWdlL1VzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3ku
aAogICAgIHBhZ2UvVXNlck1lc3NhZ2VIYW5kbGVyLmgKICAgICBwYWdlL1VzZXJNZXNzYWdlSGFu
ZGxlckRlc2NyaXB0b3IuaAogICAgIHBhZ2UvVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5o
CkBAIC0xMzgxLDExICsxMzkxLDEzIEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hF
QURFUlMKICAgICBwbGF0Zm9ybS9zcWwvU1FMaXRlVHJhbnNhY3Rpb24uaAogCiAgICAgcGxhdGZv
cm0vdGV4dC9CaWRpQ29udGV4dC5oCisgICAgcGxhdGZvcm0vdGV4dC9Gb250UmVuZGVyaW5nTW9k
ZS5oCiAgICAgcGxhdGZvcm0vdGV4dC9TdHJpbmdXaXRoRGlyZWN0aW9uLmgKICAgICBwbGF0Zm9y
bS90ZXh0L1RleHRCb3VuZGFyaWVzLmgKICAgICBwbGF0Zm9ybS90ZXh0L1RleHRDaGVja2VyQ2xp
ZW50LmgKICAgICBwbGF0Zm9ybS90ZXh0L1RleHRDaGVja2luZy5oCiAgICAgcGxhdGZvcm0vdGV4
dC9UZXh0Q29kZWMuaAorICAgIHBsYXRmb3JtL3RleHQvVGV4dERpcmVjdGlvbi5oCiAgICAgcGxh
dGZvcm0vdGV4dC9UZXh0RW5jb2RpbmcuaAogICAgIHBsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5n
UmVnaXN0cnkuaAogICAgIHBsYXRmb3JtL3RleHQvVGV4dEZsYWdzLmgKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy5yYgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MucmIJKHJldmlzaW9uIDI2OTgzMCkKKysr
IFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy5yYgkod29ya2luZyBjb3B5
KQpAQCAtMTMyLDcgKzEzMiw3IEBAIGNsYXNzIFNldHRpbmcKICAgICAgIG5hbWUKICAgICBlbHNp
ZiBuYW1lLnN0YXJ0X3dpdGg/KCJDU1MiLCAiWFNTIiwgIkZUUCIsICJET00iLCAiRE5TIiwgIlBE
RiIsICJJQ0UiLCAiSERSIikKICAgICAgIG5hbWVbMC4uMl0uZG93bmNhc2UgKyBuYW1lWzMuLm5h
bWUubGVuZ3RoXQotICAgIGVsc2lmIG5hbWUuc3RhcnRfd2l0aD8oIkhUVFAiKQorICAgIGVsc2lm
IG5hbWUuc3RhcnRfd2l0aD8oIkhUVFAiLCAiSFRNTCIpCiAgICAgICBuYW1lWzAuLjNdLmRvd25j
YXNlICsgbmFtZVs0Li5uYW1lLmxlbmd0aF0KICAgICBlbHNlCiAgICAgICBuYW1lWzBdLmRvd25j
YXNlICsgbmFtZVsxLi5uYW1lLmxlbmd0aF0KQEAgLTE3NSw3ICsxNzUsOSBAQCBjbGFzcyBTZXR0
aW5nCiAgIGVuZAogCiAgIGRlZiBzZXR0ZXJGdW5jdGlvbk5hbWUKLSAgICBpZiBAbmFtZS5zdGFy
dF93aXRoPygiY3NzIiwgInhzcyIsICJmdHAiLCAiZG9tIiwgImRucyIsICJpY2UiLCAiaGRyIikK
KyAgICBpZiBAbmFtZS5zdGFydF93aXRoPygiaHRtbCIpCisgICAgICAic2V0IiArIEBuYW1lWzAu
LjNdLnVwY2FzZSArIEBuYW1lWzQuLkBuYW1lLmxlbmd0aF0KKyAgICBlbHNpZiBAbmFtZS5zdGFy
dF93aXRoPygiY3NzIiwgInhzcyIsICJmdHAiLCAiZG9tIiwgImRucyIsICJpY2UiLCAiaGRyIikK
ICAgICAgICJzZXQiICsgQG5hbWVbMC4uMl0udXBjYXNlICsgQG5hbWVbMy4uQG5hbWUubGVuZ3Ro
XQogICAgIGVsc2UKICAgICAgICJzZXQiICsgQG5hbWVbMF0udXBjYXNlICsgQG5hbWVbMS4uQG5h
bWUubGVuZ3RoXQpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMzg1LDcg
KzEzODUsNyBAQAogCQk0RTE5NTkyQTBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFRdWVyeS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEUxOTU5MjQwQTM5
REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk0RTE5NTkyQzBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFR
dWVyeUV2YWx1YXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNEUxOTU5MjYwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnlFdmFsdWF0b3IuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0RjE1MzRE
RTExQjUzMkVDMDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9yLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RjE1MzRERDExQjUzMkVDMDAyMUZEODYgLyog
RWRpdGluZ0JlaGF2aW9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKLQkJNEYxNTM0RTAxMUI1MzMwMjAwMjFGRDg2IC8qIEVkaXRpbmdCZWhhdmlvclR5
cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RjE1
MzRERjExQjUzMzAyMDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9yVHlwZXMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0RjE1MzRFMDExQjUzMzAy
MDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9yVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEYxNTM0REYxMUI1MzMwMjAwMjFGRDg2IC8qIEVkaXRp
bmdCZWhhdmlvclR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk0RkE2NUE2QzExMDhBQkVEMDAyNjE1RTAgLyogTWF0aE1MU3BhY2VFbGVtZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RkE2NUE2
QTExMDhBQkVEMDAyNjE1RTAgLyogTWF0aE1MU3BhY2VFbGVtZW50LmggKi87IH07CiAJCTUwMUJB
QUE5MTM5NTBFMkMwMEY3QUNFQiAvKiBXaW5kUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTAxQkFBQTgxMzk1MEUyQzAwRjdBQ0VCIC8qIFdpbmRS
dWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NTA0QUFDQ0UxODM0NDU1OTAwRTNEOUJDIC8qIEluc3BlY3Rvck5vZGVGaW5kZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwNEFBQ0NDMTgzNDQ1NTkw
MEUzRDlCQyAvKiBJbnNwZWN0b3JOb2RlRmluZGVyLmggKi87IH07CkBAIC0zOTEyLDYgKzM5MTIs
MTkgQEAKIAkJQkM0OTE4QzcwQkZFQTA1MDAwOUQ2MzE2IC8qIEpTSFRNTEZyYW1lRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0OTE4QzEw
QkZFQTA1MDAwOUQ2MzE2IC8qIEpTSFRNTEZyYW1lRWxlbWVudC5oICovOyB9OwogCQlCQzQ5MThD
OTBCRkVBMDUwMDA5RDYzMTYgLyogSlNIVE1MSUZyYW1lRWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0OTE4QzMwQkZFQTA1MDAwOUQ2MzE2
IC8qIEpTSFRNTElGcmFtZUVsZW1lbnQuaCAqLzsgfTsKIAkJQkM0OTFCNzkwQzAyM0VGRDAwOUQ2
MzE2IC8qIEpTSFRNTE1hcnF1ZWVFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzQ5MUI3NzBDMDIzRUZEMDA5RDYzMTYgLyogSlNIVE1MTWFy
cXVlZUVsZW1lbnQuaCAqLzsgfTsKKwkJQkM0QTUzMjMyNTYwNTI3NjAwMjhDNTkyIC8qIEVkaXRh
YmxlTGlua0JlaGF2aW9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzRBNTMyMTI1NjA1MjcwMDAyOEM1OTIgLyogRWRpdGFibGVMaW5rQmVoYXZpb3Iu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlCQzRB
NTMyNTI1NjA1NTVGMDAyOEM1OTIgLyogVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhh
dmlvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0
QTUzMjQyNTYwNTU1OTAwMjhDNTkyIC8qIFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVo
YXZpb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQlCQzRBNTMyNzI1NjA1NUQzMDAyOEM1OTIgLyogVXNlckludGVyZmFjZURpcmVjdGlvblBvbGlj
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0QTUz
MjYyNTYwNTVEMzAwMjhDNTkyIC8qIFVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3kuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlCQzRBNTMyOTI1
NjA1NjNCMDAyOEM1OTIgLyogUERGSW1hZ2VDYWNoaW5nUG9saWN5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzRBNTMyODI1NjA1NjNCMDAyOEM1OTIg
LyogUERGSW1hZ2VDYWNoaW5nUG9saWN5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJQkM0QTUzMkIyNTYwNTY2RTAwMjhDNTkyIC8qIEZyYW1lRmxh
dHRlbmluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkM0QTUzMkEyNTYwNTY2RTAwMjhDNTkyIC8qIEZyYW1lRmxhdHRlbmluZy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUJDNEE1MzJEMjU2MDU2RDUw
MDI4QzU5MiAvKiBEZWJ1Z092ZXJsYXlSZWdpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzRBNTMyQzI1NjA1NkQ1MDAyOEM1OTIgLyogRGVidWdP
dmVybGF5UmVnaW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCUJDNEE1MzJGMjU2MDU3Q0QwMDI4QzU5MiAvKiBGb250TG9hZFRpbWluZ092ZXJy
aWRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzRB
NTMyRTI1NjA1N0NEMDAyOEM1OTIgLyogRm9udExvYWRUaW1pbmdPdmVycmlkZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUJDNEE1MzMxMjU2MDU5
MDMwMDI4QzU5MiAvKiBGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNEE1MzMwMjU2MDU5MDMwMDI4QzU5MiAv
KiBGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQlCQzRBNTMzMzI1NjA1OTgzMDAyOEM1OTIgLyogSFRNTFBh
cnNlclNjcmlwdGluZ0ZsYWdQb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDNEE1MzMyMjU2MDU5ODMwMDI4QzU5MiAvKiBIVE1MUGFyc2VyU2Ny
aXB0aW5nRmxhZ1BvbGljeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCUJDNEE1MzM1MjU2MDVBNTYwMDI4QzU5MiAvKiBEYXRhRGV0ZWN0b3JUeXBl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0QTUz
MzQyNTYwNUE1NjAwMjhDNTkyIC8qIERhdGFEZXRlY3RvclR5cGVzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQkM0QTUzMzcyNTYwNUFFMTAwMjhD
NTkyIC8qIFN0b3JhZ2VCbG9ja2luZ1BvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0QTUzMzYyNTYwNUFFMTAwMjhDNTkyIC8qIFN0b3JhZ2VC
bG9ja2luZ1BvbGljeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCUJDNEE1MzM5MjU2MDYzOTgwMDI4QzU5MiAvKiBGb250UmVuZGVyaW5nTW9kZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0QTUzMzgy
NTYwNjM5ODAwMjhDNTkyIC8qIEZvbnRSZW5kZXJpbmdNb2RlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQkM0QTUzM0IyNTYwNjRFMTAwMjhDNTky
IC8qIFRleHREaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDNEE1MzNBMjU2MDY0RTEwMDI4QzU5MiAvKiBUZXh0RGlyZWN0aW9uLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM1MTE1NkUx
MkIxNzQ5QzAwQzk2NzU0IC8qIFNjcm9sbEFuaW1hdG9yTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1MTE1NkQxMkIxNzQ5QzAwQzk2NzU0IC8q
IFNjcm9sbEFuaW1hdG9yTWFjLm1tICovOyB9OwogCQlCQzUzQzVGNTBEQTU2QjkyMDAyMUVCNUQg
LyogR3JhZGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDNTNDNUY0MERBNTZCOTIwMDIxRUI1RCAvKiBHcmFkaWVudC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDNTNDNjkyMERBNTkxMTQwMDIx
RUI1RCAvKiBDU1NHcmFkaWVudFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzUzQzY5MTBEQTU5MTE0MDAyMUVCNUQgLyogQ1NTR3JhZGllbnRW
YWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBA
IC04MzU2LDcgKzgzNjksNyBAQAogCQk0RTE5NTkyNTBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFR
dWVyeUV2YWx1YXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TWVkaWFRdWVyeUV2YWx1YXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRF
MTk1OTI2MEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5RXZhbHVhdG9yLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVF1ZXJ5RXZhbHVhdG9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGMTUzNEREMTFCNTMyRUMwMDIxRkQ4NiAvKiBFZGl0aW5n
QmVoYXZpb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRWRpdGluZ0JlaGF2
aW9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTRGMTUzNERGMTFCNTMzMDIwMDIx
RkQ4NiAvKiBFZGl0aW5nQmVoYXZpb3JUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBFZGl0aW5nQmVoYXZpb3JUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0RjE1MzRERjExQjUzMzAyMDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9yVHlwZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFZGl0aW5nQmVoYXZpb3JUeXBlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGQTY1QTY5MTEwOEFCRUQwMDI2MTVFMCAvKiBN
YXRoTUxTcGFjZUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTWF0aE1MU3BhY2VFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NEZBNjVBNkExMTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFNwYWNlRWxlbWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYXRoTUxTcGFjZUVsZW1lbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEZBQjQ4NjQxNjQzQTY2RDAwRjcwQzA3IC8qIEVsZW1lbnRS
YXJlRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFbGVtZW50
UmFyZURhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM4MTgsNiArMTM4
MzEsMTkgQEAKIAkJQkM0OTFCNEUwQzAyM0UyRDAwOUQ2MzE2IC8qIEhUTUxNYXJxdWVlRWxlbWVu
dC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTE1hcnF1ZWVFbGVtZW50LmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM0OTFCNzYwQzAyM0VGRDAwOUQ2MzE2IC8qIEpT
SFRNTE1hcnF1ZWVFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU0hUTUxNYXJxdWVlRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUJDNDkxQjc3MEMwMjNFRkQwMDlENjMxNiAvKiBKU0hUTUxNYXJxdWVlRWxlbWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MTWFycXVlZUVsZW1lbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM0QTUzMjEyNTYwNTI3MDAwMjhDNTkyIC8q
IEVkaXRhYmxlTGlua0JlaGF2aW9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVkaXRhYmxlTGlua0JlaGF2
aW9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDNEE1MzI0MjU2MDU1NTkwMDI4
QzU5MiAvKiBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM0QTUzMjYyNTYwNTVEMzAwMjhDNTkyIC8qIFVzZXJJbnRl
cmZhY2VEaXJlY3Rpb25Qb2xpY3kuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlckludGVyZmFjZURpcmVj
dGlvblBvbGljeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzRBNTMyODI1NjA1
NjNCMDAyOEM1OTIgLyogUERGSW1hZ2VDYWNoaW5nUG9saWN5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBE
RkltYWdlQ2FjaGluZ1BvbGljeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzRB
NTMyQTI1NjA1NjZFMDAyOEM1OTIgLyogRnJhbWVGbGF0dGVuaW5nLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEZyYW1lRmxhdHRlbmluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzRBNTMy
QzI1NjA1NkQ1MDAyOEM1OTIgLyogRGVidWdPdmVybGF5UmVnaW9ucy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEZWJ1Z092ZXJsYXlSZWdpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJD
NEE1MzJFMjU2MDU3Q0QwMDI4QzU5MiAvKiBGb250TG9hZFRpbWluZ092ZXJyaWRlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEZvbnRMb2FkVGltaW5nT3ZlcnJpZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQkM0QTUzMzAyNTYwNTkwMzAwMjhDNTkyIC8qIEZvcmNlZEFjY2Vzc2liaWxpdHlW
YWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM0QTUzMzIyNTYwNTk4MzAwMjhDNTkyIC8qIEhUTUxQ
YXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxQYXJzZXJTY3Jp
cHRpbmdGbGFnUG9saWN5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDNEE1MzM0
MjU2MDVBNTYwMDI4QzU5MiAvKiBEYXRhRGV0ZWN0b3JUeXBlcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
YXRhRGV0ZWN0b3JUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzRBNTMz
NjI1NjA1QUUxMDAyOEM1OTIgLyogU3RvcmFnZUJsb2NraW5nUG9saWN5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFN0b3JhZ2VCbG9ja2luZ1BvbGljeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlCQzRBNTMzODI1NjA2Mzk4MDAyOEM1OTIgLyogRm9udFJlbmRlcmluZ01vZGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRm9udFJlbmRlcmluZ01vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQkM0QTUzM0EyNTYwNjRFMTAwMjhDNTkyIC8qIFRleHREaXJlY3Rpb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gVGV4dERpcmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzUx
MTU2RDEyQjE3NDlDMDBDOTY3NTQgLyogU2Nyb2xsQW5pbWF0b3JNYWMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxBbmltYXRvck1hYy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1MTU4MEEwQzAzRDQwNDAwOEJCMEVFIC8qIEpTSFRN
TERvY3VtZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU0hUTUxEb2N1bWVudEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUJDNTNDNUY0MERBNTZCOTIwMDIxRUI1RCAvKiBHcmFkaWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBHcmFkaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTg4NzgsNiArMTg5MDQsNyBAQAogCQkJCTI5ODFDQUFGMTMxODIyRUMwMEQxMkYyQSAvKiBB
WE9iamVjdENhY2hlLmNwcCAqLywKIAkJCQkyOUE4MTIxQTBGQkI5QzFEMDA1MTAyOTMgLyogQVhP
YmplY3RDYWNoZS5oICovLAogCQkJCTkxQzlGMkY4MUFFM0JFMjQwMDk1QjYxQyAvKiBBWFRleHRT
dGF0ZUNoYW5nZUludGVudC5oICovLAorCQkJCUJDNEE1MzMwMjU2MDU5MDMwMDI4QzU5MiAvKiBG
b3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gYWNjZXNzaWJp
bGl0eTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yMTc4MCw2ICsyMTgwNyw3IEBA
CiAJCQkJOTc1Q0EyODkxMzAzNjVGODAwRTk5QUQ5IC8qIENyeXB0by5pZGwgKi8sCiAJCQkJMUFD
QjJCMjExQTU3MzNGNDAwMzMzMzkyIC8qIERhdGFiYXNlUHJvdmlkZXIuY3BwICovLAogCQkJCTFB
Q0IyQjIyMUE1NzMzRjQwMDMzMzM5MiAvKiBEYXRhYmFzZVByb3ZpZGVyLmggKi8sCisJCQkJQkM0
QTUzMkMyNTYwNTZENTAwMjhDNTkyIC8qIERlYnVnT3ZlcmxheVJlZ2lvbnMuaCAqLywKIAkJCQkw
RjZBMTJCQjFBMDA5MjM3MDBDNkRFNzIgLyogRGVidWdQYWdlT3ZlcmxheXMuY3BwICovLAogCQkJ
CTBGNkExMkJDMUEwMDkyMzcwMEM2REU3MiAvKiBEZWJ1Z1BhZ2VPdmVybGF5cy5oICovLAogCQkJ
CTdDQkQxMjlDMUY5OEI1RkYwMDEyN0QyOSAvKiBEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuY3Bw
ICovLApAQCAtMjE4MzIsNiArMjE4NjAsNyBAQAogCQkJCTY1QkYwMjJBMDk3NDgxNjMwMEM0MzE5
NiAvKiBGcmFtZS5oICovLAogCQkJCTk3NEE4NjIwMTRCN0FEQkIwMDNGREM3NiAvKiBGcmFtZURl
c3RydWN0aW9uT2JzZXJ2ZXIuY3BwICovLAogCQkJCTk3NEE4NjIxMTRCN0FEQkIwMDNGREM3NiAv
KiBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaCAqLywKKwkJCQlCQzRBNTMyQTI1NjA1NjZFMDAy
OEM1OTIgLyogRnJhbWVGbGF0dGVuaW5nLmggKi8sCiAJCQkJMEYxMTc4MTYyMkUzQzQ3RTAwOEJE
NTcwIC8qIEZyYW1lSWRlbnRpZmllci5oICovLAogCQkJCUM0Q0Q2Mjk4MTgzODM3NjYwMDdFQkFG
MSAvKiBGcmFtZVNuYXBzaG90dGluZy5jcHAgKi8sCiAJCQkJQzRDRDYyOTkxODM4Mzc2NjAwN0VC
QUYxIC8qIEZyYW1lU25hcHNob3R0aW5nLmggKi8sCkBAIC0yMTkwMiw2ICsyMTkzMSw3IEBACiAJ
CQkJMkQ1QzlDRkUxOUM3QjUyRTAwQjNDNUMxIC8qIFBhZ2VPdmVybGF5Q29udHJvbGxlci5oICov
LAogCQkJCTM3MUU2NUNEMTM2NjFFRUQwMEJFRURCMCAvKiBQYWdlU2VyaWFsaXplci5jcHAgKi8s
CiAJCQkJMzcxRTY1Q0IxMzY2MUVEQzAwQkVFREIwIC8qIFBhZ2VTZXJpYWxpemVyLmggKi8sCisJ
CQkJQkM0QTUzMjgyNTYwNTYzQjAwMjhDNTkyIC8qIFBERkltYWdlQ2FjaGluZ1BvbGljeS5oICov
LAogCQkJCTdDNzI0NzFFMjUxNjc1ODgwMEMzNjNDRCAvKiBQZXJmb3JtYW5jZStOYXZpZ2F0aW9u
VGltaW5nLmlkbCAqLywKIAkJCQk3QzcyNDcxQzI1MTY3NENFMDBDMzYzQ0QgLyogUGVyZm9ybWFu
Y2UrUGVyZm9ybWFuY2VUaW1lbGluZS5pZGwgKi8sCiAJCQkJN0M3MjQ3MUQyNTE2NzUyQzAwQzM2
M0NEIC8qIFBlcmZvcm1hbmNlK1Jlc291cmNlVGltaW5nLmlkbCAqLywKQEAgLTIyMDI1LDggKzIy
MDU1LDEwIEBACiAJCQkJNjI2Q0RFMEQxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0
aW9uLmggKi8sCiAJCQkJOTNBMDQ4MjYyNTQ5NTUwMDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0
aW9uUHJvdmlkZXIuaCAqLywKIAkJCQlDMTQ5MzgwNTIyMzQyNzE5MDAwQ0Q3MDcgLyogU3BlZWNo
U3ludGhlc2lzQ2xpZW50LmggKi8sCisJCQkJQkM0QTUzMzYyNTYwNUFFMTAwMjhDNTkyIC8qIFN0
b3JhZ2VCbG9ja2luZ1BvbGljeS5oICovLAogCQkJCTYyQzEyMTdBMTFBQjlFNzYwMDNDNDYyQyAv
KiBTdXNwZW5kYWJsZVRpbWVyLmNwcCAqLywKIAkJCQk2MkMxMjE3QjExQUI5RTc3MDAzQzQ2MkMg
LyogU3VzcGVuZGFibGVUaW1lci5oICovLAorCQkJCUJDNEE1MzI0MjU2MDU1NTkwMDI4QzU5MiAv
KiBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yLmggKi8sCiAJCQkJMkQ0Rjk2
RjExQTFFQ0MyNDAwOThCRjg4IC8qIFRleHRJbmRpY2F0b3IuY3BwICovLAogCQkJCTJENEY5NkYy
MUExRUNDMjQwMDk4QkY4OCAvKiBUZXh0SW5kaWNhdG9yLmggKi8sCiAJCQkJRjRFMTk2NUYyMUYy
NkU0RTAwMjg1MDc4IC8qIFVuZG9JdGVtLmNwcCAqLywKQEAgLTIyMDQyLDYgKzIyMDc0LDcgQEAK
IAkJCQkwMDNGMUZFOTExRTZBQjQzMDA4MjU4RDkgLyogVXNlckNvbnRlbnRUeXBlcy5oICovLAog
CQkJCUJDQUNGM0JBMTA3MjkyMUEwMEMwQzhBMyAvKiBVc2VyQ29udGVudFVSTFBhdHRlcm4uY3Bw
ICovLAogCQkJCUJDQUNGM0JCMTA3MjkyMUEwMEMwQzhBMyAvKiBVc2VyQ29udGVudFVSTFBhdHRl
cm4uaCAqLywKKwkJCQlCQzRBNTMyNjI1NjA1NUQzMDAyOEM1OTIgLyogVXNlckludGVyZmFjZURp
cmVjdGlvblBvbGljeS5oICovLAogCQkJCTdDM0I3OTZGMTkwODc1N0IwMEI0N0EyRCAvKiBVc2Vy
TWVzc2FnZUhhbmRsZXIuY3BwICovLAogCQkJCTdDM0I3OTcwMTkwODc1N0IwMEI0N0EyRCAvKiBV
c2VyTWVzc2FnZUhhbmRsZXIuaCAqLywKIAkJCQk3QzczRkIwRTE5MUVGNjBFMDA3REUwNjEgLyog
VXNlck1lc3NhZ2VIYW5kbGVyLmlkbCAqLywKQEAgLTIyNTQwLDYgKzIyNTczLDcgQEAKIAkJCQk1
Q0NDMjcwNjIyRDUzQjY4MDA5NjRGQTAgLyogQXV0b2ZpbGxFbGVtZW50cy5oICovLAogCQkJCUM1
MjI3REVGMUMzQzZERDcwMEY1RUQ1NCAvKiBEYXRhRGV0ZWN0aW9uLmggKi8sCiAJCQkJQzUyMjdE
RjAxQzNDNkRENzAwRjVFRDU0IC8qIERhdGFEZXRlY3Rpb24ubW0gKi8sCisJCQkJQkM0QTUzMzQy
NTYwNUE1NjAwMjhDNTkyIC8qIERhdGFEZXRlY3RvclR5cGVzLmggKi8sCiAJCQkJOTM3RkYzRDYx
QTEwMTMxQjAwOEVCQTMxIC8qIERpY3Rpb25hcnlMb29rdXAubW0gKi8sCiAJCQkJOUI1NUVFRTgx
QjNFODg5ODAwNTM0MkJDIC8qIEVkaXRvckNvY29hLm1tICovLAogCQkJCUY0MkNFQjU0MjE0MDMx
RUUwMDJEQ0E3MiAvKiBGb250QXR0cmlidXRlQ2hhbmdlc0NvY29hLm1tICovLApAQCAtMjI4NDYs
NiArMjI4ODAsNyBAQAogCQkJCUNFQ0FERkM1MTUzNzc4RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25D
b21tYW5kLmggKi8sCiAJCQkJOTM4NDMwQjIyNDc1REUzRjAwM0Y5NjE3IC8qIERpY3RhdGlvbkNv
bnRleHQuaCAqLywKIAkJCQkyRDU2NDZBRjFCOEY4NDkzMDAzQzQ5OTQgLyogRGljdGlvbmFyeVBv
cHVwSW5mby5oICovLAorCQkJCUJDNEE1MzIxMjU2MDUyNzAwMDI4QzU5MiAvKiBFZGl0YWJsZUxp
bmtCZWhhdmlvci5oICovLAogCQkJCUY0OUU5OEU0MjFERUU2QzEwMDlBRTU1RSAvKiBFZGl0QWN0
aW9uLmNwcCAqLywKIAkJCQk5MzMwOUQ5MzA5OUU2NDkxMDA1NkU1ODEgLyogRWRpdEFjdGlvbi5o
ICovLAogCQkJCTkzMzA5RDk0MDk5RTY0OTEwMDU2RTU4MSAvKiBFZGl0Q29tbWFuZC5jcHAgKi8s
CkBAIC0yMjg1Myw3ICsyMjg4OCw3IEBACiAJCQkJOTMzMDlEOTgwOTlFNjQ5MTAwNTZFNTgxIC8q
IEVkaXRpbmcuY3BwICovLAogCQkJCTkzMzA5RDk5MDk5RTY0OTEwMDU2RTU4MSAvKiBFZGl0aW5n
LmggKi8sCiAJCQkJNEYxNTM0REQxMUI1MzJFQzAwMjFGRDg2IC8qIEVkaXRpbmdCZWhhdmlvci5o
ICovLAotCQkJCTRGMTUzNERGMTFCNTMzMDIwMDIxRkQ4NiAvKiBFZGl0aW5nQmVoYXZpb3JUeXBl
cy5oICovLAorCQkJCTRGMTUzNERGMTFCNTMzMDIwMDIxRkQ4NiAvKiBFZGl0aW5nQmVoYXZpb3JU
eXBlLmggKi8sCiAJCQkJM0FDNjQ4QjExMjlFMTQ2NTAwQzNFQjI1IC8qIEVkaXRpbmdCb3VuZGFy
eS5oICovLAogCQkJCTlCQUI2QzZCMTI1NTA2MzEwMDE2MjZENCAvKiBFZGl0aW5nU3R5bGUuY3Bw
ICovLAogCQkJCTlCQUI2QzZBMTI1NTA2MzEwMDE2MjZENCAvKiBFZGl0aW5nU3R5bGUuaCAqLywK
QEAgLTIzODk1LDYgKzIzOTMwLDcgQEAKIAkJCQk5NzNGNDE4ODE2OUI5NUVGMDAwNkJGNjAgLyog
SFRNTFBhcnNlck9wdGlvbnMuaCAqLywKIAkJCQk5NzdCMzg1NzEyMjg4M0U5MDBCODFGRjggLyog
SFRNTFBhcnNlclNjaGVkdWxlci5jcHAgKi8sCiAJCQkJOTc3QjM4NTgxMjI4ODNFOTAwQjgxRkY4
IC8qIEhUTUxQYXJzZXJTY2hlZHVsZXIuaCAqLywKKwkJCQlCQzRBNTMzMjI1NjA1OTgzMDAyOEM1
OTIgLyogSFRNTFBhcnNlclNjcmlwdGluZ0ZsYWdQb2xpY3kuaCAqLywKIAkJCQk5NzdCMzg1OTEy
Mjg4M0U5MDBCODFGRjggLyogSFRNTFByZWxvYWRTY2FubmVyLmNwcCAqLywKIAkJCQk5NzdCMzg1
QTEyMjg4M0U5MDBCODFGRjggLyogSFRNTFByZWxvYWRTY2FubmVyLmggKi8sCiAJCQkJQThEMjIz
RkIxNkI1MkU0RTAwMTU3Mjg4IC8qIEhUTUxSZXNvdXJjZVByZWxvYWRlci5jcHAgKi8sCkBAIC0y
NjU1Nyw2ICsyNjU5Myw3IEBACiAJCQkJQ0VDQ0ZDM0ExNDE5NzNENTAwMkEwQUMxIC8qIERlY29k
ZUVzY2FwZVNlcXVlbmNlcy5oICovLAogCQkJCURGQzYxMEEyMjRGQjJBN0MwMDYyNTRDOCAvKiBF
bmNvZGluZ1RhYmxlcy5jcHAgKi8sCiAJCQkJREZDNjEwQTQyNEZCMkE3RDAwNjI1NEM4IC8qIEVu
Y29kaW5nVGFibGVzLmggKi8sCisJCQkJQkM0QTUzMzgyNTYwNjM5ODAwMjhDNTkyIC8qIEZvbnRS
ZW5kZXJpbmdNb2RlLmggKi8sCiAJCQkJMzc1Q0QyMzExMTlENDNDODAwQTJBODU5IC8qIEh5cGhl
bmF0aW9uLmggKi8sCiAJCQkJNzYzM0E3MjUxM0Q4QjMzQTAwODUwMUI2IC8qIExvY2FsZVRvU2Ny
aXB0TWFwcGluZy5jcHAgKi8sCiAJCQkJNzYzM0E3MjQxM0Q4QjMzQTAwODUwMUI2IC8qIExvY2Fs
ZVRvU2NyaXB0TWFwcGluZy5oICovLApAQCAtMjY1OTEsNiArMjY2MjgsNyBAQAogCQkJCUIyQzNE
QTEyMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNVVEYxNi5oICovLAogCQkJCTkzNDNDQjdG
MTJGMjVFNTEwMDMzQzVFRSAvKiBUZXh0Q29kZWNVVEY4LmNwcCAqLywKIAkJCQk5MzQzQ0I4MDEy
RjI1RTUxMDAzM0M1RUUgLyogVGV4dENvZGVjVVRGOC5oICovLAorCQkJCUJDNEE1MzNBMjU2MDY0
RTEwMDI4QzU5MiAvKiBUZXh0RGlyZWN0aW9uLmggKi8sCiAJCQkJQjJDM0RBMTYwRDAwNkMxRDAw
RUY2RjI2IC8qIFRleHRFbmNvZGluZy5jcHAgKi8sCiAJCQkJQjJDM0RBMTcwRDAwNkMxRDAwRUY2
RjI2IC8qIFRleHRFbmNvZGluZy5oICovLAogCQkJCUMxMDVEQTYzMEYzQUE2QjgwMDFERDQ0RiAv
KiBUZXh0RW5jb2RpbmdEZXRlY3Rvci5oICovLApAQCAtMjkyMjksNiArMjkyNjcsNyBAQAogCQkJ
CTFDMjRFRUEzMUM3MjlDRTQwMDgwRjhGQyAvKiBGb250RmFjZVNldC5oICovLAogCQkJCTFDMjRF
RUExMUM3MjlCMzIwMDgwRjhGQyAvKiBGb250RmFjZVNldC5pZGwgKi8sCiAJCQkJN0MzQThBQkMy
NTA5QTI1NjAwOEM0NzdGIC8qIEZvbnRGYWNlU291cmNlLmlkbCAqLywKKwkJCQlCQzRBNTMyRTI1
NjA1N0NEMDAyOEM1OTIgLyogRm9udExvYWRUaW1pbmdPdmVycmlkZS5oICovLAogCQkJCUMyQUIw
QjAzMUU2REU5MkMwMDEzNDhDNSAvKiBGb250U2VsZWN0aW9uVmFsdWVJbmxpbmVzLmggKi8sCiAJ
CQkJMUMzMjQ5MTAxQzZENkEzQjAwN0VEQjMyIC8qIEZvbnRWYXJpYW50QnVpbGRlci5jcHAgKi8s
CiAJCQkJQzIwMTVDMDkxQkU2RkUyQzAwODIyMzg5IC8qIEZvbnRWYXJpYW50QnVpbGRlci5oICov
LApAQCAtMzE0NjksNiArMzE1MDgsNyBAQAogCQkJCUJFMjM0ODBEMThBOTg3MTQwMEU0QjZFOCAv
KiBEYXRhQ3VlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTIyN0RGMTFDM0M2REYxMDBGNUVENTQg
LyogRGF0YURldGVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M3OTQxRTUxQzU2QzI5MzAw
QTRDNThFIC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUJDNEE1MzM1MjU2MDVBNTYwMDI4QzU5MiAvKiBEYXRhRGV0ZWN0b3JUeXBlcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRTU4QjQ1QkEyMEFEMDdERDAwOTkxMDI1IC8qIERhdGFMaXN0QnV0dG9uRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTUxNzY3MDMyMEI4OEMxNDAwRDQxMTY3IC8qIERh
dGFMaXN0U3VnZ2VzdGlvbkluZm9ybWF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNTJDRjU0
RjIwQTM1QTI4MDBEQURBMjcgLyogRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmggaW4gSGVhZGVy
cyAqLywKQEAgLTMxNDkxLDYgKzMxNTMxLDcgQEAKIAkJCQlGNTVCM0RCQTEyNTFGMTJEMDAzRUYy
NjkgLyogRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTVGMDZB
RUIyNEQ0OUJGNzAwQkJDNEY4IC8qIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRTVGMDZBRUYyNEQ0QTYzNzAwQkJDNEY4IC8qIERhdGVUaW1lU3ltYm9s
aWNGaWVsZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDNEE1MzJEMjU2MDU2RDUwMDI4
QzU5MiAvKiBEZWJ1Z092ZXJsYXlSZWdpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjZBMTJC
RTFBMDA5MjM3MDBDNkRFNzIgLyogRGVidWdQYWdlT3ZlcmxheXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQ1RkVBNUQwMTU2RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmggaW4gSGVhZGVycyAqLywK
IAkJCQk3MTVBRDcyMDIwNTA1MTMyMDBENTkyREMgLyogRGVjbGFyYXRpdmVBbmltYXRpb24uaCBp
biBIZWFkZXJzICovLApAQCAtMzE2NzEsMTEgKzMxNzEyLDEyIEBACiAJCQkJRkQ1MzczNTcxMzdC
NjUzQjAwMDA4RENFIC8qIER5bmFtaWNzQ29tcHJlc3Nvcktlcm5lbC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRkQ2RUQyQzQxMzZCOEU0MjAwM0NGMDcyIC8qIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTgzN0MwQjc2MjREQjM4NTAwMDVENTk1OSAvKiBEeW5hbWlj
c0NvbXByZXNzb3JPcHRpb25zLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzRBNTMyMzI1NjA1Mjc2
MDAyOEM1OTIgLyogRWRpdGFibGVMaW5rQmVoYXZpb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
MzA5REUyMDk5RTY0OTIwMDU2RTU4MSAvKiBFZGl0QWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5MzMwOURFNDA5OUU2NDkyMDA1NkU1ODEgLyogRWRpdENvbW1hbmQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTkzMzA5REU4MDk5RTY0OTIwMDU2RTU4MSAvKiBFZGl0aW5nLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0RjE1MzRERTExQjUzMkVDMDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9yLmggaW4g
SGVhZGVycyAqLywKLQkJCQk0RjE1MzRFMDExQjUzMzAyMDAyMUZEODYgLyogRWRpdGluZ0JlaGF2
aW9yVHlwZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTRGMTUzNEUwMTFCNTMzMDIwMDIxRkQ4NiAv
KiBFZGl0aW5nQmVoYXZpb3JUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzQUM2NDhCMjEyOUUx
NDY1MDBDM0VCMjUgLyogRWRpdGluZ0JvdW5kYXJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQk5QkFC
NkM2QzEyNTUwNjMxMDAxNjI2RDQgLyogRWRpdGluZ1N0eWxlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0QjMwNDNDRDBBRTAzNzNCMDBBODI2NDcgLyogRWRpdG9yLmggaW4gSGVhZGVycyAqLywKQEAg
LTMxODQ2LDE1ICszMTg4OCwxOCBAQAogCQkJCTFDNjYyNjExMUM2RTdDQTYwMEFCNTI3QyAvKiBG
b250RmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUMyNEVFQTUxQzcyOUNFNDAwODBGOEZDIC8q
IEZvbnRGYWNlU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzEyQUMyQjFFRTc3OEFFMDA3OUUw
QTAgLyogRm9udEZhbWlseVNwZWNpZmljYXRpb25Db3JlVGV4dC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJQkM0QTUzMkYyNTYwNTdDRDAwMjhDNTkyIC8qIEZvbnRMb2FkVGltaW5nT3ZlcnJpZGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTA4NDU2ODA4MTJCOTBEQTYwMDk2MEE5RiAvKiBGb250TWV0cmlj
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjUzMjBENkIxMjJBMjRFOTAwMkQxNDQwIC8qIEZvbnRQ
bGF0Zm9ybURhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3MUY0RkZDMEQyNUU3RjMwMEVDRTBE
NSAvKiBGb250UmFuZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzRBNTMzOTI1NjA2Mzk4MDAy
OEM1OTIgLyogRm9udFJlbmRlcmluZ01vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUMyQUIwQUY3
MUU2QjNDNkMwMDEzNDhDNSAvKiBGb250U2VsZWN0aW9uQWxnb3JpdGhtLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCMkMzREE2QjBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udFNlbGVjdG9yLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlFNDE5MDQxRjFDQzY0ODZCMDBDMzVGNUQgLyogRm9udFNlbGVjdG9yQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlGNDhEMkE2QzIxNTYyM0I0MDBDNjc1MkIgLyogRm9u
dFNoYWRvdy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEE2RTlGQzgxM0MxN0Q1NzAwNDZBN0Y4IC8q
IEZvbnRUYWdnZWRTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzIwMTVDMEExQkU2RkVC
MjAwODIyMzg5IC8qIEZvbnRWYXJpYW50QnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM0
QTUzMzEyNTYwNTkwMzAwMjhDNTkyIC8qIEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNEEwREEyRkYxMjlCMjQxOTAwQUI2MUUxIC8qIEZvcm1Bc3NvY2lhdGVk
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDA1Q0VEMkEwQTQwQkIyQzAwQzVBRjM4IC8q
IEZvcm1hdEJsb2NrQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NFNkNCRkIxODdGMzcw
NzAwRDQ2QkY1IC8qIEZvcm1hdENvbnZlcnRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTg3Miw2
ICszMTkxNyw3IEBACiAJCQkJQTg1MzEyM0QxMUQwNDcxQjAwRDREMDc3IC8qIEZyYWdtZW50U2Ny
aXB0aW5nUGVybWlzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVCRjAyMkYwOTc0ODE2MzAw
QzQzMTk2IC8qIEZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzRBODYyMzE0QjdBREJCMDAz
RkRDNzYgLyogRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlC
QzRBNTMyQjI1NjA1NjZFMDAyOEM1OTIgLyogRnJhbWVGbGF0dGVuaW5nLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjExNzgxODIyRTNDNDdGMDA4QkQ1NzAgLyogRnJhbWVJZGVudGlmaWVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk2NTZEMzczQzBBREJBNURFMDBBNDU1NEQgLyogRnJhbWVMb2FkZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTY1NkQzNzNFMEFEQkE1REUwMEE0NTU0RCAvKiBGcmFtZUxv
YWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjA3Myw2ICszMjExOSw3IEBACiAJCQkJ
OTNFMkEzMDcxMjNFOURDMDAwOUZFMTJBIC8qIEhUTUxQYXJzZXJJZGlvbXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTk3M0Y0MThBMTY5Qjk1RkYwMDA2QkY2MCAvKiBIVE1MUGFyc2VyT3B0aW9ucy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTc3QjM4NzExMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxQYXJz
ZXJTY2hlZHVsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDNEE1MzMzMjU2MDU5ODMwMDI4QzU5
MiAvKiBIVE1MUGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkNDMEU4NzYxQkZFNzBFOTAwOEY3RjUwIC8qIEhUTUxQaWN0dXJlRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTg3MUQ0NTYwQTEyN0NCQzAwQjEyQTY4IC8qIEhUTUxQbHVnSW5FbGVtZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NDE1MjkyRTBFMUFFOEEwMDBDNEEyRDAgLyogSFRNTFBs
dWdJbkltYWdlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMzY5MSw2ICszMzczOCw3IEBA
CiAJCQkJQTFERkQ1MjYyMzM0NTk0ODAwNDJGQ0RCIC8qIFBheW1lbnRTdW1tYXJ5SXRlbXMuaCBp
biBIZWFkZXJzICovLAogCQkJCUExNjc3REZEMjEzRTAwNjYwMEEwOEMzNCAvKiBQYXltZW50VmFs
aWRhdGlvbkVycm9ycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjI3NTM1NjUwQjA1MzgxNDAwMkNF
NjRGIC8qIFBERkRvY3VtZW50SW1hZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDNEE1MzI5MjU2
MDU2M0IwMDI4QzU5MiAvKiBQREZJbWFnZUNhY2hpbmdQb2xpY3kuaCBpbiBIZWFkZXJzICovLAog
CQkJCTVFMkM0MzUxMUJDRUUyRjYwMDAxRTJCQyAvKiBQZWVyQ29ubmVjdGlvbkJhY2tlbmQuaCBp
biBIZWFkZXJzICovLAogCQkJCTVFQkI4OTM5MUM3N0MzOTkwMEM2NUQ0MSAvKiBQZWVyTWVkaWFE
ZXNjcmlwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOEE3Q0M5NkIxMjA3NkQ3MzAwMUQ0NTg4
IC8qIFBlbmRpbmdTY3JpcHQuaCBpbiBIZWFkZXJzICovLApAQCAtMzQzOTUsNiArMzQ0NDMsNyBA
QAogCQkJCUU3RkJFN0MzMjRFQjJGQjYwMEExOEU2MiAvKiBTdGVyZW9QYW5uZXJPcHRpb25zLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQUMyRDg0NTE3MTczNEExMDA2NTJGQzAgLyogU3RvcmFnZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTFCRTM3RTAwREFFRTAwRTAwMTA4NUZDIC8qIFN0b3JhZ2VB
cmVhLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzRBNTMzNzI1NjA1QUUxMDAyOEM1OTIgLyogU3Rv
cmFnZUJsb2NraW5nUG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUUwQkFCQjBEQTU1NDcx
MDBBOUU0MTcgLyogU3RvcmFnZUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlDNUVCREQ4NDEw
NUVEREVDMDA1NjgxNkYgLyogU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTFFMEJCMzgwREE1QUNCNjAwQTlFNDE3IC8qIFN0b3JhZ2VNYXAuaCBpbiBIZWFkZXJz
ICovLApAQCAtMzQ3MTEsNiArMzQ3NjAsOCBAQAogCQkJCTE0MkI5N0NBMTMxMzg5NDMwMDhCRUY0
QiAvKiBUZXh0Q29udHJvbElubmVyRWxlbWVudHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU4MkRF
MzI1MUMzMEM4NTQwMEJFMDJBOCAvKiBUZXh0RGVjb3JhdGlvblBhaW50ZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFDNzNBNzE1MjE4NTc1ODcwMDRDQ0VBNSAvKiBUZXh0RGVjb3JhdGlvblRoaWNr
bmVzcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM0QTUzM0IyNTYwNjRFMTAwMjhDNTkyIC8qIFRl
eHREaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUJDNEE1MzI1MjU2MDU1NUYwMDI4QzU5
MiAvKiBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5N0JDODRCNDEyMzcxMTgwMDAwQzYxNjEgLyogVGV4dERvY3VtZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5N0JDODQ4NDEyMzZGRDkzMDAwQzYxNjEgLyogVGV4dERvY3VtZW50UGFy
c2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREE0NzBEMDA2QzFEMDBFRjZGMjYgLyogVGV4
dEVuY29kaW5nLmggaW4gSGVhZGVycyAqLywKQEAgLTM0ODM4LDYgKzM0ODg5LDcgQEAKIAkJCQlG
MzJCRENEOTIzNjNBQUNBMDA3M0I2QUUgLyogVXNlckdlc3R1cmVFbXVsYXRpb25TY29wZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMjU0MkY0REIxMTY2QzI1QTAwRTg5QTg2IC8qIFVzZXJHZXN0dXJl
SW5kaWNhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OTIwMzk4MzE4Qjk1QkM2MDBCMzlBRjkg
LyogVXNlcklucHV0QnJpZGdlLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzRBNTMyNzI1NjA1NUQz
MDAyOEM1OTIgLyogVXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNzFDOTE2MDgxRDE0ODNBMzAwQUNBNDdEIC8qIFVzZXJJbnRlcmZhY2VMYXlvdXREaXJl
Y3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTJFMTdEMTREMUMwMDQyMEFBMSAvKiBV
c2VyTWVkaWFDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTJGMTdEMTREMUMwMDQy
MEFBMSAvKiBVc2VyTWVkaWFDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9Gb3JjZWRBY2Nlc3NpYmlsaXR5
VmFsdWUuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Zv
cmNlZEFjY2Vzc2liaWxpdHlWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVt
IGNsYXNzIEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZSA6IHVpbnQ4X3QgeworICAgIFN5c3RlbSwK
KyAgICBPbiwKKyAgICBPZmYKK307CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250RmFjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNl
LmNwcAkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDU5LDkgKzQ1OSw5IEBAIEFsbG93VXNlckluc3RhbGxl
ZEZvbnRzIENTU0ZvbnRGYWNlOjphbGwKICAgICByZXR1cm4gQWxsb3dVc2VySW5zdGFsbGVkRm9u
dHM6OlllczsKIH0KIAotc3RhdGljIFNldHRpbmdzOjpGb250TG9hZFRpbWluZ092ZXJyaWRlIGZv
bnRMb2FkVGltaW5nT3ZlcnJpZGUoQ1NTRm9udFNlbGVjdG9yKiBmb250U2VsZWN0b3IpCitzdGF0
aWMgRm9udExvYWRUaW1pbmdPdmVycmlkZSBmb250TG9hZFRpbWluZ092ZXJyaWRlKENTU0ZvbnRT
ZWxlY3RvciogZm9udFNlbGVjdG9yKQogewotICAgIGF1dG8gb3ZlcnJpZGVWYWx1ZSA9IFNldHRp
bmdzOjpGb250TG9hZFRpbWluZ092ZXJyaWRlOjpOb25lOworICAgIGF1dG8gb3ZlcnJpZGVWYWx1
ZSA9IEZvbnRMb2FkVGltaW5nT3ZlcnJpZGU6Ok5vbmU7CiAgICAgaWYgKGZvbnRTZWxlY3RvciAm
JiBmb250U2VsZWN0b3ItPmRvY3VtZW50KCkpCiAgICAgICAgIG92ZXJyaWRlVmFsdWUgPSBmb250
U2VsZWN0b3ItPmRvY3VtZW50KCktPnNldHRpbmdzKCkuZm9udExvYWRUaW1pbmdPdmVycmlkZSgp
OwogICAgIHJldHVybiBvdmVycmlkZVZhbHVlOwpAQCAtNDcwLDcgKzQ3MCw3IEBAIHN0YXRpYyBT
ZXR0aW5nczo6Rm9udExvYWRUaW1pbmdPdmVycmlkZSAKIGF1dG8gQ1NTRm9udEZhY2U6OmZvbnRM
b2FkVGltaW5nKCkgY29uc3QgLT4gRm9udExvYWRUaW1pbmcKIHsKICAgICBzd2l0Y2ggKGZvbnRM
b2FkVGltaW5nT3ZlcnJpZGUobV9mb250U2VsZWN0b3IuZ2V0KCkpKSB7Ci0gICAgY2FzZSBTZXR0
aW5nczo6Rm9udExvYWRUaW1pbmdPdmVycmlkZTo6Tm9uZToKKyAgICBjYXNlIEZvbnRMb2FkVGlt
aW5nT3ZlcnJpZGU6Ok5vbmU6CiAgICAgICAgIHN3aXRjaCAobV9sb2FkaW5nQmVoYXZpb3IpIHsK
ICAgICAgICAgY2FzZSBGb250TG9hZGluZ0JlaGF2aW9yOjpBdXRvOgogICAgICAgICBjYXNlIEZv
bnRMb2FkaW5nQmVoYXZpb3I6OkJsb2NrOgpAQCAtNDgzLDExICs0ODMsMTEgQEAgYXV0byBDU1NG
b250RmFjZTo6Zm9udExvYWRUaW1pbmcoKSBjb25zdAogICAgICAgICAgICAgcmV0dXJuIHsgMC4x
X3MsIDBfcyB9OwogICAgICAgICB9CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgY2FzZSBTZXR0aW5nczo6Rm9udExvYWRUaW1pbmdPdmVycmlkZTo6QmxvY2s6Cisg
ICAgY2FzZSBGb250TG9hZFRpbWluZ092ZXJyaWRlOjpCbG9jazoKICAgICAgICAgcmV0dXJuIHsg
U2Vjb25kczo6aW5maW5pdHkoKSwgMF9zIH07Ci0gICAgY2FzZSBTZXR0aW5nczo6Rm9udExvYWRU
aW1pbmdPdmVycmlkZTo6U3dhcDoKKyAgICBjYXNlIEZvbnRMb2FkVGltaW5nT3ZlcnJpZGU6OlN3
YXA6CiAgICAgICAgIHJldHVybiB7IDBfcywgU2Vjb25kczo6aW5maW5pdHkoKSB9OwotICAgIGNh
c2UgU2V0dGluZ3M6OkZvbnRMb2FkVGltaW5nT3ZlcnJpZGU6OkZhaWx1cmU6CisgICAgY2FzZSBG
b250TG9hZFRpbWluZ092ZXJyaWRlOjpGYWlsdXJlOgogICAgICAgICByZXR1cm4geyAwX3MsIDBf
cyB9OwogICAgIH0KICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvY3NzL0ZvbnRMb2FkVGltaW5nT3ZlcnJpZGUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRUaW1pbmdPdmVycmlkZS5oCShub25leGlzdGVudCkK
KysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZFRpbWluZ092ZXJyaWRlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgRm9udExvYWRUaW1pbmdPdmVycmlkZSA6IHVp
bnQ4X3QgeworICAgIE5vbmUsCisgICAgQmxvY2ssCisgICAgU3dhcCwKKyAgICBGYWlsdXJlCit9
OworCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3Bw
CShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1
YXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxNSw5ICszMTUsOSBAQCBzdGF0aWMgYm9vbCBt
b25vY2hyb21lRXZhbHVhdGUoQ1NTVmFsdWUqCiB7CiAgICAgYm9vbCBpc01vbm9jaHJvbWU7CiAK
LSAgICBpZiAoZnJhbWUuc2V0dGluZ3MoKS5mb3JjZWREaXNwbGF5SXNNb25vY2hyb21lQWNjZXNz
aWJpbGl0eVZhbHVlKCkgPT0gU2V0dGluZ3M6OkZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZTo6T24p
CisgICAgaWYgKGZyYW1lLnNldHRpbmdzKCkuZm9yY2VkRGlzcGxheUlzTW9ub2Nocm9tZUFjY2Vz
c2liaWxpdHlWYWx1ZSgpID09IEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZTo6T24pCiAgICAgICAg
IGlzTW9ub2Nocm9tZSA9IHRydWU7Ci0gICAgZWxzZSBpZiAoZnJhbWUuc2V0dGluZ3MoKS5mb3Jj
ZWREaXNwbGF5SXNNb25vY2hyb21lQWNjZXNzaWJpbGl0eVZhbHVlKCkgPT0gU2V0dGluZ3M6OkZv
cmNlZEFjY2Vzc2liaWxpdHlWYWx1ZTo6T2ZmKQorICAgIGVsc2UgaWYgKGZyYW1lLnNldHRpbmdz
KCkuZm9yY2VkRGlzcGxheUlzTW9ub2Nocm9tZUFjY2Vzc2liaWxpdHlWYWx1ZSgpID09IEZvcmNl
ZEFjY2Vzc2liaWxpdHlWYWx1ZTo6T2ZmKQogICAgICAgICBpc01vbm9jaHJvbWUgPSBmYWxzZTsK
ICAgICBlbHNlCiAgICAgICAgIGlzTW9ub2Nocm9tZSA9IHNjcmVlbklzTW9ub2Nocm9tZShmcmFt
ZS5tYWluRnJhbWUoKS52aWV3KCkpOwpAQCAtMzMxLDkgKzMzMSw5IEBAIHN0YXRpYyBib29sIGlu
dmVydGVkQ29sb3JzRXZhbHVhdGUoQ1NTVmEKIHsKICAgICBib29sIGlzSW52ZXJ0ZWQ7CiAKLSAg
ICBpZiAoZnJhbWUuc2V0dGluZ3MoKS5mb3JjZWRDb2xvcnNBcmVJbnZlcnRlZEFjY2Vzc2liaWxp
dHlWYWx1ZSgpID09IFNldHRpbmdzOjpGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWU6Ok9uKQorICAg
IGlmIChmcmFtZS5zZXR0aW5ncygpLmZvcmNlZENvbG9yc0FyZUludmVydGVkQWNjZXNzaWJpbGl0
eVZhbHVlKCkgPT0gRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlOjpPbikKICAgICAgICAgaXNJbnZl
cnRlZCA9IHRydWU7Ci0gICAgZWxzZSBpZiAoZnJhbWUuc2V0dGluZ3MoKS5mb3JjZWRDb2xvcnNB
cmVJbnZlcnRlZEFjY2Vzc2liaWxpdHlWYWx1ZSgpID09IFNldHRpbmdzOjpGb3JjZWRBY2Nlc3Np
YmlsaXR5VmFsdWU6Ok9mZikKKyAgICBlbHNlIGlmIChmcmFtZS5zZXR0aW5ncygpLmZvcmNlZENv
bG9yc0FyZUludmVydGVkQWNjZXNzaWJpbGl0eVZhbHVlKCkgPT0gRm9yY2VkQWNjZXNzaWJpbGl0
eVZhbHVlOjpPZmYpCiAgICAgICAgIGlzSW52ZXJ0ZWQgPSBmYWxzZTsKICAgICBlbHNlCiAgICAg
ICAgIGlzSW52ZXJ0ZWQgPSBzY3JlZW5IYXNJbnZlcnRlZENvbG9ycygpOwpAQCAtNDU5LDkgKzQ1
OSw5IEBAIHN0YXRpYyBib29sIGR5bmFtaWNSYW5nZUV2YWx1YXRlKENTU1ZhbHUKIAogICAgIGJv
b2wgc3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlOwogCi0gICAgaWYgKGZyYW1lLnNldHRpbmdzKCku
Zm9yY2VkU3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlVmFsdWUoKSA9PSBTZXR0aW5nczo6Rm9yY2Vk
QWNjZXNzaWJpbGl0eVZhbHVlOjpPbikKKyAgICBpZiAoZnJhbWUuc2V0dGluZ3MoKS5mb3JjZWRT
dXBwb3J0c0hpZ2hEeW5hbWljUmFuZ2VWYWx1ZSgpID09IEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1
ZTo6T24pCiAgICAgICAgIHN1cHBvcnRzSGlnaER5bmFtaWNSYW5nZSA9IHRydWU7Ci0gICAgZWxz
ZSBpZiAoZnJhbWUuc2V0dGluZ3MoKS5mb3JjZWRTdXBwb3J0c0hpZ2hEeW5hbWljUmFuZ2VWYWx1
ZSgpID09IFNldHRpbmdzOjpGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWU6Ok9mZikKKyAgICBlbHNl
IGlmIChmcmFtZS5zZXR0aW5ncygpLmZvcmNlZFN1cHBvcnRzSGlnaER5bmFtaWNSYW5nZVZhbHVl
KCkgPT0gRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlOjpPZmYpCiAgICAgICAgIHN1cHBvcnRzSGln
aER5bmFtaWNSYW5nZSA9IGZhbHNlOwogICAgIGVsc2UKICAgICAgICAgc3VwcG9ydHNIaWdoRHlu
YW1pY1JhbmdlID0gc2NyZWVuU3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlKGZyYW1lLm1haW5GcmFt
ZSgpLnZpZXcoKSk7CkBAIC04MjUsMTIgKzgyNSwxMiBAQCBzdGF0aWMgYm9vbCBwcmVmZXJzUmVk
dWNlZE1vdGlvbkV2YWx1YXRlCiAgICAgYm9vbCB1c2VyUHJlZmVyc1JlZHVjZWRNb3Rpb24gPSBm
YWxzZTsKIAogICAgIHN3aXRjaCAoZnJhbWUuc2V0dGluZ3MoKS5mb3JjZWRQcmVmZXJzUmVkdWNl
ZE1vdGlvbkFjY2Vzc2liaWxpdHlWYWx1ZSgpKSB7Ci0gICAgY2FzZSBTZXR0aW5nczo6Rm9yY2Vk
QWNjZXNzaWJpbGl0eVZhbHVlOjpPbjoKKyAgICBjYXNlIEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1
ZTo6T246CiAgICAgICAgIHVzZXJQcmVmZXJzUmVkdWNlZE1vdGlvbiA9IHRydWU7CiAgICAgICAg
IGJyZWFrOwotICAgIGNhc2UgU2V0dGluZ3M6OkZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZTo6T2Zm
OgorICAgIGNhc2UgRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlOjpPZmY6CiAgICAgICAgIGJyZWFr
OwotICAgIGNhc2UgU2V0dGluZ3M6OkZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZTo6U3lzdGVtOgor
ICAgIGNhc2UgRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlOjpTeXN0ZW06CiAjaWYgVVNFKE5FV19U
SEVNRSkgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICAgICAgdXNlclByZWZlcnNSZWR1Y2Vk
TW90aW9uID0gVGhlbWU6OnNpbmdsZXRvbigpLnVzZXJQcmVmZXJzUmVkdWNlZE1vdGlvbigpOwog
I2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDI2OTgzMCkKKysr
IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1MDgs
NyArNzUwOCw3IEBAIHZvaWQgRG9jdW1lbnQ6OmFwcGx5UXVpY2tMb29rU2FuZGJveCgpCiAgICAg
QVNTRVJUKHJlc3BvbnNlVVJMLnByb3RvY29sSXMoUUxQcmV2aWV3UHJvdG9jb2wpKTsKIAogICAg
IGF1dG8gc2VjdXJpdHlPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlTm9uTG9jYWxXaXRo
QWxsb3dlZEZpbGVQYXRoKHJlc3BvbnNlVVJMLCBkb2N1bWVudFVSTC5maWxlU3lzdGVtUGF0aCgp
KTsKLSAgICBzZWN1cml0eU9yaWdpbi0+c2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KFNlY3VyaXR5
T3JpZ2luOjpCbG9ja0FsbFN0b3JhZ2UpOworICAgIHNlY3VyaXR5T3JpZ2luLT5zZXRTdG9yYWdl
QmxvY2tpbmdQb2xpY3koU3RvcmFnZUJsb2NraW5nUG9saWN5OjpCbG9ja0FsbCk7CiAgICAgc2V0
U2VjdXJpdHlPcmlnaW5Qb2xpY3koU2VjdXJpdHlPcmlnaW5Qb2xpY3k6OmNyZWF0ZShXVEZNb3Zl
KHNlY3VyaXR5T3JpZ2luKSkpOwogCiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4g
cXVpY2tMb29rQ1NQID0gbWFrZVN0cmluZygiZGVmYXVsdC1zcmMgIiwgUUxQcmV2aWV3UHJvdG9j
b2wsICI6ICd1bnNhZmUtaW5saW5lJzsgYmFzZS11cmkgJ25vbmUnOyBzYW5kYm94IGFsbG93LXNh
bWUtb3JpZ2luIGFsbG93LXNjcmlwdHMiKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdGFibGVMaW5rQmVoYXZpb3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRhYmxlTGlua0JlaGF2aW9yLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0YWJsZUxpbmtCZWhhdmlvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitlbnVtIGNsYXNzIEVkaXRhYmxlTGlua0JlaGF2aW9yIDogdWludDhfdCB7CisgICAgRGVm
YXVsdCwKKyAgICBBbHdheXNMaXZlLAorICAgIE9ubHlMaXZlV2l0aFNoaWZ0S2V5LAorICAgIExp
dmVXaGVuTm90Rm9jdXNlZCwKKyAgICBOZXZlckxpdmUKK307CisKK30KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0aW5nQmVoYXZpb3IuaAkocmV2aXNpb24gMjY5ODMwKQorKysgU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQmVoYXZpb3IuaAkod29ya2luZyBjb3B5KQpAQCAt
MjAsMTIgKzIwLDExIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiRWRpdGluZ0JlaGF2
aW9yVHlwZXMuaCIKKyNpbmNsdWRlICJFZGl0aW5nQmVoYXZpb3JUeXBlLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgRWRpdGluZ0JlaGF2aW9yIHsKLQogcHVibGljOgogICAgIGV4
cGxpY2l0IEVkaXRpbmdCZWhhdmlvcihFZGl0aW5nQmVoYXZpb3JUeXBlIHR5cGUpCiAgICAgICAg
IDogbV90eXBlKHR5cGUpCkBAIC00MCw2NyArMzksNjcgQEAgcHVibGljOgogICAgIC8vIGNvbnRl
bnQgb24gTWFjLgogICAgIGJvb2wgc2hvdWxkTW92ZUNhcmV0VG9Ib3Jpem9udGFsQm91bmRhcnlX
aGVuUGFzdFRvcE9yQm90dG9tKCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBtX3R5cGUg
IT0gRWRpdGluZ1dpbmRvd3NCZWhhdmlvcjsKKyAgICAgICAgcmV0dXJuIG1fdHlwZSAhPSBFZGl0
aW5nQmVoYXZpb3JUeXBlOjpXaW5kb3dzOwogICAgIH0KIAogICAgIC8vIE9uIFdpbmRvd3MsIHNl
bGVjdGlvbnMgc2hvdWxkIGFsd2F5cyBiZSBjb25zaWRlcmVkIGFzIGRpcmVjdGlvbmFsLCByZWdh
cmRsZXNzIGlmIGl0IGlzCiAgICAgLy8gbW91c2UtYmFzZWQgb3Iga2V5Ym9hcmQtYmFzZWQuCi0g
ICAgYm9vbCBzaG91bGRDb25zaWRlclNlbGVjdGlvbkFzRGlyZWN0aW9uYWwoKSBjb25zdCB7IHJl
dHVybiBtX3R5cGUgIT0gRWRpdGluZ01hY0JlaGF2aW9yICYmIG1fdHlwZSAhPSBFZGl0aW5nSU9T
QmVoYXZpb3I7IH0KKyAgICBib29sIHNob3VsZENvbnNpZGVyU2VsZWN0aW9uQXNEaXJlY3Rpb25h
bCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSAhPSBFZGl0aW5nQmVoYXZpb3JUeXBlOjpNYWMgJiYg
bV90eXBlICE9IEVkaXRpbmdCZWhhdmlvclR5cGU6OklvczsgfQogCiAgICAgLy8gT24gTWFjLCB3
aGVuIHJldmVhbGluZyBhIHNlbGVjdGlvbiAoZm9yIGV4YW1wbGUgYXMgYSByZXN1bHQgb2YgYSBG
aW5kIG9wZXJhdGlvbiBvbiB0aGUgQnJvd3NlciksCiAgICAgLy8gY29udGVudCBzaG91bGQgYmUg
c2Nyb2xsZWQgc3VjaCB0aGF0IHRoZSBzZWxlY3Rpb24gZ2V0cyBjZXJ0ZXIgYWxpZ25lZC4KLSAg
ICBib29sIHNob3VsZENlbnRlckFsaWduV2hlblNlbGVjdGlvbklzUmV2ZWFsZWQoKSBjb25zdCB7
IHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ01hY0JlaGF2aW9yIHx8IG1fdHlwZSA9PSBFZGl0aW5n
SU9TQmVoYXZpb3I7IH0KKyAgICBib29sIHNob3VsZENlbnRlckFsaWduV2hlblNlbGVjdGlvbklz
UmV2ZWFsZWQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ0JlaGF2aW9yVHlwZTo6
TWFjIHx8IG1fdHlwZSA9PSBFZGl0aW5nQmVoYXZpb3JUeXBlOjpJb3M7IH0KIAogICAgIC8vIE9u
IE1hYywgc3R5bGUgaXMgY29uc2lkZXJlZCBwcmVzZW50IHdoZW4gcHJlc2VudCBhdCB0aGUgYmVn
aW5uaW5nIG9mIHNlbGVjdGlvbi4gT24gb3RoZXIgcGxhdGZvcm1zLAogICAgIC8vIHN0eWxlIGhh
cyB0byBiZSBwcmVzZW50IHRocm91Z2hvdXQgdGhlIHNlbGVjdGlvbi4KLSAgICBib29sIHNob3Vs
ZFRvZ2dsZVN0eWxlQmFzZWRPblN0YXJ0T2ZTZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3R5
cGUgPT0gRWRpdGluZ01hY0JlaGF2aW9yIHx8IG1fdHlwZSA9PSBFZGl0aW5nSU9TQmVoYXZpb3I7
IH0KKyAgICBib29sIHNob3VsZFRvZ2dsZVN0eWxlQmFzZWRPblN0YXJ0T2ZTZWxlY3Rpb24oKSBj
b25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ0JlaGF2aW9yVHlwZTo6TWFjIHx8IG1fdHlw
ZSA9PSBFZGl0aW5nQmVoYXZpb3JUeXBlOjpJb3M7IH0KIAogICAgIC8vIFN0YW5kYXJkIE1hYyBi
ZWhhdmlvciB3aGVuIGV4dGVuZGluZyB0byBhIGJvdW5kYXJ5IGlzIGdyb3cgdGhlIHNlbGVjdGlv
biByYXRoZXIgdGhhbiBsZWF2aW5nIHRoZSBiYXNlCiAgICAgLy8gaW4gcGxhY2UgYW5kIG1vdmlu
ZyB0aGUgZXh0ZW50LiBNYXRjaGVzIE5TVGV4dFZpZXcuCi0gICAgYm9vbCBzaG91bGRBbHdheXNH
cm93U2VsZWN0aW9uV2hlbkV4dGVuZGluZ1RvQm91bmRhcnkoKSBjb25zdCB7IHJldHVybiBtX3R5
cGUgPT0gRWRpdGluZ01hY0JlaGF2aW9yIHx8IG1fdHlwZSA9PSBFZGl0aW5nSU9TQmVoYXZpb3I7
IH0KKyAgICBib29sIHNob3VsZEFsd2F5c0dyb3dTZWxlY3Rpb25XaGVuRXh0ZW5kaW5nVG9Cb3Vu
ZGFyeSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBFZGl0aW5nQmVoYXZpb3JUeXBlOjpNYWMg
fHwgbV90eXBlID09IEVkaXRpbmdCZWhhdmlvclR5cGU6OklvczsgfQogCiAgICAgLy8gT24gTWFj
LCB3aGVuIHByb2Nlc3NpbmcgYSBjb250ZXh0dWFsIGNsaWNrLCB0aGUgb2JqZWN0IGJlaW5nIGNs
aWNrZWQgdXBvbiBzaG91bGQgYmUgc2VsZWN0ZWQuCi0gICAgYm9vbCBzaG91bGRTZWxlY3RPbkNv
bnRleHR1YWxNZW51Q2xpY2soKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ01hY0Jl
aGF2aW9yOyB9CisgICAgYm9vbCBzaG91bGRTZWxlY3RPbkNvbnRleHR1YWxNZW51Q2xpY2soKSBj
b25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ0JlaGF2aW9yVHlwZTo6TWFjOyB9CiAKICAg
ICAvLyBPbiBMaW51eCwgc2hvdWxkIGJlIGFibGUgdG8gZ2V0IGFuZCBpbnNlcnQgc3BlbGxpbmcg
c3VnZ2VzdGlvbnMgd2l0aG91dCBzZWxlY3RpbmcgdGhlIG1pc3NwZWxsZWQgd29yZC4KICAgICBi
b29sIHNob3VsZEFsbG93U3BlbGxpbmdTdWdnZXN0aW9uc1dpdGhvdXRTZWxlY3Rpb24oKSBjb25z
dAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fdHlwZSA9PSBFZGl0aW5nVW5peEJlaGF2aW9yOwor
ICAgICAgICByZXR1cm4gbV90eXBlID09IEVkaXRpbmdCZWhhdmlvclR5cGU6OlVuaXg7CiAgICAg
fQogICAgIAogICAgIC8vIE9uIE1hYyBhbmQgV2luZG93cywgcHJlc3NpbmcgYmFja3NwYWNlICh3
aGVuIGl0IGlzbid0IGhhbmRsZWQgb3RoZXJ3aXNlKSBzaG91bGQgbmF2aWdhdGUgYmFjay4KICAg
ICBib29sIHNob3VsZE5hdmlnYXRlQmFja09uQmFja3NwYWNlKCkgY29uc3QKICAgICB7Ci0gICAg
ICAgIHJldHVybiBtX3R5cGUgIT0gRWRpdGluZ1VuaXhCZWhhdmlvcjsKKyAgICAgICAgcmV0dXJu
IG1fdHlwZSAhPSBFZGl0aW5nQmVoYXZpb3JUeXBlOjpVbml4OwogICAgIH0KIAogICAgIC8vIE9u
IE1hYywgc2VsZWN0aW5nIGJhY2t3YXJkcyBieSB3b3JkL2xpbmUgZnJvbSB0aGUgbWlkZGxlIG9m
IGEgd29yZC9saW5lLCBhbmQgdGhlbiBnb2luZwogICAgIC8vIGZvcndhcmQgbGVhdmVzIHRoZSBj
YXJldCBiYWNrIGluIHRoZSBtaWRkbGUgd2l0aCBubyBzZWxlY3Rpb24sIGluc3RlYWQgb2YgZGly
ZWN0bHkgc2VsZWN0aW5nCiAgICAgLy8gdG8gdGhlIG90aGVyIGVuZCBvZiB0aGUgbGluZS93b3Jk
IChVbml4L1dpbmRvd3MgYmVoYXZpb3IpLgotICAgIGJvb2wgc2hvdWxkRXh0ZW5kU2VsZWN0aW9u
QnlXb3JkT3JMaW5lQWNyb3NzQ2FyZXQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgIT0gRWRpdGlu
Z01hY0JlaGF2aW9yICYmIG1fdHlwZSAhPSBFZGl0aW5nSU9TQmVoYXZpb3I7IH0KKyAgICBib29s
IHNob3VsZEV4dGVuZFNlbGVjdGlvbkJ5V29yZE9yTGluZUFjcm9zc0NhcmV0KCkgY29uc3QgeyBy
ZXR1cm4gbV90eXBlICE9IEVkaXRpbmdCZWhhdmlvclR5cGU6Ok1hYyAmJiBtX3R5cGUgIT0gRWRp
dGluZ0JlaGF2aW9yVHlwZTo6SW9zOyB9CiAKICAgICAvLyBCYXNlZCBvbiBuYXRpdmUgYmVoYXZp
b3IsIHdoZW4gdXNpbmcgY3RybChhbHQpK2Fycm93IHRvIG1vdmUgY2FyZXQgYnkgd29yZCwgY3Ry
bChhbHQpK2xlZnQgYXJyb3cgbW92ZXMgY2FyZXQgdG8KICAgICAvLyBpbW1lZGlhdGVseSBiZWZv
cmUgdGhlIHdvcmQgaW4gYWxsIHBsYXRmb3JtcywgZm9yIGV4YW1wbGUsIHRoZSB3b3JkIGJyZWFr
IHBvc2l0aW9ucyBhcmU6ICJ8YWJjIHxkZWYgfGhpaiB8b3BxIi4KICAgICAvLyBCdXQgY3RybCty
aWdodCBhcnJvdyBtb3ZlcyBjYXJldCB0byAiYWJjIHxkZWYgfGhpaiB8b3BxIiBvbiBXaW5kb3dz
IGFuZCAiYWJjfCBkZWZ8IGhpanwgb3BxfCIgb24gTWFjIGFuZCBMaW51eC4KLSAgICBib29sIHNo
b3VsZFNraXBTcGFjZVdoZW5Nb3ZpbmdSaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBF
ZGl0aW5nV2luZG93c0JlaGF2aW9yOyB9CisgICAgYm9vbCBzaG91bGRTa2lwU3BhY2VXaGVuTW92
aW5nUmlnaHQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ0JlaGF2aW9yVHlwZTo6
V2luZG93czsgfQogCiAgICAgLy8gT24gaU9TIHRoZSBsYXN0IGVudGVyZWQgY2hhcmFjdGVyIGlu
IGEgc2VjdXJlIGZpbGVkIGlzIHNob3duIG1vbWVudGFyaWx5LCByZW1vdmluZyBhbmQgYWRkaW5n
IGJhY2sgdGhlCiAgICAgLy8gc3BhY2Ugd2hlbiBkZWxldGluZyBwYXNzd29yZCBjYXVzZSBzcGFj
ZSBiZWVuIHNob3dlZCBpbnNlY3VyZWx5LgotICAgIGJvb2wgc2hvdWxkUmViYWxhbmNlV2hpdGVT
cGFjZXNJblNlY3VyZUZpZWxkKCkgY29uc3QgeyByZXR1cm4gbV90eXBlICE9IEVkaXRpbmdJT1NC
ZWhhdmlvcjsgfQorICAgIGJvb2wgc2hvdWxkUmViYWxhbmNlV2hpdGVTcGFjZXNJblNlY3VyZUZp
ZWxkKCkgY29uc3QgeyByZXR1cm4gbV90eXBlICE9IEVkaXRpbmdCZWhhdmlvclR5cGU6Oklvczsg
fQogCi0gICAgYm9vbCBzaG91bGRTZWxlY3RCYXNlZE9uRGljdGlvbmFyeUxvb2t1cCgpIGNvbnN0
IHsgcmV0dXJuIG1fdHlwZSA9PSBFZGl0aW5nTWFjQmVoYXZpb3I7IH0KKyAgICBib29sIHNob3Vs
ZFNlbGVjdEJhc2VkT25EaWN0aW9uYXJ5TG9va3VwKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09
IEVkaXRpbmdCZWhhdmlvclR5cGU6Ok1hYzsgfQogCiAgICAgLy8gTGludXggYW5kIFdpbmRvd3Mg
YWx3YXlzIGV4dGVuZCBzZWxlY3Rpb25zIGZyb20gdGhlIGV4dGVudCBlbmRwb2ludC4KLSAgICBi
b29sIHNob3VsZEFsd2F5c0V4dGVuZFNlbGVjdGlvbkZyb21FeHRlbnRFbmRwb2ludCgpIGNvbnN0
IHsgcmV0dXJuIG1fdHlwZSAhPSBFZGl0aW5nTWFjQmVoYXZpb3IgJiYgbV90eXBlICE9IEVkaXRp
bmdJT1NCZWhhdmlvcjsgfQorICAgIGJvb2wgc2hvdWxkQWx3YXlzRXh0ZW5kU2VsZWN0aW9uRnJv
bUV4dGVudEVuZHBvaW50KCkgY29uc3QgeyByZXR1cm4gbV90eXBlICE9IEVkaXRpbmdCZWhhdmlv
clR5cGU6Ok1hYyAmJiBtX3R5cGUgIT0gRWRpdGluZ0JlaGF2aW9yVHlwZTo6SW9zOyB9CiAKICAg
ICAvLyBPbiBpT1MsIHdlIGRvbid0IHdhbnQgdG8gc2VsZWN0IGFsbCB0aGUgdGV4dCB3aGVuIGZv
Y3VzaW5nIGEgZmllbGQuIEluc3RlYWQsIG1hdGNoIHBsYXRmb3JtIGJlaGF2aW9yIGJ5IGdvaW5n
IHRvIHRoZSBlbmQgb2YgdGhlIGxpbmUuCi0gICAgYm9vbCBzaG91bGRNb3ZlU2VsZWN0aW9uVG9F
bmRXaGVuRm9jdXNpbmdUZXh0SW5wdXQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGlu
Z0lPU0JlaGF2aW9yOyB9CisgICAgYm9vbCBzaG91bGRNb3ZlU2VsZWN0aW9uVG9FbmRXaGVuRm9j
dXNpbmdUZXh0SW5wdXQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ0JlaGF2aW9y
VHlwZTo6SW9zOyB9CiAgICAgCiAgICAgLy8gT24gaU9TLCB3aGVuIHNtYXJ0IGRlbGV0ZSBpcyBv
biwgaXQgaXMgYWx3YXlzIG9uLCBhbmQgc2hvdWxkIGRvIG5vdCBhZGRpdGlvbmFsIGNoZWNrcyAo
aS5lLiBUZXh0R3JhbnVsYXJpdHk6OldvcmRHcmFudWxhcml0eSkuCi0gICAgYm9vbCBzaG91bGRB
bHdheXNTbWFydERlbGV0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBFZGl0aW5nSU9TQmVo
YXZpb3I7IH0KKyAgICBib29sIHNob3VsZEFsd2F5c1NtYXJ0RGVsZXRlKCkgY29uc3QgeyByZXR1
cm4gbV90eXBlID09IEVkaXRpbmdCZWhhdmlvclR5cGU6OklvczsgfQogICAgIAogICAgIC8vIE9u
IGlPUywgd2Ugc2hvdWxkIHR1cm4gb24gc21hcnQgaW5zZXJ0IGFuZCBkZWxldGUgYW5kIG5ld2xp
bmVzIGFyb3VuZCBwYXJhZ3JhcGhzIHRvIG1hdGNoIFVJS2l0IGJlaGF2aW91ci4KLSAgICBib29s
IHNob3VsZFNtYXJ0SW5zZXJ0RGVsZXRlUGFyYWdyYXBocygpIGNvbnN0IHsgcmV0dXJuIG1fdHlw
ZSA9PSBFZGl0aW5nSU9TQmVoYXZpb3I7IH0KKyAgICBib29sIHNob3VsZFNtYXJ0SW5zZXJ0RGVs
ZXRlUGFyYWdyYXBocygpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBFZGl0aW5nQmVoYXZpb3JU
eXBlOjpJb3M7IH0KIAogcHJpdmF0ZToKICAgICBFZGl0aW5nQmVoYXZpb3JUeXBlIG1fdHlwZTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yVHlwZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yVHlwZS5oCShu
b25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yVHlw
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNw
cmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIFRoZXJlIGFyZSBtdWx0aXBs
ZSBlZGl0aW5nIGRldGFpbHMgdGhhdCBhcmUgZGlmZmVyZW50IG9uIFdpbmRvd3MgdGhhbiBNYWNp
bnRvc2guCisvLyBXZSB1c2UgYSBzaW5nbGUgc3dpdGNoIGZvciBhbGwgb2YgdGhlbS4gU29tZSBl
eGFtcGxlczoKKy8vCisvLyAgICAxKSBDbGlja2luZyBiZWxvdyB0aGUgbGFzdCBsaW5lIG9mIGFu
IGVkaXRhYmxlIGFyZWEgcHV0cyB0aGUgY2FyZXQgYXQgdGhlIGVuZAorLy8gICAgICAgb2YgdGhl
IGxhc3QgbGluZSBvbiBNYWMsIGJ1dCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBsYXN0IGxpbmUgb24g
V2luZG93cy4KKy8vICAgIDIpIFB1c2hpbmcgdGhlIGRvd24gYXJyb3cga2V5IG9uIHRoZSBsYXN0
IGxpbmUgcHV0cyB0aGUgY2FyZXQgYXQgdGhlIGVuZCBvZiB0aGUKKy8vICAgICAgIGxhc3QgbGlu
ZSBvbiBNYWMsIGJ1dCBkb2VzIG5vdGhpbmcgb24gV2luZG93cy4gQSBzaW1pbGFyIGNhc2UgZXhp
c3RzIG9uIHRoZQorLy8gICAgICAgdG9wIGxpbmUuCisvLworLy8gVGhpcyBzZXR0aW5nIGlzIGlu
dGVuZGVkIHRvIGNvbnRyb2wgdGhlc2Ugc29ydHMgb2YgYmVoYXZpb3JzLiBUaGVyZSBhcmUgc29t
ZSBvdGhlcgorLy8gYmVoYXZpb3JzIHdpdGggaW5kaXZpZHVhbCBmdW5jdGlvbiBjYWxscyBvbiBF
ZGl0b3JDbGllbnQgKHNtYXJ0IGNvcHkgYW5kIHBhc3RlIGFuZAorLy8gc2VsZWN0aW5nIHRoZSBz
cGFjZSBhZnRlciBhIGRvdWJsZSBjbGljaykgdGhhdCBjb3VsZCBiZSBjb21iaW5lZCB3aXRoIHRo
aXMgaWYKKy8vIGlmIHBvc3NpYmxlIGluIHRoZSBmdXR1cmUuCitlbnVtIGNsYXNzIEVkaXRpbmdC
ZWhhdmlvclR5cGUgOiB1aW50OF90IHsKKyAgICBNYWMsCisgICAgV2luZG93cywKKyAgICBVbml4
LAorICAgIElvcworfTsKKworfSAvLyBXZWJDb3JlIG5hbWVzcGFjZQpJbmRleDogU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0aW5nQmVoYXZpb3JUeXBlcy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yVHlwZXMuaAkocmV2aXNpb24gMjY5ODMw
KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQmVoYXZpb3JUeXBlcy5oCShub25l
eGlzdGVudCkKQEAgLTEsNDUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKLSAqIENvcHlyaWdodCAo
QykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
LSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
LSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNwcmFnbWEgb25jZQotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLS8vIFRoZXJlIGFyZSBtdWx0aXBsZSBlZGl0aW5nIGRldGFp
bHMgdGhhdCBhcmUgZGlmZmVyZW50IG9uIFdpbmRvd3MgdGhhbiBNYWNpbnRvc2guCi0vLyBXZSB1
c2UgYSBzaW5nbGUgc3dpdGNoIGZvciBhbGwgb2YgdGhlbS4gU29tZSBleGFtcGxlczoKLS8vCi0v
LyAgICAxKSBDbGlja2luZyBiZWxvdyB0aGUgbGFzdCBsaW5lIG9mIGFuIGVkaXRhYmxlIGFyZWEg
cHV0cyB0aGUgY2FyZXQgYXQgdGhlIGVuZAotLy8gICAgICAgb2YgdGhlIGxhc3QgbGluZSBvbiBN
YWMsIGJ1dCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBsYXN0IGxpbmUgb24gV2luZG93cy4KLS8vICAg
IDIpIFB1c2hpbmcgdGhlIGRvd24gYXJyb3cga2V5IG9uIHRoZSBsYXN0IGxpbmUgcHV0cyB0aGUg
Y2FyZXQgYXQgdGhlIGVuZCBvZiB0aGUKLS8vICAgICAgIGxhc3QgbGluZSBvbiBNYWMsIGJ1dCBk
b2VzIG5vdGhpbmcgb24gV2luZG93cy4gQSBzaW1pbGFyIGNhc2UgZXhpc3RzIG9uIHRoZQotLy8g
ICAgICAgdG9wIGxpbmUuCi0vLwotLy8gVGhpcyBzZXR0aW5nIGlzIGludGVuZGVkIHRvIGNvbnRy
b2wgdGhlc2Ugc29ydHMgb2YgYmVoYXZpb3JzLiBUaGVyZSBhcmUgc29tZSBvdGhlcgotLy8gYmVo
YXZpb3JzIHdpdGggaW5kaXZpZHVhbCBmdW5jdGlvbiBjYWxscyBvbiBFZGl0b3JDbGllbnQgKHNt
YXJ0IGNvcHkgYW5kIHBhc3RlIGFuZAotLy8gc2VsZWN0aW5nIHRoZSBzcGFjZSBhZnRlciBhIGRv
dWJsZSBjbGljaykgdGhhdCBjb3VsZCBiZSBjb21iaW5lZCB3aXRoIHRoaXMgaWYKLS8vIGlmIHBv
c3NpYmxlIGluIHRoZSBmdXR1cmUuCi1lbnVtIEVkaXRpbmdCZWhhdmlvclR5cGUgewotICAgIEVk
aXRpbmdNYWNCZWhhdmlvciwKLSAgICBFZGl0aW5nV2luZG93c0JlaGF2aW9yLAotICAgIEVkaXRp
bmdVbml4QmVoYXZpb3IsCi0gICAgRWRpdGluZ0lPU0JlaGF2aW9yCi19OwotCi19IC8vIFdlYkNv
cmUgbmFtZXNwYWNlCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRpbmdCZWhhdmlvclR5cGVzLmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxl
CiMjIC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4MCw3ICsy
ODAsNyBAQCBWaXNpYmxlU2VsZWN0aW9uIEVkaXRvcjo6c2VsZWN0aW9uRm9yQ29tCiAvLyBGdW5j
dGlvbiBjb25zaWRlcnMgTWFjIGVkaXRpbmcgYmVoYXZpb3IgYSBmYWxsYmFjayB3aGVuIFBhZ2Ug
b3IgU2V0dGluZ3MgaXMgbm90IGF2YWlsYWJsZS4KIEVkaXRpbmdCZWhhdmlvciBFZGl0b3I6OmJl
aGF2aW9yKCkgY29uc3QKIHsKLSAgICByZXR1cm4gRWRpdGluZ0JlaGF2aW9yKG1fZG9jdW1lbnQu
c2V0dGluZ3MoKS5lZGl0aW5nQmVoYXZpb3JUeXBlKCkpOworICAgIHJldHVybiBtX2RvY3VtZW50
LmVkaXRpbmdCZWhhdmlvcigpOwogfQogCiBFZGl0b3JDbGllbnQqIEVkaXRvcjo6Y2xpZW50KCkg
Y29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAJKHJldmlzaW9uIDI2OTgzMCkK
KysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTgwLDcgKzE4MCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxQYWdlPiBjcmVhdGVQYWdlRm9yU2FuaXQK
ICAgICBhdXRvIHBhZ2UgPSBtYWtlVW5pcXVlPFBhZ2U+KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRp
b24pKTsKICAgICBwYWdlLT5zZXR0aW5ncygpLnNldE1lZGlhRW5hYmxlZChmYWxzZSk7CiAgICAg
cGFnZS0+c2V0dGluZ3MoKS5zZXRTY3JpcHRFbmFibGVkKGZhbHNlKTsKLSAgICBwYWdlLT5zZXR0
aW5ncygpLnNldFBhcnNlclNjcmlwdGluZ0ZsYWdQb2xpY3koU2V0dGluZ3NCYXNlOjpQYXJzZXJT
Y3JpcHRpbmdGbGFnUG9saWN5OjpFbmFibGVkKTsKKyAgICBwYWdlLT5zZXR0aW5ncygpLnNldEhU
TUxQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5KEhUTUxQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5
OjpFbmFibGVkKTsKICAgICBwYWdlLT5zZXR0aW5ncygpLnNldFBsdWdpbnNFbmFibGVkKGZhbHNl
KTsKICAgICBwYWdlLT5zZXR0aW5ncygpLnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVk
KGZhbHNlKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0
aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0
ZWN0aW9uLmgJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29j
b2EvRGF0YURldGVjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw4ICsyNywxMCBAQAogCiAj
aWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQogCisjaW1wb3J0ICJEYXRhRGV0ZWN0b3JUeXBlcy5o
IgogI2ltcG9ydCAiRmxvYXRSZWN0LmgiCiAjaW1wb3J0ICJTaW1wbGVSYW5nZS5oIgorI2ltcG9y
dCA8d3RmL09wdGlvblNldC5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiBPQkpDX0NM
QVNTIEREQWN0aW9uQ29udGV4dDsKQEAgLTM5LDE3ICs0MSw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgSGl0VGVzdFJlc3VsdDsKIAotLy8gRklYTUU6IFdvdWxkIGJlIGJldHRlciB0
byB1c2UgYW4gT3B0aW9uU2V0IGFuZCB1aW50OF90LgotZW51bSBjbGFzcyBEYXRhRGV0ZWN0b3JU
eXBlcyA6IHVpbnQzMl90IHsKLSAgICBQaG9uZU51bWJlciA9IDEgPDwgMCwKLSAgICBMaW5rID0g
MSA8PCAxLAotICAgIEFkZHJlc3MgPSAxIDw8IDIsCi0gICAgQ2FsZW5kYXJFdmVudCA9IDEgPDwg
MywKLSAgICBUcmFja2luZ051bWJlciA9IDEgPDwgNCwKLSAgICBGbGlnaHROdW1iZXIgPSAxIDw8
IDUsCi0gICAgTG9va3VwU3VnZ2VzdGlvbiA9IDEgPDwgNiwKLX07Ci0KIHN0cnVjdCBEZXRlY3Rl
ZEl0ZW0gewogICAgIFJldGFpblB0cjxEREFjdGlvbkNvbnRleHQ+IGFjdGlvbkNvbnRleHQ7CiAg
ICAgRmxvYXRSZWN0IGJvdW5kaW5nQm94OwpAQCAtNjEsNyArNTIsNyBAQCBwdWJsaWM6CiAjaWYg
UExBVEZPUk0oTUFDKQogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBPcHRpb25hbDxEZXRlY3Rl
ZEl0ZW0+IGRldGVjdEl0ZW1Bcm91bmRIaXRUZXN0UmVzdWx0KGNvbnN0IEhpdFRlc3RSZXN1bHQm
KTsKICNlbmRpZgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBOU0FycmF5ICpkZXRlY3RDb250
ZW50SW5SYW5nZShjb25zdCBTaW1wbGVSYW5nZSYsIERhdGFEZXRlY3RvclR5cGVzLCBOU0RpY3Rp
b25hcnkgKmNvbnRleHQpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBOU0FycmF5ICpkZXRl
Y3RDb250ZW50SW5SYW5nZShjb25zdCBTaW1wbGVSYW5nZSYsIE9wdGlvblNldDxEYXRhRGV0ZWN0
b3JUeXBlcz4sIE5TRGljdGlvbmFyeSAqY29udGV4dCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIHZvaWQgcmVtb3ZlRGF0YURldGVjdGVkTGlua3NJbkRvY3VtZW50KERvY3VtZW50Jik7CiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBj
YW5CZVByZXNlbnRlZEJ5RGF0YURldGVjdG9ycyhjb25zdCBVUkwmKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW0JKHJldmlzaW9uIDI2OTgz
MCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbQkod29y
a2luZyBjb3B5KQpAQCAtMjE4LDMwICsyMTgsMjQgQEAgc3RhdGljIEJPT0wgcmVzdWx0SXNVUkwo
RERSZXN1bHRSZWYgcmVzdQogICAgIHJldHVybiBbdXJsVHlwZXMgY29udGFpbnNPYmplY3Q6KE5T
U3RyaW5nICopc29mdExpbmtfRGF0YURldGVjdG9yc0NvcmVfRERSZXN1bHRHZXRUeXBlKHJlc3Vs
dCldOwogfQogCi0vLyBQb29yIG1hbidzIE9wdGlvblNldC4KLXN0YXRpYyBib29sIGNvbnRhaW5z
KERhdGFEZXRlY3RvclR5cGVzIHR5cGVzLCBEYXRhRGV0ZWN0b3JUeXBlcyBzaW5nbGVUeXBlKQot
ewotICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50MzJfdD4odHlwZXMpICYgc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KHNpbmdsZVR5cGUpOwotfQotCi1zdGF0aWMgTlNTdHJpbmcgKmNvbnN0cnVjdFVS
TFN0cmluZ0ZvclJlc3VsdChERFJlc3VsdFJlZiBjdXJyZW50UmVzdWx0LCBOU1N0cmluZyAqcmVz
dWx0SWRlbnRpZmllciwgTlNEYXRlICpyZWZlcmVuY2VEYXRlLCBOU1RpbWVab25lICpyZWZlcmVu
Y2VUaW1lWm9uZSwgRGF0YURldGVjdG9yVHlwZXMgZGV0ZWN0aW9uVHlwZXMpCitzdGF0aWMgTlNT
dHJpbmcgKmNvbnN0cnVjdFVSTFN0cmluZ0ZvclJlc3VsdChERFJlc3VsdFJlZiBjdXJyZW50UmVz
dWx0LCBOU1N0cmluZyAqcmVzdWx0SWRlbnRpZmllciwgTlNEYXRlICpyZWZlcmVuY2VEYXRlLCBO
U1RpbWVab25lICpyZWZlcmVuY2VUaW1lWm9uZSwgT3B0aW9uU2V0PERhdGFEZXRlY3RvclR5cGVz
PiBkZXRlY3Rpb25UeXBlcykKIHsKICAgICBpZiAoIXNvZnRMaW5rX0RhdGFEZXRlY3RvcnNDb3Jl
X0REUmVzdWx0SGFzUHJvcGVydGllcyhjdXJyZW50UmVzdWx0LCBERFJlc3VsdFByb3BlcnR5UGFz
c2l2ZURpc3BsYXkpKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgYXV0byBwaG9uZVR5cGVz
ID0gY29udGFpbnMoZGV0ZWN0aW9uVHlwZXMsIERhdGFEZXRlY3RvclR5cGVzOjpQaG9uZU51bWJl
cikgPyBERFVSTGlmaWVyUGhvbmVOdW1iZXJEZXRlY3Rpb25SZWd1bGFyIDogRERVUkxpZmllclBo
b25lTnVtYmVyRGV0ZWN0aW9uTm9uZTsKKyAgICBhdXRvIHBob25lVHlwZXMgPSBkZXRlY3Rpb25U
eXBlcy5jb250YWlucyhEYXRhRGV0ZWN0b3JUeXBlczo6UGhvbmVOdW1iZXIpID8gRERVUkxpZmll
clBob25lTnVtYmVyRGV0ZWN0aW9uUmVndWxhciA6IEREVVJMaWZpZXJQaG9uZU51bWJlckRldGVj
dGlvbk5vbmU7CiAgICAgYXV0byBjYXRlZ29yeSA9IHNvZnRMaW5rX0RhdGFEZXRlY3RvcnNDb3Jl
X0REUmVzdWx0R2V0Q2F0ZWdvcnkoY3VycmVudFJlc3VsdCk7CiAgICAgYXV0byB0eXBlID0gc29m
dExpbmtfRGF0YURldGVjdG9yc0NvcmVfRERSZXN1bHRHZXRUeXBlKGN1cnJlbnRSZXN1bHQpOwog
Ci0gICAgaWYgKChjb250YWlucyhkZXRlY3Rpb25UeXBlcywgRGF0YURldGVjdG9yVHlwZXM6OkFk
ZHJlc3MpICYmIEREUmVzdWx0Q2F0ZWdvcnlBZGRyZXNzID09IGNhdGVnb3J5KQotICAgICAgICB8
fCAoY29udGFpbnMoZGV0ZWN0aW9uVHlwZXMsIERhdGFEZXRlY3RvclR5cGVzOjpUcmFja2luZ051
bWJlcikgJiYgQ0ZFcXVhbChnZXRfRGF0YURldGVjdG9yc0NvcmVfRERCaW5kZXJUcmFja2luZ051
bWJlcktleSgpLCB0eXBlKSkKLSAgICAgICAgfHwgKGNvbnRhaW5zKGRldGVjdGlvblR5cGVzLCBE
YXRhRGV0ZWN0b3JUeXBlczo6RmxpZ2h0TnVtYmVyKSAmJiBDRkVxdWFsKGdldF9EYXRhRGV0ZWN0
b3JzQ29yZV9EREJpbmRlckZsaWdodEluZm9ybWF0aW9uS2V5KCksIHR5cGUpKQotICAgICAgICB8
fCAoY29udGFpbnMoZGV0ZWN0aW9uVHlwZXMsIERhdGFEZXRlY3RvclR5cGVzOjpMb29rdXBTdWdn
ZXN0aW9uKSAmJiBDRkVxdWFsKGdldF9EYXRhRGV0ZWN0b3JzQ29yZV9EREJpbmRlclBhcnNlY1Nv
dXJjZUtleSgpLCB0eXBlKSkKLSAgICAgICAgfHwgKGNvbnRhaW5zKGRldGVjdGlvblR5cGVzLCBE
YXRhRGV0ZWN0b3JUeXBlczo6UGhvbmVOdW1iZXIpICYmIEREUmVzdWx0Q2F0ZWdvcnlQaG9uZU51
bWJlciA9PSBjYXRlZ29yeSkKLSAgICAgICAgfHwgKGNvbnRhaW5zKGRldGVjdGlvblR5cGVzLCBE
YXRhRGV0ZWN0b3JUeXBlczo6TGluaykgJiYgcmVzdWx0SXNVUkwoY3VycmVudFJlc3VsdCkpKSB7
CisgICAgaWYgKChkZXRlY3Rpb25UeXBlcy5jb250YWlucyhEYXRhRGV0ZWN0b3JUeXBlczo6QWRk
cmVzcykgJiYgRERSZXN1bHRDYXRlZ29yeUFkZHJlc3MgPT0gY2F0ZWdvcnkpCisgICAgICAgIHx8
IChkZXRlY3Rpb25UeXBlcy5jb250YWlucyhEYXRhRGV0ZWN0b3JUeXBlczo6VHJhY2tpbmdOdW1i
ZXIpICYmIENGRXF1YWwoZ2V0X0RhdGFEZXRlY3RvcnNDb3JlX0REQmluZGVyVHJhY2tpbmdOdW1i
ZXJLZXkoKSwgdHlwZSkpCisgICAgICAgIHx8IChkZXRlY3Rpb25UeXBlcy5jb250YWlucyhEYXRh
RGV0ZWN0b3JUeXBlczo6RmxpZ2h0TnVtYmVyKSAmJiBDRkVxdWFsKGdldF9EYXRhRGV0ZWN0b3Jz
Q29yZV9EREJpbmRlckZsaWdodEluZm9ybWF0aW9uS2V5KCksIHR5cGUpKQorICAgICAgICB8fCAo
ZGV0ZWN0aW9uVHlwZXMuY29udGFpbnMoRGF0YURldGVjdG9yVHlwZXM6Okxvb2t1cFN1Z2dlc3Rp
b24pICYmIENGRXF1YWwoZ2V0X0RhdGFEZXRlY3RvcnNDb3JlX0REQmluZGVyUGFyc2VjU291cmNl
S2V5KCksIHR5cGUpKQorICAgICAgICB8fCAoZGV0ZWN0aW9uVHlwZXMuY29udGFpbnMoRGF0YURl
dGVjdG9yVHlwZXM6OlBob25lTnVtYmVyKSAmJiBERFJlc3VsdENhdGVnb3J5UGhvbmVOdW1iZXIg
PT0gY2F0ZWdvcnkpCisgICAgICAgIHx8IChkZXRlY3Rpb25UeXBlcy5jb250YWlucyhEYXRhRGV0
ZWN0b3JUeXBlczo6TGluaykgJiYgcmVzdWx0SXNVUkwoY3VycmVudFJlc3VsdCkpKSB7CiAgICAg
ICAgIHJldHVybiBzb2Z0TGlua19EYXRhRGV0ZWN0b3JzQ29yZV9ERFVSTFN0cmluZ0ZvclJlc3Vs
dChjdXJyZW50UmVzdWx0LCByZXN1bHRJZGVudGlmaWVyLCBwaG9uZVR5cGVzLCByZWZlcmVuY2VE
YXRlLCByZWZlcmVuY2VUaW1lWm9uZSk7CiAgICAgfQotICAgIGlmIChjb250YWlucyhkZXRlY3Rp
b25UeXBlcywgRGF0YURldGVjdG9yVHlwZXM6OkNhbGVuZGFyRXZlbnQpICYmIEREUmVzdWx0Q2F0
ZWdvcnlDYWxlbmRhckV2ZW50ID09IGNhdGVnb3J5KSB7CisgICAgaWYgKGRldGVjdGlvblR5cGVz
LmNvbnRhaW5zKERhdGFEZXRlY3RvclR5cGVzOjpDYWxlbmRhckV2ZW50KSAmJiBERFJlc3VsdENh
dGVnb3J5Q2FsZW5kYXJFdmVudCA9PSBjYXRlZ29yeSkgewogICAgICAgICBpZiAoIXNvZnRMaW5r
X0RhdGFEZXRlY3RvcnNDb3JlX0REUmVzdWx0SXNQYXN0RGF0ZShjdXJyZW50UmVzdWx0LCAoQ0ZE
YXRlUmVmKXJlZmVyZW5jZURhdGUsIChDRlRpbWVab25lUmVmKXJlZmVyZW5jZVRpbWVab25lKSkK
ICAgICAgICAgICAgIHJldHVybiBzb2Z0TGlua19EYXRhRGV0ZWN0b3JzQ29yZV9ERFVSTFN0cmlu
Z0ZvclJlc3VsdChjdXJyZW50UmVzdWx0LCByZXN1bHRJZGVudGlmaWVyLCBwaG9uZVR5cGVzLCBy
ZWZlcmVuY2VEYXRlLCByZWZlcmVuY2VUaW1lWm9uZSk7CiAgICAgfQpAQCAtNDM5LDEzICs0MzMs
MTMgQEAgdm9pZCBEYXRhRGV0ZWN0aW9uOjpyZW1vdmVEYXRhRGV0ZWN0ZWRMaQogICAgICAgICBy
ZW1vdmVSZXN1bHRMaW5rc0Zyb21BbmNob3IoYW5jaG9yLmdldCgpKTsKIH0KIAotTlNBcnJheSAq
RGF0YURldGVjdGlvbjo6ZGV0ZWN0Q29udGVudEluUmFuZ2UoY29uc3QgU2ltcGxlUmFuZ2UmIGNv
bnRleHRSYW5nZSwgRGF0YURldGVjdG9yVHlwZXMgdHlwZXMsIE5TRGljdGlvbmFyeSAqY29udGV4
dCkKK05TQXJyYXkgKkRhdGFEZXRlY3Rpb246OmRldGVjdENvbnRlbnRJblJhbmdlKGNvbnN0IFNp
bXBsZVJhbmdlJiBjb250ZXh0UmFuZ2UsIE9wdGlvblNldDxEYXRhRGV0ZWN0b3JUeXBlcz4gdHlw
ZXMsIE5TRGljdGlvbmFyeSAqY29udGV4dCkKIHsKICAgICBhdXRvIHNjYW5uZXIgPSBhZG9wdENG
KHNvZnRMaW5rX0RhdGFEZXRlY3RvcnNDb3JlX0REU2Nhbm5lckNyZWF0ZShERFNjYW5uZXJUeXBl
U3RhbmRhcmQsIDAsIG51bGxwdHIpKTsKICAgICBhdXRvIHNjYW5RdWVyeSA9IGFkb3B0Q0Yoc29m
dExpbmtfRGF0YURldGVjdG9yc0NvcmVfRERTY2FuUXVlcnlDcmVhdGUoTlVMTCkpOwogICAgIGJ1
aWxkUXVlcnkoc2NhblF1ZXJ5LmdldCgpLCBjb250ZXh0UmFuZ2UpOwogICAgIAotICAgIGlmIChj
b250YWlucyh0eXBlcywgRGF0YURldGVjdG9yVHlwZXM6Okxvb2t1cFN1Z2dlc3Rpb24pKQorICAg
IGlmICh0eXBlcy5jb250YWlucyhEYXRhRGV0ZWN0b3JUeXBlczo6TG9va3VwU3VnZ2VzdGlvbikp
CiAgICAgICAgIHNvZnRMaW5rX0RhdGFEZXRlY3RvcnNDb3JlX0REU2Nhbm5lckVuYWJsZU9wdGlv
bmFsU291cmNlKHNjYW5uZXIuZ2V0KCksIEREU2Nhbm5lclNvdXJjZVNwb3RsaWdodCwgdHJ1ZSk7
CiAKICAgICAvLyBGSVhNRTogd2Ugc2hvdWxkIGFkZCBhIHRpbWVvdXQgdG8gdGhpcyBjYWxsIHRv
IG1ha2Ugc3VyZSBpdCBkb2Vzbid0IHRha2UgdG9vIG11Y2ggdGltZS4KQEAgLTYzOCw3ICs2MzIs
NyBAQCBOU0FycmF5ICpEYXRhRGV0ZWN0aW9uOjpkZXRlY3RDb250ZW50SW5SCiAKICNlbHNlCiAK
LU5TQXJyYXkgKkRhdGFEZXRlY3Rpb246OmRldGVjdENvbnRlbnRJblJhbmdlKGNvbnN0IFNpbXBs
ZVJhbmdlJiwgRGF0YURldGVjdG9yVHlwZXMsIE5TRGljdGlvbmFyeSAqKQorTlNBcnJheSAqRGF0
YURldGVjdGlvbjo6ZGV0ZWN0Q29udGVudEluUmFuZ2UoY29uc3QgU2ltcGxlUmFuZ2UmLCBPcHRp
b25TZXQ8RGF0YURldGVjdG9yVHlwZXM+LCBOU0RpY3Rpb25hcnkgKikKIHsKICAgICByZXR1cm4g
bmlsOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0b3JU
eXBlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURl
dGVjdG9yVHlwZXMuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2Nv
Y29hL0RhdGFEZXRlY3RvclR5cGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2NSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQor
CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitl
bnVtIGNsYXNzIERhdGFEZXRlY3RvclR5cGVzIDogdWludDhfdCB7CisgICAgTm9uZSA9IDAsCisg
ICAgUGhvbmVOdW1iZXIgPSAxIDw8IDAsCisgICAgTGluayA9IDEgPDwgMSwKKyAgICBBZGRyZXNz
ID0gMSA8PCAyLAorICAgIENhbGVuZGFyRXZlbnQgPSAxIDw8IDMsCisgICAgVHJhY2tpbmdOdW1i
ZXIgPSAxIDw8IDQsCisgICAgRmxpZ2h0TnVtYmVyID0gMSA8PCA1LAorICAgIExvb2t1cFN1Z2dl
c3Rpb24gPSAxIDw8IDYsCit9OworCit9CisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+
IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkRhdGFEZXRlY3RvclR5cGVzPiB7CisgICAgdXNp
bmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6RGF0YURldGVjdG9yVHlw
ZXMsCisgICAgICAgIFdlYkNvcmU6OkRhdGFEZXRlY3RvclR5cGVzOjpOb25lLAorICAgICAgICBX
ZWJDb3JlOjpEYXRhRGV0ZWN0b3JUeXBlczo6UGhvbmVOdW1iZXIsCisgICAgICAgIFdlYkNvcmU6
OkRhdGFEZXRlY3RvclR5cGVzOjpMaW5rLAorICAgICAgICBXZWJDb3JlOjpEYXRhRGV0ZWN0b3JU
eXBlczo6QWRkcmVzcywKKyAgICAgICAgV2ViQ29yZTo6RGF0YURldGVjdG9yVHlwZXM6OkNhbGVu
ZGFyRXZlbnQsCisgICAgICAgIFdlYkNvcmU6OkRhdGFEZXRlY3RvclR5cGVzOjpUcmFja2luZ051
bWJlciwKKyAgICAgICAgV2ViQ29yZTo6RGF0YURldGVjdG9yVHlwZXM6OkZsaWdodE51bWJlciwK
KyAgICAgICAgV2ViQ29yZTo6RGF0YURldGVjdG9yVHlwZXM6Okxvb2t1cFN1Z2dlc3Rpb24KKyAg
ICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKKyNlbmRpZgpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yMTQsMjggKzIxNCwyMyBAQCB2b2lkIEhUTUxBbmNob3JFbGVtZW50OjpkZWZhdWx0RXZlbnRI
YW5kCiB2b2lkIEhUTUxBbmNob3JFbGVtZW50OjpzZXRBY3RpdmUoYm9vbCBkb3duLCBib29sIHBh
dXNlKQogewogICAgIGlmIChoYXNFZGl0YWJsZVN0eWxlKCkpIHsKLSAgICAgICAgRWRpdGFibGVM
aW5rQmVoYXZpb3IgZWRpdGFibGVMaW5rQmVoYXZpb3IgPSBkb2N1bWVudCgpLnNldHRpbmdzKCku
ZWRpdGFibGVMaW5rQmVoYXZpb3IoKTsKLSAgICAgICAgICAgIAotICAgICAgICBzd2l0Y2ggKGVk
aXRhYmxlTGlua0JlaGF2aW9yKSB7Ci0gICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAg
Y2FzZSBFZGl0YWJsZUxpbmtEZWZhdWx0QmVoYXZpb3I6Ci0gICAgICAgICAgICBjYXNlIEVkaXRh
YmxlTGlua0Fsd2F5c0xpdmU6Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAg
IGNhc2UgRWRpdGFibGVMaW5rTmV2ZXJMaXZlOgorICAgICAgICBzd2l0Y2ggKGRvY3VtZW50KCku
c2V0dGluZ3MoKS5lZGl0YWJsZUxpbmtCZWhhdmlvcigpKSB7CisgICAgICAgIGNhc2UgRWRpdGFi
bGVMaW5rQmVoYXZpb3I6OkRlZmF1bHQ6CisgICAgICAgIGNhc2UgRWRpdGFibGVMaW5rQmVoYXZp
b3I6OkFsd2F5c0xpdmU6CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAvLyBEb24ndCBz
ZXQgdGhlIGxpbmsgdG8gYmUgYWN0aXZlIGlmIHRoZSBjdXJyZW50IHNlbGVjdGlvbiBpcyBpbiB0
aGUgc2FtZSBlZGl0YWJsZSBibG9jayBhcworICAgICAgICAvLyB0aGlzIGxpbmsKKyAgICAgICAg
Y2FzZSBFZGl0YWJsZUxpbmtCZWhhdmlvcjo6TGl2ZVdoZW5Ob3RGb2N1c2VkOgorICAgICAgICAg
ICAgaWYgKGRvd24gJiYgZG9jdW1lbnQoKS5mcmFtZSgpICYmIGRvY3VtZW50KCkuZnJhbWUoKS0+
c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkucm9vdEVkaXRhYmxlRWxlbWVudCgpID09IHJvb3RFZGl0
YWJsZUVsZW1lbnQoKSkKICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgCisgICAgICAgIGNhc2UgRWRpdGFibGVMaW5rQmVoYXZpb3I6Ok5ldmVyTGl2
ZToKKyAgICAgICAgY2FzZSBFZGl0YWJsZUxpbmtCZWhhdmlvcjo6T25seUxpdmVXaXRoU2hpZnRL
ZXk6CisgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgICAgIC8vIERvbid0IHNldCB0aGUg
bGluayB0byBiZSBhY3RpdmUgaWYgdGhlIGN1cnJlbnQgc2VsZWN0aW9uIGlzIGluIHRoZSBzYW1l
IGVkaXRhYmxlIGJsb2NrIGFzCi0gICAgICAgICAgICAvLyB0aGlzIGxpbmsKLSAgICAgICAgICAg
IGNhc2UgRWRpdGFibGVMaW5rTGl2ZVdoZW5Ob3RGb2N1c2VkOgotICAgICAgICAgICAgICAgIGlm
IChkb3duICYmIGRvY3VtZW50KCkuZnJhbWUoKSAmJiBkb2N1bWVudCgpLmZyYW1lKCktPnNlbGVj
dGlvbigpLnNlbGVjdGlvbigpLnJvb3RFZGl0YWJsZUVsZW1lbnQoKSA9PSByb290RWRpdGFibGVF
bGVtZW50KCkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgY2FzZSBFZGl0YWJsZUxpbmtPbmx5TGl2
ZVdpdGhTaGlmdEtleToKLSAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLQogICAg
IH0KICAgICAKICAgICBIVE1MRWxlbWVudDo6c2V0QWN0aXZlKGRvd24sIHBhdXNlKTsKQEAgLTU1
MCwxOSArNTQ1LDE5IEBAIGJvb2wgSFRNTEFuY2hvckVsZW1lbnQ6OnRyZWF0TGlua0FzTGl2ZUYK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBzd2l0Y2ggKGRvY3VtZW50KCkuc2V0dGluZ3Mo
KS5lZGl0YWJsZUxpbmtCZWhhdmlvcigpKSB7Ci0gICAgY2FzZSBFZGl0YWJsZUxpbmtEZWZhdWx0
QmVoYXZpb3I6Ci0gICAgY2FzZSBFZGl0YWJsZUxpbmtBbHdheXNMaXZlOgorICAgIGNhc2UgRWRp
dGFibGVMaW5rQmVoYXZpb3I6OkRlZmF1bHQ6CisgICAgY2FzZSBFZGl0YWJsZUxpbmtCZWhhdmlv
cjo6QWx3YXlzTGl2ZToKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBjYXNlIEVkaXRhYmxl
TGlua05ldmVyTGl2ZToKKyAgICBjYXNlIEVkaXRhYmxlTGlua0JlaGF2aW9yOjpOZXZlckxpdmU6
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIElmIHRoZSBzZWxlY3Rpb24gcHJpb3Ig
dG8gY2xpY2tpbmcgb24gdGhpcyBsaW5rIHJlc2lkZWQgaW4gdGhlIHNhbWUgZWRpdGFibGUgYmxv
Y2sgYXMgdGhpcyBsaW5rLAogICAgIC8vIGFuZCB0aGUgc2hpZnQga2V5IGlzbid0IHByZXNzZWQs
IHdlIGRvbid0IHdhbnQgdG8gZm9sbG93IHRoZSBsaW5rLgotICAgIGNhc2UgRWRpdGFibGVMaW5r
TGl2ZVdoZW5Ob3RGb2N1c2VkOgorICAgIGNhc2UgRWRpdGFibGVMaW5rQmVoYXZpb3I6OkxpdmVX
aGVuTm90Rm9jdXNlZDoKICAgICAgICAgcmV0dXJuIGV2ZW50VHlwZSA9PSBNb3VzZUV2ZW50V2l0
aFNoaWZ0S2V5IHx8IChldmVudFR5cGUgPT0gTW91c2VFdmVudFdpdGhvdXRTaGlmdEtleSAmJiBy
b290RWRpdGFibGVFbGVtZW50Rm9yU2VsZWN0aW9uT25Nb3VzZURvd24oKSAhPSByb290RWRpdGFi
bGVFbGVtZW50KCkpOwogCi0gICAgY2FzZSBFZGl0YWJsZUxpbmtPbmx5TGl2ZVdpdGhTaGlmdEtl
eToKKyAgICBjYXNlIEVkaXRhYmxlTGlua0JlaGF2aW9yOjpPbmx5TGl2ZVdpdGhTaGlmdEtleToK
ICAgICAgICAgcmV0dXJuIGV2ZW50VHlwZSA9PSBNb3VzZUV2ZW50V2l0aFNoaWZ0S2V5OwogICAg
IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlck9wdGlvbnMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJP
cHRpb25zLmNwcAkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTFBhcnNlck9wdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NSw3ICs0NSw3IEBA
IEhUTUxQYXJzZXJPcHRpb25zOjpIVE1MUGFyc2VyT3B0aW9ucygpCiBIVE1MUGFyc2VyT3B0aW9u
czo6SFRNTFBhcnNlck9wdGlvbnMoRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIFJlZlB0cjxG
cmFtZT4gZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpOwotICAgIGlmIChkb2N1bWVudC5zZXR0aW5n
cygpLnBhcnNlclNjcmlwdGluZ0ZsYWdQb2xpY3koKSA9PSBTZXR0aW5nc0Jhc2U6OlBhcnNlclNj
cmlwdGluZ0ZsYWdQb2xpY3k6OkVuYWJsZWQpCisgICAgaWYgKGRvY3VtZW50LnNldHRpbmdzKCku
aHRtbFBhcnNlclNjcmlwdGluZ0ZsYWdQb2xpY3koKSA9PSBIVE1MUGFyc2VyU2NyaXB0aW5nRmxh
Z1BvbGljeTo6RW5hYmxlZCkKICAgICAgICAgc2NyaXB0aW5nRmxhZyA9IHRydWU7CiAgICAgZWxz
ZQogICAgICAgICBzY3JpcHRpbmdGbGFnID0gZnJhbWUgJiYgZnJhbWUtPnNjcmlwdCgpLmNhbkV4
ZWN1dGVTY3JpcHRzKE5vdEFib3V0VG9FeGVjdXRlU2NyaXB0KTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlclNjcmlwdGluZ0ZsYWdQ
b2xpY3kuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
UGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitl
bnVtIGNsYXNzIEhUTUxQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5IDogdWludDhfdCB7CisgICAg
T25seUlmU2NyaXB0SXNFbmFibGVkLAorICAgIEVuYWJsZWQKK307CisKK30KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjU4MCw4
ICsyNTgwLDggQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y2hlY2tMb2FkQ29tcGxldGVGb3JUaAogICAg
ICAgICAgICAgICAgIEZSQU1FTE9BREVSX1JFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUmVzb3VyY2VM
b2FkaW5nLCAiY2hlY2tMb2FkQ29tcGxldGVGb3JUaGlzRnJhbWU6IEZpbmlzaGVkIGZyYW1lIGxv
YWQiKTsKICNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCiAgICAgICAgICAgICAgICAgYXV0byBk
b2N1bWVudCA9IG1fZnJhbWUuZG9jdW1lbnQoKTsKLSAgICAgICAgICAgICAgICBhdXRvIHR5cGVz
ID0gbV9mcmFtZS5zZXR0aW5ncygpLmRhdGFEZXRlY3RvclR5cGVzKCk7Ci0gICAgICAgICAgICAg
ICAgaWYgKGRvY3VtZW50ICYmIHN0YXRpY19jYXN0PHVpbnQzMl90Pih0eXBlcykpIHsKKyAgICAg
ICAgICAgICAgICBhdXRvIHR5cGVzID0gT3B0aW9uU2V0PERhdGFEZXRlY3RvclR5cGVzPiB7IG1f
ZnJhbWUuc2V0dGluZ3MoKS5kYXRhRGV0ZWN0b3JUeXBlcygpIH07CisgICAgICAgICAgICAgICAg
aWYgKGRvY3VtZW50ICYmIHR5cGVzKSB7CiAgICAgICAgICAgICAgICAgICAgIG1fZnJhbWUuc2V0
RGF0YURldGVjdGlvblJlc3VsdHMoRGF0YURldGVjdGlvbjo6ZGV0ZWN0Q29udGVudEluUmFuZ2Uo
bWFrZVJhbmdlU2VsZWN0aW5nTm9kZUNvbnRlbnRzKCpkb2N1bWVudCksIHR5cGVzLCBtX2NsaWVu
dC0+ZGF0YURldGVjdGlvbkNvbnRleHQoKSkpOwogICAgICAgICAgICAgICAgICAgICBpZiAobV9m
cmFtZS5pc01haW5GcmFtZSgpKQogICAgICAgICAgICAgICAgICAgICAgICAgbV9jbGllbnQtPmRp
c3BhdGNoRGlkRmluaXNoRGF0YURldGVjdGlvbihtX2ZyYW1lLmRhdGFEZXRlY3Rpb25SZXN1bHRz
KCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVy
LmNwcAkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVu
dUNvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTEwLDggKzExMTAsOCBAQCB2b2lk
IENvbnRleHRNZW51Q29udHJvbGxlcjo6cG9wdWxhdGUoKQogICAgICAgICAgICAgY3JlYXRlQW5k
QXBwZW5kV3JpdGluZ0RpcmVjdGlvblN1Yk1lbnUoV3JpdGluZ0RpcmVjdGlvbk1lbnVJdGVtKTsK
ICAgICAgICAgICAgIGFwcGVuZEl0ZW0oV3JpdGluZ0RpcmVjdGlvbk1lbnVJdGVtLCBtX2NvbnRl
eHRNZW51LmdldCgpKTsKICAgICAgICAgICAgIGlmIChQYWdlKiBwYWdlID0gZnJhbWUtPnBhZ2Uo
KSkgewotICAgICAgICAgICAgICAgIGJvb2wgaW5jbHVkZVRleHREaXJlY3Rpb25TdWJtZW51ID0g
cGFnZS0+c2V0dGluZ3MoKS50ZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yKCkg
PT0gVGV4dERpcmVjdGlvblN1Ym1lbnVBbHdheXNJbmNsdWRlZAotICAgICAgICAgICAgICAgICAg
ICB8fCAocGFnZS0+c2V0dGluZ3MoKS50ZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2
aW9yKCkgPT0gVGV4dERpcmVjdGlvblN1Ym1lbnVBdXRvbWF0aWNhbGx5SW5jbHVkZWQgJiYgZnJh
bWUtPmVkaXRvcigpLmhhc0JpZGlTZWxlY3Rpb24oKSk7CisgICAgICAgICAgICAgICAgYm9vbCBp
bmNsdWRlVGV4dERpcmVjdGlvblN1Ym1lbnUgPSBwYWdlLT5zZXR0aW5ncygpLnRleHREaXJlY3Rp
b25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IoKSA9PSBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1
c2lvbkJlaGF2aW9yOjpBbHdheXNJbmNsdWRlZAorICAgICAgICAgICAgICAgICAgICB8fCAocGFn
ZS0+c2V0dGluZ3MoKS50ZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yKCkgPT0g
VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcjo6QXV0b21hdGljYWxseUluY2x1
ZGVkICYmIGZyYW1lLT5lZGl0b3IoKS5oYXNCaWRpU2VsZWN0aW9uKCkpOwogICAgICAgICAgICAg
ICAgIGlmIChpbmNsdWRlVGV4dERpcmVjdGlvblN1Ym1lbnUpIHsKICAgICAgICAgICAgICAgICAg
ICAgQ29udGV4dE1lbnVJdGVtIFRleHREaXJlY3Rpb25NZW51SXRlbShTdWJtZW51VHlwZSwgQ29u
dGV4dE1lbnVJdGVtVGFnVGV4dERpcmVjdGlvbk1lbnUsIGNvbnRleHRNZW51SXRlbVRhZ1RleHRE
aXJlY3Rpb25NZW51KCkpOwogICAgICAgICAgICAgICAgICAgICBjcmVhdGVBbmRBcHBlbmRUZXh0
RGlyZWN0aW9uU3ViTWVudShUZXh0RGlyZWN0aW9uTWVudUl0ZW0pOwpJbmRleDogU291cmNlL1dl
YkNvcmUvcGFnZS9EZWJ1Z092ZXJsYXlSZWdpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGFnZS9EZWJ1Z092ZXJsYXlSZWdpb25zLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNl
L1dlYkNvcmUvcGFnZS9EZWJ1Z092ZXJsYXlSZWdpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0Vu
dW1UcmFpdHMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIERlYnVnT3Zl
cmxheVJlZ2lvbnMgOiB1aW50OF90IHsKKyAgICBOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbiA9IDEg
PDwgMCwKKyAgICBXaGVlbEV2ZW50SGFuZGxlclJlZ2lvbiA9IDEgPDwgMSwKKyAgICBUb3VjaEFj
dGlvblJlZ2lvbiA9IDEgPDwgMiwKKyAgICBFZGl0YWJsZUVsZW1lbnRSZWdpb24gPSAxIDw8IDMs
Cit9OworCit9CisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJh
aXRzPFdlYkNvcmU6OkRlYnVnT3ZlcmxheVJlZ2lvbnM+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBF
bnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpEZWJ1Z092ZXJsYXlSZWdpb25zLAorICAgICAg
ICBXZWJDb3JlOjpEZWJ1Z092ZXJsYXlSZWdpb25zOjpOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbiwK
KyAgICAgICAgV2ViQ29yZTo6RGVidWdPdmVybGF5UmVnaW9uczo6V2hlZWxFdmVudEhhbmRsZXJS
ZWdpb24sCisgICAgICAgIFdlYkNvcmU6OkRlYnVnT3ZlcmxheVJlZ2lvbnM6OlRvdWNoQWN0aW9u
UmVnaW9uLAorICAgICAgICBXZWJDb3JlOjpEZWJ1Z092ZXJsYXlSZWdpb25zOjpFZGl0YWJsZUVs
ZW1lbnRSZWdpb24KKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmNwcAkocmV2aXNpb24gMjY5ODMwKQor
KysgU291cmNlL1dlYkNvcmUvcGFnZS9EZWJ1Z1BhZ2VPdmVybGF5cy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM5OSwxNCArMzk5LDE0IEBAIFJlZ2lvbk92ZXJsYXkqIERlYnVnUGFnZU92ZXJsYXlz
OjpyZWdpb24KICAgICByZXR1cm4gaXQtPnZhbHVlLmF0KGluZGV4T2YocmVnaW9uVHlwZSkpLmdl
dCgpOwogfQogCi12b2lkIERlYnVnUGFnZU92ZXJsYXlzOjp1cGRhdGVPdmVybGF5UmVnaW9uVmlz
aWJpbGl0eShQYWdlJiBwYWdlLCBEZWJ1Z092ZXJsYXlSZWdpb25zIHZpc2libGVSZWdpb25zKQor
dm9pZCBEZWJ1Z1BhZ2VPdmVybGF5czo6dXBkYXRlT3ZlcmxheVJlZ2lvblZpc2liaWxpdHkoUGFn
ZSYgcGFnZSwgT3B0aW9uU2V0PERlYnVnT3ZlcmxheVJlZ2lvbnM+IHZpc2libGVSZWdpb25zKQog
ewotICAgIGlmICh2aXNpYmxlUmVnaW9ucyAmIE5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKQorICAg
IGlmICh2aXNpYmxlUmVnaW9ucy5jb250YWlucyhEZWJ1Z092ZXJsYXlSZWdpb25zOjpOb25GYXN0
U2Nyb2xsYWJsZVJlZ2lvbikpCiAgICAgICAgIHNob3dSZWdpb25PdmVybGF5KHBhZ2UsIFJlZ2lv
blR5cGU6Ok5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKTsKICAgICBlbHNlCiAgICAgICAgIGhpZGVS
ZWdpb25PdmVybGF5KHBhZ2UsIFJlZ2lvblR5cGU6Ok5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKTsK
IAotICAgIGlmICh2aXNpYmxlUmVnaW9ucyAmIFdoZWVsRXZlbnRIYW5kbGVyUmVnaW9uKQorICAg
IGlmICh2aXNpYmxlUmVnaW9ucy5jb250YWlucyhEZWJ1Z092ZXJsYXlSZWdpb25zOjpXaGVlbEV2
ZW50SGFuZGxlclJlZ2lvbikpCiAgICAgICAgIHNob3dSZWdpb25PdmVybGF5KHBhZ2UsIFJlZ2lv
blR5cGU6OldoZWVsRXZlbnRIYW5kbGVycyk7CiAgICAgZWxzZQogICAgICAgICBoaWRlUmVnaW9u
T3ZlcmxheShwYWdlLCBSZWdpb25UeXBlOjpXaGVlbEV2ZW50SGFuZGxlcnMpOwpAQCAtNDE0LDcg
KzQxNCw3IEBAIHZvaWQgRGVidWdQYWdlT3ZlcmxheXM6OnVwZGF0ZU92ZXJsYXlSZWcKIAogdm9p
ZCBEZWJ1Z1BhZ2VPdmVybGF5czo6c2V0dGluZ3NDaGFuZ2VkKFBhZ2UmIHBhZ2UpCiB7Ci0gICAg
RGVidWdPdmVybGF5UmVnaW9ucyBhY3RpdmVPdmVybGF5UmVnaW9ucyA9IHBhZ2Uuc2V0dGluZ3Mo
KS52aXNpYmxlRGVidWdPdmVybGF5UmVnaW9ucygpOworICAgIGF1dG8gYWN0aXZlT3ZlcmxheVJl
Z2lvbnMgPSBPcHRpb25TZXQ8RGVidWdPdmVybGF5UmVnaW9ucz46OmZyb21SYXcocGFnZS5zZXR0
aW5ncygpLnZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zKCkpOwogICAgIGlmICghYWN0aXZlT3Zl
cmxheVJlZ2lvbnMgJiYgIWhhc092ZXJsYXlzKHBhZ2UpKQogICAgICAgICByZXR1cm47CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmgJKHJldmlzaW9uIDI2OTgz
MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuaAkod29ya2luZyBj
b3B5KQpAQCAtMjUsOSArMjUsMTAgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJEZWJ1
Z092ZXJsYXlSZWdpb25zLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJTZXR0aW5n
cy5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvblNldC5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDMs
NyArNDQsNyBAQCBwdWJsaWM6CiAgICAgICAgIFdoZWVsRXZlbnRIYW5kbGVycywKICAgICAgICAg
Tm9uRmFzdFNjcm9sbGFibGVSZWdpb24sCiAgICAgfTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgTnVtYmVyT2ZSZWdpb25UeXBlcyA9IE5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uICsgMTsKKyAg
ICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIE51bWJlck9mUmVnaW9uVHlwZXMgPSBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oUmVnaW9uVHlwZTo6Tm9uRmFzdFNjcm9sbGFibGVSZWdpb24pICsgMTsK
IAogICAgIHN0YXRpYyB2b2lkIGRpZExheW91dChGcmFtZSYpOwogICAgIHN0YXRpYyB2b2lkIGRp
ZENoYW5nZUV2ZW50SGFuZGxlcnMoRnJhbWUmKTsKQEAgLTY2LDcgKzY3LDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgcmV0dXJuIG1fcGFnZVJlZ2lvbk92ZXJsYXlzLmNvbnRhaW5zKCZwYWdlKTsKICAg
ICB9CiAgICAgCi0gICAgdm9pZCB1cGRhdGVPdmVybGF5UmVnaW9uVmlzaWJpbGl0eShQYWdlJiwg
RGVidWdPdmVybGF5UmVnaW9ucyk7CisgICAgdm9pZCB1cGRhdGVPdmVybGF5UmVnaW9uVmlzaWJp
bGl0eShQYWdlJiwgT3B0aW9uU2V0PERlYnVnT3ZlcmxheVJlZ2lvbnM+KTsKIAogICAgIFJlZ2lv
bk92ZXJsYXkqIHJlZ2lvbk92ZXJsYXlGb3JQYWdlKFBhZ2UmLCBSZWdpb25UeXBlKSBjb25zdDsK
ICAgICBSZWdpb25PdmVybGF5JiBlbnN1cmVSZWdpb25PdmVybGF5Rm9yUGFnZShQYWdlJiwgUmVn
aW9uVHlwZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCShyZXZpc2lv
biAyNjk4MzApCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEzODMsMjEgKzEzODMsMjAgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnVzZUhh
bmRDdXJzb3IoTm9kZSogbgogICAgIC8vIElmIHRoZSBsaW5rIGlzIGVkaXRhYmxlLCB0aGVuIHdl
IG5lZWQgdG8gY2hlY2sgdGhlIHNldHRpbmdzIHRvIHNlZSB3aGV0aGVyIG9yIG5vdCB0aGUgbGlu
ayBzaG91bGQgYmUgZm9sbG93ZWQKICAgICBpZiAoZWRpdGFibGUpIHsKICAgICAgICAgc3dpdGNo
IChtX2ZyYW1lLnNldHRpbmdzKCkuZWRpdGFibGVMaW5rQmVoYXZpb3IoKSkgewotICAgICAgICBk
ZWZhdWx0OgotICAgICAgICBjYXNlIEVkaXRhYmxlTGlua0RlZmF1bHRCZWhhdmlvcjoKLSAgICAg
ICAgY2FzZSBFZGl0YWJsZUxpbmtBbHdheXNMaXZlOgorICAgICAgICBjYXNlIEVkaXRhYmxlTGlu
a0JlaGF2aW9yOjpEZWZhdWx0OgorICAgICAgICBjYXNlIEVkaXRhYmxlTGlua0JlaGF2aW9yOjpB
bHdheXNMaXZlOgogICAgICAgICAgICAgZWRpdGFibGVMaW5rRW5hYmxlZCA9IHRydWU7CiAgICAg
ICAgICAgICBicmVhazsKIAotICAgICAgICBjYXNlIEVkaXRhYmxlTGlua05ldmVyTGl2ZToKKyAg
ICAgICAgY2FzZSBFZGl0YWJsZUxpbmtCZWhhdmlvcjo6TmV2ZXJMaXZlOgogICAgICAgICAgICAg
ZWRpdGFibGVMaW5rRW5hYmxlZCA9IGZhbHNlOwogICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAg
ICAgY2FzZSBFZGl0YWJsZUxpbmtMaXZlV2hlbk5vdEZvY3VzZWQ6CisgICAgICAgIGNhc2UgRWRp
dGFibGVMaW5rQmVoYXZpb3I6OkxpdmVXaGVuTm90Rm9jdXNlZDoKICAgICAgICAgICAgIGVkaXRh
YmxlTGlua0VuYWJsZWQgPSBub2RlSXNOb3RCZWluZ0VkaXRlZCgqbm9kZSwgbV9mcmFtZSkgfHwg
c2hpZnRLZXk7CiAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICBjYXNlIEVkaXRhYmxlTGlu
a09ubHlMaXZlV2l0aFNoaWZ0S2V5OgorICAgICAgICBjYXNlIEVkaXRhYmxlTGlua0JlaGF2aW9y
OjpPbmx5TGl2ZVdpdGhTaGlmdEtleToKICAgICAgICAgICAgIGVkaXRhYmxlTGlua0VuYWJsZWQg
PSBzaGlmdEtleTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lRmxhdHRlbmluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVGbGF0dGVuaW5nLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZUZsYXR0ZW5pbmcuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM2IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51
bSBjbGFzcyBGcmFtZUZsYXR0ZW5pbmcgOiB1aW50OF90IHsKKyAgICBEaXNhYmxlZCwKKyAgICBF
bmFibGVkRm9yTm9uRnVsbFNjcmVlbklGcmFtZXMsCisgICAgRnVsbHlFbmFibGVkCit9OworCit9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcg
QEAKICNpbmNsdWRlICJBZGp1c3RWaWV3U2l6ZU9yTm90LmgiCiAjaW5jbHVkZSAiQ29sb3IuaCIK
ICNpbmNsdWRlICJDb250YWluZXJOb2RlLmgiCisjaW5jbHVkZSAiRnJhbWVGbGF0dGVuaW5nLmgi
CiAjaW5jbHVkZSAiRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5oIgogI2luY2x1ZGUgIkdyYXBoaWNz
Q29udGV4dC5oIgogI2luY2x1ZGUgIkxheW91dE1pbGVzdG9uZS5oIgpAQCAtODAsOCArODEsNiBA
QCBjbGFzcyBWaWV3OwogfQogI2VuZGlmCiAKLWVudW0gY2xhc3MgRnJhbWVGbGF0dGVuaW5nOwot
CiBQYWdpbmF0aW9uOjpNb2RlIHBhZ2luYXRpb25Nb2RlRm9yUmVuZGVyU3R5bGUoY29uc3QgUmVu
ZGVyU3R5bGUmKTsKIAogY2xhc3MgRnJhbWVWaWV3IGZpbmFsIDogcHVibGljIFNjcm9sbFZpZXcg
ewpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QREZJbWFnZUNhY2hpbmdQb2xpY3kuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BERkltYWdlQ2FjaGluZ1BvbGljeS5oCShu
b25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUERGSW1hZ2VDYWNoaW5nUG9saWN5
LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgUERGSW1hZ2VDYWNoaW5n
UG9saWN5IDogdWludDhfdCB7CisgICAgRW5hYmxlZCwKKyAgICBCZWxvd01lbW9yeUxpbWl0LAor
ICAgIERpc2FibGVkLAorICAgIENsaXBCb3VuZHNPbmx5LAorI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCisgICAgRGVmYXVsdCA9IEJlbG93TWVtb3J5TGltaXQKKyNlbHNlCisgICAgRGVmYXVsdCA9
IEVuYWJsZWQKKyNlbmRpZgorfTsKKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCShyZXZpc2lv
biAyNjk4MzApCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiRE9NUmVjdC5oIgogI2luY2x1ZGUgIkRPTVJl
Y3RMaXN0LmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VQcm92aWRlci5oIgorI2luY2x1ZGUgIkRlYnVn
T3ZlcmxheVJlZ2lvbnMuaCIKICNpbmNsdWRlICJEZWJ1Z1BhZ2VPdmVybGF5cy5oIgogI2luY2x1
ZGUgIkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCiAjaW5jbHVkZSAiRGlhZ25vc3RpY0xvZ2dp
bmdLZXlzLmgiCkBAIC05NDQsNyArOTQ1LDcgQEAgdm9pZCBQYWdlOjpzZXRFZGl0YWJsZVJlZ2lv
bkVuYWJsZWQoYm9vbAogCiBib29sIFBhZ2U6OnNob3VsZEJ1aWxkRWRpdGFibGVSZWdpb24oKSBj
b25zdAogewotICAgIHJldHVybiBtX2lzRWRpdGFibGVSZWdpb25FbmFibGVkIHx8IG1fc2V0dGlu
Z3MtPnZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zKCkgJiBFZGl0YWJsZUVsZW1lbnRSZWdpb247
CisgICAgcmV0dXJuIG1faXNFZGl0YWJsZVJlZ2lvbkVuYWJsZWQgfHwgT3B0aW9uU2V0PERlYnVn
T3ZlcmxheVJlZ2lvbnM+Ojpmcm9tUmF3KG1fc2V0dGluZ3MtPnZpc2libGVEZWJ1Z092ZXJsYXlS
ZWdpb25zKCkpLmNvbnRhaW5zKCBEZWJ1Z092ZXJsYXlSZWdpb25zOjpFZGl0YWJsZUVsZW1lbnRS
ZWdpb24pOwogfQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlP
cmlnaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmln
aW4uY3BwCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5
T3JpZ2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDA0LDE0ICs0MDQsMTQgQEAgYm9vbCBTZWN1
cml0eU9yaWdpbjo6Y2FuQWNjZXNzU3RvcmFnZShjbwogICAgIGlmIChpc0xvY2FsKCkgJiYgIW5l
ZWRzU3RvcmFnZUFjY2Vzc0Zyb21GaWxlVVJMc1F1aXJrKCkgJiYgIW1fdW5pdmVyc2FsQWNjZXNz
ICYmIHNob3VsZEFsbG93RnJvbVRoaXJkUGFydHkgIT0gQWx3YXlzQWxsb3dGcm9tVGhpcmRQYXJ0
eSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAotICAgIGlmIChtX3N0b3JhZ2VCbG9ja2lu
Z1BvbGljeSA9PSBCbG9ja0FsbFN0b3JhZ2UpCisgICAgaWYgKG1fc3RvcmFnZUJsb2NraW5nUG9s
aWN5ID09IFN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QmxvY2tBbGwpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgIC8vIEZJWE1FOiBUaGlzIGNoZWNrIHNob3VsZCBiZSByZXBsYWNlZCB3aXRo
IGFuIEFTU0VSVCBvbmNlIHdlIGNhbiBndWFyYW50ZWUgdGhhdCB0b3BPcmlnaW4gaXMgbm90IG51
bGwuCiAgICAgaWYgKCF0b3BPcmlnaW4pCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgaWYg
KHRvcE9yaWdpbi0+bV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgPT0gQmxvY2tBbGxTdG9yYWdlKQor
ICAgIGlmICh0b3BPcmlnaW4tPm1fc3RvcmFnZUJsb2NraW5nUG9saWN5ID09IFN0b3JhZ2VCbG9j
a2luZ1BvbGljeTo6QmxvY2tBbGwpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChz
aG91bGRBbGxvd0Zyb21UaGlyZFBhcnR5ID09IEFsd2F5c0FsbG93RnJvbVRoaXJkUGFydHkpCkBA
IC00MjAsNyArNDIwLDcgQEAgYm9vbCBTZWN1cml0eU9yaWdpbjo6Y2FuQWNjZXNzU3RvcmFnZShj
bwogICAgIGlmIChtX3VuaXZlcnNhbEFjY2VzcykKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAg
ICBpZiAoKG1fc3RvcmFnZUJsb2NraW5nUG9saWN5ID09IEJsb2NrVGhpcmRQYXJ0eVN0b3JhZ2Ug
fHwgdG9wT3JpZ2luLT5tX3N0b3JhZ2VCbG9ja2luZ1BvbGljeSA9PSBCbG9ja1RoaXJkUGFydHlT
dG9yYWdlKSAmJiAhdG9wT3JpZ2luLT5pc1NhbWVPcmlnaW5BcygqdGhpcykpCisgICAgaWYgKCht
X3N0b3JhZ2VCbG9ja2luZ1BvbGljeSA9PSBTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkJsb2NrVGhp
cmRQYXJ0eSB8fCB0b3BPcmlnaW4tPm1fc3RvcmFnZUJsb2NraW5nUG9saWN5ID09IFN0b3JhZ2VC
bG9ja2luZ1BvbGljeTo6QmxvY2tUaGlyZFBhcnR5KSAmJiAhdG9wT3JpZ2luLT5pc1NhbWVPcmln
aW5BcygqdGhpcykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwpA
QCAtNDg4LDcgKzQ4OCw3IEBAIHZvaWQgU2VjdXJpdHlPcmlnaW46OmdyYW50U3RvcmFnZUFjY2Vz
c0YKIAogU3RyaW5nIFNlY3VyaXR5T3JpZ2luOjpkb21haW5Gb3JDYWNoZVBhcnRpdGlvbigpIGNv
bnN0CiB7Ci0gICAgaWYgKG1fc3RvcmFnZUJsb2NraW5nUG9saWN5ICE9IEJsb2NrVGhpcmRQYXJ0
eVN0b3JhZ2UpCisgICAgaWYgKG1fc3RvcmFnZUJsb2NraW5nUG9saWN5ICE9IFN0b3JhZ2VCbG9j
a2luZ1BvbGljeTo6QmxvY2tUaGlyZFBhcnR5KQogICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmco
KTsKIAogICAgIGlmIChpc0hUVFBGYW1pbHkoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2VjdXJpdHlPcmlnaW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3Vy
aXR5T3JpZ2luLmgJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2Vj
dXJpdHlPcmlnaW4uaAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAogI3ByYWdtYSBv
bmNlCiAKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKKyNpbmNsdWRlICJTdG9yYWdl
QmxvY2tpbmdQb2xpY3kuaCIKICNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogI2luY2x1ZGUg
PHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgpAQCAtNDMsMTIgKzQ0LDYgQEAgcHVibGljOgogICAgICAgICBBc2sKICAgICB9OwogCi0g
ICAgZW51bSBTdG9yYWdlQmxvY2tpbmdQb2xpY3kgewotICAgICAgICBBbGxvd0FsbFN0b3JhZ2Ug
PSAwLAotICAgICAgICBCbG9ja1RoaXJkUGFydHlTdG9yYWdlLAotICAgICAgICBCbG9ja0FsbFN0
b3JhZ2UKLSAgICB9OwotCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxTZWN1cml0eU9y
aWdpbj4gY3JlYXRlKGNvbnN0IFVSTCYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8
U2VjdXJpdHlPcmlnaW4+IGNyZWF0ZVVuaXF1ZSgpOwogCkBAIC0yNDMsNyArMjM4LDcgQEAgcHJp
dmF0ZToKICAgICBib29sIG1fdW5pdmVyc2FsQWNjZXNzIHsgZmFsc2UgfTsKICAgICBib29sIG1f
ZG9tYWluV2FzU2V0SW5ET00geyBmYWxzZSB9OwogICAgIGJvb2wgbV9jYW5Mb2FkTG9jYWxSZXNv
dXJjZXMgeyBmYWxzZSB9OwotICAgIFN0b3JhZ2VCbG9ja2luZ1BvbGljeSBtX3N0b3JhZ2VCbG9j
a2luZ1BvbGljeSB7IEFsbG93QWxsU3RvcmFnZSB9OworICAgIFN0b3JhZ2VCbG9ja2luZ1BvbGlj
eSBtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeSB7IFN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QWxsb3dB
bGwgfTsKICAgICBib29sIG1fZW5mb3JjZXNGaWxlUGF0aFNlcGFyYXRpb24geyBmYWxzZSB9Owog
ICAgIGJvb2wgbV9uZWVkc1N0b3JhZ2VBY2Nlc3NGcm9tRmlsZVVSTHNRdWlyayB7IGZhbHNlIH07
CiAgICAgYm9vbCBtX2lzUG90ZW50aWFsbHlUcnVzdHdvcnRoeSB7IGZhbHNlIH07CkBAIC0zMDgs
MTcgKzMwMywzIEBAIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IGlubGluZSBSZWZQdHI8U2UKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi1uYW1lc3BhY2UgV1RGIHsKLQotdGVtcGxhdGU8
PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2Nr
aW5nUG9saWN5PiB7Ci0gICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKLSAgICAgICAgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSwKLSAgICAgICAgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QWxsb3dBbGxTdG9y
YWdlLAotICAgICAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9s
aWN5OjpCbG9ja1RoaXJkUGFydHlTdG9yYWdlLAotICAgICAgICBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5OjpCbG9ja0FsbFN0b3JhZ2UKLSAgICA+OwotfTsK
LQotCi19IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MueWFtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwJ
KHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAko
d29ya2luZyBjb3B5KQpAQCAtOTQsNyArOTQsNyBAQCBEYXRhRGV0ZWN0b3JUeXBlczoKICAgY29u
ZGl0aW9uOiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCiAgIGRlZmF1bHRWYWx1ZToKICAgICBXZWJD
b3JlOgotICAgICAgZGVmYXVsdDoKKyAgICAgIGRlZmF1bHQ6IERhdGFEZXRlY3RvclR5cGVzOjpO
b25lCiAKIERlZmF1bHRWaWRlb1Bvc3RlclVSTDoKICAgY29tbWVudDogPi0KQEAgLTEyNSwxOCAr
MTI1LDE4IEBAIEVkaXRhYmxlTGlua0JlaGF2aW9yOgogICByZWZpbmVkVHlwZTogRWRpdGFibGVM
aW5rQmVoYXZpb3IKICAgZGVmYXVsdFZhbHVlOgogICAgIFdlYkNvcmU6Ci0gICAgICBkZWZhdWx0
OiBFZGl0YWJsZUxpbmtEZWZhdWx0QmVoYXZpb3IKKyAgICAgIGRlZmF1bHQ6IEVkaXRhYmxlTGlu
a0JlaGF2aW9yOjpEZWZhdWx0CiAKIEVkaXRpbmdCZWhhdmlvclR5cGU6CiAgIHR5cGU6IHVpbnQz
Ml90CiAgIHJlZmluZWRUeXBlOiBFZGl0aW5nQmVoYXZpb3JUeXBlCiAgIGRlZmF1bHRWYWx1ZToK
ICAgICBXZWJDb3JlOgotICAgICAgUExBVEZPUk0oSU9TX0ZBTUlMWSk6IEVkaXRpbmdJT1NCZWhh
dmlvcgotICAgICAgT1MoREFSV0lOKTogRWRpdGluZ01hY0JlaGF2aW9yCi0gICAgICBPUyhXSU5E
T1dTKTogRWRpdGluZ1dpbmRvd3NCZWhhdmlvcgotICAgICAgT1MoVU5JWCk6IEVkaXRpbmdVbml4
QmVoYXZpb3IKLSAgICAgIGRlZmF1bHQ6IEVkaXRpbmdNYWNCZWhhdmlvcgorICAgICAgUExBVEZP
Uk0oSU9TX0ZBTUlMWSk6IEVkaXRpbmdCZWhhdmlvclR5cGU6OklvcworICAgICAgT1MoREFSV0lO
KTogRWRpdGluZ0JlaGF2aW9yVHlwZTo6TWFjCisgICAgICBPUyhXSU5ET1dTKTogRWRpdGluZ0Jl
aGF2aW9yVHlwZTo6V2luZG93cworICAgICAgT1MoVU5JWCk6IEVkaXRpbmdCZWhhdmlvclR5cGU6
OlVuaXgKKyAgICAgIGRlZmF1bHQ6IEVkaXRpbmdCZWhhdmlvclR5cGU6Ok1hYwogCiBGaXhlZEJh
Y2tncm91bmRzUGFpbnRSZWxhdGl2ZVRvRG9jdW1lbnQ6CiAgIHR5cGU6IGJvb2wKQEAgLTIyOCw2
ICsyMjgsMTMgQEAgR2VvbG9jYXRpb25GbG9vckxldmVsRW5hYmxlZDoKICAgICBXZWJDb3JlOgog
ICAgICAgZGVmYXVsdDogdHJ1ZQogCitIVE1MUGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeToKKyAg
dHlwZTogdWludDMyX3QKKyAgcmVmaW5lZFR5cGU6IEhUTUxQYXJzZXJTY3JpcHRpbmdGbGFnUG9s
aWN5CisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJDb3JlOgorICAgICAgZGVmYXVsdDogSFRNTFBh
cnNlclNjcmlwdGluZ0ZsYWdQb2xpY3k6Ok9ubHlJZlNjcmlwdElzRW5hYmxlZAorCiBJZGVtcG90
ZW50TW9kZUF1dG9zaXppbmdPbmx5SG9ub3JzUGVyY2VudGFnZXM6CiAgIHR5cGU6IGJvb2wKICAg
Y29uZGl0aW9uOiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQpAQCAtMzg5LDEzICszOTYsNiBAQCBO
ZWVkc0RlZmVyS2V5RG93bkFuZEtleVByZXNzVGltZXJzVW50aWxOCiAgICAgV2ViQ29yZToKICAg
ICAgIGRlZmF1bHQ6IGZhbHNlCiAKLVBhcnNlclNjcmlwdGluZ0ZsYWdQb2xpY3k6Ci0gIHR5cGU6
IHVpbnQzMl90Ci0gIHJlZmluZWRUeXBlOiBQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5Ci0gIGRl
ZmF1bHRWYWx1ZToKLSAgICBXZWJDb3JlOgotICAgICAgZGVmYXVsdDogUGFyc2VyU2NyaXB0aW5n
RmxhZ1BvbGljeTo6T25seUlmU2NyaXB0SXNFbmFibGVkCi0KIFBheW1lbnRSZXF1ZXN0RW5hYmxl
ZDoKICAgdHlwZTogYm9vbAogICBjb25kaXRpb246IEVOQUJMRShQQVlNRU5UX1JFUVVFU1QpCkBA
IC00MDgsNyArNDA4LDggQEAgUERGSW1hZ2VDYWNoaW5nUG9saWN5OgogICByZWZpbmVkVHlwZTog
UERGSW1hZ2VDYWNoaW5nUG9saWN5CiAgIGRlZmF1bHRWYWx1ZToKICAgICBXZWJDb3JlOgotICAg
ICAgZGVmYXVsdDogUERGSW1hZ2VDYWNoaW5nRGVmYXVsdAorICAgICAgUExBVEZPUk0oSU9TX0ZB
TUlMWSk6IFBERkltYWdlQ2FjaGluZ1BvbGljeTo6QmVsb3dNZW1vcnlMaW1pdAorICAgICAgZGVm
YXVsdDogUERGSW1hZ2VDYWNoaW5nUG9saWN5OjpFbmFibGVkCiAKIFByZWZlck1JTUVUeXBlRm9y
SW1hZ2VzOgogICB0eXBlOiBib29sCkBAIC00ODksMTEgKzQ5MCwxMSBAQCBTdG9yYWdlQWNjZXNz
QVBJUGVyUGFnZVNjb3BlRW5hYmxlZDoKIAogU3RvcmFnZUJsb2NraW5nUG9saWN5OgogICB0eXBl
OiB1aW50MzJfdAotICByZWZpbmVkVHlwZTogU2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2lu
Z1BvbGljeQorICByZWZpbmVkVHlwZTogU3RvcmFnZUJsb2NraW5nUG9saWN5CiAgIHdlYmNvcmVP
bkNoYW5nZTogc3RvcmFnZUJsb2NraW5nUG9saWN5Q2hhbmdlZAogICBkZWZhdWx0VmFsdWU6CiAg
ICAgV2ViQ29yZToKLSAgICAgIGRlZmF1bHQ6IFNlY3VyaXR5T3JpZ2luOjpBbGxvd0FsbFN0b3Jh
Z2UKKyAgICAgIGRlZmF1bHQ6IFN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QWxsb3dBbGwKIAogU3lz
dGVtTGF5b3V0RGlyZWN0aW9uOgogICB0eXBlOiB1aW50MzJfdApAQCAtNTIzLDcgKzUyNCw3IEBA
IFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3I6CiAgIHJlZmluZWRUeXBlOiBU
ZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yCiAgIGRlZmF1bHRWYWx1ZToKICAg
ICBXZWJDb3JlOgotICAgICAgZGVmYXVsdDogVGV4dERpcmVjdGlvblN1Ym1lbnVBdXRvbWF0aWNh
bGx5SW5jbHVkZWQKKyAgICAgIGRlZmF1bHQ6IFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9u
QmVoYXZpb3I6OkF1dG9tYXRpY2FsbHlJbmNsdWRlZAogCiBUaW1lV2l0aG91dE1vdXNlTW92ZW1l
bnRCZWZvcmVIaWRpbmdDb250cm9sczoKICAgdHlwZTogZG91YmxlCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzQmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3NCYXNlLmgJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3NCYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDc0ICsyOCwzNyBAQAogCiAj
aW5jbHVkZSAiQ2xpcGJvYXJkQWNjZXNzUG9saWN5LmgiCiAjaW5jbHVkZSAiQ29udGVudFR5cGUu
aCIKLSNpbmNsdWRlICJFZGl0aW5nQmVoYXZpb3JUeXBlcy5oIgotI2luY2x1ZGUgIkludFNpemUu
aCIKLSNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIkVkaXRhYmxlTGlua0Jl
aGF2aW9yLmgiCisjaW5jbHVkZSAiRWRpdGluZ0JlaGF2aW9yVHlwZS5oIgorI2luY2x1ZGUgIkZv
bnRMb2FkVGltaW5nT3ZlcnJpZGUuaCIKKyNpbmNsdWRlICJGb250UmVuZGVyaW5nTW9kZS5oIgor
I2luY2x1ZGUgIkZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZS5oIgorI2luY2x1ZGUgIkZyYW1lRmxh
dHRlbmluZy5oIgorI2luY2x1ZGUgIkhUTUxQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5LmgiCisj
aW5jbHVkZSAiUERGSW1hZ2VDYWNoaW5nUG9saWN5LmgiCisjaW5jbHVkZSAiU3RvcmFnZUJsb2Nr
aW5nUG9saWN5LmgiCiAjaW5jbHVkZSAiU3RvcmFnZU1hcC5oIgotI2luY2x1ZGUgIlRleHRGbGFn
cy5oIgorI2luY2x1ZGUgIlRleHREaXJlY3Rpb24uaCIKKyNpbmNsdWRlICJUZXh0RGlyZWN0aW9u
U3VibWVudUluY2x1c2lvbkJlaGF2aW9yLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKLSNpbmNsdWRl
ICJXcml0aW5nTW9kZS5oIgorI2luY2x1ZGUgIlVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3ku
aCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9SdW50aW1lRmxhZ3MuaD4KICNpbmNsdWRlIDx1
bmljb2RlL3VzY3JpcHQuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KICNpbmNsdWRlIDx3dGYv
VVJMLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21T
dHJpbmcuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nSGFzaC5oPgorCisjaWYgRU5B
QkxFKERBVEFfREVURUNUSU9OKQorI2luY2x1ZGUgIkRhdGFEZXRlY3RvclR5cGVzLmgiCisjZW5k
aWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGb250R2VuZXJpY0ZhbWlsaWVzOwog
Y2xhc3MgUGFnZTsKIAotZW51bSBjbGFzcyBEYXRhRGV0ZWN0b3JUeXBlcyA6IHVpbnQzMl90Owot
Ci1lbnVtIEVkaXRhYmxlTGlua0JlaGF2aW9yIHsKLSAgICBFZGl0YWJsZUxpbmtEZWZhdWx0QmVo
YXZpb3IsCi0gICAgRWRpdGFibGVMaW5rQWx3YXlzTGl2ZSwKLSAgICBFZGl0YWJsZUxpbmtPbmx5
TGl2ZVdpdGhTaGlmdEtleSwKLSAgICBFZGl0YWJsZUxpbmtMaXZlV2hlbk5vdEZvY3VzZWQsCi0g
ICAgRWRpdGFibGVMaW5rTmV2ZXJMaXZlCi19OwotCi1lbnVtIFRleHREaXJlY3Rpb25TdWJtZW51
SW5jbHVzaW9uQmVoYXZpb3IgewotICAgIFRleHREaXJlY3Rpb25TdWJtZW51TmV2ZXJJbmNsdWRl
ZCwKLSAgICBUZXh0RGlyZWN0aW9uU3VibWVudUF1dG9tYXRpY2FsbHlJbmNsdWRlZCwKLSAgICBU
ZXh0RGlyZWN0aW9uU3VibWVudUFsd2F5c0luY2x1ZGVkCi19OwotCi1lbnVtIERlYnVnT3Zlcmxh
eVJlZ2lvbkZsYWdzIHsKLSAgICBOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbiA9IDEgPDwgMCwKLSAg
ICBXaGVlbEV2ZW50SGFuZGxlclJlZ2lvbiA9IDEgPDwgMSwKLSAgICBUb3VjaEFjdGlvblJlZ2lv
biA9IDEgPDwgMiwKLSAgICBFZGl0YWJsZUVsZW1lbnRSZWdpb24gPSAxIDw8IDMsCi19OwotCi1l
bnVtIGNsYXNzIFVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3kgewotICAgIENvbnRlbnQsCi0g
ICAgU3lzdGVtCi19OwotCi1lbnVtIFBERkltYWdlQ2FjaGluZ1BvbGljeSB7Ci0gICAgUERGSW1h
Z2VDYWNoaW5nRW5hYmxlZCwKLSAgICBQREZJbWFnZUNhY2hpbmdCZWxvd01lbW9yeUxpbWl0LAot
ICAgIFBERkltYWdlQ2FjaGluZ0Rpc2FibGVkLAotICAgIFBERkltYWdlQ2FjaGluZ0NsaXBCb3Vu
ZHNPbmx5LAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgUERGSW1hZ2VDYWNoaW5nRGVm
YXVsdCA9IFBERkltYWdlQ2FjaGluZ0JlbG93TWVtb3J5TGltaXQKLSNlbHNlCi0gICAgUERGSW1h
Z2VDYWNoaW5nRGVmYXVsdCA9IFBERkltYWdlQ2FjaGluZ0VuYWJsZWQKLSNlbmRpZgotfTsKLQot
ZW51bSBjbGFzcyBGcmFtZUZsYXR0ZW5pbmcgewotICAgIERpc2FibGVkLAotICAgIEVuYWJsZWRG
b3JOb25GdWxsU2NyZWVuSUZyYW1lcywKLSAgICBGdWxseUVuYWJsZWQKLX07Ci0KLXR5cGVkZWYg
dW5zaWduZWQgRGVidWdPdmVybGF5UmVnaW9uczsKLQogY2xhc3MgU2V0dGluZ3NCYXNlIHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShTZXR0aW5nc0Jhc2UpOyBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKQEAgLTEwMywxMCArNjYsNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHBh
Z2VEZXN0cm95ZWQoKSB7IG1fcGFnZSA9IG51bGxwdHI7IH0KIAotICAgIGVudW0gY2xhc3MgRm9u
dExvYWRUaW1pbmdPdmVycmlkZSA6IHVpbnQ4X3QgeyBOb25lLCBCbG9jaywgU3dhcCwgRmFpbHVy
ZSB9OwotICAgIGVudW0gY2xhc3MgUGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeSA6IHVpbnQ4X3Qg
eyBPbmx5SWZTY3JpcHRJc0VuYWJsZWQsIEVuYWJsZWQgfTsKLSAgICBlbnVtIGNsYXNzIEZvcmNl
ZEFjY2Vzc2liaWxpdHlWYWx1ZSA6IHVpbnQ4X3QgeyBTeXN0ZW0sIE9uLCBPZmYgfTsKLQogI2lm
IEVOQUJMRShNRURJQV9TT1VSQ0UpCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgcGxh
dGZvcm1EZWZhdWx0TWVkaWFTb3VyY2VFbmFibGVkKCk7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvU3RvcmFnZUJsb2NraW5nUG9saWN5LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGFnZS9TdG9yYWdlQmxvY2tpbmdQb2xpY3kuaAkobm9uZXhpc3RlbnQpCisrKyBT
b3VyY2UvV2ViQ29yZS9wYWdlL1N0b3JhZ2VCbG9ja2luZ1BvbGljeS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUg
PHd0Zi9FbnVtVHJhaXRzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBT
dG9yYWdlQmxvY2tpbmdQb2xpY3kgOiB1aW50OF90IHsKKyAgICBBbGxvd0FsbCA9IDAsCisgICAg
QmxvY2tUaGlyZFBhcnR5LAorICAgIEJsb2NrQWxsCit9OworCit9CisKK25hbWVzcGFjZSBXVEYg
eworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2lu
Z1BvbGljeT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNv
cmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSwKKyAgICAgICAgV2ViQ29yZTo6U3RvcmFnZUJsb2Nr
aW5nUG9saWN5OjpBbGxvd0FsbCwKKyAgICAgICAgV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9s
aWN5OjpCbG9ja1RoaXJkUGFydHksCisgICAgICAgIFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1Bv
bGljeTo6QmxvY2tBbGwKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wYWdlL1RleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3Iu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1RleHREaXJlY3Rpb25TdWJtZW51
SW5jbHVzaW9uQmVoYXZpb3IuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdl
L1RleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IuaAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworZW51bSBjbGFzcyBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2
aW9yIDogdWludDhfdCB7CisgICAgTmV2ZXJJbmNsdWRlZCwKKyAgICBBdXRvbWF0aWNhbGx5SW5j
bHVkZWQsCisgICAgQWx3YXlzSW5jbHVkZWQKK307CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvVXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvVXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeS5oCShub25leGlzdGVu
dCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvVXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFVzZXJJbnRlcmZhY2VEaXJl
Y3Rpb25Qb2xpY3kgOiBib29sIHsKKyAgICBDb250ZW50LAorICAgIFN5c3RlbQorfTsKKworfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmgJKHJldmlzaW9uIDI2OTgzMCkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
Niw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgorI2lu
Y2x1ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgiCiAjaW5jbHVkZSAiSW1hZ2VPcmllbnRhdGlvbi5o
IgogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJQYXRoLmgiCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaAkocmV2
aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERl
c2NyaXB0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI0LDYgKzI0LDcgQEAKIAogI3ByYWdtYSBv
bmNlCiAKKyNpbmNsdWRlICJGb250UmVuZGVyaW5nTW9kZS5oIgogI2luY2x1ZGUgIkZvbnRTZWxl
Y3Rpb25BbGdvcml0aG0uaCIKICNpbmNsdWRlICJGb250VGFnZ2VkU2V0dGluZ3MuaCIKICNpbmNs
dWRlICJUZXh0RmxhZ3MuaCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL1BERkRvY3VtZW50SW1hZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuY3BwCShyZXZpc2lvbiAyNjk4MzAp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1bWVudEltYWdl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAxLDcgKzIwMSw3IEBAIHZvaWQgUERGRG9jdW1lbnRJ
bWFnZTo6ZGVjb2RlZFNpemVDaGFuZ2UKIHZvaWQgUERGRG9jdW1lbnRJbWFnZTo6dXBkYXRlQ2Fj
aGVkSW1hZ2VJZk5lZWRlZChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVj
dCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0KQogewogICAgIC8vIENsaXBwZWQg
b3B0aW9uIGlzIGZvciB0ZXN0aW5nIG9ubHkuIEZvcmNlIHJlLWNhY2hpbmcgdGhlIFBERiB3aXRo
IGVhY2ggZHJhdy4KLSAgICBib29sIGZvcmNlVXBkYXRlQ2FjaGVkSW1hZ2UgPSBtX3BkZkltYWdl
Q2FjaGluZ1BvbGljeSA9PSBQREZJbWFnZUNhY2hpbmdDbGlwQm91bmRzT25seSB8fCAhbV9jYWNo
ZWRJbWFnZUJ1ZmZlcjsKKyAgICBib29sIGZvcmNlVXBkYXRlQ2FjaGVkSW1hZ2UgPSBtX3BkZklt
YWdlQ2FjaGluZ1BvbGljeSA9PSBQREZJbWFnZUNhY2hpbmdQb2xpY3k6OkNsaXBCb3VuZHNPbmx5
IHx8ICFtX2NhY2hlZEltYWdlQnVmZmVyOwogICAgIGlmICghZm9yY2VVcGRhdGVDYWNoZWRJbWFn
ZSAmJiBjYWNoZVBhcmFtZXRlcnNNYXRjaChjb250ZXh0LCBkc3RSZWN0LCBzcmNSZWN0KSkgewog
ICAgICAgICAvLyBBZGp1c3QgdGhlIHZpZXctcG9ydCByZWN0YW5nbGVzIGlmIG5vIHJlLWNhY2hp
bmcgd2lsbCBoYXBwZW4uCiAgICAgICAgIG1fY2FjaGVkSW1hZ2VSZWN0Lm1vdmUoRmxvYXRTaXpl
KGRzdFJlY3QubG9jYXRpb24oKSAtIG1fY2FjaGVkRGVzdGluYXRpb25SZWN0LmxvY2F0aW9uKCkp
KTsKQEAgLTIxMCwxNyArMjEwLDE3IEBAIHZvaWQgUERGRG9jdW1lbnRJbWFnZTo6dXBkYXRlQ2Fj
aGVkSW1hZ2UKICAgICB9CiAKICAgICBzd2l0Y2ggKG1fcGRmSW1hZ2VDYWNoaW5nUG9saWN5KSB7
Ci0gICAgY2FzZSBQREZJbWFnZUNhY2hpbmdEaXNhYmxlZDoKKyAgICBjYXNlIFBERkltYWdlQ2Fj
aGluZ1BvbGljeTo6RGlzYWJsZWQ6CiAgICAgICAgIHJldHVybjsKLSAgICBjYXNlIFBERkltYWdl
Q2FjaGluZ0JlbG93TWVtb3J5TGltaXQ6CisgICAgY2FzZSBQREZJbWFnZUNhY2hpbmdQb2xpY3k6
OkJlbG93TWVtb3J5TGltaXQ6CiAgICAgICAgIC8vIEtlZXAgdGhlIG1lbW9yeSB1c2VkIGJ5IHRo
ZSBjYWNoZWQgaW1hZ2UgYmVsb3cgc29tZSB0aHJlc2hvbGQsIG90aGVyd2lzZSBXZWJLaXQgcHJv
Y2VzcwogICAgICAgICAvLyB3aWxsIGpldHNhbSBpZiBpdCBleGNlZWRzIGl0cyBtZW1vcnkgbGlt
aXQuIE9ubHkgYSByZWN0YW5nbGUgZnJvbSB0aGUgUERGIG1heSBiZSBjYWNoZWQuCiAgICAgICAg
IG1fY2FjaGVkSW1hZ2VSZWN0ID0gY2FjaGVkSW1hZ2VSZWN0KGNvbnRleHQsIGRzdFJlY3QpOwog
ICAgICAgICBicmVhazsKLSAgICBjYXNlIFBERkltYWdlQ2FjaGluZ0NsaXBCb3VuZHNPbmx5Ogor
ICAgIGNhc2UgUERGSW1hZ2VDYWNoaW5nUG9saWN5OjpDbGlwQm91bmRzT25seToKICAgICAgICAg
bV9jYWNoZWRJbWFnZVJlY3QgPSBpbnRlcnNlY3Rpb24oY29udGV4dC5jbGlwQm91bmRzKCksIGRz
dFJlY3QpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFBERkltYWdlQ2FjaGluZ0VuYWJsZWQ6
CisgICAgY2FzZSBQREZJbWFnZUNhY2hpbmdQb2xpY3k6OkVuYWJsZWQ6CiAgICAgICAgIG1fY2Fj
aGVkSW1hZ2VSZWN0ID0gZHN0UmVjdDsKICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtMjI4LDcg
KzIyOCw3IEBAIHZvaWQgUERGRG9jdW1lbnRJbWFnZTo6dXBkYXRlQ2FjaGVkSW1hZ2UKICAgICBG
bG9hdFNpemUgY2FjaGVkSW1hZ2VTaXplID0gRmxvYXRSZWN0KGVuY2xvc2luZ0ludFJlY3QobV9j
YWNoZWRJbWFnZVJlY3QpKS5zaXplKCk7CiAKICAgICAvLyBDYWNoZSB0aGUgUERGIGltYWdlIG9u
bHkgaWYgdGhlIHNpemUgb2YgdGhlIG5ldyBpbWFnZSB3b24ndCBleGNlZWQgdGhlIGNhY2hlIHRo
cmVzaG9sZC4KLSAgICBpZiAobV9wZGZJbWFnZUNhY2hpbmdQb2xpY3kgPT0gUERGSW1hZ2VDYWNo
aW5nQmVsb3dNZW1vcnlMaW1pdCkgeworICAgIGlmIChtX3BkZkltYWdlQ2FjaGluZ1BvbGljeSA9
PSBQREZJbWFnZUNhY2hpbmdQb2xpY3k6OkJlbG93TWVtb3J5TGltaXQpIHsKICAgICAgICAgSW50
U2l6ZSBzY2FsZWRTaXplID0gSW1hZ2VCdWZmZXI6OmNvbXBhdGlibGVCdWZmZXJTaXplKGNhY2hl
ZEltYWdlU2l6ZSwgY29udGV4dCk7CiAgICAgICAgIGlmIChzX2FsbERlY29kZWREYXRhU2l6ZSAr
IHNjYWxlZFNpemUudW5jbGFtcGVkQXJlYSgpICogNCAtIG1fY2FjaGVkQnl0ZXMgPiBzX21heERl
Y29kZWREYXRhU2l6ZSkgewogICAgICAgICAgICAgZGVzdHJveURlY29kZWREYXRhKCk7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1bWVudEltYWdlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9j
dW1lbnRJbWFnZS5oCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9QREZEb2N1bWVudEltYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTk0LDcg
Kzk0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUNhY2hlZEltYWdlSWZOZWVkZWQoR3Jh
cGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3Qm
IHNyY1JlY3QpOwogICAgIGJvb2wgY2FjaGVQYXJhbWV0ZXJzTWF0Y2goR3JhcGhpY3NDb250ZXh0
JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QpIGNv
bnN0OwogCi0gICAgUERGSW1hZ2VDYWNoaW5nUG9saWN5IG1fcGRmSW1hZ2VDYWNoaW5nUG9saWN5
IHsgUERGSW1hZ2VDYWNoaW5nRGVmYXVsdCB9OworICAgIFBERkltYWdlQ2FjaGluZ1BvbGljeSBt
X3BkZkltYWdlQ2FjaGluZ1BvbGljeSB7IFBERkltYWdlQ2FjaGluZ1BvbGljeTo6RGVmYXVsdCB9
OwogCiAjaWYgVVNFKFBERktJVF9GT1JfUERGRE9DVU1FTlRJTUFHRSkKICAgICBSZXRhaW5QdHI8
UERGRG9jdW1lbnQ+IG1fZG9jdW1lbnQ7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L0ZvbnRSZW5kZXJpbmdNb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9Gb250UmVuZGVyaW5nTW9kZS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvRm9udFJlbmRlcmluZ01vZGUuaAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3
dGYvRW51bVRyYWl0cy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIFRoaXMgc2V0dGlu
ZyBpcyB1c2VkIHRvIHByb3ZpZGUgd2F5cyBvZiBzd2l0Y2hpbmcgYmV0d2VlbiBtdWx0aXBsZSBy
ZW5kZXJpbmcgbW9kZXMgdGhhdCBtYXkgaGF2ZSBkaWZmZXJlbnQKKy8vIG1ldHJpY3MuIEl0IGlz
IHVzZWQgdG8gc3dpdGNoIGJldHdlZW4gQ0cgYW5kIEdESSB0ZXh0IG9uIFdpbmRvd3MuCitlbnVt
IGNsYXNzIEZvbnRSZW5kZXJpbmdNb2RlIDogdWludDhfdCB7CisgICAgTm9ybWFsLAorICAgIEFs
dGVybmF0ZQorfTsKKworfQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3Qg
RW51bVRyYWl0czxXZWJDb3JlOjpGb250UmVuZGVyaW5nTW9kZT4geworICAgIHVzaW5nIHZhbHVl
cyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OkZvbnRSZW5kZXJpbmdNb2RlLAorICAg
ICAgICBXZWJDb3JlOjpGb250UmVuZGVyaW5nTW9kZTo6Tm9ybWFsLAorICAgICAgICBXZWJDb3Jl
OjpGb250UmVuZGVyaW5nTW9kZTo6QWx0ZXJuYXRlCisgICAgPjsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdURgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RGlyZWN0aW9u
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RGlyZWN0
aW9uLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0
RGlyZWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgVGV4dERp
cmVjdGlvbiA6IGJvb2wgeyBMVFIsIFJUTCB9OworCitpbmxpbmUgYm9vbCBpc0xlZnRUb1JpZ2h0
RGlyZWN0aW9uKFRleHREaXJlY3Rpb24gZGlyZWN0aW9uKQoreworICAgIHJldHVybiBkaXJlY3Rp
b24gPT0gVGV4dERpcmVjdGlvbjo6TFRSOworfQorCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L1RleHRGbGFncy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvVGV4dEZsYWdzLmgJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvVGV4dEZsYWdzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDEzICs0
NCw2IEBAIGVudW0gY2xhc3MgRm9udFNtb290aGluZ01vZGUgOiB1aW50OF90IHsKICAgICBTdWJw
aXhlbEFudGlhbGlhc2VkCiB9OwogCi0vLyBUaGlzIHNldHRpbmcgaXMgdXNlZCB0byBwcm92aWRl
IHdheXMgb2Ygc3dpdGNoaW5nIGJldHdlZW4gbXVsdGlwbGUgcmVuZGVyaW5nIG1vZGVzIHRoYXQg
bWF5IGhhdmUgZGlmZmVyZW50Ci0vLyBtZXRyaWNzLiBJdCBpcyB1c2VkIHRvIHN3aXRjaCBiZXR3
ZWVuIENHIGFuZCBHREkgdGV4dCBvbiBXaW5kb3dzLgotZW51bSBjbGFzcyBGb250UmVuZGVyaW5n
TW9kZSA6IHVpbnQ4X3QgewotICAgIE5vcm1hbCwKLSAgICBBbHRlcm5hdGUKLX07Ci0KIGVudW0g
Y2xhc3MgRm9udE9yaWVudGF0aW9uIDogdWludDhfdCB7CiAgICAgSG9yaXpvbnRhbCwKICAgICBW
ZXJ0aWNhbApAQCAtNjQ3LDE0ICs2NDAsNiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRz
PFdlYkNvcmU6OkZvCiAgICAgPjsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8
V2ViQ29yZTo6Rm9udFJlbmRlcmluZ01vZGU+IHsKLSAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFs
dWVzPAotICAgIFdlYkNvcmU6OkZvbnRSZW5kZXJpbmdNb2RlLAotICAgIFdlYkNvcmU6OkZvbnRS
ZW5kZXJpbmdNb2RlOjpOb3JtYWwsCi0gICAgV2ViQ29yZTo6Rm9udFJlbmRlcmluZ01vZGU6OkFs
dGVybmF0ZQotICAgID47Ci19OwotCiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNv
cmU6OkZvbnRPcmllbnRhdGlvbj4gewogICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CiAg
ICAgV2ViQ29yZTo6Rm9udE9yaWVudGF0aW9uLApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9Xcml0aW5nTW9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvV3JpdGluZ01vZGUuaAkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9Xcml0aW5nTW9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSwxOCAr
MzEsMTEgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJUZXh0RGlyZWN0aW9uLmgiCiAj
aW5jbHVkZSA8YXJyYXk+Ci0jaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1lbnVtIGNsYXNzIFRleHREaXJlY3Rpb24gOiBib29sIHsgTFRSLCBSVEwg
fTsKLQotaW5saW5lIGJvb2wgaXNMZWZ0VG9SaWdodERpcmVjdGlvbihUZXh0RGlyZWN0aW9uIGRp
cmVjdGlvbikKLXsKLSAgICByZXR1cm4gZGlyZWN0aW9uID09IFRleHREaXJlY3Rpb246OkxUUjsK
LX0KLQogZW51bSBjbGFzcyBXcml0aW5nTW9kZSA6IHVpbnQ4X3QgewogICAgIFRvcFRvQm90dG9t
ID0gMCwgLy8gaG9yaXpvbnRhbC10YgogICAgIEJvdHRvbVRvVG9wID0gMSwgLy8gaG9yaXpvbnRh
bC1idApAQCAtNTAsNjcgKzQzLDY4IEBAIGVudW0gY2xhc3MgV3JpdGluZ01vZGUgOiB1aW50OF90
IHsKICAgICBSaWdodFRvTGVmdCA9IDMsIC8vIHZlcnRpY2FsLXJsCiB9OwogCi0jZGVmaW5lIE1B
S0VfVEVYVF9GTE9XKHdyaXRpbmdNb2RlLCBkaXJlY3Rpb24pICAoc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KHdyaXRpbmdNb2RlKSA8PCAxIHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGRpcmVjdGlvbikp
Citjb25zdGV4cHIgdW5zaWduZWQgbWFrZVRleHRGbG93SW5pdGFsaXplcihXcml0aW5nTW9kZSB3
cml0aW5nTW9kZSwgVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24pCit7CisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPih3cml0aW5nTW9kZSkgPDwgMSB8IHN0YXRpY19jYXN0PHVuc2lnbmVk
PihkaXJlY3Rpb24pOworfQogCiAvLyBEZWZpbmUgdGhlIHRleHQgZmxvdyBpbiB0ZXJtcyBvZiB0
aGUgd3JpdGluZyBtb2RlIGFuZCB0aGUgdGV4dCBkaXJlY3Rpb24uIFRoZSBmaXJzdAogLy8gcGFy
dCBpcyB0aGUgbGluZSBncm93aW5nIGRpcmVjdGlvbiBhbmQgdGhlIHNlY29uZCBwYXJ0IGlzIHRo
ZSBibG9jayBncm93aW5nIGRpcmVjdGlvbi4KIGVudW0gVGV4dEZsb3cgewotICAgIElubGluZUVh
c3RCbG9ja1NvdXRoID0gTUFLRV9URVhUX0ZMT1coV3JpdGluZ01vZGU6OlRvcFRvQm90dG9tLCBU
ZXh0RGlyZWN0aW9uOjpMVFIpLAotICAgIElubGluZVdlc3RCbG9ja1NvdXRoID0gTUFLRV9URVhU
X0ZMT1coV3JpdGluZ01vZGU6OlRvcFRvQm90dG9tLCBUZXh0RGlyZWN0aW9uOjpSVEwpLAotICAg
IElubGluZUVhc3RCbG9ja05vcnRoID0gTUFLRV9URVhUX0ZMT1coV3JpdGluZ01vZGU6OkJvdHRv
bVRvVG9wLCBUZXh0RGlyZWN0aW9uOjpMVFIpLAotICAgIElubGluZVdlc3RCbG9ja05vcnRoID0g
TUFLRV9URVhUX0ZMT1coV3JpdGluZ01vZGU6OkJvdHRvbVRvVG9wLCBUZXh0RGlyZWN0aW9uOjpS
VEwpLAotICAgIElubGluZVNvdXRoQmxvY2tFYXN0ID0gTUFLRV9URVhUX0ZMT1coV3JpdGluZ01v
ZGU6OkxlZnRUb1JpZ2h0LCBUZXh0RGlyZWN0aW9uOjpMVFIpLAotICAgIElubGluZVNvdXRoQmxv
Y2tXZXN0ID0gTUFLRV9URVhUX0ZMT1coV3JpdGluZ01vZGU6OkxlZnRUb1JpZ2h0LCBUZXh0RGly
ZWN0aW9uOjpSVEwpLAotICAgIElubGluZU5vcnRoQmxvY2tFYXN0ID0gTUFLRV9URVhUX0ZMT1co
V3JpdGluZ01vZGU6OlJpZ2h0VG9MZWZ0LCBUZXh0RGlyZWN0aW9uOjpMVFIpLAotICAgIElubGlu
ZU5vcnRoQmxvY2tXZXN0ID0gTUFLRV9URVhUX0ZMT1coV3JpdGluZ01vZGU6OlJpZ2h0VG9MZWZ0
LCBUZXh0RGlyZWN0aW9uOjpSVEwpCisgICAgSW5saW5lRWFzdEJsb2NrU291dGggPSBtYWtlVGV4
dEZsb3dJbml0YWxpemVyKFdyaXRpbmdNb2RlOjpUb3BUb0JvdHRvbSwgVGV4dERpcmVjdGlvbjo6
TFRSKSwKKyAgICBJbmxpbmVXZXN0QmxvY2tTb3V0aCA9IG1ha2VUZXh0Rmxvd0luaXRhbGl6ZXIo
V3JpdGluZ01vZGU6OlRvcFRvQm90dG9tLCBUZXh0RGlyZWN0aW9uOjpSVEwpLAorICAgIElubGlu
ZUVhc3RCbG9ja05vcnRoID0gbWFrZVRleHRGbG93SW5pdGFsaXplcihXcml0aW5nTW9kZTo6Qm90
dG9tVG9Ub3AsIFRleHREaXJlY3Rpb246OkxUUiksCisgICAgSW5saW5lV2VzdEJsb2NrTm9ydGgg
PSBtYWtlVGV4dEZsb3dJbml0YWxpemVyKFdyaXRpbmdNb2RlOjpCb3R0b21Ub1RvcCwgVGV4dERp
cmVjdGlvbjo6UlRMKSwKKyAgICBJbmxpbmVTb3V0aEJsb2NrRWFzdCA9IG1ha2VUZXh0Rmxvd0lu
aXRhbGl6ZXIoV3JpdGluZ01vZGU6OkxlZnRUb1JpZ2h0LCBUZXh0RGlyZWN0aW9uOjpMVFIpLAor
ICAgIElubGluZVNvdXRoQmxvY2tXZXN0ID0gbWFrZVRleHRGbG93SW5pdGFsaXplcihXcml0aW5n
TW9kZTo6TGVmdFRvUmlnaHQsIFRleHREaXJlY3Rpb246OlJUTCksCisgICAgSW5saW5lTm9ydGhC
bG9ja0Vhc3QgPSBtYWtlVGV4dEZsb3dJbml0YWxpemVyKFdyaXRpbmdNb2RlOjpSaWdodFRvTGVm
dCwgVGV4dERpcmVjdGlvbjo6TFRSKSwKKyAgICBJbmxpbmVOb3J0aEJsb2NrV2VzdCA9IG1ha2VU
ZXh0Rmxvd0luaXRhbGl6ZXIoV3JpdGluZ01vZGU6OlJpZ2h0VG9MZWZ0LCBUZXh0RGlyZWN0aW9u
OjpSVEwpCiB9OwogCi1pbmxpbmUgVGV4dEZsb3cgbWFrZVRleHRGbG93KFdyaXRpbmdNb2RlIHdy
aXRpbmdNb2RlLCBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbikKK2NvbnN0ZXhwciBpbmxpbmUgVGV4
dEZsb3cgbWFrZVRleHRGbG93KFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlLCBUZXh0RGlyZWN0aW9u
IGRpcmVjdGlvbikKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VGV4dEZsb3c+KE1BS0VfVEVY
VF9GTE9XKHdyaXRpbmdNb2RlLCBkaXJlY3Rpb24pKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
VGV4dEZsb3c+KG1ha2VUZXh0Rmxvd0luaXRhbGl6ZXIod3JpdGluZ01vZGUsIGRpcmVjdGlvbikp
OwogfQogCi0jdW5kZWYgTUFLRV9URVhUX0ZMT1cKLQotY29uc3QgdW5zaWduZWQgVGV4dEZsb3dS
ZXZlcnNlZE1hc2sgPSAxOwotY29uc3QgdW5zaWduZWQgVGV4dEZsb3dGbGlwcGVkTWFzayA9IDI7
Ci1jb25zdCB1bnNpZ25lZCBUZXh0Rmxvd1ZlcnRpY2FsTWFzayA9IDQ7Citjb25zdGV4cHIgdW5z
aWduZWQgVGV4dEZsb3dSZXZlcnNlZE1hc2sgPSAxOworY29uc3RleHByIHVuc2lnbmVkIFRleHRG
bG93RmxpcHBlZE1hc2sgPSAyOworY29uc3RleHByIHVuc2lnbmVkIFRleHRGbG93VmVydGljYWxN
YXNrID0gNDsKIAotaW5saW5lIGJvb2wgaXNSZXZlcnNlZFRleHRGbG93KFRleHRGbG93IHRleHRm
bG93KQorY29uc3RleHByIGlubGluZSBib29sIGlzUmV2ZXJzZWRUZXh0RmxvdyhUZXh0RmxvdyB0
ZXh0ZmxvdykKIHsKICAgICByZXR1cm4gdGV4dGZsb3cgJiBUZXh0Rmxvd1JldmVyc2VkTWFzazsK
IH0KIAotaW5saW5lIGJvb2wgaXNGbGlwcGVkVGV4dEZsb3coVGV4dEZsb3cgdGV4dGZsb3cpCitj
b25zdGV4cHIgaW5saW5lIGJvb2wgaXNGbGlwcGVkVGV4dEZsb3coVGV4dEZsb3cgdGV4dGZsb3cp
CiB7CiAgICAgcmV0dXJuIHRleHRmbG93ICYgVGV4dEZsb3dGbGlwcGVkTWFzazsKIH0KIAotaW5s
aW5lIGJvb2wgaXNWZXJ0aWNhbFRleHRGbG93KFRleHRGbG93IHRleHRmbG93KQorY29uc3RleHBy
IGlubGluZSBib29sIGlzVmVydGljYWxUZXh0RmxvdyhUZXh0RmxvdyB0ZXh0ZmxvdykKIHsKICAg
ICByZXR1cm4gdGV4dGZsb3cgJiBUZXh0Rmxvd1ZlcnRpY2FsTWFzazsKIH0KIAogLy8gTGluZXMg
aGF2ZSB2ZXJ0aWNhbCBvcmllbnRhdGlvbjsgbW9kZXMgdmVydGljYWwtbHIgb3IgdmVydGljYWwt
cmwuCi1pbmxpbmUgYm9vbCBpc1ZlcnRpY2FsV3JpdGluZ01vZGUoV3JpdGluZ01vZGUgd3JpdGlu
Z01vZGUpCitjb25zdGV4cHIgaW5saW5lIGJvb2wgaXNWZXJ0aWNhbFdyaXRpbmdNb2RlKFdyaXRp
bmdNb2RlIHdyaXRpbmdNb2RlKQogewogICAgIHJldHVybiBpc1ZlcnRpY2FsVGV4dEZsb3cobWFr
ZVRleHRGbG93KHdyaXRpbmdNb2RlLCBUZXh0RGlyZWN0aW9uOjpMVFIpKTsKIH0KIAogLy8gQmxv
Y2sgcHJvZ3Jlc3Npb24gaW5jcmVhc2VzIGluIHRoZSBvcHBvc2l0ZSBkaXJlY3Rpb24gdG8gbm9y
bWFsOyBtb2RlcyB2ZXJ0aWNhbC1ybCBvciBob3Jpem9udGFsLWJ0LgotaW5saW5lIGJvb2wgaXNG
bGlwcGVkV3JpdGluZ01vZGUoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUpCitjb25zdGV4cHIgaW5s
aW5lIGJvb2wgaXNGbGlwcGVkV3JpdGluZ01vZGUoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUpCiB7
CiAgICAgcmV0dXJuIGlzRmxpcHBlZFRleHRGbG93KG1ha2VUZXh0Rmxvdyh3cml0aW5nTW9kZSwg
VGV4dERpcmVjdGlvbjo6TFRSKSk7CiB9CiAKIC8vIExpbmVzIGhhdmUgaG9yaXpvbnRhbCBvcmll
bnRhdGlvbjsgbW9kZXMgaG9yaXpvbnRhbC10YiBvciBob3Jpem9udGFsLWJ0LgotaW5saW5lIGJv
b2wgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUpCitjb25z
dGV4cHIgaW5saW5lIGJvb2wgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoV3JpdGluZ01vZGUgd3Jp
dGluZ01vZGUpCiB7CiAgICAgcmV0dXJuICFpc1ZlcnRpY2FsV3JpdGluZ01vZGUod3JpdGluZ01v
ZGUpOwogfQogCiAvLyBCb3R0b20gb2YgdGhlIGxpbmUgb2NjdXJzIGVhcmxpZXIgaW4gdGhlIGJs
b2NrOyBtb2RlcyB2ZXJ0aWNhbC1sciBvciBob3Jpem9udGFsLWJ0LgotaW5saW5lIGJvb2wgaXNG
bGlwcGVkTGluZXNXcml0aW5nTW9kZShXcml0aW5nTW9kZSB3cml0aW5nTW9kZSkKK2NvbnN0ZXhw
ciBpbmxpbmUgYm9vbCBpc0ZsaXBwZWRMaW5lc1dyaXRpbmdNb2RlKFdyaXRpbmdNb2RlIHdyaXRp
bmdNb2RlKQogewogICAgIHJldHVybiBpc1ZlcnRpY2FsV3JpdGluZ01vZGUod3JpdGluZ01vZGUp
ICE9IGlzRmxpcHBlZFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKTsKIH0KQEAgLTEzMSwyNSArMTI1
LDI1IEBAIGVudW0gY2xhc3MgQm94U2lkZSA6IHVpbnQ4X3QgewogCiBjb25zdGV4cHIgc3RkOjph
cnJheTxCb3hTaWRlLCA0PiBhbGxCb3hTaWRlcyA9IHsgQm94U2lkZTo6VG9wLCBCb3hTaWRlOjpS
aWdodCwgQm94U2lkZTo6Qm90dG9tLCBCb3hTaWRlOjpMZWZ0IH07CiAKLWlubGluZSBib29sIGlz
SG9yaXpvbnRhbFBoeXNpY2FsU2lkZShCb3hTaWRlIHBoeXNpY2FsU2lkZSkKK2NvbnN0ZXhwciBp
bmxpbmUgYm9vbCBpc0hvcml6b250YWxQaHlzaWNhbFNpZGUoQm94U2lkZSBwaHlzaWNhbFNpZGUp
CiB7CiAgICAgcmV0dXJuIHBoeXNpY2FsU2lkZSA9PSBCb3hTaWRlOjpMZWZ0IHx8IHBoeXNpY2Fs
U2lkZSA9PSBCb3hTaWRlOjpSaWdodDsKIH0KIAotaW5saW5lIEJveFNpZGUgbWlycm9yUGh5c2lj
YWxTaWRlKEJveFNpZGUgcGh5c2ljYWxTaWRlKQorY29uc3RleHByIGlubGluZSBCb3hTaWRlIG1p
cnJvclBoeXNpY2FsU2lkZShCb3hTaWRlIHBoeXNpY2FsU2lkZSkKIHsKICAgICAvLyB0b3AgPC0+
IGJvdHRvbSBhbmQgbGVmdCA8LT4gcmlnaHQgY29udmVyc2lvbgogICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxCb3hTaWRlPigoc3RhdGljX2Nhc3Q8aW50PihwaHlzaWNhbFNpZGUpICsgMikgJSA0KTsK
IH0KIAotaW5saW5lIEJveFNpZGUgcm90YXRlUGh5c2ljYWxTaWRlKEJveFNpZGUgcGh5c2ljYWxT
aWRlKQorY29uc3RleHByIGlubGluZSBCb3hTaWRlIHJvdGF0ZVBoeXNpY2FsU2lkZShCb3hTaWRl
IHBoeXNpY2FsU2lkZSkKIHsKICAgICAvLyB0b3AgPC0+IGxlZnQgYW5kIHJpZ2h0IDwtPiBib3R0
b20gY29udmVyc2lvbgogICAgIGJvb2wgaG9yaXpvbnRhbFNpZGUgPSBpc0hvcml6b250YWxQaHlz
aWNhbFNpZGUocGh5c2ljYWxTaWRlKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Qm94U2lkZT4o
KHN0YXRpY19jYXN0PGludD4ocGh5c2ljYWxTaWRlKSArIChob3Jpem9udGFsU2lkZSA/IDEgOiAz
KSkgJSA0KTsKIH0KIAotaW5saW5lIEJveFNpZGUgbWFwTG9naWNhbFNpZGVUb1BoeXNpY2FsU2lk
ZShUZXh0RmxvdyB0ZXh0ZmxvdywgTG9naWNhbEJveFNpZGUgbG9naWNhbFNpZGUpCitjb25zdGV4
cHIgaW5saW5lIEJveFNpZGUgbWFwTG9naWNhbFNpZGVUb1BoeXNpY2FsU2lkZShUZXh0RmxvdyB0
ZXh0ZmxvdywgTG9naWNhbEJveFNpZGUgbG9naWNhbFNpZGUpCiB7CiAgICAgQm94U2lkZSBwaHlz
aWNhbFNpZGUgPSBzdGF0aWNfY2FzdDxCb3hTaWRlPihsb2dpY2FsU2lkZSk7CiAgICAgYm9vbCBo
b3Jpem9udGFsU2lkZSA9IGlzSG9yaXpvbnRhbFBoeXNpY2FsU2lkZShwaHlzaWNhbFNpZGUpOwpA
QCAtMTYzLDcgKzE1Nyw3IEBAIGlubGluZSBCb3hTaWRlIG1hcExvZ2ljYWxTaWRlVG9QaHlzaWNh
bFMKICAgICByZXR1cm4gcGh5c2ljYWxTaWRlOwogfQogCi1pbmxpbmUgQm94U2lkZSBtYXBMb2dp
Y2FsU2lkZVRvUGh5c2ljYWxTaWRlKFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlLCBMb2dpY2FsQm94
U2lkZSBsb2dpY2FsU2lkZSkKK2NvbnN0ZXhwciBpbmxpbmUgQm94U2lkZSBtYXBMb2dpY2FsU2lk
ZVRvUGh5c2ljYWxTaWRlKFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlLCBMb2dpY2FsQm94U2lkZSBs
b2dpY2FsU2lkZSkKIHsKICAgICAvLyBTZXQgdGhlIGRpcmVjdGlvbiBzdWNoIHRoYXQgc2lkZSBp
cyBtaXJyb3JlZCBpZiBpc0ZsaXBwZWRXcml0aW5nTW9kZSgpIGlzIHRydWUKICAgICBUZXh0RGly
ZWN0aW9uIGRpcmVjdGlvbiA9IGlzRmxpcHBlZFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/IFRl
eHREaXJlY3Rpb246OlJUTCA6IFRleHREaXJlY3Rpb246OkxUUjsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzA2
Miw3ICs3MDYyLDggQEAgYm9vbCBSZW5kZXJMYXllcjo6aW52YWxpZGF0ZUV2ZW50UmVnaW9uKAog
ICAgICAgICBhdXRvJiB2aWV3ID0gcmVuZGVyZXIoKS52aWV3KCk7CiAgICAgICAgIExPR19XSVRI
X1NUUkVBTShFdmVudFJlZ2lvbnMsIHN0cmVhbSA8PCAiIGNhbGxpbmcgc2V0TmVlZHNFdmVudFJl
Z2lvblVwZGF0ZUZvck5vbkNvbXBvc2l0ZWRGcmFtZSBvbiAiIDw8IHZpZXcpOwogICAgICAgICB2
aWV3LnNldE5lZWRzRXZlbnRSZWdpb25VcGRhdGVGb3JOb25Db21wb3NpdGVkRnJhbWUoKTsKLSAg
ICAgICAgaWYgKHJlbmRlcmVyKCkuc2V0dGluZ3MoKS52aXNpYmxlRGVidWdPdmVybGF5UmVnaW9u
cygpICYgKFRvdWNoQWN0aW9uUmVnaW9uIHwgRWRpdGFibGVFbGVtZW50UmVnaW9uIHwgV2hlZWxF
dmVudEhhbmRsZXJSZWdpb24pKQorICAgICAgICBhdXRvIHZpc2libGVEZWJ1Z092ZXJsYXlSZWdp
b25zID0gT3B0aW9uU2V0PERlYnVnT3ZlcmxheVJlZ2lvbnM+Ojpmcm9tUmF3KHJlbmRlcmVyKCku
c2V0dGluZ3MoKS52aXNpYmxlRGVidWdPdmVybGF5UmVnaW9ucygpKTsKKyAgICAgICAgaWYgKHZp
c2libGVEZWJ1Z092ZXJsYXlSZWdpb25zLmNvbnRhaW5zQW55KHsgRGVidWdPdmVybGF5UmVnaW9u
czo6VG91Y2hBY3Rpb25SZWdpb24sIERlYnVnT3ZlcmxheVJlZ2lvbnM6OkVkaXRhYmxlRWxlbWVu
dFJlZ2lvbiwgRGVidWdPdmVybGF5UmVnaW9uczo6V2hlZWxFdmVudEhhbmRsZXJSZWdpb24gfSkp
CiAgICAgICAgICAgICB2aWV3LnNldE5lZWRzUmVwYWludEhhY2tBZnRlckNvbXBvc2l0aW5nTGF5
ZXJVcGRhdGVGb3JEZWJ1Z092ZXJsYXlzT25seSgpOwogICAgICAgICB2aWV3LmNvbXBvc2l0b3Io
KS5zY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJVcGRhdGUoKTsKICAgICB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAkocmV2aXNpb24g
MjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMzMTksOCArMzMxOSw4IEBAIHZvaWQgUmVuZGVyTGF5ZXJC
YWNraW5nOjpwYWludERlYnVnT3ZlcmwKICAgICBhdXRvIGNvbnRlbnRPZmZzZXQgPSByb3VuZGVk
SW50U2l6ZShncmFwaGljc0xheWVyLT5vZmZzZXRGcm9tUmVuZGVyZXIoKSk7CiAgICAgY29udGV4
dC50cmFuc2xhdGUoY29udGVudE9mZnNldCk7CiAKLSAgICBhdXRvIHZpc2libGVEZWJ1Z092ZXJs
YXlSZWdpb25zID0gcmVuZGVyZXIoKS5zZXR0aW5ncygpLnZpc2libGVEZWJ1Z092ZXJsYXlSZWdp
b25zKCk7Ci0gICAgaWYgKHZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zICYgKFRvdWNoQWN0aW9u
UmVnaW9uIHwgV2hlZWxFdmVudEhhbmRsZXJSZWdpb24pKSB7CisgICAgYXV0byB2aXNpYmxlRGVi
dWdPdmVybGF5UmVnaW9ucyA9IE9wdGlvblNldDxEZWJ1Z092ZXJsYXlSZWdpb25zPjo6ZnJvbVJh
dyhyZW5kZXJlcigpLnNldHRpbmdzKCkudmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMoKSk7Cisg
ICAgaWYgKHZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zLmNvbnRhaW5zQW55KHsgRGVidWdPdmVy
bGF5UmVnaW9uczo6VG91Y2hBY3Rpb25SZWdpb24sIERlYnVnT3ZlcmxheVJlZ2lvbnM6OldoZWVs
RXZlbnRIYW5kbGVyUmVnaW9uIH0pKSB7CiAgICAgICAgIGNvbnN0ZXhwciBhdXRvIHJlZ2lvbkNv
bG9yID0gQ29sb3I6OmJsdWUuY29sb3JXaXRoQWxwaGFCeXRlKDUwKTsKICAgICAgICAgY29udGV4
dC5zZXRGaWxsQ29sb3IocmVnaW9uQ29sb3IpOwogICAgICAgICBmb3IgKGF1dG8gcmVjdCA6IGV2
ZW50UmVnaW9uLnJlZ2lvbigpLnJlY3RzKCkpCkBAIC0zMzI4LDcgKzMzMjgsNyBAQCB2b2lkIFJl
bmRlckxheWVyQmFja2luZzo6cGFpbnREZWJ1Z092ZXJsCiAgICAgfQogCiAjaWYgRU5BQkxFKFRP
VUNIX0FDVElPTl9SRUdJT05TKQotICAgIGlmICh2aXNpYmxlRGVidWdPdmVybGF5UmVnaW9ucyAm
IFRvdWNoQWN0aW9uUmVnaW9uKSB7CisgICAgaWYgKHZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25z
LmNvbnRhaW5zKERlYnVnT3ZlcmxheVJlZ2lvbnM6OlRvdWNoQWN0aW9uUmVnaW9uKSkgewogICAg
ICAgICBjb25zdCBUb3VjaEFjdGlvbiB0b3VjaEFjdGlvbkxpc3RbXSA9IHsKICAgICAgICAgICAg
IFRvdWNoQWN0aW9uOjpOb25lLAogICAgICAgICAgICAgVG91Y2hBY3Rpb246Ok1hbmlwdWxhdGlv
biwKQEAgLTMzNTQsNyArMzM1NCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpwYWludERl
YnVnT3ZlcmwKICNlbmRpZgogCiAjaWYgRU5BQkxFKFdIRUVMX0VWRU5UX1JFR0lPTlMpCi0gICAg
aWYgKHZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zICYgV2hlZWxFdmVudEhhbmRsZXJSZWdpb24p
IHsKKyAgICBpZiAodmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMuY29udGFpbnMoRGVidWdPdmVy
bGF5UmVnaW9uczo6V2hlZWxFdmVudEhhbmRsZXJSZWdpb24pKSB7CiAgICAgICAgIGZvciAoYXV0
byB0eXBlIDogeyBFdmVudExpc3RlbmVyUmVnaW9uVHlwZTo6V2hlZWwsIEV2ZW50TGlzdGVuZXJS
ZWdpb25UeXBlOjpOb25QYXNzaXZlV2hlZWwgfSkgewogICAgICAgICAgICAgYXV0byBmaWxsUGF0
dGVybiA9IHBhdHRlcm5Gb3JFdmVudExpc3RlbmVyUmVnaW9uVHlwZSh0eXBlLCBncmFwaGljc0xh
eWVyLT5vZmZzZXRGcm9tUmVuZGVyZXIoKSwgY29udGV4dCk7CiAgICAgICAgICAgICBjb250ZXh0
LnNldEZpbGxQYXR0ZXJuKGZpbGxQYXR0ZXJuLnJlbGVhc2VOb25OdWxsKCkpOwpAQCAtMzM2Nyw3
ICszMzY3LDcgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50RGVidWdPdmVybAogI2Vu
ZGlmCiAKICNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQotICAgIGlmICh2aXNpYmxlRGVidWdP
dmVybGF5UmVnaW9ucyAmIEVkaXRhYmxlRWxlbWVudFJlZ2lvbikgeworICAgIGlmICh2aXNpYmxl
RGVidWdPdmVybGF5UmVnaW9ucy5jb250YWlucyhEZWJ1Z092ZXJsYXlSZWdpb25zOjpFZGl0YWJs
ZUVsZW1lbnRSZWdpb24pKSB7CiAgICAgICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKFNSR0JBPHVp
bnQ4X3Q+IHsgMTI4LCAwLCAxMjgsIDUwIH0pOwogICAgICAgICBmb3IgKGF1dG8gcmVjdCA6IGV2
ZW50UmVnaW9uLnJlY3RzRm9yRWRpdGFibGVFbGVtZW50cygpKQogICAgICAgICAgICAgY29udGV4
dC5maWxsUmVjdChyZWN0KTsKQEAgLTM0MTQsNyArMzQxNCw4IEBAIHZvaWQgUmVuZGVyTGF5ZXJC
YWNraW5nOjpwYWludENvbnRlbnRzKGMKIAogICAgICAgICBwYWludEludG9MYXllcihncmFwaGlj
c0xheWVyLCBjb250ZXh0LCBkaXJ0eVJlY3QsIGJlaGF2aW9yKTsKIAotICAgICAgICBpZiAocmVu
ZGVyZXIoKS5zZXR0aW5ncygpLnZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zKCkgJiAoVG91Y2hB
Y3Rpb25SZWdpb24gfCBFZGl0YWJsZUVsZW1lbnRSZWdpb24gfCBXaGVlbEV2ZW50SGFuZGxlclJl
Z2lvbikpCisgICAgICAgIGF1dG8gdmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMgPSBPcHRpb25T
ZXQ8RGVidWdPdmVybGF5UmVnaW9ucz46OmZyb21SYXcocmVuZGVyZXIoKS5zZXR0aW5ncygpLnZp
c2libGVEZWJ1Z092ZXJsYXlSZWdpb25zKCkpOworICAgICAgICBpZiAodmlzaWJsZURlYnVnT3Zl
cmxheVJlZ2lvbnMuY29udGFpbnNBbnkoeyBEZWJ1Z092ZXJsYXlSZWdpb25zOjpUb3VjaEFjdGlv
blJlZ2lvbiwgRGVidWdPdmVybGF5UmVnaW9uczo6RWRpdGFibGVFbGVtZW50UmVnaW9uLCBEZWJ1
Z092ZXJsYXlSZWdpb25zOjpXaGVlbEV2ZW50SGFuZGxlclJlZ2lvbiB9KSkKICAgICAgICAgICAg
IHBhaW50RGVidWdPdmVybGF5cyhncmFwaGljc0xheWVyLCBjb250ZXh0KTsKIAogICAgIH0gZWxz
ZSBpZiAoZ3JhcGhpY3NMYXllciA9PSBsYXllckZvckhvcml6b250YWxTY3JvbGxiYXIoKSkgewpJ
bmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCShyZXZp
c2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3Mu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw2IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1N
ZWRpYVNlc3Npb25NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRl
ICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCi0jaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNs
dWRlICJTdXBwbGVtZW50YWJsZS5oIgogI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogCkBAIC01
MCw5ICs0OSw5IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEludGVybmFsU2V0dGluZ3M6OkJh
Y2t1cDo6QmFja3VwKFNldHRpbmdzJiBzZXR0aW5ncykKLSAgICA6IG1fb3JpZ2luYWxFZGl0aW5n
QmVoYXZpb3Ioc2V0dGluZ3MuZWRpdGluZ0JlaGF2aW9yVHlwZSgpKQotICAgICwgbV9taW5pbXVt
RE9NVGltZXJJbnRlcnZhbChzZXR0aW5ncy5taW5pbXVtRE9NVGltZXJJbnRlcnZhbCgpKQorICAg
IDogbV9taW5pbXVtRE9NVGltZXJJbnRlcnZhbChzZXR0aW5ncy5taW5pbXVtRE9NVGltZXJJbnRl
cnZhbCgpKQogICAgICwgbV9vcmlnaW5hbFRpbWVXaXRob3V0TW91c2VNb3ZlbWVudEJlZm9yZUhp
ZGluZ0NvbnRyb2xzKHNldHRpbmdzLnRpbWVXaXRob3V0TW91c2VNb3ZlbWVudEJlZm9yZUhpZGlu
Z0NvbnRyb2xzKCkpCisgICAgLCBtX29yaWdpbmFsRWRpdGluZ0JlaGF2aW9yKHNldHRpbmdzLmVk
aXRpbmdCZWhhdmlvclR5cGUoKSkKICAgICAsIG1fc3RvcmFnZUJsb2NraW5nUG9saWN5KHNldHRp
bmdzLnN0b3JhZ2VCbG9ja2luZ1BvbGljeSgpKQogICAgICwgbV91c2VySW50ZXJmYWNlRGlyZWN0
aW9uUG9saWN5KHNldHRpbmdzLnVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3koKSkKICAgICAs
IG1fc3lzdGVtTGF5b3V0RGlyZWN0aW9uKHNldHRpbmdzLnN5c3RlbUxheW91dERpcmVjdGlvbigp
KQpAQCAtMTA4LDkgKzEwNyw5IEBAIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpyZXN0
b3JlVG8KICAgICAgICAgc2V0dGluZ3Muc2V0UGljdG9ncmFwaEZvbnRGYW1pbHkocGljdG9ncmFw
aEZvbnQudmFsdWUsIHN0YXRpY19jYXN0PFVTY3JpcHRDb2RlPihwaWN0b2dyYXBoRm9udC5rZXkp
KTsKICAgICBtX3BpY3RvZ3JhcGhGb250RmFtaWxpZXMuY2xlYXIoKTsKIAotICAgIHNldHRpbmdz
LnNldEVkaXRpbmdCZWhhdmlvclR5cGUobV9vcmlnaW5hbEVkaXRpbmdCZWhhdmlvcik7CiAgICAg
c2V0dGluZ3Muc2V0TWluaW11bURPTVRpbWVySW50ZXJ2YWwobV9taW5pbXVtRE9NVGltZXJJbnRl
cnZhbCk7CiAgICAgc2V0dGluZ3Muc2V0VGltZVdpdGhvdXRNb3VzZU1vdmVtZW50QmVmb3JlSGlk
aW5nQ29udHJvbHMobV9vcmlnaW5hbFRpbWVXaXRob3V0TW91c2VNb3ZlbWVudEJlZm9yZUhpZGlu
Z0NvbnRyb2xzKTsKKyAgICBzZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3JUeXBlKG1fb3JpZ2lu
YWxFZGl0aW5nQmVoYXZpb3IpOwogICAgIHNldHRpbmdzLnNldFN0b3JhZ2VCbG9ja2luZ1BvbGlj
eShtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeSk7CiAgICAgc2V0dGluZ3Muc2V0VXNlckludGVyZmFj
ZURpcmVjdGlvblBvbGljeShtX3VzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3kpOwogICAgIHNl
dHRpbmdzLnNldFN5c3RlbUxheW91dERpcmVjdGlvbihtX3N5c3RlbUxheW91dERpcmVjdGlvbik7
CkBAIC0zMDQsMjQgKzMwMywxMSBAQCBFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNldHRpbmdz
OjpzZXRUCiAgICAgcmV0dXJuIHsgfTsKIH0KIAotRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxT
ZXR0aW5nczo6c2V0RWRpdGluZ0JlaGF2aW9yKEVkaXRpbmdCZWhhdmlvciBlZGl0aW5nQmVoYXZp
b3IpCitFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNldHRpbmdzOjpzZXRFZGl0aW5nQmVoYXZp
b3IoRWRpdGluZ0JlaGF2aW9yVHlwZSBlZGl0aW5nQmVoYXZpb3JUeXBlKQogewogICAgIGlmICgh
bV9wYWdlKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yIH07
Ci0gICAgc3dpdGNoIChlZGl0aW5nQmVoYXZpb3IpIHsKLSAgICBjYXNlIEVkaXRpbmdCZWhhdmlv
cjo6V2luOgotICAgICAgICBzZXR0aW5ncygpLnNldEVkaXRpbmdCZWhhdmlvclR5cGUoRWRpdGlu
Z1dpbmRvd3NCZWhhdmlvcik7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRWRpdGluZ0JlaGF2
aW9yOjpNYWM6Ci0gICAgICAgIHNldHRpbmdzKCkuc2V0RWRpdGluZ0JlaGF2aW9yVHlwZShFZGl0
aW5nTWFjQmVoYXZpb3IpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEVkaXRpbmdCZWhhdmlv
cjo6VW5peDoKLSAgICAgICAgc2V0dGluZ3MoKS5zZXRFZGl0aW5nQmVoYXZpb3JUeXBlKEVkaXRp
bmdVbml4QmVoYXZpb3IpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEVkaXRpbmdCZWhhdmlv
cjo6SW9zOgotICAgICAgICBzZXR0aW5ncygpLnNldEVkaXRpbmdCZWhhdmlvclR5cGUoRWRpdGlu
Z0lPU0JlaGF2aW9yKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQorICAgIHNldHRpbmdzKCkuc2V0
RWRpdGluZ0JlaGF2aW9yVHlwZShlZGl0aW5nQmVoYXZpb3JUeXBlKTsKICAgICByZXR1cm4geyB9
OwogfQogCkBAIC0zMjksMTcgKzMxNSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFsU2V0
dGluZ3M6OnNldFMKIHsKICAgICBpZiAoIW1fcGFnZSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IEludmFsaWRBY2Nlc3NFcnJvciB9OwotICAgIHN3aXRjaCAocG9saWN5KSB7Ci0gICAgY2Fz
ZSBTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkFsbG93QWxsOgotICAgICAgICBzZXR0aW5ncygpLnNl
dFN0b3JhZ2VCbG9ja2luZ1BvbGljeShTZWN1cml0eU9yaWdpbjo6QWxsb3dBbGxTdG9yYWdlKTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkJsb2NrVGhp
cmRQYXJ0eToKLSAgICAgICAgc2V0dGluZ3MoKS5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koU2Vj
dXJpdHlPcmlnaW46OkJsb2NrVGhpcmRQYXJ0eVN0b3JhZ2UpOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIFN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QmxvY2tBbGw6Ci0gICAgICAgIHNldHRpbmdz
KCkuc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KFNlY3VyaXR5T3JpZ2luOjpCbG9ja0FsbFN0b3Jh
Z2UpOwotICAgICAgICBicmVhazsKLSAgICB9CisgICAgc2V0dGluZ3MoKS5zZXRTdG9yYWdlQmxv
Y2tpbmdQb2xpY3kocG9saWN5KTsKICAgICByZXR1cm4geyB9OwogfQogCkBAIC0zNDcsMjAgKzMy
Myw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFsU2V0dGluZ3M6OnNldFAKIHsKICAgICBp
ZiAoIW1fcGFnZSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJv
ciB9OwotICAgIHN3aXRjaCAocG9saWN5KSB7Ci0gICAgY2FzZSBQREZJbWFnZUNhY2hpbmdQb2xp
Y3k6OkVuYWJsZWQ6Ci0gICAgICAgIHNldHRpbmdzKCkuc2V0UGRmSW1hZ2VDYWNoaW5nUG9saWN5
KFBERkltYWdlQ2FjaGluZ0Rpc2FibGVkKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQREZJ
bWFnZUNhY2hpbmdQb2xpY3k6OkJlbG93TWVtb3J5TGltaXQ6Ci0gICAgICAgIHNldHRpbmdzKCku
c2V0UGRmSW1hZ2VDYWNoaW5nUG9saWN5KFBERkltYWdlQ2FjaGluZ0JlbG93TWVtb3J5TGltaXQp
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBERkltYWdlQ2FjaGluZ1BvbGljeTo6RGlzYWJs
ZWQ6Ci0gICAgICAgIHNldHRpbmdzKCkuc2V0UGRmSW1hZ2VDYWNoaW5nUG9saWN5KFBERkltYWdl
Q2FjaGluZ0Rpc2FibGVkKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQREZJbWFnZUNhY2hp
bmdQb2xpY3k6OkNsaXBCb3VuZHNPbmx5OgotICAgICAgICBzZXR0aW5ncygpLnNldFBkZkltYWdl
Q2FjaGluZ1BvbGljeShQREZJbWFnZUNhY2hpbmdDbGlwQm91bmRzT25seSk7Ci0gICAgICAgIGJy
ZWFrOwotICAgIH0KKyAgICBzZXR0aW5ncygpLnNldFBkZkltYWdlQ2FjaGluZ1BvbGljeShwb2xp
Y3kpOwogICAgIHJldHVybiB7IH07CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxTZXR0aW5ncy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxTZXR0aW5ncy5oCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsMjIgKzI2LDE0
IEBACiAKICNwcmFnbWEgb25jZQogCi0vLyBGSVhNRSAoMTIxOTI3KTogVGhpcyBpbmNsdWRlIHNo
b3VsZCBub3QgYmUgbmVlZGVkLgotI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmdIYXNoLmg+
Ci0KLSNpbmNsdWRlICJFZGl0aW5nQmVoYXZpb3JUeXBlcy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlv
bk9yLmgiCiAjaW5jbHVkZSAiRm9udEdlbmVyaWNGYW1pbGllcy5oIgotI2luY2x1ZGUgIkludFNp
emUuaCIKICNpbmNsdWRlICJJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmgiCi0jaW5jbHVkZSAi
U2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgotI2luY2x1ZGUgIldyaXRp
bmdNb2RlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUGFnZTsKLWNsYXNzIFNl
dHRpbmdzOwogCiBjbGFzcyBJbnRlcm5hbFNldHRpbmdzIDogcHVibGljIEludGVybmFsU2V0dGlu
Z3NHZW5lcmF0ZWQgewogcHVibGljOgpAQCAtNjQsMTMgKzU2LDEzIEBAIHB1YmxpYzoKICAgICBF
eGNlcHRpb25Pcjx2b2lkPiBzZXRNaW5pbXVtVGltZXJJbnRlcnZhbChkb3VibGUgaW50ZXJ2YWxJ
blNlY29uZHMpOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFRpbWVXaXRob3V0TW91c2VNb3Zl
bWVudEJlZm9yZUhpZGluZ0NvbnRyb2xzKGRvdWJsZSBpbnRlcnZhbEluU2Vjb25kcyk7CiAKLSAg
ICBlbnVtIGNsYXNzIEVkaXRpbmdCZWhhdmlvciA6IHVpbnQ4X3QgeyBNYWMsIFdpbiwgVW5peCwg
SW9zIH07Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0RWRpdGluZ0JlaGF2aW9yKEVkaXRpbmdC
ZWhhdmlvcik7CisgICAgdXNpbmcgRWRpdGluZ0JlaGF2aW9yVHlwZSA9IFdlYkNvcmU6OkVkaXRp
bmdCZWhhdmlvclR5cGU7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0RWRpdGluZ0JlaGF2aW9y
KEVkaXRpbmdCZWhhdmlvclR5cGUpOwogICAgIAotICAgIGVudW0gY2xhc3MgUERGSW1hZ2VDYWNo
aW5nUG9saWN5IDogdWludDhfdCB7IEVuYWJsZWQsIEJlbG93TWVtb3J5TGltaXQsIERpc2FibGVk
LCBDbGlwQm91bmRzT25seSB9OworICAgIHVzaW5nIFBERkltYWdlQ2FjaGluZ1BvbGljeSA9IFdl
YkNvcmU6OlBERkltYWdlQ2FjaGluZ1BvbGljeTsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRQ
REZJbWFnZUNhY2hpbmdQb2xpY3koUERGSW1hZ2VDYWNoaW5nUG9saWN5KTsKIAotICAgIGVudW0g
Y2xhc3MgU3RvcmFnZUJsb2NraW5nUG9saWN5IDogdWludDhfdCB7IEFsbG93QWxsLCBCbG9ja1Ro
aXJkUGFydHksIEJsb2NrQWxsIH07CisgICAgdXNpbmcgU3RvcmFnZUJsb2NraW5nUG9saWN5ID0g
V2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5OwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNl
dFN0b3JhZ2VCbG9ja2luZ1BvbGljeShTdG9yYWdlQmxvY2tpbmdQb2xpY3kpOwogICAgIAogICAg
IHVzaW5nIFVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3kgPSBXZWJDb3JlOjpVc2VySW50ZXJm
YWNlRGlyZWN0aW9uUG9saWN5OwpAQCAtNzksMTMgKzcxLDEzIEBAIHB1YmxpYzoKICAgICB1c2lu
ZyBTeXN0ZW1MYXlvdXREaXJlY3Rpb24gPSBUZXh0RGlyZWN0aW9uOwogICAgIEV4Y2VwdGlvbk9y
PHZvaWQ+IHNldFN5c3RlbUxheW91dERpcmVjdGlvbihTeXN0ZW1MYXlvdXREaXJlY3Rpb24pOwog
Ci0gICAgdXNpbmcgRm9udExvYWRUaW1pbmdPdmVycmlkZSA9IFNldHRpbmdzOjpGb250TG9hZFRp
bWluZ092ZXJyaWRlOworICAgIHVzaW5nIEZvbnRMb2FkVGltaW5nT3ZlcnJpZGUgPSBXZWJDb3Jl
OjpGb250TG9hZFRpbWluZ092ZXJyaWRlOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEZvbnRM
b2FkVGltaW5nT3ZlcnJpZGUoRm9udExvYWRUaW1pbmdPdmVycmlkZSk7CiAKICAgICB1c2luZyBG
cmFtZUZsYXR0ZW5pbmdWYWx1ZSA9IEZyYW1lRmxhdHRlbmluZzsKICAgICBFeGNlcHRpb25Pcjx2
b2lkPiBzZXRGcmFtZUZsYXR0ZW5pbmcoRnJhbWVGbGF0dGVuaW5nVmFsdWUpOwogCi0gICAgdXNp
bmcgRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlID0gU2V0dGluZ3M6OkZvcmNlZEFjY2Vzc2liaWxp
dHlWYWx1ZTsKKyAgICB1c2luZyBGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUgPSBXZWJDb3JlOjpG
b3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWU7CiAgICAgRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlIGZv
cmNlZENvbG9yc0FyZUludmVydGVkQWNjZXNzaWJpbGl0eVZhbHVlKCkgY29uc3Q7CiAgICAgdm9p
ZCBzZXRGb3JjZWRDb2xvcnNBcmVJbnZlcnRlZEFjY2Vzc2liaWxpdHlWYWx1ZShGb3JjZWRBY2Nl
c3NpYmlsaXR5VmFsdWUpOwogICAgIEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZSBmb3JjZWREaXNw
bGF5SXNNb25vY2hyb21lQWNjZXNzaWJpbGl0eVZhbHVlKCkgY29uc3Q7CkBAIC0xNDgsMTggKzE0
MCwxOCBAQCBwcml2YXRlOgogICAgICAgICBTY3JpcHRGb250RmFtaWx5TWFwIG1fY3Vyc2l2ZUZv
bnRGYW1pbGllczsKICAgICAgICAgU2NyaXB0Rm9udEZhbWlseU1hcCBtX2ZhbnRhc3lGb250RmFt
aWxpZXM7CiAgICAgICAgIFNjcmlwdEZvbnRGYW1pbHlNYXAgbV9waWN0b2dyYXBoRm9udEZhbWls
aWVzOwotICAgICAgICBFZGl0aW5nQmVoYXZpb3JUeXBlIG1fb3JpZ2luYWxFZGl0aW5nQmVoYXZp
b3I7CiAgICAgICAgIFNlY29uZHMgbV9taW5pbXVtRE9NVGltZXJJbnRlcnZhbDsKICAgICAgICAg
U2Vjb25kcyBtX29yaWdpbmFsVGltZVdpdGhvdXRNb3VzZU1vdmVtZW50QmVmb3JlSGlkaW5nQ29u
dHJvbHM7Ci0gICAgICAgIFNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgbV9z
dG9yYWdlQmxvY2tpbmdQb2xpY3k7Ci0gICAgICAgIFVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xp
Y3kgbV91c2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5OworICAgICAgICBXZWJDb3JlOjpFZGl0
aW5nQmVoYXZpb3JUeXBlIG1fb3JpZ2luYWxFZGl0aW5nQmVoYXZpb3I7CisgICAgICAgIFdlYkNv
cmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeTsKKyAgICAg
ICAgV2ViQ29yZTo6VXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeSBtX3VzZXJJbnRlcmZhY2VE
aXJlY3Rpb25Qb2xpY3k7CiAgICAgICAgIFRleHREaXJlY3Rpb24gbV9zeXN0ZW1MYXlvdXREaXJl
Y3Rpb247CiAgICAgICAgIFdlYkNvcmU6OlBERkltYWdlQ2FjaGluZ1BvbGljeSBtX3BkZkltYWdl
Q2FjaGluZ1BvbGljeTsKLSAgICAgICAgU2V0dGluZ3M6OkZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1
ZSBtX2ZvcmNlZENvbG9yc0FyZUludmVydGVkQWNjZXNzaWJpbGl0eVZhbHVlOwotICAgICAgICBT
ZXR0aW5nczo6Rm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlIG1fZm9yY2VkRGlzcGxheUlzTW9ub2No
cm9tZUFjY2Vzc2liaWxpdHlWYWx1ZTsKLSAgICAgICAgU2V0dGluZ3M6OkZvcmNlZEFjY2Vzc2li
aWxpdHlWYWx1ZSBtX2ZvcmNlZFByZWZlcnNSZWR1Y2VkTW90aW9uQWNjZXNzaWJpbGl0eVZhbHVl
OwotICAgICAgICBTZXR0aW5nczo6Rm9udExvYWRUaW1pbmdPdmVycmlkZSBtX2ZvbnRMb2FkVGlt
aW5nT3ZlcnJpZGU7Ci0gICAgICAgIEZyYW1lRmxhdHRlbmluZyBtX2ZyYW1lRmxhdHRlbmluZzsK
KyAgICAgICAgV2ViQ29yZTo6Rm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlIG1fZm9yY2VkQ29sb3Jz
QXJlSW52ZXJ0ZWRBY2Nlc3NpYmlsaXR5VmFsdWU7CisgICAgICAgIFdlYkNvcmU6OkZvcmNlZEFj
Y2Vzc2liaWxpdHlWYWx1ZSBtX2ZvcmNlZERpc3BsYXlJc01vbm9jaHJvbWVBY2Nlc3NpYmlsaXR5
VmFsdWU7CisgICAgICAgIFdlYkNvcmU6OkZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZSBtX2ZvcmNl
ZFByZWZlcnNSZWR1Y2VkTW90aW9uQWNjZXNzaWJpbGl0eVZhbHVlOworICAgICAgICBXZWJDb3Jl
OjpGb250TG9hZFRpbWluZ092ZXJyaWRlIG1fZm9udExvYWRUaW1pbmdPdmVycmlkZTsKKyAgICAg
ICAgV2ViQ29yZTo6RnJhbWVGbGF0dGVuaW5nIG1fZnJhbWVGbGF0dGVuaW5nOwogCiAgICAgICAg
IC8vIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMKICAgICAgICAgYm9vbCBtX3dlYkdMMkVuYWJsZWQ7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwJKHJl
dmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI0LDExICsyNCwxMSBAQAogICogVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAq
LwogCi1lbnVtIEVkaXRpbmdCZWhhdmlvciB7ICJtYWMiLCAid2luIiwgInVuaXgiLCAiaW9zIiB9
OworZW51bSBFZGl0aW5nQmVoYXZpb3JUeXBlIHsgIm1hYyIsICJ3aW5kb3dzIiwgInVuaXgiLCAi
aW9zIiB9OwogZW51bSBGb250TG9hZFRpbWluZ092ZXJyaWRlIHsgIk5vbmUiLCAiQmxvY2siLCAi
U3dhcCIsICJGYWlsdXJlIiB9OwogZW51bSBGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUgeyAic3lz
dGVtIiwgIm9uIiwgIm9mZiIgfTsKIGVudW0gRnJhbWVGbGF0dGVuaW5nVmFsdWUgeyAiRGlzYWJs
ZWQiLCAiRW5hYmxlZEZvck5vbkZ1bGxTY3JlZW5JRnJhbWVzIiwgIkZ1bGx5RW5hYmxlZCIgfTsK
LWVudW0gUERGSW1hZ2VDYWNoaW5nUG9saWN5IHsgImVuYWJsZWQiLCAiYmVsb3dNZW1vcnlMaW1p
dCIsICJkaXNhYmxlZCIsICJjbGlwQm91bmRzT25seSIgfTsKK2VudW0gUERGSW1hZ2VDYWNoaW5n
UG9saWN5IHsgIkVuYWJsZWQiLCAiQmVsb3dNZW1vcnlMaW1pdCIsICJEaXNhYmxlZCIsICJDbGlw
Qm91bmRzT25seSIgfTsKIGVudW0gU3RvcmFnZUJsb2NraW5nUG9saWN5IHsgIkFsbG93QWxsIiwg
IkJsb2NrVGhpcmRQYXJ0eSIsICJCbG9ja0FsbCIgfTsKIGVudW0gU3lzdGVtTGF5b3V0RGlyZWN0
aW9uIHsgIkxUUiIsICJSVEwiIH07CiBlbnVtIFRyYWNrS2luZCB7ICJTdWJ0aXRsZXMiLCAiQ2Fw
dGlvbnMiLCAiVGV4dERlc2NyaXB0aW9ucyIgfTsKQEAgLTUyLDcgKzUyLDcgQEAgZW51bSBVc2Vy
SW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5IHsgIkNvbgogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0g
dW5kZWZpbmVkIHNldFRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKGxvbmcgd2lkdGgs
IGxvbmcgaGVpZ2h0KTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHVuZGVmaW5lZCBzZXRUaW1l
V2l0aG91dE1vdXNlTW92ZW1lbnRCZWZvcmVIaWRpbmdDb250cm9scyh1bnJlc3RyaWN0ZWQgZG91
YmxlIGludGVydmFsSW5TZWNvbmRzKTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHVuZGVmaW5l
ZCBzZXRNaW5pbXVtVGltZXJJbnRlcnZhbCh1bnJlc3RyaWN0ZWQgZG91YmxlIGludGVydmFsSW5T
ZWNvbmRzKTsKLSAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHVuZGVmaW5lZCBzZXRFZGl0aW5nQmVo
YXZpb3IoRWRpdGluZ0JlaGF2aW9yIGJlaGF2aW9yKTsKKyAgICBbTWF5VGhyb3dFeGNlcHRpb25d
IHVuZGVmaW5lZCBzZXRFZGl0aW5nQmVoYXZpb3IoRWRpdGluZ0JlaGF2aW9yVHlwZSBiZWhhdmlv
cik7CiAgICAgW01heVRocm93RXhjZXB0aW9uXSB1bmRlZmluZWQgc2V0U3RvcmFnZUJsb2NraW5n
UG9saWN5KFN0b3JhZ2VCbG9ja2luZ1BvbGljeSBwb2xpY3kpOwogICAgIFtNYXlUaHJvd0V4Y2Vw
dGlvbl0gdW5kZWZpbmVkIHNldFBERkltYWdlQ2FjaGluZ1BvbGljeShQREZJbWFnZUNhY2hpbmdQ
b2xpY3kgcG9saWN5KTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHVuZGVmaW5lZCBzZXRGcmFt
ZUZsYXR0ZW5pbmcoRnJhbWVGbGF0dGVuaW5nVmFsdWUgZnJhbWVGbGF0dGVuaW5nKTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJl
YWRQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcAkocmV2aXNpb24gMjY5ODMwKQor
KysgU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRo
cmVhZFByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTIsNyArNTIsNyBAQCBzdGF0aWMgVVJM
IHRvcE9yaWdpblVSTChjb25zdCBTZWN1cml0eU9yCiAgICAgcmV0dXJuIFVSTCB7IFVSTCB7IH0s
IG9yaWdpbi50b1Jhd1N0cmluZygpIH07CiB9CiAKLXN0YXRpYyBpbmxpbmUgVW5pcXVlUmVmPFBh
Z2U+IGNyZWF0ZVBhZ2VGb3JTZXJ2aWNlV29ya2VyKFBhZ2VDb25maWd1cmF0aW9uJiYgY29uZmln
dXJhdGlvbiwgY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiBkYXRhLCBTZWN1cml0eU9y
aWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5IHN0b3JhZ2VCbG9ja2luZ1BvbGljeSkKK3N0YXRp
YyBpbmxpbmUgVW5pcXVlUmVmPFBhZ2U+IGNyZWF0ZVBhZ2VGb3JTZXJ2aWNlV29ya2VyKFBhZ2VD
b25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbiwgY29uc3QgU2VydmljZVdvcmtlckNvbnRleHRE
YXRhJiBkYXRhLCBTdG9yYWdlQmxvY2tpbmdQb2xpY3kgc3RvcmFnZUJsb2NraW5nUG9saWN5KQog
ewogICAgIGF1dG8gcGFnZSA9IG1ha2VVbmlxdWVSZWY8UGFnZT4oV1RGTW92ZShjb25maWd1cmF0
aW9uKSk7CiAKQEAgLTk0LDcgKzk0LDcgQEAgc3RhdGljIEhhc2hTZXQ8U2VydmljZVdvcmtlclRo
cmVhZFByb3h5KgogICAgIHJldHVybiBzZXQ7CiB9CiAKLVNlcnZpY2VXb3JrZXJUaHJlYWRQcm94
eTo6U2VydmljZVdvcmtlclRocmVhZFByb3h5KFBhZ2VDb25maWd1cmF0aW9uJiYgcGFnZUNvbmZp
Z3VyYXRpb24sIGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYgZGF0YSwgU3RyaW5nJiYg
dXNlckFnZW50LCBDYWNoZVN0b3JhZ2VQcm92aWRlciYgY2FjaGVTdG9yYWdlUHJvdmlkZXIsIFNl
Y3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgc3RvcmFnZUJsb2NraW5nUG9saWN5
KQorU2VydmljZVdvcmtlclRocmVhZFByb3h5OjpTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkoUGFn
ZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29uZmlndXJhdGlvbiwgY29uc3QgU2VydmljZVdvcmtlckNv
bnRleHREYXRhJiBkYXRhLCBTdHJpbmcmJiB1c2VyQWdlbnQsIENhY2hlU3RvcmFnZVByb3ZpZGVy
JiBjYWNoZVN0b3JhZ2VQcm92aWRlciwgU3RvcmFnZUJsb2NraW5nUG9saWN5IHN0b3JhZ2VCbG9j
a2luZ1BvbGljeSkKICAgICA6IG1fcGFnZShjcmVhdGVQYWdlRm9yU2VydmljZVdvcmtlcihXVEZN
b3ZlKHBhZ2VDb25maWd1cmF0aW9uKSwgZGF0YSwgc3RvcmFnZUJsb2NraW5nUG9saWN5KSkKICAg
ICAsIG1fZG9jdW1lbnQoKm1fcGFnZS0+bWFpbkZyYW1lKCkuZG9jdW1lbnQoKSkKICAgICAsIG1f
c2VydmljZVdvcmtlclRocmVhZChTZXJ2aWNlV29ya2VyVGhyZWFkOjpjcmVhdGUoZGF0YSwgV1RG
TW92ZSh1c2VyQWdlbnQpLCAqdGhpcywgKnRoaXMsIGlkYkNvbm5lY3Rpb25Qcm94eShtX2RvY3Vt
ZW50KSwgbV9kb2N1bWVudC0+c29ja2V0UHJvdmlkZXIoKSkpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNl
V29ya2VyVGhyZWFkUHJveHkuaAkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmgJKHdvcmtp
bmcgY29weSkKQEAgLTMxLDExICszMSwxMSBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5j
bHVkZSAiRmV0Y2hJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgotI2luY2x1ZGUgIlNl
Y3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckRlYnVnZ2FibGUuaCIKICNp
bmNsdWRlICJTZXJ2aWNlV29ya2VySWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3Jr
ZXJJbnNwZWN0b3JQcm94eS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJUaHJlYWQuaCIKKyNp
bmNsdWRlICJTdG9yYWdlQmxvY2tpbmdQb2xpY3kuaCIKICNpbmNsdWRlICJXb3JrZXJEZWJ1Z2dl
clByb3h5LmgiCiAjaW5jbHVkZSAiV29ya2VyTG9hZGVyUHJveHkuaCIKICNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgpAQCAtODAsNyArODAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBmaXJlQWN0aXZh
dGVFdmVudCgpOwogCiBwcml2YXRlOgotICAgIFdFQkNPUkVfRVhQT1JUIFNlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eShQYWdlQ29uZmlndXJhdGlvbiYmLCBjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4
dERhdGEmLCBTdHJpbmcmJiB1c2VyQWdlbnQsIENhY2hlU3RvcmFnZVByb3ZpZGVyJiwgU2VjdXJp
dHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSk7CisgICAgV0VCQ09SRV9FWFBPUlQgU2Vy
dmljZVdvcmtlclRocmVhZFByb3h5KFBhZ2VDb25maWd1cmF0aW9uJiYsIGNvbnN0IFNlcnZpY2VX
b3JrZXJDb250ZXh0RGF0YSYsIFN0cmluZyYmIHVzZXJBZ2VudCwgQ2FjaGVTdG9yYWdlUHJvdmlk
ZXImLCBTdG9yYWdlQmxvY2tpbmdQb2xpY3kpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IHZvaWQgbmV0d29ya1N0YXRlQ2hhbmdlZChib29sIGlzT25MaW5lKTsKIApJbmRleDogU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjAtMTEtMTUgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBw
bGUuY29tPgorCisgICAgICAgIFN0YW5kYXJkaXplIGVudW1zIHRoYXQgYXJlIHVzZWQgYnkgU2V0
dGluZ3MgaW4gcHJlcGVyYXRpb24gZm9yIGF1dG9nZW5lcmF0aW9uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg5NjAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbV0lQXQorCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL1dLQVBJQ2FzdC5oOgorICAgICAgICAoV2ViS2l0Ojp0b0FQSSk6CisgICAgICAg
IChXZWJLaXQ6OnRvRWRpdGFibGVMaW5rQmVoYXZpb3IpOgorICAgICAgICAoV2ViS2l0Ojp0b1N0
b3JhZ2VCbG9ja2luZ1BvbGljeSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVy
ZW5jZXMuY3BwOgorICAgICAgICAoV0tQcmVmZXJlbmNlc1NldEVkaXRhYmxlTGlua0JlaGF2aW9y
KToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNTZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3kpOgorICAg
ICAgICAoV0tQcmVmZXJlbmNlc0dldFN0b3JhZ2VCbG9ja2luZ1BvbGljeSk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tOgorICAgICAgICAodG9TdG9yYWdl
QmxvY2tpbmdQb2xpY3kpOgorICAgICAgICAodG9BUEkpOgorICAgICAgICAoLVtXS1ByZWZlcmVu
Y2VzIF9zdG9yYWdlQmxvY2tpbmdQb2xpY3ldKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBf
c2V0U3RvcmFnZUJsb2NraW5nUG9saWN5Ol0pOgorICAgICAgICAodG9FZGl0YWJsZUxpbmtCZWhh
dmlvcik6CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX3NldEVkaXRhYmxlTGlua0JlaGF2aW9y
Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByZWZlcmVuY2VzOjpjcmVhdGVXaXRoTGVnYWN5RGVmYXVsdHMpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjp1cGRhdGVQ
cmVmZXJlbmNlc1N0b3JlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGV0ZWN0RGF0YUluQWxsRnJhbWVzKToKKwogMjAy
MC0xMS0xNSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBJbml0aWFsIGltcGxlbWVudGF0aW9uIG9mIERPTSByZW5kZXJpbmcgdmlhIHRoZSBHUFUgcHJv
Y2VzcwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmNwcAko
cmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJlZmVyZW5j
ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Myw3ICs1Myw3IEBAIFJlZjxXZWJQcmVmZXJlbmNl
cz4gV2ViUHJlZmVyZW5jZXM6OmNyZWEKICAgICBwcmVmZXJlbmNlcy0+cmVnaXN0ZXJEZWZhdWx0
Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpqYXZhRW5hYmxlZEtleSgpLCB0cnVl
KTsKICAgICBwcmVmZXJlbmNlcy0+cmVnaXN0ZXJEZWZhdWx0Qm9vbFZhbHVlRm9yS2V5KFdlYlBy
ZWZlcmVuY2VzS2V5OjpqYXZhRW5hYmxlZEZvckxvY2FsRmlsZXNLZXkoKSwgdHJ1ZSk7CiAgICAg
cHJlZmVyZW5jZXMtPnJlZ2lzdGVyRGVmYXVsdEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNl
c0tleTo6cGx1Z2luc0VuYWJsZWRLZXkoKSwgdHJ1ZSk7Ci0gICAgcHJlZmVyZW5jZXMtPnJlZ2lz
dGVyRGVmYXVsdFVJbnQzMlZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpzdG9yYWdlQmxv
Y2tpbmdQb2xpY3lLZXkoKSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OkFsbG93QWxsU3RvcmFn
ZSk7CisgICAgcHJlZmVyZW5jZXMtPnJlZ2lzdGVyRGVmYXVsdFVJbnQzMlZhbHVlRm9yS2V5KFdl
YlByZWZlcmVuY2VzS2V5OjpzdG9yYWdlQmxvY2tpbmdQb2xpY3lLZXkoKSwgc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QWxsb3dBbGwpKTsKICAg
ICByZXR1cm4gcHJlZmVyZW5jZXM7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLQVBJQ2FzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLQVBJQ2FzdC5oCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMjUyLDE1ICsyNTIs
MTUgQEAgaW5saW5lIFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uIHRvQVBJKAogaW5saW5lIFdL
RWRpdGFibGVMaW5rQmVoYXZpb3IgdG9BUEkoV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3Ig
YmVoYXZpb3IpCiB7CiAgICAgc3dpdGNoIChiZWhhdmlvcikgewotICAgIGNhc2UgV2ViQ29yZTo6
RWRpdGFibGVMaW5rRGVmYXVsdEJlaGF2aW9yOgorICAgIGNhc2UgV2ViQ29yZTo6RWRpdGFibGVM
aW5rQmVoYXZpb3I6OkRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBrV0tFZGl0YWJsZUxpbmtCZWhh
dmlvckRlZmF1bHQ7Ci0gICAgY2FzZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtBbHdheXNMaXZlOgor
ICAgIGNhc2UgV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6OkFsd2F5c0xpdmU6CiAgICAg
ICAgIHJldHVybiBrV0tFZGl0YWJsZUxpbmtCZWhhdmlvckFsd2F5c0xpdmU7Ci0gICAgY2FzZSBX
ZWJDb3JlOjpFZGl0YWJsZUxpbmtPbmx5TGl2ZVdpdGhTaGlmdEtleToKKyAgICBjYXNlIFdlYkNv
cmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpPbmx5TGl2ZVdpdGhTaGlmdEtleToKICAgICAgICAg
cmV0dXJuIGtXS0VkaXRhYmxlTGlua0JlaGF2aW9yT25seUxpdmVXaXRoU2hpZnRLZXk7Ci0gICAg
Y2FzZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtMaXZlV2hlbk5vdEZvY3VzZWQ6CisgICAgY2FzZSBX
ZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvcjo6TGl2ZVdoZW5Ob3RGb2N1c2VkOgogICAgICAg
ICByZXR1cm4ga1dLRWRpdGFibGVMaW5rQmVoYXZpb3JMaXZlV2hlbk5vdEZvY3VzZWQ7Ci0gICAg
Y2FzZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtOZXZlckxpdmU6CisgICAgY2FzZSBXZWJDb3JlOjpF
ZGl0YWJsZUxpbmtCZWhhdmlvcjo6TmV2ZXJMaXZlOgogICAgICAgICByZXR1cm4ga1dLRWRpdGFi
bGVMaW5rQmVoYXZpb3JOZXZlckxpdmU7CiAgICAgfQogICAgIApAQCAtMjcyLDE5ICsyNzIsMTkg
QEAgaW5saW5lIFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yIHRvRQogewogICAgIHN3aXRj
aCAod2tCZWhhdmlvcikgewogICAgIGNhc2Uga1dLRWRpdGFibGVMaW5rQmVoYXZpb3JEZWZhdWx0
OgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5rRGVmYXVsdEJlaGF2aW9yOwor
ICAgICAgICByZXR1cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6OkRlZmF1bHQ7CiAg
ICAgY2FzZSBrV0tFZGl0YWJsZUxpbmtCZWhhdmlvckFsd2F5c0xpdmU6Ci0gICAgICAgIHJldHVy
biBXZWJDb3JlOjpFZGl0YWJsZUxpbmtBbHdheXNMaXZlOworICAgICAgICByZXR1cm4gV2ViQ29y
ZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6OkFsd2F5c0xpdmU7CiAgICAgY2FzZSBrV0tFZGl0YWJs
ZUxpbmtCZWhhdmlvck9ubHlMaXZlV2l0aFNoaWZ0S2V5OgotICAgICAgICByZXR1cm4gV2ViQ29y
ZTo6RWRpdGFibGVMaW5rT25seUxpdmVXaXRoU2hpZnRLZXk7CisgICAgICAgIHJldHVybiBXZWJD
b3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvcjo6T25seUxpdmVXaXRoU2hpZnRLZXk7CiAgICAgY2Fz
ZSBrV0tFZGl0YWJsZUxpbmtCZWhhdmlvckxpdmVXaGVuTm90Rm9jdXNlZDoKLSAgICAgICAgcmV0
dXJuIFdlYkNvcmU6OkVkaXRhYmxlTGlua0xpdmVXaGVuTm90Rm9jdXNlZDsKKyAgICAgICAgcmV0
dXJuIFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpMaXZlV2hlbk5vdEZvY3VzZWQ7CiAg
ICAgY2FzZSBrV0tFZGl0YWJsZUxpbmtCZWhhdmlvck5ldmVyTGl2ZToKLSAgICAgICAgcmV0dXJu
IFdlYkNvcmU6OkVkaXRhYmxlTGlua05ldmVyTGl2ZTsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6
OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpOZXZlckxpdmU7CiAgICAgfQogICAgIAogICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBXZWJDb3JlOjpFZGl0YWJsZUxpbmtOZXZlckxp
dmU7CisgICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpOZXZlckxpdmU7
CiB9CiAgICAgCiBpbmxpbmUgV0tQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlIHRvQVBJKFdlYkNv
cmU6OlByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUgdHlwZSkKQEAgLTM4NCwyOSArMzg0LDI5IEBA
IGlubGluZSBXS0hUVFBDb29raWVBY2NlcHRQb2xpY3kgdG9BUEkoV2UKICAgICByZXR1cm4ga1dL
SFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5czsKIH0KIAotaW5saW5lIFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgdG9TdG9yYWdlQmxvY2tpbmdQb2xpY3ko
V0tTdG9yYWdlQmxvY2tpbmdQb2xpY3kgcG9saWN5KQoraW5saW5lIFdlYkNvcmU6OlN0b3JhZ2VC
bG9ja2luZ1BvbGljeSB0b1N0b3JhZ2VCbG9ja2luZ1BvbGljeShXS1N0b3JhZ2VCbG9ja2luZ1Bv
bGljeSBwb2xpY3kpCiB7CiAgICAgc3dpdGNoIChwb2xpY3kpIHsKICAgICBjYXNlIGtXS0FsbG93
QWxsU3RvcmFnZToKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpBbGxv
d0FsbFN0b3JhZ2U7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xp
Y3k6OkFsbG93QWxsOwogICAgIGNhc2Uga1dLQmxvY2tUaGlyZFBhcnR5U3RvcmFnZToKLSAgICAg
ICAgcmV0dXJuIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpCbG9ja1RoaXJkUGFydHlTdG9yYWdl
OworICAgICAgICByZXR1cm4gV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5OjpCbG9ja1Ro
aXJkUGFydHk7CiAgICAgY2FzZSBrV0tCbG9ja0FsbFN0b3JhZ2U6Ci0gICAgICAgIHJldHVybiBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6QmxvY2tBbGxTdG9yYWdlOworICAgICAgICByZXR1cm4g
V2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5OjpCbG9ja0FsbDsKICAgICB9CiAKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46
OkFsbG93QWxsU3RvcmFnZTsKKyAgICByZXR1cm4gV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9s
aWN5OjpBbGxvd0FsbDsKIH0KIAotaW5saW5lIFdLU3RvcmFnZUJsb2NraW5nUG9saWN5IHRvQVBJ
KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgcG9saWN5KQor
aW5saW5lIFdLU3RvcmFnZUJsb2NraW5nUG9saWN5IHRvQVBJKFdlYkNvcmU6OlN0b3JhZ2VCbG9j
a2luZ1BvbGljeSBwb2xpY3kpCiB7CiAgICAgc3dpdGNoIChwb2xpY3kpIHsKLSAgICBjYXNlIFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpBbGxvd0FsbFN0b3JhZ2U6CisgICAgY2FzZSBXZWJDb3Jl
OjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkFsbG93QWxsOgogICAgICAgICByZXR1cm4ga1dLQWxs
b3dBbGxTdG9yYWdlOwotICAgIGNhc2UgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OkJsb2NrVGhp
cmRQYXJ0eVN0b3JhZ2U6CisgICAgY2FzZSBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6
OkJsb2NrVGhpcmRQYXJ0eToKICAgICAgICAgcmV0dXJuIGtXS0Jsb2NrVGhpcmRQYXJ0eVN0b3Jh
Z2U7Ci0gICAgY2FzZSBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6QmxvY2tBbGxTdG9yYWdlOgor
ICAgIGNhc2UgV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5OjpCbG9ja0FsbDoKICAgICAg
ICAgcmV0dXJuIGtXS0Jsb2NrQWxsU3RvcmFnZTsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCShyZXZpc2lvbiAyNjk4
MzApCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzU4LDcgKzM1OCw3IEBAIGJvb2wgV0tQcmVmZXJlbmNlc0dldENv
b2tpZUVuYWJsZWQoV0tQcmUKIAogdm9pZCBXS1ByZWZlcmVuY2VzU2V0RWRpdGFibGVMaW5rQmVo
YXZpb3IoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgV0tFZGl0YWJsZUxpbmtCZWhh
dmlvciB3a0JlaGF2aW9yKQogewotICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldEVkaXRh
YmxlTGlua0JlaGF2aW9yKHRvRWRpdGFibGVMaW5rQmVoYXZpb3Iod2tCZWhhdmlvcikpOworICAg
IHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldEVkaXRhYmxlTGlua0JlaGF2aW9yKHN0YXRpY19j
YXN0PHVpbnQzMl90Pih0b0VkaXRhYmxlTGlua0JlaGF2aW9yKHdrQmVoYXZpb3IpKSk7CiB9CiAK
IFdLRWRpdGFibGVMaW5rQmVoYXZpb3IgV0tQcmVmZXJlbmNlc0dldEVkaXRhYmxlTGlua0JlaGF2
aW9yKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpCkBAIC05OTgsMTIgKzk5OCwxMiBA
QCBib29sIFdLUHJlZmVyZW5jZXNHZXRSZXF1ZXN0QW5pbWF0aW9uRnJhCiAKIHZvaWQgV0tQcmVm
ZXJlbmNlc1NldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVu
Y2VzUmVmLCBXS1N0b3JhZ2VCbG9ja2luZ1BvbGljeSBwb2xpY3kpCiB7Ci0gICAgdG9JbXBsKHBy
ZWZlcmVuY2VzUmVmKS0+c2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KHRvU3RvcmFnZUJsb2NraW5n
UG9saWN5KHBvbGljeSkpOworICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldFN0b3JhZ2VC
bG9ja2luZ1BvbGljeShzdGF0aWNfY2FzdDx1aW50MzJfdD4odG9TdG9yYWdlQmxvY2tpbmdQb2xp
Y3kocG9saWN5KSkpOwogfQogCiBXS1N0b3JhZ2VCbG9ja2luZ1BvbGljeSBXS1ByZWZlcmVuY2Vz
R2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYp
CiB7Ci0gICAgcmV0dXJuIHRvQVBJKHN0YXRpY19jYXN0PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
OjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k+KHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnN0b3JhZ2VC
bG9ja2luZ1BvbGljeSgpKSk7CisgICAgcmV0dXJuIHRvQVBJKHN0YXRpY19jYXN0PFdlYkNvcmU6
OlN0b3JhZ2VCbG9ja2luZ1BvbGljeT4odG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c3RvcmFnZUJs
b2NraW5nUG9saWN5KCkpKTsKIH0KIAogdm9pZCBXS1ByZWZlcmVuY2VzU2V0RGlhZ25vc3RpY0xv
Z2dpbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgZW5hYmxl
ZCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2Vz
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
ZWZlcmVuY2VzLm1tCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTc1LDI5ICsx
NzUsMjkgQEAgLSAodm9pZClfc2V0VGVsZXBob25lTnVtYmVyRGV0ZWN0aW9uSXNFbgogICAgIF9w
cmVmZXJlbmNlcy0+c2V0VGVsZXBob25lTnVtYmVyUGFyc2luZ0VuYWJsZWQodGVsZXBob25lTnVt
YmVyRGV0ZWN0aW9uSXNFbmFibGVkKTsKIH0KIAotc3RhdGljIFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgdG9TdG9yYWdlQmxvY2tpbmdQb2xpY3koX1dLU3Rv
cmFnZUJsb2NraW5nUG9saWN5IHBvbGljeSkKK3N0YXRpYyBXZWJDb3JlOjpTdG9yYWdlQmxvY2tp
bmdQb2xpY3kgdG9TdG9yYWdlQmxvY2tpbmdQb2xpY3koX1dLU3RvcmFnZUJsb2NraW5nUG9saWN5
IHBvbGljeSkKIHsKICAgICBzd2l0Y2ggKHBvbGljeSkgewogICAgIGNhc2UgX1dLU3RvcmFnZUJs
b2NraW5nUG9saWN5QWxsb3dBbGw6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbjo6QWxsb3dBbGxTdG9yYWdlOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6U3RvcmFnZUJs
b2NraW5nUG9saWN5OjpBbGxvd0FsbDsKICAgICBjYXNlIF9XS1N0b3JhZ2VCbG9ja2luZ1BvbGlj
eUJsb2NrVGhpcmRQYXJ0eToKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
OjpCbG9ja1RoaXJkUGFydHlTdG9yYWdlOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6U3RvcmFn
ZUJsb2NraW5nUG9saWN5OjpCbG9ja1RoaXJkUGFydHk7CiAgICAgY2FzZSBfV0tTdG9yYWdlQmxv
Y2tpbmdQb2xpY3lCbG9ja0FsbDoKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luOjpCbG9ja0FsbFN0b3JhZ2U7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpTdG9yYWdlQmxv
Y2tpbmdQb2xpY3k6OkJsb2NrQWxsOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgIHJldHVybiBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6QWxsb3dBbGxTdG9yYWdlOwor
ICAgIHJldHVybiBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkFsbG93QWxsOwogfQog
Ci1zdGF0aWMgX1dLU3RvcmFnZUJsb2NraW5nUG9saWN5IHRvQVBJKFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgcG9saWN5KQorc3RhdGljIF9XS1N0b3JhZ2VC
bG9ja2luZ1BvbGljeSB0b0FQSShXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgcG9saWN5
KQogewogICAgIHN3aXRjaCAocG9saWN5KSB7Ci0gICAgY2FzZSBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbjo6QWxsb3dBbGxTdG9yYWdlOgorICAgIGNhc2UgV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5n
UG9saWN5OjpBbGxvd0FsbDoKICAgICAgICAgcmV0dXJuIF9XS1N0b3JhZ2VCbG9ja2luZ1BvbGlj
eUFsbG93QWxsOwotICAgIGNhc2UgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OkJsb2NrVGhpcmRQ
YXJ0eVN0b3JhZ2U6CisgICAgY2FzZSBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkJs
b2NrVGhpcmRQYXJ0eToKICAgICAgICAgcmV0dXJuIF9XS1N0b3JhZ2VCbG9ja2luZ1BvbGljeUJs
b2NrVGhpcmRQYXJ0eTsKLSAgICBjYXNlIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpCbG9ja0Fs
bFN0b3JhZ2U6CisgICAgY2FzZSBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkJsb2Nr
QWxsOgogICAgICAgICByZXR1cm4gX1dLU3RvcmFnZUJsb2NraW5nUG9saWN5QmxvY2tBbGw7CiAg
ICAgfQogCkBAIC0yMDcsMTIgKzIwNywxMiBAQCBzdGF0aWMgX1dLU3RvcmFnZUJsb2NraW5nUG9s
aWN5IHRvQVBJKFdlCiAKIC0gKF9XS1N0b3JhZ2VCbG9ja2luZ1BvbGljeSlfc3RvcmFnZUJsb2Nr
aW5nUG9saWN5CiB7Ci0gICAgcmV0dXJuIHRvQVBJKHN0YXRpY19jYXN0PFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k+KF9wcmVmZXJlbmNlcy0+c3RvcmFnZUJs
b2NraW5nUG9saWN5KCkpKTsKKyAgICByZXR1cm4gdG9BUEkoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6
U3RvcmFnZUJsb2NraW5nUG9saWN5PihfcHJlZmVyZW5jZXMtPnN0b3JhZ2VCbG9ja2luZ1BvbGlj
eSgpKSk7CiB9CiAKIC0gKHZvaWQpX3NldFN0b3JhZ2VCbG9ja2luZ1BvbGljeTooX1dLU3RvcmFn
ZUJsb2NraW5nUG9saWN5KXBvbGljeQogewotICAgIF9wcmVmZXJlbmNlcy0+c2V0U3RvcmFnZUJs
b2NraW5nUG9saWN5KHRvU3RvcmFnZUJsb2NraW5nUG9saWN5KHBvbGljeSkpOworICAgIF9wcmVm
ZXJlbmNlcy0+c2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KHN0YXRpY19jYXN0PHVpbnQzMl90Pih0
b1N0b3JhZ2VCbG9ja2luZ1BvbGljeShwb2xpY3kpKSk7CiB9CiAKIC0gKEJPT0wpX29mZmxpbmVB
cHBsaWNhdGlvbkNhY2hlSXNFbmFibGVkCkBAIC03MzMsMTUgKzczMywxNSBAQCAtICh2b2lkKV9z
ZXRTaG91bGRBbGxvd0Rlc2lnblN5c3RlbVVJRm9uCiBzdGF0aWMgX1dLRWRpdGFibGVMaW5rQmVo
YXZpb3IgdG9BUEkoV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3IgYmVoYXZpb3IpCiB7CiAg
ICAgc3dpdGNoIChiZWhhdmlvcikgewotICAgIGNhc2UgV2ViQ29yZTo6RWRpdGFibGVMaW5rRGVm
YXVsdEJlaGF2aW9yOgorICAgIGNhc2UgV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6OkRl
ZmF1bHQ6CiAgICAgICAgIHJldHVybiBfV0tFZGl0YWJsZUxpbmtCZWhhdmlvckRlZmF1bHQ7Ci0g
ICAgY2FzZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtBbHdheXNMaXZlOgorICAgIGNhc2UgV2ViQ29y
ZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6OkFsd2F5c0xpdmU6CiAgICAgICAgIHJldHVybiBfV0tF
ZGl0YWJsZUxpbmtCZWhhdmlvckFsd2F5c0xpdmU7Ci0gICAgY2FzZSBXZWJDb3JlOjpFZGl0YWJs
ZUxpbmtPbmx5TGl2ZVdpdGhTaGlmdEtleToKKyAgICBjYXNlIFdlYkNvcmU6OkVkaXRhYmxlTGlu
a0JlaGF2aW9yOjpPbmx5TGl2ZVdpdGhTaGlmdEtleToKICAgICAgICAgcmV0dXJuIF9XS0VkaXRh
YmxlTGlua0JlaGF2aW9yT25seUxpdmVXaXRoU2hpZnRLZXk7Ci0gICAgY2FzZSBXZWJDb3JlOjpF
ZGl0YWJsZUxpbmtMaXZlV2hlbk5vdEZvY3VzZWQ6CisgICAgY2FzZSBXZWJDb3JlOjpFZGl0YWJs
ZUxpbmtCZWhhdmlvcjo6TGl2ZVdoZW5Ob3RGb2N1c2VkOgogICAgICAgICByZXR1cm4gX1dLRWRp
dGFibGVMaW5rQmVoYXZpb3JMaXZlV2hlbk5vdEZvY3VzZWQ7Ci0gICAgY2FzZSBXZWJDb3JlOjpF
ZGl0YWJsZUxpbmtOZXZlckxpdmU6CisgICAgY2FzZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhh
dmlvcjo6TmV2ZXJMaXZlOgogICAgICAgICByZXR1cm4gX1dLRWRpdGFibGVMaW5rQmVoYXZpb3JO
ZXZlckxpdmU7CiAgICAgfQogICAgIApAQCAtNzUzLDE5ICs3NTMsMTkgQEAgc3RhdGljIFdlYkNv
cmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yIHRvRQogewogICAgIHN3aXRjaCAod2tCZWhhdmlvcikg
ewogICAgIGNhc2UgX1dLRWRpdGFibGVMaW5rQmVoYXZpb3JEZWZhdWx0OgotICAgICAgICByZXR1
cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5rRGVmYXVsdEJlaGF2aW9yOworICAgICAgICByZXR1cm4g
V2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6OkRlZmF1bHQ7CiAgICAgY2FzZSBfV0tFZGl0
YWJsZUxpbmtCZWhhdmlvckFsd2F5c0xpdmU6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpFZGl0
YWJsZUxpbmtBbHdheXNMaXZlOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5r
QmVoYXZpb3I6OkFsd2F5c0xpdmU7CiAgICAgY2FzZSBfV0tFZGl0YWJsZUxpbmtCZWhhdmlvck9u
bHlMaXZlV2l0aFNoaWZ0S2V5OgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5r
T25seUxpdmVXaXRoU2hpZnRLZXk7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpFZGl0YWJsZUxp
bmtCZWhhdmlvcjo6T25seUxpdmVXaXRoU2hpZnRLZXk7CiAgICAgY2FzZSBfV0tFZGl0YWJsZUxp
bmtCZWhhdmlvckxpdmVXaGVuTm90Rm9jdXNlZDoKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkVk
aXRhYmxlTGlua0xpdmVXaGVuTm90Rm9jdXNlZDsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkVk
aXRhYmxlTGlua0JlaGF2aW9yOjpMaXZlV2hlbk5vdEZvY3VzZWQ7CiAgICAgY2FzZSBfV0tFZGl0
YWJsZUxpbmtCZWhhdmlvck5ldmVyTGl2ZToKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRh
YmxlTGlua05ldmVyTGl2ZTsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRhYmxlTGlua0Jl
aGF2aW9yOjpOZXZlckxpdmU7CiAgICAgfQogICAgIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgIHJldHVybiBXZWJDb3JlOjpFZGl0YWJsZUxpbmtOZXZlckxpdmU7CisgICAgcmV0dXJu
IFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpOZXZlckxpdmU7CiB9CiAKIC0gKF9XS0Vk
aXRhYmxlTGlua0JlaGF2aW9yKV9lZGl0YWJsZUxpbmtCZWhhdmlvcgpAQCAtNzc1LDcgKzc3NSw3
IEBAIC0gKF9XS0VkaXRhYmxlTGlua0JlaGF2aW9yKV9lZGl0YWJsZUxpbmsKIAogLSAodm9pZClf
c2V0RWRpdGFibGVMaW5rQmVoYXZpb3I6KF9XS0VkaXRhYmxlTGlua0JlaGF2aW9yKWVkaXRhYmxl
TGlua0JlaGF2aW9yCiB7Ci0gICAgX3ByZWZlcmVuY2VzLT5zZXRFZGl0YWJsZUxpbmtCZWhhdmlv
cih0b0VkaXRhYmxlTGlua0JlaGF2aW9yKGVkaXRhYmxlTGlua0JlaGF2aW9yKSk7CisgICAgX3By
ZWZlcmVuY2VzLT5zZXRFZGl0YWJsZUxpbmtCZWhhdmlvcihzdGF0aWNfY2FzdDx1aW50MzJfdD4o
dG9FZGl0YWJsZUxpbmtCZWhhdmlvcihlZGl0YWJsZUxpbmtCZWhhdmlvcikpKTsKIH0KIAogLSAo
dm9pZClfc2V0QVZGb3VuZGF0aW9uRW5hYmxlZDooQk9PTCllbmFibGVkCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMiw3ICsxMjIsNyBAQCB2b2lkIFdlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uOjp1cGRhCiB7CiAgICAgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXNH
ZW5lcmF0ZWQoc3RvcmUpOwogCi0gICAgbV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgPSBzdGF0aWNf
Y2FzdDxTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5PihzdG9yZS5nZXRVSW50
MzJWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6c3RvcmFnZUJsb2NraW5nUG9saWN5S2V5
KCkpKTsKKyAgICBtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeSA9IHN0YXRpY19jYXN0PFN0b3JhZ2VC
bG9ja2luZ1BvbGljeT4oc3RvcmUuZ2V0VUludDMyVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNL
ZXk6OnN0b3JhZ2VCbG9ja2luZ1BvbGljeUtleSgpKSk7CiAgICAgc2V0U2hvdWxkVXNlU2hvcnRU
aW1lb3V0KHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6c2hvdWxk
VXNlU2VydmljZVdvcmtlclNob3J0VGltZW91dEtleSgpKSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24uaAkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaAkod29y
a2luZyBjb3B5KQpAQCAtMTAyLDcgKzEwMiw3IEBAIHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5
SWRlbnRpZmllciBtX3dlYlBhZ2VQcm94eUlEOwogICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IG1fcGFnZUlEOwogCi0gICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2lu
Z1BvbGljeSBtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeSB7IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
OjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkFsbG93QWxsU3RvcmFnZSB9OworICAgIFdlYkNvcmU6
OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeSB7IFdlYkNvcmU6
OlN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QWxsb3dBbGwgfTsKIAogICAgIEhhc2hTZXQ8c3RkOjp1
bmlxdWVfcHRyPFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudD4+IG1fbG9hZGVyczsKICAg
ICBIYXNoTWFwPHVpbnQ2NF90LCBGaW5kQ2xpZW50QnlJZGVudGlmaWVyQ2FsbGJhY2s+IG1fZmlu
ZENsaWVudEJ5SWRlbnRpZmllclJlcXVlc3RzOwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
NzM1LDcgKzM3MzUsNyBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdl
CiAgICAgc2V0dGluZ3Muc2V0VXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeShzdGF0aWNfY2Fz
dDxXZWJDb3JlOjpVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5PihzdG9yZS5nZXRVSW50MzJW
YWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6dXNlckludGVyZmFjZURpcmVjdGlvblBvbGlj
eUtleSgpKSkpOwogICAgIHNldHRpbmdzLnNldFN5c3RlbUxheW91dERpcmVjdGlvbihzdGF0aWNf
Y2FzdDxUZXh0RGlyZWN0aW9uPihzdG9yZS5nZXRVSW50MzJWYWx1ZUZvcktleShXZWJQcmVmZXJl
bmNlc0tleTo6c3lzdGVtTGF5b3V0RGlyZWN0aW9uS2V5KCkpKSk7CiAgICAgc2V0dGluZ3Muc2V0
SmF2YVNjcmlwdFJ1bnRpbWVGbGFncyhzdGF0aWNfY2FzdDxSdW50aW1lRmxhZ3M+KHN0b3JlLmdl
dFVJbnQzMlZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpqYXZhU2NyaXB0UnVudGltZUZs
YWdzS2V5KCkpKSk7Ci0gICAgc2V0dGluZ3Muc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KHN0YXRp
Y19jYXN0PFNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k+KHN0b3JlLmdldFVJ
bnQzMlZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpzdG9yYWdlQmxvY2tpbmdQb2xpY3lL
ZXkoKSkpKTsKKyAgICBzZXR0aW5ncy5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koc3RhdGljX2Nh
c3Q8U3RvcmFnZUJsb2NraW5nUG9saWN5PihzdG9yZS5nZXRVSW50MzJWYWx1ZUZvcktleShXZWJQ
cmVmZXJlbmNlc0tleTo6c3RvcmFnZUJsb2NraW5nUG9saWN5S2V5KCkpKSk7CiAgICAgc2V0dGlu
Z3Muc2V0RnJhbWVGbGF0dGVuaW5nKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJl
bmNlc0tleTo6ZnJhbWVGbGF0dGVuaW5nRW5hYmxlZEtleSgpKSA/IFdlYkNvcmU6OkZyYW1lRmxh
dHRlbmluZzo6RnVsbHlFbmFibGVkIDogV2ViQ29yZTo6RnJhbWVGbGF0dGVuaW5nOjpEaXNhYmxl
ZCk7CiAgICAgc2V0dGluZ3Muc2V0RWRpdGFibGVMaW5rQmVoYXZpb3Ioc3RhdGljX2Nhc3Q8V2Vi
Q29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I+KHN0b3JlLmdldFVJbnQzMlZhbHVlRm9yS2V5KFdl
YlByZWZlcmVuY2VzS2V5OjplZGl0YWJsZUxpbmtCZWhhdmlvcktleSgpKSkpOwogI2lmIEVOQUJM
RShEQVRBX0RFVEVDVElPTikKQEAgLTM4MzYsNyArMzgzNiw3IEBAIHZvaWQgV2ViUGFnZTo6cmVt
b3ZlRGF0YURldGVjdGVkTGlua3MoQ28KIAogdm9pZCBXZWJQYWdlOjpkZXRlY3REYXRhSW5BbGxG
cmFtZXModWludDY0X3QgdHlwZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgRGF0YURl
dGVjdGlvblJlc3VsdCYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGF1dG8gZGF0YURl
dGVjdG9yVHlwZXMgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpEYXRhRGV0ZWN0b3JUeXBlcz4odHlw
ZXMpOworICAgIGF1dG8gZGF0YURldGVjdG9yVHlwZXMgPSBPcHRpb25TZXQ8RGF0YURldGVjdG9y
VHlwZXM+Ojpmcm9tUmF3KHR5cGVzKTsKICAgICBmb3IgKGF1dG8gZnJhbWUgPSBtYWtlUmVmUHRy
KCZtX3BhZ2UtPm1haW5GcmFtZSgpKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2
ZXJzZU5leHQoKSkgewogICAgICAgICBhdXRvIGRvY3VtZW50ID0gbWFrZVJlZlB0cihmcmFtZS0+
ZG9jdW1lbnQoKSk7CiAgICAgICAgIGlmICghZG9jdW1lbnQpCkluZGV4OiBTb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0xMS0xNSAg
U2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAgU3RhbmRhcmRpemUgZW51
bXMgdGhhdCBhcmUgdXNlZCBieSBTZXR0aW5ncyBpbiBwcmVwZXJhdGlvbiBmb3IgYXV0b2dlbmVy
YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
ODk2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtX
SVBdCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lLm1tOgorICAgICAgICAqIFdlYlZpZXcv
V2ViVmlldy5tbToKKwogMjAyMC0xMS0xMyAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgTW92ZSBzb21lIG1vcmUgV2ViS2l0IGFuZCBXZWJLaXRMZWdhY3kgcHJlZmVy
ZW5jZXMgYm91bmQgdG8gU2V0dGluZ3MgdG8gV2ViUHJlZmVyZW5jZXMueWFtbApJbmRleDogU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCShyZXZpc2lvbiAyNjk4
MzApCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMDcsMTggKzIwNywxOCBAQCBXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhh
dmlvciBjb3JlKFdlYktpCiAgICAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAgICAgc3dpdGNo
IChlZGl0YWJsZUxpbmtCZWhhdmlvcikgewogICAgICAgICBjYXNlIFdlYktpdEVkaXRhYmxlTGlu
a0RlZmF1bHRCZWhhdmlvcjoKLSAgICAgICAgICAgIHJldHVybiBFZGl0YWJsZUxpbmtEZWZhdWx0
QmVoYXZpb3I7CisgICAgICAgICAgICByZXR1cm4gRWRpdGFibGVMaW5rQmVoYXZpb3I6OkRlZmF1
bHQ7CiAgICAgICAgIGNhc2UgV2ViS2l0RWRpdGFibGVMaW5rQWx3YXlzTGl2ZToKLSAgICAgICAg
ICAgIHJldHVybiBFZGl0YWJsZUxpbmtBbHdheXNMaXZlOworICAgICAgICAgICAgcmV0dXJuIEVk
aXRhYmxlTGlua0JlaGF2aW9yOjpBbHdheXNMaXZlOwogICAgICAgICBjYXNlIFdlYktpdEVkaXRh
YmxlTGlua09ubHlMaXZlV2l0aFNoaWZ0S2V5OgotICAgICAgICAgICAgcmV0dXJuIEVkaXRhYmxl
TGlua09ubHlMaXZlV2l0aFNoaWZ0S2V5OworICAgICAgICAgICAgcmV0dXJuIEVkaXRhYmxlTGlu
a0JlaGF2aW9yOjpPbmx5TGl2ZVdpdGhTaGlmdEtleTsKICAgICAgICAgY2FzZSBXZWJLaXRFZGl0
YWJsZUxpbmtMaXZlV2hlbk5vdEZvY3VzZWQ6Ci0gICAgICAgICAgICByZXR1cm4gRWRpdGFibGVM
aW5rTGl2ZVdoZW5Ob3RGb2N1c2VkOworICAgICAgICAgICAgcmV0dXJuIEVkaXRhYmxlTGlua0Jl
aGF2aW9yOjpMaXZlV2hlbk5vdEZvY3VzZWQ7CiAgICAgICAgIGNhc2UgV2ViS2l0RWRpdGFibGVM
aW5rTmV2ZXJMaXZlOgotICAgICAgICAgICAgcmV0dXJuIEVkaXRhYmxlTGlua05ldmVyTGl2ZTsK
KyAgICAgICAgICAgIHJldHVybiBFZGl0YWJsZUxpbmtCZWhhdmlvcjo6TmV2ZXJMaXZlOwogICAg
IH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gRWRpdGFibGVMaW5rRGVm
YXVsdEJlaGF2aW9yOworICAgIHJldHVybiBFZGl0YWJsZUxpbmtCZWhhdmlvcjo6RGVmYXVsdDsK
IH0KIAogV2ViQ29yZTo6VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvciBjb3Jl
KFdlYlRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IgYmVoYXZpb3IpCkBAIC0y
MjYsMTQgKzIyNiwxNCBAQCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJl
CiAgICAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAgICAgc3dpdGNoIChiZWhhdmlvcikgewog
ICAgICAgICBjYXNlIFdlYlRleHREaXJlY3Rpb25TdWJtZW51TmV2ZXJJbmNsdWRlZDoKLSAgICAg
ICAgICAgIHJldHVybiBUZXh0RGlyZWN0aW9uU3VibWVudU5ldmVySW5jbHVkZWQ7CisgICAgICAg
ICAgICByZXR1cm4gVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcjo6TmV2ZXJJ
bmNsdWRlZDsKICAgICAgICAgY2FzZSBXZWJUZXh0RGlyZWN0aW9uU3VibWVudUF1dG9tYXRpY2Fs
bHlJbmNsdWRlZDoKLSAgICAgICAgICAgIHJldHVybiBUZXh0RGlyZWN0aW9uU3VibWVudUF1dG9t
YXRpY2FsbHlJbmNsdWRlZDsKKyAgICAgICAgICAgIHJldHVybiBUZXh0RGlyZWN0aW9uU3VibWVu
dUluY2x1c2lvbkJlaGF2aW9yOjpBdXRvbWF0aWNhbGx5SW5jbHVkZWQ7CiAgICAgICAgIGNhc2Ug
V2ViVGV4dERpcmVjdGlvblN1Ym1lbnVBbHdheXNJbmNsdWRlZDoKLSAgICAgICAgICAgIHJldHVy
biBUZXh0RGlyZWN0aW9uU3VibWVudUFsd2F5c0luY2x1ZGVkOworICAgICAgICAgICAgcmV0dXJu
IFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3I6OkFsd2F5c0luY2x1ZGVkOwog
ICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gVGV4dERpcmVjdGlv
blN1Ym1lbnVOZXZlckluY2x1ZGVkOworICAgIHJldHVybiBUZXh0RGlyZWN0aW9uU3VibWVudUlu
Y2x1c2lvbkJlaGF2aW9yOjpOZXZlckluY2x1ZGVkOwogfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0J
KHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtNzU1LDE5ICs3NTUsMTkgQEAgc3RhdGljIFdlYlBh
Z2VWaXNpYmlsaXR5U3RhdGUga2l0KFdlYkNvcgogICAgIHJldHVybiBXZWJQYWdlVmlzaWJpbGl0
eVN0YXRlVmlzaWJsZTsKIH0KIAotc3RhdGljIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpTdG9y
YWdlQmxvY2tpbmdQb2xpY3kgY29yZShXZWJTdG9yYWdlQmxvY2tpbmdQb2xpY3kgc3RvcmFnZUJs
b2NraW5nUG9saWN5KQorc3RhdGljIFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBjb3Jl
KFdlYlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBzdG9yYWdlQmxvY2tpbmdQb2xpY3kpCiB7CiAgICAg
c3dpdGNoIChzdG9yYWdlQmxvY2tpbmdQb2xpY3kpIHsKICAgICBjYXNlIFdlYkFsbG93QWxsU3Rv
cmFnZToKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpBbGxvd0FsbFN0
b3JhZ2U7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkFs
bG93QWxsOwogICAgIGNhc2UgV2ViQmxvY2tUaGlyZFBhcnR5U3RvcmFnZToKLSAgICAgICAgcmV0
dXJuIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpCbG9ja1RoaXJkUGFydHlTdG9yYWdlOworICAg
ICAgICByZXR1cm4gV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5OjpCbG9ja1RoaXJkUGFy
dHk7CiAgICAgY2FzZSBXZWJCbG9ja0FsbFN0b3JhZ2U6Ci0gICAgICAgIHJldHVybiBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbjo6QmxvY2tBbGxTdG9yYWdlOworICAgICAgICByZXR1cm4gV2ViQ29y
ZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5OjpCbG9ja0FsbDsKICAgICBkZWZhdWx0OgogICAgICAg
ICAvLyBJZiBhbiBpbnZhbGlkIHZhbHVlIHdhcyBzZXQgKGFzIGNhbiBiZSBkb25lIHZpYSBOU1Vz
ZXJEZWZhdWx0cyksIGZhbGwgYmFjayB0bwotICAgICAgICAvLyB0aGUgZGVmYXVsdCB2YWx1ZSwg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OkFsbG93QWxsU3RvcmFnZS4KLSAgICAgICAgcmV0dXJu
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpBbGxvd0FsbFN0b3JhZ2U7CisgICAgICAgIC8vIHRo
ZSBkZWZhdWx0IHZhbHVlLCBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkFsbG93QWxs
LgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5OjpBbGxvd0Fs
bDsKICAgICB9CiB9CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYxIEBACisyMDIwLTExLTE1ICBT
YW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBTdGFuZGFyZGl6ZSBlbnVt
cyB0aGF0IGFyZSB1c2VkIGJ5IFNldHRpbmdzIGluIHByZXBlcmF0aW9uIGZvciBhdXRvZ2VuZXJh
dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4
OTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1dJ
UF0KKworICAgICAgICAqIGVkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWxpZ2F0dXJlLTAwMy5odG1s
OgorICAgICAgICAqIGVkaXRpbmcvZGVsZXRpbmcvcGFyYWdyYXBoLWluLXByZXNlcnZlTmV3bGlu
ZS5odG1sOgorICAgICAgICAqIGVkaXRpbmcvZGVsZXRpbmcvc21hcnQtZWRpdGluZy1kaXNhYmxl
ZC13aW4uaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2RlbGV0aW5nL3doaXRlc3BhY2UtcHJlLTEu
aHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL3F1ZXJ5LWNvbW1hbmQtc3RhdGUu
aHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL3F1ZXJ5LXRleHQtYWxpZ25tZW50
Lmh0bWw6CisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9yZW1vdmUtZm9ybWF0LW11bHRp
cGxlLWVsZW1lbnRzLXdpbi5odG1sOgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvdG9n
Z2xlLWNvbXBvdW5kLXN0eWxlcy5odG1sOgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQv
dG9nZ2xlLWxpbmstd2luLmh0bWw6CisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC90b2dn
bGUtdW5saW5rLXdpbi5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uLzUxOTUxNjYt
MS5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uLzUzNTQ0NTUtMS5odG1sOgorICAg
ICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2NsaWNrLWluLW1hcmdpbnMtaW5zaWRlLWVkaXRhYmxl
LWRpdi5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2NsaWNrLWluLXBhZGRpbmct
d2l0aC1tdWx0aXBsZS1saW5lLWJveGVzLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rp
b24vY29udGV4dC1tZW51LXRleHQtc2VsZWN0aW9uLWxvb2t1cC5odG1sOgorICAgICAgICAqIGVk
aXRpbmcvc2VsZWN0aW9uL2NvbnRleHQtbWVudS10ZXh0LXNlbGVjdGlvbi5odG1sOgorICAgICAg
ICAqIGVkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1hZnRlci1tb3VzZS1zZWxlY3Rpb24uaHRtbDoK
KyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWFmdGVyLWRvdWJs
ZS1jbGljay5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rp
b24tZW5jbG9zaW5nLWJsb2NrLXdpbi5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9u
L21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0LTEuaHRtbDoKKyAgICAgICAgKiBlZGl0
aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC0yLmh0bWw6Cisg
ICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWNyYXNoLXRl
c3QtMy5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1
YWxseS1jcmFzaC10ZXN0LTQuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9tb3Zl
LWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC01Lmh0bWw6CisgICAgICAgICogZWRpdGluZy9z
ZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWNyYXNoLXRlc3QtY3NzLWdlbmVyYXRlZC1j
b250ZW50Lmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZp
c3VhbGx5LWNyYXNoLXRlc3QtdGV4dGFyZWEuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVj
dGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktaW5saW5lLWJsb2NrLXBvc2l0aW9uZWQtZWxlbWVu
dC5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxs
eS1tdWx0aS1saW5lLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13
b3JkLXZpc3VhbGx5LW11bHRpLXNwYWNlLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rp
b24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LW51bGwtYm94Lmh0bWw6CisgICAgICAgICogZWRpdGlu
Zy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LXNpbmdsZS1zcGFjZS1pbmxpbmUtZWxl
bWVudC5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1
YWxseS1zaW5nbGUtc3BhY2Utb25lLWVsZW1lbnQuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3Nl
bGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktdGV4dGFyZWEuaHRtbDoKKyAgICAgICAgKiBl
ZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktd3JvbmctbGVmdC1yaWdodC5o
dG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL3Byb2dyYW1tYXRpYy1zZWxlY3Rpb24t
b24tbWFjLWlzLWRpcmVjdGlvbmxlc3MuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlv
bi9ydGwtbW92ZS1zZWxlY3Rpb24tcmlnaHQtbGVmdC5odG1sOgorICAgICAgICAqIGVkaXRpbmcv
c2VsZWN0aW9uL3NlbGVjdGlvbi1leHRlbmQtc2hvdWxkLW5vdC1tb3ZlLWFjcm9zcy1jYXJldC1v
bi1tYWMuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9zaGlmdC1jbGljay5odG1s
OgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL3VzZXItc2VsZWN0LWFsbC13aXRoLXNoaWZ0
Lmh0bWw6CisgICAgICAgICogZWRpdGluZy9zcGVsbGluZy9jb3B5LXBhc3RlLWNyYXNoLmh0bWw6
CisgICAgICAgICogZWRpdGluZy9zdHlsZS9pZnJhbWUtb25sb2FkLWNyYXNoLXdpbi5odG1sOgor
ICAgICAgICAqIGVkaXRpbmcvc3R5bGUvbWFrZS10ZXh0LXdyaXRpbmctZGlyZWN0aW9uLWlubGlu
ZS13aW4uaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3N0eWxlL3B1c2gtZG93bi1mb250LXN0eWxl
cy13aW4uaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3N0eWxlL3B1c2gtZG93bi1pbXBsaWNpdC1z
dHlsZXMtYXJvdW5kLWxpc3Qtd2luLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zdHlsZS90b2dn
bGUtc3R5bGUtYm9sZC1pdGFsaWMtbWl4ZWQtZWRpdGFiaWxpdHkuaHRtbDoKKyAgICAgICAgKiBl
ZGl0aW5nL3N0eWxlL3RvZ2dsZS1zdHlsZS1ib2xkLWl0YWxpYy5odG1sOgorICAgICAgICAqIGZh
c3QvZXZlbnRzL2JhY2tzcGFjZS1uYXZpZ2F0ZXMtYmFjay5odG1sOgorICAgICAgICAqIGZhc3Qv
Zm9ybXMvc2VsZWN0aW9uLWRpcmVjdGlvbi5odG1sOgorCiAyMDIwLTExLTE1ICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBXZWJSVEMgU0ZyYW1lIHRy
YW5zZm9ybQpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1
cmUtMDAzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2Rl
bGV0aW5nL2RlbGV0ZS1saWdhdHVyZS0wMDMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNjk4MzAp
CisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1saWdhdHVyZS0wMDMtZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zMSw1ICszMSw1IEBAIElmIHRoaXMgdGVzdCBz
dWNjZWVkcywgeW91IGNhbiBzZWUgIuC4p+AKIAog4Lin4LixCiBTdWNjZWVkZWQgZm9yIG1hYwot
U3VjY2VlZGVkIGZvciB3aW4KK1N1Y2NlZWRlZCBmb3Igd2luZG93cwogU3VjY2VlZGVkIGZvciB1
bml4CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1saWdhdHVyZS0w
MDMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0
ZS1saWdhdHVyZS0wMDMuaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZWRp
dGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1cmUtMDAzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTMxLDcgKzMxLDcgQEAKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgICAgIHJ1blRlc3RP
bigibWFjIik7Ci0gICAgICAgICAgICBydW5UZXN0T24oIndpbiIpOworICAgICAgICAgICAgcnVu
VGVzdE9uKCJ3aW5kb3dzIik7CiAgICAgICAgICAgICBydW5UZXN0T24oInVuaXgiKTsKICAgICAg
ICAgfQogICAgICAgICA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRp
bmcvcGFyYWdyYXBoLWluLXByZXNlcnZlTmV3bGluZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9wYXJhZ3JhcGgtaW4tcHJlc2VydmVOZXds
aW5lLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGlu
Zy9kZWxldGluZy9wYXJhZ3JhcGgtaW4tcHJlc2VydmVOZXdsaW5lLWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtNTIsMTIgKzUyLDEyIEBAIGFmdGVyIHVuZG8gb24gbWFjOgogfCAgICI8
I3NlbGVjdGlvbi1hbmNob3I+Zm9vPCNzZWxlY3Rpb24tZm9jdXM+CiBiYXIiCiAKLW9uIHdpbjoK
K29uIHdpbmRvd3M6CiB8IDxwcmU+CiB8ICAgIjwjc2VsZWN0aW9uLWNhcmV0PgogYmFyIgogCi1h
ZnRlciB1bmRvIG9uIHdpbjoKK2FmdGVyIHVuZG8gb24gd2luZG93czoKIHwgPHByZT4KIHwgICAi
PCNzZWxlY3Rpb24tYW5jaG9yPmZvbzwjc2VsZWN0aW9uLWZvY3VzPgogYmFyIgpJbmRleDogTGF5
b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9wYXJhZ3JhcGgtaW4tcHJlc2VydmVOZXdsaW5lLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9wYXJhZ3JhcGgt
aW4tcHJlc2VydmVOZXdsaW5lLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3Rz
L2VkaXRpbmcvZGVsZXRpbmcvcGFyYWdyYXBoLWluLXByZXNlcnZlTmV3bGluZS5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKIE1hcmt1
cC5kZXNjcmlwdGlvbihkZXNjcmlwdGlvbi50ZXh0Q29udGVudCk7CiBNYXJrdXAuZHVtcCgidGVz
dCIsICJpbml0aWFsIHN0YXRlIik7CiBydW5UZXN0c09uKCJtYWMiKTsKLXJ1blRlc3RzT24oIndp
biIpOworcnVuVGVzdHNPbigid2luZG93cyIpOwogcnVuVGVzdHNPbigidW5peCIpOwogPC9zY3Jp
cHQ+CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWVk
aXRpbmctZGlzYWJsZWQtd2luLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGlu
Zy9kZWxldGluZy9zbWFydC1lZGl0aW5nLWRpc2FibGVkLXdpbi5odG1sCShyZXZpc2lvbiAyNjk4
MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWVkaXRpbmctZGlzYWJs
ZWQtd2luLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTgsNyArOCw3IEBAIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgewogICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKHRydWUpOwogfQogaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJu
YWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luJyk7CisgICAgaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luZG93cycpOwogCiBmdW5jdGlvbiBlZGl0aW5n
VGVzdCgpIHsKICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdiIpOwpJ
bmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy93aGl0ZXNwYWNlLXByZS0xLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3doaXRl
c3BhY2UtcHJlLTEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0
cy9lZGl0aW5nL2RlbGV0aW5nL3doaXRlc3BhY2UtcHJlLTEtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC00NiwxMiArNDYsMTIgQEAgYWZ0ZXIgdW5kbyBvbiBtYWM6CiBUaGVyZSBzaG91
bGQgYmUgdGhyZWUgcGFyYWdyYXBocyBpbiB0aGlzIGVkaXRhYmxlIHJlZ2lvbi4KIFRoZSBmaXJz
dCBvbmUgc2hvdWxkIGJlIGVtcHR5LiIKIAotb24gd2luOgorb24gd2luZG93czoKIHwgIjwjc2Vs
ZWN0aW9uLWNhcmV0PgogVGhlcmUgc2hvdWxkIGJlIHRocmVlIHBhcmFncmFwaHMgaW4gdGhpcyBl
ZGl0YWJsZSByZWdpb24uCiBUaGUgZmlyc3Qgb25lIHNob3VsZCBiZSBlbXB0eS4iCiAKLWFmdGVy
IHVuZG8gb24gd2luOgorYWZ0ZXIgdW5kbyBvbiB3aW5kb3dzOgogfCAiPCNzZWxlY3Rpb24tYW5j
aG9yPllvdSBzaG91bGQgbm90IHNlZSB0aGlzIHBhcmFncmFwaCB1bmxlc3MgdGhlIGNvbW1hbmQg
aGFzIGJlZW4gdW5kb25lLjwjc2VsZWN0aW9uLWZvY3VzPgogVGhlcmUgc2hvdWxkIGJlIHRocmVl
IHBhcmFncmFwaHMgaW4gdGhpcyBlZGl0YWJsZSByZWdpb24uCiBUaGUgZmlyc3Qgb25lIHNob3Vs
ZCBiZSBlbXB0eS4iCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3doaXRlc3Bh
Y2UtcHJlLTEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5n
L3doaXRlc3BhY2UtcHJlLTEuaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMv
ZWRpdGluZy9kZWxldGluZy93aGl0ZXNwYWNlLXByZS0xLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTI2LDYgKzI2LDYgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogTWFya3VwLmRlc2NyaXB0aW9u
KGRlc2NyaXB0aW9uLnRleHRDb250ZW50KTsKIE1hcmt1cC5kdW1wKCJ0ZXN0IiwgImluaXRpYWwg
c3RhdGUiKTsKIHJ1blRlc3RzT24oIm1hYyIpOwotcnVuVGVzdHNPbigid2luIik7CitydW5UZXN0
c09uKCJ3aW5kb3dzIik7CiBydW5UZXN0c09uKCJ1bml4Iik7CiA8L3NjcmlwdD4KSW5kZXg6IExh
eW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvcXVlcnktY29tbWFuZC1zdGF0ZS1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9xdWVy
eS1jb21tYW5kLXN0YXRlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0
VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9xdWVyeS1jb21tYW5kLXN0YXRlLWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtMyw3ICszLDcgQEAgVGVzdCB0byBtYWtlIHN1cmUgcXVlcnlD
b21tYW5kU3RhdGUgcmV0dQogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVRlc3RzIGZv
ciB3aW4KK1Rlc3RzIGZvciB3aW5kb3dzCiBQQVNTIHF1ZXJ5Q29tbWFuZFN0YXRlKCJib2xkIikg
cmV0dXJucyBmYWxzZSB3aGVuIHNlbGVjdGluZyBhbGwgb2YgImhlbGxvIgogUEFTUyBxdWVyeUNv
bW1hbmRTdGF0ZSgiYm9sZCIpIHJldHVybnMgZmFsc2Ugd2hlbiBzZWxlY3RpbmcgYWxsIG9mICI8
aT5oZWxsbzwvaT4iCiBQQVNTIHF1ZXJ5Q29tbWFuZFN0YXRlKCJib2xkIikgcmV0dXJucyB0cnVl
IHdoZW4gc2VsZWN0aW5nIGFsbCBvZiAiPGI+aGVsbG88L2I+IgpJbmRleDogTGF5b3V0VGVzdHMv
ZWRpdGluZy9leGVjQ29tbWFuZC9xdWVyeS1jb21tYW5kLXN0YXRlLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9xdWVyeS1jb21tYW5kLXN0YXRlLmh0
bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQv
cXVlcnktY29tbWFuZC1zdGF0ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01NSw2OSArNTUsNjkg
QEAgZnVuY3Rpb24gcnVuVGVzdHMoZWRpdGluZ0JlaGF2aW9yKSB7CiAgICAgICAgIGludGVybmFs
cy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoZWRpdGluZ0JlaGF2aW9yKTsKICAgICBkZWJ1
ZygnVGVzdHMgZm9yICcgKyBlZGl0aW5nQmVoYXZpb3IpCiAKLSAgICB0ZXN0UXVlcnlDb21tYW5k
U3RhdGUoImJvbGQiLCAnaGVsbG8nLCBzZWxlY3RBbGwsIHsnbWFjJzogZmFsc2UsICd3aW4nOiBm
YWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJib2xk
IiwgJzxpPmhlbGxvPC9pPicsIHNlbGVjdEFsbCwgeydtYWMnOiBmYWxzZSwgJ3dpbic6IGZhbHNl
fVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoImJvbGQiLCAn
PGI+aGVsbG88L2I+Jywgc2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW4nOiB0cnVlfVtlZGl0
aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoImJvbGQiLCAnaGVsbG8g
PGI+d29ybGQ8L2I+Jywgc2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2luJzogZmFsc2V9W2Vk
aXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiYm9sZCIsICc8Yj5o
ZWxsbzwvYj4gd29ybGQnLCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dpbic6IGZhbHNlfVtl
ZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoImJvbGQiLCAnaGVs
bG8gPGI+d29ybGQ8L2I+IFdlYktpdCcsIHNlbGVjdFNlY29uZFdvcmQsIHsnbWFjJzogdHJ1ZSwg
J3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlDb21tYW5kU3Rh
dGUoImJvbGQiLCAnPGI+aGVsbG88L2I+IHdvcmxkIDxiPldlYktpdDwvYj4nLCBzZWxlY3RTZWNv
bmRXb3JkLCB7J21hYyc6IGZhbHNlLCAnd2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwot
ICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiYm9sZCIsICc8aT5oZWxsbyA8Yj5oZWxsbzwvYj4g
V2ViS2l0PC9pPicsIHNlbGVjdFNlY29uZFdvcmQsIHsnbWFjJzogdHJ1ZSwgJ3dpbic6IGZhbHNl
fVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoImJvbGQiLCAn
PGI+aGVsbG8gPGk+aGVsbG88L2k+IFdlYktpdDwvYj4nLCBzZWxlY3RTZWNvbmRXb3JkLCB7J21h
Yyc6IHRydWUsICd3aW4nOiB0cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlD
b21tYW5kU3RhdGUoImJvbGQiLCAnPGI+PGRpdj5oZWxsbyA8aT5oZWxsbzwvaT4gV2ViS2l0PC9k
aXY+PC9iPicsIHNlbGVjdFNlY29uZFdvcmQsIHsnbWFjJzogdHJ1ZSwgJ3dpbic6IHRydWV9W2Vk
aXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiYm9sZCIsICc8YiBz
dHlsZT0iZm9udC13ZWlnaHQ6IG5vcm1hbDsiPmhlbGxvPC9iPicsIHNlbGVjdEFsbCwgeydtYWMn
OiBmYWxzZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlD
b21tYW5kU3RhdGUoImJvbGQiLCAnPGkgc3R5bGU9ImZvbnQtd2VpZ2h0OiBib2xkOyI+aGVsbG88
L2k+Jywgc2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW4nOiB0cnVlfVtlZGl0aW5nQmVoYXZp
b3JdKTsKLSAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoImJvbGQiLCAnPGI+aGVsbG88L2I+IHdv
cmxkIDxiPldlYktpdDwvYj4nLCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dpbic6IGZhbHNl
fVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoImJvbGQiLCAn
PGI+aGVsbG88L2I+PGI+IHdvcmxkPC9iPicsIHNlbGVjdEFsbCwgeydtYWMnOiB0cnVlLCAnd2lu
JzogdHJ1ZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJi
b2xkIiwgJzxkaXY+PGI+aGVsbG88L2I+PC9kaXY+PHA+PGI+IFdlYktpdDwvYj48L3A+Jywgc2Vs
ZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW4nOiB0cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLQot
ICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiaXRhbGljIiwgJ2hlbGxvJywgc2VsZWN0QWxsLCB7
J21hYyc6IGZhbHNlLCAnd2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RR
dWVyeUNvbW1hbmRTdGF0ZSgiaXRhbGljIiwgJzxiPmhlbGxvPC9iPicsIHNlbGVjdEFsbCwgeydt
YWMnOiBmYWxzZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVl
cnlDb21tYW5kU3RhdGUoIml0YWxpYyIsICc8aT5oZWxsbzwvaT4nLCBzZWxlY3RBbGwsIHsnbWFj
JzogdHJ1ZSwgJ3dpbic6IHRydWV9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVyeUNv
bW1hbmRTdGF0ZSgiaXRhbGljIiwgJzxpPmhlbGxvPC9pPiB3b3JsZCcsIHNlbGVjdEFsbCwgeydt
YWMnOiB0cnVlLCAnd2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVy
eUNvbW1hbmRTdGF0ZSgiaXRhbGljIiwgJ2hlbGxvIDxpPndvcmxkPC9pPicsIHNlbGVjdEFsbCwg
eydtYWMnOiBmYWxzZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0
UXVlcnlDb21tYW5kU3RhdGUoIml0YWxpYyIsICc8aT48ZGl2PmhlbGxvIHdvcmxkPC9kaXY+PC9p
PicsIHNlbGVjdEFsbCwgeydtYWMnOiB0cnVlLCAnd2luJzogdHJ1ZX1bZWRpdGluZ0JlaGF2aW9y
XSk7Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJpdGFsaWMiLCAnPGRpdiBzdHlsZT0iZm9u
dC1zdHlsZTogaXRhbGljIj5oZWxsbyA8c3BhbiBzdHlsZT0iZm9udC1zdHlsZTogbm9ybWFsOyI+
aGVsbG88L3NwYW4+PC9kaXY+Jywgc2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW4nOiBmYWxz
ZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0KLSAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN1YnNj
cmlwdCIsICdoZWxsbycsIHNlbGVjdEFsbCwgeydtYWMnOiBmYWxzZSwgJ3dpbic6IGZhbHNlfVtl
ZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN1YnNjcmlwdCIs
ICc8c3VwPmhlbGxvPC9zdXA+Jywgc2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2luJzogZmFs
c2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3Vic2Ny
aXB0IiwgJzxzdWI+aGVsbG88L3N1Yj4nLCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dpbic6
IHRydWV9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3Vi
c2NyaXB0IiwgJzxzdWI+aGVsbG88L3N1Yj4gd29ybGQnLCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1
ZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlDb21tYW5k
U3RhdGUoInN1YnNjcmlwdCIsICdoZWxsbyA8c3ViPndvcmxkPC9zdWI+Jywgc2VsZWN0QWxsLCB7
J21hYyc6IGZhbHNlLCAnd2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RR
dWVyeUNvbW1hbmRTdGF0ZSgic3Vic2NyaXB0IiwgJ2hlbGxvIDxzcGFuIHN0eWxlPSJ2ZXJ0aWNh
bC1hbGlnbjogc3ViOyI+d29ybGQ8L3NwYW4+IFdlYktpdCcsIHNlbGVjdFNlY29uZFdvcmQsIHsn
bWFjJzogdHJ1ZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLQotICAgIHRlc3RR
dWVyeUNvbW1hbmRTdGF0ZSgic3VwZXJzY3JpcHQiLCAnaGVsbG8nLCBzZWxlY3RBbGwsIHsnbWFj
JzogZmFsc2UsICd3aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAgdGVzdFF1ZXJ5
Q29tbWFuZFN0YXRlKCJzdXBlcnNjcmlwdCIsICc8c3ViPmhlbGxvPC9zdWI+Jywgc2VsZWN0QWxs
LCB7J21hYyc6IGZhbHNlLCAnd2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRl
c3RRdWVyeUNvbW1hbmRTdGF0ZSgic3VwZXJzY3JpcHQiLCAnPHN1cD5oZWxsbzwvc3VwPicsIHNl
bGVjdEFsbCwgeydtYWMnOiB0cnVlLCAnd2luJzogdHJ1ZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0g
ICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdXBlcnNjcmlwdCIsICc8c3VwPmhlbGxvPC9zdXA+
IHdvcmxkJywgc2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW4nOiBmYWxzZX1bZWRpdGluZ0Jl
aGF2aW9yXSk7Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdXBlcnNjcmlwdCIsICdoZWxs
byA8c3VwPndvcmxkPC9zdXA+Jywgc2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2luJzogZmFs
c2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3VwZXJz
Y3JpcHQiLCAnPHNwYW4gc3R5bGU9InZlcnRpY2FsLWFsaWduOiBzdXBlcjsiPmhlbGxvPC9zcGFu
PjxzcGFuIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogc3ViOyI+d29ybGQ8L3NwYW4+Jywgc2VsZWN0
QWxsLCB7J21hYyc6IHRydWUsICd3aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAg
dGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdXBlcnNjcmlwdCIsICdoZWxsbzxzcGFuIHN0eWxlPSJ2
ZXJ0aWNhbC1hbGlnbjogc3VwZXI7Ij53b3JsZDwvc3Bhbj4nLCBzZWxlY3RBbGwsIHsnbWFjJzog
ZmFsc2UsICd3aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0KLSAgICB0ZXN0UXVlcnlD
b21tYW5kU3RhdGUoInVuZGVybGluZSIsICdoZWxsbycsIHNlbGVjdEFsbCwgeydtYWMnOiBmYWxz
ZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlDb21tYW5k
U3RhdGUoInVuZGVybGluZSIsICc8cz5oZWxsbzwvcz4nLCBzZWxlY3RBbGwsIHsnbWFjJzogZmFs
c2UsICd3aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAgdGVzdFF1ZXJ5Q29tbWFu
ZFN0YXRlKCJ1bmRlcmxpbmUiLCAnPHU+aGVsbG88L3U+Jywgc2VsZWN0QWxsLCB7J21hYyc6IHRy
dWUsICd3aW4nOiB0cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlDb21tYW5k
U3RhdGUoInVuZGVybGluZSIsICc8dT5oZWxsbzwvdT4gd29ybGQnLCBzZWxlY3RBbGwsIHsnbWFj
JzogdHJ1ZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlD
b21tYW5kU3RhdGUoInVuZGVybGluZSIsICdoZWxsbyA8dT53b3JsZDwvdT4nLCBzZWxlY3RBbGws
IHsnbWFjJzogZmFsc2UsICd3aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAgdGVz
dFF1ZXJ5Q29tbWFuZFN0YXRlKCJ1bmRlcmxpbmUiLCAnPHU+PGRpdj5oZWxsbyB3b3JsZDwvZGl2
PjwvdT4nLCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dpbic6IHRydWV9W2VkaXRpbmdCZWhh
dmlvcl0pOwotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgidW5kZXJsaW5lIiwgJzx1PjxzPjxk
aXY+aGVsbG8gd29ybGQgV2ViS2l0PC9kaXY+PC9zPjwvdT4nLCBzZWxlY3RTZWNvbmRXb3JkLCB7
J21hYyc6IHRydWUsICd3aW4nOiB0cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVl
cnlDb21tYW5kU3RhdGUoInVuZGVybGluZSIsICc8cz48dT5oZWxsbzwvdT4gd29ybGQ8L3M+IFdl
YktpdCcsIHNlbGVjdFNlY29uZFdvcmQsIHsnbWFjJzogZmFsc2UsICd3aW4nOiBmYWxzZX1bZWRp
dGluZ0JlaGF2aW9yXSk7Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJ1bmRlcmxpbmUiLCAn
PHU+PHM+aGVsbG88L3M+IHdvcmxkPC91PiBXZWJLaXQnLCBzZWxlY3RTZWNvbmRXb3JkLCB7J21h
Yyc6IHRydWUsICd3aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAgdGVzdFF1ZXJ5
Q29tbWFuZFN0YXRlKCJ1bmRlcmxpbmUiLCAnPHM+aGVsbG8gPHU+d29ybGQ8L3M+IFdlYktpdDwv
dT4nLCBzZWxlY3RTZWNvbmRXb3JkLCB7J21hYyc6IHRydWUsICd3aW4nOiB0cnVlfVtlZGl0aW5n
QmVoYXZpb3JdKTsKLQotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3RyaWtlVGhyb3VnaCIs
ICdoZWxsbycsIHNlbGVjdEFsbCwgeydtYWMnOiBmYWxzZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5n
QmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN0cmlrZVRocm91Z2giLCAn
PHU+aGVsbG88L3U+Jywgc2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2luJzogZmFsc2V9W2Vk
aXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3RyaWtlVGhyb3Vn
aCIsICc8cz5oZWxsbzwvcz4nLCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dpbic6IHRydWV9
W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3RyaWtlVGhy
b3VnaCIsICc8cz5oZWxsbzwvcz4gd29ybGQnLCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dp
bic6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUo
InN0cmlrZVRocm91Z2giLCAnaGVsbG8gPHM+d29ybGQ8L3M+Jywgc2VsZWN0QWxsLCB7J21hYyc6
IGZhbHNlLCAnd2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVyeUNv
bW1hbmRTdGF0ZSgic3RyaWtlVGhyb3VnaCIsICc8cz48ZGl2PmhlbGxvIHdvcmxkPC9kaXY+PC9z
PicsIHNlbGVjdEFsbCwgeydtYWMnOiB0cnVlLCAnd2luJzogdHJ1ZX1bZWRpdGluZ0JlaGF2aW9y
XSk7Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdHJpa2VUaHJvdWdoIiwgJzxzPjx1Pjxk
aXY+aGVsbG8gd29ybGQgV2ViS2l0PC9kaXY+PC91Pjwvcz4nLCBzZWxlY3RTZWNvbmRXb3JkLCB7
J21hYyc6IHRydWUsICd3aW4nOiB0cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVl
cnlDb21tYW5kU3RhdGUoInN0cmlrZVRocm91Z2giLCAnPHU+PHM+aGVsbG88L3M+IHdvcmxkPC91
PiBXZWJLaXQnLCBzZWxlY3RTZWNvbmRXb3JkLCB7J21hYyc6IGZhbHNlLCAnd2luJzogZmFsc2V9
W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3RyaWtlVGhy
b3VnaCIsICdoZWxsbyA8cz53b3JsZCBXZWJLaXQ8L3M+Jywgc2VsZWN0U2Vjb25kV29yZCwgeydt
YWMnOiB0cnVlLCAnd2luJzogdHJ1ZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAgdGVzdFF1ZXJ5
Q29tbWFuZFN0YXRlKCJzdHJpa2VUaHJvdWdoIiwgJ2hlbGxvIDxzPndvcmxkIFdlYktpdDwvcz4n
LCBzZWxlY3RGaXJzdFR3b1dvcmRzLCB7J21hYyc6IGZhbHNlLCAnd2luJzogdHJ1ZX1bZWRpdGlu
Z0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJib2xkIiwgJ2hlbGxvJywg
c2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2luZG93cyc6IGZhbHNlfVtlZGl0aW5nQmVoYXZp
b3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoImJvbGQiLCAnPGk+aGVsbG88L2k+Jywg
c2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2luZG93cyc6IGZhbHNlfVtlZGl0aW5nQmVoYXZp
b3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoImJvbGQiLCAnPGI+aGVsbG88L2I+Jywg
c2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW5kb3dzJzogdHJ1ZX1bZWRpdGluZ0JlaGF2aW9y
XSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJib2xkIiwgJ2hlbGxvIDxiPndvcmxkPC9i
PicsIHNlbGVjdEFsbCwgeydtYWMnOiBmYWxzZSwgJ3dpbmRvd3MnOiBmYWxzZX1bZWRpdGluZ0Jl
aGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJib2xkIiwgJzxiPmhlbGxvPC9i
PiB3b3JsZCcsIHNlbGVjdEFsbCwgeydtYWMnOiB0cnVlLCAnd2luZG93cyc6IGZhbHNlfVtlZGl0
aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoImJvbGQiLCAnaGVsbG8g
PGI+d29ybGQ8L2I+IFdlYktpdCcsIHNlbGVjdFNlY29uZFdvcmQsIHsnbWFjJzogdHJ1ZSwgJ3dp
bmRvd3MnOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0
YXRlKCJib2xkIiwgJzxiPmhlbGxvPC9iPiB3b3JsZCA8Yj5XZWJLaXQ8L2I+Jywgc2VsZWN0U2Vj
b25kV29yZCwgeydtYWMnOiBmYWxzZSwgJ3dpbmRvd3MnOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9y
XSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJib2xkIiwgJzxpPmhlbGxvIDxiPmhlbGxv
PC9iPiBXZWJLaXQ8L2k+Jywgc2VsZWN0U2Vjb25kV29yZCwgeydtYWMnOiB0cnVlLCAnd2luZG93
cyc6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUo
ImJvbGQiLCAnPGI+aGVsbG8gPGk+aGVsbG88L2k+IFdlYktpdDwvYj4nLCBzZWxlY3RTZWNvbmRX
b3JkLCB7J21hYyc6IHRydWUsICd3aW5kb3dzJzogdHJ1ZX1bZWRpdGluZ0JlaGF2aW9yXSk7Cisg
ICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJib2xkIiwgJzxiPjxkaXY+aGVsbG8gPGk+aGVsbG88
L2k+IFdlYktpdDwvZGl2PjwvYj4nLCBzZWxlY3RTZWNvbmRXb3JkLCB7J21hYyc6IHRydWUsICd3
aW5kb3dzJzogdHJ1ZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0
YXRlKCJib2xkIiwgJzxiIHN0eWxlPSJmb250LXdlaWdodDogbm9ybWFsOyI+aGVsbG88L2I+Jywg
c2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2luZG93cyc6IGZhbHNlfVtlZGl0aW5nQmVoYXZp
b3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoImJvbGQiLCAnPGkgc3R5bGU9ImZvbnQt
d2VpZ2h0OiBib2xkOyI+aGVsbG88L2k+Jywgc2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW5k
b3dzJzogdHJ1ZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRl
KCJib2xkIiwgJzxiPmhlbGxvPC9iPiB3b3JsZCA8Yj5XZWJLaXQ8L2I+Jywgc2VsZWN0QWxsLCB7
J21hYyc6IHRydWUsICd3aW5kb3dzJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRl
c3RRdWVyeUNvbW1hbmRTdGF0ZSgiYm9sZCIsICc8Yj5oZWxsbzwvYj48Yj4gd29ybGQ8L2I+Jywg
c2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW5kb3dzJzogdHJ1ZX1bZWRpdGluZ0JlaGF2aW9y
XSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJib2xkIiwgJzxkaXY+PGI+aGVsbG88L2I+
PC9kaXY+PHA+PGI+IFdlYktpdDwvYj48L3A+Jywgc2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3
aW5kb3dzJzogdHJ1ZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisKKyAgICB0ZXN0UXVlcnlDb21tYW5k
U3RhdGUoIml0YWxpYyIsICdoZWxsbycsIHNlbGVjdEFsbCwgeydtYWMnOiBmYWxzZSwgJ3dpbmRv
d3MnOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRl
KCJpdGFsaWMiLCAnPGI+aGVsbG88L2I+Jywgc2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2lu
ZG93cyc6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3Rh
dGUoIml0YWxpYyIsICc8aT5oZWxsbzwvaT4nLCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dp
bmRvd3MnOiB0cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3Rh
dGUoIml0YWxpYyIsICc8aT5oZWxsbzwvaT4gd29ybGQnLCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1
ZSwgJ3dpbmRvd3MnOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29t
bWFuZFN0YXRlKCJpdGFsaWMiLCAnaGVsbG8gPGk+d29ybGQ8L2k+Jywgc2VsZWN0QWxsLCB7J21h
Yyc6IGZhbHNlLCAnd2luZG93cyc6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0
UXVlcnlDb21tYW5kU3RhdGUoIml0YWxpYyIsICc8aT48ZGl2PmhlbGxvIHdvcmxkPC9kaXY+PC9p
PicsIHNlbGVjdEFsbCwgeydtYWMnOiB0cnVlLCAnd2luZG93cyc6IHRydWV9W2VkaXRpbmdCZWhh
dmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiaXRhbGljIiwgJzxkaXYgc3R5bGU9
ImZvbnQtc3R5bGU6IGl0YWxpYyI+aGVsbG8gPHNwYW4gc3R5bGU9ImZvbnQtc3R5bGU6IG5vcm1h
bDsiPmhlbGxvPC9zcGFuPjwvZGl2PicsIHNlbGVjdEFsbCwgeydtYWMnOiB0cnVlLCAnd2luZG93
cyc6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0
ZSgic3Vic2NyaXB0IiwgJ2hlbGxvJywgc2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2luZG93
cyc6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUo
InN1YnNjcmlwdCIsICc8c3VwPmhlbGxvPC9zdXA+Jywgc2VsZWN0QWxsLCB7J21hYyc6IGZhbHNl
LCAnd2luZG93cyc6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21t
YW5kU3RhdGUoInN1YnNjcmlwdCIsICc8c3ViPmhlbGxvPC9zdWI+Jywgc2VsZWN0QWxsLCB7J21h
Yyc6IHRydWUsICd3aW5kb3dzJzogdHJ1ZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1
ZXJ5Q29tbWFuZFN0YXRlKCJzdWJzY3JpcHQiLCAnPHN1Yj5oZWxsbzwvc3ViPiB3b3JsZCcsIHNl
bGVjdEFsbCwgeydtYWMnOiB0cnVlLCAnd2luZG93cyc6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3Jd
KTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN1YnNjcmlwdCIsICdoZWxsbyA8c3ViPndv
cmxkPC9zdWI+Jywgc2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2luZG93cyc6IGZhbHNlfVtl
ZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN1YnNjcmlwdCIs
ICdoZWxsbyA8c3BhbiBzdHlsZT0idmVydGljYWwtYWxpZ246IHN1YjsiPndvcmxkPC9zcGFuPiBX
ZWJLaXQnLCBzZWxlY3RTZWNvbmRXb3JkLCB7J21hYyc6IHRydWUsICd3aW5kb3dzJzogZmFsc2V9
W2VkaXRpbmdCZWhhdmlvcl0pOworCisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdXBlcnNj
cmlwdCIsICdoZWxsbycsIHNlbGVjdEFsbCwgeydtYWMnOiBmYWxzZSwgJ3dpbmRvd3MnOiBmYWxz
ZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdXBlcnNj
cmlwdCIsICc8c3ViPmhlbGxvPC9zdWI+Jywgc2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2lu
ZG93cyc6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3Rh
dGUoInN1cGVyc2NyaXB0IiwgJzxzdXA+aGVsbG88L3N1cD4nLCBzZWxlY3RBbGwsIHsnbWFjJzog
dHJ1ZSwgJ3dpbmRvd3MnOiB0cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlD
b21tYW5kU3RhdGUoInN1cGVyc2NyaXB0IiwgJzxzdXA+aGVsbG88L3N1cD4gd29ybGQnLCBzZWxl
Y3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dpbmRvd3MnOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7
CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdXBlcnNjcmlwdCIsICdoZWxsbyA8c3VwPndv
cmxkPC9zdXA+Jywgc2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2luZG93cyc6IGZhbHNlfVtl
ZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN1cGVyc2NyaXB0
IiwgJzxzcGFuIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogc3VwZXI7Ij5oZWxsbzwvc3Bhbj48c3Bh
biBzdHlsZT0idmVydGljYWwtYWxpZ246IHN1YjsiPndvcmxkPC9zcGFuPicsIHNlbGVjdEFsbCwg
eydtYWMnOiB0cnVlLCAnd2luZG93cyc6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0
ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN1cGVyc2NyaXB0IiwgJ2hlbGxvPHNwYW4gc3R5bGU9InZl
cnRpY2FsLWFsaWduOiBzdXBlcjsiPndvcmxkPC9zcGFuPicsIHNlbGVjdEFsbCwgeydtYWMnOiBm
YWxzZSwgJ3dpbmRvd3MnOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisKKyAgICB0ZXN0UXVl
cnlDb21tYW5kU3RhdGUoInVuZGVybGluZSIsICdoZWxsbycsIHNlbGVjdEFsbCwgeydtYWMnOiBm
YWxzZSwgJ3dpbmRvd3MnOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5
Q29tbWFuZFN0YXRlKCJ1bmRlcmxpbmUiLCAnPHM+aGVsbG88L3M+Jywgc2VsZWN0QWxsLCB7J21h
Yyc6IGZhbHNlLCAnd2luZG93cyc6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0
UXVlcnlDb21tYW5kU3RhdGUoInVuZGVybGluZSIsICc8dT5oZWxsbzwvdT4nLCBzZWxlY3RBbGws
IHsnbWFjJzogdHJ1ZSwgJ3dpbmRvd3MnOiB0cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0
ZXN0UXVlcnlDb21tYW5kU3RhdGUoInVuZGVybGluZSIsICc8dT5oZWxsbzwvdT4gd29ybGQnLCBz
ZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dpbmRvd3MnOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9y
XSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJ1bmRlcmxpbmUiLCAnaGVsbG8gPHU+d29y
bGQ8L3U+Jywgc2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2luZG93cyc6IGZhbHNlfVtlZGl0
aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInVuZGVybGluZSIsICc8
dT48ZGl2PmhlbGxvIHdvcmxkPC9kaXY+PC91PicsIHNlbGVjdEFsbCwgeydtYWMnOiB0cnVlLCAn
d2luZG93cyc6IHRydWV9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRT
dGF0ZSgidW5kZXJsaW5lIiwgJzx1PjxzPjxkaXY+aGVsbG8gd29ybGQgV2ViS2l0PC9kaXY+PC9z
PjwvdT4nLCBzZWxlY3RTZWNvbmRXb3JkLCB7J21hYyc6IHRydWUsICd3aW5kb3dzJzogdHJ1ZX1b
ZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJ1bmRlcmxpbmUi
LCAnPHM+PHU+aGVsbG88L3U+IHdvcmxkPC9zPiBXZWJLaXQnLCBzZWxlY3RTZWNvbmRXb3JkLCB7
J21hYyc6IGZhbHNlLCAnd2luZG93cyc6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0
ZXN0UXVlcnlDb21tYW5kU3RhdGUoInVuZGVybGluZSIsICc8dT48cz5oZWxsbzwvcz4gd29ybGQ8
L3U+IFdlYktpdCcsIHNlbGVjdFNlY29uZFdvcmQsIHsnbWFjJzogdHJ1ZSwgJ3dpbmRvd3MnOiBm
YWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJ1bmRl
cmxpbmUiLCAnPHM+aGVsbG8gPHU+d29ybGQ8L3M+IFdlYktpdDwvdT4nLCBzZWxlY3RTZWNvbmRX
b3JkLCB7J21hYyc6IHRydWUsICd3aW5kb3dzJzogdHJ1ZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisK
KyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN0cmlrZVRocm91Z2giLCAnaGVsbG8nLCBzZWxl
Y3RBbGwsIHsnbWFjJzogZmFsc2UsICd3aW5kb3dzJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0p
OworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3RyaWtlVGhyb3VnaCIsICc8dT5oZWxsbzwv
dT4nLCBzZWxlY3RBbGwsIHsnbWFjJzogZmFsc2UsICd3aW5kb3dzJzogZmFsc2V9W2VkaXRpbmdC
ZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3RyaWtlVGhyb3VnaCIsICc8
cz5oZWxsbzwvcz4nLCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dpbmRvd3MnOiB0cnVlfVtl
ZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN0cmlrZVRocm91
Z2giLCAnPHM+aGVsbG88L3M+IHdvcmxkJywgc2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW5k
b3dzJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0
ZSgic3RyaWtlVGhyb3VnaCIsICdoZWxsbyA8cz53b3JsZDwvcz4nLCBzZWxlY3RBbGwsIHsnbWFj
JzogZmFsc2UsICd3aW5kb3dzJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RR
dWVyeUNvbW1hbmRTdGF0ZSgic3RyaWtlVGhyb3VnaCIsICc8cz48ZGl2PmhlbGxvIHdvcmxkPC9k
aXY+PC9zPicsIHNlbGVjdEFsbCwgeydtYWMnOiB0cnVlLCAnd2luZG93cyc6IHRydWV9W2VkaXRp
bmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3RyaWtlVGhyb3VnaCIs
ICc8cz48dT48ZGl2PmhlbGxvIHdvcmxkIFdlYktpdDwvZGl2PjwvdT48L3M+Jywgc2VsZWN0U2Vj
b25kV29yZCwgeydtYWMnOiB0cnVlLCAnd2luZG93cyc6IHRydWV9W2VkaXRpbmdCZWhhdmlvcl0p
OworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3RyaWtlVGhyb3VnaCIsICc8dT48cz5oZWxs
bzwvcz4gd29ybGQ8L3U+IFdlYktpdCcsIHNlbGVjdFNlY29uZFdvcmQsIHsnbWFjJzogZmFsc2Us
ICd3aW5kb3dzJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1h
bmRTdGF0ZSgic3RyaWtlVGhyb3VnaCIsICdoZWxsbyA8cz53b3JsZCBXZWJLaXQ8L3M+Jywgc2Vs
ZWN0U2Vjb25kV29yZCwgeydtYWMnOiB0cnVlLCAnd2luZG93cyc6IHRydWV9W2VkaXRpbmdCZWhh
dmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3RyaWtlVGhyb3VnaCIsICdoZWxs
byA8cz53b3JsZCBXZWJLaXQ8L3M+Jywgc2VsZWN0Rmlyc3RUd29Xb3JkcywgeydtYWMnOiBmYWxz
ZSwgJ3dpbmRvd3MnOiB0cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsKIH0KIAotcnVuVGVzdHMoJ3dp
bicpOworcnVuVGVzdHMoJ3dpbmRvd3MnKTsKIGRlYnVnKCcnKQogcnVuVGVzdHMoJ21hYycpOwog
CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3F1ZXJ5LXRleHQtYWxpZ25t
ZW50LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWND
b21tYW5kL3F1ZXJ5LXRleHQtYWxpZ25tZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjY5ODMw
KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9xdWVyeS10ZXh0LWFsaWdubWVu
dC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAgUEFTUyBxdWVy
eUNvbW1hbmQoJ2Zvcm1hdCcpIHJldHVybnMgImNlbgogUEFTUyBxdWVyeUNvbW1hbmQoJ2Zvcm1h
dCcpIHJldHVybnMgImxlZnQiIHdoZW4gc2VsZWN0aW5nIGZpcnN0IHBvc2l0aW9uIG9mICI8ZGl2
IGFsaWduPSJsZWZ0Ij5oZWxsbzwvZGl2PiIKIFBBU1MgcXVlcnlDb21tYW5kKCdmb3JtYXQnKSBy
ZXR1cm5zICJyaWdodCIgd2hlbiBzZWxlY3RpbmcgZmlyc3QgcG9zaXRpb24gb2YgIjxkaXYgYWxp
Z249InJpZ2h0Ij5oZWxsbzwvZGl2PiIKIAotVGVzdHMgZm9yIHdpbgorVGVzdHMgZm9yIHdpbmRv
d3MKIFBBU1MgcXVlcnlDb21tYW5kKCdmb3JtYXQnKSByZXR1cm5zICJsZWZ0IiB3aGVuIHNlbGVj
dGluZyBtaWRkbGUgb2YgIjxwPmhlbGxvPC9wPjxwPndvcmxkPC9wPiIKIFBBU1MgcXVlcnlDb21t
YW5kKCdmb3JtYXQnKSByZXR1cm5zICIiIHdoZW4gc2VsZWN0aW5nIG1pZGRsZSBvZiAiPHAgYWxp
Z249InJpZ2h0Ij5oZWxsbzwvcD48cD53b3JsZDwvcD4iCiBQQVNTIHF1ZXJ5Q29tbWFuZCgnZm9y
bWF0JykgcmV0dXJucyAibGVmdCIgd2hlbiBzZWxlY3RpbmcgbWlkZGxlIG9mICI8cD5oZWxsbzwv
cD48cCBhbGlnbj0ibGVmdCI+d29ybGQ8L3A+IgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9l
eGVjQ29tbWFuZC9xdWVyeS10ZXh0LWFsaWdubWVudC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvcXVlcnktdGV4dC1hbGlnbm1lbnQuaHRtbAkocmV2
aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9xdWVyeS10
ZXh0LWFsaWdubWVudC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC05NiwyMSArOTYsMjEgQEAgZnVu
Y3Rpb24gcnVuUmFuZ2VUZXN0cyhlZGl0aW5nQmVoYXZpb3IpCiAgICAgZGVidWcoJ1Rlc3RzIGZv
ciAnICsgZWRpdGluZ0JlaGF2aW9yKTsKIAogICAgIHF1ZXJ5VGV4dEFsaWdubWVudChzZWxlY3RN
aWRkbGVPZkhlbGxvV29ybGQsICc8cD5oZWxsbzwvcD48cD53b3JsZDwvcD4nLCAnbGVmdCcpOwot
ICAgIHF1ZXJ5VGV4dEFsaWdubWVudChzZWxlY3RNaWRkbGVPZkhlbGxvV29ybGQsICc8cCBhbGln
bj0icmlnaHQiPmhlbGxvPC9wPjxwPndvcmxkPC9wPicsIHsnbWFjJzogJ3JpZ2h0JywgJ3dpbic6
ICcnfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICBxdWVyeVRleHRBbGlnbm1lbnQoc2VsZWN0TWlk
ZGxlT2ZIZWxsb1dvcmxkLCAnPHAgYWxpZ249InJpZ2h0Ij5oZWxsbzwvcD48cD53b3JsZDwvcD4n
LCB7J21hYyc6ICdyaWdodCcsICd3aW5kb3dzJzogJyd9W2VkaXRpbmdCZWhhdmlvcl0pOwogICAg
IHF1ZXJ5VGV4dEFsaWdubWVudChzZWxlY3RNaWRkbGVPZkhlbGxvV29ybGQsICc8cD5oZWxsbzwv
cD48cCBhbGlnbj0ibGVmdCI+d29ybGQ8L3A+JywgJ2xlZnQnKTsKLSAgICBxdWVyeVRleHRBbGln
bm1lbnQoc2VsZWN0TWlkZGxlT2ZIZWxsb1dvcmxkLCAnPHAgYWxpZ249ImxlZnQiPmhlbGxvPC9w
PjxwIGFsaWduPSJyaWdodCI+d29ybGQ8L3A+JywgeydtYWMnOiAnbGVmdCcsICd3aW4nOiAnJ31b
ZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgcXVlcnlUZXh0QWxpZ25tZW50KHNlbGVjdE1pZGRsZU9m
SGVsbG9Xb3JsZCwgJzxwIGFsaWduPSJsZWZ0Ij5oZWxsbzwvcD48cCBhbGlnbj0icmlnaHQiPndv
cmxkPC9wPicsIHsnbWFjJzogJ2xlZnQnLCAnd2luZG93cyc6ICcnfVtlZGl0aW5nQmVoYXZpb3Jd
KTsKICAgICBxdWVyeVRleHRBbGlnbm1lbnQoc2VsZWN0TWlkZGxlT2ZIZWxsb1dvcmxkLCAnPHAg
YWxpZ249ImNlbnRlciI+aGVsbG88L3A+PHAgYWxpZ249ImNlbnRlciI+d29ybGQ8L3A+JywgJ2Nl
bnRlcicpOwogICAgIHF1ZXJ5VGV4dEFsaWdubWVudChzZWxlY3RNaWRkbGVPZkhlbGxvV29ybGQs
ICc8cCBhbGlnbj0ianVzdGlmeSI+aGVsbG88L3A+PHAgYWxpZ249Imp1c3RpZnkiPndvcmxkPC9w
PicsICdmdWxsJyk7CiAgICAgcXVlcnlUZXh0QWxpZ25tZW50KHNlbGVjdE1pZGRsZU9mSGVsbG9X
b3JsZCwgJzxwIGFsaWduPSJsZWZ0Ij5oZWxsbzwvcD48cCBhbGlnbj0ibGVmdCI+d29ybGQ8L3A+
JywgJ2xlZnQnKTsKICAgICBxdWVyeVRleHRBbGlnbm1lbnQoc2VsZWN0TWlkZGxlT2ZIZWxsb1dv
cmxkLCAnPHAgYWxpZ249InJpZ2h0Ij5oZWxsbzwvcD48cCBhbGlnbj0icmlnaHQiPndvcmxkPC9w
PicsICdyaWdodCcpOwotICAgIHF1ZXJ5VGV4dEFsaWdubWVudChzZWxlY3RNaWRkbGVPZkhlbGxv
V29ybGQsICc8ZGl2IGFsaWduPSJyaWdodCI+aGVsbG88cCBhbGlnbj0ibGVmdCI+d29ybGQ8L3A+
PC9kaXY+JywgeydtYWMnOiAncmlnaHQnLCAnd2luJzogJyd9W2VkaXRpbmdCZWhhdmlvcl0pOwot
ICAgIHF1ZXJ5VGV4dEFsaWdubWVudChzZWxlY3RNaWRkbGVPZkhlbGxvV29ybGQsICc8ZGl2IGFs
aWduPSJsZWZ0Ij48cCBhbGlnbj0iY2VudGVyIj53b3JsZDwvcD5oZWxsbzwvZGl2PicsIHsnbWFj
JzogJ2NlbnRlcicsICd3aW4nOiAnJ31bZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAgcXVlcnlUZXh0
QWxpZ25tZW50KHNlbGVjdE1pZGRsZU9mSGVsbG9Xb3JsZCwgJzxwIGFsaWduPSJsZWZ0Ij5oZWxs
bzwvcD48cD53PC9wPjxwIGFsaWduPSJsZWZ0Ij5vcmxkPC9wPicsIHsnbWFjJzogJ2xlZnQnLCAn
d2luJzogJ2xlZnQnfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICBxdWVyeVRleHRBbGlnbm1lbnQo
c2VsZWN0TWlkZGxlT2ZIZWxsb1dvcmxkLCAnPHAgYWxpZ249Imp1c3RpZnkiPmhlbGxvPC9wPjxw
Pnc8L3A+PHAgYWxpZ249ImNlbnRlciI+b3JsZDwvcD4nLCB7J21hYyc6ICdmdWxsJywgJ3dpbic6
ICcnfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICBxdWVyeVRleHRBbGlnbm1lbnQoc2VsZWN0TWlk
ZGxlT2ZIZWxsb1dvcmxkLCAnPGRpdiBhbGlnbj0icmlnaHQiPmhlbGxvPHAgYWxpZ249ImxlZnQi
PndvcmxkPC9wPjwvZGl2PicsIHsnbWFjJzogJ3JpZ2h0JywgJ3dpbmRvd3MnOiAnJ31bZWRpdGlu
Z0JlaGF2aW9yXSk7CisgICAgcXVlcnlUZXh0QWxpZ25tZW50KHNlbGVjdE1pZGRsZU9mSGVsbG9X
b3JsZCwgJzxkaXYgYWxpZ249ImxlZnQiPjxwIGFsaWduPSJjZW50ZXIiPndvcmxkPC9wPmhlbGxv
PC9kaXY+JywgeydtYWMnOiAnY2VudGVyJywgJ3dpbmRvd3MnOiAnJ31bZWRpdGluZ0JlaGF2aW9y
XSk7CisgICAgcXVlcnlUZXh0QWxpZ25tZW50KHNlbGVjdE1pZGRsZU9mSGVsbG9Xb3JsZCwgJzxw
IGFsaWduPSJsZWZ0Ij5oZWxsbzwvcD48cD53PC9wPjxwIGFsaWduPSJsZWZ0Ij5vcmxkPC9wPics
IHsnbWFjJzogJ2xlZnQnLCAnd2luZG93cyc6ICdsZWZ0J31bZWRpdGluZ0JlaGF2aW9yXSk7Cisg
ICAgcXVlcnlUZXh0QWxpZ25tZW50KHNlbGVjdE1pZGRsZU9mSGVsbG9Xb3JsZCwgJzxwIGFsaWdu
PSJqdXN0aWZ5Ij5oZWxsbzwvcD48cD53PC9wPjxwIGFsaWduPSJjZW50ZXIiPm9ybGQ8L3A+Jywg
eydtYWMnOiAnZnVsbCcsICd3aW5kb3dzJzogJyd9W2VkaXRpbmdCZWhhdmlvcl0pOwogfQogCiBk
ZWJ1ZygnJyk7Ci1ydW5SYW5nZVRlc3RzKCd3aW4nKTsKK3J1blJhbmdlVGVzdHMoJ3dpbmRvd3Mn
KTsKIGRlYnVnKCcnKTsKIHJ1blJhbmdlVGVzdHMoJ21hYycpOwogCkluZGV4OiBMYXlvdXRUZXN0
cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3JlbW92ZS1mb3JtYXQtbXVsdGlwbGUtZWxlbWVudHMtd2lu
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9yZW1v
dmUtZm9ybWF0LW11bHRpcGxlLWVsZW1lbnRzLXdpbi5odG1sCShyZXZpc2lvbiAyNjk4MzApCisr
KyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3JlbW92ZS1mb3JtYXQtbXVsdGlwbGUt
ZWxlbWVudHMtd2luLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEzLDcgKzEzLDcgQEAgdmFyIHRl
c3RDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZQogdGVzdENvbnRhaW5lci5jb250ZW50
RWRpdGFibGUgPSB0cnVlOwogZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZXN0Q29udGFpbmVy
KTsKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0
aW5nQmVoYXZpb3IoJ3dpbicpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVo
YXZpb3IoJ3dpbmRvd3MnKTsKIAogZnVuY3Rpb24gdGVzdFJlbW92ZUZvcm1hdChpbml0aWFsQ29u
dGVudHMsIHNlbGVjdG9yLCBleHBlY3RlZCkKIHsKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcv
ZXhlY0NvbW1hbmQvdG9nZ2xlLWNvbXBvdW5kLXN0eWxlcy1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC90b2dnbGUtY29tcG91bmQtc3R5
bGVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGlu
Zy9leGVjQ29tbWFuZC90b2dnbGUtY29tcG91bmQtc3R5bGVzLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMTcsNyArMTcsNyBAQCBQQVNTIG9uZSBpdGFsaWMgY29tbWFuZCBjb252ZXJ0
ZWQgIjxzcGFuCiBQQVNTIG9uZSBpdGFsaWMgY29tbWFuZCBjb252ZXJ0ZWQgIjxwPjxpPmhlbGxv
PC9pPjxzcGFuIHN0eWxlPSdmb250LXN0eWxlOml0YWxpYzsnPndvcmxkPC9zcGFuPjwvcD4iIHRv
ICI8cD5oZWxsb3dvcmxkPC9wPgogUEFTUyBvbmUgaXRhbGljIGNvbW1hbmQgY29udmVydGVkICI8
cz48Yj5oZWxsbzxpPiB3b3JsZDwvaT48L2I+PC9zPiIgdG8gIjxzPjxiPjxpPmhlbGxvIHdvcmxk
PC9pPjwvYj48L3M+CiAKLVBsYXRmb3JtOiB3aW4KK1BsYXRmb3JtOiB3aW5kb3dzCiBQQVNTIG9u
ZSBib2xkIGNvbW1hbmQgY29udmVydGVkICI8dT48Yj5oZWxsbzwvYj4gd29ybGQ8L3U+IiB0byAi
PHU+PGI+aGVsbG8gd29ybGQ8L2I+PC91PgogUEFTUyBvbmUgYm9sZCBjb21tYW5kIGNvbnZlcnRl
ZCAiPGI+aGVsbG8gPC9iPndvcmxkIiB0byAiPGI+aGVsbG8gd29ybGQ8L2I+CiBQQVNTIG9uZSBi
b2xkIGNvbW1hbmQgY29udmVydGVkICI8dT48Yj5oZWxsbyA8L2I+PC91PndvcmxkIiB0byAiPGI+
PHU+aGVsbG8gPC91PndvcmxkPC9iPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29t
bWFuZC90b2dnbGUtY29tcG91bmQtc3R5bGVzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZWRpdGluZy9leGVjQ29tbWFuZC90b2dnbGUtY29tcG91bmQtc3R5bGVzLmh0bWwJKHJldmlz
aW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvdG9nZ2xlLWNv
bXBvdW5kLXN0eWxlcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3ICsyNSw3IEBAIGZ1bmN0
aW9uIHRlc3RTaW5nbGVUb2dnbGUodG9nZ2xlQ29tbWFuZCwKICAgICAgICAgdGVzdEZhaWxlZChh
Y3Rpb24gKyAnIiwgZXhwZWN0ZWQgIicgKyBleHBlY3RlZENvbnRlbnRzICsgJyInKTsKIH0KIAot
cGxhdGZvcm1zID0gWydtYWMnLCAnd2luJywgJ3VuaXgnXTsKK3BsYXRmb3JtcyA9IFsnbWFjJywg
J3dpbmRvd3MnLCAndW5peCddOwogCiBmb3IgKHZhciBpID0gMDsgaSA8IHBsYXRmb3Jtcy5sZW5n
dGg7IGkrKykgewogICAgIHBsYXRmb3JtID0gcGxhdGZvcm1zW2ldOwpJbmRleDogTGF5b3V0VGVz
dHMvZWRpdGluZy9leGVjQ29tbWFuZC90b2dnbGUtbGluay13aW4uaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3RvZ2dsZS1saW5rLXdpbi5odG1sCShy
ZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3RvZ2ds
ZS1saW5rLXdpbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMyw3ICsxMyw3IEBAIHZhciB0ZXN0
Q29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWUKIHRlc3RDb250YWluZXIuY29udGVudEVk
aXRhYmxlID0gdHJ1ZTsKIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGVzdENvbnRhaW5lcik7
CiBpZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGlu
Z0JlaGF2aW9yKCJ3aW4iKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2
aW9yKCJ3aW5kb3dzIik7CiAKIGZ1bmN0aW9uIHRlc3RTaW5nbGVUb2dnbGUodG9nZ2xlQ29tbWFu
ZCwgaW5pdGlhbENvbnRlbnRzLCBzZWxlY3RvciwgZXhwZWN0ZWRDb250ZW50cykKIHsKSW5kZXg6
IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvdG9nZ2xlLXVubGluay13aW4uaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3RvZ2dsZS11bmxp
bmstd2luLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhl
Y0NvbW1hbmQvdG9nZ2xlLXVubGluay13aW4uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNTEsNyAr
NTEsNyBAQCBmdW5jdGlvbiBzZWxlY3RMYXN0V29yZChjb250YWluZXIpIHsKIH0KIAogaWYgKHdp
bmRvdy5pbnRlcm5hbHMpCi0gICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9y
KCd3aW4nKTsKKyAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbmRv
d3MnKTsKIAogdGVzdFNpbmdsZVRvZ2dsZSgidW5saW5rIiwgJ2hlbGxvIDxiPndvcmxkPC9iPics
IHNlbGVjdEFsbCwgJ2hlbGxvIDxiPndvcmxkPC9iPicpOwogdGVzdFNpbmdsZVRvZ2dsZSgidW5s
aW5rIiwgJzxhIGhyZWY9Imh0dHA6Ly93ZWJraXQub3JnLyI+PHU+aGVsbG8gd29ybGQ8L3U+PC9h
PicsIHNlbGVjdEFsbCwgJzx1PmhlbGxvIHdvcmxkPC91PicpOwpJbmRleDogTGF5b3V0VGVzdHMv
ZWRpdGluZy9zZWxlY3Rpb24vNTE5NTE2Ni0xLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZWRpdGluZy9zZWxlY3Rpb24vNTE5NTE2Ni0xLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysr
IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uLzUxOTUxNjYtMS5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC00NCw3ICs0NCw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QocGxhdGZvcm0sIGV4cGVjdGVk
VGV4dCkKIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCkKICAgICBydW5UZXN0KCdtYWMnLCAnc2hvdWxkIGJlIHMn
KTsKLSAgICBydW5UZXN0KCd3aW4nLCAnaG91bGQgYmUgJyk7CisgICAgcnVuVGVzdCgnd2luZG93
cycsICdob3VsZCBiZSAnKTsKIH0gZWxzZSB7CiAgICAgbG9nKCJGYWlsdXJlOiBUbyB0ZXN0IG1h
bnVhbGx5LCBzZWxlY3QgdGhlIGdyZWVuIHRleHQgIiArCiAgICAgICAgICJzdGFydGluZyBhdCB0
aGUgZW5kIHZpYSBkb3VibGUtY2xpY2sgKGkuZS4gd29yZCBncmFudWxhcml0eSksIHRoZW4gc2hp
ZnQrcmlnaHQtYXJyb3cuICIgKwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24v
NTM1NDQ1NS0xLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vNTM1NDQ1NS0xLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRp
bmcvc2VsZWN0aW9uLzUzNTQ0NTUtMS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3
IEBAIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIgJiYgd2luZG93LnRlc3RSdW4KICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKIAogICAgIHRlc3QoJ21hYycsICdyZXN1bHRtYWMnKTsKLSAgICB0
ZXN0KCd3aW4nLCAncmVzdWx0d2luJyk7CisgICAgdGVzdCgnd2luZG93cycsICdyZXN1bHR3aW4n
KTsKICAgICB0ZXN0KCd1bml4JywgJ3Jlc3VsdHVuaXgnKTsKIH0KIDwvc2NyaXB0PgpJbmRleDog
TGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY2xpY2staW4tbWFyZ2lucy1pbnNpZGUtZWRp
dGFibGUtZGl2Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vY2xpY2staW4tbWFyZ2lucy1pbnNpZGUtZWRpdGFibGUtZGl2Lmh0bWwJKHJldmlzaW9uIDI2
OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2NsaWNrLWluLW1hcmdpbnMt
aW5zaWRlLWVkaXRhYmxlLWRpdi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQsNyArMTA0LDcg
QEAgZnVuY3Rpb24gZWRpdGluZ1Rlc3QoZWRpdGluZ0JlaGF2aW9yKQogfQogCiBlZGl0aW5nVGVz
dCgibWFjIik7Ci1lZGl0aW5nVGVzdCgid2luIik7CitlZGl0aW5nVGVzdCgid2luZG93cyIpOwog
CiAvLyBDbGVhbiB1cCBhZnRlciBvdXJzZWx2ZXMgaWYgd2UncmUgbm90IGJlaW5nIHJ1biBpbiB0
aGUgYnJvd3NlcgogaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewpJbmRleDogTGF5b3V0VGVzdHMv
ZWRpdGluZy9zZWxlY3Rpb24vY2xpY2staW4tcGFkZGluZy13aXRoLW11bHRpcGxlLWxpbmUtYm94
ZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9jbGlj
ay1pbi1wYWRkaW5nLXdpdGgtbXVsdGlwbGUtbGluZS1ib3hlcy5odG1sCShyZXZpc2lvbiAyNjk4
MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9jbGljay1pbi1wYWRkaW5nLXdp
dGgtbXVsdGlwbGUtbGluZS1ib3hlcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03OCw3ICs3OCw3
IEBAIGZ1bmN0aW9uIGVkaXRpbmdUZXN0KGVkaXRpbmdCZWhhdmlvcikKIH0KIAogZWRpdGluZ1Rl
c3QoIm1hYyIpOwotZWRpdGluZ1Rlc3QoIndpbiIpOworZWRpdGluZ1Rlc3QoIndpbmRvd3MiKTsK
IAogLy8gQ2xlYW4gdXAgYWZ0ZXIgb3Vyc2VsdmVzIGlmIHdlJ3JlIG5vdCBiZWluZyBydW4gaW4g
dGhlIGJyb3dzZXIKIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKSW5kZXg6IExheW91dFRlc3Rz
L2VkaXRpbmcvc2VsZWN0aW9uL2NvbnRleHQtbWVudS10ZXh0LXNlbGVjdGlvbi1sb29rdXAuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9jb250ZXh0LW1l
bnUtdGV4dC1zZWxlY3Rpb24tbG9va3VwLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91
dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2NvbnRleHQtbWVudS10ZXh0LXNlbGVjdGlvbi1sb29r
dXAuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNTAsNyArNTAsNyBAQCBmdW5jdGlvbiBsb2FkKCkK
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAogICAgIHRlc3QoJ21hYycsIHRydWUsICdO
ZXcgWW9yaycsICdyZXN1bHRtYWMnKTsKLSAgICB0ZXN0KCd3aW4nLCBmYWxzZSwgJycsICdyZXN1
bHR3aW4nKTsKKyAgICB0ZXN0KCd3aW5kb3dzJywgZmFsc2UsICcnLCAncmVzdWx0d2luJyk7CiAg
ICAgdGVzdCgndW5peCcsIGZhbHNlLCAnJywgJ3Jlc3VsdHVuaXgnKTsKIH0KIDwvc2NyaXB0PgpJ
bmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY29udGV4dC1tZW51LXRleHQtc2Vs
ZWN0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24v
Y29udGV4dC1tZW51LXRleHQtc2VsZWN0aW9uLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExh
eW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2NvbnRleHQtbWVudS10ZXh0LXNlbGVjdGlvbi5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC00Niw3ICs0Niw3IEBAIGZ1bmN0aW9uIGxvYWQoKQogICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiAgICAgdGVzdCgnbWFjJywgdHJ1ZSwgJ3Jlc3Vs
dG1hYycpOwotICAgIHRlc3QoJ3dpbicsIGZhbHNlLCAncmVzdWx0d2luJyk7CisgICAgdGVzdCgn
d2luZG93cycsIGZhbHNlLCAncmVzdWx0d2luJyk7CiAgICAgdGVzdCgndW5peCcsIGZhbHNlLCAn
cmVzdWx0dW5peCcpOwogfQogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Nl
bGVjdGlvbi9leHRlbmQtYWZ0ZXItbW91c2Utc2VsZWN0aW9uLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLWFmdGVyLW1vdXNlLXNlbGVjdGlv
bi5odG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlv
bi9leHRlbmQtYWZ0ZXItbW91c2Utc2VsZWN0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTc1
LDcgKzc1LDcgQEAgZnVuY3Rpb24gZWRpdGluZ1Rlc3QoZWRpdGluZ0JlaGF2aW9yKSB7CiAKIDxz
Y3JpcHQ+CiBlZGl0aW5nVGVzdCgibWFjIik7Ci1lZGl0aW5nVGVzdCgid2luIik7CitlZGl0aW5n
VGVzdCgid2luZG93cyIpOwogZWRpdGluZ1Rlc3QoInVuaXgiKTsKIDwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgpJbmRleDog
TGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1hZnRlci1kb3Vi
bGUtY2xpY2suaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlv
bi9leHRlbmQtc2VsZWN0aW9uLWFmdGVyLWRvdWJsZS1jbGljay5odG1sCShyZXZpc2lvbiAyNjk4
MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWFm
dGVyLWRvdWJsZS1jbGljay5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiAg
ICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiAgICAgICAgIHJ1blRlc3QoIm1hYyIs
ICJhIHBhcmFncmFwaCIpOwotICAgICAgICBydW5UZXN0KCJ3aW4iLCAicGFyYWdyYSIpOworICAg
ICAgICBydW5UZXN0KCJ3aW5kb3dzIiwgInBhcmFncmEiKTsKICAgICB9CiAKICAgICBmdW5jdGlv
biBydW5UZXN0KGJlaGF2aW9yLCBleHBlY3RlZFRleHQpCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWVuY2xvc2luZy1ibG9jay13aW4uaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0
aW9uLWVuY2xvc2luZy1ibG9jay13aW4uaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1lbmNsb3NpbmctYmxvY2st
d2luLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIzLDcgKzIzLDcgQEAgZnVuY3Rpb24gcnVuU2Vs
ZWN0aW9uVGVzdHNXaXRoR3JhbnVsYXJpdAogfQogCiBpZiAod2luZG93LmludGVybmFscykKLSAg
ICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCJ3aW4iKTsKKyAgICBpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCJ3aW5kb3dzIik7CiBsb2coIlxuXG5c
bkV4dGVuZGluZyBieSBjaGFyYWN0ZXJcbiIpOwogcnVuU2VsZWN0aW9uVGVzdHNXaXRoR3JhbnVs
YXJpdHlGb3JFbmNsb3NpbmdCbG9jayhjcmVhdGVFbmNsb3NpbmdCbG9ja05vZGVzKCksICJjaGFy
YWN0ZXIiKTsKIApJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13
b3JkLXZpc3VhbGx5LWNyYXNoLXRlc3QtMS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0LTEuaHRt
bAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92
ZS1ieS13b3JkLXZpc3VhbGx5LWNyYXNoLXRlc3QtMS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
Miw3ICsxMiw3IEBAIG9ubG9hZCA9IGZ1bmN0aW9uKCkgewogCiBpZiAod2luZG93LnRlc3RSdW5u
ZXIgJiYgd2luZG93LmludGVybmFscykgewogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwot
ICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbicpOworICAgIGlu
dGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbmRvd3MnKTsKIH0KIDwvc2Ny
aXB0PgogPHRleHRhcmVhPjwvdGV4dGFyZWE+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Nl
bGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC0yLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5
LWNyYXNoLXRlc3QtMi5odG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC0yLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTEyLDcgKzEyLDcgQEAgb25sb2FkID0gZnVuY3Rpb24oKSB7CiAKIGlm
ICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7Ci0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlv
cignd2luJyk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2lu
ZG93cycpOwogfQogPC9zY3JpcHQ+CiA8dmtlcm4+PC92a2Vybj48bWFycXVlZT48ZGl2IHRpdGxl
PSIwfDAiIGNsYXNzPSJ0ZXN0X21vdmVfYnlfd29yZCI+YWJjIGRlZgpJbmRleDogTGF5b3V0VGVz
dHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWNyYXNoLXRlc3QtMy5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnkt
d29yZC12aXN1YWxseS1jcmFzaC10ZXN0LTMuaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5
b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWNyYXNoLXRl
c3QtMy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMiw3ICsxMiw3IEBAIG9ubG9hZCA9IGZ1bmN0
aW9uKCkgewogCiBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewog
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRF
ZGl0aW5nQmVoYXZpb3IoJ3dpbicpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5n
QmVoYXZpb3IoJ3dpbmRvd3MnKTsKIH0KIDwvc2NyaXB0PgogPHZpZGVvPjwvdmlkZW8+PG1ldGVy
PjxpbWFnZSBjbGFzcz0idGVzdF9tb3ZlX2J5X3dvcmQiIHRpdGxlPSIwfDAiPgpJbmRleDogTGF5
b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWNyYXNoLXRl
c3QtNC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21v
dmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0LTQuaHRtbAkocmV2aXNpb24gMjY5ODMwKQor
KysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWNy
YXNoLXRlc3QtNC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMiw3ICsxMiw3IEBAIG9ubG9hZCA9
IGZ1bmN0aW9uKCkgewogCiBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFs
cykgewogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIGludGVybmFscy5zZXR0aW5n
cy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbicpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRF
ZGl0aW5nQmVoYXZpb3IoJ3dpbmRvd3MnKTsKIH0KIDwvc2NyaXB0PgogPjxkaXYgdGl0bGU9IjB8
MCIgY2xhc3M9InRlc3RfbW92ZV9ieV93b3JkIiBkaXI9bHRyPjxrZXlnZW4+PGJhc2U+CkluZGV4
OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jh
c2gtdGVzdC01Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWNyYXNoLXRlc3QtNS5odG1sCShyZXZpc2lvbiAyNjk4
MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFs
bHktY3Jhc2gtdGVzdC01Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTExLDcgKzExLDcgQEAgb25s
b2FkID0gZnVuY3Rpb24oKSB7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50
ZXJuYWxzKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luJyk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldEVkaXRpbmdCZWhhdmlvcignd2luZG93cycpOwogfQogPC9zY3JpcHQ+CiAKSW5kZXg6IExh
eW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10
ZXN0LWNzcy1nZW5lcmF0ZWQtY29udGVudC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0LWNzcy1n
ZW5lcmF0ZWQtY29udGVudC5odG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC1jc3MtZ2Vu
ZXJhdGVkLWNvbnRlbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTksNyArMTksNyBAQCBvbmxv
YWQgPSBmdW5jdGlvbigpIHsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRl
cm5hbHMpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICBpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiB9CiA8L3NjcmlwdD4KIDxkaXYgY29udGVu
dGVkaXRhYmxlIGRpcj1sdHI+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9t
b3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC10ZXh0YXJlYS5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1j
cmFzaC10ZXN0LXRleHRhcmVhLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3Rz
L2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0LXRleHRh
cmVhLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE4LDcgKzE4LDcgQEAgb25sb2FkID0gZnVuY3Rp
b24oKSB7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVk
aXRpbmdCZWhhdmlvcignd2luJyk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdC
ZWhhdmlvcignd2luZG93cycpOwogfQogPC9zY3JpcHQ+CiAKSW5kZXg6IExheW91dFRlc3RzL2Vk
aXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1pbmxpbmUtYmxvY2stcG9zaXRp
b25lZC1lbGVtZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxl
Y3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWlubGluZS1ibG9jay1wb3NpdGlvbmVkLWVsZW1l
bnQuaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWlubGluZS1ibG9jay1wb3NpdGlvbmVkLWVsZW1lbnQu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTIsNyArMTIsNyBAQCBvbmxvYWQgPSBmdW5jdGlvbigp
IHsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGlu
Z0JlaGF2aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2
aW9yKCd3aW5kb3dzJyk7CiB9CiA8L3NjcmlwdD4KIApJbmRleDogTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LW11bHRpLWxpbmUuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFs
bHktbXVsdGktbGluZS5odG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktbXVsdGktbGluZS5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xOSw3ICsxOSw3IEBAIG9ubG9hZCA9IGZ1bmN0aW9uKCkgewogCiBpZiAo
d2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewogICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOwotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3Io
J3dpbicpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbmRv
d3MnKTsKIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LW11bHRpLXNwYWNlLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5
LW11bHRpLXNwYWNlLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRp
bmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1tdWx0aS1zcGFjZS5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xOSw3ICsxOSw3IEBAIG9ubG9hZCA9IGZ1bmN0aW9uKCkgewogCiBpZiAo
d2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewogICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOwotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3Io
J3dpbicpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbmRv
d3MnKTsKIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LW51bGwtYm94Lmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LW51
bGwtYm94Lmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2Vs
ZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1udWxsLWJveC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xOCw3ICsxOCw3IEBAIG9ubG9hZCA9IGZ1bmN0aW9uKCkgewogCiBpZiAod2luZG93LnRl
c3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbicpOwor
ICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbmRvd3MnKTsKIH0K
IDwvc2NyaXB0PgogPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CkluZGV4OiBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktc2luZ2xlLXNwYWNlLWlubGlu
ZS1lbGVtZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LXNpbmdsZS1zcGFjZS1pbmxpbmUtZWxlbWVudC5odG1s
CShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3Zl
LWJ5LXdvcmQtdmlzdWFsbHktc2luZ2xlLXNwYWNlLWlubGluZS1lbGVtZW50Lmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTIyLDcgKzIyLDcgQEAgb25sb2FkID0gZnVuY3Rpb24oKSB7CiAKIGlmICh3
aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7Ci0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcign
d2luJyk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luZG93
cycpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Nl
bGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktc2luZ2xlLXNwYWNlLW9uZS1lbGVtZW50Lmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13
b3JkLXZpc3VhbGx5LXNpbmdsZS1zcGFjZS1vbmUtZWxlbWVudC5odG1sCShyZXZpc2lvbiAyNjk4
MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFs
bHktc2luZ2xlLXNwYWNlLW9uZS1lbGVtZW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE5LDcg
KzE5LDcgQEAgb25sb2FkID0gZnVuY3Rpb24oKSB7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lciAm
JiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luJyk7CisgICAgaW50ZXJu
YWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luZG93cycpOwogfQogPC9zY3JpcHQ+
CiA8L2hlYWQ+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdv
cmQtdmlzdWFsbHktdGV4dGFyZWEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktdGV4dGFyZWEuaHRtbAkocmV2aXNp
b24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3Jk
LXZpc3VhbGx5LXRleHRhcmVhLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAg
b25sb2FkID0gZnVuY3Rpb24oKSB7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cu
aW50ZXJuYWxzKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgaW50ZXJuYWxz
LnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luJyk7CisgICAgaW50ZXJuYWxzLnNldHRp
bmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luZG93cycpOwogfQogPC9zY3JpcHQ+CiAKSW5kZXg6
IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS13cm9u
Zy1sZWZ0LXJpZ2h0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxl
Y3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LXdyb25nLWxlZnQtcmlnaHQuaHRtbAkocmV2aXNp
b24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3Jk
LXZpc3VhbGx5LXdyb25nLWxlZnQtcmlnaHQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjIsNyAr
MjIsNyBAQCBvbmxvYWQgPSBmdW5jdGlvbigpIHsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyICYm
IHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICBp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiB9CiA8L3NjcmlwdD4K
IDx0aXRsZT53cm9uZyByZXN1bHQgYmVjYXVzZSBWaXNpYmxlUG9zaXRpb24ubGVmdCgpL3JpZ2h0
KCkgcmV0dXJucyB3cm9uZyByZXN1bHQ8L3RpdGxlPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zZWxlY3Rpb24vcHJvZ3JhbW1hdGljLXNlbGVjdGlvbi1vbi1tYWMtaXMtZGlyZWN0aW9ubGVz
cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3Byb2dy
YW1tYXRpYy1zZWxlY3Rpb24tb24tbWFjLWlzLWRpcmVjdGlvbmxlc3MuaHRtbAkocmV2aXNpb24g
MjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vcHJvZ3JhbW1hdGljLXNl
bGVjdGlvbi1vbi1tYWMtaXMtZGlyZWN0aW9ubGVzcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
MzYsNyArMTM2LDcgQEAgZnVuY3Rpb24gcnVuVGVzdHNGb3IocGxhdGZvcm0pIHsKIAogaWYgKHdp
bmRvdy5pbnRlcm5hbHMpIHsKICAgICBydW5UZXN0c0ZvcignbWFjJyk7Ci0gICAgcnVuVGVzdHNG
b3IoJ3dpbicpOworICAgIHJ1blRlc3RzRm9yKCd3aW5kb3dzJyk7CiAgICAgcnVuVGVzdHNGb3Io
J3VuaXgnKTsKIAogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0JykuaW5uZXJIVE1M
ID0gJyc7CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9ydGwtbW92ZS1zZWxl
Y3Rpb24tcmlnaHQtbGVmdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcv
c2VsZWN0aW9uL3J0bC1tb3ZlLXNlbGVjdGlvbi1yaWdodC1sZWZ0Lmh0bWwJKHJldmlzaW9uIDI2
OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3J0bC1tb3ZlLXNlbGVjdGlv
bi1yaWdodC1sZWZ0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTczLDcgKzczLDcgQEAgZnVuY3Rp
b24gcnVuVGVzdHMoKQogICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2
aW9yKCJtYWMiKTsKICAgICAgICAgdGVzdFNlbGVjdGlvbkNoYW5nZShkcmFnU2VsZWN0aW9uLCAi
ZXh0ZW5kIiwgInJpZ2h0IiwgMCwgMCwgIkV4dGVuZCBkcmFnZ2VkIHNlbGVjdGlvbiByaWdodCAo
TWFjKSIpOwogICAgICAgICB0ZXN0U2VsZWN0aW9uQ2hhbmdlKGRyYWdTZWxlY3Rpb24sICJleHRl
bmQiLCAibGVmdCIsIDAsIDAsICJFeHRlbmQgZHJhZ2dlZCBzZWxlY3Rpb24gbGVmdCAoTWFjKSIp
OwotICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCJ3aW4iKTsK
KyAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcigid2luZG93cyIp
OwogICAgICAgICB0ZXN0U2VsZWN0aW9uQ2hhbmdlKGRyYWdTZWxlY3Rpb24sICJleHRlbmQiLCAi
cmlnaHQiLCAwLCAwLCAiRXh0ZW5kIGRyYWdnZWQgc2VsZWN0aW9uIHJpZ2h0IChXaW4pIik7CiAg
ICAgICAgIHRlc3RTZWxlY3Rpb25DaGFuZ2UoZHJhZ1NlbGVjdGlvbiwgImV4dGVuZCIsICJsZWZ0
IiwgMSwgMCwgIkV4dGVuZCBkcmFnZ2VkIHNlbGVjdGlvbiBsZWZ0IChXaW4pIik7CiAgICAgICAg
IGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoInVuaXgiKTsKSW5kZXg6IExh
eW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1leHRlbmQtc2hvdWxkLW5vdC1t
b3ZlLWFjcm9zcy1jYXJldC1vbi1tYWMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1leHRlbmQtc2hvdWxkLW5vdC1tb3Zl
LWFjcm9zcy1jYXJldC1vbi1tYWMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNjk4MzApCisrKyBM
YXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tZXh0ZW5kLXNob3VsZC1ub3Qt
bW92ZS1hY3Jvc3MtY2FyZXQtb24tbWFjLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
Nyw3ICs3LDcgQEAgRXh0ZW5kIGJhY2t3YXJkIGFuZCB0aGVuIGZvcndhcmQgYnkgbGluZQogRXh0
ZW5kIGZvcndhcmQgYW5kIHRoZW4gYmFja3dhcmQgYnkgbGluZTogUEFTUwogRXh0ZW5kIGJhY2t3
YXJkIGFuZCB0aGVuIGZvcndhcmQgYnkgcGFyYWdyYXBoOiBQQVNTCiBFeHRlbmQgZm9yd2FyZCBh
bmQgdGhlbiBiYWNrd2FyZCBieSBwYXJhZ3JhcGg6IFBBU1MKLXdpbjoKK3dpbmRvd3M6CiBFeHRl
bmQgYmFja3dhcmQgYW5kIHRoZW4gZm9yd2FyZCBieSB3b3JkOiBQQVNTCiBFeHRlbmQgZm9yd2Fy
ZCBhbmQgdGhlbiBiYWNrd2FyZCBieSB3b3JkOiBQQVNTCiBFeHRlbmQgYmFja3dhcmQgYW5kIHRo
ZW4gZm9yd2FyZCBieSBsaW5lOiBQQVNTCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVj
dGlvbi9zZWxlY3Rpb24tZXh0ZW5kLXNob3VsZC1ub3QtbW92ZS1hY3Jvc3MtY2FyZXQtb24tbWFj
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0
aW9uLWV4dGVuZC1zaG91bGQtbm90LW1vdmUtYWNyb3NzLWNhcmV0LW9uLW1hYy5odG1sCShyZXZp
c2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24t
ZXh0ZW5kLXNob3VsZC1ub3QtbW92ZS1hY3Jvc3MtY2FyZXQtb24tbWFjLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTQ4LDcgKzQ4LDcgQEAgZnVuY3Rpb24gZWRpdGluZ1Rlc3QoYmVoYXZpb3IpIHsK
ICAgICB2YXIgd29yZENhcmV0RnVuY3Rpb24gPSBnZXRTZXRDYXJldEZ1bmN0aW9uKG5vZGUsIGNo
aWxkcmVuWzJdLCBjaGlsZHJlblsyXS5kYXRhLnNlYXJjaCgibmUgMiIpKTsKIAogICAgIGRvY3Vt
ZW50LndyaXRlKGJlaGF2aW9yICsgIjo8YnI+Iik7Ci0gICAgcnVuVGVzdCgiYmFja3dhcmQiLCAi
Zm9yd2FyZCIsICJ3b3JkIiwgYmVoYXZpb3IgPT0gIm1hYyIgPyAiIiA6IGJlaGF2aW9yID09ICJ3
aW4iID8gIm5lICIgOiAibmUiLCBnZXRTZXRDYXJldEZ1bmN0aW9uKG5vZGUsIGNoaWxkcmVuWzJd
LCBjaGlsZHJlblsyXS5kYXRhLnNlYXJjaCgibmUgMiIpKSk7CisgICAgcnVuVGVzdCgiYmFja3dh
cmQiLCAiZm9yd2FyZCIsICJ3b3JkIiwgYmVoYXZpb3IgPT0gIm1hYyIgPyAiIiA6IGJlaGF2aW9y
ID09ICJ3aW5kb3dzIiA/ICJuZSAiIDogIm5lIiwgZ2V0U2V0Q2FyZXRGdW5jdGlvbihub2RlLCBj
aGlsZHJlblsyXSwgY2hpbGRyZW5bMl0uZGF0YS5zZWFyY2goIm5lIDIiKSkpOwogICAgIHJ1blRl
c3QoImZvcndhcmQiLCAiYmFja3dhcmQiLCAid29yZCIsIGJlaGF2aW9yID09ICJtYWMiID8gIiIg
OiAibGkiLCBnZXRTZXRDYXJldEZ1bmN0aW9uKG5vZGUsIGNoaWxkcmVuWzJdLCBjaGlsZHJlblsy
XS5kYXRhLnNlYXJjaCgibmUgMiIpKSk7CiAgICAgcnVuVGVzdCgiYmFja3dhcmQiLCAiZm9yd2Fy
ZCIsICJsaW5lIiwgYmVoYXZpb3IgPT0gIm1hYyIgPyAiIiA6ICIxXG5saW5lICIsIGdldFNldENh
cmV0RnVuY3Rpb24obm9kZSwgY2hpbGRyZW5bMF0sIGNoaWxkcmVuWzBdLmRhdGEuc2VhcmNoKCIx
IikpKTsKICAgICBydW5UZXN0KCJmb3J3YXJkIiwgImJhY2t3YXJkIiwgImxpbmUiLCBiZWhhdmlv
ciA9PSAibWFjIiA/ICIiIDogIjJcbmxpbmUgIiwgZ2V0U2V0Q2FyZXRGdW5jdGlvbihub2RlLCBj
aGlsZHJlbls0XSwgY2hpbGRyZW5bNF0uZGF0YS5zZWFyY2goIjMiKSkpOwpAQCAtNTcsNyArNTcs
NyBAQCBmdW5jdGlvbiBlZGl0aW5nVGVzdChiZWhhdmlvcikgewogfQogCiBlZGl0aW5nVGVzdCgi
bWFjIik7Ci1lZGl0aW5nVGVzdCgid2luIik7CitlZGl0aW5nVGVzdCgid2luZG93cyIpOwogZWRp
dGluZ1Rlc3QoInVuaXgiKTsKIAogdmFyIG5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGVzdC1kaXYiKTsKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NoaWZ0LWNs
aWNrLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2hp
ZnQtY2xpY2suaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vc2hpZnQtY2xpY2suaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOTUsNyArOTUsNyBA
QCBmdW5jdGlvbiBydW5TaGlmdENsaWNrVGVzdChlZGl0aW5nQmVoYXZpCiAKIGlmICh3aW5kb3cu
ZXZlbnRTZW5kZXIgJiYgd2luZG93LmludGVybmFscykgewogICAgIHJ1blNoaWZ0Q2xpY2tUZXN0
KCJtYWMiKTsKLSAgICBydW5TaGlmdENsaWNrVGVzdCgid2luIik7CisgICAgcnVuU2hpZnRDbGlj
a1Rlc3QoIndpbmRvd3MiKTsKIH0KIAogdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi91c2VyLXNlbGVjdC1hbGwtd2l0aC1z
aGlmdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxl
Y3Rpb24vdXNlci1zZWxlY3QtYWxsLXdpdGgtc2hpZnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAy
Njk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi91c2VyLXNlbGVjdC1hbGwt
d2l0aC1zaGlmdC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTY5LDcgKzY5LDcgQEAg
U29tZSBvdGhlciB0ZXh0LgogfCAiCiAiCiAKLUFmdGVyIGNsaWNraW5nIG9uIHRoZSBmaXJzdCBl
bGVtZW50ICh3aW4pOgorQWZ0ZXIgY2xpY2tpbmcgb24gdGhlIGZpcnN0IGVsZW1lbnQgKHdpbmRv
d3MpOgogfCAiCiAiCiB8IDxkaXY+CkBAIC04Niw3ICs4Niw3IEBAIFNvbWUgb3RoZXIgdGV4dC4K
IHwgIgogIgogCi1BZnRlciBzaGlmdCBjbGlja2luZyBvbiB0aGUgc2Vjb25kIGVsZW1lbnQgKHdp
bik6CitBZnRlciBzaGlmdCBjbGlja2luZyBvbiB0aGUgc2Vjb25kIGVsZW1lbnQgKHdpbmRvd3Mp
OgogfCAiCiAiCiB8IDxkaXY+CkBAIC0xMDMsNyArMTAzLDcgQEAgU29tZSBvdGhlciB0ZXh0Lgog
fCAiCiAiCiAKLUFmdGVyIGNsaWNraW5nIG9uIHRoZSBzZWNvbmQgZWxlbWVudCAod2luKToKK0Fm
dGVyIGNsaWNraW5nIG9uIHRoZSBzZWNvbmQgZWxlbWVudCAod2luZG93cyk6CiB8ICIKICIKIHwg
PGRpdj4KQEAgLTEyMCw3ICsxMjAsNyBAQCBTb21lIG90aGVyIHRleHQuCiB8ICIKICIKIAotQWZ0
ZXIgc2hpZnQgY2xpY2tpbmcgb24gdGhlIGZpcnN0IGVsZW1lbnQgKHdpbik6CitBZnRlciBzaGlm
dCBjbGlja2luZyBvbiB0aGUgZmlyc3QgZWxlbWVudCAod2luZG93cyk6CiB8ICIKICIKIHwgPGRp
dj4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3VzZXItc2VsZWN0LWFsbC13
aXRoLXNoaWZ0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vdXNlci1zZWxlY3QtYWxsLXdpdGgtc2hpZnQuaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysg
TGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vdXNlci1zZWxlY3QtYWxsLXdpdGgtc2hpZnQu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtNTAsNyArNTAsNyBAQCBmdW5jdGlvbiBydW5UZXN0KGVk
aXRpbmdCZWhhdmlvcikgewogCiBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CiAgICAgcnVuVGVz
dCgnbWFjJyk7Ci0gICAgcnVuVGVzdCgnd2luJyk7CisgICAgcnVuVGVzdCgnd2luZG93cycpOwog
ICAgIHJ1blRlc3QoJ3VuaXgnKTsKIAogfSBlbHNlCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5n
L3NwZWxsaW5nL2NvcHktcGFzdGUtY3Jhc2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9lZGl0aW5nL3NwZWxsaW5nL2NvcHktcGFzdGUtY3Jhc2guaHRtbAkocmV2aXNpb24gMjY5ODMw
KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9jb3B5LXBhc3RlLWNyYXNoLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTE0LDcgKzE0LDcgQEAKIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgogPHNjcmlwdD4KIG9ubG9hZCA9IGluaXRTcGVsbFRlc3QoImRlc3RpbmF0aW9uIiwgIlNwZWxs
IHdlbGxjb21lLiBJcyBpdCBicm9rZW4/IiwgZnVuY3Rpb24odGV4dE5vZGUpIHsKLSAgICB2YXIg
YmVoYXZpb3JzID0gWyJ3aW4iLCAibWFjIl07CisgICAgdmFyIGJlaGF2aW9ycyA9IFsid2luZG93
cyIsICJtYWMiXTsKICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJlaGF2aW9ycy5sZW5ndGg7IGkr
KykgewogICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKGJlaGF2
aW9yc1tpXSk7CiAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJTZWxlY3RBbGwiKTsKSW5k
ZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvaWZyYW1lLW9ubG9hZC1jcmFzaC13aW4uaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL2lmcmFtZS1vbmxvYWQt
Y3Jhc2gtd2luLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcv
c3R5bGUvaWZyYW1lLW9ubG9hZC1jcmFzaC13aW4uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw3
ICsxLDcgQEAKIDxtZXRhPjxpbnB1dD48aDY+PG5vYnI+PC9ub2JyPjxkYXRhZ3JpZD48aW5zPjxi
dXR0b24+PGVtPjxpZnJhbWUgb25sb2FkPSIKIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5k
b3cuaW50ZXJuYWxzKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgaW50ZXJu
YWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luJyk7CisgICAgaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luZG93cycpOwogfQogCiBpZiAoZG9jdW1lbnQu
Y291bnRlcikKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvbWFrZS10ZXh0LXdyaXRp
bmctZGlyZWN0aW9uLWlubGluZS13aW4uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3N0eWxlL21ha2UtdGV4dC13cml0aW5nLWRpcmVjdGlvbi1pbmxpbmUtd2luLmh0bWwJ
KHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvbWFrZS10ZXh0
LXdyaXRpbmctZGlyZWN0aW9uLWlubGluZS13aW4uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTQs
NyArMTQsNyBAQCBkZXNjcmlwdGlvbignVGVzdHMgdG8gZW5zdXJlIE1ha2VUZXh0V3JpCiBpZiAo
IXdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RGYWlsZWQoJ1RoaXMgdGVzdCByZXF1aXJlcyB0
ZXN0UnVubmVyJyk7CiBpZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0
RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiAKIHZhciB0ZXN0Q29udGFpbmVyID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiB0ZXN0Q29udGFpbmVyLmNvbnRlbnRFZGl0YWJsZSA9
IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3B1c2gtZG93bi1mb250LXN0
eWxlcy13aW4uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3B1
c2gtZG93bi1mb250LXN0eWxlcy13aW4uaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0
VGVzdHMvZWRpdGluZy9zdHlsZS9wdXNoLWRvd24tZm9udC1zdHlsZXMtd2luLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAKIGRlc2NyaXB0aW9uKCdUZXN0IHRvIG1ha2Ugc3Vy
ZSB3ZSBwdXNoIGRvd24gaW5saW5lIHN0eWxlcyBwcm9wZXJseS4nKTsKIAogaWYgKHdpbmRvdy5p
bnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2lu
Jyk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luZG93cycp
OwogdmFyIHRlc3RDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKIHRl
c3RDb250YWluZXIuY29udGVudEVkaXRhYmxlID0gdHJ1ZTsKIGRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQodGVzdENvbnRhaW5lcik7CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3B1
c2gtZG93bi1pbXBsaWNpdC1zdHlsZXMtYXJvdW5kLWxpc3Qtd2luLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9wdXNoLWRvd24taW1wbGljaXQtc3R5bGVzLWFy
b3VuZC1saXN0LXdpbi5odG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0
aW5nL3N0eWxlL3B1c2gtZG93bi1pbXBsaWNpdC1zdHlsZXMtYXJvdW5kLWxpc3Qtd2luLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAKIGRlc2NyaXB0aW9uKCdUZXN0IHRvIG1h
a2Ugc3VyZSB3ZSBwdXNoIGRvd24gaW5saW5lIHN0eWxlcyBwcm9wZXJseS4nKTsKIAogaWYgKHdp
bmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlv
cignd2luJyk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2lu
ZG93cycpOwogdmFyIHRlc3RDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKIHRlc3RDb250YWluZXIuY29udGVudEVkaXRhYmxlID0gdHJ1ZTsKIGRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQodGVzdENvbnRhaW5lcik7CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0
eWxlL3RvZ2dsZS1zdHlsZS1ib2xkLWl0YWxpYy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS90b2dnbGUtc3R5bGUtYm9sZC1pdGFsaWMtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3Rv
Z2dsZS1zdHlsZS1ib2xkLWl0YWxpYy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTU3
LDcgKzU3LDcgQEAgZXhlY0l0YWxpY0NvbW1hbmQ6IDxkaXYgaWQ9InRlc3QiPiA8ZGl2PgogZXhl
Y0JvbGRDb21tYW5kOiA8ZGl2IGlkPSJ0ZXN0Ij4gPGRpdj48aT5Tb21lIHRleHQ8L2k+PC9kaXY+
IDxwPjxpPlNvbWUgbW9yZSB0ZXh0PC9pPjwvcD4gPC9kaXY+CiBleGVjSXRhbGljQ29tbWFuZDog
PGRpdiBpZD0idGVzdCI+IDxkaXY+U29tZSB0ZXh0PC9kaXY+IDxwPlNvbWUgbW9yZSB0ZXh0PC9w
PiA8L2Rpdj4KIAotVGVzdCBmb3Igd2luCitUZXN0IGZvciB3aW5kb3dzCiBleGVjQm9sZENvbW1h
bmQ6IDxkaXYgaWQ9InRlc3QiPiA8ZGl2PjxiPlNvbWUgdGV4dDwvYj48L2Rpdj4gPHA+PGI+U29t
ZSBtb3JlIHRleHQ8L2I+PC9wPiA8L2Rpdj4KIGV4ZWNJdGFsaWNDb21tYW5kOiA8ZGl2IGlkPSJ0
ZXN0Ij4gPGRpdj48Yj48aT5Tb21lIHRleHQ8L2k+PC9iPjwvZGl2PiA8cD48Yj48aT5Tb21lIG1v
cmUgdGV4dDwvaT48L2I+PC9wPiA8L2Rpdj4KIGV4ZWNCb2xkQ29tbWFuZDogPGRpdiBpZD0idGVz
dCI+IDxkaXY+PGk+U29tZSB0ZXh0PC9pPjwvZGl2PiA8cD48aT5Tb21lIG1vcmUgdGV4dDwvaT48
L3A+IDwvZGl2PgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS90b2dnbGUtc3R5bGUt
Ym9sZC1pdGFsaWMtbWl4ZWQtZWRpdGFiaWxpdHktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvdG9nZ2xlLXN0eWxlLWJvbGQtaXRhbGljLW1peGVk
LWVkaXRhYmlsaXR5LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVz
dHMvZWRpdGluZy9zdHlsZS90b2dnbGUtc3R5bGUtYm9sZC1pdGFsaWMtbWl4ZWQtZWRpdGFiaWxp
dHktZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01NSw3ICs1NSw3IEBAIGV4ZWNJdGFs
aWNDb21tYW5kOiA8ZGl2IGlkPSJ0ZXN0Ij48Yj48aT4KIGV4ZWNCb2xkQ29tbWFuZDogPGRpdiBp
ZD0idGVzdCI+PGk+IEVkaXRhYmxlIDwvaT48c3BhbiBjb250ZW50ZWRpdGFibGU9ImZhbHNlIj5O
b24tZWRpdGFibGU8L3NwYW4+PGk+IEVkaXRhYmxlIDwvaT48L2Rpdj4KIGV4ZWNJdGFsaWNDb21t
YW5kOiA8ZGl2IGlkPSJ0ZXN0Ij4gRWRpdGFibGUgPHNwYW4gY29udGVudGVkaXRhYmxlPSJmYWxz
ZSI+Tm9uLWVkaXRhYmxlPC9zcGFuPiBFZGl0YWJsZSA8L2Rpdj4KIAotVGVzdCBmb3Igd2luCitU
ZXN0IGZvciB3aW5kb3dzCiBleGVjQm9sZENvbW1hbmQ6IDxkaXYgaWQ9InRlc3QiPjxiPiBFZGl0
YWJsZSA8L2I+PHNwYW4gY29udGVudGVkaXRhYmxlPSJmYWxzZSI+Tm9uLWVkaXRhYmxlPC9zcGFu
PjxiPiBFZGl0YWJsZSA8L2I+PC9kaXY+CiBleGVjSXRhbGljQ29tbWFuZDogPGRpdiBpZD0idGVz
dCI+PGI+PGk+IEVkaXRhYmxlIDwvaT48L2I+PHNwYW4gY29udGVudGVkaXRhYmxlPSJmYWxzZSI+
Tm9uLWVkaXRhYmxlPC9zcGFuPjxiPjxpPiBFZGl0YWJsZSA8L2k+PC9iPjwvZGl2PgogZXhlY0Jv
bGRDb21tYW5kOiA8ZGl2IGlkPSJ0ZXN0Ij48aT4gRWRpdGFibGUgPC9pPjxzcGFuIGNvbnRlbnRl
ZGl0YWJsZT0iZmFsc2UiPk5vbi1lZGl0YWJsZTwvc3Bhbj48aT4gRWRpdGFibGUgPC9pPjwvZGl2
PgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS90b2dnbGUtc3R5bGUtYm9sZC1pdGFs
aWMtbWl4ZWQtZWRpdGFiaWxpdHkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0
aW5nL3N0eWxlL3RvZ2dsZS1zdHlsZS1ib2xkLWl0YWxpYy1taXhlZC1lZGl0YWJpbGl0eS5odG1s
CShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3RvZ2dsZS1z
dHlsZS1ib2xkLWl0YWxpYy1taXhlZC1lZGl0YWJpbGl0eS5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xMCw3ICsxMCw3IEBAIEVkaXRhYmxlIDxzcGFuIGNvbnRlbnRlZGl0YWJsZT1mYWxzZT5Ob24K
IDxzY3JpcHQgc3JjPS4uL2VkaXRpbmcuanMgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRl
eHQvSmF2YVNjcmlwdCIgPjwvc2NyaXB0PgogPHNjcmlwdD4KIHRlc3QoJ21hYycpOwotdGVzdCgn
d2luJyk7Cit0ZXN0KCd3aW5kb3dzJyk7CiB0ZXN0KCd1bml4Jyk7CiBmdW5jdGlvbiB0ZXN0KHBs
YXRmb3JtKSB7CiAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCkluZGV4OiBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3N0eWxlL3RvZ2dsZS1zdHlsZS1ib2xkLWl0YWxpYy5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvdG9nZ2xlLXN0eWxlLWJvbGQtaXRhbGljLmh0bWwJ
KHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvdG9nZ2xlLXN0
eWxlLWJvbGQtaXRhbGljLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTExLDcgKzExLDcgQEAKIDxz
Y3JpcHQgc3JjPS4uL2VkaXRpbmcuanMgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQv
SmF2YVNjcmlwdCIgPjwvc2NyaXB0PgogPHNjcmlwdD4KIHRlc3QoJ21hYycpOwotdGVzdCgnd2lu
Jyk7Cit0ZXN0KCd3aW5kb3dzJyk7CiB0ZXN0KCd1bml4Jyk7CiBmdW5jdGlvbiB0ZXN0KHBsYXRm
b3JtKSB7CiAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9iYWNrc3BhY2UtbmF2aWdhdGVzLWJhY2suaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9iYWNrc3BhY2UtbmF2aWdhdGVzLWJhY2suaHRtbAkocmV2aXNp
b24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvYmFja3NwYWNlLW5hdmlnYXRl
cy1iYWNrLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTUwLDcgKzUwLDcgQEAgZnVuY3Rpb24gZG9T
dGVwKHN0ZXAsIGxvY2F0aW9uKSB7CiAgICAgICAgIGlmICghZXhwZWN0KGxvY2F0aW9uID09ICd0
ZXN0LXdpbicsICduYXZpZ2F0aW9uIHRvIHRlc3Qtd2luJykpCiAgICAgICAgICAgICByZXR1cm47
CiAKLSAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luJyk7
CisgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbmRvd3Mn
KTsKICAgICAgICAgdGVzdEJhY2tzcGFjZU5hdmlnYXRlc0JhY2soKTsKIAogICAgICAgICBicmVh
azsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0aW9uLWRpcmVjdGlvbi1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3Rpb24t
ZGlyZWN0aW9uLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9zZWxlY3Rpb24tZGlyZWN0aW9uLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtNTUsNyArNTUsNyBAQCBQQVNTIHNlbGVjdGlvbkRpcmVjdGlvbiB3YXMgImJhY2t3YXJk
IiBhCiBQQVNTIHNlbGVjdGlvbkRpcmVjdGlvbiB3YXMgImJhY2t3YXJkIiBhZnRlciBmb2N1c2lu
ZyBvbiBhbm90aGVyIGVsZW1lbnQKIFBBU1Mgc2VsZWN0aW9uRGlyZWN0aW9uIHdhcyAiYmFja3dh
cmQiIGFmdGVyIGhpZGluZyB0aGUgZWxlbWVudAogCi1pbnB1dCBvbiBXaW4KK2lucHV0IG9uIFdp
bmRvd3MKIFBBU1Mgc2VsZWN0aW9uRGlyZWN0aW9uIHdhcyAiZm9yd2FyZCIgYWZ0ZXIgZm9jdXNp
bmcgYW5kIHNldHRpbmcgc2VsZWN0aW9uIGJ5IHNldFNlbGVjdGlvblJhbmdlKDEsIDIpCiBQQVNT
IHNlbGVjdGlvbkRpcmVjdGlvbiB3YXMgImZvcndhcmQiIGFmdGVyIGZvY3VzaW5nIG9uIGFub3Ro
ZXIgZWxlbWVudAogUEFTUyBzZWxlY3Rpb25EaXJlY3Rpb24gd2FzICJmb3J3YXJkIiBhZnRlciBo
aWRpbmcgdGhlIGVsZW1lbnQKQEAgLTgxLDcgKzgxLDcgQEAgUEFTUyBzZWxlY3Rpb25EaXJlY3Rp
b24gd2FzICJiYWNrd2FyZCIgYQogUEFTUyBzZWxlY3Rpb25EaXJlY3Rpb24gd2FzICJiYWNrd2Fy
ZCIgYWZ0ZXIgZm9jdXNpbmcgb24gYW5vdGhlciBlbGVtZW50CiBQQVNTIHNlbGVjdGlvbkRpcmVj
dGlvbiB3YXMgImJhY2t3YXJkIiBhZnRlciBoaWRpbmcgdGhlIGVsZW1lbnQKIAotdGV4dGFyZWEg
b24gV2luCit0ZXh0YXJlYSBvbiBXaW5kb3dzCiBQQVNTIHNlbGVjdGlvbkRpcmVjdGlvbiB3YXMg
ImZvcndhcmQiIGFmdGVyIGZvY3VzaW5nIGFuZCBzZXR0aW5nIHNlbGVjdGlvbiBieSBzZXRTZWxl
Y3Rpb25SYW5nZSgxLCAyKQogUEFTUyBzZWxlY3Rpb25EaXJlY3Rpb24gd2FzICJmb3J3YXJkIiBh
ZnRlciBmb2N1c2luZyBvbiBhbm90aGVyIGVsZW1lbnQKIFBBU1Mgc2VsZWN0aW9uRGlyZWN0aW9u
IHdhcyAiZm9yd2FyZCIgYWZ0ZXIgaGlkaW5nIHRoZSBlbGVtZW50Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414178</attachid>
            <date>2020-11-15 14:45:53 -0800</date>
            <delta_ts>2020-11-15 14:53:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218960-20201115144552.patch</filename>
            <type>text/plain</type>
            <size>219744</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIwLTExLTE1ICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBTdGFuZGFyZGl6ZSBlbnVtcyB0aGF0IGFyZSB1c2VkIGJ5
IFNldHRpbmdzIGluIHByZXBlcmF0aW9uIGZvciBhdXRvZ2VuZXJhdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4OTYwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1dJUF0KKworICAgICAgICAqIFNj
cmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXMueWFtbDoKKwogMjAyMC0xMS0xNCAgRG9u
IE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIFtjbGFuZy10aWR5
XSBSdW4gbW9kZXJuaXplLXVzZS1vdmVycmlkZSB0aHJvdWdoIEpTQwpJbmRleDogU291cmNlL1dU
Ri9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWwJKHJldmlz
aW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJl
bmNlcy55YW1sCSh3b3JraW5nIGNvcHkpCkBAIC03MDYsNyArNzA2LDcgQEAgRWRpdGFibGVMaW5r
QmVoYXZpb3I6CiAgICAgV2ViS2l0TGVnYWN5OgogICAgICAgZGVmYXVsdDogV2ViS2l0RWRpdGFi
bGVMaW5rRGVmYXVsdEJlaGF2aW9yCiAgICAgV2ViS2l0OgotICAgICAgZGVmYXVsdDogV2ViQ29y
ZTo6RWRpdGFibGVMaW5rTmV2ZXJMaXZlCisgICAgICBkZWZhdWx0OiBXZWJDb3JlOjpFZGl0YWJs
ZUxpbmtCZWhhdmlvcjo6TmV2ZXJMaXZlCiAKIEVuYWJsZUluaGVyaXRVUklRdWVyeUNvbXBvbmVu
dDoKICAgdHlwZTogYm9vbApAQCAtMjE3Myw3ICsyMTczLDcgQEAgU3RvcmFnZUJsb2NraW5nUG9s
aWN5OgogICAgIFdlYktpdExlZ2FjeToKICAgICAgIGRlZmF1bHQ6IFdlYkFsbG93QWxsU3RvcmFn
ZQogICAgIFdlYktpdDoKLSAgICAgIGRlZmF1bHQ6IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpC
bG9ja1RoaXJkUGFydHlTdG9yYWdlCisgICAgICBkZWZhdWx0OiBXZWJDb3JlOjpTdG9yYWdlQmxv
Y2tpbmdQb2xpY3k6OkJsb2NrVGhpcmRQYXJ0eQogCiBTdWJyZXNvdXJjZUludGVncml0eUVuYWJs
ZWQ6CiAgIHR5cGU6IGJvb2wKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzOSBAQAor
MjAyMC0xMS0xNSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAgU3Rh
bmRhcmRpemUgZW51bXMgdGhhdCBhcmUgdXNlZCBieSBTZXR0aW5ncyBpbiBwcmVwZXJhdGlvbiBm
b3IgYXV0b2dlbmVyYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxODk2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFtXSVBdCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFNj
cmlwdHMvR2VuZXJhdGVTZXR0aW5ncy5yYjoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9Gb3JjZWRBY2Nlc3NpYmls
aXR5VmFsdWUuaDogQWRkZWQuCisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmZvbnRMb2FkVGltaW5nT3ZlcnJpZGUpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTRm9udEZhY2U6OmZvbnRMb2FkVGltaW5nIGNvbnN0KToKKyAgICAgICAgKiBjc3MvRm9udExv
YWRUaW1pbmdPdmVycmlkZS5oOiBBZGRlZC4KKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2YWx1
YXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjptb25vY2hyb21lRXZhbHVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6aW52ZXJ0ZWRDb2xvcnNFdmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpk
eW5hbWljUmFuZ2VFdmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpwcmVmZXJzUmVkdWNlZE1v
dGlvbkV2YWx1YXRlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmFwcGx5UXVpY2tMb29rU2FuZGJveCk6CisgICAgICAgICogZWRpdGlu
Zy9FZGl0YWJsZUxpbmtCZWhhdmlvci5oOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRp
bmdCZWhhdmlvci5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yOjpzaG91bGRN
b3ZlQ2FyZXRUb0hvcml6b250YWxCb3VuZGFyeVdoZW5QYXN0VG9wT3JCb3R0b20gY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yOjpzaG91bGRDb25zaWRlclNlbGVjdGlv
bkFzRGlyZWN0aW9uYWwgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9y
OjpzaG91bGRDZW50ZXJBbGlnbldoZW5TZWxlY3Rpb25Jc1JldmVhbGVkIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkVkaXRpbmdCZWhhdmlvcjo6c2hvdWxkVG9nZ2xlU3R5bGVCYXNlZE9uU3Rh
cnRPZlNlbGVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3I6
OnNob3VsZEFsd2F5c0dyb3dTZWxlY3Rpb25XaGVuRXh0ZW5kaW5nVG9Cb3VuZGFyeSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3I6OnNob3VsZFNlbGVjdE9uQ29udGV4
dHVhbE1lbnVDbGljayBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3I6
OnNob3VsZEFsbG93U3BlbGxpbmdTdWdnZXN0aW9uc1dpdGhvdXRTZWxlY3Rpb24gY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yOjpzaG91bGROYXZpZ2F0ZUJhY2tPbkJh
Y2tzcGFjZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3I6OnNob3Vs
ZEV4dGVuZFNlbGVjdGlvbkJ5V29yZE9yTGluZUFjcm9zc0NhcmV0IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRpbmdCZWhhdmlvcjo6c2hvdWxkU2tpcFNwYWNlV2hlbk1vdmluZ1JpZ2h0
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRpbmdCZWhhdmlvcjo6c2hvdWxkUmViYWxh
bmNlV2hpdGVTcGFjZXNJblNlY3VyZUZpZWxkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRpbmdCZWhhdmlvcjo6c2hvdWxkU2VsZWN0QmFzZWRPbkRpY3Rpb25hcnlMb29rdXAgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yOjpzaG91bGRBbHdheXNFeHRlbmRT
ZWxlY3Rpb25Gcm9tRXh0ZW50RW5kcG9pbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dGluZ0JlaGF2aW9yOjpzaG91bGRNb3ZlU2VsZWN0aW9uVG9FbmRXaGVuRm9jdXNpbmdUZXh0SW5w
dXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yOjpzaG91bGRBbHdh
eXNTbWFydERlbGV0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3I6
OnNob3VsZFNtYXJ0SW5zZXJ0RGVsZXRlUGFyYWdyYXBocyBjb25zdCk6CisgICAgICAgICogZWRp
dGluZy9FZGl0aW5nQmVoYXZpb3JUeXBlLmg6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvRWRp
dGluZ0JlaGF2aW9yVHlwZXMuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmJlaGF2aW9yIGNvbnN0KToKKyAgICAgICAg
KiBlZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24uaDoKKyAgICAgICAgKiBlZGl0aW5nL2NvY29h
L0RhdGFEZXRlY3Rpb24ubW06CisgICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RVUkxTdHJpbmdG
b3JSZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGFpbnMpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6cmVtb3ZlUmVzdWx0TGlua3NGcm9tQW5jaG9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OnNlYXJjaEZvckxpbmtSZW1vdmluZ0V4aXN0aW5nRERMaW5rcyk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpkYXRhRGV0ZWN0b3JUeXBlRm9yQ2F0ZWdvcnkpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6ZGF0YURldGVjdG9yU3RyaW5nRm9yUGF0aCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpidWlsZFF1ZXJ5KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OnF1ZXJ5T2Zmc2V0Q29tcGFyZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpE
YXRhRGV0ZWN0aW9uOjpyZW1vdmVEYXRhRGV0ZWN0ZWRMaW5rc0luRG9jdW1lbnQpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6RGF0YURldGVjdGlvbjo6ZGV0ZWN0Q29udGVudEluUmFuZ2Up
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGF0YURldGVjdGlvbjo6ZGF0YURldGVjdG9y
VVJMUHJvdG9jb2wpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGF0YURldGVjdGlvbjo6
aXNEYXRhRGV0ZWN0b3JVUkwpOiBEZWxldGVkLgorICAgICAgICAqIGVkaXRpbmcvY29jb2EvRGF0
YURldGVjdG9yVHlwZXMuaDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9tYXJrdXAuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUGFnZUZvclNhbml0aXppbmdXZWJDb250ZW50KToKKyAg
ICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxBbmNob3JFbGVtZW50OjpzZXRBY3RpdmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFuY2hv
ckVsZW1lbnQ6OnRyZWF0TGlua0FzTGl2ZUZvckV2ZW50VHlwZSBjb25zdCk6CisgICAgICAgICog
aHRtbC9wYXJzZXIvSFRNTFBhcnNlck9wdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFBhcnNlck9wdGlvbnM6OkhUTUxQYXJzZXJPcHRpb25zKToKKyAgICAgICAgKiBodG1sL3BhcnNl
ci9IVE1MUGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeS5oOiBBZGRlZC4KKyAgICAgICAgKiBsb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNoZWNr
TG9hZENvbXBsZXRlRm9yVGhpc0ZyYW1lKToKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OnBv
cHVsYXRlKToKKyAgICAgICAgKiBwYWdlL0RlYnVnT3ZlcmxheVJlZ2lvbnMuaDogQWRkZWQuCisg
ICAgICAgICogcGFnZS9EZWJ1Z1BhZ2VPdmVybGF5cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
ZWJ1Z1BhZ2VPdmVybGF5czo6dXBkYXRlT3ZlcmxheVJlZ2lvblZpc2liaWxpdHkpOgorICAgICAg
ICAoV2ViQ29yZTo6RGVidWdQYWdlT3ZlcmxheXM6OnNldHRpbmdzQ2hhbmdlZCk6CisgICAgICAg
ICogcGFnZS9EZWJ1Z1BhZ2VPdmVybGF5cy5oOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6dXNlSGFuZEN1cnNvcik6Cisg
ICAgICAgICogcGFnZS9GcmFtZUZsYXR0ZW5pbmcuaDogQWRkZWQuCisgICAgICAgICogcGFnZS9G
cmFtZVZpZXcuaDoKKyAgICAgICAgKiBwYWdlL1BERkltYWdlQ2FjaGluZ1BvbGljeS5oOiBBZGRl
ZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2hv
dWxkQnVpbGRFZGl0YWJsZVJlZ2lvbiBjb25zdCk6CisgICAgICAgICogcGFnZS9TZWN1cml0eU9y
aWdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6Y2FuQWNjZXNzU3Rv
cmFnZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6ZG9tYWluRm9y
Q2FjaGVQYXJ0aXRpb24gY29uc3QpOgorICAgICAgICAqIHBhZ2UvU2VjdXJpdHlPcmlnaW4uaDoK
KyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6CisgICAgICAgICogcGFnZS9TZXR0aW5nc0Jh
c2UuaDoKKyAgICAgICAgKiBwYWdlL1N0b3JhZ2VCbG9ja2luZ1BvbGljeS5oOiBBZGRlZC4KKyAg
ICAgICAgKiBwYWdlL1RleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IuaDogQWRk
ZWQuCisgICAgICAgICogcGFnZS9Vc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5Lmg6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL0RyYWdJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nn
L1BERkRvY3VtZW50SW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UERGRG9jdW1lbnRJbWFn
ZTo6dXBkYXRlQ2FjaGVkSW1hZ2VJZk5lZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvUERGRG9jdW1lbnRJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvRm9udFJl
bmRlcmluZ01vZGUuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0RGlyZWN0
aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6aXNMZWZ0VG9SaWdodERpcmVjdGlvbik6
CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0RmxhZ3MuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS90ZXh0L1dyaXRpbmdNb2RlLmg6CisgICAgICAgIChXZWJDb3JlOjptYWtlVGV4dEZsb3dJbml0
YWxpemVyKToKKyAgICAgICAgKFdlYkNvcmU6Om1ha2VUZXh0Rmxvdyk6CisgICAgICAgIChXZWJD
b3JlOjppc1JldmVyc2VkVGV4dEZsb3cpOgorICAgICAgICAoV2ViQ29yZTo6aXNGbGlwcGVkVGV4
dEZsb3cpOgorICAgICAgICAoV2ViQ29yZTo6aXNWZXJ0aWNhbFRleHRGbG93KToKKyAgICAgICAg
KFdlYkNvcmU6OmlzVmVydGljYWxXcml0aW5nTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjppc0Zs
aXBwZWRXcml0aW5nTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjppc0hvcml6b250YWxXcml0aW5n
TW9kZSk6CisgICAgICAgIChXZWJDb3JlOjppc0ZsaXBwZWRMaW5lc1dyaXRpbmdNb2RlKToKKyAg
ICAgICAgKFdlYkNvcmU6OmlzSG9yaXpvbnRhbFBoeXNpY2FsU2lkZSk6CisgICAgICAgIChXZWJD
b3JlOjptaXJyb3JQaHlzaWNhbFNpZGUpOgorICAgICAgICAoV2ViQ29yZTo6cm90YXRlUGh5c2lj
YWxTaWRlKToKKyAgICAgICAgKFdlYkNvcmU6Om1hcExvZ2ljYWxTaWRlVG9QaHlzaWNhbFNpZGUp
OgorICAgICAgICAoV2ViQ29yZTo6aXNMZWZ0VG9SaWdodERpcmVjdGlvbik6IERlbGV0ZWQuCisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyOjpjYWxjdWxhdGVDbGlwUmVjdHMgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJC
YWNraW5nOjpwYWludERlYnVnT3ZlcmxheXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXJCYWNraW5nOjpwYWludENvbnRlbnRzKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpC
YWNrdXApOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpyZXN0
b3JlVG8pOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6c2V0RWRpdGluZ0Jl
aGF2aW9yKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldFN0b3JhZ2VC
bG9ja2luZ1BvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRQ
REZJbWFnZUNhY2hpbmdQb2xpY3kpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGw6CisgICAgICAgICog
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZVBhZ2VGb3JTZXJ2aWNlV29ya2VyKToKKyAgICAgICAgKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6U2VydmljZVdvcmtlclRocmVhZFByb3h5
KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFk
UHJveHkuaDoKKwogMjAyMC0xMS0xNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkIGEgV2ViUlRDIFNGcmFtZSB0cmFuc2Zvcm0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZQkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQkod29ya2luZyBjb3B5KQpAQCAtMTg4LDYgKzE4OCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVf
RlJBTUVXT1JLX0hFQURFUlMKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJ
bnRlcmZhY2UuaAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5o
CiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oCisgICAgYWNjZXNz
aWJpbGl0eS9Gb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUuaAogCiAgICAgYWNjZXNzaWJpbGl0eS9p
c29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCiAgICAgYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZFRyZWUuaApAQCAtMzUzLDYgKzM1NCw3IEBAIHNldChXZWJDb3JlX1BS
SVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBjc3MvRGVwcmVjYXRlZENTU09NUmVjdC5oCiAg
ICAgY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmgKICAgICBjc3MvRGVwcmVjYXRlZENTU09NVmFs
dWVMaXN0LmgKKyAgICBjc3MvRm9udExvYWRUaW1pbmdPdmVycmlkZS5oCiAgICAgY3NzL0xlbmd0
aEZ1bmN0aW9ucy5oCiAgICAgY3NzL01lZGlhTGlzdC5oCiAgICAgY3NzL01lZGlhUXVlcnlFdmFs
dWF0b3IuaApAQCAtNTI2LDkgKzUyOCwxMCBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09S
S19IRUFERVJTCiAgICAgZWRpdGluZy9EaWN0YXRpb25Db250ZXh0LmgKICAgICBlZGl0aW5nL0Rp
Y3Rpb25hcnlQb3B1cEluZm8uaAogICAgIGVkaXRpbmcvRWRpdEFjdGlvbi5oCisgICAgZWRpdGlu
Zy9FZGl0YWJsZUxpbmtCZWhhdmlvci5oCiAgICAgZWRpdGluZy9FZGl0aW5nLmgKICAgICBlZGl0
aW5nL0VkaXRpbmdCZWhhdmlvci5oCi0gICAgZWRpdGluZy9FZGl0aW5nQmVoYXZpb3JUeXBlcy5o
CisgICAgZWRpdGluZy9FZGl0aW5nQmVoYXZpb3JUeXBlLmgKICAgICBlZGl0aW5nL0VkaXRpbmdC
b3VuZGFyeS5oCiAgICAgZWRpdGluZy9FZGl0aW5nU3R5bGUuaAogICAgIGVkaXRpbmcvRWRpdG9y
LmgKQEAgLTY5Myw2ICs2OTYsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFE
RVJTCiAKICAgICBodG1sL3BhcnNlci9QYXJzaW5nVXRpbGl0aWVzLmgKICAgICBodG1sL3BhcnNl
ci9IVE1MUGFyc2VySWRpb21zLmgKKyAgICBodG1sL3BhcnNlci9IVE1MUGFyc2VyU2NyaXB0aW5n
RmxhZ1BvbGljeS5oCiAKICAgICBodG1sL3RyYWNrL0F1ZGlvVHJhY2suaAogICAgIGh0bWwvdHJh
Y2svVGV4dFRyYWNrLmgKQEAgLTgzMSw2ICs4MzUsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZS
QU1FV09SS19IRUFERVJTCiAgICAgcGFnZS9ET01XaW5kb3dFeHRlbnNpb24uaAogICAgIHBhZ2Uv
RE9NV2luZG93UHJvcGVydHkuaAogICAgIHBhZ2UvRGF0YWJhc2VQcm92aWRlci5oCisgICAgcGFn
ZS9EZWJ1Z092ZXJsYXlSZWdpb25zLmgKICAgICBwYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmgKICAg
ICBwYWdlL0RlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oCiAgICAgcGFnZS9EZXZpY2VDbGllbnQu
aApAQCAtODQ4LDYgKzg1Myw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURF
UlMKICAgICBwYWdlL0ZvY3VzRGlyZWN0aW9uLmgKICAgICBwYWdlL0ZyYW1lLmgKICAgICBwYWdl
L0ZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5oCisgICAgcGFnZS9GcmFtZUZsYXR0ZW5pbmcuaAog
ICAgIHBhZ2UvRnJhbWVJZGVudGlmaWVyLmgKICAgICBwYWdlL0ZyYW1lU25hcHNob3R0aW5nLmgK
ICAgICBwYWdlL0ZyYW1lVHJlZS5oCkBAIC04NjAsNiArODY2LDcgQEAgc2V0KFdlYkNvcmVfUFJJ
VkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBhZ2UvTWVkaWFQcm9kdWNlci5oCiAgICAgcGFn
ZS9NZW1vcnlSZWxlYXNlLmgKICAgICBwYWdlL05hdmlnYXRvcklzTG9nZ2VkSW4uaAorICAgIHBh
Z2UvUERGSW1hZ2VDYWNoaW5nUG9saWN5LmgKICAgICBwYWdlL1BhZ2UuaAogICAgIHBhZ2UvUGFn
ZUNvbmZpZ3VyYXRpb24uaAogICAgIHBhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaApAQCAtODk2LDEy
ICs5MDMsMTUgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBh
Z2UvU29ja2V0UHJvdmlkZXIuaAogICAgIHBhZ2UvU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5o
CiAgICAgcGFnZS9TcGVlY2hTeW50aGVzaXNDbGllbnQuaAorICAgIHBhZ2UvU3RvcmFnZUJsb2Nr
aW5nUG9saWN5LmgKICAgICBwYWdlL1N1c3BlbmRhYmxlVGltZXIuaAorICAgIHBhZ2UvVGV4dERp
cmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvci5oCiAgICAgcGFnZS9UZXh0SW5kaWNhdG9y
LmgKICAgICBwYWdlL1VzZXJDb250ZW50Q29udHJvbGxlci5oCiAgICAgcGFnZS9Vc2VyQ29udGVu
dFByb3ZpZGVyLmgKICAgICBwYWdlL1VzZXJDb250ZW50VHlwZXMuaAogICAgIHBhZ2UvVXNlckNv
bnRlbnRVUkxQYXR0ZXJuLmgKKyAgICBwYWdlL1VzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3ku
aAogICAgIHBhZ2UvVXNlck1lc3NhZ2VIYW5kbGVyLmgKICAgICBwYWdlL1VzZXJNZXNzYWdlSGFu
ZGxlckRlc2NyaXB0b3IuaAogICAgIHBhZ2UvVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5o
CkBAIC0xMzgxLDExICsxMzkxLDEzIEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hF
QURFUlMKICAgICBwbGF0Zm9ybS9zcWwvU1FMaXRlVHJhbnNhY3Rpb24uaAogCiAgICAgcGxhdGZv
cm0vdGV4dC9CaWRpQ29udGV4dC5oCisgICAgcGxhdGZvcm0vdGV4dC9Gb250UmVuZGVyaW5nTW9k
ZS5oCiAgICAgcGxhdGZvcm0vdGV4dC9TdHJpbmdXaXRoRGlyZWN0aW9uLmgKICAgICBwbGF0Zm9y
bS90ZXh0L1RleHRCb3VuZGFyaWVzLmgKICAgICBwbGF0Zm9ybS90ZXh0L1RleHRDaGVja2VyQ2xp
ZW50LmgKICAgICBwbGF0Zm9ybS90ZXh0L1RleHRDaGVja2luZy5oCiAgICAgcGxhdGZvcm0vdGV4
dC9UZXh0Q29kZWMuaAorICAgIHBsYXRmb3JtL3RleHQvVGV4dERpcmVjdGlvbi5oCiAgICAgcGxh
dGZvcm0vdGV4dC9UZXh0RW5jb2RpbmcuaAogICAgIHBsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5n
UmVnaXN0cnkuaAogICAgIHBsYXRmb3JtL3RleHQvVGV4dEZsYWdzLmgKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy5yYgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MucmIJKHJldmlzaW9uIDI2OTgzMCkKKysr
IFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy5yYgkod29ya2luZyBjb3B5
KQpAQCAtMTMyLDcgKzEzMiw3IEBAIGNsYXNzIFNldHRpbmcKICAgICAgIG5hbWUKICAgICBlbHNp
ZiBuYW1lLnN0YXJ0X3dpdGg/KCJDU1MiLCAiWFNTIiwgIkZUUCIsICJET00iLCAiRE5TIiwgIlBE
RiIsICJJQ0UiLCAiSERSIikKICAgICAgIG5hbWVbMC4uMl0uZG93bmNhc2UgKyBuYW1lWzMuLm5h
bWUubGVuZ3RoXQotICAgIGVsc2lmIG5hbWUuc3RhcnRfd2l0aD8oIkhUVFAiKQorICAgIGVsc2lm
IG5hbWUuc3RhcnRfd2l0aD8oIkhUVFAiLCAiSFRNTCIpCiAgICAgICBuYW1lWzAuLjNdLmRvd25j
YXNlICsgbmFtZVs0Li5uYW1lLmxlbmd0aF0KICAgICBlbHNlCiAgICAgICBuYW1lWzBdLmRvd25j
YXNlICsgbmFtZVsxLi5uYW1lLmxlbmd0aF0KQEAgLTE3NSw3ICsxNzUsOSBAQCBjbGFzcyBTZXR0
aW5nCiAgIGVuZAogCiAgIGRlZiBzZXR0ZXJGdW5jdGlvbk5hbWUKLSAgICBpZiBAbmFtZS5zdGFy
dF93aXRoPygiY3NzIiwgInhzcyIsICJmdHAiLCAiZG9tIiwgImRucyIsICJpY2UiLCAiaGRyIikK
KyAgICBpZiBAbmFtZS5zdGFydF93aXRoPygiaHRtbCIpCisgICAgICAic2V0IiArIEBuYW1lWzAu
LjNdLnVwY2FzZSArIEBuYW1lWzQuLkBuYW1lLmxlbmd0aF0KKyAgICBlbHNpZiBAbmFtZS5zdGFy
dF93aXRoPygiY3NzIiwgInhzcyIsICJmdHAiLCAiZG9tIiwgImRucyIsICJpY2UiLCAiaGRyIikK
ICAgICAgICJzZXQiICsgQG5hbWVbMC4uMl0udXBjYXNlICsgQG5hbWVbMy4uQG5hbWUubGVuZ3Ro
XQogICAgIGVsc2UKICAgICAgICJzZXQiICsgQG5hbWVbMF0udXBjYXNlICsgQG5hbWVbMS4uQG5h
bWUubGVuZ3RoXQpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMzg1LDcg
KzEzODUsNyBAQAogCQk0RTE5NTkyQTBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFRdWVyeS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEUxOTU5MjQwQTM5
REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk0RTE5NTkyQzBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFR
dWVyeUV2YWx1YXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNEUxOTU5MjYwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnlFdmFsdWF0b3IuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0RjE1MzRE
RTExQjUzMkVDMDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9yLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RjE1MzRERDExQjUzMkVDMDAyMUZEODYgLyog
RWRpdGluZ0JlaGF2aW9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKLQkJNEYxNTM0RTAxMUI1MzMwMjAwMjFGRDg2IC8qIEVkaXRpbmdCZWhhdmlvclR5
cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RjE1
MzRERjExQjUzMzAyMDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9yVHlwZXMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0RjE1MzRFMDExQjUzMzAy
MDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9yVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEYxNTM0REYxMUI1MzMwMjAwMjFGRDg2IC8qIEVkaXRp
bmdCZWhhdmlvclR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk0RkE2NUE2QzExMDhBQkVEMDAyNjE1RTAgLyogTWF0aE1MU3BhY2VFbGVtZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RkE2NUE2
QTExMDhBQkVEMDAyNjE1RTAgLyogTWF0aE1MU3BhY2VFbGVtZW50LmggKi87IH07CiAJCTUwMUJB
QUE5MTM5NTBFMkMwMEY3QUNFQiAvKiBXaW5kUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTAxQkFBQTgxMzk1MEUyQzAwRjdBQ0VCIC8qIFdpbmRS
dWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NTA0QUFDQ0UxODM0NDU1OTAwRTNEOUJDIC8qIEluc3BlY3Rvck5vZGVGaW5kZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwNEFBQ0NDMTgzNDQ1NTkw
MEUzRDlCQyAvKiBJbnNwZWN0b3JOb2RlRmluZGVyLmggKi87IH07CkBAIC0zOTEyLDYgKzM5MTIs
MTkgQEAKIAkJQkM0OTE4QzcwQkZFQTA1MDAwOUQ2MzE2IC8qIEpTSFRNTEZyYW1lRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0OTE4QzEw
QkZFQTA1MDAwOUQ2MzE2IC8qIEpTSFRNTEZyYW1lRWxlbWVudC5oICovOyB9OwogCQlCQzQ5MThD
OTBCRkVBMDUwMDA5RDYzMTYgLyogSlNIVE1MSUZyYW1lRWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0OTE4QzMwQkZFQTA1MDAwOUQ2MzE2
IC8qIEpTSFRNTElGcmFtZUVsZW1lbnQuaCAqLzsgfTsKIAkJQkM0OTFCNzkwQzAyM0VGRDAwOUQ2
MzE2IC8qIEpTSFRNTE1hcnF1ZWVFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzQ5MUI3NzBDMDIzRUZEMDA5RDYzMTYgLyogSlNIVE1MTWFy
cXVlZUVsZW1lbnQuaCAqLzsgfTsKKwkJQkM0QTUzMjMyNTYwNTI3NjAwMjhDNTkyIC8qIEVkaXRh
YmxlTGlua0JlaGF2aW9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzRBNTMyMTI1NjA1MjcwMDAyOEM1OTIgLyogRWRpdGFibGVMaW5rQmVoYXZpb3Iu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlCQzRB
NTMyNTI1NjA1NTVGMDAyOEM1OTIgLyogVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhh
dmlvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0
QTUzMjQyNTYwNTU1OTAwMjhDNTkyIC8qIFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVo
YXZpb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQlCQzRBNTMyNzI1NjA1NUQzMDAyOEM1OTIgLyogVXNlckludGVyZmFjZURpcmVjdGlvblBvbGlj
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0QTUz
MjYyNTYwNTVEMzAwMjhDNTkyIC8qIFVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3kuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlCQzRBNTMyOTI1
NjA1NjNCMDAyOEM1OTIgLyogUERGSW1hZ2VDYWNoaW5nUG9saWN5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzRBNTMyODI1NjA1NjNCMDAyOEM1OTIg
LyogUERGSW1hZ2VDYWNoaW5nUG9saWN5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJQkM0QTUzMkIyNTYwNTY2RTAwMjhDNTkyIC8qIEZyYW1lRmxh
dHRlbmluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkM0QTUzMkEyNTYwNTY2RTAwMjhDNTkyIC8qIEZyYW1lRmxhdHRlbmluZy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUJDNEE1MzJEMjU2MDU2RDUw
MDI4QzU5MiAvKiBEZWJ1Z092ZXJsYXlSZWdpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzRBNTMyQzI1NjA1NkQ1MDAyOEM1OTIgLyogRGVidWdP
dmVybGF5UmVnaW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCUJDNEE1MzJGMjU2MDU3Q0QwMDI4QzU5MiAvKiBGb250TG9hZFRpbWluZ092ZXJy
aWRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzRB
NTMyRTI1NjA1N0NEMDAyOEM1OTIgLyogRm9udExvYWRUaW1pbmdPdmVycmlkZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUJDNEE1MzMxMjU2MDU5
MDMwMDI4QzU5MiAvKiBGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNEE1MzMwMjU2MDU5MDMwMDI4QzU5MiAv
KiBGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQlCQzRBNTMzMzI1NjA1OTgzMDAyOEM1OTIgLyogSFRNTFBh
cnNlclNjcmlwdGluZ0ZsYWdQb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDNEE1MzMyMjU2MDU5ODMwMDI4QzU5MiAvKiBIVE1MUGFyc2VyU2Ny
aXB0aW5nRmxhZ1BvbGljeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCUJDNEE1MzM1MjU2MDVBNTYwMDI4QzU5MiAvKiBEYXRhRGV0ZWN0b3JUeXBl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0QTUz
MzQyNTYwNUE1NjAwMjhDNTkyIC8qIERhdGFEZXRlY3RvclR5cGVzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQkM0QTUzMzcyNTYwNUFFMTAwMjhD
NTkyIC8qIFN0b3JhZ2VCbG9ja2luZ1BvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0QTUzMzYyNTYwNUFFMTAwMjhDNTkyIC8qIFN0b3JhZ2VC
bG9ja2luZ1BvbGljeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCUJDNEE1MzM5MjU2MDYzOTgwMDI4QzU5MiAvKiBGb250UmVuZGVyaW5nTW9kZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0QTUzMzgy
NTYwNjM5ODAwMjhDNTkyIC8qIEZvbnRSZW5kZXJpbmdNb2RlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQkM0QTUzM0IyNTYwNjRFMTAwMjhDNTky
IC8qIFRleHREaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDNEE1MzNBMjU2MDY0RTEwMDI4QzU5MiAvKiBUZXh0RGlyZWN0aW9uLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM1MTE1NkUx
MkIxNzQ5QzAwQzk2NzU0IC8qIFNjcm9sbEFuaW1hdG9yTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1MTE1NkQxMkIxNzQ5QzAwQzk2NzU0IC8q
IFNjcm9sbEFuaW1hdG9yTWFjLm1tICovOyB9OwogCQlCQzUzQzVGNTBEQTU2QjkyMDAyMUVCNUQg
LyogR3JhZGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDNTNDNUY0MERBNTZCOTIwMDIxRUI1RCAvKiBHcmFkaWVudC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDNTNDNjkyMERBNTkxMTQwMDIx
RUI1RCAvKiBDU1NHcmFkaWVudFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzUzQzY5MTBEQTU5MTE0MDAyMUVCNUQgLyogQ1NTR3JhZGllbnRW
YWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBA
IC04MzU2LDcgKzgzNjksNyBAQAogCQk0RTE5NTkyNTBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFR
dWVyeUV2YWx1YXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TWVkaWFRdWVyeUV2YWx1YXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRF
MTk1OTI2MEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5RXZhbHVhdG9yLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVF1ZXJ5RXZhbHVhdG9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGMTUzNEREMTFCNTMyRUMwMDIxRkQ4NiAvKiBFZGl0aW5n
QmVoYXZpb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRWRpdGluZ0JlaGF2
aW9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTRGMTUzNERGMTFCNTMzMDIwMDIx
RkQ4NiAvKiBFZGl0aW5nQmVoYXZpb3JUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBFZGl0aW5nQmVoYXZpb3JUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0RjE1MzRERjExQjUzMzAyMDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9yVHlwZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFZGl0aW5nQmVoYXZpb3JUeXBlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGQTY1QTY5MTEwOEFCRUQwMDI2MTVFMCAvKiBN
YXRoTUxTcGFjZUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTWF0aE1MU3BhY2VFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NEZBNjVBNkExMTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFNwYWNlRWxlbWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYXRoTUxTcGFjZUVsZW1lbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEZBQjQ4NjQxNjQzQTY2RDAwRjcwQzA3IC8qIEVsZW1lbnRS
YXJlRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFbGVtZW50
UmFyZURhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM4MTgsNiArMTM4
MzEsMTkgQEAKIAkJQkM0OTFCNEUwQzAyM0UyRDAwOUQ2MzE2IC8qIEhUTUxNYXJxdWVlRWxlbWVu
dC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTE1hcnF1ZWVFbGVtZW50LmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM0OTFCNzYwQzAyM0VGRDAwOUQ2MzE2IC8qIEpT
SFRNTE1hcnF1ZWVFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU0hUTUxNYXJxdWVlRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUJDNDkxQjc3MEMwMjNFRkQwMDlENjMxNiAvKiBKU0hUTUxNYXJxdWVlRWxlbWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MTWFycXVlZUVsZW1lbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM0QTUzMjEyNTYwNTI3MDAwMjhDNTkyIC8q
IEVkaXRhYmxlTGlua0JlaGF2aW9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVkaXRhYmxlTGlua0JlaGF2
aW9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDNEE1MzI0MjU2MDU1NTkwMDI4
QzU5MiAvKiBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM0QTUzMjYyNTYwNTVEMzAwMjhDNTkyIC8qIFVzZXJJbnRl
cmZhY2VEaXJlY3Rpb25Qb2xpY3kuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlckludGVyZmFjZURpcmVj
dGlvblBvbGljeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzRBNTMyODI1NjA1
NjNCMDAyOEM1OTIgLyogUERGSW1hZ2VDYWNoaW5nUG9saWN5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBE
RkltYWdlQ2FjaGluZ1BvbGljeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzRB
NTMyQTI1NjA1NjZFMDAyOEM1OTIgLyogRnJhbWVGbGF0dGVuaW5nLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEZyYW1lRmxhdHRlbmluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzRBNTMy
QzI1NjA1NkQ1MDAyOEM1OTIgLyogRGVidWdPdmVybGF5UmVnaW9ucy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEZWJ1Z092ZXJsYXlSZWdpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJD
NEE1MzJFMjU2MDU3Q0QwMDI4QzU5MiAvKiBGb250TG9hZFRpbWluZ092ZXJyaWRlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEZvbnRMb2FkVGltaW5nT3ZlcnJpZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQkM0QTUzMzAyNTYwNTkwMzAwMjhDNTkyIC8qIEZvcmNlZEFjY2Vzc2liaWxpdHlW
YWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM0QTUzMzIyNTYwNTk4MzAwMjhDNTkyIC8qIEhUTUxQ
YXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxQYXJzZXJTY3Jp
cHRpbmdGbGFnUG9saWN5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDNEE1MzM0
MjU2MDVBNTYwMDI4QzU5MiAvKiBEYXRhRGV0ZWN0b3JUeXBlcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
YXRhRGV0ZWN0b3JUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzRBNTMz
NjI1NjA1QUUxMDAyOEM1OTIgLyogU3RvcmFnZUJsb2NraW5nUG9saWN5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFN0b3JhZ2VCbG9ja2luZ1BvbGljeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlCQzRBNTMzODI1NjA2Mzk4MDAyOEM1OTIgLyogRm9udFJlbmRlcmluZ01vZGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRm9udFJlbmRlcmluZ01vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQkM0QTUzM0EyNTYwNjRFMTAwMjhDNTkyIC8qIFRleHREaXJlY3Rpb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gVGV4dERpcmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzUx
MTU2RDEyQjE3NDlDMDBDOTY3NTQgLyogU2Nyb2xsQW5pbWF0b3JNYWMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxBbmltYXRvck1hYy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1MTU4MEEwQzAzRDQwNDAwOEJCMEVFIC8qIEpTSFRN
TERvY3VtZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU0hUTUxEb2N1bWVudEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUJDNTNDNUY0MERBNTZCOTIwMDIxRUI1RCAvKiBHcmFkaWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBHcmFkaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTg4NzgsNiArMTg5MDQsNyBAQAogCQkJCTI5ODFDQUFGMTMxODIyRUMwMEQxMkYyQSAvKiBB
WE9iamVjdENhY2hlLmNwcCAqLywKIAkJCQkyOUE4MTIxQTBGQkI5QzFEMDA1MTAyOTMgLyogQVhP
YmplY3RDYWNoZS5oICovLAogCQkJCTkxQzlGMkY4MUFFM0JFMjQwMDk1QjYxQyAvKiBBWFRleHRT
dGF0ZUNoYW5nZUludGVudC5oICovLAorCQkJCUJDNEE1MzMwMjU2MDU5MDMwMDI4QzU5MiAvKiBG
b3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gYWNjZXNzaWJp
bGl0eTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yMTc4MCw2ICsyMTgwNyw3IEBA
CiAJCQkJOTc1Q0EyODkxMzAzNjVGODAwRTk5QUQ5IC8qIENyeXB0by5pZGwgKi8sCiAJCQkJMUFD
QjJCMjExQTU3MzNGNDAwMzMzMzkyIC8qIERhdGFiYXNlUHJvdmlkZXIuY3BwICovLAogCQkJCTFB
Q0IyQjIyMUE1NzMzRjQwMDMzMzM5MiAvKiBEYXRhYmFzZVByb3ZpZGVyLmggKi8sCisJCQkJQkM0
QTUzMkMyNTYwNTZENTAwMjhDNTkyIC8qIERlYnVnT3ZlcmxheVJlZ2lvbnMuaCAqLywKIAkJCQkw
RjZBMTJCQjFBMDA5MjM3MDBDNkRFNzIgLyogRGVidWdQYWdlT3ZlcmxheXMuY3BwICovLAogCQkJ
CTBGNkExMkJDMUEwMDkyMzcwMEM2REU3MiAvKiBEZWJ1Z1BhZ2VPdmVybGF5cy5oICovLAogCQkJ
CTdDQkQxMjlDMUY5OEI1RkYwMDEyN0QyOSAvKiBEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuY3Bw
ICovLApAQCAtMjE4MzIsNiArMjE4NjAsNyBAQAogCQkJCTY1QkYwMjJBMDk3NDgxNjMwMEM0MzE5
NiAvKiBGcmFtZS5oICovLAogCQkJCTk3NEE4NjIwMTRCN0FEQkIwMDNGREM3NiAvKiBGcmFtZURl
c3RydWN0aW9uT2JzZXJ2ZXIuY3BwICovLAogCQkJCTk3NEE4NjIxMTRCN0FEQkIwMDNGREM3NiAv
KiBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaCAqLywKKwkJCQlCQzRBNTMyQTI1NjA1NjZFMDAy
OEM1OTIgLyogRnJhbWVGbGF0dGVuaW5nLmggKi8sCiAJCQkJMEYxMTc4MTYyMkUzQzQ3RTAwOEJE
NTcwIC8qIEZyYW1lSWRlbnRpZmllci5oICovLAogCQkJCUM0Q0Q2Mjk4MTgzODM3NjYwMDdFQkFG
MSAvKiBGcmFtZVNuYXBzaG90dGluZy5jcHAgKi8sCiAJCQkJQzRDRDYyOTkxODM4Mzc2NjAwN0VC
QUYxIC8qIEZyYW1lU25hcHNob3R0aW5nLmggKi8sCkBAIC0yMTkwMiw2ICsyMTkzMSw3IEBACiAJ
CQkJMkQ1QzlDRkUxOUM3QjUyRTAwQjNDNUMxIC8qIFBhZ2VPdmVybGF5Q29udHJvbGxlci5oICov
LAogCQkJCTM3MUU2NUNEMTM2NjFFRUQwMEJFRURCMCAvKiBQYWdlU2VyaWFsaXplci5jcHAgKi8s
CiAJCQkJMzcxRTY1Q0IxMzY2MUVEQzAwQkVFREIwIC8qIFBhZ2VTZXJpYWxpemVyLmggKi8sCisJ
CQkJQkM0QTUzMjgyNTYwNTYzQjAwMjhDNTkyIC8qIFBERkltYWdlQ2FjaGluZ1BvbGljeS5oICov
LAogCQkJCTdDNzI0NzFFMjUxNjc1ODgwMEMzNjNDRCAvKiBQZXJmb3JtYW5jZStOYXZpZ2F0aW9u
VGltaW5nLmlkbCAqLywKIAkJCQk3QzcyNDcxQzI1MTY3NENFMDBDMzYzQ0QgLyogUGVyZm9ybWFu
Y2UrUGVyZm9ybWFuY2VUaW1lbGluZS5pZGwgKi8sCiAJCQkJN0M3MjQ3MUQyNTE2NzUyQzAwQzM2
M0NEIC8qIFBlcmZvcm1hbmNlK1Jlc291cmNlVGltaW5nLmlkbCAqLywKQEAgLTIyMDI1LDggKzIy
MDU1LDEwIEBACiAJCQkJNjI2Q0RFMEQxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0
aW9uLmggKi8sCiAJCQkJOTNBMDQ4MjYyNTQ5NTUwMDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0
aW9uUHJvdmlkZXIuaCAqLywKIAkJCQlDMTQ5MzgwNTIyMzQyNzE5MDAwQ0Q3MDcgLyogU3BlZWNo
U3ludGhlc2lzQ2xpZW50LmggKi8sCisJCQkJQkM0QTUzMzYyNTYwNUFFMTAwMjhDNTkyIC8qIFN0
b3JhZ2VCbG9ja2luZ1BvbGljeS5oICovLAogCQkJCTYyQzEyMTdBMTFBQjlFNzYwMDNDNDYyQyAv
KiBTdXNwZW5kYWJsZVRpbWVyLmNwcCAqLywKIAkJCQk2MkMxMjE3QjExQUI5RTc3MDAzQzQ2MkMg
LyogU3VzcGVuZGFibGVUaW1lci5oICovLAorCQkJCUJDNEE1MzI0MjU2MDU1NTkwMDI4QzU5MiAv
KiBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yLmggKi8sCiAJCQkJMkQ0Rjk2
RjExQTFFQ0MyNDAwOThCRjg4IC8qIFRleHRJbmRpY2F0b3IuY3BwICovLAogCQkJCTJENEY5NkYy
MUExRUNDMjQwMDk4QkY4OCAvKiBUZXh0SW5kaWNhdG9yLmggKi8sCiAJCQkJRjRFMTk2NUYyMUYy
NkU0RTAwMjg1MDc4IC8qIFVuZG9JdGVtLmNwcCAqLywKQEAgLTIyMDQyLDYgKzIyMDc0LDcgQEAK
IAkJCQkwMDNGMUZFOTExRTZBQjQzMDA4MjU4RDkgLyogVXNlckNvbnRlbnRUeXBlcy5oICovLAog
CQkJCUJDQUNGM0JBMTA3MjkyMUEwMEMwQzhBMyAvKiBVc2VyQ29udGVudFVSTFBhdHRlcm4uY3Bw
ICovLAogCQkJCUJDQUNGM0JCMTA3MjkyMUEwMEMwQzhBMyAvKiBVc2VyQ29udGVudFVSTFBhdHRl
cm4uaCAqLywKKwkJCQlCQzRBNTMyNjI1NjA1NUQzMDAyOEM1OTIgLyogVXNlckludGVyZmFjZURp
cmVjdGlvblBvbGljeS5oICovLAogCQkJCTdDM0I3OTZGMTkwODc1N0IwMEI0N0EyRCAvKiBVc2Vy
TWVzc2FnZUhhbmRsZXIuY3BwICovLAogCQkJCTdDM0I3OTcwMTkwODc1N0IwMEI0N0EyRCAvKiBV
c2VyTWVzc2FnZUhhbmRsZXIuaCAqLywKIAkJCQk3QzczRkIwRTE5MUVGNjBFMDA3REUwNjEgLyog
VXNlck1lc3NhZ2VIYW5kbGVyLmlkbCAqLywKQEAgLTIyNTQwLDYgKzIyNTczLDcgQEAKIAkJCQk1
Q0NDMjcwNjIyRDUzQjY4MDA5NjRGQTAgLyogQXV0b2ZpbGxFbGVtZW50cy5oICovLAogCQkJCUM1
MjI3REVGMUMzQzZERDcwMEY1RUQ1NCAvKiBEYXRhRGV0ZWN0aW9uLmggKi8sCiAJCQkJQzUyMjdE
RjAxQzNDNkRENzAwRjVFRDU0IC8qIERhdGFEZXRlY3Rpb24ubW0gKi8sCisJCQkJQkM0QTUzMzQy
NTYwNUE1NjAwMjhDNTkyIC8qIERhdGFEZXRlY3RvclR5cGVzLmggKi8sCiAJCQkJOTM3RkYzRDYx
QTEwMTMxQjAwOEVCQTMxIC8qIERpY3Rpb25hcnlMb29rdXAubW0gKi8sCiAJCQkJOUI1NUVFRTgx
QjNFODg5ODAwNTM0MkJDIC8qIEVkaXRvckNvY29hLm1tICovLAogCQkJCUY0MkNFQjU0MjE0MDMx
RUUwMDJEQ0E3MiAvKiBGb250QXR0cmlidXRlQ2hhbmdlc0NvY29hLm1tICovLApAQCAtMjI4NDYs
NiArMjI4ODAsNyBAQAogCQkJCUNFQ0FERkM1MTUzNzc4RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25D
b21tYW5kLmggKi8sCiAJCQkJOTM4NDMwQjIyNDc1REUzRjAwM0Y5NjE3IC8qIERpY3RhdGlvbkNv
bnRleHQuaCAqLywKIAkJCQkyRDU2NDZBRjFCOEY4NDkzMDAzQzQ5OTQgLyogRGljdGlvbmFyeVBv
cHVwSW5mby5oICovLAorCQkJCUJDNEE1MzIxMjU2MDUyNzAwMDI4QzU5MiAvKiBFZGl0YWJsZUxp
bmtCZWhhdmlvci5oICovLAogCQkJCUY0OUU5OEU0MjFERUU2QzEwMDlBRTU1RSAvKiBFZGl0QWN0
aW9uLmNwcCAqLywKIAkJCQk5MzMwOUQ5MzA5OUU2NDkxMDA1NkU1ODEgLyogRWRpdEFjdGlvbi5o
ICovLAogCQkJCTkzMzA5RDk0MDk5RTY0OTEwMDU2RTU4MSAvKiBFZGl0Q29tbWFuZC5jcHAgKi8s
CkBAIC0yMjg1Myw3ICsyMjg4OCw3IEBACiAJCQkJOTMzMDlEOTgwOTlFNjQ5MTAwNTZFNTgxIC8q
IEVkaXRpbmcuY3BwICovLAogCQkJCTkzMzA5RDk5MDk5RTY0OTEwMDU2RTU4MSAvKiBFZGl0aW5n
LmggKi8sCiAJCQkJNEYxNTM0REQxMUI1MzJFQzAwMjFGRDg2IC8qIEVkaXRpbmdCZWhhdmlvci5o
ICovLAotCQkJCTRGMTUzNERGMTFCNTMzMDIwMDIxRkQ4NiAvKiBFZGl0aW5nQmVoYXZpb3JUeXBl
cy5oICovLAorCQkJCTRGMTUzNERGMTFCNTMzMDIwMDIxRkQ4NiAvKiBFZGl0aW5nQmVoYXZpb3JU
eXBlLmggKi8sCiAJCQkJM0FDNjQ4QjExMjlFMTQ2NTAwQzNFQjI1IC8qIEVkaXRpbmdCb3VuZGFy
eS5oICovLAogCQkJCTlCQUI2QzZCMTI1NTA2MzEwMDE2MjZENCAvKiBFZGl0aW5nU3R5bGUuY3Bw
ICovLAogCQkJCTlCQUI2QzZBMTI1NTA2MzEwMDE2MjZENCAvKiBFZGl0aW5nU3R5bGUuaCAqLywK
QEAgLTIzODk1LDYgKzIzOTMwLDcgQEAKIAkJCQk5NzNGNDE4ODE2OUI5NUVGMDAwNkJGNjAgLyog
SFRNTFBhcnNlck9wdGlvbnMuaCAqLywKIAkJCQk5NzdCMzg1NzEyMjg4M0U5MDBCODFGRjggLyog
SFRNTFBhcnNlclNjaGVkdWxlci5jcHAgKi8sCiAJCQkJOTc3QjM4NTgxMjI4ODNFOTAwQjgxRkY4
IC8qIEhUTUxQYXJzZXJTY2hlZHVsZXIuaCAqLywKKwkJCQlCQzRBNTMzMjI1NjA1OTgzMDAyOEM1
OTIgLyogSFRNTFBhcnNlclNjcmlwdGluZ0ZsYWdQb2xpY3kuaCAqLywKIAkJCQk5NzdCMzg1OTEy
Mjg4M0U5MDBCODFGRjggLyogSFRNTFByZWxvYWRTY2FubmVyLmNwcCAqLywKIAkJCQk5NzdCMzg1
QTEyMjg4M0U5MDBCODFGRjggLyogSFRNTFByZWxvYWRTY2FubmVyLmggKi8sCiAJCQkJQThEMjIz
RkIxNkI1MkU0RTAwMTU3Mjg4IC8qIEhUTUxSZXNvdXJjZVByZWxvYWRlci5jcHAgKi8sCkBAIC0y
NjU1Nyw2ICsyNjU5Myw3IEBACiAJCQkJQ0VDQ0ZDM0ExNDE5NzNENTAwMkEwQUMxIC8qIERlY29k
ZUVzY2FwZVNlcXVlbmNlcy5oICovLAogCQkJCURGQzYxMEEyMjRGQjJBN0MwMDYyNTRDOCAvKiBF
bmNvZGluZ1RhYmxlcy5jcHAgKi8sCiAJCQkJREZDNjEwQTQyNEZCMkE3RDAwNjI1NEM4IC8qIEVu
Y29kaW5nVGFibGVzLmggKi8sCisJCQkJQkM0QTUzMzgyNTYwNjM5ODAwMjhDNTkyIC8qIEZvbnRS
ZW5kZXJpbmdNb2RlLmggKi8sCiAJCQkJMzc1Q0QyMzExMTlENDNDODAwQTJBODU5IC8qIEh5cGhl
bmF0aW9uLmggKi8sCiAJCQkJNzYzM0E3MjUxM0Q4QjMzQTAwODUwMUI2IC8qIExvY2FsZVRvU2Ny
aXB0TWFwcGluZy5jcHAgKi8sCiAJCQkJNzYzM0E3MjQxM0Q4QjMzQTAwODUwMUI2IC8qIExvY2Fs
ZVRvU2NyaXB0TWFwcGluZy5oICovLApAQCAtMjY1OTEsNiArMjY2MjgsNyBAQAogCQkJCUIyQzNE
QTEyMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNVVEYxNi5oICovLAogCQkJCTkzNDNDQjdG
MTJGMjVFNTEwMDMzQzVFRSAvKiBUZXh0Q29kZWNVVEY4LmNwcCAqLywKIAkJCQk5MzQzQ0I4MDEy
RjI1RTUxMDAzM0M1RUUgLyogVGV4dENvZGVjVVRGOC5oICovLAorCQkJCUJDNEE1MzNBMjU2MDY0
RTEwMDI4QzU5MiAvKiBUZXh0RGlyZWN0aW9uLmggKi8sCiAJCQkJQjJDM0RBMTYwRDAwNkMxRDAw
RUY2RjI2IC8qIFRleHRFbmNvZGluZy5jcHAgKi8sCiAJCQkJQjJDM0RBMTcwRDAwNkMxRDAwRUY2
RjI2IC8qIFRleHRFbmNvZGluZy5oICovLAogCQkJCUMxMDVEQTYzMEYzQUE2QjgwMDFERDQ0RiAv
KiBUZXh0RW5jb2RpbmdEZXRlY3Rvci5oICovLApAQCAtMjkyMjksNiArMjkyNjcsNyBAQAogCQkJ
CTFDMjRFRUEzMUM3MjlDRTQwMDgwRjhGQyAvKiBGb250RmFjZVNldC5oICovLAogCQkJCTFDMjRF
RUExMUM3MjlCMzIwMDgwRjhGQyAvKiBGb250RmFjZVNldC5pZGwgKi8sCiAJCQkJN0MzQThBQkMy
NTA5QTI1NjAwOEM0NzdGIC8qIEZvbnRGYWNlU291cmNlLmlkbCAqLywKKwkJCQlCQzRBNTMyRTI1
NjA1N0NEMDAyOEM1OTIgLyogRm9udExvYWRUaW1pbmdPdmVycmlkZS5oICovLAogCQkJCUMyQUIw
QjAzMUU2REU5MkMwMDEzNDhDNSAvKiBGb250U2VsZWN0aW9uVmFsdWVJbmxpbmVzLmggKi8sCiAJ
CQkJMUMzMjQ5MTAxQzZENkEzQjAwN0VEQjMyIC8qIEZvbnRWYXJpYW50QnVpbGRlci5jcHAgKi8s
CiAJCQkJQzIwMTVDMDkxQkU2RkUyQzAwODIyMzg5IC8qIEZvbnRWYXJpYW50QnVpbGRlci5oICov
LApAQCAtMzE0NjksNiArMzE1MDgsNyBAQAogCQkJCUJFMjM0ODBEMThBOTg3MTQwMEU0QjZFOCAv
KiBEYXRhQ3VlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTIyN0RGMTFDM0M2REYxMDBGNUVENTQg
LyogRGF0YURldGVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M3OTQxRTUxQzU2QzI5MzAw
QTRDNThFIC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUJDNEE1MzM1MjU2MDVBNTYwMDI4QzU5MiAvKiBEYXRhRGV0ZWN0b3JUeXBlcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRTU4QjQ1QkEyMEFEMDdERDAwOTkxMDI1IC8qIERhdGFMaXN0QnV0dG9uRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTUxNzY3MDMyMEI4OEMxNDAwRDQxMTY3IC8qIERh
dGFMaXN0U3VnZ2VzdGlvbkluZm9ybWF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNTJDRjU0
RjIwQTM1QTI4MDBEQURBMjcgLyogRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmggaW4gSGVhZGVy
cyAqLywKQEAgLTMxNDkxLDYgKzMxNTMxLDcgQEAKIAkJCQlGNTVCM0RCQTEyNTFGMTJEMDAzRUYy
NjkgLyogRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTVGMDZB
RUIyNEQ0OUJGNzAwQkJDNEY4IC8qIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRTVGMDZBRUYyNEQ0QTYzNzAwQkJDNEY4IC8qIERhdGVUaW1lU3ltYm9s
aWNGaWVsZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDNEE1MzJEMjU2MDU2RDUwMDI4
QzU5MiAvKiBEZWJ1Z092ZXJsYXlSZWdpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjZBMTJC
RTFBMDA5MjM3MDBDNkRFNzIgLyogRGVidWdQYWdlT3ZlcmxheXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQ1RkVBNUQwMTU2RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmggaW4gSGVhZGVycyAqLywK
IAkJCQk3MTVBRDcyMDIwNTA1MTMyMDBENTkyREMgLyogRGVjbGFyYXRpdmVBbmltYXRpb24uaCBp
biBIZWFkZXJzICovLApAQCAtMzE2NzEsMTEgKzMxNzEyLDEyIEBACiAJCQkJRkQ1MzczNTcxMzdC
NjUzQjAwMDA4RENFIC8qIER5bmFtaWNzQ29tcHJlc3Nvcktlcm5lbC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRkQ2RUQyQzQxMzZCOEU0MjAwM0NGMDcyIC8qIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTgzN0MwQjc2MjREQjM4NTAwMDVENTk1OSAvKiBEeW5hbWlj
c0NvbXByZXNzb3JPcHRpb25zLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzRBNTMyMzI1NjA1Mjc2
MDAyOEM1OTIgLyogRWRpdGFibGVMaW5rQmVoYXZpb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
MzA5REUyMDk5RTY0OTIwMDU2RTU4MSAvKiBFZGl0QWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5MzMwOURFNDA5OUU2NDkyMDA1NkU1ODEgLyogRWRpdENvbW1hbmQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTkzMzA5REU4MDk5RTY0OTIwMDU2RTU4MSAvKiBFZGl0aW5nLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0RjE1MzRERTExQjUzMkVDMDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9yLmggaW4g
SGVhZGVycyAqLywKLQkJCQk0RjE1MzRFMDExQjUzMzAyMDAyMUZEODYgLyogRWRpdGluZ0JlaGF2
aW9yVHlwZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTRGMTUzNEUwMTFCNTMzMDIwMDIxRkQ4NiAv
KiBFZGl0aW5nQmVoYXZpb3JUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzQUM2NDhCMjEyOUUx
NDY1MDBDM0VCMjUgLyogRWRpdGluZ0JvdW5kYXJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQk5QkFC
NkM2QzEyNTUwNjMxMDAxNjI2RDQgLyogRWRpdGluZ1N0eWxlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0QjMwNDNDRDBBRTAzNzNCMDBBODI2NDcgLyogRWRpdG9yLmggaW4gSGVhZGVycyAqLywKQEAg
LTMxODQ2LDE1ICszMTg4OCwxOCBAQAogCQkJCTFDNjYyNjExMUM2RTdDQTYwMEFCNTI3QyAvKiBG
b250RmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUMyNEVFQTUxQzcyOUNFNDAwODBGOEZDIC8q
IEZvbnRGYWNlU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzEyQUMyQjFFRTc3OEFFMDA3OUUw
QTAgLyogRm9udEZhbWlseVNwZWNpZmljYXRpb25Db3JlVGV4dC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJQkM0QTUzMkYyNTYwNTdDRDAwMjhDNTkyIC8qIEZvbnRMb2FkVGltaW5nT3ZlcnJpZGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTA4NDU2ODA4MTJCOTBEQTYwMDk2MEE5RiAvKiBGb250TWV0cmlj
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjUzMjBENkIxMjJBMjRFOTAwMkQxNDQwIC8qIEZvbnRQ
bGF0Zm9ybURhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3MUY0RkZDMEQyNUU3RjMwMEVDRTBE
NSAvKiBGb250UmFuZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzRBNTMzOTI1NjA2Mzk4MDAy
OEM1OTIgLyogRm9udFJlbmRlcmluZ01vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUMyQUIwQUY3
MUU2QjNDNkMwMDEzNDhDNSAvKiBGb250U2VsZWN0aW9uQWxnb3JpdGhtLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCMkMzREE2QjBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udFNlbGVjdG9yLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlFNDE5MDQxRjFDQzY0ODZCMDBDMzVGNUQgLyogRm9udFNlbGVjdG9yQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlGNDhEMkE2QzIxNTYyM0I0MDBDNjc1MkIgLyogRm9u
dFNoYWRvdy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEE2RTlGQzgxM0MxN0Q1NzAwNDZBN0Y4IC8q
IEZvbnRUYWdnZWRTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzIwMTVDMEExQkU2RkVC
MjAwODIyMzg5IC8qIEZvbnRWYXJpYW50QnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM0
QTUzMzEyNTYwNTkwMzAwMjhDNTkyIC8qIEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNEEwREEyRkYxMjlCMjQxOTAwQUI2MUUxIC8qIEZvcm1Bc3NvY2lhdGVk
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDA1Q0VEMkEwQTQwQkIyQzAwQzVBRjM4IC8q
IEZvcm1hdEJsb2NrQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NFNkNCRkIxODdGMzcw
NzAwRDQ2QkY1IC8qIEZvcm1hdENvbnZlcnRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTg3Miw2
ICszMTkxNyw3IEBACiAJCQkJQTg1MzEyM0QxMUQwNDcxQjAwRDREMDc3IC8qIEZyYWdtZW50U2Ny
aXB0aW5nUGVybWlzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVCRjAyMkYwOTc0ODE2MzAw
QzQzMTk2IC8qIEZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzRBODYyMzE0QjdBREJCMDAz
RkRDNzYgLyogRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlC
QzRBNTMyQjI1NjA1NjZFMDAyOEM1OTIgLyogRnJhbWVGbGF0dGVuaW5nLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjExNzgxODIyRTNDNDdGMDA4QkQ1NzAgLyogRnJhbWVJZGVudGlmaWVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk2NTZEMzczQzBBREJBNURFMDBBNDU1NEQgLyogRnJhbWVMb2FkZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTY1NkQzNzNFMEFEQkE1REUwMEE0NTU0RCAvKiBGcmFtZUxv
YWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjA3Myw2ICszMjExOSw3IEBACiAJCQkJ
OTNFMkEzMDcxMjNFOURDMDAwOUZFMTJBIC8qIEhUTUxQYXJzZXJJZGlvbXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTk3M0Y0MThBMTY5Qjk1RkYwMDA2QkY2MCAvKiBIVE1MUGFyc2VyT3B0aW9ucy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTc3QjM4NzExMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxQYXJz
ZXJTY2hlZHVsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDNEE1MzMzMjU2MDU5ODMwMDI4QzU5
MiAvKiBIVE1MUGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkNDMEU4NzYxQkZFNzBFOTAwOEY3RjUwIC8qIEhUTUxQaWN0dXJlRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTg3MUQ0NTYwQTEyN0NCQzAwQjEyQTY4IC8qIEhUTUxQbHVnSW5FbGVtZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NDE1MjkyRTBFMUFFOEEwMDBDNEEyRDAgLyogSFRNTFBs
dWdJbkltYWdlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMzY5MSw2ICszMzczOCw3IEBA
CiAJCQkJQTFERkQ1MjYyMzM0NTk0ODAwNDJGQ0RCIC8qIFBheW1lbnRTdW1tYXJ5SXRlbXMuaCBp
biBIZWFkZXJzICovLAogCQkJCUExNjc3REZEMjEzRTAwNjYwMEEwOEMzNCAvKiBQYXltZW50VmFs
aWRhdGlvbkVycm9ycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjI3NTM1NjUwQjA1MzgxNDAwMkNF
NjRGIC8qIFBERkRvY3VtZW50SW1hZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDNEE1MzI5MjU2
MDU2M0IwMDI4QzU5MiAvKiBQREZJbWFnZUNhY2hpbmdQb2xpY3kuaCBpbiBIZWFkZXJzICovLAog
CQkJCTVFMkM0MzUxMUJDRUUyRjYwMDAxRTJCQyAvKiBQZWVyQ29ubmVjdGlvbkJhY2tlbmQuaCBp
biBIZWFkZXJzICovLAogCQkJCTVFQkI4OTM5MUM3N0MzOTkwMEM2NUQ0MSAvKiBQZWVyTWVkaWFE
ZXNjcmlwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOEE3Q0M5NkIxMjA3NkQ3MzAwMUQ0NTg4
IC8qIFBlbmRpbmdTY3JpcHQuaCBpbiBIZWFkZXJzICovLApAQCAtMzQzOTUsNiArMzQ0NDMsNyBA
QAogCQkJCUU3RkJFN0MzMjRFQjJGQjYwMEExOEU2MiAvKiBTdGVyZW9QYW5uZXJPcHRpb25zLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQUMyRDg0NTE3MTczNEExMDA2NTJGQzAgLyogU3RvcmFnZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTFCRTM3RTAwREFFRTAwRTAwMTA4NUZDIC8qIFN0b3JhZ2VB
cmVhLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzRBNTMzNzI1NjA1QUUxMDAyOEM1OTIgLyogU3Rv
cmFnZUJsb2NraW5nUG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUUwQkFCQjBEQTU1NDcx
MDBBOUU0MTcgLyogU3RvcmFnZUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlDNUVCREQ4NDEw
NUVEREVDMDA1NjgxNkYgLyogU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTFFMEJCMzgwREE1QUNCNjAwQTlFNDE3IC8qIFN0b3JhZ2VNYXAuaCBpbiBIZWFkZXJz
ICovLApAQCAtMzQ3MTEsNiArMzQ3NjAsOCBAQAogCQkJCTE0MkI5N0NBMTMxMzg5NDMwMDhCRUY0
QiAvKiBUZXh0Q29udHJvbElubmVyRWxlbWVudHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU4MkRF
MzI1MUMzMEM4NTQwMEJFMDJBOCAvKiBUZXh0RGVjb3JhdGlvblBhaW50ZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFDNzNBNzE1MjE4NTc1ODcwMDRDQ0VBNSAvKiBUZXh0RGVjb3JhdGlvblRoaWNr
bmVzcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM0QTUzM0IyNTYwNjRFMTAwMjhDNTkyIC8qIFRl
eHREaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUJDNEE1MzI1MjU2MDU1NUYwMDI4QzU5
MiAvKiBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5N0JDODRCNDEyMzcxMTgwMDAwQzYxNjEgLyogVGV4dERvY3VtZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5N0JDODQ4NDEyMzZGRDkzMDAwQzYxNjEgLyogVGV4dERvY3VtZW50UGFy
c2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREE0NzBEMDA2QzFEMDBFRjZGMjYgLyogVGV4
dEVuY29kaW5nLmggaW4gSGVhZGVycyAqLywKQEAgLTM0ODM4LDYgKzM0ODg5LDcgQEAKIAkJCQlG
MzJCRENEOTIzNjNBQUNBMDA3M0I2QUUgLyogVXNlckdlc3R1cmVFbXVsYXRpb25TY29wZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMjU0MkY0REIxMTY2QzI1QTAwRTg5QTg2IC8qIFVzZXJHZXN0dXJl
SW5kaWNhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OTIwMzk4MzE4Qjk1QkM2MDBCMzlBRjkg
LyogVXNlcklucHV0QnJpZGdlLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzRBNTMyNzI1NjA1NUQz
MDAyOEM1OTIgLyogVXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNzFDOTE2MDgxRDE0ODNBMzAwQUNBNDdEIC8qIFVzZXJJbnRlcmZhY2VMYXlvdXREaXJl
Y3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTJFMTdEMTREMUMwMDQyMEFBMSAvKiBV
c2VyTWVkaWFDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTJGMTdEMTREMUMwMDQy
MEFBMSAvKiBVc2VyTWVkaWFDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9Gb3JjZWRBY2Nlc3NpYmlsaXR5
VmFsdWUuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Zv
cmNlZEFjY2Vzc2liaWxpdHlWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVt
IGNsYXNzIEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZSA6IHVpbnQ4X3QgeworICAgIFN5c3RlbSwK
KyAgICBPbiwKKyAgICBPZmYKK307CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250RmFjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNl
LmNwcAkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDU5LDkgKzQ1OSw5IEBAIEFsbG93VXNlckluc3RhbGxl
ZEZvbnRzIENTU0ZvbnRGYWNlOjphbGwKICAgICByZXR1cm4gQWxsb3dVc2VySW5zdGFsbGVkRm9u
dHM6OlllczsKIH0KIAotc3RhdGljIFNldHRpbmdzOjpGb250TG9hZFRpbWluZ092ZXJyaWRlIGZv
bnRMb2FkVGltaW5nT3ZlcnJpZGUoQ1NTRm9udFNlbGVjdG9yKiBmb250U2VsZWN0b3IpCitzdGF0
aWMgRm9udExvYWRUaW1pbmdPdmVycmlkZSBmb250TG9hZFRpbWluZ092ZXJyaWRlKENTU0ZvbnRT
ZWxlY3RvciogZm9udFNlbGVjdG9yKQogewotICAgIGF1dG8gb3ZlcnJpZGVWYWx1ZSA9IFNldHRp
bmdzOjpGb250TG9hZFRpbWluZ092ZXJyaWRlOjpOb25lOworICAgIGF1dG8gb3ZlcnJpZGVWYWx1
ZSA9IEZvbnRMb2FkVGltaW5nT3ZlcnJpZGU6Ok5vbmU7CiAgICAgaWYgKGZvbnRTZWxlY3RvciAm
JiBmb250U2VsZWN0b3ItPmRvY3VtZW50KCkpCiAgICAgICAgIG92ZXJyaWRlVmFsdWUgPSBmb250
U2VsZWN0b3ItPmRvY3VtZW50KCktPnNldHRpbmdzKCkuZm9udExvYWRUaW1pbmdPdmVycmlkZSgp
OwogICAgIHJldHVybiBvdmVycmlkZVZhbHVlOwpAQCAtNDcwLDcgKzQ3MCw3IEBAIHN0YXRpYyBT
ZXR0aW5nczo6Rm9udExvYWRUaW1pbmdPdmVycmlkZSAKIGF1dG8gQ1NTRm9udEZhY2U6OmZvbnRM
b2FkVGltaW5nKCkgY29uc3QgLT4gRm9udExvYWRUaW1pbmcKIHsKICAgICBzd2l0Y2ggKGZvbnRM
b2FkVGltaW5nT3ZlcnJpZGUobV9mb250U2VsZWN0b3IuZ2V0KCkpKSB7Ci0gICAgY2FzZSBTZXR0
aW5nczo6Rm9udExvYWRUaW1pbmdPdmVycmlkZTo6Tm9uZToKKyAgICBjYXNlIEZvbnRMb2FkVGlt
aW5nT3ZlcnJpZGU6Ok5vbmU6CiAgICAgICAgIHN3aXRjaCAobV9sb2FkaW5nQmVoYXZpb3IpIHsK
ICAgICAgICAgY2FzZSBGb250TG9hZGluZ0JlaGF2aW9yOjpBdXRvOgogICAgICAgICBjYXNlIEZv
bnRMb2FkaW5nQmVoYXZpb3I6OkJsb2NrOgpAQCAtNDgzLDExICs0ODMsMTEgQEAgYXV0byBDU1NG
b250RmFjZTo6Zm9udExvYWRUaW1pbmcoKSBjb25zdAogICAgICAgICAgICAgcmV0dXJuIHsgMC4x
X3MsIDBfcyB9OwogICAgICAgICB9CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgY2FzZSBTZXR0aW5nczo6Rm9udExvYWRUaW1pbmdPdmVycmlkZTo6QmxvY2s6Cisg
ICAgY2FzZSBGb250TG9hZFRpbWluZ092ZXJyaWRlOjpCbG9jazoKICAgICAgICAgcmV0dXJuIHsg
U2Vjb25kczo6aW5maW5pdHkoKSwgMF9zIH07Ci0gICAgY2FzZSBTZXR0aW5nczo6Rm9udExvYWRU
aW1pbmdPdmVycmlkZTo6U3dhcDoKKyAgICBjYXNlIEZvbnRMb2FkVGltaW5nT3ZlcnJpZGU6OlN3
YXA6CiAgICAgICAgIHJldHVybiB7IDBfcywgU2Vjb25kczo6aW5maW5pdHkoKSB9OwotICAgIGNh
c2UgU2V0dGluZ3M6OkZvbnRMb2FkVGltaW5nT3ZlcnJpZGU6OkZhaWx1cmU6CisgICAgY2FzZSBG
b250TG9hZFRpbWluZ092ZXJyaWRlOjpGYWlsdXJlOgogICAgICAgICByZXR1cm4geyAwX3MsIDBf
cyB9OwogICAgIH0KICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvY3NzL0ZvbnRMb2FkVGltaW5nT3ZlcnJpZGUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRUaW1pbmdPdmVycmlkZS5oCShub25leGlzdGVudCkK
KysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZFRpbWluZ092ZXJyaWRlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgRm9udExvYWRUaW1pbmdPdmVycmlkZSA6IHVp
bnQ4X3QgeworICAgIE5vbmUsCisgICAgQmxvY2ssCisgICAgU3dhcCwKKyAgICBGYWlsdXJlCit9
OworCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3Bw
CShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1
YXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxNSw5ICszMTUsOSBAQCBzdGF0aWMgYm9vbCBt
b25vY2hyb21lRXZhbHVhdGUoQ1NTVmFsdWUqCiB7CiAgICAgYm9vbCBpc01vbm9jaHJvbWU7CiAK
LSAgICBpZiAoZnJhbWUuc2V0dGluZ3MoKS5mb3JjZWREaXNwbGF5SXNNb25vY2hyb21lQWNjZXNz
aWJpbGl0eVZhbHVlKCkgPT0gU2V0dGluZ3M6OkZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZTo6T24p
CisgICAgaWYgKGZyYW1lLnNldHRpbmdzKCkuZm9yY2VkRGlzcGxheUlzTW9ub2Nocm9tZUFjY2Vz
c2liaWxpdHlWYWx1ZSgpID09IEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZTo6T24pCiAgICAgICAg
IGlzTW9ub2Nocm9tZSA9IHRydWU7Ci0gICAgZWxzZSBpZiAoZnJhbWUuc2V0dGluZ3MoKS5mb3Jj
ZWREaXNwbGF5SXNNb25vY2hyb21lQWNjZXNzaWJpbGl0eVZhbHVlKCkgPT0gU2V0dGluZ3M6OkZv
cmNlZEFjY2Vzc2liaWxpdHlWYWx1ZTo6T2ZmKQorICAgIGVsc2UgaWYgKGZyYW1lLnNldHRpbmdz
KCkuZm9yY2VkRGlzcGxheUlzTW9ub2Nocm9tZUFjY2Vzc2liaWxpdHlWYWx1ZSgpID09IEZvcmNl
ZEFjY2Vzc2liaWxpdHlWYWx1ZTo6T2ZmKQogICAgICAgICBpc01vbm9jaHJvbWUgPSBmYWxzZTsK
ICAgICBlbHNlCiAgICAgICAgIGlzTW9ub2Nocm9tZSA9IHNjcmVlbklzTW9ub2Nocm9tZShmcmFt
ZS5tYWluRnJhbWUoKS52aWV3KCkpOwpAQCAtMzMxLDkgKzMzMSw5IEBAIHN0YXRpYyBib29sIGlu
dmVydGVkQ29sb3JzRXZhbHVhdGUoQ1NTVmEKIHsKICAgICBib29sIGlzSW52ZXJ0ZWQ7CiAKLSAg
ICBpZiAoZnJhbWUuc2V0dGluZ3MoKS5mb3JjZWRDb2xvcnNBcmVJbnZlcnRlZEFjY2Vzc2liaWxp
dHlWYWx1ZSgpID09IFNldHRpbmdzOjpGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWU6Ok9uKQorICAg
IGlmIChmcmFtZS5zZXR0aW5ncygpLmZvcmNlZENvbG9yc0FyZUludmVydGVkQWNjZXNzaWJpbGl0
eVZhbHVlKCkgPT0gRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlOjpPbikKICAgICAgICAgaXNJbnZl
cnRlZCA9IHRydWU7Ci0gICAgZWxzZSBpZiAoZnJhbWUuc2V0dGluZ3MoKS5mb3JjZWRDb2xvcnNB
cmVJbnZlcnRlZEFjY2Vzc2liaWxpdHlWYWx1ZSgpID09IFNldHRpbmdzOjpGb3JjZWRBY2Nlc3Np
YmlsaXR5VmFsdWU6Ok9mZikKKyAgICBlbHNlIGlmIChmcmFtZS5zZXR0aW5ncygpLmZvcmNlZENv
bG9yc0FyZUludmVydGVkQWNjZXNzaWJpbGl0eVZhbHVlKCkgPT0gRm9yY2VkQWNjZXNzaWJpbGl0
eVZhbHVlOjpPZmYpCiAgICAgICAgIGlzSW52ZXJ0ZWQgPSBmYWxzZTsKICAgICBlbHNlCiAgICAg
ICAgIGlzSW52ZXJ0ZWQgPSBzY3JlZW5IYXNJbnZlcnRlZENvbG9ycygpOwpAQCAtNDU5LDkgKzQ1
OSw5IEBAIHN0YXRpYyBib29sIGR5bmFtaWNSYW5nZUV2YWx1YXRlKENTU1ZhbHUKIAogICAgIGJv
b2wgc3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlOwogCi0gICAgaWYgKGZyYW1lLnNldHRpbmdzKCku
Zm9yY2VkU3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlVmFsdWUoKSA9PSBTZXR0aW5nczo6Rm9yY2Vk
QWNjZXNzaWJpbGl0eVZhbHVlOjpPbikKKyAgICBpZiAoZnJhbWUuc2V0dGluZ3MoKS5mb3JjZWRT
dXBwb3J0c0hpZ2hEeW5hbWljUmFuZ2VWYWx1ZSgpID09IEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1
ZTo6T24pCiAgICAgICAgIHN1cHBvcnRzSGlnaER5bmFtaWNSYW5nZSA9IHRydWU7Ci0gICAgZWxz
ZSBpZiAoZnJhbWUuc2V0dGluZ3MoKS5mb3JjZWRTdXBwb3J0c0hpZ2hEeW5hbWljUmFuZ2VWYWx1
ZSgpID09IFNldHRpbmdzOjpGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWU6Ok9mZikKKyAgICBlbHNl
IGlmIChmcmFtZS5zZXR0aW5ncygpLmZvcmNlZFN1cHBvcnRzSGlnaER5bmFtaWNSYW5nZVZhbHVl
KCkgPT0gRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlOjpPZmYpCiAgICAgICAgIHN1cHBvcnRzSGln
aER5bmFtaWNSYW5nZSA9IGZhbHNlOwogICAgIGVsc2UKICAgICAgICAgc3VwcG9ydHNIaWdoRHlu
YW1pY1JhbmdlID0gc2NyZWVuU3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlKGZyYW1lLm1haW5GcmFt
ZSgpLnZpZXcoKSk7CkBAIC04MjUsMTIgKzgyNSwxMiBAQCBzdGF0aWMgYm9vbCBwcmVmZXJzUmVk
dWNlZE1vdGlvbkV2YWx1YXRlCiAgICAgYm9vbCB1c2VyUHJlZmVyc1JlZHVjZWRNb3Rpb24gPSBm
YWxzZTsKIAogICAgIHN3aXRjaCAoZnJhbWUuc2V0dGluZ3MoKS5mb3JjZWRQcmVmZXJzUmVkdWNl
ZE1vdGlvbkFjY2Vzc2liaWxpdHlWYWx1ZSgpKSB7Ci0gICAgY2FzZSBTZXR0aW5nczo6Rm9yY2Vk
QWNjZXNzaWJpbGl0eVZhbHVlOjpPbjoKKyAgICBjYXNlIEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1
ZTo6T246CiAgICAgICAgIHVzZXJQcmVmZXJzUmVkdWNlZE1vdGlvbiA9IHRydWU7CiAgICAgICAg
IGJyZWFrOwotICAgIGNhc2UgU2V0dGluZ3M6OkZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZTo6T2Zm
OgorICAgIGNhc2UgRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlOjpPZmY6CiAgICAgICAgIGJyZWFr
OwotICAgIGNhc2UgU2V0dGluZ3M6OkZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZTo6U3lzdGVtOgor
ICAgIGNhc2UgRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlOjpTeXN0ZW06CiAjaWYgVVNFKE5FV19U
SEVNRSkgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICAgICAgdXNlclByZWZlcnNSZWR1Y2Vk
TW90aW9uID0gVGhlbWU6OnNpbmdsZXRvbigpLnVzZXJQcmVmZXJzUmVkdWNlZE1vdGlvbigpOwog
I2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDI2OTgzMCkKKysr
IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1MDgs
NyArNzUwOCw3IEBAIHZvaWQgRG9jdW1lbnQ6OmFwcGx5UXVpY2tMb29rU2FuZGJveCgpCiAgICAg
QVNTRVJUKHJlc3BvbnNlVVJMLnByb3RvY29sSXMoUUxQcmV2aWV3UHJvdG9jb2wpKTsKIAogICAg
IGF1dG8gc2VjdXJpdHlPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlTm9uTG9jYWxXaXRo
QWxsb3dlZEZpbGVQYXRoKHJlc3BvbnNlVVJMLCBkb2N1bWVudFVSTC5maWxlU3lzdGVtUGF0aCgp
KTsKLSAgICBzZWN1cml0eU9yaWdpbi0+c2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KFNlY3VyaXR5
T3JpZ2luOjpCbG9ja0FsbFN0b3JhZ2UpOworICAgIHNlY3VyaXR5T3JpZ2luLT5zZXRTdG9yYWdl
QmxvY2tpbmdQb2xpY3koU3RvcmFnZUJsb2NraW5nUG9saWN5OjpCbG9ja0FsbCk7CiAgICAgc2V0
U2VjdXJpdHlPcmlnaW5Qb2xpY3koU2VjdXJpdHlPcmlnaW5Qb2xpY3k6OmNyZWF0ZShXVEZNb3Zl
KHNlY3VyaXR5T3JpZ2luKSkpOwogCiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4g
cXVpY2tMb29rQ1NQID0gbWFrZVN0cmluZygiZGVmYXVsdC1zcmMgIiwgUUxQcmV2aWV3UHJvdG9j
b2wsICI6ICd1bnNhZmUtaW5saW5lJzsgYmFzZS11cmkgJ25vbmUnOyBzYW5kYm94IGFsbG93LXNh
bWUtb3JpZ2luIGFsbG93LXNjcmlwdHMiKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdGFibGVMaW5rQmVoYXZpb3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRhYmxlTGlua0JlaGF2aW9yLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0YWJsZUxpbmtCZWhhdmlvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitlbnVtIGNsYXNzIEVkaXRhYmxlTGlua0JlaGF2aW9yIDogdWludDhfdCB7CisgICAgRGVm
YXVsdCwKKyAgICBBbHdheXNMaXZlLAorICAgIE9ubHlMaXZlV2l0aFNoaWZ0S2V5LAorICAgIExp
dmVXaGVuTm90Rm9jdXNlZCwKKyAgICBOZXZlckxpdmUKK307CisKK30KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0aW5nQmVoYXZpb3IuaAkocmV2aXNpb24gMjY5ODMwKQorKysgU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQmVoYXZpb3IuaAkod29ya2luZyBjb3B5KQpAQCAt
MjAsMTIgKzIwLDExIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiRWRpdGluZ0JlaGF2
aW9yVHlwZXMuaCIKKyNpbmNsdWRlICJFZGl0aW5nQmVoYXZpb3JUeXBlLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgRWRpdGluZ0JlaGF2aW9yIHsKLQogcHVibGljOgogICAgIGV4
cGxpY2l0IEVkaXRpbmdCZWhhdmlvcihFZGl0aW5nQmVoYXZpb3JUeXBlIHR5cGUpCiAgICAgICAg
IDogbV90eXBlKHR5cGUpCkBAIC00MCw2NyArMzksNjcgQEAgcHVibGljOgogICAgIC8vIGNvbnRl
bnQgb24gTWFjLgogICAgIGJvb2wgc2hvdWxkTW92ZUNhcmV0VG9Ib3Jpem9udGFsQm91bmRhcnlX
aGVuUGFzdFRvcE9yQm90dG9tKCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBtX3R5cGUg
IT0gRWRpdGluZ1dpbmRvd3NCZWhhdmlvcjsKKyAgICAgICAgcmV0dXJuIG1fdHlwZSAhPSBFZGl0
aW5nQmVoYXZpb3JUeXBlOjpXaW5kb3dzOwogICAgIH0KIAogICAgIC8vIE9uIFdpbmRvd3MsIHNl
bGVjdGlvbnMgc2hvdWxkIGFsd2F5cyBiZSBjb25zaWRlcmVkIGFzIGRpcmVjdGlvbmFsLCByZWdh
cmRsZXNzIGlmIGl0IGlzCiAgICAgLy8gbW91c2UtYmFzZWQgb3Iga2V5Ym9hcmQtYmFzZWQuCi0g
ICAgYm9vbCBzaG91bGRDb25zaWRlclNlbGVjdGlvbkFzRGlyZWN0aW9uYWwoKSBjb25zdCB7IHJl
dHVybiBtX3R5cGUgIT0gRWRpdGluZ01hY0JlaGF2aW9yICYmIG1fdHlwZSAhPSBFZGl0aW5nSU9T
QmVoYXZpb3I7IH0KKyAgICBib29sIHNob3VsZENvbnNpZGVyU2VsZWN0aW9uQXNEaXJlY3Rpb25h
bCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSAhPSBFZGl0aW5nQmVoYXZpb3JUeXBlOjpNYWMgJiYg
bV90eXBlICE9IEVkaXRpbmdCZWhhdmlvclR5cGU6OklvczsgfQogCiAgICAgLy8gT24gTWFjLCB3
aGVuIHJldmVhbGluZyBhIHNlbGVjdGlvbiAoZm9yIGV4YW1wbGUgYXMgYSByZXN1bHQgb2YgYSBG
aW5kIG9wZXJhdGlvbiBvbiB0aGUgQnJvd3NlciksCiAgICAgLy8gY29udGVudCBzaG91bGQgYmUg
c2Nyb2xsZWQgc3VjaCB0aGF0IHRoZSBzZWxlY3Rpb24gZ2V0cyBjZXJ0ZXIgYWxpZ25lZC4KLSAg
ICBib29sIHNob3VsZENlbnRlckFsaWduV2hlblNlbGVjdGlvbklzUmV2ZWFsZWQoKSBjb25zdCB7
IHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ01hY0JlaGF2aW9yIHx8IG1fdHlwZSA9PSBFZGl0aW5n
SU9TQmVoYXZpb3I7IH0KKyAgICBib29sIHNob3VsZENlbnRlckFsaWduV2hlblNlbGVjdGlvbklz
UmV2ZWFsZWQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ0JlaGF2aW9yVHlwZTo6
TWFjIHx8IG1fdHlwZSA9PSBFZGl0aW5nQmVoYXZpb3JUeXBlOjpJb3M7IH0KIAogICAgIC8vIE9u
IE1hYywgc3R5bGUgaXMgY29uc2lkZXJlZCBwcmVzZW50IHdoZW4gcHJlc2VudCBhdCB0aGUgYmVn
aW5uaW5nIG9mIHNlbGVjdGlvbi4gT24gb3RoZXIgcGxhdGZvcm1zLAogICAgIC8vIHN0eWxlIGhh
cyB0byBiZSBwcmVzZW50IHRocm91Z2hvdXQgdGhlIHNlbGVjdGlvbi4KLSAgICBib29sIHNob3Vs
ZFRvZ2dsZVN0eWxlQmFzZWRPblN0YXJ0T2ZTZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3R5
cGUgPT0gRWRpdGluZ01hY0JlaGF2aW9yIHx8IG1fdHlwZSA9PSBFZGl0aW5nSU9TQmVoYXZpb3I7
IH0KKyAgICBib29sIHNob3VsZFRvZ2dsZVN0eWxlQmFzZWRPblN0YXJ0T2ZTZWxlY3Rpb24oKSBj
b25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ0JlaGF2aW9yVHlwZTo6TWFjIHx8IG1fdHlw
ZSA9PSBFZGl0aW5nQmVoYXZpb3JUeXBlOjpJb3M7IH0KIAogICAgIC8vIFN0YW5kYXJkIE1hYyBi
ZWhhdmlvciB3aGVuIGV4dGVuZGluZyB0byBhIGJvdW5kYXJ5IGlzIGdyb3cgdGhlIHNlbGVjdGlv
biByYXRoZXIgdGhhbiBsZWF2aW5nIHRoZSBiYXNlCiAgICAgLy8gaW4gcGxhY2UgYW5kIG1vdmlu
ZyB0aGUgZXh0ZW50LiBNYXRjaGVzIE5TVGV4dFZpZXcuCi0gICAgYm9vbCBzaG91bGRBbHdheXNH
cm93U2VsZWN0aW9uV2hlbkV4dGVuZGluZ1RvQm91bmRhcnkoKSBjb25zdCB7IHJldHVybiBtX3R5
cGUgPT0gRWRpdGluZ01hY0JlaGF2aW9yIHx8IG1fdHlwZSA9PSBFZGl0aW5nSU9TQmVoYXZpb3I7
IH0KKyAgICBib29sIHNob3VsZEFsd2F5c0dyb3dTZWxlY3Rpb25XaGVuRXh0ZW5kaW5nVG9Cb3Vu
ZGFyeSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBFZGl0aW5nQmVoYXZpb3JUeXBlOjpNYWMg
fHwgbV90eXBlID09IEVkaXRpbmdCZWhhdmlvclR5cGU6OklvczsgfQogCiAgICAgLy8gT24gTWFj
LCB3aGVuIHByb2Nlc3NpbmcgYSBjb250ZXh0dWFsIGNsaWNrLCB0aGUgb2JqZWN0IGJlaW5nIGNs
aWNrZWQgdXBvbiBzaG91bGQgYmUgc2VsZWN0ZWQuCi0gICAgYm9vbCBzaG91bGRTZWxlY3RPbkNv
bnRleHR1YWxNZW51Q2xpY2soKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ01hY0Jl
aGF2aW9yOyB9CisgICAgYm9vbCBzaG91bGRTZWxlY3RPbkNvbnRleHR1YWxNZW51Q2xpY2soKSBj
b25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ0JlaGF2aW9yVHlwZTo6TWFjOyB9CiAKICAg
ICAvLyBPbiBMaW51eCwgc2hvdWxkIGJlIGFibGUgdG8gZ2V0IGFuZCBpbnNlcnQgc3BlbGxpbmcg
c3VnZ2VzdGlvbnMgd2l0aG91dCBzZWxlY3RpbmcgdGhlIG1pc3NwZWxsZWQgd29yZC4KICAgICBi
b29sIHNob3VsZEFsbG93U3BlbGxpbmdTdWdnZXN0aW9uc1dpdGhvdXRTZWxlY3Rpb24oKSBjb25z
dAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fdHlwZSA9PSBFZGl0aW5nVW5peEJlaGF2aW9yOwor
ICAgICAgICByZXR1cm4gbV90eXBlID09IEVkaXRpbmdCZWhhdmlvclR5cGU6OlVuaXg7CiAgICAg
fQogICAgIAogICAgIC8vIE9uIE1hYyBhbmQgV2luZG93cywgcHJlc3NpbmcgYmFja3NwYWNlICh3
aGVuIGl0IGlzbid0IGhhbmRsZWQgb3RoZXJ3aXNlKSBzaG91bGQgbmF2aWdhdGUgYmFjay4KICAg
ICBib29sIHNob3VsZE5hdmlnYXRlQmFja09uQmFja3NwYWNlKCkgY29uc3QKICAgICB7Ci0gICAg
ICAgIHJldHVybiBtX3R5cGUgIT0gRWRpdGluZ1VuaXhCZWhhdmlvcjsKKyAgICAgICAgcmV0dXJu
IG1fdHlwZSAhPSBFZGl0aW5nQmVoYXZpb3JUeXBlOjpVbml4OwogICAgIH0KIAogICAgIC8vIE9u
IE1hYywgc2VsZWN0aW5nIGJhY2t3YXJkcyBieSB3b3JkL2xpbmUgZnJvbSB0aGUgbWlkZGxlIG9m
IGEgd29yZC9saW5lLCBhbmQgdGhlbiBnb2luZwogICAgIC8vIGZvcndhcmQgbGVhdmVzIHRoZSBj
YXJldCBiYWNrIGluIHRoZSBtaWRkbGUgd2l0aCBubyBzZWxlY3Rpb24sIGluc3RlYWQgb2YgZGly
ZWN0bHkgc2VsZWN0aW5nCiAgICAgLy8gdG8gdGhlIG90aGVyIGVuZCBvZiB0aGUgbGluZS93b3Jk
IChVbml4L1dpbmRvd3MgYmVoYXZpb3IpLgotICAgIGJvb2wgc2hvdWxkRXh0ZW5kU2VsZWN0aW9u
QnlXb3JkT3JMaW5lQWNyb3NzQ2FyZXQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgIT0gRWRpdGlu
Z01hY0JlaGF2aW9yICYmIG1fdHlwZSAhPSBFZGl0aW5nSU9TQmVoYXZpb3I7IH0KKyAgICBib29s
IHNob3VsZEV4dGVuZFNlbGVjdGlvbkJ5V29yZE9yTGluZUFjcm9zc0NhcmV0KCkgY29uc3QgeyBy
ZXR1cm4gbV90eXBlICE9IEVkaXRpbmdCZWhhdmlvclR5cGU6Ok1hYyAmJiBtX3R5cGUgIT0gRWRp
dGluZ0JlaGF2aW9yVHlwZTo6SW9zOyB9CiAKICAgICAvLyBCYXNlZCBvbiBuYXRpdmUgYmVoYXZp
b3IsIHdoZW4gdXNpbmcgY3RybChhbHQpK2Fycm93IHRvIG1vdmUgY2FyZXQgYnkgd29yZCwgY3Ry
bChhbHQpK2xlZnQgYXJyb3cgbW92ZXMgY2FyZXQgdG8KICAgICAvLyBpbW1lZGlhdGVseSBiZWZv
cmUgdGhlIHdvcmQgaW4gYWxsIHBsYXRmb3JtcywgZm9yIGV4YW1wbGUsIHRoZSB3b3JkIGJyZWFr
IHBvc2l0aW9ucyBhcmU6ICJ8YWJjIHxkZWYgfGhpaiB8b3BxIi4KICAgICAvLyBCdXQgY3RybCty
aWdodCBhcnJvdyBtb3ZlcyBjYXJldCB0byAiYWJjIHxkZWYgfGhpaiB8b3BxIiBvbiBXaW5kb3dz
IGFuZCAiYWJjfCBkZWZ8IGhpanwgb3BxfCIgb24gTWFjIGFuZCBMaW51eC4KLSAgICBib29sIHNo
b3VsZFNraXBTcGFjZVdoZW5Nb3ZpbmdSaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBF
ZGl0aW5nV2luZG93c0JlaGF2aW9yOyB9CisgICAgYm9vbCBzaG91bGRTa2lwU3BhY2VXaGVuTW92
aW5nUmlnaHQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ0JlaGF2aW9yVHlwZTo6
V2luZG93czsgfQogCiAgICAgLy8gT24gaU9TIHRoZSBsYXN0IGVudGVyZWQgY2hhcmFjdGVyIGlu
IGEgc2VjdXJlIGZpbGVkIGlzIHNob3duIG1vbWVudGFyaWx5LCByZW1vdmluZyBhbmQgYWRkaW5n
IGJhY2sgdGhlCiAgICAgLy8gc3BhY2Ugd2hlbiBkZWxldGluZyBwYXNzd29yZCBjYXVzZSBzcGFj
ZSBiZWVuIHNob3dlZCBpbnNlY3VyZWx5LgotICAgIGJvb2wgc2hvdWxkUmViYWxhbmNlV2hpdGVT
cGFjZXNJblNlY3VyZUZpZWxkKCkgY29uc3QgeyByZXR1cm4gbV90eXBlICE9IEVkaXRpbmdJT1NC
ZWhhdmlvcjsgfQorICAgIGJvb2wgc2hvdWxkUmViYWxhbmNlV2hpdGVTcGFjZXNJblNlY3VyZUZp
ZWxkKCkgY29uc3QgeyByZXR1cm4gbV90eXBlICE9IEVkaXRpbmdCZWhhdmlvclR5cGU6Oklvczsg
fQogCi0gICAgYm9vbCBzaG91bGRTZWxlY3RCYXNlZE9uRGljdGlvbmFyeUxvb2t1cCgpIGNvbnN0
IHsgcmV0dXJuIG1fdHlwZSA9PSBFZGl0aW5nTWFjQmVoYXZpb3I7IH0KKyAgICBib29sIHNob3Vs
ZFNlbGVjdEJhc2VkT25EaWN0aW9uYXJ5TG9va3VwKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09
IEVkaXRpbmdCZWhhdmlvclR5cGU6Ok1hYzsgfQogCiAgICAgLy8gTGludXggYW5kIFdpbmRvd3Mg
YWx3YXlzIGV4dGVuZCBzZWxlY3Rpb25zIGZyb20gdGhlIGV4dGVudCBlbmRwb2ludC4KLSAgICBi
b29sIHNob3VsZEFsd2F5c0V4dGVuZFNlbGVjdGlvbkZyb21FeHRlbnRFbmRwb2ludCgpIGNvbnN0
IHsgcmV0dXJuIG1fdHlwZSAhPSBFZGl0aW5nTWFjQmVoYXZpb3IgJiYgbV90eXBlICE9IEVkaXRp
bmdJT1NCZWhhdmlvcjsgfQorICAgIGJvb2wgc2hvdWxkQWx3YXlzRXh0ZW5kU2VsZWN0aW9uRnJv
bUV4dGVudEVuZHBvaW50KCkgY29uc3QgeyByZXR1cm4gbV90eXBlICE9IEVkaXRpbmdCZWhhdmlv
clR5cGU6Ok1hYyAmJiBtX3R5cGUgIT0gRWRpdGluZ0JlaGF2aW9yVHlwZTo6SW9zOyB9CiAKICAg
ICAvLyBPbiBpT1MsIHdlIGRvbid0IHdhbnQgdG8gc2VsZWN0IGFsbCB0aGUgdGV4dCB3aGVuIGZv
Y3VzaW5nIGEgZmllbGQuIEluc3RlYWQsIG1hdGNoIHBsYXRmb3JtIGJlaGF2aW9yIGJ5IGdvaW5n
IHRvIHRoZSBlbmQgb2YgdGhlIGxpbmUuCi0gICAgYm9vbCBzaG91bGRNb3ZlU2VsZWN0aW9uVG9F
bmRXaGVuRm9jdXNpbmdUZXh0SW5wdXQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGlu
Z0lPU0JlaGF2aW9yOyB9CisgICAgYm9vbCBzaG91bGRNb3ZlU2VsZWN0aW9uVG9FbmRXaGVuRm9j
dXNpbmdUZXh0SW5wdXQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ0JlaGF2aW9y
VHlwZTo6SW9zOyB9CiAgICAgCiAgICAgLy8gT24gaU9TLCB3aGVuIHNtYXJ0IGRlbGV0ZSBpcyBv
biwgaXQgaXMgYWx3YXlzIG9uLCBhbmQgc2hvdWxkIGRvIG5vdCBhZGRpdGlvbmFsIGNoZWNrcyAo
aS5lLiBUZXh0R3JhbnVsYXJpdHk6OldvcmRHcmFudWxhcml0eSkuCi0gICAgYm9vbCBzaG91bGRB
bHdheXNTbWFydERlbGV0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBFZGl0aW5nSU9TQmVo
YXZpb3I7IH0KKyAgICBib29sIHNob3VsZEFsd2F5c1NtYXJ0RGVsZXRlKCkgY29uc3QgeyByZXR1
cm4gbV90eXBlID09IEVkaXRpbmdCZWhhdmlvclR5cGU6OklvczsgfQogICAgIAogICAgIC8vIE9u
IGlPUywgd2Ugc2hvdWxkIHR1cm4gb24gc21hcnQgaW5zZXJ0IGFuZCBkZWxldGUgYW5kIG5ld2xp
bmVzIGFyb3VuZCBwYXJhZ3JhcGhzIHRvIG1hdGNoIFVJS2l0IGJlaGF2aW91ci4KLSAgICBib29s
IHNob3VsZFNtYXJ0SW5zZXJ0RGVsZXRlUGFyYWdyYXBocygpIGNvbnN0IHsgcmV0dXJuIG1fdHlw
ZSA9PSBFZGl0aW5nSU9TQmVoYXZpb3I7IH0KKyAgICBib29sIHNob3VsZFNtYXJ0SW5zZXJ0RGVs
ZXRlUGFyYWdyYXBocygpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBFZGl0aW5nQmVoYXZpb3JU
eXBlOjpJb3M7IH0KIAogcHJpdmF0ZToKICAgICBFZGl0aW5nQmVoYXZpb3JUeXBlIG1fdHlwZTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yVHlwZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yVHlwZS5oCShu
b25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yVHlw
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNw
cmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIFRoZXJlIGFyZSBtdWx0aXBs
ZSBlZGl0aW5nIGRldGFpbHMgdGhhdCBhcmUgZGlmZmVyZW50IG9uIFdpbmRvd3MgdGhhbiBNYWNp
bnRvc2guCisvLyBXZSB1c2UgYSBzaW5nbGUgc3dpdGNoIGZvciBhbGwgb2YgdGhlbS4gU29tZSBl
eGFtcGxlczoKKy8vCisvLyAgICAxKSBDbGlja2luZyBiZWxvdyB0aGUgbGFzdCBsaW5lIG9mIGFu
IGVkaXRhYmxlIGFyZWEgcHV0cyB0aGUgY2FyZXQgYXQgdGhlIGVuZAorLy8gICAgICAgb2YgdGhl
IGxhc3QgbGluZSBvbiBNYWMsIGJ1dCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBsYXN0IGxpbmUgb24g
V2luZG93cy4KKy8vICAgIDIpIFB1c2hpbmcgdGhlIGRvd24gYXJyb3cga2V5IG9uIHRoZSBsYXN0
IGxpbmUgcHV0cyB0aGUgY2FyZXQgYXQgdGhlIGVuZCBvZiB0aGUKKy8vICAgICAgIGxhc3QgbGlu
ZSBvbiBNYWMsIGJ1dCBkb2VzIG5vdGhpbmcgb24gV2luZG93cy4gQSBzaW1pbGFyIGNhc2UgZXhp
c3RzIG9uIHRoZQorLy8gICAgICAgdG9wIGxpbmUuCisvLworLy8gVGhpcyBzZXR0aW5nIGlzIGlu
dGVuZGVkIHRvIGNvbnRyb2wgdGhlc2Ugc29ydHMgb2YgYmVoYXZpb3JzLiBUaGVyZSBhcmUgc29t
ZSBvdGhlcgorLy8gYmVoYXZpb3JzIHdpdGggaW5kaXZpZHVhbCBmdW5jdGlvbiBjYWxscyBvbiBF
ZGl0b3JDbGllbnQgKHNtYXJ0IGNvcHkgYW5kIHBhc3RlIGFuZAorLy8gc2VsZWN0aW5nIHRoZSBz
cGFjZSBhZnRlciBhIGRvdWJsZSBjbGljaykgdGhhdCBjb3VsZCBiZSBjb21iaW5lZCB3aXRoIHRo
aXMgaWYKKy8vIGlmIHBvc3NpYmxlIGluIHRoZSBmdXR1cmUuCitlbnVtIGNsYXNzIEVkaXRpbmdC
ZWhhdmlvclR5cGUgOiB1aW50OF90IHsKKyAgICBNYWMsCisgICAgV2luZG93cywKKyAgICBVbml4
LAorICAgIElvcworfTsKKworfSAvLyBXZWJDb3JlIG5hbWVzcGFjZQpJbmRleDogU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0aW5nQmVoYXZpb3JUeXBlcy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yVHlwZXMuaAkocmV2aXNpb24gMjY5ODMw
KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQmVoYXZpb3JUeXBlcy5oCShub25l
eGlzdGVudCkKQEAgLTEsNDUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKLSAqIENvcHlyaWdodCAo
QykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
LSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
LSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNwcmFnbWEgb25jZQotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLS8vIFRoZXJlIGFyZSBtdWx0aXBsZSBlZGl0aW5nIGRldGFp
bHMgdGhhdCBhcmUgZGlmZmVyZW50IG9uIFdpbmRvd3MgdGhhbiBNYWNpbnRvc2guCi0vLyBXZSB1
c2UgYSBzaW5nbGUgc3dpdGNoIGZvciBhbGwgb2YgdGhlbS4gU29tZSBleGFtcGxlczoKLS8vCi0v
LyAgICAxKSBDbGlja2luZyBiZWxvdyB0aGUgbGFzdCBsaW5lIG9mIGFuIGVkaXRhYmxlIGFyZWEg
cHV0cyB0aGUgY2FyZXQgYXQgdGhlIGVuZAotLy8gICAgICAgb2YgdGhlIGxhc3QgbGluZSBvbiBN
YWMsIGJ1dCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBsYXN0IGxpbmUgb24gV2luZG93cy4KLS8vICAg
IDIpIFB1c2hpbmcgdGhlIGRvd24gYXJyb3cga2V5IG9uIHRoZSBsYXN0IGxpbmUgcHV0cyB0aGUg
Y2FyZXQgYXQgdGhlIGVuZCBvZiB0aGUKLS8vICAgICAgIGxhc3QgbGluZSBvbiBNYWMsIGJ1dCBk
b2VzIG5vdGhpbmcgb24gV2luZG93cy4gQSBzaW1pbGFyIGNhc2UgZXhpc3RzIG9uIHRoZQotLy8g
ICAgICAgdG9wIGxpbmUuCi0vLwotLy8gVGhpcyBzZXR0aW5nIGlzIGludGVuZGVkIHRvIGNvbnRy
b2wgdGhlc2Ugc29ydHMgb2YgYmVoYXZpb3JzLiBUaGVyZSBhcmUgc29tZSBvdGhlcgotLy8gYmVo
YXZpb3JzIHdpdGggaW5kaXZpZHVhbCBmdW5jdGlvbiBjYWxscyBvbiBFZGl0b3JDbGllbnQgKHNt
YXJ0IGNvcHkgYW5kIHBhc3RlIGFuZAotLy8gc2VsZWN0aW5nIHRoZSBzcGFjZSBhZnRlciBhIGRv
dWJsZSBjbGljaykgdGhhdCBjb3VsZCBiZSBjb21iaW5lZCB3aXRoIHRoaXMgaWYKLS8vIGlmIHBv
c3NpYmxlIGluIHRoZSBmdXR1cmUuCi1lbnVtIEVkaXRpbmdCZWhhdmlvclR5cGUgewotICAgIEVk
aXRpbmdNYWNCZWhhdmlvciwKLSAgICBFZGl0aW5nV2luZG93c0JlaGF2aW9yLAotICAgIEVkaXRp
bmdVbml4QmVoYXZpb3IsCi0gICAgRWRpdGluZ0lPU0JlaGF2aW9yCi19OwotCi19IC8vIFdlYkNv
cmUgbmFtZXNwYWNlCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRpbmdCZWhhdmlvclR5cGVzLmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxl
CiMjIC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4MCw3ICsy
ODAsNyBAQCBWaXNpYmxlU2VsZWN0aW9uIEVkaXRvcjo6c2VsZWN0aW9uRm9yQ29tCiAvLyBGdW5j
dGlvbiBjb25zaWRlcnMgTWFjIGVkaXRpbmcgYmVoYXZpb3IgYSBmYWxsYmFjayB3aGVuIFBhZ2Ug
b3IgU2V0dGluZ3MgaXMgbm90IGF2YWlsYWJsZS4KIEVkaXRpbmdCZWhhdmlvciBFZGl0b3I6OmJl
aGF2aW9yKCkgY29uc3QKIHsKLSAgICByZXR1cm4gRWRpdGluZ0JlaGF2aW9yKG1fZG9jdW1lbnQu
c2V0dGluZ3MoKS5lZGl0aW5nQmVoYXZpb3JUeXBlKCkpOworICAgIHJldHVybiBtX2RvY3VtZW50
LmVkaXRpbmdCZWhhdmlvcigpOwogfQogCiBFZGl0b3JDbGllbnQqIEVkaXRvcjo6Y2xpZW50KCkg
Y29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAJKHJldmlzaW9uIDI2OTgzMCkK
KysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTgwLDcgKzE4MCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxQYWdlPiBjcmVhdGVQYWdlRm9yU2FuaXQK
ICAgICBhdXRvIHBhZ2UgPSBtYWtlVW5pcXVlPFBhZ2U+KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRp
b24pKTsKICAgICBwYWdlLT5zZXR0aW5ncygpLnNldE1lZGlhRW5hYmxlZChmYWxzZSk7CiAgICAg
cGFnZS0+c2V0dGluZ3MoKS5zZXRTY3JpcHRFbmFibGVkKGZhbHNlKTsKLSAgICBwYWdlLT5zZXR0
aW5ncygpLnNldFBhcnNlclNjcmlwdGluZ0ZsYWdQb2xpY3koU2V0dGluZ3NCYXNlOjpQYXJzZXJT
Y3JpcHRpbmdGbGFnUG9saWN5OjpFbmFibGVkKTsKKyAgICBwYWdlLT5zZXR0aW5ncygpLnNldEhU
TUxQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5KEhUTUxQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5
OjpFbmFibGVkKTsKICAgICBwYWdlLT5zZXR0aW5ncygpLnNldFBsdWdpbnNFbmFibGVkKGZhbHNl
KTsKICAgICBwYWdlLT5zZXR0aW5ncygpLnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVk
KGZhbHNlKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0
aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0
ZWN0aW9uLmgJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29j
b2EvRGF0YURldGVjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw4ICsyNywxMCBAQAogCiAj
aWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQogCisjaW1wb3J0ICJEYXRhRGV0ZWN0b3JUeXBlcy5o
IgogI2ltcG9ydCAiRmxvYXRSZWN0LmgiCiAjaW1wb3J0ICJTaW1wbGVSYW5nZS5oIgorI2ltcG9y
dCA8d3RmL09wdGlvblNldC5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiBPQkpDX0NM
QVNTIEREQWN0aW9uQ29udGV4dDsKQEAgLTM5LDE3ICs0MSw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgSGl0VGVzdFJlc3VsdDsKIAotLy8gRklYTUU6IFdvdWxkIGJlIGJldHRlciB0
byB1c2UgYW4gT3B0aW9uU2V0IGFuZCB1aW50OF90LgotZW51bSBjbGFzcyBEYXRhRGV0ZWN0b3JU
eXBlcyA6IHVpbnQzMl90IHsKLSAgICBQaG9uZU51bWJlciA9IDEgPDwgMCwKLSAgICBMaW5rID0g
MSA8PCAxLAotICAgIEFkZHJlc3MgPSAxIDw8IDIsCi0gICAgQ2FsZW5kYXJFdmVudCA9IDEgPDwg
MywKLSAgICBUcmFja2luZ051bWJlciA9IDEgPDwgNCwKLSAgICBGbGlnaHROdW1iZXIgPSAxIDw8
IDUsCi0gICAgTG9va3VwU3VnZ2VzdGlvbiA9IDEgPDwgNiwKLX07Ci0KIHN0cnVjdCBEZXRlY3Rl
ZEl0ZW0gewogICAgIFJldGFpblB0cjxEREFjdGlvbkNvbnRleHQ+IGFjdGlvbkNvbnRleHQ7CiAg
ICAgRmxvYXRSZWN0IGJvdW5kaW5nQm94OwpAQCAtNjEsNyArNTIsNyBAQCBwdWJsaWM6CiAjaWYg
UExBVEZPUk0oTUFDKQogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBPcHRpb25hbDxEZXRlY3Rl
ZEl0ZW0+IGRldGVjdEl0ZW1Bcm91bmRIaXRUZXN0UmVzdWx0KGNvbnN0IEhpdFRlc3RSZXN1bHQm
KTsKICNlbmRpZgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBOU0FycmF5ICpkZXRlY3RDb250
ZW50SW5SYW5nZShjb25zdCBTaW1wbGVSYW5nZSYsIERhdGFEZXRlY3RvclR5cGVzLCBOU0RpY3Rp
b25hcnkgKmNvbnRleHQpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBOU0FycmF5ICpkZXRl
Y3RDb250ZW50SW5SYW5nZShjb25zdCBTaW1wbGVSYW5nZSYsIE9wdGlvblNldDxEYXRhRGV0ZWN0
b3JUeXBlcz4sIE5TRGljdGlvbmFyeSAqY29udGV4dCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIHZvaWQgcmVtb3ZlRGF0YURldGVjdGVkTGlua3NJbkRvY3VtZW50KERvY3VtZW50Jik7CiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBj
YW5CZVByZXNlbnRlZEJ5RGF0YURldGVjdG9ycyhjb25zdCBVUkwmKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW0JKHJldmlzaW9uIDI2OTgz
MCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbQkod29y
a2luZyBjb3B5KQpAQCAtMjE4LDMwICsyMTgsMjQgQEAgc3RhdGljIEJPT0wgcmVzdWx0SXNVUkwo
RERSZXN1bHRSZWYgcmVzdQogICAgIHJldHVybiBbdXJsVHlwZXMgY29udGFpbnNPYmplY3Q6KE5T
U3RyaW5nICopc29mdExpbmtfRGF0YURldGVjdG9yc0NvcmVfRERSZXN1bHRHZXRUeXBlKHJlc3Vs
dCldOwogfQogCi0vLyBQb29yIG1hbidzIE9wdGlvblNldC4KLXN0YXRpYyBib29sIGNvbnRhaW5z
KERhdGFEZXRlY3RvclR5cGVzIHR5cGVzLCBEYXRhRGV0ZWN0b3JUeXBlcyBzaW5nbGVUeXBlKQot
ewotICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50MzJfdD4odHlwZXMpICYgc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KHNpbmdsZVR5cGUpOwotfQotCi1zdGF0aWMgTlNTdHJpbmcgKmNvbnN0cnVjdFVS
TFN0cmluZ0ZvclJlc3VsdChERFJlc3VsdFJlZiBjdXJyZW50UmVzdWx0LCBOU1N0cmluZyAqcmVz
dWx0SWRlbnRpZmllciwgTlNEYXRlICpyZWZlcmVuY2VEYXRlLCBOU1RpbWVab25lICpyZWZlcmVu
Y2VUaW1lWm9uZSwgRGF0YURldGVjdG9yVHlwZXMgZGV0ZWN0aW9uVHlwZXMpCitzdGF0aWMgTlNT
dHJpbmcgKmNvbnN0cnVjdFVSTFN0cmluZ0ZvclJlc3VsdChERFJlc3VsdFJlZiBjdXJyZW50UmVz
dWx0LCBOU1N0cmluZyAqcmVzdWx0SWRlbnRpZmllciwgTlNEYXRlICpyZWZlcmVuY2VEYXRlLCBO
U1RpbWVab25lICpyZWZlcmVuY2VUaW1lWm9uZSwgT3B0aW9uU2V0PERhdGFEZXRlY3RvclR5cGVz
PiBkZXRlY3Rpb25UeXBlcykKIHsKICAgICBpZiAoIXNvZnRMaW5rX0RhdGFEZXRlY3RvcnNDb3Jl
X0REUmVzdWx0SGFzUHJvcGVydGllcyhjdXJyZW50UmVzdWx0LCBERFJlc3VsdFByb3BlcnR5UGFz
c2l2ZURpc3BsYXkpKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgYXV0byBwaG9uZVR5cGVz
ID0gY29udGFpbnMoZGV0ZWN0aW9uVHlwZXMsIERhdGFEZXRlY3RvclR5cGVzOjpQaG9uZU51bWJl
cikgPyBERFVSTGlmaWVyUGhvbmVOdW1iZXJEZXRlY3Rpb25SZWd1bGFyIDogRERVUkxpZmllclBo
b25lTnVtYmVyRGV0ZWN0aW9uTm9uZTsKKyAgICBhdXRvIHBob25lVHlwZXMgPSBkZXRlY3Rpb25U
eXBlcy5jb250YWlucyhEYXRhRGV0ZWN0b3JUeXBlczo6UGhvbmVOdW1iZXIpID8gRERVUkxpZmll
clBob25lTnVtYmVyRGV0ZWN0aW9uUmVndWxhciA6IEREVVJMaWZpZXJQaG9uZU51bWJlckRldGVj
dGlvbk5vbmU7CiAgICAgYXV0byBjYXRlZ29yeSA9IHNvZnRMaW5rX0RhdGFEZXRlY3RvcnNDb3Jl
X0REUmVzdWx0R2V0Q2F0ZWdvcnkoY3VycmVudFJlc3VsdCk7CiAgICAgYXV0byB0eXBlID0gc29m
dExpbmtfRGF0YURldGVjdG9yc0NvcmVfRERSZXN1bHRHZXRUeXBlKGN1cnJlbnRSZXN1bHQpOwog
Ci0gICAgaWYgKChjb250YWlucyhkZXRlY3Rpb25UeXBlcywgRGF0YURldGVjdG9yVHlwZXM6OkFk
ZHJlc3MpICYmIEREUmVzdWx0Q2F0ZWdvcnlBZGRyZXNzID09IGNhdGVnb3J5KQotICAgICAgICB8
fCAoY29udGFpbnMoZGV0ZWN0aW9uVHlwZXMsIERhdGFEZXRlY3RvclR5cGVzOjpUcmFja2luZ051
bWJlcikgJiYgQ0ZFcXVhbChnZXRfRGF0YURldGVjdG9yc0NvcmVfRERCaW5kZXJUcmFja2luZ051
bWJlcktleSgpLCB0eXBlKSkKLSAgICAgICAgfHwgKGNvbnRhaW5zKGRldGVjdGlvblR5cGVzLCBE
YXRhRGV0ZWN0b3JUeXBlczo6RmxpZ2h0TnVtYmVyKSAmJiBDRkVxdWFsKGdldF9EYXRhRGV0ZWN0
b3JzQ29yZV9EREJpbmRlckZsaWdodEluZm9ybWF0aW9uS2V5KCksIHR5cGUpKQotICAgICAgICB8
fCAoY29udGFpbnMoZGV0ZWN0aW9uVHlwZXMsIERhdGFEZXRlY3RvclR5cGVzOjpMb29rdXBTdWdn
ZXN0aW9uKSAmJiBDRkVxdWFsKGdldF9EYXRhRGV0ZWN0b3JzQ29yZV9EREJpbmRlclBhcnNlY1Nv
dXJjZUtleSgpLCB0eXBlKSkKLSAgICAgICAgfHwgKGNvbnRhaW5zKGRldGVjdGlvblR5cGVzLCBE
YXRhRGV0ZWN0b3JUeXBlczo6UGhvbmVOdW1iZXIpICYmIEREUmVzdWx0Q2F0ZWdvcnlQaG9uZU51
bWJlciA9PSBjYXRlZ29yeSkKLSAgICAgICAgfHwgKGNvbnRhaW5zKGRldGVjdGlvblR5cGVzLCBE
YXRhRGV0ZWN0b3JUeXBlczo6TGluaykgJiYgcmVzdWx0SXNVUkwoY3VycmVudFJlc3VsdCkpKSB7
CisgICAgaWYgKChkZXRlY3Rpb25UeXBlcy5jb250YWlucyhEYXRhRGV0ZWN0b3JUeXBlczo6QWRk
cmVzcykgJiYgRERSZXN1bHRDYXRlZ29yeUFkZHJlc3MgPT0gY2F0ZWdvcnkpCisgICAgICAgIHx8
IChkZXRlY3Rpb25UeXBlcy5jb250YWlucyhEYXRhRGV0ZWN0b3JUeXBlczo6VHJhY2tpbmdOdW1i
ZXIpICYmIENGRXF1YWwoZ2V0X0RhdGFEZXRlY3RvcnNDb3JlX0REQmluZGVyVHJhY2tpbmdOdW1i
ZXJLZXkoKSwgdHlwZSkpCisgICAgICAgIHx8IChkZXRlY3Rpb25UeXBlcy5jb250YWlucyhEYXRh
RGV0ZWN0b3JUeXBlczo6RmxpZ2h0TnVtYmVyKSAmJiBDRkVxdWFsKGdldF9EYXRhRGV0ZWN0b3Jz
Q29yZV9EREJpbmRlckZsaWdodEluZm9ybWF0aW9uS2V5KCksIHR5cGUpKQorICAgICAgICB8fCAo
ZGV0ZWN0aW9uVHlwZXMuY29udGFpbnMoRGF0YURldGVjdG9yVHlwZXM6Okxvb2t1cFN1Z2dlc3Rp
b24pICYmIENGRXF1YWwoZ2V0X0RhdGFEZXRlY3RvcnNDb3JlX0REQmluZGVyUGFyc2VjU291cmNl
S2V5KCksIHR5cGUpKQorICAgICAgICB8fCAoZGV0ZWN0aW9uVHlwZXMuY29udGFpbnMoRGF0YURl
dGVjdG9yVHlwZXM6OlBob25lTnVtYmVyKSAmJiBERFJlc3VsdENhdGVnb3J5UGhvbmVOdW1iZXIg
PT0gY2F0ZWdvcnkpCisgICAgICAgIHx8IChkZXRlY3Rpb25UeXBlcy5jb250YWlucyhEYXRhRGV0
ZWN0b3JUeXBlczo6TGluaykgJiYgcmVzdWx0SXNVUkwoY3VycmVudFJlc3VsdCkpKSB7CiAgICAg
ICAgIHJldHVybiBzb2Z0TGlua19EYXRhRGV0ZWN0b3JzQ29yZV9ERFVSTFN0cmluZ0ZvclJlc3Vs
dChjdXJyZW50UmVzdWx0LCByZXN1bHRJZGVudGlmaWVyLCBwaG9uZVR5cGVzLCByZWZlcmVuY2VE
YXRlLCByZWZlcmVuY2VUaW1lWm9uZSk7CiAgICAgfQotICAgIGlmIChjb250YWlucyhkZXRlY3Rp
b25UeXBlcywgRGF0YURldGVjdG9yVHlwZXM6OkNhbGVuZGFyRXZlbnQpICYmIEREUmVzdWx0Q2F0
ZWdvcnlDYWxlbmRhckV2ZW50ID09IGNhdGVnb3J5KSB7CisgICAgaWYgKGRldGVjdGlvblR5cGVz
LmNvbnRhaW5zKERhdGFEZXRlY3RvclR5cGVzOjpDYWxlbmRhckV2ZW50KSAmJiBERFJlc3VsdENh
dGVnb3J5Q2FsZW5kYXJFdmVudCA9PSBjYXRlZ29yeSkgewogICAgICAgICBpZiAoIXNvZnRMaW5r
X0RhdGFEZXRlY3RvcnNDb3JlX0REUmVzdWx0SXNQYXN0RGF0ZShjdXJyZW50UmVzdWx0LCAoQ0ZE
YXRlUmVmKXJlZmVyZW5jZURhdGUsIChDRlRpbWVab25lUmVmKXJlZmVyZW5jZVRpbWVab25lKSkK
ICAgICAgICAgICAgIHJldHVybiBzb2Z0TGlua19EYXRhRGV0ZWN0b3JzQ29yZV9ERFVSTFN0cmlu
Z0ZvclJlc3VsdChjdXJyZW50UmVzdWx0LCByZXN1bHRJZGVudGlmaWVyLCBwaG9uZVR5cGVzLCBy
ZWZlcmVuY2VEYXRlLCByZWZlcmVuY2VUaW1lWm9uZSk7CiAgICAgfQpAQCAtNDM5LDEzICs0MzMs
MTMgQEAgdm9pZCBEYXRhRGV0ZWN0aW9uOjpyZW1vdmVEYXRhRGV0ZWN0ZWRMaQogICAgICAgICBy
ZW1vdmVSZXN1bHRMaW5rc0Zyb21BbmNob3IoYW5jaG9yLmdldCgpKTsKIH0KIAotTlNBcnJheSAq
RGF0YURldGVjdGlvbjo6ZGV0ZWN0Q29udGVudEluUmFuZ2UoY29uc3QgU2ltcGxlUmFuZ2UmIGNv
bnRleHRSYW5nZSwgRGF0YURldGVjdG9yVHlwZXMgdHlwZXMsIE5TRGljdGlvbmFyeSAqY29udGV4
dCkKK05TQXJyYXkgKkRhdGFEZXRlY3Rpb246OmRldGVjdENvbnRlbnRJblJhbmdlKGNvbnN0IFNp
bXBsZVJhbmdlJiBjb250ZXh0UmFuZ2UsIE9wdGlvblNldDxEYXRhRGV0ZWN0b3JUeXBlcz4gdHlw
ZXMsIE5TRGljdGlvbmFyeSAqY29udGV4dCkKIHsKICAgICBhdXRvIHNjYW5uZXIgPSBhZG9wdENG
KHNvZnRMaW5rX0RhdGFEZXRlY3RvcnNDb3JlX0REU2Nhbm5lckNyZWF0ZShERFNjYW5uZXJUeXBl
U3RhbmRhcmQsIDAsIG51bGxwdHIpKTsKICAgICBhdXRvIHNjYW5RdWVyeSA9IGFkb3B0Q0Yoc29m
dExpbmtfRGF0YURldGVjdG9yc0NvcmVfRERTY2FuUXVlcnlDcmVhdGUoTlVMTCkpOwogICAgIGJ1
aWxkUXVlcnkoc2NhblF1ZXJ5LmdldCgpLCBjb250ZXh0UmFuZ2UpOwogICAgIAotICAgIGlmIChj
b250YWlucyh0eXBlcywgRGF0YURldGVjdG9yVHlwZXM6Okxvb2t1cFN1Z2dlc3Rpb24pKQorICAg
IGlmICh0eXBlcy5jb250YWlucyhEYXRhRGV0ZWN0b3JUeXBlczo6TG9va3VwU3VnZ2VzdGlvbikp
CiAgICAgICAgIHNvZnRMaW5rX0RhdGFEZXRlY3RvcnNDb3JlX0REU2Nhbm5lckVuYWJsZU9wdGlv
bmFsU291cmNlKHNjYW5uZXIuZ2V0KCksIEREU2Nhbm5lclNvdXJjZVNwb3RsaWdodCwgdHJ1ZSk7
CiAKICAgICAvLyBGSVhNRTogd2Ugc2hvdWxkIGFkZCBhIHRpbWVvdXQgdG8gdGhpcyBjYWxsIHRv
IG1ha2Ugc3VyZSBpdCBkb2Vzbid0IHRha2UgdG9vIG11Y2ggdGltZS4KQEAgLTYzOCw3ICs2MzIs
NyBAQCBOU0FycmF5ICpEYXRhRGV0ZWN0aW9uOjpkZXRlY3RDb250ZW50SW5SCiAKICNlbHNlCiAK
LU5TQXJyYXkgKkRhdGFEZXRlY3Rpb246OmRldGVjdENvbnRlbnRJblJhbmdlKGNvbnN0IFNpbXBs
ZVJhbmdlJiwgRGF0YURldGVjdG9yVHlwZXMsIE5TRGljdGlvbmFyeSAqKQorTlNBcnJheSAqRGF0
YURldGVjdGlvbjo6ZGV0ZWN0Q29udGVudEluUmFuZ2UoY29uc3QgU2ltcGxlUmFuZ2UmLCBPcHRp
b25TZXQ8RGF0YURldGVjdG9yVHlwZXM+LCBOU0RpY3Rpb25hcnkgKikKIHsKICAgICByZXR1cm4g
bmlsOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0b3JU
eXBlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURl
dGVjdG9yVHlwZXMuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2Nv
Y29hL0RhdGFEZXRlY3RvclR5cGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2NSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQor
CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitl
bnVtIGNsYXNzIERhdGFEZXRlY3RvclR5cGVzIDogdWludDhfdCB7CisgICAgTm9uZSA9IDAsCisg
ICAgUGhvbmVOdW1iZXIgPSAxIDw8IDAsCisgICAgTGluayA9IDEgPDwgMSwKKyAgICBBZGRyZXNz
ID0gMSA8PCAyLAorICAgIENhbGVuZGFyRXZlbnQgPSAxIDw8IDMsCisgICAgVHJhY2tpbmdOdW1i
ZXIgPSAxIDw8IDQsCisgICAgRmxpZ2h0TnVtYmVyID0gMSA8PCA1LAorICAgIExvb2t1cFN1Z2dl
c3Rpb24gPSAxIDw8IDYsCit9OworCit9CisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+
IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkRhdGFEZXRlY3RvclR5cGVzPiB7CisgICAgdXNp
bmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6RGF0YURldGVjdG9yVHlw
ZXMsCisgICAgICAgIFdlYkNvcmU6OkRhdGFEZXRlY3RvclR5cGVzOjpOb25lLAorICAgICAgICBX
ZWJDb3JlOjpEYXRhRGV0ZWN0b3JUeXBlczo6UGhvbmVOdW1iZXIsCisgICAgICAgIFdlYkNvcmU6
OkRhdGFEZXRlY3RvclR5cGVzOjpMaW5rLAorICAgICAgICBXZWJDb3JlOjpEYXRhRGV0ZWN0b3JU
eXBlczo6QWRkcmVzcywKKyAgICAgICAgV2ViQ29yZTo6RGF0YURldGVjdG9yVHlwZXM6OkNhbGVu
ZGFyRXZlbnQsCisgICAgICAgIFdlYkNvcmU6OkRhdGFEZXRlY3RvclR5cGVzOjpUcmFja2luZ051
bWJlciwKKyAgICAgICAgV2ViQ29yZTo6RGF0YURldGVjdG9yVHlwZXM6OkZsaWdodE51bWJlciwK
KyAgICAgICAgV2ViQ29yZTo6RGF0YURldGVjdG9yVHlwZXM6Okxvb2t1cFN1Z2dlc3Rpb24KKyAg
ICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKKyNlbmRpZgpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yMTQsMjggKzIxNCwyMyBAQCB2b2lkIEhUTUxBbmNob3JFbGVtZW50OjpkZWZhdWx0RXZlbnRI
YW5kCiB2b2lkIEhUTUxBbmNob3JFbGVtZW50OjpzZXRBY3RpdmUoYm9vbCBkb3duLCBib29sIHBh
dXNlKQogewogICAgIGlmIChoYXNFZGl0YWJsZVN0eWxlKCkpIHsKLSAgICAgICAgRWRpdGFibGVM
aW5rQmVoYXZpb3IgZWRpdGFibGVMaW5rQmVoYXZpb3IgPSBkb2N1bWVudCgpLnNldHRpbmdzKCku
ZWRpdGFibGVMaW5rQmVoYXZpb3IoKTsKLSAgICAgICAgICAgIAotICAgICAgICBzd2l0Y2ggKGVk
aXRhYmxlTGlua0JlaGF2aW9yKSB7Ci0gICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAg
Y2FzZSBFZGl0YWJsZUxpbmtEZWZhdWx0QmVoYXZpb3I6Ci0gICAgICAgICAgICBjYXNlIEVkaXRh
YmxlTGlua0Fsd2F5c0xpdmU6Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAg
IGNhc2UgRWRpdGFibGVMaW5rTmV2ZXJMaXZlOgorICAgICAgICBzd2l0Y2ggKGRvY3VtZW50KCku
c2V0dGluZ3MoKS5lZGl0YWJsZUxpbmtCZWhhdmlvcigpKSB7CisgICAgICAgIGNhc2UgRWRpdGFi
bGVMaW5rQmVoYXZpb3I6OkRlZmF1bHQ6CisgICAgICAgIGNhc2UgRWRpdGFibGVMaW5rQmVoYXZp
b3I6OkFsd2F5c0xpdmU6CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAvLyBEb24ndCBz
ZXQgdGhlIGxpbmsgdG8gYmUgYWN0aXZlIGlmIHRoZSBjdXJyZW50IHNlbGVjdGlvbiBpcyBpbiB0
aGUgc2FtZSBlZGl0YWJsZSBibG9jayBhcworICAgICAgICAvLyB0aGlzIGxpbmsKKyAgICAgICAg
Y2FzZSBFZGl0YWJsZUxpbmtCZWhhdmlvcjo6TGl2ZVdoZW5Ob3RGb2N1c2VkOgorICAgICAgICAg
ICAgaWYgKGRvd24gJiYgZG9jdW1lbnQoKS5mcmFtZSgpICYmIGRvY3VtZW50KCkuZnJhbWUoKS0+
c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkucm9vdEVkaXRhYmxlRWxlbWVudCgpID09IHJvb3RFZGl0
YWJsZUVsZW1lbnQoKSkKICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgCisgICAgICAgIGNhc2UgRWRpdGFibGVMaW5rQmVoYXZpb3I6Ok5ldmVyTGl2
ZToKKyAgICAgICAgY2FzZSBFZGl0YWJsZUxpbmtCZWhhdmlvcjo6T25seUxpdmVXaXRoU2hpZnRL
ZXk6CisgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgICAgIC8vIERvbid0IHNldCB0aGUg
bGluayB0byBiZSBhY3RpdmUgaWYgdGhlIGN1cnJlbnQgc2VsZWN0aW9uIGlzIGluIHRoZSBzYW1l
IGVkaXRhYmxlIGJsb2NrIGFzCi0gICAgICAgICAgICAvLyB0aGlzIGxpbmsKLSAgICAgICAgICAg
IGNhc2UgRWRpdGFibGVMaW5rTGl2ZVdoZW5Ob3RGb2N1c2VkOgotICAgICAgICAgICAgICAgIGlm
IChkb3duICYmIGRvY3VtZW50KCkuZnJhbWUoKSAmJiBkb2N1bWVudCgpLmZyYW1lKCktPnNlbGVj
dGlvbigpLnNlbGVjdGlvbigpLnJvb3RFZGl0YWJsZUVsZW1lbnQoKSA9PSByb290RWRpdGFibGVF
bGVtZW50KCkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgY2FzZSBFZGl0YWJsZUxpbmtPbmx5TGl2
ZVdpdGhTaGlmdEtleToKLSAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLQogICAg
IH0KICAgICAKICAgICBIVE1MRWxlbWVudDo6c2V0QWN0aXZlKGRvd24sIHBhdXNlKTsKQEAgLTU1
MCwxOSArNTQ1LDE5IEBAIGJvb2wgSFRNTEFuY2hvckVsZW1lbnQ6OnRyZWF0TGlua0FzTGl2ZUYK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBzd2l0Y2ggKGRvY3VtZW50KCkuc2V0dGluZ3Mo
KS5lZGl0YWJsZUxpbmtCZWhhdmlvcigpKSB7Ci0gICAgY2FzZSBFZGl0YWJsZUxpbmtEZWZhdWx0
QmVoYXZpb3I6Ci0gICAgY2FzZSBFZGl0YWJsZUxpbmtBbHdheXNMaXZlOgorICAgIGNhc2UgRWRp
dGFibGVMaW5rQmVoYXZpb3I6OkRlZmF1bHQ6CisgICAgY2FzZSBFZGl0YWJsZUxpbmtCZWhhdmlv
cjo6QWx3YXlzTGl2ZToKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBjYXNlIEVkaXRhYmxl
TGlua05ldmVyTGl2ZToKKyAgICBjYXNlIEVkaXRhYmxlTGlua0JlaGF2aW9yOjpOZXZlckxpdmU6
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIElmIHRoZSBzZWxlY3Rpb24gcHJpb3Ig
dG8gY2xpY2tpbmcgb24gdGhpcyBsaW5rIHJlc2lkZWQgaW4gdGhlIHNhbWUgZWRpdGFibGUgYmxv
Y2sgYXMgdGhpcyBsaW5rLAogICAgIC8vIGFuZCB0aGUgc2hpZnQga2V5IGlzbid0IHByZXNzZWQs
IHdlIGRvbid0IHdhbnQgdG8gZm9sbG93IHRoZSBsaW5rLgotICAgIGNhc2UgRWRpdGFibGVMaW5r
TGl2ZVdoZW5Ob3RGb2N1c2VkOgorICAgIGNhc2UgRWRpdGFibGVMaW5rQmVoYXZpb3I6OkxpdmVX
aGVuTm90Rm9jdXNlZDoKICAgICAgICAgcmV0dXJuIGV2ZW50VHlwZSA9PSBNb3VzZUV2ZW50V2l0
aFNoaWZ0S2V5IHx8IChldmVudFR5cGUgPT0gTW91c2VFdmVudFdpdGhvdXRTaGlmdEtleSAmJiBy
b290RWRpdGFibGVFbGVtZW50Rm9yU2VsZWN0aW9uT25Nb3VzZURvd24oKSAhPSByb290RWRpdGFi
bGVFbGVtZW50KCkpOwogCi0gICAgY2FzZSBFZGl0YWJsZUxpbmtPbmx5TGl2ZVdpdGhTaGlmdEtl
eToKKyAgICBjYXNlIEVkaXRhYmxlTGlua0JlaGF2aW9yOjpPbmx5TGl2ZVdpdGhTaGlmdEtleToK
ICAgICAgICAgcmV0dXJuIGV2ZW50VHlwZSA9PSBNb3VzZUV2ZW50V2l0aFNoaWZ0S2V5OwogICAg
IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlck9wdGlvbnMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJP
cHRpb25zLmNwcAkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTFBhcnNlck9wdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NSw3ICs0NSw3IEBA
IEhUTUxQYXJzZXJPcHRpb25zOjpIVE1MUGFyc2VyT3B0aW9ucygpCiBIVE1MUGFyc2VyT3B0aW9u
czo6SFRNTFBhcnNlck9wdGlvbnMoRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIFJlZlB0cjxG
cmFtZT4gZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpOwotICAgIGlmIChkb2N1bWVudC5zZXR0aW5n
cygpLnBhcnNlclNjcmlwdGluZ0ZsYWdQb2xpY3koKSA9PSBTZXR0aW5nc0Jhc2U6OlBhcnNlclNj
cmlwdGluZ0ZsYWdQb2xpY3k6OkVuYWJsZWQpCisgICAgaWYgKGRvY3VtZW50LnNldHRpbmdzKCku
aHRtbFBhcnNlclNjcmlwdGluZ0ZsYWdQb2xpY3koKSA9PSBIVE1MUGFyc2VyU2NyaXB0aW5nRmxh
Z1BvbGljeTo6RW5hYmxlZCkKICAgICAgICAgc2NyaXB0aW5nRmxhZyA9IHRydWU7CiAgICAgZWxz
ZQogICAgICAgICBzY3JpcHRpbmdGbGFnID0gZnJhbWUgJiYgZnJhbWUtPnNjcmlwdCgpLmNhbkV4
ZWN1dGVTY3JpcHRzKE5vdEFib3V0VG9FeGVjdXRlU2NyaXB0KTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlclNjcmlwdGluZ0ZsYWdQ
b2xpY3kuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
UGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitl
bnVtIGNsYXNzIEhUTUxQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5IDogdWludDhfdCB7CisgICAg
T25seUlmU2NyaXB0SXNFbmFibGVkLAorICAgIEVuYWJsZWQKK307CisKK30KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjU4MCw4
ICsyNTgwLDggQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y2hlY2tMb2FkQ29tcGxldGVGb3JUaAogICAg
ICAgICAgICAgICAgIEZSQU1FTE9BREVSX1JFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUmVzb3VyY2VM
b2FkaW5nLCAiY2hlY2tMb2FkQ29tcGxldGVGb3JUaGlzRnJhbWU6IEZpbmlzaGVkIGZyYW1lIGxv
YWQiKTsKICNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCiAgICAgICAgICAgICAgICAgYXV0byBk
b2N1bWVudCA9IG1fZnJhbWUuZG9jdW1lbnQoKTsKLSAgICAgICAgICAgICAgICBhdXRvIHR5cGVz
ID0gbV9mcmFtZS5zZXR0aW5ncygpLmRhdGFEZXRlY3RvclR5cGVzKCk7Ci0gICAgICAgICAgICAg
ICAgaWYgKGRvY3VtZW50ICYmIHN0YXRpY19jYXN0PHVpbnQzMl90Pih0eXBlcykpIHsKKyAgICAg
ICAgICAgICAgICBhdXRvIHR5cGVzID0gT3B0aW9uU2V0PERhdGFEZXRlY3RvclR5cGVzPiB7IG1f
ZnJhbWUuc2V0dGluZ3MoKS5kYXRhRGV0ZWN0b3JUeXBlcygpIH07CisgICAgICAgICAgICAgICAg
aWYgKGRvY3VtZW50ICYmIHR5cGVzKSB7CiAgICAgICAgICAgICAgICAgICAgIG1fZnJhbWUuc2V0
RGF0YURldGVjdGlvblJlc3VsdHMoRGF0YURldGVjdGlvbjo6ZGV0ZWN0Q29udGVudEluUmFuZ2Uo
bWFrZVJhbmdlU2VsZWN0aW5nTm9kZUNvbnRlbnRzKCpkb2N1bWVudCksIHR5cGVzLCBtX2NsaWVu
dC0+ZGF0YURldGVjdGlvbkNvbnRleHQoKSkpOwogICAgICAgICAgICAgICAgICAgICBpZiAobV9m
cmFtZS5pc01haW5GcmFtZSgpKQogICAgICAgICAgICAgICAgICAgICAgICAgbV9jbGllbnQtPmRp
c3BhdGNoRGlkRmluaXNoRGF0YURldGVjdGlvbihtX2ZyYW1lLmRhdGFEZXRlY3Rpb25SZXN1bHRz
KCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVy
LmNwcAkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVu
dUNvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTEwLDggKzExMTAsOCBAQCB2b2lk
IENvbnRleHRNZW51Q29udHJvbGxlcjo6cG9wdWxhdGUoKQogICAgICAgICAgICAgY3JlYXRlQW5k
QXBwZW5kV3JpdGluZ0RpcmVjdGlvblN1Yk1lbnUoV3JpdGluZ0RpcmVjdGlvbk1lbnVJdGVtKTsK
ICAgICAgICAgICAgIGFwcGVuZEl0ZW0oV3JpdGluZ0RpcmVjdGlvbk1lbnVJdGVtLCBtX2NvbnRl
eHRNZW51LmdldCgpKTsKICAgICAgICAgICAgIGlmIChQYWdlKiBwYWdlID0gZnJhbWUtPnBhZ2Uo
KSkgewotICAgICAgICAgICAgICAgIGJvb2wgaW5jbHVkZVRleHREaXJlY3Rpb25TdWJtZW51ID0g
cGFnZS0+c2V0dGluZ3MoKS50ZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yKCkg
PT0gVGV4dERpcmVjdGlvblN1Ym1lbnVBbHdheXNJbmNsdWRlZAotICAgICAgICAgICAgICAgICAg
ICB8fCAocGFnZS0+c2V0dGluZ3MoKS50ZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2
aW9yKCkgPT0gVGV4dERpcmVjdGlvblN1Ym1lbnVBdXRvbWF0aWNhbGx5SW5jbHVkZWQgJiYgZnJh
bWUtPmVkaXRvcigpLmhhc0JpZGlTZWxlY3Rpb24oKSk7CisgICAgICAgICAgICAgICAgYm9vbCBp
bmNsdWRlVGV4dERpcmVjdGlvblN1Ym1lbnUgPSBwYWdlLT5zZXR0aW5ncygpLnRleHREaXJlY3Rp
b25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IoKSA9PSBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1
c2lvbkJlaGF2aW9yOjpBbHdheXNJbmNsdWRlZAorICAgICAgICAgICAgICAgICAgICB8fCAocGFn
ZS0+c2V0dGluZ3MoKS50ZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yKCkgPT0g
VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcjo6QXV0b21hdGljYWxseUluY2x1
ZGVkICYmIGZyYW1lLT5lZGl0b3IoKS5oYXNCaWRpU2VsZWN0aW9uKCkpOwogICAgICAgICAgICAg
ICAgIGlmIChpbmNsdWRlVGV4dERpcmVjdGlvblN1Ym1lbnUpIHsKICAgICAgICAgICAgICAgICAg
ICAgQ29udGV4dE1lbnVJdGVtIFRleHREaXJlY3Rpb25NZW51SXRlbShTdWJtZW51VHlwZSwgQ29u
dGV4dE1lbnVJdGVtVGFnVGV4dERpcmVjdGlvbk1lbnUsIGNvbnRleHRNZW51SXRlbVRhZ1RleHRE
aXJlY3Rpb25NZW51KCkpOwogICAgICAgICAgICAgICAgICAgICBjcmVhdGVBbmRBcHBlbmRUZXh0
RGlyZWN0aW9uU3ViTWVudShUZXh0RGlyZWN0aW9uTWVudUl0ZW0pOwpJbmRleDogU291cmNlL1dl
YkNvcmUvcGFnZS9EZWJ1Z092ZXJsYXlSZWdpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGFnZS9EZWJ1Z092ZXJsYXlSZWdpb25zLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNl
L1dlYkNvcmUvcGFnZS9EZWJ1Z092ZXJsYXlSZWdpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0Vu
dW1UcmFpdHMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIERlYnVnT3Zl
cmxheVJlZ2lvbnMgOiB1aW50OF90IHsKKyAgICBOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbiA9IDEg
PDwgMCwKKyAgICBXaGVlbEV2ZW50SGFuZGxlclJlZ2lvbiA9IDEgPDwgMSwKKyAgICBUb3VjaEFj
dGlvblJlZ2lvbiA9IDEgPDwgMiwKKyAgICBFZGl0YWJsZUVsZW1lbnRSZWdpb24gPSAxIDw8IDMs
Cit9OworCit9CisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJh
aXRzPFdlYkNvcmU6OkRlYnVnT3ZlcmxheVJlZ2lvbnM+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBF
bnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpEZWJ1Z092ZXJsYXlSZWdpb25zLAorICAgICAg
ICBXZWJDb3JlOjpEZWJ1Z092ZXJsYXlSZWdpb25zOjpOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbiwK
KyAgICAgICAgV2ViQ29yZTo6RGVidWdPdmVybGF5UmVnaW9uczo6V2hlZWxFdmVudEhhbmRsZXJS
ZWdpb24sCisgICAgICAgIFdlYkNvcmU6OkRlYnVnT3ZlcmxheVJlZ2lvbnM6OlRvdWNoQWN0aW9u
UmVnaW9uLAorICAgICAgICBXZWJDb3JlOjpEZWJ1Z092ZXJsYXlSZWdpb25zOjpFZGl0YWJsZUVs
ZW1lbnRSZWdpb24KKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmNwcAkocmV2aXNpb24gMjY5ODMwKQor
KysgU291cmNlL1dlYkNvcmUvcGFnZS9EZWJ1Z1BhZ2VPdmVybGF5cy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM5OSwxNCArMzk5LDE0IEBAIFJlZ2lvbk92ZXJsYXkqIERlYnVnUGFnZU92ZXJsYXlz
OjpyZWdpb24KICAgICByZXR1cm4gaXQtPnZhbHVlLmF0KGluZGV4T2YocmVnaW9uVHlwZSkpLmdl
dCgpOwogfQogCi12b2lkIERlYnVnUGFnZU92ZXJsYXlzOjp1cGRhdGVPdmVybGF5UmVnaW9uVmlz
aWJpbGl0eShQYWdlJiBwYWdlLCBEZWJ1Z092ZXJsYXlSZWdpb25zIHZpc2libGVSZWdpb25zKQor
dm9pZCBEZWJ1Z1BhZ2VPdmVybGF5czo6dXBkYXRlT3ZlcmxheVJlZ2lvblZpc2liaWxpdHkoUGFn
ZSYgcGFnZSwgT3B0aW9uU2V0PERlYnVnT3ZlcmxheVJlZ2lvbnM+IHZpc2libGVSZWdpb25zKQog
ewotICAgIGlmICh2aXNpYmxlUmVnaW9ucyAmIE5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKQorICAg
IGlmICh2aXNpYmxlUmVnaW9ucy5jb250YWlucyhEZWJ1Z092ZXJsYXlSZWdpb25zOjpOb25GYXN0
U2Nyb2xsYWJsZVJlZ2lvbikpCiAgICAgICAgIHNob3dSZWdpb25PdmVybGF5KHBhZ2UsIFJlZ2lv
blR5cGU6Ok5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKTsKICAgICBlbHNlCiAgICAgICAgIGhpZGVS
ZWdpb25PdmVybGF5KHBhZ2UsIFJlZ2lvblR5cGU6Ok5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKTsK
IAotICAgIGlmICh2aXNpYmxlUmVnaW9ucyAmIFdoZWVsRXZlbnRIYW5kbGVyUmVnaW9uKQorICAg
IGlmICh2aXNpYmxlUmVnaW9ucy5jb250YWlucyhEZWJ1Z092ZXJsYXlSZWdpb25zOjpXaGVlbEV2
ZW50SGFuZGxlclJlZ2lvbikpCiAgICAgICAgIHNob3dSZWdpb25PdmVybGF5KHBhZ2UsIFJlZ2lv
blR5cGU6OldoZWVsRXZlbnRIYW5kbGVycyk7CiAgICAgZWxzZQogICAgICAgICBoaWRlUmVnaW9u
T3ZlcmxheShwYWdlLCBSZWdpb25UeXBlOjpXaGVlbEV2ZW50SGFuZGxlcnMpOwpAQCAtNDE0LDcg
KzQxNCw3IEBAIHZvaWQgRGVidWdQYWdlT3ZlcmxheXM6OnVwZGF0ZU92ZXJsYXlSZWcKIAogdm9p
ZCBEZWJ1Z1BhZ2VPdmVybGF5czo6c2V0dGluZ3NDaGFuZ2VkKFBhZ2UmIHBhZ2UpCiB7Ci0gICAg
RGVidWdPdmVybGF5UmVnaW9ucyBhY3RpdmVPdmVybGF5UmVnaW9ucyA9IHBhZ2Uuc2V0dGluZ3Mo
KS52aXNpYmxlRGVidWdPdmVybGF5UmVnaW9ucygpOworICAgIGF1dG8gYWN0aXZlT3ZlcmxheVJl
Z2lvbnMgPSBPcHRpb25TZXQ8RGVidWdPdmVybGF5UmVnaW9ucz46OmZyb21SYXcocGFnZS5zZXR0
aW5ncygpLnZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zKCkpOwogICAgIGlmICghYWN0aXZlT3Zl
cmxheVJlZ2lvbnMgJiYgIWhhc092ZXJsYXlzKHBhZ2UpKQogICAgICAgICByZXR1cm47CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmgJKHJldmlzaW9uIDI2OTgz
MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuaAkod29ya2luZyBj
b3B5KQpAQCAtMjUsOSArMjUsMTAgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJEZWJ1
Z092ZXJsYXlSZWdpb25zLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJTZXR0aW5n
cy5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvblNldC5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDMs
NyArNDQsNyBAQCBwdWJsaWM6CiAgICAgICAgIFdoZWVsRXZlbnRIYW5kbGVycywKICAgICAgICAg
Tm9uRmFzdFNjcm9sbGFibGVSZWdpb24sCiAgICAgfTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgTnVtYmVyT2ZSZWdpb25UeXBlcyA9IE5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uICsgMTsKKyAg
ICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIE51bWJlck9mUmVnaW9uVHlwZXMgPSBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oUmVnaW9uVHlwZTo6Tm9uRmFzdFNjcm9sbGFibGVSZWdpb24pICsgMTsK
IAogICAgIHN0YXRpYyB2b2lkIGRpZExheW91dChGcmFtZSYpOwogICAgIHN0YXRpYyB2b2lkIGRp
ZENoYW5nZUV2ZW50SGFuZGxlcnMoRnJhbWUmKTsKQEAgLTY2LDcgKzY3LDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgcmV0dXJuIG1fcGFnZVJlZ2lvbk92ZXJsYXlzLmNvbnRhaW5zKCZwYWdlKTsKICAg
ICB9CiAgICAgCi0gICAgdm9pZCB1cGRhdGVPdmVybGF5UmVnaW9uVmlzaWJpbGl0eShQYWdlJiwg
RGVidWdPdmVybGF5UmVnaW9ucyk7CisgICAgdm9pZCB1cGRhdGVPdmVybGF5UmVnaW9uVmlzaWJp
bGl0eShQYWdlJiwgT3B0aW9uU2V0PERlYnVnT3ZlcmxheVJlZ2lvbnM+KTsKIAogICAgIFJlZ2lv
bk92ZXJsYXkqIHJlZ2lvbk92ZXJsYXlGb3JQYWdlKFBhZ2UmLCBSZWdpb25UeXBlKSBjb25zdDsK
ICAgICBSZWdpb25PdmVybGF5JiBlbnN1cmVSZWdpb25PdmVybGF5Rm9yUGFnZShQYWdlJiwgUmVn
aW9uVHlwZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCShyZXZpc2lv
biAyNjk4MzApCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEzODMsMjEgKzEzODMsMjAgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnVzZUhh
bmRDdXJzb3IoTm9kZSogbgogICAgIC8vIElmIHRoZSBsaW5rIGlzIGVkaXRhYmxlLCB0aGVuIHdl
IG5lZWQgdG8gY2hlY2sgdGhlIHNldHRpbmdzIHRvIHNlZSB3aGV0aGVyIG9yIG5vdCB0aGUgbGlu
ayBzaG91bGQgYmUgZm9sbG93ZWQKICAgICBpZiAoZWRpdGFibGUpIHsKICAgICAgICAgc3dpdGNo
IChtX2ZyYW1lLnNldHRpbmdzKCkuZWRpdGFibGVMaW5rQmVoYXZpb3IoKSkgewotICAgICAgICBk
ZWZhdWx0OgotICAgICAgICBjYXNlIEVkaXRhYmxlTGlua0RlZmF1bHRCZWhhdmlvcjoKLSAgICAg
ICAgY2FzZSBFZGl0YWJsZUxpbmtBbHdheXNMaXZlOgorICAgICAgICBjYXNlIEVkaXRhYmxlTGlu
a0JlaGF2aW9yOjpEZWZhdWx0OgorICAgICAgICBjYXNlIEVkaXRhYmxlTGlua0JlaGF2aW9yOjpB
bHdheXNMaXZlOgogICAgICAgICAgICAgZWRpdGFibGVMaW5rRW5hYmxlZCA9IHRydWU7CiAgICAg
ICAgICAgICBicmVhazsKIAotICAgICAgICBjYXNlIEVkaXRhYmxlTGlua05ldmVyTGl2ZToKKyAg
ICAgICAgY2FzZSBFZGl0YWJsZUxpbmtCZWhhdmlvcjo6TmV2ZXJMaXZlOgogICAgICAgICAgICAg
ZWRpdGFibGVMaW5rRW5hYmxlZCA9IGZhbHNlOwogICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAg
ICAgY2FzZSBFZGl0YWJsZUxpbmtMaXZlV2hlbk5vdEZvY3VzZWQ6CisgICAgICAgIGNhc2UgRWRp
dGFibGVMaW5rQmVoYXZpb3I6OkxpdmVXaGVuTm90Rm9jdXNlZDoKICAgICAgICAgICAgIGVkaXRh
YmxlTGlua0VuYWJsZWQgPSBub2RlSXNOb3RCZWluZ0VkaXRlZCgqbm9kZSwgbV9mcmFtZSkgfHwg
c2hpZnRLZXk7CiAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICBjYXNlIEVkaXRhYmxlTGlu
a09ubHlMaXZlV2l0aFNoaWZ0S2V5OgorICAgICAgICBjYXNlIEVkaXRhYmxlTGlua0JlaGF2aW9y
OjpPbmx5TGl2ZVdpdGhTaGlmdEtleToKICAgICAgICAgICAgIGVkaXRhYmxlTGlua0VuYWJsZWQg
PSBzaGlmdEtleTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lRmxhdHRlbmluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVGbGF0dGVuaW5nLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZUZsYXR0ZW5pbmcuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM2IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51
bSBjbGFzcyBGcmFtZUZsYXR0ZW5pbmcgOiB1aW50OF90IHsKKyAgICBEaXNhYmxlZCwKKyAgICBF
bmFibGVkRm9yTm9uRnVsbFNjcmVlbklGcmFtZXMsCisgICAgRnVsbHlFbmFibGVkCit9OworCit9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcg
QEAKICNpbmNsdWRlICJBZGp1c3RWaWV3U2l6ZU9yTm90LmgiCiAjaW5jbHVkZSAiQ29sb3IuaCIK
ICNpbmNsdWRlICJDb250YWluZXJOb2RlLmgiCisjaW5jbHVkZSAiRnJhbWVGbGF0dGVuaW5nLmgi
CiAjaW5jbHVkZSAiRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5oIgogI2luY2x1ZGUgIkdyYXBoaWNz
Q29udGV4dC5oIgogI2luY2x1ZGUgIkxheW91dE1pbGVzdG9uZS5oIgpAQCAtODAsOCArODEsNiBA
QCBjbGFzcyBWaWV3OwogfQogI2VuZGlmCiAKLWVudW0gY2xhc3MgRnJhbWVGbGF0dGVuaW5nOwot
CiBQYWdpbmF0aW9uOjpNb2RlIHBhZ2luYXRpb25Nb2RlRm9yUmVuZGVyU3R5bGUoY29uc3QgUmVu
ZGVyU3R5bGUmKTsKIAogY2xhc3MgRnJhbWVWaWV3IGZpbmFsIDogcHVibGljIFNjcm9sbFZpZXcg
ewpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QREZJbWFnZUNhY2hpbmdQb2xpY3kuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BERkltYWdlQ2FjaGluZ1BvbGljeS5oCShu
b25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUERGSW1hZ2VDYWNoaW5nUG9saWN5
LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgUERGSW1hZ2VDYWNoaW5n
UG9saWN5IDogdWludDhfdCB7CisgICAgRW5hYmxlZCwKKyAgICBCZWxvd01lbW9yeUxpbWl0LAor
ICAgIERpc2FibGVkLAorICAgIENsaXBCb3VuZHNPbmx5LAorI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCisgICAgRGVmYXVsdCA9IEJlbG93TWVtb3J5TGltaXQKKyNlbHNlCisgICAgRGVmYXVsdCA9
IEVuYWJsZWQKKyNlbmRpZgorfTsKKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCShyZXZpc2lv
biAyNjk4MzApCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiRE9NUmVjdC5oIgogI2luY2x1ZGUgIkRPTVJl
Y3RMaXN0LmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VQcm92aWRlci5oIgorI2luY2x1ZGUgIkRlYnVn
T3ZlcmxheVJlZ2lvbnMuaCIKICNpbmNsdWRlICJEZWJ1Z1BhZ2VPdmVybGF5cy5oIgogI2luY2x1
ZGUgIkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCiAjaW5jbHVkZSAiRGlhZ25vc3RpY0xvZ2dp
bmdLZXlzLmgiCkBAIC05NDQsNyArOTQ1LDcgQEAgdm9pZCBQYWdlOjpzZXRFZGl0YWJsZVJlZ2lv
bkVuYWJsZWQoYm9vbAogCiBib29sIFBhZ2U6OnNob3VsZEJ1aWxkRWRpdGFibGVSZWdpb24oKSBj
b25zdAogewotICAgIHJldHVybiBtX2lzRWRpdGFibGVSZWdpb25FbmFibGVkIHx8IG1fc2V0dGlu
Z3MtPnZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zKCkgJiBFZGl0YWJsZUVsZW1lbnRSZWdpb247
CisgICAgcmV0dXJuIG1faXNFZGl0YWJsZVJlZ2lvbkVuYWJsZWQgfHwgT3B0aW9uU2V0PERlYnVn
T3ZlcmxheVJlZ2lvbnM+Ojpmcm9tUmF3KG1fc2V0dGluZ3MtPnZpc2libGVEZWJ1Z092ZXJsYXlS
ZWdpb25zKCkpLmNvbnRhaW5zKERlYnVnT3ZlcmxheVJlZ2lvbnM6OkVkaXRhYmxlRWxlbWVudFJl
Z2lvbik7CiB9CiAKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9y
aWdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdp
bi5jcHAJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlP
cmlnaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MDQsMTQgKzQwNCwxNCBAQCBib29sIFNlY3Vy
aXR5T3JpZ2luOjpjYW5BY2Nlc3NTdG9yYWdlKGNvCiAgICAgaWYgKGlzTG9jYWwoKSAmJiAhbmVl
ZHNTdG9yYWdlQWNjZXNzRnJvbUZpbGVVUkxzUXVpcmsoKSAmJiAhbV91bml2ZXJzYWxBY2Nlc3Mg
JiYgc2hvdWxkQWxsb3dGcm9tVGhpcmRQYXJ0eSAhPSBBbHdheXNBbGxvd0Zyb21UaGlyZFBhcnR5
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgCi0gICAgaWYgKG1fc3RvcmFnZUJsb2NraW5n
UG9saWN5ID09IEJsb2NrQWxsU3RvcmFnZSkKKyAgICBpZiAobV9zdG9yYWdlQmxvY2tpbmdQb2xp
Y3kgPT0gU3RvcmFnZUJsb2NraW5nUG9saWN5OjpCbG9ja0FsbCkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgLy8gRklYTUU6IFRoaXMgY2hlY2sgc2hvdWxkIGJlIHJlcGxhY2VkIHdpdGgg
YW4gQVNTRVJUIG9uY2Ugd2UgY2FuIGd1YXJhbnRlZSB0aGF0IHRvcE9yaWdpbiBpcyBub3QgbnVs
bC4KICAgICBpZiAoIXRvcE9yaWdpbikKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBpZiAo
dG9wT3JpZ2luLT5tX3N0b3JhZ2VCbG9ja2luZ1BvbGljeSA9PSBCbG9ja0FsbFN0b3JhZ2UpCisg
ICAgaWYgKHRvcE9yaWdpbi0+bV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgPT0gU3RvcmFnZUJsb2Nr
aW5nUG9saWN5OjpCbG9ja0FsbCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKHNo
b3VsZEFsbG93RnJvbVRoaXJkUGFydHkgPT0gQWx3YXlzQWxsb3dGcm9tVGhpcmRQYXJ0eSkKQEAg
LTQyMCw3ICs0MjAsNyBAQCBib29sIFNlY3VyaXR5T3JpZ2luOjpjYW5BY2Nlc3NTdG9yYWdlKGNv
CiAgICAgaWYgKG1fdW5pdmVyc2FsQWNjZXNzKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAg
IGlmICgobV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgPT0gQmxvY2tUaGlyZFBhcnR5U3RvcmFnZSB8
fCB0b3BPcmlnaW4tPm1fc3RvcmFnZUJsb2NraW5nUG9saWN5ID09IEJsb2NrVGhpcmRQYXJ0eVN0
b3JhZ2UpICYmICF0b3BPcmlnaW4tPmlzU2FtZU9yaWdpbkFzKCp0aGlzKSkKKyAgICBpZiAoKG1f
c3RvcmFnZUJsb2NraW5nUG9saWN5ID09IFN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QmxvY2tUaGly
ZFBhcnR5IHx8IHRvcE9yaWdpbi0+bV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgPT0gU3RvcmFnZUJs
b2NraW5nUG9saWN5OjpCbG9ja1RoaXJkUGFydHkpICYmICF0b3BPcmlnaW4tPmlzU2FtZU9yaWdp
bkFzKCp0aGlzKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CkBA
IC00ODgsNyArNDg4LDcgQEAgdm9pZCBTZWN1cml0eU9yaWdpbjo6Z3JhbnRTdG9yYWdlQWNjZXNz
RgogCiBTdHJpbmcgU2VjdXJpdHlPcmlnaW46OmRvbWFpbkZvckNhY2hlUGFydGl0aW9uKCkgY29u
c3QKIHsKLSAgICBpZiAobV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgIT0gQmxvY2tUaGlyZFBhcnR5
U3RvcmFnZSkKKyAgICBpZiAobV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgIT0gU3RvcmFnZUJsb2Nr
aW5nUG9saWN5OjpCbG9ja1RoaXJkUGFydHkpCiAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygp
OwogCiAgICAgaWYgKGlzSFRUUEZhbWlseSgpKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9T
ZWN1cml0eU9yaWdpbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJp
dHlPcmlnaW4uaAkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1
cml0eU9yaWdpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjcHJhZ21hIG9u
Y2UKIAogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luRGF0YS5oIgorI2luY2x1ZGUgIlN0b3JhZ2VC
bG9ja2luZ1BvbGljeS5oIgogI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAjaW5jbHVkZSA8
d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CkBAIC00MywxMiArNDQsNiBAQCBwdWJsaWM6CiAgICAgICAgIEFzawogICAgIH07CiAKLSAg
ICBlbnVtIFN0b3JhZ2VCbG9ja2luZ1BvbGljeSB7Ci0gICAgICAgIEFsbG93QWxsU3RvcmFnZSA9
IDAsCi0gICAgICAgIEJsb2NrVGhpcmRQYXJ0eVN0b3JhZ2UsCi0gICAgICAgIEJsb2NrQWxsU3Rv
cmFnZQotICAgIH07Ci0KICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPFNlY3VyaXR5T3Jp
Z2luPiBjcmVhdGUoY29uc3QgVVJMJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxT
ZWN1cml0eU9yaWdpbj4gY3JlYXRlVW5pcXVlKCk7CiAKQEAgLTI0Myw3ICsyMzgsNyBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV91bml2ZXJzYWxBY2Nlc3MgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9k
b21haW5XYXNTZXRJbkRPTSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2NhbkxvYWRMb2NhbFJlc291
cmNlcyB7IGZhbHNlIH07Ci0gICAgU3RvcmFnZUJsb2NraW5nUG9saWN5IG1fc3RvcmFnZUJsb2Nr
aW5nUG9saWN5IHsgQWxsb3dBbGxTdG9yYWdlIH07CisgICAgU3RvcmFnZUJsb2NraW5nUG9saWN5
IG1fc3RvcmFnZUJsb2NraW5nUG9saWN5IHsgU3RvcmFnZUJsb2NraW5nUG9saWN5OjpBbGxvd0Fs
bCB9OwogICAgIGJvb2wgbV9lbmZvcmNlc0ZpbGVQYXRoU2VwYXJhdGlvbiB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX25lZWRzU3RvcmFnZUFjY2Vzc0Zyb21GaWxlVVJMc1F1aXJrIHsgZmFsc2UgfTsK
ICAgICBib29sIG1faXNQb3RlbnRpYWxseVRydXN0d29ydGh5IHsgZmFsc2UgfTsKQEAgLTMwOCwx
NyArMzAzLDMgQEAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gaW5saW5lIFJlZlB0cjxTZQogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLW5hbWVzcGFjZSBXVEYgewotCi10ZW1wbGF0ZTw+
IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tp
bmdQb2xpY3k+IHsKLSAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAotICAgICAgICBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5LAotICAgICAgICBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5OjpBbGxvd0FsbFN0b3Jh
Z2UsCi0gICAgICAgIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xp
Y3k6OkJsb2NrVGhpcmRQYXJ0eVN0b3JhZ2UsCi0gICAgICAgIFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkJsb2NrQWxsU3RvcmFnZQotICAgID47Ci19Owot
Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy55YW1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAko
cmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCSh3
b3JraW5nIGNvcHkpCkBAIC05NCw3ICs5NCw3IEBAIERhdGFEZXRlY3RvclR5cGVzOgogICBjb25k
aXRpb246IEVOQUJMRShEQVRBX0RFVEVDVElPTikKICAgZGVmYXVsdFZhbHVlOgogICAgIFdlYkNv
cmU6Ci0gICAgICBkZWZhdWx0OgorICAgICAgZGVmYXVsdDogRGF0YURldGVjdG9yVHlwZXM6Ok5v
bmUKIAogRGVmYXVsdFZpZGVvUG9zdGVyVVJMOgogICBjb21tZW50OiA+LQpAQCAtMTI1LDE4ICsx
MjUsMTggQEAgRWRpdGFibGVMaW5rQmVoYXZpb3I6CiAgIHJlZmluZWRUeXBlOiBFZGl0YWJsZUxp
bmtCZWhhdmlvcgogICBkZWZhdWx0VmFsdWU6CiAgICAgV2ViQ29yZToKLSAgICAgIGRlZmF1bHQ6
IEVkaXRhYmxlTGlua0RlZmF1bHRCZWhhdmlvcgorICAgICAgZGVmYXVsdDogRWRpdGFibGVMaW5r
QmVoYXZpb3I6OkRlZmF1bHQKIAogRWRpdGluZ0JlaGF2aW9yVHlwZToKICAgdHlwZTogdWludDMy
X3QKICAgcmVmaW5lZFR5cGU6IEVkaXRpbmdCZWhhdmlvclR5cGUKICAgZGVmYXVsdFZhbHVlOgog
ICAgIFdlYkNvcmU6Ci0gICAgICBQTEFURk9STShJT1NfRkFNSUxZKTogRWRpdGluZ0lPU0JlaGF2
aW9yCi0gICAgICBPUyhEQVJXSU4pOiBFZGl0aW5nTWFjQmVoYXZpb3IKLSAgICAgIE9TKFdJTkRP
V1MpOiBFZGl0aW5nV2luZG93c0JlaGF2aW9yCi0gICAgICBPUyhVTklYKTogRWRpdGluZ1VuaXhC
ZWhhdmlvcgotICAgICAgZGVmYXVsdDogRWRpdGluZ01hY0JlaGF2aW9yCisgICAgICBQTEFURk9S
TShJT1NfRkFNSUxZKTogRWRpdGluZ0JlaGF2aW9yVHlwZTo6SW9zCisgICAgICBPUyhEQVJXSU4p
OiBFZGl0aW5nQmVoYXZpb3JUeXBlOjpNYWMKKyAgICAgIE9TKFdJTkRPV1MpOiBFZGl0aW5nQmVo
YXZpb3JUeXBlOjpXaW5kb3dzCisgICAgICBPUyhVTklYKTogRWRpdGluZ0JlaGF2aW9yVHlwZTo6
VW5peAorICAgICAgZGVmYXVsdDogRWRpdGluZ0JlaGF2aW9yVHlwZTo6TWFjCiAKIEZpeGVkQmFj
a2dyb3VuZHNQYWludFJlbGF0aXZlVG9Eb2N1bWVudDoKICAgdHlwZTogYm9vbApAQCAtMjI4LDYg
KzIyOCwxMyBAQCBHZW9sb2NhdGlvbkZsb29yTGV2ZWxFbmFibGVkOgogICAgIFdlYkNvcmU6CiAg
ICAgICBkZWZhdWx0OiB0cnVlCiAKK0hUTUxQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5OgorICB0
eXBlOiB1aW50MzJfdAorICByZWZpbmVkVHlwZTogSFRNTFBhcnNlclNjcmlwdGluZ0ZsYWdQb2xp
Y3kKKyAgZGVmYXVsdFZhbHVlOgorICAgIFdlYkNvcmU6CisgICAgICBkZWZhdWx0OiBIVE1MUGFy
c2VyU2NyaXB0aW5nRmxhZ1BvbGljeTo6T25seUlmU2NyaXB0SXNFbmFibGVkCisKIElkZW1wb3Rl
bnRNb2RlQXV0b3NpemluZ09ubHlIb25vcnNQZXJjZW50YWdlczoKICAgdHlwZTogYm9vbAogICBj
b25kaXRpb246IEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCkBAIC0zODksMTMgKzM5Niw2IEBAIE5l
ZWRzRGVmZXJLZXlEb3duQW5kS2V5UHJlc3NUaW1lcnNVbnRpbE4KICAgICBXZWJDb3JlOgogICAg
ICAgZGVmYXVsdDogZmFsc2UKIAotUGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeToKLSAgdHlwZTog
dWludDMyX3QKLSAgcmVmaW5lZFR5cGU6IFBhcnNlclNjcmlwdGluZ0ZsYWdQb2xpY3kKLSAgZGVm
YXVsdFZhbHVlOgotICAgIFdlYkNvcmU6Ci0gICAgICBkZWZhdWx0OiBQYXJzZXJTY3JpcHRpbmdG
bGFnUG9saWN5OjpPbmx5SWZTY3JpcHRJc0VuYWJsZWQKLQogUGF5bWVudFJlcXVlc3RFbmFibGVk
OgogICB0eXBlOiBib29sCiAgIGNvbmRpdGlvbjogRU5BQkxFKFBBWU1FTlRfUkVRVUVTVCkKQEAg
LTQwOCw3ICs0MDgsOCBAQCBQREZJbWFnZUNhY2hpbmdQb2xpY3k6CiAgIHJlZmluZWRUeXBlOiBQ
REZJbWFnZUNhY2hpbmdQb2xpY3kKICAgZGVmYXVsdFZhbHVlOgogICAgIFdlYkNvcmU6Ci0gICAg
ICBkZWZhdWx0OiBQREZJbWFnZUNhY2hpbmdEZWZhdWx0CisgICAgICBQTEFURk9STShJT1NfRkFN
SUxZKTogUERGSW1hZ2VDYWNoaW5nUG9saWN5OjpCZWxvd01lbW9yeUxpbWl0CisgICAgICBkZWZh
dWx0OiBQREZJbWFnZUNhY2hpbmdQb2xpY3k6OkVuYWJsZWQKIAogUHJlZmVyTUlNRVR5cGVGb3JJ
bWFnZXM6CiAgIHR5cGU6IGJvb2wKQEAgLTQ4OSwxMSArNDkwLDExIEBAIFN0b3JhZ2VBY2Nlc3NB
UElQZXJQYWdlU2NvcGVFbmFibGVkOgogCiBTdG9yYWdlQmxvY2tpbmdQb2xpY3k6CiAgIHR5cGU6
IHVpbnQzMl90Ci0gIHJlZmluZWRUeXBlOiBTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5n
UG9saWN5CisgIHJlZmluZWRUeXBlOiBTdG9yYWdlQmxvY2tpbmdQb2xpY3kKICAgd2ViY29yZU9u
Q2hhbmdlOiBzdG9yYWdlQmxvY2tpbmdQb2xpY3lDaGFuZ2VkCiAgIGRlZmF1bHRWYWx1ZToKICAg
ICBXZWJDb3JlOgotICAgICAgZGVmYXVsdDogU2VjdXJpdHlPcmlnaW46OkFsbG93QWxsU3RvcmFn
ZQorICAgICAgZGVmYXVsdDogU3RvcmFnZUJsb2NraW5nUG9saWN5OjpBbGxvd0FsbAogCiBTeXN0
ZW1MYXlvdXREaXJlY3Rpb246CiAgIHR5cGU6IHVpbnQzMl90CkBAIC01MjMsNyArNTI0LDcgQEAg
VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcjoKICAgcmVmaW5lZFR5cGU6IFRl
eHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IKICAgZGVmYXVsdFZhbHVlOgogICAg
IFdlYkNvcmU6Ci0gICAgICBkZWZhdWx0OiBUZXh0RGlyZWN0aW9uU3VibWVudUF1dG9tYXRpY2Fs
bHlJbmNsdWRlZAorICAgICAgZGVmYXVsdDogVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25C
ZWhhdmlvcjo6QXV0b21hdGljYWxseUluY2x1ZGVkCiAKIFRpbWVXaXRob3V0TW91c2VNb3ZlbWVu
dEJlZm9yZUhpZGluZ0NvbnRyb2xzOgogICB0eXBlOiBkb3VibGUKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3NCYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFn
ZS9TZXR0aW5nc0Jhc2UuaAkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9TZXR0aW5nc0Jhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNzQgKzI4LDM3IEBACiAKICNp
bmNsdWRlICJDbGlwYm9hcmRBY2Nlc3NQb2xpY3kuaCIKICNpbmNsdWRlICJDb250ZW50VHlwZS5o
IgotI2luY2x1ZGUgIkVkaXRpbmdCZWhhdmlvclR5cGVzLmgiCi0jaW5jbHVkZSAiSW50U2l6ZS5o
IgotI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiRWRpdGFibGVMaW5rQmVo
YXZpb3IuaCIKKyNpbmNsdWRlICJFZGl0aW5nQmVoYXZpb3JUeXBlLmgiCisjaW5jbHVkZSAiRm9u
dExvYWRUaW1pbmdPdmVycmlkZS5oIgorI2luY2x1ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgiCisj
aW5jbHVkZSAiRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlLmgiCisjaW5jbHVkZSAiRnJhbWVGbGF0
dGVuaW5nLmgiCisjaW5jbHVkZSAiSFRNTFBhcnNlclNjcmlwdGluZ0ZsYWdQb2xpY3kuaCIKKyNp
bmNsdWRlICJQREZJbWFnZUNhY2hpbmdQb2xpY3kuaCIKKyNpbmNsdWRlICJTdG9yYWdlQmxvY2tp
bmdQb2xpY3kuaCIKICNpbmNsdWRlICJTdG9yYWdlTWFwLmgiCi0jaW5jbHVkZSAiVGV4dEZsYWdz
LmgiCisjaW5jbHVkZSAiVGV4dERpcmVjdGlvbi5oIgorI2luY2x1ZGUgIlRleHREaXJlY3Rpb25T
dWJtZW51SW5jbHVzaW9uQmVoYXZpb3IuaCIKICNpbmNsdWRlICJUaW1lci5oIgotI2luY2x1ZGUg
IldyaXRpbmdNb2RlLmgiCisjaW5jbHVkZSAiVXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeS5o
IgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1J1bnRpbWVGbGFncy5oPgogI2luY2x1ZGUgPHVu
aWNvZGUvdXNjcmlwdC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgogI2luY2x1ZGUgPHd0Zi9V
UkwuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0
cmluZy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmdIYXNoLmg+CisKKyNpZiBFTkFC
TEUoREFUQV9ERVRFQ1RJT04pCisjaW5jbHVkZSAiRGF0YURldGVjdG9yVHlwZXMuaCIKKyNlbmRp
ZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZvbnRHZW5lcmljRmFtaWxpZXM7CiBj
bGFzcyBQYWdlOwogCi1lbnVtIGNsYXNzIERhdGFEZXRlY3RvclR5cGVzIDogdWludDMyX3Q7Ci0K
LWVudW0gRWRpdGFibGVMaW5rQmVoYXZpb3IgewotICAgIEVkaXRhYmxlTGlua0RlZmF1bHRCZWhh
dmlvciwKLSAgICBFZGl0YWJsZUxpbmtBbHdheXNMaXZlLAotICAgIEVkaXRhYmxlTGlua09ubHlM
aXZlV2l0aFNoaWZ0S2V5LAotICAgIEVkaXRhYmxlTGlua0xpdmVXaGVuTm90Rm9jdXNlZCwKLSAg
ICBFZGl0YWJsZUxpbmtOZXZlckxpdmUKLX07Ci0KLWVudW0gVGV4dERpcmVjdGlvblN1Ym1lbnVJ
bmNsdXNpb25CZWhhdmlvciB7Ci0gICAgVGV4dERpcmVjdGlvblN1Ym1lbnVOZXZlckluY2x1ZGVk
LAotICAgIFRleHREaXJlY3Rpb25TdWJtZW51QXV0b21hdGljYWxseUluY2x1ZGVkLAotICAgIFRl
eHREaXJlY3Rpb25TdWJtZW51QWx3YXlzSW5jbHVkZWQKLX07Ci0KLWVudW0gRGVidWdPdmVybGF5
UmVnaW9uRmxhZ3MgewotICAgIE5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uID0gMSA8PCAwLAotICAg
IFdoZWVsRXZlbnRIYW5kbGVyUmVnaW9uID0gMSA8PCAxLAotICAgIFRvdWNoQWN0aW9uUmVnaW9u
ID0gMSA8PCAyLAotICAgIEVkaXRhYmxlRWxlbWVudFJlZ2lvbiA9IDEgPDwgMywKLX07Ci0KLWVu
dW0gY2xhc3MgVXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeSB7Ci0gICAgQ29udGVudCwKLSAg
ICBTeXN0ZW0KLX07Ci0KLWVudW0gUERGSW1hZ2VDYWNoaW5nUG9saWN5IHsKLSAgICBQREZJbWFn
ZUNhY2hpbmdFbmFibGVkLAotICAgIFBERkltYWdlQ2FjaGluZ0JlbG93TWVtb3J5TGltaXQsCi0g
ICAgUERGSW1hZ2VDYWNoaW5nRGlzYWJsZWQsCi0gICAgUERGSW1hZ2VDYWNoaW5nQ2xpcEJvdW5k
c09ubHksCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBQREZJbWFnZUNhY2hpbmdEZWZh
dWx0ID0gUERGSW1hZ2VDYWNoaW5nQmVsb3dNZW1vcnlMaW1pdAotI2Vsc2UKLSAgICBQREZJbWFn
ZUNhY2hpbmdEZWZhdWx0ID0gUERGSW1hZ2VDYWNoaW5nRW5hYmxlZAotI2VuZGlmCi19OwotCi1l
bnVtIGNsYXNzIEZyYW1lRmxhdHRlbmluZyB7Ci0gICAgRGlzYWJsZWQsCi0gICAgRW5hYmxlZEZv
ck5vbkZ1bGxTY3JlZW5JRnJhbWVzLAotICAgIEZ1bGx5RW5hYmxlZAotfTsKLQotdHlwZWRlZiB1
bnNpZ25lZCBEZWJ1Z092ZXJsYXlSZWdpb25zOwotCiBjbGFzcyBTZXR0aW5nc0Jhc2UgewogICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKFNldHRpbmdzQmFzZSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgpAQCAtMTAzLDEwICs2Niw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcGFn
ZURlc3Ryb3llZCgpIHsgbV9wYWdlID0gbnVsbHB0cjsgfQogCi0gICAgZW51bSBjbGFzcyBGb250
TG9hZFRpbWluZ092ZXJyaWRlIDogdWludDhfdCB7IE5vbmUsIEJsb2NrLCBTd2FwLCBGYWlsdXJl
IH07Ci0gICAgZW51bSBjbGFzcyBQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5IDogdWludDhfdCB7
IE9ubHlJZlNjcmlwdElzRW5hYmxlZCwgRW5hYmxlZCB9OwotICAgIGVudW0gY2xhc3MgRm9yY2Vk
QWNjZXNzaWJpbGl0eVZhbHVlIDogdWludDhfdCB7IFN5c3RlbSwgT24sIE9mZiB9OwotCiAjaWYg
RU5BQkxFKE1FRElBX1NPVVJDRSkKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBwbGF0
Zm9ybURlZmF1bHRNZWRpYVNvdXJjZUVuYWJsZWQoKTsKICNlbmRpZgpJbmRleDogU291cmNlL1dl
YkNvcmUvcGFnZS9TdG9yYWdlQmxvY2tpbmdQb2xpY3kuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wYWdlL1N0b3JhZ2VCbG9ja2luZ1BvbGljeS5oCShub25leGlzdGVudCkKKysrIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvU3RvcmFnZUJsb2NraW5nUG9saWN5LmgJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8
d3RmL0VudW1UcmFpdHMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFN0
b3JhZ2VCbG9ja2luZ1BvbGljeSA6IHVpbnQ4X3QgeworICAgIEFsbG93QWxsID0gMCwKKyAgICBC
bG9ja1RoaXJkUGFydHksCisgICAgQmxvY2tBbGwKK307CisKK30KKworbmFtZXNwYWNlIFdURiB7
CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6U3RvcmFnZUJsb2NraW5n
UG9saWN5PiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29y
ZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5LAorICAgICAgICBXZWJDb3JlOjpTdG9yYWdlQmxvY2tp
bmdQb2xpY3k6OkFsbG93QWxsLAorICAgICAgICBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xp
Y3k6OkJsb2NrVGhpcmRQYXJ0eSwKKyAgICAgICAgV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9s
aWN5OjpCbG9ja0FsbAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BhZ2UvVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4dERpcmVjdGlvblN1Ym1lbnVJ
bmNsdXNpb25CZWhhdmlvci5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvci5oCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitlbnVtIGNsYXNzIFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZp
b3IgOiB1aW50OF90IHsKKyAgICBOZXZlckluY2x1ZGVkLAorICAgIEF1dG9tYXRpY2FsbHlJbmNs
dWRlZCwKKyAgICBBbHdheXNJbmNsdWRlZAorfTsKKworfQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGFnZS9Vc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGFnZS9Vc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5LmgJKG5vbmV4aXN0ZW50
KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9Vc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgVXNlckludGVyZmFjZURpcmVj
dGlvblBvbGljeSA6IGJvb2wgeworICAgIENvbnRlbnQsCisgICAgU3lzdGVtCit9OworCit9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuaAkocmV2aXNpb24gMjY5ODMwKQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2
LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRmxvYXRTaXplLmgiCisjaW5j
bHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIKICNpbmNsdWRlICJJbWFnZU9yaWVudGF0aW9uLmgi
CiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIlBhdGguaCIKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCShyZXZp
c2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVz
Y3JpcHRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQAogCiAjcHJhZ21hIG9u
Y2UKIAorI2luY2x1ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgiCiAjaW5jbHVkZSAiRm9udFNlbGVj
dGlvbkFsZ29yaXRobS5oIgogI2luY2x1ZGUgIkZvbnRUYWdnZWRTZXR0aW5ncy5oIgogI2luY2x1
ZGUgIlRleHRGbGFncy5oIgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Evd2luL0NBQ0ZMYXllclRyZWVIb3N0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vQ0FDRkxheWVyVHJlZUhvc3QuY3BwCShyZXZpc2lv
biAyNjk4MzApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vQ0FD
RkxheWVyVHJlZUhvc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNywxMSArMzcsMTIgQEAKICNp
bmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1DQUxheWVyV2luLmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1MYXllci5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAi
VGlsZWRCYWNraW5nLmgiCiAjaW5jbHVkZSAiV0tDQUNGVmlld0xheWVyVHJlZUhvc3QuaCIKICNp
bmNsdWRlICJXZWJDb3JlSW5zdGFuY2VIYW5kbGUuaCIKLSNpbmNsdWRlIDxsaW1pdHMuaD4KICNp
bmNsdWRlIDxRdWFydHpDb3JlL0NBQmFzZS5oPgorI2luY2x1ZGUgPGxpbWl0cy5oPgogI2luY2x1
ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvVW5pcXVlQXJyYXkuaD4KICNp
bmNsdWRlIDx3dGYvd2luL0dESU9iamVjdC5oPgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5jcHAJKHJldmlz
aW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BERkRv
Y3VtZW50SW1hZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDEsNyArMjAxLDcgQEAgdm9pZCBQ
REZEb2N1bWVudEltYWdlOjpkZWNvZGVkU2l6ZUNoYW5nZQogdm9pZCBQREZEb2N1bWVudEltYWdl
Ojp1cGRhdGVDYWNoZWRJbWFnZUlmTmVlZGVkKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29u
c3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QpCiB7CiAgICAg
Ly8gQ2xpcHBlZCBvcHRpb24gaXMgZm9yIHRlc3Rpbmcgb25seS4gRm9yY2UgcmUtY2FjaGluZyB0
aGUgUERGIHdpdGggZWFjaCBkcmF3LgotICAgIGJvb2wgZm9yY2VVcGRhdGVDYWNoZWRJbWFnZSA9
IG1fcGRmSW1hZ2VDYWNoaW5nUG9saWN5ID09IFBERkltYWdlQ2FjaGluZ0NsaXBCb3VuZHNPbmx5
IHx8ICFtX2NhY2hlZEltYWdlQnVmZmVyOworICAgIGJvb2wgZm9yY2VVcGRhdGVDYWNoZWRJbWFn
ZSA9IG1fcGRmSW1hZ2VDYWNoaW5nUG9saWN5ID09IFBERkltYWdlQ2FjaGluZ1BvbGljeTo6Q2xp
cEJvdW5kc09ubHkgfHwgIW1fY2FjaGVkSW1hZ2VCdWZmZXI7CiAgICAgaWYgKCFmb3JjZVVwZGF0
ZUNhY2hlZEltYWdlICYmIGNhY2hlUGFyYW1ldGVyc01hdGNoKGNvbnRleHQsIGRzdFJlY3QsIHNy
Y1JlY3QpKSB7CiAgICAgICAgIC8vIEFkanVzdCB0aGUgdmlldy1wb3J0IHJlY3RhbmdsZXMgaWYg
bm8gcmUtY2FjaGluZyB3aWxsIGhhcHBlbi4KICAgICAgICAgbV9jYWNoZWRJbWFnZVJlY3QubW92
ZShGbG9hdFNpemUoZHN0UmVjdC5sb2NhdGlvbigpIC0gbV9jYWNoZWREZXN0aW5hdGlvblJlY3Qu
bG9jYXRpb24oKSkpOwpAQCAtMjEwLDE3ICsyMTAsMTcgQEAgdm9pZCBQREZEb2N1bWVudEltYWdl
Ojp1cGRhdGVDYWNoZWRJbWFnZQogICAgIH0KIAogICAgIHN3aXRjaCAobV9wZGZJbWFnZUNhY2hp
bmdQb2xpY3kpIHsKLSAgICBjYXNlIFBERkltYWdlQ2FjaGluZ0Rpc2FibGVkOgorICAgIGNhc2Ug
UERGSW1hZ2VDYWNoaW5nUG9saWN5OjpEaXNhYmxlZDoKICAgICAgICAgcmV0dXJuOwotICAgIGNh
c2UgUERGSW1hZ2VDYWNoaW5nQmVsb3dNZW1vcnlMaW1pdDoKKyAgICBjYXNlIFBERkltYWdlQ2Fj
aGluZ1BvbGljeTo6QmVsb3dNZW1vcnlMaW1pdDoKICAgICAgICAgLy8gS2VlcCB0aGUgbWVtb3J5
IHVzZWQgYnkgdGhlIGNhY2hlZCBpbWFnZSBiZWxvdyBzb21lIHRocmVzaG9sZCwgb3RoZXJ3aXNl
IFdlYktpdCBwcm9jZXNzCiAgICAgICAgIC8vIHdpbGwgamV0c2FtIGlmIGl0IGV4Y2VlZHMgaXRz
IG1lbW9yeSBsaW1pdC4gT25seSBhIHJlY3RhbmdsZSBmcm9tIHRoZSBQREYgbWF5IGJlIGNhY2hl
ZC4KICAgICAgICAgbV9jYWNoZWRJbWFnZVJlY3QgPSBjYWNoZWRJbWFnZVJlY3QoY29udGV4dCwg
ZHN0UmVjdCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUERGSW1hZ2VDYWNoaW5nQ2xpcEJv
dW5kc09ubHk6CisgICAgY2FzZSBQREZJbWFnZUNhY2hpbmdQb2xpY3k6OkNsaXBCb3VuZHNPbmx5
OgogICAgICAgICBtX2NhY2hlZEltYWdlUmVjdCA9IGludGVyc2VjdGlvbihjb250ZXh0LmNsaXBC
b3VuZHMoKSwgZHN0UmVjdCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUERGSW1hZ2VDYWNo
aW5nRW5hYmxlZDoKKyAgICBjYXNlIFBERkltYWdlQ2FjaGluZ1BvbGljeTo6RW5hYmxlZDoKICAg
ICAgICAgbV9jYWNoZWRJbWFnZVJlY3QgPSBkc3RSZWN0OwogICAgICAgICBicmVhazsKICAgICB9
CkBAIC0yMjgsNyArMjI4LDcgQEAgdm9pZCBQREZEb2N1bWVudEltYWdlOjp1cGRhdGVDYWNoZWRJ
bWFnZQogICAgIEZsb2F0U2l6ZSBjYWNoZWRJbWFnZVNpemUgPSBGbG9hdFJlY3QoZW5jbG9zaW5n
SW50UmVjdChtX2NhY2hlZEltYWdlUmVjdCkpLnNpemUoKTsKIAogICAgIC8vIENhY2hlIHRoZSBQ
REYgaW1hZ2Ugb25seSBpZiB0aGUgc2l6ZSBvZiB0aGUgbmV3IGltYWdlIHdvbid0IGV4Y2VlZCB0
aGUgY2FjaGUgdGhyZXNob2xkLgotICAgIGlmIChtX3BkZkltYWdlQ2FjaGluZ1BvbGljeSA9PSBQ
REZJbWFnZUNhY2hpbmdCZWxvd01lbW9yeUxpbWl0KSB7CisgICAgaWYgKG1fcGRmSW1hZ2VDYWNo
aW5nUG9saWN5ID09IFBERkltYWdlQ2FjaGluZ1BvbGljeTo6QmVsb3dNZW1vcnlMaW1pdCkgewog
ICAgICAgICBJbnRTaXplIHNjYWxlZFNpemUgPSBJbWFnZUJ1ZmZlcjo6Y29tcGF0aWJsZUJ1ZmZl
clNpemUoY2FjaGVkSW1hZ2VTaXplLCBjb250ZXh0KTsKICAgICAgICAgaWYgKHNfYWxsRGVjb2Rl
ZERhdGFTaXplICsgc2NhbGVkU2l6ZS51bmNsYW1wZWRBcmVhKCkgKiA0IC0gbV9jYWNoZWRCeXRl
cyA+IHNfbWF4RGVjb2RlZERhdGFTaXplKSB7CiAgICAgICAgICAgICBkZXN0cm95RGVjb2RlZERh
dGEoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BERkRvY3Vt
ZW50SW1hZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9QREZEb2N1bWVudEltYWdlLmgJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuaAkod29ya2luZyBjb3B5
KQpAQCAtOTQsNyArOTQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlQ2FjaGVkSW1hZ2VJ
Zk5lZWRlZChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0
IEZsb2F0UmVjdCYgc3JjUmVjdCk7CiAgICAgYm9vbCBjYWNoZVBhcmFtZXRlcnNNYXRjaChHcmFw
aGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYg
c3JjUmVjdCkgY29uc3Q7CiAKLSAgICBQREZJbWFnZUNhY2hpbmdQb2xpY3kgbV9wZGZJbWFnZUNh
Y2hpbmdQb2xpY3kgeyBQREZJbWFnZUNhY2hpbmdEZWZhdWx0IH07CisgICAgUERGSW1hZ2VDYWNo
aW5nUG9saWN5IG1fcGRmSW1hZ2VDYWNoaW5nUG9saWN5IHsgUERGSW1hZ2VDYWNoaW5nUG9saWN5
OjpEZWZhdWx0IH07CiAKICNpZiBVU0UoUERGS0lUX0ZPUl9QREZET0NVTUVOVElNQUdFKQogICAg
IFJldGFpblB0cjxQREZEb2N1bWVudD4gbV9kb2N1bWVudDsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvRm9udFJlbmRlcmluZ01vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0ZvbnRSZW5kZXJpbmdNb2RlLmgJKG5vbmV4aXN0ZW50KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Gb250UmVuZGVyaW5nTW9kZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8g
VGhpcyBzZXR0aW5nIGlzIHVzZWQgdG8gcHJvdmlkZSB3YXlzIG9mIHN3aXRjaGluZyBiZXR3ZWVu
IG11bHRpcGxlIHJlbmRlcmluZyBtb2RlcyB0aGF0IG1heSBoYXZlIGRpZmZlcmVudAorLy8gbWV0
cmljcy4gSXQgaXMgdXNlZCB0byBzd2l0Y2ggYmV0d2VlbiBDRyBhbmQgR0RJIHRleHQgb24gV2lu
ZG93cy4KK2VudW0gY2xhc3MgRm9udFJlbmRlcmluZ01vZGUgOiB1aW50OF90IHsKKyAgICBOb3Jt
YWwsCisgICAgQWx0ZXJuYXRlCit9OworCit9CisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0
ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkZvbnRSZW5kZXJpbmdNb2RlPiB7CisgICAg
dXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6Rm9udFJlbmRlcmlu
Z01vZGUsCisgICAgICAgIFdlYkNvcmU6OkZvbnRSZW5kZXJpbmdNb2RlOjpOb3JtYWwsCisgICAg
ICAgIFdlYkNvcmU6OkZvbnRSZW5kZXJpbmdNb2RlOjpBbHRlcm5hdGUKKyAgICA+OworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV1RGCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1Rl
eHREaXJlY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L1RleHREaXJlY3Rpb24uaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L1RleHREaXJlY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBj
bGFzcyBUZXh0RGlyZWN0aW9uIDogYm9vbCB7IExUUiwgUlRMIH07CisKK2lubGluZSBib29sIGlz
TGVmdFRvUmlnaHREaXJlY3Rpb24oVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24pCit7CisgICAgcmV0
dXJuIGRpcmVjdGlvbiA9PSBUZXh0RGlyZWN0aW9uOjpMVFI7Cit9CisKK30KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEZsYWdzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RmxhZ3MuaAkocmV2aXNpb24gMjY5ODMwKQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RmxhZ3MuaAkod29ya2luZyBjb3B5KQpA
QCAtNDQsMTMgKzQ0LDYgQEAgZW51bSBjbGFzcyBGb250U21vb3RoaW5nTW9kZSA6IHVpbnQ4X3Qg
ewogICAgIFN1YnBpeGVsQW50aWFsaWFzZWQKIH07CiAKLS8vIFRoaXMgc2V0dGluZyBpcyB1c2Vk
IHRvIHByb3ZpZGUgd2F5cyBvZiBzd2l0Y2hpbmcgYmV0d2VlbiBtdWx0aXBsZSByZW5kZXJpbmcg
bW9kZXMgdGhhdCBtYXkgaGF2ZSBkaWZmZXJlbnQKLS8vIG1ldHJpY3MuIEl0IGlzIHVzZWQgdG8g
c3dpdGNoIGJldHdlZW4gQ0cgYW5kIEdESSB0ZXh0IG9uIFdpbmRvd3MuCi1lbnVtIGNsYXNzIEZv
bnRSZW5kZXJpbmdNb2RlIDogdWludDhfdCB7Ci0gICAgTm9ybWFsLAotICAgIEFsdGVybmF0ZQot
fTsKLQogZW51bSBjbGFzcyBGb250T3JpZW50YXRpb24gOiB1aW50OF90IHsKICAgICBIb3Jpem9u
dGFsLAogICAgIFZlcnRpY2FsCkBAIC02NDcsMTQgKzY0MCw2IEBAIHRlbXBsYXRlPD4gc3RydWN0
IEVudW1UcmFpdHM8V2ViQ29yZTo6Rm8KICAgICA+OwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3Qg
RW51bVRyYWl0czxXZWJDb3JlOjpGb250UmVuZGVyaW5nTW9kZT4gewotICAgIHVzaW5nIHZhbHVl
cyA9IEVudW1WYWx1ZXM8Ci0gICAgV2ViQ29yZTo6Rm9udFJlbmRlcmluZ01vZGUsCi0gICAgV2Vi
Q29yZTo6Rm9udFJlbmRlcmluZ01vZGU6Ok5vcm1hbCwKLSAgICBXZWJDb3JlOjpGb250UmVuZGVy
aW5nTW9kZTo6QWx0ZXJuYXRlCi0gICAgPjsKLX07Ci0KIHRlbXBsYXRlPD4gc3RydWN0IEVudW1U
cmFpdHM8V2ViQ29yZTo6Rm9udE9yaWVudGF0aW9uPiB7CiAgICAgdXNpbmcgdmFsdWVzID0gRW51
bVZhbHVlczwKICAgICBXZWJDb3JlOjpGb250T3JpZW50YXRpb24sCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L1dyaXRpbmdNb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9Xcml0aW5nTW9kZS5oCShyZXZpc2lvbiAyNjk4MzApCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1dyaXRpbmdNb2RlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTMxLDE4ICszMSwxMSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIlRleHREaXJl
Y3Rpb24uaCIKICNpbmNsdWRlIDxhcnJheT4KLSNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gY2xhc3MgVGV4dERpcmVjdGlvbiA6IGJvb2wg
eyBMVFIsIFJUTCB9OwotCi1pbmxpbmUgYm9vbCBpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKFRleHRE
aXJlY3Rpb24gZGlyZWN0aW9uKQotewotICAgIHJldHVybiBkaXJlY3Rpb24gPT0gVGV4dERpcmVj
dGlvbjo6TFRSOwotfQotCiBlbnVtIGNsYXNzIFdyaXRpbmdNb2RlIDogdWludDhfdCB7CiAgICAg
VG9wVG9Cb3R0b20gPSAwLCAvLyBob3Jpem9udGFsLXRiCiAgICAgQm90dG9tVG9Ub3AgPSAxLCAv
LyBob3Jpem9udGFsLWJ0CkBAIC01MCw2NyArNDMsNjggQEAgZW51bSBjbGFzcyBXcml0aW5nTW9k
ZSA6IHVpbnQ4X3QgewogICAgIFJpZ2h0VG9MZWZ0ID0gMywgLy8gdmVydGljYWwtcmwKIH07CiAK
LSNkZWZpbmUgTUFLRV9URVhUX0ZMT1cod3JpdGluZ01vZGUsIGRpcmVjdGlvbikgIChzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4od3JpdGluZ01vZGUpIDw8IDEgfCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
ZGlyZWN0aW9uKSkKK2NvbnN0ZXhwciB1bnNpZ25lZCBtYWtlVGV4dEZsb3dJbml0YWxpemVyKFdy
aXRpbmdNb2RlIHdyaXRpbmdNb2RlLCBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbikKK3sKKyAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHdyaXRpbmdNb2RlKSA8PCAxIHwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KGRpcmVjdGlvbik7Cit9CiAKIC8vIERlZmluZSB0aGUgdGV4dCBmbG93IGlu
IHRlcm1zIG9mIHRoZSB3cml0aW5nIG1vZGUgYW5kIHRoZSB0ZXh0IGRpcmVjdGlvbi4gVGhlIGZp
cnN0CiAvLyBwYXJ0IGlzIHRoZSBsaW5lIGdyb3dpbmcgZGlyZWN0aW9uIGFuZCB0aGUgc2Vjb25k
IHBhcnQgaXMgdGhlIGJsb2NrIGdyb3dpbmcgZGlyZWN0aW9uLgogZW51bSBUZXh0RmxvdyB7Ci0g
ICAgSW5saW5lRWFzdEJsb2NrU291dGggPSBNQUtFX1RFWFRfRkxPVyhXcml0aW5nTW9kZTo6VG9w
VG9Cb3R0b20sIFRleHREaXJlY3Rpb246OkxUUiksCi0gICAgSW5saW5lV2VzdEJsb2NrU291dGgg
PSBNQUtFX1RFWFRfRkxPVyhXcml0aW5nTW9kZTo6VG9wVG9Cb3R0b20sIFRleHREaXJlY3Rpb246
OlJUTCksCi0gICAgSW5saW5lRWFzdEJsb2NrTm9ydGggPSBNQUtFX1RFWFRfRkxPVyhXcml0aW5n
TW9kZTo6Qm90dG9tVG9Ub3AsIFRleHREaXJlY3Rpb246OkxUUiksCi0gICAgSW5saW5lV2VzdEJs
b2NrTm9ydGggPSBNQUtFX1RFWFRfRkxPVyhXcml0aW5nTW9kZTo6Qm90dG9tVG9Ub3AsIFRleHRE
aXJlY3Rpb246OlJUTCksCi0gICAgSW5saW5lU291dGhCbG9ja0Vhc3QgPSBNQUtFX1RFWFRfRkxP
VyhXcml0aW5nTW9kZTo6TGVmdFRvUmlnaHQsIFRleHREaXJlY3Rpb246OkxUUiksCi0gICAgSW5s
aW5lU291dGhCbG9ja1dlc3QgPSBNQUtFX1RFWFRfRkxPVyhXcml0aW5nTW9kZTo6TGVmdFRvUmln
aHQsIFRleHREaXJlY3Rpb246OlJUTCksCi0gICAgSW5saW5lTm9ydGhCbG9ja0Vhc3QgPSBNQUtF
X1RFWFRfRkxPVyhXcml0aW5nTW9kZTo6UmlnaHRUb0xlZnQsIFRleHREaXJlY3Rpb246OkxUUiks
Ci0gICAgSW5saW5lTm9ydGhCbG9ja1dlc3QgPSBNQUtFX1RFWFRfRkxPVyhXcml0aW5nTW9kZTo6
UmlnaHRUb0xlZnQsIFRleHREaXJlY3Rpb246OlJUTCkKKyAgICBJbmxpbmVFYXN0QmxvY2tTb3V0
aCA9IG1ha2VUZXh0Rmxvd0luaXRhbGl6ZXIoV3JpdGluZ01vZGU6OlRvcFRvQm90dG9tLCBUZXh0
RGlyZWN0aW9uOjpMVFIpLAorICAgIElubGluZVdlc3RCbG9ja1NvdXRoID0gbWFrZVRleHRGbG93
SW5pdGFsaXplcihXcml0aW5nTW9kZTo6VG9wVG9Cb3R0b20sIFRleHREaXJlY3Rpb246OlJUTCks
CisgICAgSW5saW5lRWFzdEJsb2NrTm9ydGggPSBtYWtlVGV4dEZsb3dJbml0YWxpemVyKFdyaXRp
bmdNb2RlOjpCb3R0b21Ub1RvcCwgVGV4dERpcmVjdGlvbjo6TFRSKSwKKyAgICBJbmxpbmVXZXN0
QmxvY2tOb3J0aCA9IG1ha2VUZXh0Rmxvd0luaXRhbGl6ZXIoV3JpdGluZ01vZGU6OkJvdHRvbVRv
VG9wLCBUZXh0RGlyZWN0aW9uOjpSVEwpLAorICAgIElubGluZVNvdXRoQmxvY2tFYXN0ID0gbWFr
ZVRleHRGbG93SW5pdGFsaXplcihXcml0aW5nTW9kZTo6TGVmdFRvUmlnaHQsIFRleHREaXJlY3Rp
b246OkxUUiksCisgICAgSW5saW5lU291dGhCbG9ja1dlc3QgPSBtYWtlVGV4dEZsb3dJbml0YWxp
emVyKFdyaXRpbmdNb2RlOjpMZWZ0VG9SaWdodCwgVGV4dERpcmVjdGlvbjo6UlRMKSwKKyAgICBJ
bmxpbmVOb3J0aEJsb2NrRWFzdCA9IG1ha2VUZXh0Rmxvd0luaXRhbGl6ZXIoV3JpdGluZ01vZGU6
OlJpZ2h0VG9MZWZ0LCBUZXh0RGlyZWN0aW9uOjpMVFIpLAorICAgIElubGluZU5vcnRoQmxvY2tX
ZXN0ID0gbWFrZVRleHRGbG93SW5pdGFsaXplcihXcml0aW5nTW9kZTo6UmlnaHRUb0xlZnQsIFRl
eHREaXJlY3Rpb246OlJUTCkKIH07CiAKLWlubGluZSBUZXh0RmxvdyBtYWtlVGV4dEZsb3coV3Jp
dGluZ01vZGUgd3JpdGluZ01vZGUsIFRleHREaXJlY3Rpb24gZGlyZWN0aW9uKQorY29uc3RleHBy
IGlubGluZSBUZXh0RmxvdyBtYWtlVGV4dEZsb3coV3JpdGluZ01vZGUgd3JpdGluZ01vZGUsIFRl
eHREaXJlY3Rpb24gZGlyZWN0aW9uKQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxUZXh0Rmxv
dz4oTUFLRV9URVhUX0ZMT1cod3JpdGluZ01vZGUsIGRpcmVjdGlvbikpOworICAgIHJldHVybiBz
dGF0aWNfY2FzdDxUZXh0Rmxvdz4obWFrZVRleHRGbG93SW5pdGFsaXplcih3cml0aW5nTW9kZSwg
ZGlyZWN0aW9uKSk7CiB9CiAKLSN1bmRlZiBNQUtFX1RFWFRfRkxPVwotCi1jb25zdCB1bnNpZ25l
ZCBUZXh0Rmxvd1JldmVyc2VkTWFzayA9IDE7Ci1jb25zdCB1bnNpZ25lZCBUZXh0Rmxvd0ZsaXBw
ZWRNYXNrID0gMjsKLWNvbnN0IHVuc2lnbmVkIFRleHRGbG93VmVydGljYWxNYXNrID0gNDsKK2Nv
bnN0ZXhwciB1bnNpZ25lZCBUZXh0Rmxvd1JldmVyc2VkTWFzayA9IDE7Citjb25zdGV4cHIgdW5z
aWduZWQgVGV4dEZsb3dGbGlwcGVkTWFzayA9IDI7Citjb25zdGV4cHIgdW5zaWduZWQgVGV4dEZs
b3dWZXJ0aWNhbE1hc2sgPSA0OwogCi1pbmxpbmUgYm9vbCBpc1JldmVyc2VkVGV4dEZsb3coVGV4
dEZsb3cgdGV4dGZsb3cpCitjb25zdGV4cHIgaW5saW5lIGJvb2wgaXNSZXZlcnNlZFRleHRGbG93
KFRleHRGbG93IHRleHRmbG93KQogewogICAgIHJldHVybiB0ZXh0ZmxvdyAmIFRleHRGbG93UmV2
ZXJzZWRNYXNrOwogfQogCi1pbmxpbmUgYm9vbCBpc0ZsaXBwZWRUZXh0RmxvdyhUZXh0RmxvdyB0
ZXh0ZmxvdykKK2NvbnN0ZXhwciBpbmxpbmUgYm9vbCBpc0ZsaXBwZWRUZXh0RmxvdyhUZXh0Rmxv
dyB0ZXh0ZmxvdykKIHsKICAgICByZXR1cm4gdGV4dGZsb3cgJiBUZXh0Rmxvd0ZsaXBwZWRNYXNr
OwogfQogCi1pbmxpbmUgYm9vbCBpc1ZlcnRpY2FsVGV4dEZsb3coVGV4dEZsb3cgdGV4dGZsb3cp
Citjb25zdGV4cHIgaW5saW5lIGJvb2wgaXNWZXJ0aWNhbFRleHRGbG93KFRleHRGbG93IHRleHRm
bG93KQogewogICAgIHJldHVybiB0ZXh0ZmxvdyAmIFRleHRGbG93VmVydGljYWxNYXNrOwogfQog
CiAvLyBMaW5lcyBoYXZlIHZlcnRpY2FsIG9yaWVudGF0aW9uOyBtb2RlcyB2ZXJ0aWNhbC1sciBv
ciB2ZXJ0aWNhbC1ybC4KLWlubGluZSBib29sIGlzVmVydGljYWxXcml0aW5nTW9kZShXcml0aW5n
TW9kZSB3cml0aW5nTW9kZSkKK2NvbnN0ZXhwciBpbmxpbmUgYm9vbCBpc1ZlcnRpY2FsV3JpdGlu
Z01vZGUoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUpCiB7CiAgICAgcmV0dXJuIGlzVmVydGljYWxU
ZXh0RmxvdyhtYWtlVGV4dEZsb3cod3JpdGluZ01vZGUsIFRleHREaXJlY3Rpb246OkxUUikpOwog
fQogCiAvLyBCbG9jayBwcm9ncmVzc2lvbiBpbmNyZWFzZXMgaW4gdGhlIG9wcG9zaXRlIGRpcmVj
dGlvbiB0byBub3JtYWw7IG1vZGVzIHZlcnRpY2FsLXJsIG9yIGhvcml6b250YWwtYnQuCi1pbmxp
bmUgYm9vbCBpc0ZsaXBwZWRXcml0aW5nTW9kZShXcml0aW5nTW9kZSB3cml0aW5nTW9kZSkKK2Nv
bnN0ZXhwciBpbmxpbmUgYm9vbCBpc0ZsaXBwZWRXcml0aW5nTW9kZShXcml0aW5nTW9kZSB3cml0
aW5nTW9kZSkKIHsKICAgICByZXR1cm4gaXNGbGlwcGVkVGV4dEZsb3cobWFrZVRleHRGbG93KHdy
aXRpbmdNb2RlLCBUZXh0RGlyZWN0aW9uOjpMVFIpKTsKIH0KIAogLy8gTGluZXMgaGF2ZSBob3Jp
em9udGFsIG9yaWVudGF0aW9uOyBtb2RlcyBob3Jpem9udGFsLXRiIG9yIGhvcml6b250YWwtYnQu
Ci1pbmxpbmUgYm9vbCBpc0hvcml6b250YWxXcml0aW5nTW9kZShXcml0aW5nTW9kZSB3cml0aW5n
TW9kZSkKK2NvbnN0ZXhwciBpbmxpbmUgYm9vbCBpc0hvcml6b250YWxXcml0aW5nTW9kZShXcml0
aW5nTW9kZSB3cml0aW5nTW9kZSkKIHsKICAgICByZXR1cm4gIWlzVmVydGljYWxXcml0aW5nTW9k
ZSh3cml0aW5nTW9kZSk7CiB9CiAKIC8vIEJvdHRvbSBvZiB0aGUgbGluZSBvY2N1cnMgZWFybGll
ciBpbiB0aGUgYmxvY2s7IG1vZGVzIHZlcnRpY2FsLWxyIG9yIGhvcml6b250YWwtYnQuCi1pbmxp
bmUgYm9vbCBpc0ZsaXBwZWRMaW5lc1dyaXRpbmdNb2RlKFdyaXRpbmdNb2RlIHdyaXRpbmdNb2Rl
KQorY29uc3RleHByIGlubGluZSBib29sIGlzRmxpcHBlZExpbmVzV3JpdGluZ01vZGUoV3JpdGlu
Z01vZGUgd3JpdGluZ01vZGUpCiB7CiAgICAgcmV0dXJuIGlzVmVydGljYWxXcml0aW5nTW9kZSh3
cml0aW5nTW9kZSkgIT0gaXNGbGlwcGVkV3JpdGluZ01vZGUod3JpdGluZ01vZGUpOwogfQpAQCAt
MTMxLDI1ICsxMjUsMjUgQEAgZW51bSBjbGFzcyBCb3hTaWRlIDogdWludDhfdCB7CiAKIGNvbnN0
ZXhwciBzdGQ6OmFycmF5PEJveFNpZGUsIDQ+IGFsbEJveFNpZGVzID0geyBCb3hTaWRlOjpUb3As
IEJveFNpZGU6OlJpZ2h0LCBCb3hTaWRlOjpCb3R0b20sIEJveFNpZGU6OkxlZnQgfTsKIAotaW5s
aW5lIGJvb2wgaXNIb3Jpem9udGFsUGh5c2ljYWxTaWRlKEJveFNpZGUgcGh5c2ljYWxTaWRlKQor
Y29uc3RleHByIGlubGluZSBib29sIGlzSG9yaXpvbnRhbFBoeXNpY2FsU2lkZShCb3hTaWRlIHBo
eXNpY2FsU2lkZSkKIHsKICAgICByZXR1cm4gcGh5c2ljYWxTaWRlID09IEJveFNpZGU6OkxlZnQg
fHwgcGh5c2ljYWxTaWRlID09IEJveFNpZGU6OlJpZ2h0OwogfQogCi1pbmxpbmUgQm94U2lkZSBt
aXJyb3JQaHlzaWNhbFNpZGUoQm94U2lkZSBwaHlzaWNhbFNpZGUpCitjb25zdGV4cHIgaW5saW5l
IEJveFNpZGUgbWlycm9yUGh5c2ljYWxTaWRlKEJveFNpZGUgcGh5c2ljYWxTaWRlKQogewogICAg
IC8vIHRvcCA8LT4gYm90dG9tIGFuZCBsZWZ0IDwtPiByaWdodCBjb252ZXJzaW9uCiAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PEJveFNpZGU+KChzdGF0aWNfY2FzdDxpbnQ+KHBoeXNpY2FsU2lkZSkg
KyAyKSAlIDQpOwogfQogCi1pbmxpbmUgQm94U2lkZSByb3RhdGVQaHlzaWNhbFNpZGUoQm94U2lk
ZSBwaHlzaWNhbFNpZGUpCitjb25zdGV4cHIgaW5saW5lIEJveFNpZGUgcm90YXRlUGh5c2ljYWxT
aWRlKEJveFNpZGUgcGh5c2ljYWxTaWRlKQogewogICAgIC8vIHRvcCA8LT4gbGVmdCBhbmQgcmln
aHQgPC0+IGJvdHRvbSBjb252ZXJzaW9uCiAgICAgYm9vbCBob3Jpem9udGFsU2lkZSA9IGlzSG9y
aXpvbnRhbFBoeXNpY2FsU2lkZShwaHlzaWNhbFNpZGUpOwogICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxCb3hTaWRlPigoc3RhdGljX2Nhc3Q8aW50PihwaHlzaWNhbFNpZGUpICsgKGhvcml6b250YWxT
aWRlID8gMSA6IDMpKSAlIDQpOwogfQogCi1pbmxpbmUgQm94U2lkZSBtYXBMb2dpY2FsU2lkZVRv
UGh5c2ljYWxTaWRlKFRleHRGbG93IHRleHRmbG93LCBMb2dpY2FsQm94U2lkZSBsb2dpY2FsU2lk
ZSkKK2NvbnN0ZXhwciBpbmxpbmUgQm94U2lkZSBtYXBMb2dpY2FsU2lkZVRvUGh5c2ljYWxTaWRl
KFRleHRGbG93IHRleHRmbG93LCBMb2dpY2FsQm94U2lkZSBsb2dpY2FsU2lkZSkKIHsKICAgICBC
b3hTaWRlIHBoeXNpY2FsU2lkZSA9IHN0YXRpY19jYXN0PEJveFNpZGU+KGxvZ2ljYWxTaWRlKTsK
ICAgICBib29sIGhvcml6b250YWxTaWRlID0gaXNIb3Jpem9udGFsUGh5c2ljYWxTaWRlKHBoeXNp
Y2FsU2lkZSk7CkBAIC0xNjMsNyArMTU3LDcgQEAgaW5saW5lIEJveFNpZGUgbWFwTG9naWNhbFNp
ZGVUb1BoeXNpY2FsUwogICAgIHJldHVybiBwaHlzaWNhbFNpZGU7CiB9CiAKLWlubGluZSBCb3hT
aWRlIG1hcExvZ2ljYWxTaWRlVG9QaHlzaWNhbFNpZGUoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUs
IExvZ2ljYWxCb3hTaWRlIGxvZ2ljYWxTaWRlKQorY29uc3RleHByIGlubGluZSBCb3hTaWRlIG1h
cExvZ2ljYWxTaWRlVG9QaHlzaWNhbFNpZGUoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUsIExvZ2lj
YWxCb3hTaWRlIGxvZ2ljYWxTaWRlKQogewogICAgIC8vIFNldCB0aGUgZGlyZWN0aW9uIHN1Y2gg
dGhhdCBzaWRlIGlzIG1pcnJvcmVkIGlmIGlzRmxpcHBlZFdyaXRpbmdNb2RlKCkgaXMgdHJ1ZQog
ICAgIFRleHREaXJlY3Rpb24gZGlyZWN0aW9uID0gaXNGbGlwcGVkV3JpdGluZ01vZGUod3JpdGlu
Z01vZGUpID8gVGV4dERpcmVjdGlvbjo6UlRMIDogVGV4dERpcmVjdGlvbjo6TFRSOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCShyZXZpc2lvbiAyNjk4MzAp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC03MDYyLDcgKzcwNjIsOCBAQCBib29sIFJlbmRlckxheWVyOjppbnZhbGlkYXRlRXZl
bnRSZWdpb24oCiAgICAgICAgIGF1dG8mIHZpZXcgPSByZW5kZXJlcigpLnZpZXcoKTsKICAgICAg
ICAgTE9HX1dJVEhfU1RSRUFNKEV2ZW50UmVnaW9ucywgc3RyZWFtIDw8ICIgY2FsbGluZyBzZXRO
ZWVkc0V2ZW50UmVnaW9uVXBkYXRlRm9yTm9uQ29tcG9zaXRlZEZyYW1lIG9uICIgPDwgdmlldyk7
CiAgICAgICAgIHZpZXcuc2V0TmVlZHNFdmVudFJlZ2lvblVwZGF0ZUZvck5vbkNvbXBvc2l0ZWRG
cmFtZSgpOwotICAgICAgICBpZiAocmVuZGVyZXIoKS5zZXR0aW5ncygpLnZpc2libGVEZWJ1Z092
ZXJsYXlSZWdpb25zKCkgJiAoVG91Y2hBY3Rpb25SZWdpb24gfCBFZGl0YWJsZUVsZW1lbnRSZWdp
b24gfCBXaGVlbEV2ZW50SGFuZGxlclJlZ2lvbikpCisgICAgICAgIGF1dG8gdmlzaWJsZURlYnVn
T3ZlcmxheVJlZ2lvbnMgPSBPcHRpb25TZXQ8RGVidWdPdmVybGF5UmVnaW9ucz46OmZyb21SYXco
cmVuZGVyZXIoKS5zZXR0aW5ncygpLnZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zKCkpOworICAg
ICAgICBpZiAodmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMuY29udGFpbnNBbnkoeyBEZWJ1Z092
ZXJsYXlSZWdpb25zOjpUb3VjaEFjdGlvblJlZ2lvbiwgRGVidWdPdmVybGF5UmVnaW9uczo6RWRp
dGFibGVFbGVtZW50UmVnaW9uLCBEZWJ1Z092ZXJsYXlSZWdpb25zOjpXaGVlbEV2ZW50SGFuZGxl
clJlZ2lvbiB9KSkKICAgICAgICAgICAgIHZpZXcuc2V0TmVlZHNSZXBhaW50SGFja0FmdGVyQ29t
cG9zaXRpbmdMYXllclVwZGF0ZUZvckRlYnVnT3ZlcmxheXNPbmx5KCk7CiAgICAgICAgIHZpZXcu
Y29tcG9zaXRvcigpLnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllclVwZGF0ZSgpOwogICAgIH0KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3Bw
CShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJCYWNraW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMxOSw4ICszMzE5LDggQEAgdm9pZCBS
ZW5kZXJMYXllckJhY2tpbmc6OnBhaW50RGVidWdPdmVybAogICAgIGF1dG8gY29udGVudE9mZnNl
dCA9IHJvdW5kZWRJbnRTaXplKGdyYXBoaWNzTGF5ZXItPm9mZnNldEZyb21SZW5kZXJlcigpKTsK
ICAgICBjb250ZXh0LnRyYW5zbGF0ZShjb250ZW50T2Zmc2V0KTsKIAotICAgIGF1dG8gdmlzaWJs
ZURlYnVnT3ZlcmxheVJlZ2lvbnMgPSByZW5kZXJlcigpLnNldHRpbmdzKCkudmlzaWJsZURlYnVn
T3ZlcmxheVJlZ2lvbnMoKTsKLSAgICBpZiAodmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMgJiAo
VG91Y2hBY3Rpb25SZWdpb24gfCBXaGVlbEV2ZW50SGFuZGxlclJlZ2lvbikpIHsKKyAgICBhdXRv
IHZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zID0gT3B0aW9uU2V0PERlYnVnT3ZlcmxheVJlZ2lv
bnM+Ojpmcm9tUmF3KHJlbmRlcmVyKCkuc2V0dGluZ3MoKS52aXNpYmxlRGVidWdPdmVybGF5UmVn
aW9ucygpKTsKKyAgICBpZiAodmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMuY29udGFpbnNBbnko
eyBEZWJ1Z092ZXJsYXlSZWdpb25zOjpUb3VjaEFjdGlvblJlZ2lvbiwgRGVidWdPdmVybGF5UmVn
aW9uczo6V2hlZWxFdmVudEhhbmRsZXJSZWdpb24gfSkpIHsKICAgICAgICAgY29uc3RleHByIGF1
dG8gcmVnaW9uQ29sb3IgPSBDb2xvcjo6Ymx1ZS5jb2xvcldpdGhBbHBoYUJ5dGUoNTApOwogICAg
ICAgICBjb250ZXh0LnNldEZpbGxDb2xvcihyZWdpb25Db2xvcik7CiAgICAgICAgIGZvciAoYXV0
byByZWN0IDogZXZlbnRSZWdpb24ucmVnaW9uKCkucmVjdHMoKSkKQEAgLTMzMjgsNyArMzMyOCw3
IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpwYWludERlYnVnT3ZlcmwKICAgICB9CiAKICNp
ZiBFTkFCTEUoVE9VQ0hfQUNUSU9OX1JFR0lPTlMpCi0gICAgaWYgKHZpc2libGVEZWJ1Z092ZXJs
YXlSZWdpb25zICYgVG91Y2hBY3Rpb25SZWdpb24pIHsKKyAgICBpZiAodmlzaWJsZURlYnVnT3Zl
cmxheVJlZ2lvbnMuY29udGFpbnMoRGVidWdPdmVybGF5UmVnaW9uczo6VG91Y2hBY3Rpb25SZWdp
b24pKSB7CiAgICAgICAgIGNvbnN0IFRvdWNoQWN0aW9uIHRvdWNoQWN0aW9uTGlzdFtdID0gewog
ICAgICAgICAgICAgVG91Y2hBY3Rpb246Ok5vbmUsCiAgICAgICAgICAgICBUb3VjaEFjdGlvbjo6
TWFuaXB1bGF0aW9uLApAQCAtMzM1NCw3ICszMzU0LDcgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tp
bmc6OnBhaW50RGVidWdPdmVybAogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0hFRUxfRVZFTlRfUkVH
SU9OUykKLSAgICBpZiAodmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMgJiBXaGVlbEV2ZW50SGFu
ZGxlclJlZ2lvbikgeworICAgIGlmICh2aXNpYmxlRGVidWdPdmVybGF5UmVnaW9ucy5jb250YWlu
cyhEZWJ1Z092ZXJsYXlSZWdpb25zOjpXaGVlbEV2ZW50SGFuZGxlclJlZ2lvbikpIHsKICAgICAg
ICAgZm9yIChhdXRvIHR5cGUgOiB7IEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlOjpXaGVlbCwgRXZl
bnRMaXN0ZW5lclJlZ2lvblR5cGU6Ok5vblBhc3NpdmVXaGVlbCB9KSB7CiAgICAgICAgICAgICBh
dXRvIGZpbGxQYXR0ZXJuID0gcGF0dGVybkZvckV2ZW50TGlzdGVuZXJSZWdpb25UeXBlKHR5cGUs
IGdyYXBoaWNzTGF5ZXItPm9mZnNldEZyb21SZW5kZXJlcigpLCBjb250ZXh0KTsKICAgICAgICAg
ICAgIGNvbnRleHQuc2V0RmlsbFBhdHRlcm4oZmlsbFBhdHRlcm4ucmVsZWFzZU5vbk51bGwoKSk7
CkBAIC0zMzY3LDcgKzMzNjcsNyBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnREZWJ1
Z092ZXJsCiAjZW5kaWYKIAogI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCi0gICAgaWYgKHZp
c2libGVEZWJ1Z092ZXJsYXlSZWdpb25zICYgRWRpdGFibGVFbGVtZW50UmVnaW9uKSB7CisgICAg
aWYgKHZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zLmNvbnRhaW5zKERlYnVnT3ZlcmxheVJlZ2lv
bnM6OkVkaXRhYmxlRWxlbWVudFJlZ2lvbikpIHsKICAgICAgICAgY29udGV4dC5zZXRGaWxsQ29s
b3IoU1JHQkE8dWludDhfdD4geyAxMjgsIDAsIDEyOCwgNTAgfSk7CiAgICAgICAgIGZvciAoYXV0
byByZWN0IDogZXZlbnRSZWdpb24ucmVjdHNGb3JFZGl0YWJsZUVsZW1lbnRzKCkpCiAgICAgICAg
ICAgICBjb250ZXh0LmZpbGxSZWN0KHJlY3QpOwpAQCAtMzQxNCw3ICszNDE0LDggQEAgdm9pZCBS
ZW5kZXJMYXllckJhY2tpbmc6OnBhaW50Q29udGVudHMoYwogCiAgICAgICAgIHBhaW50SW50b0xh
eWVyKGdyYXBoaWNzTGF5ZXIsIGNvbnRleHQsIGRpcnR5UmVjdCwgYmVoYXZpb3IpOwogCi0gICAg
ICAgIGlmIChyZW5kZXJlcigpLnNldHRpbmdzKCkudmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMo
KSAmIChUb3VjaEFjdGlvblJlZ2lvbiB8IEVkaXRhYmxlRWxlbWVudFJlZ2lvbiB8IFdoZWVsRXZl
bnRIYW5kbGVyUmVnaW9uKSkKKyAgICAgICAgYXV0byB2aXNpYmxlRGVidWdPdmVybGF5UmVnaW9u
cyA9IE9wdGlvblNldDxEZWJ1Z092ZXJsYXlSZWdpb25zPjo6ZnJvbVJhdyhyZW5kZXJlcigpLnNl
dHRpbmdzKCkudmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMoKSk7CisgICAgICAgIGlmICh2aXNp
YmxlRGVidWdPdmVybGF5UmVnaW9ucy5jb250YWluc0FueSh7IERlYnVnT3ZlcmxheVJlZ2lvbnM6
OlRvdWNoQWN0aW9uUmVnaW9uLCBEZWJ1Z092ZXJsYXlSZWdpb25zOjpFZGl0YWJsZUVsZW1lbnRS
ZWdpb24sIERlYnVnT3ZlcmxheVJlZ2lvbnM6OldoZWVsRXZlbnRIYW5kbGVyUmVnaW9uIH0pKQog
ICAgICAgICAgICAgcGFpbnREZWJ1Z092ZXJsYXlzKGdyYXBoaWNzTGF5ZXIsIGNvbnRleHQpOwog
CiAgICAgfSBlbHNlIGlmIChncmFwaGljc0xheWVyID09IGxheWVyRm9ySG9yaXpvbnRhbFNjcm9s
bGJhcigpKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3Mu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5jcHAJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxTZXR0aW5ncy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDYgQEAKICNpbmNsdWRl
ICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5o
IgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKLSNpbmNsdWRlICJTZXR0aW5n
cy5oIgogI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCiAjaW5jbHVkZSA8d3RmL0xhbmd1YWdl
Lmg+CiAKQEAgLTUwLDkgKzQ5LDkgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogSW50ZXJuYWxT
ZXR0aW5nczo6QmFja3VwOjpCYWNrdXAoU2V0dGluZ3MmIHNldHRpbmdzKQotICAgIDogbV9vcmln
aW5hbEVkaXRpbmdCZWhhdmlvcihzZXR0aW5ncy5lZGl0aW5nQmVoYXZpb3JUeXBlKCkpCi0gICAg
LCBtX21pbmltdW1ET01UaW1lckludGVydmFsKHNldHRpbmdzLm1pbmltdW1ET01UaW1lckludGVy
dmFsKCkpCisgICAgOiBtX21pbmltdW1ET01UaW1lckludGVydmFsKHNldHRpbmdzLm1pbmltdW1E
T01UaW1lckludGVydmFsKCkpCiAgICAgLCBtX29yaWdpbmFsVGltZVdpdGhvdXRNb3VzZU1vdmVt
ZW50QmVmb3JlSGlkaW5nQ29udHJvbHMoc2V0dGluZ3MudGltZVdpdGhvdXRNb3VzZU1vdmVtZW50
QmVmb3JlSGlkaW5nQ29udHJvbHMoKSkKKyAgICAsIG1fb3JpZ2luYWxFZGl0aW5nQmVoYXZpb3Io
c2V0dGluZ3MuZWRpdGluZ0JlaGF2aW9yVHlwZSgpKQogICAgICwgbV9zdG9yYWdlQmxvY2tpbmdQ
b2xpY3koc2V0dGluZ3Muc3RvcmFnZUJsb2NraW5nUG9saWN5KCkpCiAgICAgLCBtX3VzZXJJbnRl
cmZhY2VEaXJlY3Rpb25Qb2xpY3koc2V0dGluZ3MudXNlckludGVyZmFjZURpcmVjdGlvblBvbGlj
eSgpKQogICAgICwgbV9zeXN0ZW1MYXlvdXREaXJlY3Rpb24oc2V0dGluZ3Muc3lzdGVtTGF5b3V0
RGlyZWN0aW9uKCkpCkBAIC0xMDgsOSArMTA3LDkgQEAgdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpC
YWNrdXA6OnJlc3RvcmVUbwogICAgICAgICBzZXR0aW5ncy5zZXRQaWN0b2dyYXBoRm9udEZhbWls
eShwaWN0b2dyYXBoRm9udC52YWx1ZSwgc3RhdGljX2Nhc3Q8VVNjcmlwdENvZGU+KHBpY3RvZ3Jh
cGhGb250LmtleSkpOwogICAgIG1fcGljdG9ncmFwaEZvbnRGYW1pbGllcy5jbGVhcigpOwogCi0g
ICAgc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yVHlwZShtX29yaWdpbmFsRWRpdGluZ0JlaGF2
aW9yKTsKICAgICBzZXR0aW5ncy5zZXRNaW5pbXVtRE9NVGltZXJJbnRlcnZhbChtX21pbmltdW1E
T01UaW1lckludGVydmFsKTsKICAgICBzZXR0aW5ncy5zZXRUaW1lV2l0aG91dE1vdXNlTW92ZW1l
bnRCZWZvcmVIaWRpbmdDb250cm9scyhtX29yaWdpbmFsVGltZVdpdGhvdXRNb3VzZU1vdmVtZW50
QmVmb3JlSGlkaW5nQ29udHJvbHMpOworICAgIHNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvclR5
cGUobV9vcmlnaW5hbEVkaXRpbmdCZWhhdmlvcik7CiAgICAgc2V0dGluZ3Muc2V0U3RvcmFnZUJs
b2NraW5nUG9saWN5KG1fc3RvcmFnZUJsb2NraW5nUG9saWN5KTsKICAgICBzZXR0aW5ncy5zZXRV
c2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5KG1fdXNlckludGVyZmFjZURpcmVjdGlvblBvbGlj
eSk7CiAgICAgc2V0dGluZ3Muc2V0U3lzdGVtTGF5b3V0RGlyZWN0aW9uKG1fc3lzdGVtTGF5b3V0
RGlyZWN0aW9uKTsKQEAgLTMwNCwyNCArMzAzLDExIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEludGVy
bmFsU2V0dGluZ3M6OnNldFQKICAgICByZXR1cm4geyB9OwogfQogCi1FeGNlcHRpb25Pcjx2b2lk
PiBJbnRlcm5hbFNldHRpbmdzOjpzZXRFZGl0aW5nQmVoYXZpb3IoRWRpdGluZ0JlaGF2aW9yIGVk
aXRpbmdCZWhhdmlvcikKK0V4Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFsU2V0dGluZ3M6OnNldEVk
aXRpbmdCZWhhdmlvcihFZGl0aW5nQmVoYXZpb3JUeXBlIGVkaXRpbmdCZWhhdmlvclR5cGUpCiB7
CiAgICAgaWYgKCFtX3BhZ2UpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNj
ZXNzRXJyb3IgfTsKLSAgICBzd2l0Y2ggKGVkaXRpbmdCZWhhdmlvcikgewotICAgIGNhc2UgRWRp
dGluZ0JlaGF2aW9yOjpXaW46Ci0gICAgICAgIHNldHRpbmdzKCkuc2V0RWRpdGluZ0JlaGF2aW9y
VHlwZShFZGl0aW5nV2luZG93c0JlaGF2aW9yKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBF
ZGl0aW5nQmVoYXZpb3I6Ok1hYzoKLSAgICAgICAgc2V0dGluZ3MoKS5zZXRFZGl0aW5nQmVoYXZp
b3JUeXBlKEVkaXRpbmdNYWNCZWhhdmlvcik7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRWRp
dGluZ0JlaGF2aW9yOjpVbml4OgotICAgICAgICBzZXR0aW5ncygpLnNldEVkaXRpbmdCZWhhdmlv
clR5cGUoRWRpdGluZ1VuaXhCZWhhdmlvcik7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRWRp
dGluZ0JlaGF2aW9yOjpJb3M6Ci0gICAgICAgIHNldHRpbmdzKCkuc2V0RWRpdGluZ0JlaGF2aW9y
VHlwZShFZGl0aW5nSU9TQmVoYXZpb3IpOwotICAgICAgICBicmVhazsKLSAgICB9CisgICAgc2V0
dGluZ3MoKS5zZXRFZGl0aW5nQmVoYXZpb3JUeXBlKGVkaXRpbmdCZWhhdmlvclR5cGUpOwogICAg
IHJldHVybiB7IH07CiB9CiAKQEAgLTMyOSwxNyArMzE1LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4g
SW50ZXJuYWxTZXR0aW5nczo6c2V0UwogewogICAgIGlmICghbV9wYWdlKQogICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yIH07Ci0gICAgc3dpdGNoIChwb2xpY3kp
IHsKLSAgICBjYXNlIFN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QWxsb3dBbGw6Ci0gICAgICAgIHNl
dHRpbmdzKCkuc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KFNlY3VyaXR5T3JpZ2luOjpBbGxvd0Fs
bFN0b3JhZ2UpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFN0b3JhZ2VCbG9ja2luZ1BvbGlj
eTo6QmxvY2tUaGlyZFBhcnR5OgotICAgICAgICBzZXR0aW5ncygpLnNldFN0b3JhZ2VCbG9ja2lu
Z1BvbGljeShTZWN1cml0eU9yaWdpbjo6QmxvY2tUaGlyZFBhcnR5U3RvcmFnZSk7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgU3RvcmFnZUJsb2NraW5nUG9saWN5OjpCbG9ja0FsbDoKLSAgICAg
ICAgc2V0dGluZ3MoKS5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koU2VjdXJpdHlPcmlnaW46OkJs
b2NrQWxsU3RvcmFnZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KKyAgICBzZXR0aW5ncygpLnNl
dFN0b3JhZ2VCbG9ja2luZ1BvbGljeShwb2xpY3kpOwogICAgIHJldHVybiB7IH07CiB9CiAKQEAg
LTM0NywyMCArMzIzLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxTZXR0aW5nczo6c2V0
UAogewogICAgIGlmICghbV9wYWdlKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZEFjY2Vzc0Vycm9yIH07Ci0gICAgc3dpdGNoIChwb2xpY3kpIHsKLSAgICBjYXNlIFBERkltYWdl
Q2FjaGluZ1BvbGljeTo6RW5hYmxlZDoKLSAgICAgICAgc2V0dGluZ3MoKS5zZXRQZGZJbWFnZUNh
Y2hpbmdQb2xpY3koUERGSW1hZ2VDYWNoaW5nRGlzYWJsZWQpOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIFBERkltYWdlQ2FjaGluZ1BvbGljeTo6QmVsb3dNZW1vcnlMaW1pdDoKLSAgICAgICAg
c2V0dGluZ3MoKS5zZXRQZGZJbWFnZUNhY2hpbmdQb2xpY3koUERGSW1hZ2VDYWNoaW5nQmVsb3dN
ZW1vcnlMaW1pdCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUERGSW1hZ2VDYWNoaW5nUG9s
aWN5OjpEaXNhYmxlZDoKLSAgICAgICAgc2V0dGluZ3MoKS5zZXRQZGZJbWFnZUNhY2hpbmdQb2xp
Y3koUERGSW1hZ2VDYWNoaW5nRGlzYWJsZWQpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBE
RkltYWdlQ2FjaGluZ1BvbGljeTo6Q2xpcEJvdW5kc09ubHk6Ci0gICAgICAgIHNldHRpbmdzKCku
c2V0UGRmSW1hZ2VDYWNoaW5nUG9saWN5KFBERkltYWdlQ2FjaGluZ0NsaXBCb3VuZHNPbmx5KTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgfQorICAgIHNldHRpbmdzKCkuc2V0UGRmSW1hZ2VDYWNoaW5n
UG9saWN5KHBvbGljeSk7CiAgICAgcmV0dXJuIHsgfTsKIH0KIApJbmRleDogU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
NiwyMiArMjYsMTQgQEAKIAogI3ByYWdtYSBvbmNlCiAKLS8vIEZJWE1FICgxMjE5MjcpOiBUaGlz
IGluY2x1ZGUgc2hvdWxkIG5vdCBiZSBuZWVkZWQuCi0jaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0
cmluZ0hhc2guaD4KLQotI2luY2x1ZGUgIkVkaXRpbmdCZWhhdmlvclR5cGVzLmgiCiAjaW5jbHVk
ZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlICJGb250R2VuZXJpY0ZhbWlsaWVzLmgiCi0jaW5j
bHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIkludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQuaCIK
LSNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCi0jaW5j
bHVkZSAiV3JpdGluZ01vZGUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBQYWdl
OwotY2xhc3MgU2V0dGluZ3M7CiAKIGNsYXNzIEludGVybmFsU2V0dGluZ3MgOiBwdWJsaWMgSW50
ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZCB7CiBwdWJsaWM6CkBAIC02NCwxMyArNTYsMTMgQEAgcHVi
bGljOgogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldE1pbmltdW1UaW1lckludGVydmFsKGRvdWJs
ZSBpbnRlcnZhbEluU2Vjb25kcyk7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VGltZVdpdGhv
dXRNb3VzZU1vdmVtZW50QmVmb3JlSGlkaW5nQ29udHJvbHMoZG91YmxlIGludGVydmFsSW5TZWNv
bmRzKTsKIAotICAgIGVudW0gY2xhc3MgRWRpdGluZ0JlaGF2aW9yIDogdWludDhfdCB7IE1hYywg
V2luLCBVbml4LCBJb3MgfTsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRFZGl0aW5nQmVoYXZp
b3IoRWRpdGluZ0JlaGF2aW9yKTsKKyAgICB1c2luZyBFZGl0aW5nQmVoYXZpb3JUeXBlID0gV2Vi
Q29yZTo6RWRpdGluZ0JlaGF2aW9yVHlwZTsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRFZGl0
aW5nQmVoYXZpb3IoRWRpdGluZ0JlaGF2aW9yVHlwZSk7CiAgICAgCi0gICAgZW51bSBjbGFzcyBQ
REZJbWFnZUNhY2hpbmdQb2xpY3kgOiB1aW50OF90IHsgRW5hYmxlZCwgQmVsb3dNZW1vcnlMaW1p
dCwgRGlzYWJsZWQsIENsaXBCb3VuZHNPbmx5IH07CisgICAgdXNpbmcgUERGSW1hZ2VDYWNoaW5n
UG9saWN5ID0gV2ViQ29yZTo6UERGSW1hZ2VDYWNoaW5nUG9saWN5OwogICAgIEV4Y2VwdGlvbk9y
PHZvaWQ+IHNldFBERkltYWdlQ2FjaGluZ1BvbGljeShQREZJbWFnZUNhY2hpbmdQb2xpY3kpOwog
Ci0gICAgZW51bSBjbGFzcyBTdG9yYWdlQmxvY2tpbmdQb2xpY3kgOiB1aW50OF90IHsgQWxsb3dB
bGwsIEJsb2NrVGhpcmRQYXJ0eSwgQmxvY2tBbGwgfTsKKyAgICB1c2luZyBTdG9yYWdlQmxvY2tp
bmdQb2xpY3kgPSBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k7CiAgICAgRXhjZXB0aW9u
T3I8dm9pZD4gc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KFN0b3JhZ2VCbG9ja2luZ1BvbGljeSk7
CiAgICAgCiAgICAgdXNpbmcgVXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeSA9IFdlYkNvcmU6
OlVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3k7CkBAIC03OSwxMyArNzEsMTMgQEAgcHVibGlj
OgogICAgIHVzaW5nIFN5c3RlbUxheW91dERpcmVjdGlvbiA9IFRleHREaXJlY3Rpb247CiAgICAg
RXhjZXB0aW9uT3I8dm9pZD4gc2V0U3lzdGVtTGF5b3V0RGlyZWN0aW9uKFN5c3RlbUxheW91dERp
cmVjdGlvbik7CiAKLSAgICB1c2luZyBGb250TG9hZFRpbWluZ092ZXJyaWRlID0gU2V0dGluZ3M6
OkZvbnRMb2FkVGltaW5nT3ZlcnJpZGU7CisgICAgdXNpbmcgRm9udExvYWRUaW1pbmdPdmVycmlk
ZSA9IFdlYkNvcmU6OkZvbnRMb2FkVGltaW5nT3ZlcnJpZGU7CiAgICAgRXhjZXB0aW9uT3I8dm9p
ZD4gc2V0Rm9udExvYWRUaW1pbmdPdmVycmlkZShGb250TG9hZFRpbWluZ092ZXJyaWRlKTsKIAog
ICAgIHVzaW5nIEZyYW1lRmxhdHRlbmluZ1ZhbHVlID0gRnJhbWVGbGF0dGVuaW5nOwogICAgIEV4
Y2VwdGlvbk9yPHZvaWQ+IHNldEZyYW1lRmxhdHRlbmluZyhGcmFtZUZsYXR0ZW5pbmdWYWx1ZSk7
CiAKLSAgICB1c2luZyBGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUgPSBTZXR0aW5nczo6Rm9yY2Vk
QWNjZXNzaWJpbGl0eVZhbHVlOworICAgIHVzaW5nIEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZSA9
IFdlYkNvcmU6OkZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZTsKICAgICBGb3JjZWRBY2Nlc3NpYmls
aXR5VmFsdWUgZm9yY2VkQ29sb3JzQXJlSW52ZXJ0ZWRBY2Nlc3NpYmlsaXR5VmFsdWUoKSBjb25z
dDsKICAgICB2b2lkIHNldEZvcmNlZENvbG9yc0FyZUludmVydGVkQWNjZXNzaWJpbGl0eVZhbHVl
KEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZSk7CiAgICAgRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVl
IGZvcmNlZERpc3BsYXlJc01vbm9jaHJvbWVBY2Nlc3NpYmlsaXR5VmFsdWUoKSBjb25zdDsKQEAg
LTE0OCwxOCArMTQwLDE4IEBAIHByaXZhdGU6CiAgICAgICAgIFNjcmlwdEZvbnRGYW1pbHlNYXAg
bV9jdXJzaXZlRm9udEZhbWlsaWVzOwogICAgICAgICBTY3JpcHRGb250RmFtaWx5TWFwIG1fZmFu
dGFzeUZvbnRGYW1pbGllczsKICAgICAgICAgU2NyaXB0Rm9udEZhbWlseU1hcCBtX3BpY3RvZ3Jh
cGhGb250RmFtaWxpZXM7Ci0gICAgICAgIEVkaXRpbmdCZWhhdmlvclR5cGUgbV9vcmlnaW5hbEVk
aXRpbmdCZWhhdmlvcjsKICAgICAgICAgU2Vjb25kcyBtX21pbmltdW1ET01UaW1lckludGVydmFs
OwogICAgICAgICBTZWNvbmRzIG1fb3JpZ2luYWxUaW1lV2l0aG91dE1vdXNlTW92ZW1lbnRCZWZv
cmVIaWRpbmdDb250cm9sczsKLSAgICAgICAgU2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2lu
Z1BvbGljeSBtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeTsKLSAgICAgICAgVXNlckludGVyZmFjZURp
cmVjdGlvblBvbGljeSBtX3VzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3k7CisgICAgICAgIFdl
YkNvcmU6OkVkaXRpbmdCZWhhdmlvclR5cGUgbV9vcmlnaW5hbEVkaXRpbmdCZWhhdmlvcjsKKyAg
ICAgICAgV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5IG1fc3RvcmFnZUJsb2NraW5nUG9s
aWN5OworICAgICAgICBXZWJDb3JlOjpVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5IG1fdXNl
ckludGVyZmFjZURpcmVjdGlvblBvbGljeTsKICAgICAgICAgVGV4dERpcmVjdGlvbiBtX3N5c3Rl
bUxheW91dERpcmVjdGlvbjsKICAgICAgICAgV2ViQ29yZTo6UERGSW1hZ2VDYWNoaW5nUG9saWN5
IG1fcGRmSW1hZ2VDYWNoaW5nUG9saWN5OwotICAgICAgICBTZXR0aW5nczo6Rm9yY2VkQWNjZXNz
aWJpbGl0eVZhbHVlIG1fZm9yY2VkQ29sb3JzQXJlSW52ZXJ0ZWRBY2Nlc3NpYmlsaXR5VmFsdWU7
Ci0gICAgICAgIFNldHRpbmdzOjpGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUgbV9mb3JjZWREaXNw
bGF5SXNNb25vY2hyb21lQWNjZXNzaWJpbGl0eVZhbHVlOwotICAgICAgICBTZXR0aW5nczo6Rm9y
Y2VkQWNjZXNzaWJpbGl0eVZhbHVlIG1fZm9yY2VkUHJlZmVyc1JlZHVjZWRNb3Rpb25BY2Nlc3Np
YmlsaXR5VmFsdWU7Ci0gICAgICAgIFNldHRpbmdzOjpGb250TG9hZFRpbWluZ092ZXJyaWRlIG1f
Zm9udExvYWRUaW1pbmdPdmVycmlkZTsKLSAgICAgICAgRnJhbWVGbGF0dGVuaW5nIG1fZnJhbWVG
bGF0dGVuaW5nOworICAgICAgICBXZWJDb3JlOjpGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUgbV9m
b3JjZWRDb2xvcnNBcmVJbnZlcnRlZEFjY2Vzc2liaWxpdHlWYWx1ZTsKKyAgICAgICAgV2ViQ29y
ZTo6Rm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlIG1fZm9yY2VkRGlzcGxheUlzTW9ub2Nocm9tZUFj
Y2Vzc2liaWxpdHlWYWx1ZTsKKyAgICAgICAgV2ViQ29yZTo6Rm9yY2VkQWNjZXNzaWJpbGl0eVZh
bHVlIG1fZm9yY2VkUHJlZmVyc1JlZHVjZWRNb3Rpb25BY2Nlc3NpYmlsaXR5VmFsdWU7CisgICAg
ICAgIFdlYkNvcmU6OkZvbnRMb2FkVGltaW5nT3ZlcnJpZGUgbV9mb250TG9hZFRpbWluZ092ZXJy
aWRlOworICAgICAgICBXZWJDb3JlOjpGcmFtZUZsYXR0ZW5pbmcgbV9mcmFtZUZsYXR0ZW5pbmc7
CiAKICAgICAgICAgLy8gUnVudGltZUVuYWJsZWRGZWF0dXJlcwogICAgICAgICBib29sIG1fd2Vi
R0wyRW5hYmxlZDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRp
bmdzLmlkbAkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjQsMTEgKzI0LDExIEBACiAgKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogICovCiAKLWVudW0gRWRpdGluZ0JlaGF2aW9yIHsgIm1hYyIsICJ3aW4iLCAidW5p
eCIsICJpb3MiIH07CitlbnVtIEVkaXRpbmdCZWhhdmlvclR5cGUgeyAibWFjIiwgIndpbmRvd3Mi
LCAidW5peCIsICJpb3MiIH07CiBlbnVtIEZvbnRMb2FkVGltaW5nT3ZlcnJpZGUgeyAiTm9uZSIs
ICJCbG9jayIsICJTd2FwIiwgIkZhaWx1cmUiIH07CiBlbnVtIEZvcmNlZEFjY2Vzc2liaWxpdHlW
YWx1ZSB7ICJzeXN0ZW0iLCAib24iLCAib2ZmIiB9OwogZW51bSBGcmFtZUZsYXR0ZW5pbmdWYWx1
ZSB7ICJEaXNhYmxlZCIsICJFbmFibGVkRm9yTm9uRnVsbFNjcmVlbklGcmFtZXMiLCAiRnVsbHlF
bmFibGVkIiB9OwotZW51bSBQREZJbWFnZUNhY2hpbmdQb2xpY3kgeyAiZW5hYmxlZCIsICJiZWxv
d01lbW9yeUxpbWl0IiwgImRpc2FibGVkIiwgImNsaXBCb3VuZHNPbmx5IiB9OworZW51bSBQREZJ
bWFnZUNhY2hpbmdQb2xpY3kgeyAiRW5hYmxlZCIsICJCZWxvd01lbW9yeUxpbWl0IiwgIkRpc2Fi
bGVkIiwgIkNsaXBCb3VuZHNPbmx5IiB9OwogZW51bSBTdG9yYWdlQmxvY2tpbmdQb2xpY3kgeyAi
QWxsb3dBbGwiLCAiQmxvY2tUaGlyZFBhcnR5IiwgIkJsb2NrQWxsIiB9OwogZW51bSBTeXN0ZW1M
YXlvdXREaXJlY3Rpb24geyAiTFRSIiwgIlJUTCIgfTsKIGVudW0gVHJhY2tLaW5kIHsgIlN1YnRp
dGxlcyIsICJDYXB0aW9ucyIsICJUZXh0RGVzY3JpcHRpb25zIiB9OwpAQCAtNTIsNyArNTIsNyBA
QCBlbnVtIFVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3kgeyAiQ29uCiAgICAgW01heVRocm93
RXhjZXB0aW9uXSB1bmRlZmluZWQgc2V0VGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJpZGUo
bG9uZyB3aWR0aCwgbG9uZyBoZWlnaHQpOwogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gdW5kZWZp
bmVkIHNldFRpbWVXaXRob3V0TW91c2VNb3ZlbWVudEJlZm9yZUhpZGluZ0NvbnRyb2xzKHVucmVz
dHJpY3RlZCBkb3VibGUgaW50ZXJ2YWxJblNlY29uZHMpOwogICAgIFtNYXlUaHJvd0V4Y2VwdGlv
bl0gdW5kZWZpbmVkIHNldE1pbmltdW1UaW1lckludGVydmFsKHVucmVzdHJpY3RlZCBkb3VibGUg
aW50ZXJ2YWxJblNlY29uZHMpOwotICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gdW5kZWZpbmVkIHNl
dEVkaXRpbmdCZWhhdmlvcihFZGl0aW5nQmVoYXZpb3IgYmVoYXZpb3IpOworICAgIFtNYXlUaHJv
d0V4Y2VwdGlvbl0gdW5kZWZpbmVkIHNldEVkaXRpbmdCZWhhdmlvcihFZGl0aW5nQmVoYXZpb3JU
eXBlIGJlaGF2aW9yKTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHVuZGVmaW5lZCBzZXRTdG9y
YWdlQmxvY2tpbmdQb2xpY3koU3RvcmFnZUJsb2NraW5nUG9saWN5IHBvbGljeSk7CiAgICAgW01h
eVRocm93RXhjZXB0aW9uXSB1bmRlZmluZWQgc2V0UERGSW1hZ2VDYWNoaW5nUG9saWN5KFBERklt
YWdlQ2FjaGluZ1BvbGljeSBwb2xpY3kpOwogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gdW5kZWZp
bmVkIHNldEZyYW1lRmxhdHRlbmluZyhGcmFtZUZsYXR0ZW5pbmdWYWx1ZSBmcmFtZUZsYXR0ZW5p
bmcpOwpJbmRleDogU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vydmlj
ZVdvcmtlclRocmVhZFByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCShyZXZpc2lv
biAyNjk4MzApCisrKyBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw3IEBA
IHN0YXRpYyBVUkwgdG9wT3JpZ2luVVJMKGNvbnN0IFNlY3VyaXR5T3IKICAgICByZXR1cm4gVVJM
IHsgVVJMIHsgfSwgb3JpZ2luLnRvUmF3U3RyaW5nKCkgfTsKIH0KIAotc3RhdGljIGlubGluZSBV
bmlxdWVSZWY8UGFnZT4gY3JlYXRlUGFnZUZvclNlcnZpY2VXb3JrZXIoUGFnZUNvbmZpZ3VyYXRp
b24mJiBjb25maWd1cmF0aW9uLCBjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmIGRhdGEs
IFNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgc3RvcmFnZUJsb2NraW5nUG9s
aWN5KQorc3RhdGljIGlubGluZSBVbmlxdWVSZWY8UGFnZT4gY3JlYXRlUGFnZUZvclNlcnZpY2VX
b3JrZXIoUGFnZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uLCBjb25zdCBTZXJ2aWNlV29y
a2VyQ29udGV4dERhdGEmIGRhdGEsIFN0b3JhZ2VCbG9ja2luZ1BvbGljeSBzdG9yYWdlQmxvY2tp
bmdQb2xpY3kpCiB7CiAgICAgYXV0byBwYWdlID0gbWFrZVVuaXF1ZVJlZjxQYWdlPihXVEZNb3Zl
KGNvbmZpZ3VyYXRpb24pKTsKIApAQCAtOTQsNyArOTQsNyBAQCBzdGF0aWMgSGFzaFNldDxTZXJ2
aWNlV29ya2VyVGhyZWFkUHJveHkqCiAgICAgcmV0dXJuIHNldDsKIH0KIAotU2VydmljZVdvcmtl
clRocmVhZFByb3h5OjpTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkoUGFnZUNvbmZpZ3VyYXRpb24m
JiBwYWdlQ29uZmlndXJhdGlvbiwgY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiBkYXRh
LCBTdHJpbmcmJiB1c2VyQWdlbnQsIENhY2hlU3RvcmFnZVByb3ZpZGVyJiBjYWNoZVN0b3JhZ2VQ
cm92aWRlciwgU2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBzdG9yYWdlQmxv
Y2tpbmdQb2xpY3kpCitTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OlNlcnZpY2VXb3JrZXJUaHJl
YWRQcm94eShQYWdlQ29uZmlndXJhdGlvbiYmIHBhZ2VDb25maWd1cmF0aW9uLCBjb25zdCBTZXJ2
aWNlV29ya2VyQ29udGV4dERhdGEmIGRhdGEsIFN0cmluZyYmIHVzZXJBZ2VudCwgQ2FjaGVTdG9y
YWdlUHJvdmlkZXImIGNhY2hlU3RvcmFnZVByb3ZpZGVyLCBTdG9yYWdlQmxvY2tpbmdQb2xpY3kg
c3RvcmFnZUJsb2NraW5nUG9saWN5KQogICAgIDogbV9wYWdlKGNyZWF0ZVBhZ2VGb3JTZXJ2aWNl
V29ya2VyKFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24pLCBkYXRhLCBzdG9yYWdlQmxvY2tpbmdQ
b2xpY3kpKQogICAgICwgbV9kb2N1bWVudCgqbV9wYWdlLT5tYWluRnJhbWUoKS5kb2N1bWVudCgp
KQogICAgICwgbV9zZXJ2aWNlV29ya2VyVGhyZWFkKFNlcnZpY2VXb3JrZXJUaHJlYWQ6OmNyZWF0
ZShkYXRhLCBXVEZNb3ZlKHVzZXJBZ2VudCksICp0aGlzLCAqdGhpcywgaWRiQ29ubmVjdGlvblBy
b3h5KG1fZG9jdW1lbnQpLCBtX2RvY3VtZW50LT5zb2NrZXRQcm92aWRlcigpKSkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQ
cm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJv
eHkuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsMTEgKzMxLDExIEBACiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKICNpbmNsdWRlICJGZXRjaElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJQYWdlLmgiCi0j
aW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRGVidWdn
YWJsZS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAi
U2VydmljZVdvcmtlckluc3BlY3RvclByb3h5LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclRo
cmVhZC5oIgorI2luY2x1ZGUgIlN0b3JhZ2VCbG9ja2luZ1BvbGljeS5oIgogI2luY2x1ZGUgIldv
cmtlckRlYnVnZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXb3JrZXJMb2FkZXJQcm94eS5oIgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC04MCw3ICs4MCw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IGZpcmVBY3RpdmF0ZUV2ZW50KCk7CiAKIHByaXZhdGU6Ci0gICAgV0VCQ09SRV9FWFBPUlQgU2Vy
dmljZVdvcmtlclRocmVhZFByb3h5KFBhZ2VDb25maWd1cmF0aW9uJiYsIGNvbnN0IFNlcnZpY2VX
b3JrZXJDb250ZXh0RGF0YSYsIFN0cmluZyYmIHVzZXJBZ2VudCwgQ2FjaGVTdG9yYWdlUHJvdmlk
ZXImLCBTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5KTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkoUGFnZUNvbmZpZ3VyYXRpb24mJiwgY29u
c3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiwgU3RyaW5nJiYgdXNlckFnZW50LCBDYWNoZVN0
b3JhZ2VQcm92aWRlciYsIFN0b3JhZ2VCbG9ja2luZ1BvbGljeSk7CiAKICAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgdm9pZCBuZXR3b3JrU3RhdGVDaGFuZ2VkKGJvb2wgaXNPbkxpbmUpOwogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzNiBAQAorMjAyMC0xMS0xNSAgU2FtIFdlaW5pZyAg
PHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAgU3RhbmRhcmRpemUgZW51bXMgdGhhdCBhcmUg
dXNlZCBieSBTZXR0aW5ncyBpbiBwcmVwZXJhdGlvbiBmb3IgYXV0b2dlbmVyYXRpb24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODk2MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtXSVBdCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAgIChXZWJLaXQ6OnRvQVBJ
KToKKyAgICAgICAgKFdlYktpdDo6dG9FZGl0YWJsZUxpbmtCZWhhdmlvcik6CisgICAgICAgIChX
ZWJLaXQ6OnRvU3RvcmFnZUJsb2NraW5nUG9saWN5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0MvV0tQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0RWRpdGFibGVM
aW5rQmVoYXZpb3IpOgorICAgICAgICAoV0tQcmVmZXJlbmNlc1NldFN0b3JhZ2VCbG9ja2luZ1Bv
bGljeSk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzR2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW06CisgICAgICAg
ICh0b1N0b3JhZ2VCbG9ja2luZ1BvbGljeSk6CisgICAgICAgICh0b0FQSSk6CisgICAgICAgICgt
W1dLUHJlZmVyZW5jZXMgX3N0b3JhZ2VCbG9ja2luZ1BvbGljeV0pOgorICAgICAgICAoLVtXS1By
ZWZlcmVuY2VzIF9zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3k6XSk6CisgICAgICAgICh0b0VkaXRh
YmxlTGlua0JlaGF2aW9yKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfc2V0RWRpdGFibGVM
aW5rQmVoYXZpb3I6XSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJlZmVyZW5jZXM6OmNyZWF0ZVdpdGhMZWdhY3lEZWZhdWx0
cyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b246OnVwZGF0ZVByZWZlcmVuY2VzU3RvcmUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlUHJl
ZmVyZW5jZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkZXRlY3REYXRhSW5BbGxGcmFt
ZXMpOgorCiAyMDIwLTExLTE1ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29t
PgogCiAgICAgICAgIEluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgRE9NIHJlbmRlcmluZyB2aWEg
dGhlIEdQVSBwcm9jZXNzCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcmVmZXJl
bmNlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJlZmVy
ZW5jZXMuY3BwCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcmVmZXJlbmNlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzLDcgKzUzLDcgQEAgUmVmPFdl
YlByZWZlcmVuY2VzPiBXZWJQcmVmZXJlbmNlczo6Y3JlYQogICAgIHByZWZlcmVuY2VzLT5yZWdp
c3RlckRlZmF1bHRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmphdmFFbmFibGVk
S2V5KCksIHRydWUpOwogICAgIHByZWZlcmVuY2VzLT5yZWdpc3RlckRlZmF1bHRCb29sVmFsdWVG
b3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmphdmFFbmFibGVkRm9yTG9jYWxGaWxlc0tleSgpLCB0
cnVlKTsKICAgICBwcmVmZXJlbmNlcy0+cmVnaXN0ZXJEZWZhdWx0Qm9vbFZhbHVlRm9yS2V5KFdl
YlByZWZlcmVuY2VzS2V5OjpwbHVnaW5zRW5hYmxlZEtleSgpLCB0cnVlKTsKLSAgICBwcmVmZXJl
bmNlcy0+cmVnaXN0ZXJEZWZhdWx0VUludDMyVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6
OnN0b3JhZ2VCbG9ja2luZ1BvbGljeUtleSgpLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6QWxs
b3dBbGxTdG9yYWdlKTsKKyAgICBwcmVmZXJlbmNlcy0+cmVnaXN0ZXJEZWZhdWx0VUludDMyVmFs
dWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnN0b3JhZ2VCbG9ja2luZ1BvbGljeUtleSgpLCBz
dGF0aWNfY2FzdDx1aW50MzJfdD4oV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5OjpBbGxv
d0FsbCkpOwogICAgIHJldHVybiBwcmVmZXJlbmNlczsKIH0KIApJbmRleDogU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
NTIsMTUgKzI1MiwxNSBAQCBpbmxpbmUgV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24gdG9BUEko
CiBpbmxpbmUgV0tFZGl0YWJsZUxpbmtCZWhhdmlvciB0b0FQSShXZWJDb3JlOjpFZGl0YWJsZUxp
bmtCZWhhdmlvciBiZWhhdmlvcikKIHsKICAgICBzd2l0Y2ggKGJlaGF2aW9yKSB7Ci0gICAgY2Fz
ZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtEZWZhdWx0QmVoYXZpb3I6CisgICAgY2FzZSBXZWJDb3Jl
OjpFZGl0YWJsZUxpbmtCZWhhdmlvcjo6RGVmYXVsdDoKICAgICAgICAgcmV0dXJuIGtXS0VkaXRh
YmxlTGlua0JlaGF2aW9yRGVmYXVsdDsKLSAgICBjYXNlIFdlYkNvcmU6OkVkaXRhYmxlTGlua0Fs
d2F5c0xpdmU6CisgICAgY2FzZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvcjo6QWx3YXlz
TGl2ZToKICAgICAgICAgcmV0dXJuIGtXS0VkaXRhYmxlTGlua0JlaGF2aW9yQWx3YXlzTGl2ZTsK
LSAgICBjYXNlIFdlYkNvcmU6OkVkaXRhYmxlTGlua09ubHlMaXZlV2l0aFNoaWZ0S2V5OgorICAg
IGNhc2UgV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6Ok9ubHlMaXZlV2l0aFNoaWZ0S2V5
OgogICAgICAgICByZXR1cm4ga1dLRWRpdGFibGVMaW5rQmVoYXZpb3JPbmx5TGl2ZVdpdGhTaGlm
dEtleTsKLSAgICBjYXNlIFdlYkNvcmU6OkVkaXRhYmxlTGlua0xpdmVXaGVuTm90Rm9jdXNlZDoK
KyAgICBjYXNlIFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpMaXZlV2hlbk5vdEZvY3Vz
ZWQ6CiAgICAgICAgIHJldHVybiBrV0tFZGl0YWJsZUxpbmtCZWhhdmlvckxpdmVXaGVuTm90Rm9j
dXNlZDsKLSAgICBjYXNlIFdlYkNvcmU6OkVkaXRhYmxlTGlua05ldmVyTGl2ZToKKyAgICBjYXNl
IFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpOZXZlckxpdmU6CiAgICAgICAgIHJldHVy
biBrV0tFZGl0YWJsZUxpbmtCZWhhdmlvck5ldmVyTGl2ZTsKICAgICB9CiAgICAgCkBAIC0yNzIs
MTkgKzI3MiwxOSBAQCBpbmxpbmUgV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3IgdG9FCiB7
CiAgICAgc3dpdGNoICh3a0JlaGF2aW9yKSB7CiAgICAgY2FzZSBrV0tFZGl0YWJsZUxpbmtCZWhh
dmlvckRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpFZGl0YWJsZUxpbmtEZWZhdWx0
QmVoYXZpb3I7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvcjo6
RGVmYXVsdDsKICAgICBjYXNlIGtXS0VkaXRhYmxlTGlua0JlaGF2aW9yQWx3YXlzTGl2ZToKLSAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRhYmxlTGlua0Fsd2F5c0xpdmU7CisgICAgICAgIHJl
dHVybiBXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvcjo6QWx3YXlzTGl2ZTsKICAgICBjYXNl
IGtXS0VkaXRhYmxlTGlua0JlaGF2aW9yT25seUxpdmVXaXRoU2hpZnRLZXk6Ci0gICAgICAgIHJl
dHVybiBXZWJDb3JlOjpFZGl0YWJsZUxpbmtPbmx5TGl2ZVdpdGhTaGlmdEtleTsKKyAgICAgICAg
cmV0dXJuIFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpPbmx5TGl2ZVdpdGhTaGlmdEtl
eTsKICAgICBjYXNlIGtXS0VkaXRhYmxlTGlua0JlaGF2aW9yTGl2ZVdoZW5Ob3RGb2N1c2VkOgot
ICAgICAgICByZXR1cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5rTGl2ZVdoZW5Ob3RGb2N1c2VkOwor
ICAgICAgICByZXR1cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6OkxpdmVXaGVuTm90
Rm9jdXNlZDsKICAgICBjYXNlIGtXS0VkaXRhYmxlTGlua0JlaGF2aW9yTmV2ZXJMaXZlOgotICAg
ICAgICByZXR1cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5rTmV2ZXJMaXZlOworICAgICAgICByZXR1
cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6Ok5ldmVyTGl2ZTsKICAgICB9CiAgICAg
CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRhYmxl
TGlua05ldmVyTGl2ZTsKKyAgICByZXR1cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6
Ok5ldmVyTGl2ZTsKIH0KICAgICAKIGlubGluZSBXS1Byb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUg
dG9BUEkoV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZSB0eXBlKQpAQCAtMzg0LDI5
ICszODQsMjkgQEAgaW5saW5lIFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSB0b0FQSShXZQogICAg
IHJldHVybiBrV0tIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlzOwogfQogCi1pbmxpbmUgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSB0b1N0b3JhZ2VCbG9j
a2luZ1BvbGljeShXS1N0b3JhZ2VCbG9ja2luZ1BvbGljeSBwb2xpY3kpCitpbmxpbmUgV2ViQ29y
ZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5IHRvU3RvcmFnZUJsb2NraW5nUG9saWN5KFdLU3RvcmFn
ZUJsb2NraW5nUG9saWN5IHBvbGljeSkKIHsKICAgICBzd2l0Y2ggKHBvbGljeSkgewogICAgIGNh
c2Uga1dLQWxsb3dBbGxTdG9yYWdlOgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW46OkFsbG93QWxsU3RvcmFnZTsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlN0b3JhZ2VC
bG9ja2luZ1BvbGljeTo6QWxsb3dBbGw7CiAgICAgY2FzZSBrV0tCbG9ja1RoaXJkUGFydHlTdG9y
YWdlOgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OkJsb2NrVGhpcmRQ
YXJ0eVN0b3JhZ2U7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xp
Y3k6OkJsb2NrVGhpcmRQYXJ0eTsKICAgICBjYXNlIGtXS0Jsb2NrQWxsU3RvcmFnZToKLSAgICAg
ICAgcmV0dXJuIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpCbG9ja0FsbFN0b3JhZ2U7CisgICAg
ICAgIHJldHVybiBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkJsb2NrQWxsOwogICAg
IH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbjo6QWxsb3dBbGxTdG9yYWdlOworICAgIHJldHVybiBXZWJDb3JlOjpTdG9yYWdl
QmxvY2tpbmdQb2xpY3k6OkFsbG93QWxsOwogfQogCi1pbmxpbmUgV0tTdG9yYWdlQmxvY2tpbmdQ
b2xpY3kgdG9BUEkoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGlj
eSBwb2xpY3kpCitpbmxpbmUgV0tTdG9yYWdlQmxvY2tpbmdQb2xpY3kgdG9BUEkoV2ViQ29yZTo6
U3RvcmFnZUJsb2NraW5nUG9saWN5IHBvbGljeSkKIHsKICAgICBzd2l0Y2ggKHBvbGljeSkgewot
ICAgIGNhc2UgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OkFsbG93QWxsU3RvcmFnZToKKyAgICBj
YXNlIFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QWxsb3dBbGw6CiAgICAgICAgIHJl
dHVybiBrV0tBbGxvd0FsbFN0b3JhZ2U7Ci0gICAgY2FzZSBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bjo6QmxvY2tUaGlyZFBhcnR5U3RvcmFnZToKKyAgICBjYXNlIFdlYkNvcmU6OlN0b3JhZ2VCbG9j
a2luZ1BvbGljeTo6QmxvY2tUaGlyZFBhcnR5OgogICAgICAgICByZXR1cm4ga1dLQmxvY2tUaGly
ZFBhcnR5U3RvcmFnZTsKLSAgICBjYXNlIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpCbG9ja0Fs
bFN0b3JhZ2U6CisgICAgY2FzZSBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkJsb2Nr
QWxsOgogICAgICAgICByZXR1cm4ga1dLQmxvY2tBbGxTdG9yYWdlOwogICAgIH0KIApJbmRleDog
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAJKHJl
dmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVy
ZW5jZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNTgsNyArMzU4LDcgQEAgYm9vbCBXS1ByZWZl
cmVuY2VzR2V0Q29va2llRW5hYmxlZChXS1ByZQogCiB2b2lkIFdLUHJlZmVyZW5jZXNTZXRFZGl0
YWJsZUxpbmtCZWhhdmlvcihXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBXS0VkaXRh
YmxlTGlua0JlaGF2aW9yIHdrQmVoYXZpb3IpCiB7Ci0gICAgdG9JbXBsKHByZWZlcmVuY2VzUmVm
KS0+c2V0RWRpdGFibGVMaW5rQmVoYXZpb3IodG9FZGl0YWJsZUxpbmtCZWhhdmlvcih3a0JlaGF2
aW9yKSk7CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0RWRpdGFibGVMaW5rQmVoYXZp
b3Ioc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHRvRWRpdGFibGVMaW5rQmVoYXZpb3Iod2tCZWhhdmlv
cikpKTsKIH0KIAogV0tFZGl0YWJsZUxpbmtCZWhhdmlvciBXS1ByZWZlcmVuY2VzR2V0RWRpdGFi
bGVMaW5rQmVoYXZpb3IoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKQEAgLTk5OCwx
MiArOTk4LDEyIEBAIGJvb2wgV0tQcmVmZXJlbmNlc0dldFJlcXVlc3RBbmltYXRpb25GcmEKIAog
dm9pZCBXS1ByZWZlcmVuY2VzU2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KFdLUHJlZmVyZW5jZXNS
ZWYgcHJlZmVyZW5jZXNSZWYsIFdLU3RvcmFnZUJsb2NraW5nUG9saWN5IHBvbGljeSkKIHsKLSAg
ICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3kodG9TdG9y
YWdlQmxvY2tpbmdQb2xpY3kocG9saWN5KSk7CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+
c2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KHN0YXRpY19jYXN0PHVpbnQzMl90Pih0b1N0b3JhZ2VC
bG9ja2luZ1BvbGljeShwb2xpY3kpKSk7CiB9CiAKIFdLU3RvcmFnZUJsb2NraW5nUG9saWN5IFdL
UHJlZmVyZW5jZXNHZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koV0tQcmVmZXJlbmNlc1JlZiBwcmVm
ZXJlbmNlc1JlZikKIHsKLSAgICByZXR1cm4gdG9BUEkoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeT4odG9JbXBsKHByZWZlcmVuY2VzUmVm
KS0+c3RvcmFnZUJsb2NraW5nUG9saWN5KCkpKTsKKyAgICByZXR1cm4gdG9BUEkoc3RhdGljX2Nh
c3Q8V2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5Pih0b0ltcGwocHJlZmVyZW5jZXNSZWYp
LT5zdG9yYWdlQmxvY2tpbmdQb2xpY3koKSkpOwogfQogCiB2b2lkIFdLUHJlZmVyZW5jZXNTZXRE
aWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwg
Ym9vbCBlbmFibGVkKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJlZmVyZW5jZXMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJlZmVyZW5jZXMubW0JKHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0xNzUsMjkgKzE3NSwyOSBAQCAtICh2b2lkKV9zZXRUZWxlcGhvbmVOdW1iZXJEZXRlY3Rpb25J
c0VuCiAgICAgX3ByZWZlcmVuY2VzLT5zZXRUZWxlcGhvbmVOdW1iZXJQYXJzaW5nRW5hYmxlZCh0
ZWxlcGhvbmVOdW1iZXJEZXRlY3Rpb25Jc0VuYWJsZWQpOwogfQogCi1zdGF0aWMgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSB0b1N0b3JhZ2VCbG9ja2luZ1Bv
bGljeShfV0tTdG9yYWdlQmxvY2tpbmdQb2xpY3kgcG9saWN5KQorc3RhdGljIFdlYkNvcmU6OlN0
b3JhZ2VCbG9ja2luZ1BvbGljeSB0b1N0b3JhZ2VCbG9ja2luZ1BvbGljeShfV0tTdG9yYWdlQmxv
Y2tpbmdQb2xpY3kgcG9saWN5KQogewogICAgIHN3aXRjaCAocG9saWN5KSB7CiAgICAgY2FzZSBf
V0tTdG9yYWdlQmxvY2tpbmdQb2xpY3lBbGxvd0FsbDoKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luOjpBbGxvd0FsbFN0b3JhZ2U7CisgICAgICAgIHJldHVybiBXZWJDb3Jl
OjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkFsbG93QWxsOwogICAgIGNhc2UgX1dLU3RvcmFnZUJs
b2NraW5nUG9saWN5QmxvY2tUaGlyZFBhcnR5OgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW46OkJsb2NrVGhpcmRQYXJ0eVN0b3JhZ2U7CisgICAgICAgIHJldHVybiBXZWJD
b3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkJsb2NrVGhpcmRQYXJ0eTsKICAgICBjYXNlIF9X
S1N0b3JhZ2VCbG9ja2luZ1BvbGljeUJsb2NrQWxsOgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW46OkJsb2NrQWxsU3RvcmFnZTsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6
OlN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QmxvY2tBbGw7CiAgICAgfQogCiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpBbGxvd0Fs
bFN0b3JhZ2U7CisgICAgcmV0dXJuIFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QWxs
b3dBbGw7CiB9CiAKLXN0YXRpYyBfV0tTdG9yYWdlQmxvY2tpbmdQb2xpY3kgdG9BUEkoV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBwb2xpY3kpCitzdGF0aWMg
X1dLU3RvcmFnZUJsb2NraW5nUG9saWN5IHRvQVBJKFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1Bv
bGljeSBwb2xpY3kpCiB7CiAgICAgc3dpdGNoIChwb2xpY3kpIHsKLSAgICBjYXNlIFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luOjpBbGxvd0FsbFN0b3JhZ2U6CisgICAgY2FzZSBXZWJDb3JlOjpTdG9y
YWdlQmxvY2tpbmdQb2xpY3k6OkFsbG93QWxsOgogICAgICAgICByZXR1cm4gX1dLU3RvcmFnZUJs
b2NraW5nUG9saWN5QWxsb3dBbGw7Ci0gICAgY2FzZSBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6
QmxvY2tUaGlyZFBhcnR5U3RvcmFnZToKKyAgICBjYXNlIFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2lu
Z1BvbGljeTo6QmxvY2tUaGlyZFBhcnR5OgogICAgICAgICByZXR1cm4gX1dLU3RvcmFnZUJsb2Nr
aW5nUG9saWN5QmxvY2tUaGlyZFBhcnR5OwotICAgIGNhc2UgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW46OkJsb2NrQWxsU3RvcmFnZToKKyAgICBjYXNlIFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1Bv
bGljeTo6QmxvY2tBbGw6CiAgICAgICAgIHJldHVybiBfV0tTdG9yYWdlQmxvY2tpbmdQb2xpY3lC
bG9ja0FsbDsKICAgICB9CiAKQEAgLTIwNywxMiArMjA3LDEyIEBAIHN0YXRpYyBfV0tTdG9yYWdl
QmxvY2tpbmdQb2xpY3kgdG9BUEkoV2UKIAogLSAoX1dLU3RvcmFnZUJsb2NraW5nUG9saWN5KV9z
dG9yYWdlQmxvY2tpbmdQb2xpY3kKIHsKLSAgICByZXR1cm4gdG9BUEkoc3RhdGljX2Nhc3Q8V2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeT4oX3ByZWZlcmVuY2Vz
LT5zdG9yYWdlQmxvY2tpbmdQb2xpY3koKSkpOworICAgIHJldHVybiB0b0FQSShzdGF0aWNfY2Fz
dDxXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k+KF9wcmVmZXJlbmNlcy0+c3RvcmFnZUJs
b2NraW5nUG9saWN5KCkpKTsKIH0KIAogLSAodm9pZClfc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5
OihfV0tTdG9yYWdlQmxvY2tpbmdQb2xpY3kpcG9saWN5CiB7Ci0gICAgX3ByZWZlcmVuY2VzLT5z
ZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3kodG9TdG9yYWdlQmxvY2tpbmdQb2xpY3kocG9saWN5KSk7
CisgICAgX3ByZWZlcmVuY2VzLT5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KHRvU3RvcmFnZUJsb2NraW5nUG9saWN5KHBvbGljeSkpKTsKIH0KIAogLSAoQk9P
TClfb2ZmbGluZUFwcGxpY2F0aW9uQ2FjaGVJc0VuYWJsZWQKQEAgLTczMywxNSArNzMzLDE1IEBA
IC0gKHZvaWQpX3NldFNob3VsZEFsbG93RGVzaWduU3lzdGVtVUlGb24KIHN0YXRpYyBfV0tFZGl0
YWJsZUxpbmtCZWhhdmlvciB0b0FQSShXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvciBiZWhh
dmlvcikKIHsKICAgICBzd2l0Y2ggKGJlaGF2aW9yKSB7Ci0gICAgY2FzZSBXZWJDb3JlOjpFZGl0
YWJsZUxpbmtEZWZhdWx0QmVoYXZpb3I6CisgICAgY2FzZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtC
ZWhhdmlvcjo6RGVmYXVsdDoKICAgICAgICAgcmV0dXJuIF9XS0VkaXRhYmxlTGlua0JlaGF2aW9y
RGVmYXVsdDsKLSAgICBjYXNlIFdlYkNvcmU6OkVkaXRhYmxlTGlua0Fsd2F5c0xpdmU6CisgICAg
Y2FzZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvcjo6QWx3YXlzTGl2ZToKICAgICAgICAg
cmV0dXJuIF9XS0VkaXRhYmxlTGlua0JlaGF2aW9yQWx3YXlzTGl2ZTsKLSAgICBjYXNlIFdlYkNv
cmU6OkVkaXRhYmxlTGlua09ubHlMaXZlV2l0aFNoaWZ0S2V5OgorICAgIGNhc2UgV2ViQ29yZTo6
RWRpdGFibGVMaW5rQmVoYXZpb3I6Ok9ubHlMaXZlV2l0aFNoaWZ0S2V5OgogICAgICAgICByZXR1
cm4gX1dLRWRpdGFibGVMaW5rQmVoYXZpb3JPbmx5TGl2ZVdpdGhTaGlmdEtleTsKLSAgICBjYXNl
IFdlYkNvcmU6OkVkaXRhYmxlTGlua0xpdmVXaGVuTm90Rm9jdXNlZDoKKyAgICBjYXNlIFdlYkNv
cmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpMaXZlV2hlbk5vdEZvY3VzZWQ6CiAgICAgICAgIHJl
dHVybiBfV0tFZGl0YWJsZUxpbmtCZWhhdmlvckxpdmVXaGVuTm90Rm9jdXNlZDsKLSAgICBjYXNl
IFdlYkNvcmU6OkVkaXRhYmxlTGlua05ldmVyTGl2ZToKKyAgICBjYXNlIFdlYkNvcmU6OkVkaXRh
YmxlTGlua0JlaGF2aW9yOjpOZXZlckxpdmU6CiAgICAgICAgIHJldHVybiBfV0tFZGl0YWJsZUxp
bmtCZWhhdmlvck5ldmVyTGl2ZTsKICAgICB9CiAgICAgCkBAIC03NTMsMTkgKzc1MywxOSBAQCBz
dGF0aWMgV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3IgdG9FCiB7CiAgICAgc3dpdGNoICh3
a0JlaGF2aW9yKSB7CiAgICAgY2FzZSBfV0tFZGl0YWJsZUxpbmtCZWhhdmlvckRlZmF1bHQ6Ci0g
ICAgICAgIHJldHVybiBXZWJDb3JlOjpFZGl0YWJsZUxpbmtEZWZhdWx0QmVoYXZpb3I7CisgICAg
ICAgIHJldHVybiBXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvcjo6RGVmYXVsdDsKICAgICBj
YXNlIF9XS0VkaXRhYmxlTGlua0JlaGF2aW9yQWx3YXlzTGl2ZToKLSAgICAgICAgcmV0dXJuIFdl
YkNvcmU6OkVkaXRhYmxlTGlua0Fsd2F5c0xpdmU7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpF
ZGl0YWJsZUxpbmtCZWhhdmlvcjo6QWx3YXlzTGl2ZTsKICAgICBjYXNlIF9XS0VkaXRhYmxlTGlu
a0JlaGF2aW9yT25seUxpdmVXaXRoU2hpZnRLZXk6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpF
ZGl0YWJsZUxpbmtPbmx5TGl2ZVdpdGhTaGlmdEtleTsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6
OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpPbmx5TGl2ZVdpdGhTaGlmdEtleTsKICAgICBjYXNlIF9X
S0VkaXRhYmxlTGlua0JlaGF2aW9yTGl2ZVdoZW5Ob3RGb2N1c2VkOgotICAgICAgICByZXR1cm4g
V2ViQ29yZTo6RWRpdGFibGVMaW5rTGl2ZVdoZW5Ob3RGb2N1c2VkOworICAgICAgICByZXR1cm4g
V2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6OkxpdmVXaGVuTm90Rm9jdXNlZDsKICAgICBj
YXNlIF9XS0VkaXRhYmxlTGlua0JlaGF2aW9yTmV2ZXJMaXZlOgotICAgICAgICByZXR1cm4gV2Vi
Q29yZTo6RWRpdGFibGVMaW5rTmV2ZXJMaXZlOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6RWRp
dGFibGVMaW5rQmVoYXZpb3I6Ok5ldmVyTGl2ZTsKICAgICB9CiAgICAgCiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRhYmxlTGlua05ldmVyTGl2ZTsK
KyAgICByZXR1cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6Ok5ldmVyTGl2ZTsKIH0K
IAogLSAoX1dLRWRpdGFibGVMaW5rQmVoYXZpb3IpX2VkaXRhYmxlTGlua0JlaGF2aW9yCkBAIC03
NzUsNyArNzc1LDcgQEAgLSAoX1dLRWRpdGFibGVMaW5rQmVoYXZpb3IpX2VkaXRhYmxlTGluawog
CiAtICh2b2lkKV9zZXRFZGl0YWJsZUxpbmtCZWhhdmlvcjooX1dLRWRpdGFibGVMaW5rQmVoYXZp
b3IpZWRpdGFibGVMaW5rQmVoYXZpb3IKIHsKLSAgICBfcHJlZmVyZW5jZXMtPnNldEVkaXRhYmxl
TGlua0JlaGF2aW9yKHRvRWRpdGFibGVMaW5rQmVoYXZpb3IoZWRpdGFibGVMaW5rQmVoYXZpb3Ip
KTsKKyAgICBfcHJlZmVyZW5jZXMtPnNldEVkaXRhYmxlTGlua0JlaGF2aW9yKHN0YXRpY19jYXN0
PHVpbnQzMl90Pih0b0VkaXRhYmxlTGlua0JlaGF2aW9yKGVkaXRhYmxlTGlua0JlaGF2aW9yKSkp
OwogfQogCiAtICh2b2lkKV9zZXRBVkZvdW5kYXRpb25FbmFibGVkOihCT09MKWVuYWJsZWQKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAJKHJldmlzaW9uIDI2OTgzMCkK
KysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIyLDcgKzEyMiw3IEBAIHZvaWQgV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnVwZGEKIHsKICAgICBXZWJQYWdlOjp1cGRhdGVQ
cmVmZXJlbmNlc0dlbmVyYXRlZChzdG9yZSk7CiAKLSAgICBtX3N0b3JhZ2VCbG9ja2luZ1BvbGlj
eSA9IHN0YXRpY19jYXN0PFNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k+KHN0
b3JlLmdldFVJbnQzMlZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpzdG9yYWdlQmxvY2tp
bmdQb2xpY3lLZXkoKSkpOworICAgIG1fc3RvcmFnZUJsb2NraW5nUG9saWN5ID0gc3RhdGljX2Nh
c3Q8U3RvcmFnZUJsb2NraW5nUG9saWN5PihzdG9yZS5nZXRVSW50MzJWYWx1ZUZvcktleShXZWJQ
cmVmZXJlbmNlc0tleTo6c3RvcmFnZUJsb2NraW5nUG9saWN5S2V5KCkpKTsKICAgICBzZXRTaG91
bGRVc2VTaG9ydFRpbWVvdXQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2Vz
S2V5OjpzaG91bGRVc2VTZXJ2aWNlV29ya2VyU2hvcnRUaW1lb3V0S2V5KCkpKTsKIH0KIApJbmRl
eDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCShyZXZpc2lvbiAyNjk4MzApCisrKyBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIsNyArMTAyLDcgQEAgcHJpdmF0ZToKICAgICBX
ZWJQYWdlUHJveHlJZGVudGlmaWVyIG1fd2ViUGFnZVByb3h5SUQ7CiAgICAgV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIgbV9wYWdlSUQ7CiAKLSAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6U3Rv
cmFnZUJsb2NraW5nUG9saWN5IG1fc3RvcmFnZUJsb2NraW5nUG9saWN5IHsgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QWxsb3dBbGxTdG9yYWdlIH07Cisg
ICAgV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5IG1fc3RvcmFnZUJsb2NraW5nUG9saWN5
IHsgV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5OjpBbGxvd0FsbCB9OwogCiAgICAgSGFz
aFNldDxzdGQ6OnVuaXF1ZV9wdHI8U2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50Pj4gbV9s
b2FkZXJzOwogICAgIEhhc2hNYXA8dWludDY0X3QsIEZpbmRDbGllbnRCeUlkZW50aWZpZXJDYWxs
YmFjaz4gbV9maW5kQ2xpZW50QnlJZGVudGlmaWVyUmVxdWVzdHM7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2aXNpb24gMjY5ODMwKQor
KysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTM3MzUsNyArMzczNSw3IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5j
ZXMoY29uc3QgV2UKICAgICBzZXR0aW5ncy5zZXRVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5
KHN0YXRpY19jYXN0PFdlYkNvcmU6OlVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3k+KHN0b3Jl
LmdldFVJbnQzMlZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojp1c2VySW50ZXJmYWNlRGly
ZWN0aW9uUG9saWN5S2V5KCkpKSk7CiAgICAgc2V0dGluZ3Muc2V0U3lzdGVtTGF5b3V0RGlyZWN0
aW9uKHN0YXRpY19jYXN0PFRleHREaXJlY3Rpb24+KHN0b3JlLmdldFVJbnQzMlZhbHVlRm9yS2V5
KFdlYlByZWZlcmVuY2VzS2V5OjpzeXN0ZW1MYXlvdXREaXJlY3Rpb25LZXkoKSkpKTsKICAgICBz
ZXR0aW5ncy5zZXRKYXZhU2NyaXB0UnVudGltZUZsYWdzKHN0YXRpY19jYXN0PFJ1bnRpbWVGbGFn
cz4oc3RvcmUuZ2V0VUludDMyVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmphdmFTY3Jp
cHRSdW50aW1lRmxhZ3NLZXkoKSkpKTsKLSAgICBzZXR0aW5ncy5zZXRTdG9yYWdlQmxvY2tpbmdQ
b2xpY3koc3RhdGljX2Nhc3Q8U2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeT4o
c3RvcmUuZ2V0VUludDMyVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnN0b3JhZ2VCbG9j
a2luZ1BvbGljeUtleSgpKSkpOworICAgIHNldHRpbmdzLnNldFN0b3JhZ2VCbG9ja2luZ1BvbGlj
eShzdGF0aWNfY2FzdDxTdG9yYWdlQmxvY2tpbmdQb2xpY3k+KHN0b3JlLmdldFVJbnQzMlZhbHVl
Rm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpzdG9yYWdlQmxvY2tpbmdQb2xpY3lLZXkoKSkpKTsK
ICAgICBzZXR0aW5ncy5zZXRGcmFtZUZsYXR0ZW5pbmcoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5
KFdlYlByZWZlcmVuY2VzS2V5OjpmcmFtZUZsYXR0ZW5pbmdFbmFibGVkS2V5KCkpID8gV2ViQ29y
ZTo6RnJhbWVGbGF0dGVuaW5nOjpGdWxseUVuYWJsZWQgOiBXZWJDb3JlOjpGcmFtZUZsYXR0ZW5p
bmc6OkRpc2FibGVkKTsKICAgICBzZXR0aW5ncy5zZXRFZGl0YWJsZUxpbmtCZWhhdmlvcihzdGF0
aWNfY2FzdDxXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvcj4oc3RvcmUuZ2V0VUludDMyVmFs
dWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmVkaXRhYmxlTGlua0JlaGF2aW9yS2V5KCkpKSk7
CiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQpAQCAtMzgzNiw3ICszODM2LDcgQEAgdm9pZCBX
ZWJQYWdlOjpyZW1vdmVEYXRhRGV0ZWN0ZWRMaW5rcyhDbwogCiB2b2lkIFdlYlBhZ2U6OmRldGVj
dERhdGFJbkFsbEZyYW1lcyh1aW50NjRfdCB0eXBlcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChj
b25zdCBEYXRhRGV0ZWN0aW9uUmVzdWx0Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAg
YXV0byBkYXRhRGV0ZWN0b3JUeXBlcyA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OkRhdGFEZXRlY3Rv
clR5cGVzPih0eXBlcyk7CisgICAgYXV0byBkYXRhRGV0ZWN0b3JUeXBlcyA9IE9wdGlvblNldDxE
YXRhRGV0ZWN0b3JUeXBlcz46OmZyb21SYXcodHlwZXMpOwogICAgIGZvciAoYXV0byBmcmFtZSA9
IG1ha2VSZWZQdHIoJm1fcGFnZS0+bWFpbkZyYW1lKCkpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+
dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7CiAgICAgICAgIGF1dG8gZG9jdW1lbnQgPSBtYWtlUmVm
UHRyKGZyYW1lLT5kb2N1bWVudCgpKTsKICAgICAgICAgaWYgKCFkb2N1bWVudCkKSW5kZXg6IFNv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisy
MDIwLTExLTE1ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBTdGFu
ZGFyZGl6ZSBlbnVtcyB0aGF0IGFyZSB1c2VkIGJ5IFNldHRpbmdzIGluIHByZXBlcmF0aW9uIGZv
ciBhdXRvZ2VuZXJhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE4OTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgW1dJUF0KKworICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06CisgICAgICAg
ICogV2ViVmlldy9XZWJWaWV3Lm1tOgorCiAyMDIwLTExLTEzICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIHNvbWUgbW9yZSBXZWJLaXQgYW5kIFdlYktpdExl
Z2FjeSBwcmVmZXJlbmNlcyBib3VuZCB0byBTZXR0aW5ncyB0byBXZWJQcmVmZXJlbmNlcy55YW1s
CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0JKHJl
dmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJh
bWUubW0JKHdvcmtpbmcgY29weSkKQEAgLTIwNywxOCArMjA3LDE4IEBAIFdlYkNvcmU6OkVkaXRh
YmxlTGlua0JlaGF2aW9yIGNvcmUoV2ViS2kKICAgICB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
ICAgICBzd2l0Y2ggKGVkaXRhYmxlTGlua0JlaGF2aW9yKSB7CiAgICAgICAgIGNhc2UgV2ViS2l0
RWRpdGFibGVMaW5rRGVmYXVsdEJlaGF2aW9yOgotICAgICAgICAgICAgcmV0dXJuIEVkaXRhYmxl
TGlua0RlZmF1bHRCZWhhdmlvcjsKKyAgICAgICAgICAgIHJldHVybiBFZGl0YWJsZUxpbmtCZWhh
dmlvcjo6RGVmYXVsdDsKICAgICAgICAgY2FzZSBXZWJLaXRFZGl0YWJsZUxpbmtBbHdheXNMaXZl
OgotICAgICAgICAgICAgcmV0dXJuIEVkaXRhYmxlTGlua0Fsd2F5c0xpdmU7CisgICAgICAgICAg
ICByZXR1cm4gRWRpdGFibGVMaW5rQmVoYXZpb3I6OkFsd2F5c0xpdmU7CiAgICAgICAgIGNhc2Ug
V2ViS2l0RWRpdGFibGVMaW5rT25seUxpdmVXaXRoU2hpZnRLZXk6Ci0gICAgICAgICAgICByZXR1
cm4gRWRpdGFibGVMaW5rT25seUxpdmVXaXRoU2hpZnRLZXk7CisgICAgICAgICAgICByZXR1cm4g
RWRpdGFibGVMaW5rQmVoYXZpb3I6Ok9ubHlMaXZlV2l0aFNoaWZ0S2V5OwogICAgICAgICBjYXNl
IFdlYktpdEVkaXRhYmxlTGlua0xpdmVXaGVuTm90Rm9jdXNlZDoKLSAgICAgICAgICAgIHJldHVy
biBFZGl0YWJsZUxpbmtMaXZlV2hlbk5vdEZvY3VzZWQ7CisgICAgICAgICAgICByZXR1cm4gRWRp
dGFibGVMaW5rQmVoYXZpb3I6OkxpdmVXaGVuTm90Rm9jdXNlZDsKICAgICAgICAgY2FzZSBXZWJL
aXRFZGl0YWJsZUxpbmtOZXZlckxpdmU6Ci0gICAgICAgICAgICByZXR1cm4gRWRpdGFibGVMaW5r
TmV2ZXJMaXZlOworICAgICAgICAgICAgcmV0dXJuIEVkaXRhYmxlTGlua0JlaGF2aW9yOjpOZXZl
ckxpdmU7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBFZGl0
YWJsZUxpbmtEZWZhdWx0QmVoYXZpb3I7CisgICAgcmV0dXJuIEVkaXRhYmxlTGlua0JlaGF2aW9y
OjpEZWZhdWx0OwogfQogCiBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJl
aGF2aW9yIGNvcmUoV2ViVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvciBiZWhh
dmlvcikKQEAgLTIyNiwxNCArMjI2LDE0IEBAIFdlYkNvcmU6OlRleHREaXJlY3Rpb25TdWJtZW51
SW5jbHVzaW9uQmUKICAgICB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAgICBzd2l0Y2ggKGJl
aGF2aW9yKSB7CiAgICAgICAgIGNhc2UgV2ViVGV4dERpcmVjdGlvblN1Ym1lbnVOZXZlckluY2x1
ZGVkOgotICAgICAgICAgICAgcmV0dXJuIFRleHREaXJlY3Rpb25TdWJtZW51TmV2ZXJJbmNsdWRl
ZDsKKyAgICAgICAgICAgIHJldHVybiBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2
aW9yOjpOZXZlckluY2x1ZGVkOwogICAgICAgICBjYXNlIFdlYlRleHREaXJlY3Rpb25TdWJtZW51
QXV0b21hdGljYWxseUluY2x1ZGVkOgotICAgICAgICAgICAgcmV0dXJuIFRleHREaXJlY3Rpb25T
dWJtZW51QXV0b21hdGljYWxseUluY2x1ZGVkOworICAgICAgICAgICAgcmV0dXJuIFRleHREaXJl
Y3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3I6OkF1dG9tYXRpY2FsbHlJbmNsdWRlZDsKICAg
ICAgICAgY2FzZSBXZWJUZXh0RGlyZWN0aW9uU3VibWVudUFsd2F5c0luY2x1ZGVkOgotICAgICAg
ICAgICAgcmV0dXJuIFRleHREaXJlY3Rpb25TdWJtZW51QWx3YXlzSW5jbHVkZWQ7CisgICAgICAg
ICAgICByZXR1cm4gVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcjo6QWx3YXlz
SW5jbHVkZWQ7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBU
ZXh0RGlyZWN0aW9uU3VibWVudU5ldmVySW5jbHVkZWQ7CisgICAgcmV0dXJuIFRleHREaXJlY3Rp
b25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3I6Ok5ldmVySW5jbHVkZWQ7CiB9CiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbQkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC03NTUsMTkgKzc1NSwxOSBAQCBz
dGF0aWMgV2ViUGFnZVZpc2liaWxpdHlTdGF0ZSBraXQoV2ViQ29yCiAgICAgcmV0dXJuIFdlYlBh
Z2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlOwogfQogCi1zdGF0aWMgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBjb3JlKFdlYlN0b3JhZ2VCbG9ja2luZ1BvbGlj
eSBzdG9yYWdlQmxvY2tpbmdQb2xpY3kpCitzdGF0aWMgV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5n
UG9saWN5IGNvcmUoV2ViU3RvcmFnZUJsb2NraW5nUG9saWN5IHN0b3JhZ2VCbG9ja2luZ1BvbGlj
eSkKIHsKICAgICBzd2l0Y2ggKHN0b3JhZ2VCbG9ja2luZ1BvbGljeSkgewogICAgIGNhc2UgV2Vi
QWxsb3dBbGxTdG9yYWdlOgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46
OkFsbG93QWxsU3RvcmFnZTsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2lu
Z1BvbGljeTo6QWxsb3dBbGw7CiAgICAgY2FzZSBXZWJCbG9ja1RoaXJkUGFydHlTdG9yYWdlOgot
ICAgICAgICByZXR1cm4gV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OkJsb2NrVGhpcmRQYXJ0eVN0
b3JhZ2U7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkJs
b2NrVGhpcmRQYXJ0eTsKICAgICBjYXNlIFdlYkJsb2NrQWxsU3RvcmFnZToKLSAgICAgICAgcmV0
dXJuIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpCbG9ja0FsbFN0b3JhZ2U7CisgICAgICAgIHJl
dHVybiBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkJsb2NrQWxsOwogICAgIGRlZmF1
bHQ6CiAgICAgICAgIC8vIElmIGFuIGludmFsaWQgdmFsdWUgd2FzIHNldCAoYXMgY2FuIGJlIGRv
bmUgdmlhIE5TVXNlckRlZmF1bHRzKSwgZmFsbCBiYWNrIHRvCi0gICAgICAgIC8vIHRoZSBkZWZh
dWx0IHZhbHVlLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6QWxsb3dBbGxTdG9yYWdlLgotICAg
ICAgICByZXR1cm4gV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OkFsbG93QWxsU3RvcmFnZTsKKyAg
ICAgICAgLy8gdGhlIGRlZmF1bHQgdmFsdWUsIFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGlj
eTo6QWxsb3dBbGwuCisgICAgICAgIHJldHVybiBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xp
Y3k6OkFsbG93QWxsOwogICAgIH0KIH0KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjY5ODMwKQorKysg
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjEgQEAKKzIw
MjAtMTEtMTUgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgorCisgICAgICAgIFN0YW5k
YXJkaXplIGVudW1zIHRoYXQgYXJlIHVzZWQgYnkgU2V0dGluZ3MgaW4gcHJlcGVyYXRpb24gZm9y
IGF1dG9nZW5lcmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTg5NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBbV0lQXQorCisgICAgICAgICogZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1
cmUtMDAzLmh0bWw6CisgICAgICAgICogZWRpdGluZy9kZWxldGluZy9wYXJhZ3JhcGgtaW4tcHJl
c2VydmVOZXdsaW5lLmh0bWw6CisgICAgICAgICogZWRpdGluZy9kZWxldGluZy9zbWFydC1lZGl0
aW5nLWRpc2FibGVkLXdpbi5odG1sOgorICAgICAgICAqIGVkaXRpbmcvZGVsZXRpbmcvd2hpdGVz
cGFjZS1wcmUtMS5odG1sOgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvcXVlcnktY29t
bWFuZC1zdGF0ZS5odG1sOgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvcXVlcnktdGV4
dC1hbGlnbm1lbnQuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL3JlbW92ZS1m
b3JtYXQtbXVsdGlwbGUtZWxlbWVudHMtd2luLmh0bWw6CisgICAgICAgICogZWRpdGluZy9leGVj
Q29tbWFuZC90b2dnbGUtY29tcG91bmQtc3R5bGVzLmh0bWw6CisgICAgICAgICogZWRpdGluZy9l
eGVjQ29tbWFuZC90b2dnbGUtbGluay13aW4uaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2V4ZWND
b21tYW5kL3RvZ2dsZS11bmxpbmstd2luLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rp
b24vNTE5NTE2Ni0xLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vNTM1NDQ1NS0x
Lmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vY2xpY2staW4tbWFyZ2lucy1pbnNp
ZGUtZWRpdGFibGUtZGl2Lmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vY2xpY2st
aW4tcGFkZGluZy13aXRoLW11bHRpcGxlLWxpbmUtYm94ZXMuaHRtbDoKKyAgICAgICAgKiBlZGl0
aW5nL3NlbGVjdGlvbi9jb250ZXh0LW1lbnUtdGV4dC1zZWxlY3Rpb24tbG9va3VwLmh0bWw6Cisg
ICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vY29udGV4dC1tZW51LXRleHQtc2VsZWN0aW9uLmh0
bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLWFmdGVyLW1vdXNlLXNlbGVj
dGlvbi5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24t
YWZ0ZXItZG91YmxlLWNsaWNrLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vZXh0
ZW5kLXNlbGVjdGlvbi1lbmNsb3NpbmctYmxvY2std2luLmh0bWw6CisgICAgICAgICogZWRpdGlu
Zy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWNyYXNoLXRlc3QtMS5odG1sOgorICAg
ICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0
LTIuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFs
bHktY3Jhc2gtdGVzdC0zLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1i
eS13b3JkLXZpc3VhbGx5LWNyYXNoLXRlc3QtNC5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2Vs
ZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0LTUuaHRtbDoKKyAgICAgICAg
KiBlZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC1jc3Mt
Z2VuZXJhdGVkLWNvbnRlbnQuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9tb3Zl
LWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC10ZXh0YXJlYS5odG1sOgorICAgICAgICAqIGVk
aXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1pbmxpbmUtYmxvY2stcG9zaXRp
b25lZC1lbGVtZW50Lmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13
b3JkLXZpc3VhbGx5LW11bHRpLWxpbmUuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlv
bi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktbXVsdGktc3BhY2UuaHRtbDoKKyAgICAgICAgKiBlZGl0
aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktbnVsbC1ib3guaHRtbDoKKyAgICAg
ICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktc2luZ2xlLXNwYWNl
LWlubGluZS1lbGVtZW50Lmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1i
eS13b3JkLXZpc3VhbGx5LXNpbmdsZS1zcGFjZS1vbmUtZWxlbWVudC5odG1sOgorICAgICAgICAq
IGVkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS10ZXh0YXJlYS5odG1sOgor
ICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS13cm9uZy1s
ZWZ0LXJpZ2h0Lmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vcHJvZ3JhbW1hdGlj
LXNlbGVjdGlvbi1vbi1tYWMtaXMtZGlyZWN0aW9ubGVzcy5odG1sOgorICAgICAgICAqIGVkaXRp
bmcvc2VsZWN0aW9uL3J0bC1tb3ZlLXNlbGVjdGlvbi1yaWdodC1sZWZ0Lmh0bWw6CisgICAgICAg
ICogZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWV4dGVuZC1zaG91bGQtbm90LW1vdmUtYWNy
b3NzLWNhcmV0LW9uLW1hYy5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL3NoaWZ0
LWNsaWNrLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vdXNlci1zZWxlY3QtYWxs
LXdpdGgtc2hpZnQuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NwZWxsaW5nL2NvcHktcGFzdGUt
Y3Jhc2guaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3N0eWxlL2lmcmFtZS1vbmxvYWQtY3Jhc2gt
d2luLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zdHlsZS9tYWtlLXRleHQtd3JpdGluZy1kaXJl
Y3Rpb24taW5saW5lLXdpbi5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc3R5bGUvcHVzaC1kb3du
LWZvbnQtc3R5bGVzLXdpbi5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc3R5bGUvcHVzaC1kb3du
LWltcGxpY2l0LXN0eWxlcy1hcm91bmQtbGlzdC13aW4uaHRtbDoKKyAgICAgICAgKiBlZGl0aW5n
L3N0eWxlL3RvZ2dsZS1zdHlsZS1ib2xkLWl0YWxpYy1taXhlZC1lZGl0YWJpbGl0eS5odG1sOgor
ICAgICAgICAqIGVkaXRpbmcvc3R5bGUvdG9nZ2xlLXN0eWxlLWJvbGQtaXRhbGljLmh0bWw6Cisg
ICAgICAgICogZmFzdC9ldmVudHMvYmFja3NwYWNlLW5hdmlnYXRlcy1iYWNrLmh0bWw6CisgICAg
ICAgICogZmFzdC9mb3Jtcy9zZWxlY3Rpb24tZGlyZWN0aW9uLmh0bWw6CisKIDIwMjAtMTEtMTUg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhIFdlYlJU
QyBTRnJhbWUgdHJhbnNmb3JtCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2Rl
bGV0ZS1saWdhdHVyZS0wMDMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWxpZ2F0dXJlLTAwMy1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWxpZ2F0
dXJlLTAwMy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTMxLDUgKzMxLDUgQEAgSWYg
dGhpcyB0ZXN0IHN1Y2NlZWRzLCB5b3UgY2FuIHNlZSAi4Lin4AogCiDguKfguLEKIFN1Y2NlZWRl
ZCBmb3IgbWFjCi1TdWNjZWVkZWQgZm9yIHdpbgorU3VjY2VlZGVkIGZvciB3aW5kb3dzCiBTdWNj
ZWVkZWQgZm9yIHVuaXgKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRl
LWxpZ2F0dXJlLTAwMy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvZGVs
ZXRpbmcvZGVsZXRlLWxpZ2F0dXJlLTAwMy5odG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlv
dXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1saWdhdHVyZS0wMDMuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQAogICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQogICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICAg
ICAgcnVuVGVzdE9uKCJtYWMiKTsKLSAgICAgICAgICAgIHJ1blRlc3RPbigid2luIik7CisgICAg
ICAgICAgICBydW5UZXN0T24oIndpbmRvd3MiKTsKICAgICAgICAgICAgIHJ1blRlc3RPbigidW5p
eCIpOwogICAgICAgICB9CiAgICAgICAgIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZWRp
dGluZy9kZWxldGluZy9wYXJhZ3JhcGgtaW4tcHJlc2VydmVOZXdsaW5lLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3BhcmFncmFwaC1pbi1w
cmVzZXJ2ZU5ld2xpbmUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRU
ZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3BhcmFncmFwaC1pbi1wcmVzZXJ2ZU5ld2xpbmUtZXhwZWN0
ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01MiwxMiArNTIsMTIgQEAgYWZ0ZXIgdW5kbyBvbiBt
YWM6CiB8ICAgIjwjc2VsZWN0aW9uLWFuY2hvcj5mb288I3NlbGVjdGlvbi1mb2N1cz4KIGJhciIK
IAotb24gd2luOgorb24gd2luZG93czoKIHwgPHByZT4KIHwgICAiPCNzZWxlY3Rpb24tY2FyZXQ+
CiBiYXIiCiAKLWFmdGVyIHVuZG8gb24gd2luOgorYWZ0ZXIgdW5kbyBvbiB3aW5kb3dzOgogfCA8
cHJlPgogfCAgICI8I3NlbGVjdGlvbi1hbmNob3I+Zm9vPCNzZWxlY3Rpb24tZm9jdXM+CiBiYXIi
CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3BhcmFncmFwaC1pbi1wcmVzZXJ2
ZU5ld2xpbmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5n
L3BhcmFncmFwaC1pbi1wcmVzZXJ2ZU5ld2xpbmUuaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysg
TGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9wYXJhZ3JhcGgtaW4tcHJlc2VydmVOZXdsaW5l
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQogTWFya3VwLmRlc2NyaXB0aW9uKGRlc2NyaXB0aW9uLnRleHRDb250ZW50KTsKIE1hcmt1
cC5kdW1wKCJ0ZXN0IiwgImluaXRpYWwgc3RhdGUiKTsKIHJ1blRlc3RzT24oIm1hYyIpOwotcnVu
VGVzdHNPbigid2luIik7CitydW5UZXN0c09uKCJ3aW5kb3dzIik7CiBydW5UZXN0c09uKCJ1bml4
Iik7CiA8L3NjcmlwdD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRp
bmcvc21hcnQtZWRpdGluZy1kaXNhYmxlZC13aW4uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWVkaXRpbmctZGlzYWJsZWQtd2luLmh0bWwJKHJl
dmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvc21hcnQtZWRp
dGluZy1kaXNhYmxlZC13aW4uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOCw3ICs4LDcgQEAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CiB9CiBpZiAod2luZG93LmludGVybmFscykK
LSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiAKIGZ1bmN0
aW9uIGVkaXRpbmdUZXN0KCkgewogICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiZGl2Iik7CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3doaXRlc3BhY2Ut
cHJlLTEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvZGVs
ZXRpbmcvd2hpdGVzcGFjZS1wcmUtMS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI2OTgzMCkKKysr
IExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvd2hpdGVzcGFjZS1wcmUtMS1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDEyICs0NiwxMiBAQCBhZnRlciB1bmRvIG9uIG1hYzoK
IFRoZXJlIHNob3VsZCBiZSB0aHJlZSBwYXJhZ3JhcGhzIGluIHRoaXMgZWRpdGFibGUgcmVnaW9u
LgogVGhlIGZpcnN0IG9uZSBzaG91bGQgYmUgZW1wdHkuIgogCi1vbiB3aW46CitvbiB3aW5kb3dz
OgogfCAiPCNzZWxlY3Rpb24tY2FyZXQ+CiBUaGVyZSBzaG91bGQgYmUgdGhyZWUgcGFyYWdyYXBo
cyBpbiB0aGlzIGVkaXRhYmxlIHJlZ2lvbi4KIFRoZSBmaXJzdCBvbmUgc2hvdWxkIGJlIGVtcHR5
LiIKIAotYWZ0ZXIgdW5kbyBvbiB3aW46CithZnRlciB1bmRvIG9uIHdpbmRvd3M6CiB8ICI8I3Nl
bGVjdGlvbi1hbmNob3I+WW91IHNob3VsZCBub3Qgc2VlIHRoaXMgcGFyYWdyYXBoIHVubGVzcyB0
aGUgY29tbWFuZCBoYXMgYmVlbiB1bmRvbmUuPCNzZWxlY3Rpb24tZm9jdXM+CiBUaGVyZSBzaG91
bGQgYmUgdGhyZWUgcGFyYWdyYXBocyBpbiB0aGlzIGVkaXRhYmxlIHJlZ2lvbi4KIFRoZSBmaXJz
dCBvbmUgc2hvdWxkIGJlIGVtcHR5LiIKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRp
bmcvd2hpdGVzcGFjZS1wcmUtMS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRp
bmcvZGVsZXRpbmcvd2hpdGVzcGFjZS1wcmUtMS5odG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBM
YXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3doaXRlc3BhY2UtcHJlLTEuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMjYsNiArMjYsNiBAQCBpZiAod2luZG93LnRlc3RSdW5uZXIpCiBNYXJrdXAu
ZGVzY3JpcHRpb24oZGVzY3JpcHRpb24udGV4dENvbnRlbnQpOwogTWFya3VwLmR1bXAoInRlc3Qi
LCAiaW5pdGlhbCBzdGF0ZSIpOwogcnVuVGVzdHNPbigibWFjIik7Ci1ydW5UZXN0c09uKCJ3aW4i
KTsKK3J1blRlc3RzT24oIndpbmRvd3MiKTsKIHJ1blRlc3RzT24oInVuaXgiKTsKIDwvc2NyaXB0
PgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9xdWVyeS1jb21tYW5kLXN0
YXRlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWND
b21tYW5kL3F1ZXJ5LWNvbW1hbmQtc3RhdGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNjk4MzAp
CisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3F1ZXJ5LWNvbW1hbmQtc3RhdGUt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zLDcgKzMsNyBAQCBUZXN0IHRvIG1ha2Ug
c3VyZSBxdWVyeUNvbW1hbmRTdGF0ZSByZXR1CiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAK
IAotVGVzdHMgZm9yIHdpbgorVGVzdHMgZm9yIHdpbmRvd3MKIFBBU1MgcXVlcnlDb21tYW5kU3Rh
dGUoImJvbGQiKSByZXR1cm5zIGZhbHNlIHdoZW4gc2VsZWN0aW5nIGFsbCBvZiAiaGVsbG8iCiBQ
QVNTIHF1ZXJ5Q29tbWFuZFN0YXRlKCJib2xkIikgcmV0dXJucyBmYWxzZSB3aGVuIHNlbGVjdGlu
ZyBhbGwgb2YgIjxpPmhlbGxvPC9pPiIKIFBBU1MgcXVlcnlDb21tYW5kU3RhdGUoImJvbGQiKSBy
ZXR1cm5zIHRydWUgd2hlbiBzZWxlY3RpbmcgYWxsIG9mICI8Yj5oZWxsbzwvYj4iCkluZGV4OiBM
YXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3F1ZXJ5LWNvbW1hbmQtc3RhdGUuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3F1ZXJ5LWNvbW1h
bmQtc3RhdGUuaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9l
eGVjQ29tbWFuZC9xdWVyeS1jb21tYW5kLXN0YXRlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTU1
LDY5ICs1NSw2OSBAQCBmdW5jdGlvbiBydW5UZXN0cyhlZGl0aW5nQmVoYXZpb3IpIHsKICAgICAg
ICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcihlZGl0aW5nQmVoYXZpb3Ip
OwogICAgIGRlYnVnKCdUZXN0cyBmb3IgJyArIGVkaXRpbmdCZWhhdmlvcikKIAotICAgIHRlc3RR
dWVyeUNvbW1hbmRTdGF0ZSgiYm9sZCIsICdoZWxsbycsIHNlbGVjdEFsbCwgeydtYWMnOiBmYWxz
ZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlDb21tYW5k
U3RhdGUoImJvbGQiLCAnPGk+aGVsbG88L2k+Jywgc2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAn
d2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0
ZSgiYm9sZCIsICc8Yj5oZWxsbzwvYj4nLCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dpbic6
IHRydWV9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiYm9s
ZCIsICdoZWxsbyA8Yj53b3JsZDwvYj4nLCBzZWxlY3RBbGwsIHsnbWFjJzogZmFsc2UsICd3aW4n
OiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJi
b2xkIiwgJzxiPmhlbGxvPC9iPiB3b3JsZCcsIHNlbGVjdEFsbCwgeydtYWMnOiB0cnVlLCAnd2lu
JzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgi
Ym9sZCIsICdoZWxsbyA8Yj53b3JsZDwvYj4gV2ViS2l0Jywgc2VsZWN0U2Vjb25kV29yZCwgeydt
YWMnOiB0cnVlLCAnd2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVy
eUNvbW1hbmRTdGF0ZSgiYm9sZCIsICc8Yj5oZWxsbzwvYj4gd29ybGQgPGI+V2ViS2l0PC9iPics
IHNlbGVjdFNlY29uZFdvcmQsIHsnbWFjJzogZmFsc2UsICd3aW4nOiBmYWxzZX1bZWRpdGluZ0Jl
aGF2aW9yXSk7Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJib2xkIiwgJzxpPmhlbGxvIDxi
PmhlbGxvPC9iPiBXZWJLaXQ8L2k+Jywgc2VsZWN0U2Vjb25kV29yZCwgeydtYWMnOiB0cnVlLCAn
d2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0
ZSgiYm9sZCIsICc8Yj5oZWxsbyA8aT5oZWxsbzwvaT4gV2ViS2l0PC9iPicsIHNlbGVjdFNlY29u
ZFdvcmQsIHsnbWFjJzogdHJ1ZSwgJ3dpbic6IHRydWV9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAg
IHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiYm9sZCIsICc8Yj48ZGl2PmhlbGxvIDxpPmhlbGxvPC9p
PiBXZWJLaXQ8L2Rpdj48L2I+Jywgc2VsZWN0U2Vjb25kV29yZCwgeydtYWMnOiB0cnVlLCAnd2lu
JzogdHJ1ZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJi
b2xkIiwgJzxiIHN0eWxlPSJmb250LXdlaWdodDogbm9ybWFsOyI+aGVsbG88L2I+Jywgc2VsZWN0
QWxsLCB7J21hYyc6IGZhbHNlLCAnd2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAg
IHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiYm9sZCIsICc8aSBzdHlsZT0iZm9udC13ZWlnaHQ6IGJv
bGQ7Ij5oZWxsbzwvaT4nLCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dpbic6IHRydWV9W2Vk
aXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiYm9sZCIsICc8Yj5o
ZWxsbzwvYj4gd29ybGQgPGI+V2ViS2l0PC9iPicsIHNlbGVjdEFsbCwgeydtYWMnOiB0cnVlLCAn
d2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0
ZSgiYm9sZCIsICc8Yj5oZWxsbzwvYj48Yj4gd29ybGQ8L2I+Jywgc2VsZWN0QWxsLCB7J21hYyc6
IHRydWUsICd3aW4nOiB0cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlDb21t
YW5kU3RhdGUoImJvbGQiLCAnPGRpdj48Yj5oZWxsbzwvYj48L2Rpdj48cD48Yj4gV2ViS2l0PC9i
PjwvcD4nLCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dpbic6IHRydWV9W2VkaXRpbmdCZWhh
dmlvcl0pOwotCi0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJpdGFsaWMiLCAnaGVsbG8nLCBz
ZWxlY3RBbGwsIHsnbWFjJzogZmFsc2UsICd3aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7
Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJpdGFsaWMiLCAnPGI+aGVsbG88L2I+Jywgc2Vs
ZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwot
ICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiaXRhbGljIiwgJzxpPmhlbGxvPC9pPicsIHNlbGVj
dEFsbCwgeydtYWMnOiB0cnVlLCAnd2luJzogdHJ1ZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAg
dGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJpdGFsaWMiLCAnPGk+aGVsbG88L2k+IHdvcmxkJywgc2Vs
ZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0g
ICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJpdGFsaWMiLCAnaGVsbG8gPGk+d29ybGQ8L2k+Jywg
c2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0p
OwotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiaXRhbGljIiwgJzxpPjxkaXY+aGVsbG8gd29y
bGQ8L2Rpdj48L2k+Jywgc2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW4nOiB0cnVlfVtlZGl0
aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoIml0YWxpYyIsICc8ZGl2
IHN0eWxlPSJmb250LXN0eWxlOiBpdGFsaWMiPmhlbGxvIDxzcGFuIHN0eWxlPSJmb250LXN0eWxl
OiBub3JtYWw7Ij5oZWxsbzwvc3Bhbj48L2Rpdj4nLCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwg
J3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLQotICAgIHRlc3RRdWVyeUNvbW1hbmRT
dGF0ZSgic3Vic2NyaXB0IiwgJ2hlbGxvJywgc2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2lu
JzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgi
c3Vic2NyaXB0IiwgJzxzdXA+aGVsbG88L3N1cD4nLCBzZWxlY3RBbGwsIHsnbWFjJzogZmFsc2Us
ICd3aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0
YXRlKCJzdWJzY3JpcHQiLCAnPHN1Yj5oZWxsbzwvc3ViPicsIHNlbGVjdEFsbCwgeydtYWMnOiB0
cnVlLCAnd2luJzogdHJ1ZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAgdGVzdFF1ZXJ5Q29tbWFu
ZFN0YXRlKCJzdWJzY3JpcHQiLCAnPHN1Yj5oZWxsbzwvc3ViPiB3b3JsZCcsIHNlbGVjdEFsbCwg
eydtYWMnOiB0cnVlLCAnd2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RR
dWVyeUNvbW1hbmRTdGF0ZSgic3Vic2NyaXB0IiwgJ2hlbGxvIDxzdWI+d29ybGQ8L3N1Yj4nLCBz
ZWxlY3RBbGwsIHsnbWFjJzogZmFsc2UsICd3aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7
Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdWJzY3JpcHQiLCAnaGVsbG8gPHNwYW4gc3R5
bGU9InZlcnRpY2FsLWFsaWduOiBzdWI7Ij53b3JsZDwvc3Bhbj4gV2ViS2l0Jywgc2VsZWN0U2Vj
b25kV29yZCwgeydtYWMnOiB0cnVlLCAnd2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwot
Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdXBlcnNjcmlwdCIsICdoZWxsbycsIHNlbGVj
dEFsbCwgeydtYWMnOiBmYWxzZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAg
ICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN1cGVyc2NyaXB0IiwgJzxzdWI+aGVsbG88L3N1Yj4n
LCBzZWxlY3RBbGwsIHsnbWFjJzogZmFsc2UsICd3aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9y
XSk7Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdXBlcnNjcmlwdCIsICc8c3VwPmhlbGxv
PC9zdXA+Jywgc2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW4nOiB0cnVlfVtlZGl0aW5nQmVo
YXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN1cGVyc2NyaXB0IiwgJzxzdXA+
aGVsbG88L3N1cD4gd29ybGQnLCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dpbic6IGZhbHNl
fVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN1cGVyc2Ny
aXB0IiwgJ2hlbGxvIDxzdXA+d29ybGQ8L3N1cD4nLCBzZWxlY3RBbGwsIHsnbWFjJzogZmFsc2Us
ICd3aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0
YXRlKCJzdXBlcnNjcmlwdCIsICc8c3BhbiBzdHlsZT0idmVydGljYWwtYWxpZ246IHN1cGVyOyI+
aGVsbG88L3NwYW4+PHNwYW4gc3R5bGU9InZlcnRpY2FsLWFsaWduOiBzdWI7Ij53b3JsZDwvc3Bh
bj4nLCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZp
b3JdKTsKLSAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN1cGVyc2NyaXB0IiwgJ2hlbGxvPHNw
YW4gc3R5bGU9InZlcnRpY2FsLWFsaWduOiBzdXBlcjsiPndvcmxkPC9zcGFuPicsIHNlbGVjdEFs
bCwgeydtYWMnOiBmYWxzZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLQotICAg
IHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgidW5kZXJsaW5lIiwgJ2hlbGxvJywgc2VsZWN0QWxsLCB7
J21hYyc6IGZhbHNlLCAnd2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RR
dWVyeUNvbW1hbmRTdGF0ZSgidW5kZXJsaW5lIiwgJzxzPmhlbGxvPC9zPicsIHNlbGVjdEFsbCwg
eydtYWMnOiBmYWxzZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0
UXVlcnlDb21tYW5kU3RhdGUoInVuZGVybGluZSIsICc8dT5oZWxsbzwvdT4nLCBzZWxlY3RBbGws
IHsnbWFjJzogdHJ1ZSwgJ3dpbic6IHRydWV9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RR
dWVyeUNvbW1hbmRTdGF0ZSgidW5kZXJsaW5lIiwgJzx1PmhlbGxvPC91PiB3b3JsZCcsIHNlbGVj
dEFsbCwgeydtYWMnOiB0cnVlLCAnd2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAg
IHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgidW5kZXJsaW5lIiwgJ2hlbGxvIDx1PndvcmxkPC91Pics
IHNlbGVjdEFsbCwgeydtYWMnOiBmYWxzZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3Jd
KTsKLSAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInVuZGVybGluZSIsICc8dT48ZGl2PmhlbGxv
IHdvcmxkPC9kaXY+PC91PicsIHNlbGVjdEFsbCwgeydtYWMnOiB0cnVlLCAnd2luJzogdHJ1ZX1b
ZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJ1bmRlcmxpbmUi
LCAnPHU+PHM+PGRpdj5oZWxsbyB3b3JsZCBXZWJLaXQ8L2Rpdj48L3M+PC91PicsIHNlbGVjdFNl
Y29uZFdvcmQsIHsnbWFjJzogdHJ1ZSwgJ3dpbic6IHRydWV9W2VkaXRpbmdCZWhhdmlvcl0pOwot
ICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgidW5kZXJsaW5lIiwgJzxzPjx1PmhlbGxvPC91PiB3
b3JsZDwvcz4gV2ViS2l0Jywgc2VsZWN0U2Vjb25kV29yZCwgeydtYWMnOiBmYWxzZSwgJ3dpbic6
IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInVu
ZGVybGluZSIsICc8dT48cz5oZWxsbzwvcz4gd29ybGQ8L3U+IFdlYktpdCcsIHNlbGVjdFNlY29u
ZFdvcmQsIHsnbWFjJzogdHJ1ZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAg
ICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInVuZGVybGluZSIsICc8cz5oZWxsbyA8dT53b3JsZDwv
cz4gV2ViS2l0PC91PicsIHNlbGVjdFNlY29uZFdvcmQsIHsnbWFjJzogdHJ1ZSwgJ3dpbic6IHRy
dWV9W2VkaXRpbmdCZWhhdmlvcl0pOwotCi0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdHJp
a2VUaHJvdWdoIiwgJ2hlbGxvJywgc2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2luJzogZmFs
c2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3RyaWtl
VGhyb3VnaCIsICc8dT5oZWxsbzwvdT4nLCBzZWxlY3RBbGwsIHsnbWFjJzogZmFsc2UsICd3aW4n
OiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJz
dHJpa2VUaHJvdWdoIiwgJzxzPmhlbGxvPC9zPicsIHNlbGVjdEFsbCwgeydtYWMnOiB0cnVlLCAn
d2luJzogdHJ1ZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRl
KCJzdHJpa2VUaHJvdWdoIiwgJzxzPmhlbGxvPC9zPiB3b3JsZCcsIHNlbGVjdEFsbCwgeydtYWMn
OiB0cnVlLCAnd2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVyeUNv
bW1hbmRTdGF0ZSgic3RyaWtlVGhyb3VnaCIsICdoZWxsbyA8cz53b3JsZDwvcz4nLCBzZWxlY3RB
bGwsIHsnbWFjJzogZmFsc2UsICd3aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAg
dGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdHJpa2VUaHJvdWdoIiwgJzxzPjxkaXY+aGVsbG8gd29y
bGQ8L2Rpdj48L3M+Jywgc2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW4nOiB0cnVlfVtlZGl0
aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN0cmlrZVRocm91Z2gi
LCAnPHM+PHU+PGRpdj5oZWxsbyB3b3JsZCBXZWJLaXQ8L2Rpdj48L3U+PC9zPicsIHNlbGVjdFNl
Y29uZFdvcmQsIHsnbWFjJzogdHJ1ZSwgJ3dpbic6IHRydWV9W2VkaXRpbmdCZWhhdmlvcl0pOwot
ICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3RyaWtlVGhyb3VnaCIsICc8dT48cz5oZWxsbzwv
cz4gd29ybGQ8L3U+IFdlYktpdCcsIHNlbGVjdFNlY29uZFdvcmQsIHsnbWFjJzogZmFsc2UsICd3
aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRl
KCJzdHJpa2VUaHJvdWdoIiwgJ2hlbGxvIDxzPndvcmxkIFdlYktpdDwvcz4nLCBzZWxlY3RTZWNv
bmRXb3JkLCB7J21hYyc6IHRydWUsICd3aW4nOiB0cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAg
ICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN0cmlrZVRocm91Z2giLCAnaGVsbG8gPHM+d29ybGQg
V2ViS2l0PC9zPicsIHNlbGVjdEZpcnN0VHdvV29yZHMsIHsnbWFjJzogZmFsc2UsICd3aW4nOiB0
cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoImJvbGQi
LCAnaGVsbG8nLCBzZWxlY3RBbGwsIHsnbWFjJzogZmFsc2UsICd3aW5kb3dzJzogZmFsc2V9W2Vk
aXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiYm9sZCIsICc8aT5o
ZWxsbzwvaT4nLCBzZWxlY3RBbGwsIHsnbWFjJzogZmFsc2UsICd3aW5kb3dzJzogZmFsc2V9W2Vk
aXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiYm9sZCIsICc8Yj5o
ZWxsbzwvYj4nLCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dpbmRvd3MnOiB0cnVlfVtlZGl0
aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoImJvbGQiLCAnaGVsbG8g
PGI+d29ybGQ8L2I+Jywgc2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2luZG93cyc6IGZhbHNl
fVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoImJvbGQiLCAn
PGI+aGVsbG88L2I+IHdvcmxkJywgc2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW5kb3dzJzog
ZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiYm9s
ZCIsICdoZWxsbyA8Yj53b3JsZDwvYj4gV2ViS2l0Jywgc2VsZWN0U2Vjb25kV29yZCwgeydtYWMn
OiB0cnVlLCAnd2luZG93cyc6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVl
cnlDb21tYW5kU3RhdGUoImJvbGQiLCAnPGI+aGVsbG88L2I+IHdvcmxkIDxiPldlYktpdDwvYj4n
LCBzZWxlY3RTZWNvbmRXb3JkLCB7J21hYyc6IGZhbHNlLCAnd2luZG93cyc6IGZhbHNlfVtlZGl0
aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoImJvbGQiLCAnPGk+aGVs
bG8gPGI+aGVsbG88L2I+IFdlYktpdDwvaT4nLCBzZWxlY3RTZWNvbmRXb3JkLCB7J21hYyc6IHRy
dWUsICd3aW5kb3dzJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNv
bW1hbmRTdGF0ZSgiYm9sZCIsICc8Yj5oZWxsbyA8aT5oZWxsbzwvaT4gV2ViS2l0PC9iPicsIHNl
bGVjdFNlY29uZFdvcmQsIHsnbWFjJzogdHJ1ZSwgJ3dpbmRvd3MnOiB0cnVlfVtlZGl0aW5nQmVo
YXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoImJvbGQiLCAnPGI+PGRpdj5oZWxs
byA8aT5oZWxsbzwvaT4gV2ViS2l0PC9kaXY+PC9iPicsIHNlbGVjdFNlY29uZFdvcmQsIHsnbWFj
JzogdHJ1ZSwgJ3dpbmRvd3MnOiB0cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVl
cnlDb21tYW5kU3RhdGUoImJvbGQiLCAnPGIgc3R5bGU9ImZvbnQtd2VpZ2h0OiBub3JtYWw7Ij5o
ZWxsbzwvYj4nLCBzZWxlY3RBbGwsIHsnbWFjJzogZmFsc2UsICd3aW5kb3dzJzogZmFsc2V9W2Vk
aXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiYm9sZCIsICc8aSBz
dHlsZT0iZm9udC13ZWlnaHQ6IGJvbGQ7Ij5oZWxsbzwvaT4nLCBzZWxlY3RBbGwsIHsnbWFjJzog
dHJ1ZSwgJ3dpbmRvd3MnOiB0cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlD
b21tYW5kU3RhdGUoImJvbGQiLCAnPGI+aGVsbG88L2I+IHdvcmxkIDxiPldlYktpdDwvYj4nLCBz
ZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dpbmRvd3MnOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9y
XSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJib2xkIiwgJzxiPmhlbGxvPC9iPjxiPiB3
b3JsZDwvYj4nLCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dpbmRvd3MnOiB0cnVlfVtlZGl0
aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoImJvbGQiLCAnPGRpdj48
Yj5oZWxsbzwvYj48L2Rpdj48cD48Yj4gV2ViS2l0PC9iPjwvcD4nLCBzZWxlY3RBbGwsIHsnbWFj
JzogdHJ1ZSwgJ3dpbmRvd3MnOiB0cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKworICAgIHRlc3RR
dWVyeUNvbW1hbmRTdGF0ZSgiaXRhbGljIiwgJ2hlbGxvJywgc2VsZWN0QWxsLCB7J21hYyc6IGZh
bHNlLCAnd2luZG93cyc6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlD
b21tYW5kU3RhdGUoIml0YWxpYyIsICc8Yj5oZWxsbzwvYj4nLCBzZWxlY3RBbGwsIHsnbWFjJzog
ZmFsc2UsICd3aW5kb3dzJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVy
eUNvbW1hbmRTdGF0ZSgiaXRhbGljIiwgJzxpPmhlbGxvPC9pPicsIHNlbGVjdEFsbCwgeydtYWMn
OiB0cnVlLCAnd2luZG93cyc6IHRydWV9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVy
eUNvbW1hbmRTdGF0ZSgiaXRhbGljIiwgJzxpPmhlbGxvPC9pPiB3b3JsZCcsIHNlbGVjdEFsbCwg
eydtYWMnOiB0cnVlLCAnd2luZG93cyc6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0
ZXN0UXVlcnlDb21tYW5kU3RhdGUoIml0YWxpYyIsICdoZWxsbyA8aT53b3JsZDwvaT4nLCBzZWxl
Y3RBbGwsIHsnbWFjJzogZmFsc2UsICd3aW5kb3dzJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0p
OworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiaXRhbGljIiwgJzxpPjxkaXY+aGVsbG8gd29y
bGQ8L2Rpdj48L2k+Jywgc2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW5kb3dzJzogdHJ1ZX1b
ZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJpdGFsaWMiLCAn
PGRpdiBzdHlsZT0iZm9udC1zdHlsZTogaXRhbGljIj5oZWxsbyA8c3BhbiBzdHlsZT0iZm9udC1z
dHlsZTogbm9ybWFsOyI+aGVsbG88L3NwYW4+PC9kaXY+Jywgc2VsZWN0QWxsLCB7J21hYyc6IHRy
dWUsICd3aW5kb3dzJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOworCisgICAgdGVzdFF1ZXJ5
Q29tbWFuZFN0YXRlKCJzdWJzY3JpcHQiLCAnaGVsbG8nLCBzZWxlY3RBbGwsIHsnbWFjJzogZmFs
c2UsICd3aW5kb3dzJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNv
bW1hbmRTdGF0ZSgic3Vic2NyaXB0IiwgJzxzdXA+aGVsbG88L3N1cD4nLCBzZWxlY3RBbGwsIHsn
bWFjJzogZmFsc2UsICd3aW5kb3dzJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRl
c3RRdWVyeUNvbW1hbmRTdGF0ZSgic3Vic2NyaXB0IiwgJzxzdWI+aGVsbG88L3N1Yj4nLCBzZWxl
Y3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dpbmRvd3MnOiB0cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsK
KyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN1YnNjcmlwdCIsICc8c3ViPmhlbGxvPC9zdWI+
IHdvcmxkJywgc2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW5kb3dzJzogZmFsc2V9W2VkaXRp
bmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3Vic2NyaXB0IiwgJ2hl
bGxvIDxzdWI+d29ybGQ8L3N1Yj4nLCBzZWxlY3RBbGwsIHsnbWFjJzogZmFsc2UsICd3aW5kb3dz
JzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgi
c3Vic2NyaXB0IiwgJ2hlbGxvIDxzcGFuIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogc3ViOyI+d29y
bGQ8L3NwYW4+IFdlYktpdCcsIHNlbGVjdFNlY29uZFdvcmQsIHsnbWFjJzogdHJ1ZSwgJ3dpbmRv
d3MnOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3Rh
dGUoInN1cGVyc2NyaXB0IiwgJ2hlbGxvJywgc2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2lu
ZG93cyc6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3Rh
dGUoInN1cGVyc2NyaXB0IiwgJzxzdWI+aGVsbG88L3N1Yj4nLCBzZWxlY3RBbGwsIHsnbWFjJzog
ZmFsc2UsICd3aW5kb3dzJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVy
eUNvbW1hbmRTdGF0ZSgic3VwZXJzY3JpcHQiLCAnPHN1cD5oZWxsbzwvc3VwPicsIHNlbGVjdEFs
bCwgeydtYWMnOiB0cnVlLCAnd2luZG93cyc6IHRydWV9W2VkaXRpbmdCZWhhdmlvcl0pOworICAg
IHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3VwZXJzY3JpcHQiLCAnPHN1cD5oZWxsbzwvc3VwPiB3
b3JsZCcsIHNlbGVjdEFsbCwgeydtYWMnOiB0cnVlLCAnd2luZG93cyc6IGZhbHNlfVtlZGl0aW5n
QmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN1cGVyc2NyaXB0IiwgJ2hl
bGxvIDxzdXA+d29ybGQ8L3N1cD4nLCBzZWxlY3RBbGwsIHsnbWFjJzogZmFsc2UsICd3aW5kb3dz
JzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgi
c3VwZXJzY3JpcHQiLCAnPHNwYW4gc3R5bGU9InZlcnRpY2FsLWFsaWduOiBzdXBlcjsiPmhlbGxv
PC9zcGFuPjxzcGFuIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogc3ViOyI+d29ybGQ8L3NwYW4+Jywg
c2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW5kb3dzJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlv
cl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3VwZXJzY3JpcHQiLCAnaGVsbG88c3Bh
biBzdHlsZT0idmVydGljYWwtYWxpZ246IHN1cGVyOyI+d29ybGQ8L3NwYW4+Jywgc2VsZWN0QWxs
LCB7J21hYyc6IGZhbHNlLCAnd2luZG93cyc6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKwor
ICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgidW5kZXJsaW5lIiwgJ2hlbGxvJywgc2VsZWN0QWxs
LCB7J21hYyc6IGZhbHNlLCAnd2luZG93cyc6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAg
ICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInVuZGVybGluZSIsICc8cz5oZWxsbzwvcz4nLCBzZWxl
Y3RBbGwsIHsnbWFjJzogZmFsc2UsICd3aW5kb3dzJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0p
OworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgidW5kZXJsaW5lIiwgJzx1PmhlbGxvPC91Pics
IHNlbGVjdEFsbCwgeydtYWMnOiB0cnVlLCAnd2luZG93cyc6IHRydWV9W2VkaXRpbmdCZWhhdmlv
cl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgidW5kZXJsaW5lIiwgJzx1PmhlbGxvPC91
PiB3b3JsZCcsIHNlbGVjdEFsbCwgeydtYWMnOiB0cnVlLCAnd2luZG93cyc6IGZhbHNlfVtlZGl0
aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInVuZGVybGluZSIsICdo
ZWxsbyA8dT53b3JsZDwvdT4nLCBzZWxlY3RBbGwsIHsnbWFjJzogZmFsc2UsICd3aW5kb3dzJzog
ZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgidW5k
ZXJsaW5lIiwgJzx1PjxkaXY+aGVsbG8gd29ybGQ8L2Rpdj48L3U+Jywgc2VsZWN0QWxsLCB7J21h
Yyc6IHRydWUsICd3aW5kb3dzJzogdHJ1ZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1
ZXJ5Q29tbWFuZFN0YXRlKCJ1bmRlcmxpbmUiLCAnPHU+PHM+PGRpdj5oZWxsbyB3b3JsZCBXZWJL
aXQ8L2Rpdj48L3M+PC91PicsIHNlbGVjdFNlY29uZFdvcmQsIHsnbWFjJzogdHJ1ZSwgJ3dpbmRv
d3MnOiB0cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUo
InVuZGVybGluZSIsICc8cz48dT5oZWxsbzwvdT4gd29ybGQ8L3M+IFdlYktpdCcsIHNlbGVjdFNl
Y29uZFdvcmQsIHsnbWFjJzogZmFsc2UsICd3aW5kb3dzJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlv
cl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgidW5kZXJsaW5lIiwgJzx1PjxzPmhlbGxv
PC9zPiB3b3JsZDwvdT4gV2ViS2l0Jywgc2VsZWN0U2Vjb25kV29yZCwgeydtYWMnOiB0cnVlLCAn
d2luZG93cyc6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5k
U3RhdGUoInVuZGVybGluZSIsICc8cz5oZWxsbyA8dT53b3JsZDwvcz4gV2ViS2l0PC91PicsIHNl
bGVjdFNlY29uZFdvcmQsIHsnbWFjJzogdHJ1ZSwgJ3dpbmRvd3MnOiB0cnVlfVtlZGl0aW5nQmVo
YXZpb3JdKTsKKworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3RyaWtlVGhyb3VnaCIsICdo
ZWxsbycsIHNlbGVjdEFsbCwgeydtYWMnOiBmYWxzZSwgJ3dpbmRvd3MnOiBmYWxzZX1bZWRpdGlu
Z0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdHJpa2VUaHJvdWdoIiwg
Jzx1PmhlbGxvPC91PicsIHNlbGVjdEFsbCwgeydtYWMnOiBmYWxzZSwgJ3dpbmRvd3MnOiBmYWxz
ZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdHJpa2VU
aHJvdWdoIiwgJzxzPmhlbGxvPC9zPicsIHNlbGVjdEFsbCwgeydtYWMnOiB0cnVlLCAnd2luZG93
cyc6IHRydWV9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgi
c3RyaWtlVGhyb3VnaCIsICc8cz5oZWxsbzwvcz4gd29ybGQnLCBzZWxlY3RBbGwsIHsnbWFjJzog
dHJ1ZSwgJ3dpbmRvd3MnOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5
Q29tbWFuZFN0YXRlKCJzdHJpa2VUaHJvdWdoIiwgJ2hlbGxvIDxzPndvcmxkPC9zPicsIHNlbGVj
dEFsbCwgeydtYWMnOiBmYWxzZSwgJ3dpbmRvd3MnOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7
CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdHJpa2VUaHJvdWdoIiwgJzxzPjxkaXY+aGVs
bG8gd29ybGQ8L2Rpdj48L3M+Jywgc2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW5kb3dzJzog
dHJ1ZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdHJp
a2VUaHJvdWdoIiwgJzxzPjx1PjxkaXY+aGVsbG8gd29ybGQgV2ViS2l0PC9kaXY+PC91Pjwvcz4n
LCBzZWxlY3RTZWNvbmRXb3JkLCB7J21hYyc6IHRydWUsICd3aW5kb3dzJzogdHJ1ZX1bZWRpdGlu
Z0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdHJpa2VUaHJvdWdoIiwg
Jzx1PjxzPmhlbGxvPC9zPiB3b3JsZDwvdT4gV2ViS2l0Jywgc2VsZWN0U2Vjb25kV29yZCwgeydt
YWMnOiBmYWxzZSwgJ3dpbmRvd3MnOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVz
dFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdHJpa2VUaHJvdWdoIiwgJ2hlbGxvIDxzPndvcmxkIFdlYktp
dDwvcz4nLCBzZWxlY3RTZWNvbmRXb3JkLCB7J21hYyc6IHRydWUsICd3aW5kb3dzJzogdHJ1ZX1b
ZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdHJpa2VUaHJv
dWdoIiwgJ2hlbGxvIDxzPndvcmxkIFdlYktpdDwvcz4nLCBzZWxlY3RGaXJzdFR3b1dvcmRzLCB7
J21hYyc6IGZhbHNlLCAnd2luZG93cyc6IHRydWV9W2VkaXRpbmdCZWhhdmlvcl0pOwogfQogCi1y
dW5UZXN0cygnd2luJyk7CitydW5UZXN0cygnd2luZG93cycpOwogZGVidWcoJycpCiBydW5UZXN0
cygnbWFjJyk7CiAKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvcXVlcnkt
dGV4dC1hbGlnbm1lbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Vk
aXRpbmcvZXhlY0NvbW1hbmQvcXVlcnktdGV4dC1hbGlnbm1lbnQtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3F1ZXJ5LXRl
eHQtYWxpZ25tZW50LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBA
QCBQQVNTIHF1ZXJ5Q29tbWFuZCgnZm9ybWF0JykgcmV0dXJucyAiY2VuCiBQQVNTIHF1ZXJ5Q29t
bWFuZCgnZm9ybWF0JykgcmV0dXJucyAibGVmdCIgd2hlbiBzZWxlY3RpbmcgZmlyc3QgcG9zaXRp
b24gb2YgIjxkaXYgYWxpZ249ImxlZnQiPmhlbGxvPC9kaXY+IgogUEFTUyBxdWVyeUNvbW1hbmQo
J2Zvcm1hdCcpIHJldHVybnMgInJpZ2h0IiB3aGVuIHNlbGVjdGluZyBmaXJzdCBwb3NpdGlvbiBv
ZiAiPGRpdiBhbGlnbj0icmlnaHQiPmhlbGxvPC9kaXY+IgogCi1UZXN0cyBmb3Igd2luCitUZXN0
cyBmb3Igd2luZG93cwogUEFTUyBxdWVyeUNvbW1hbmQoJ2Zvcm1hdCcpIHJldHVybnMgImxlZnQi
IHdoZW4gc2VsZWN0aW5nIG1pZGRsZSBvZiAiPHA+aGVsbG88L3A+PHA+d29ybGQ8L3A+IgogUEFT
UyBxdWVyeUNvbW1hbmQoJ2Zvcm1hdCcpIHJldHVybnMgIiIgd2hlbiBzZWxlY3RpbmcgbWlkZGxl
IG9mICI8cCBhbGlnbj0icmlnaHQiPmhlbGxvPC9wPjxwPndvcmxkPC9wPiIKIFBBU1MgcXVlcnlD
b21tYW5kKCdmb3JtYXQnKSByZXR1cm5zICJsZWZ0IiB3aGVuIHNlbGVjdGluZyBtaWRkbGUgb2Yg
IjxwPmhlbGxvPC9wPjxwIGFsaWduPSJsZWZ0Ij53b3JsZDwvcD4iCkluZGV4OiBMYXlvdXRUZXN0
cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3F1ZXJ5LXRleHQtYWxpZ25tZW50Lmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9xdWVyeS10ZXh0LWFsaWdubWVu
dC5odG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21t
YW5kL3F1ZXJ5LXRleHQtYWxpZ25tZW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTk2LDIxICs5
NiwyMSBAQCBmdW5jdGlvbiBydW5SYW5nZVRlc3RzKGVkaXRpbmdCZWhhdmlvcikKICAgICBkZWJ1
ZygnVGVzdHMgZm9yICcgKyBlZGl0aW5nQmVoYXZpb3IpOwogCiAgICAgcXVlcnlUZXh0QWxpZ25t
ZW50KHNlbGVjdE1pZGRsZU9mSGVsbG9Xb3JsZCwgJzxwPmhlbGxvPC9wPjxwPndvcmxkPC9wPics
ICdsZWZ0Jyk7Ci0gICAgcXVlcnlUZXh0QWxpZ25tZW50KHNlbGVjdE1pZGRsZU9mSGVsbG9Xb3Js
ZCwgJzxwIGFsaWduPSJyaWdodCI+aGVsbG88L3A+PHA+d29ybGQ8L3A+JywgeydtYWMnOiAncmln
aHQnLCAnd2luJzogJyd9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHF1ZXJ5VGV4dEFsaWdubWVu
dChzZWxlY3RNaWRkbGVPZkhlbGxvV29ybGQsICc8cCBhbGlnbj0icmlnaHQiPmhlbGxvPC9wPjxw
PndvcmxkPC9wPicsIHsnbWFjJzogJ3JpZ2h0JywgJ3dpbmRvd3MnOiAnJ31bZWRpdGluZ0JlaGF2
aW9yXSk7CiAgICAgcXVlcnlUZXh0QWxpZ25tZW50KHNlbGVjdE1pZGRsZU9mSGVsbG9Xb3JsZCwg
JzxwPmhlbGxvPC9wPjxwIGFsaWduPSJsZWZ0Ij53b3JsZDwvcD4nLCAnbGVmdCcpOwotICAgIHF1
ZXJ5VGV4dEFsaWdubWVudChzZWxlY3RNaWRkbGVPZkhlbGxvV29ybGQsICc8cCBhbGlnbj0ibGVm
dCI+aGVsbG88L3A+PHAgYWxpZ249InJpZ2h0Ij53b3JsZDwvcD4nLCB7J21hYyc6ICdsZWZ0Jywg
J3dpbic6ICcnfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICBxdWVyeVRleHRBbGlnbm1lbnQoc2Vs
ZWN0TWlkZGxlT2ZIZWxsb1dvcmxkLCAnPHAgYWxpZ249ImxlZnQiPmhlbGxvPC9wPjxwIGFsaWdu
PSJyaWdodCI+d29ybGQ8L3A+JywgeydtYWMnOiAnbGVmdCcsICd3aW5kb3dzJzogJyd9W2VkaXRp
bmdCZWhhdmlvcl0pOwogICAgIHF1ZXJ5VGV4dEFsaWdubWVudChzZWxlY3RNaWRkbGVPZkhlbGxv
V29ybGQsICc8cCBhbGlnbj0iY2VudGVyIj5oZWxsbzwvcD48cCBhbGlnbj0iY2VudGVyIj53b3Js
ZDwvcD4nLCAnY2VudGVyJyk7CiAgICAgcXVlcnlUZXh0QWxpZ25tZW50KHNlbGVjdE1pZGRsZU9m
SGVsbG9Xb3JsZCwgJzxwIGFsaWduPSJqdXN0aWZ5Ij5oZWxsbzwvcD48cCBhbGlnbj0ianVzdGlm
eSI+d29ybGQ8L3A+JywgJ2Z1bGwnKTsKICAgICBxdWVyeVRleHRBbGlnbm1lbnQoc2VsZWN0TWlk
ZGxlT2ZIZWxsb1dvcmxkLCAnPHAgYWxpZ249ImxlZnQiPmhlbGxvPC9wPjxwIGFsaWduPSJsZWZ0
Ij53b3JsZDwvcD4nLCAnbGVmdCcpOwogICAgIHF1ZXJ5VGV4dEFsaWdubWVudChzZWxlY3RNaWRk
bGVPZkhlbGxvV29ybGQsICc8cCBhbGlnbj0icmlnaHQiPmhlbGxvPC9wPjxwIGFsaWduPSJyaWdo
dCI+d29ybGQ8L3A+JywgJ3JpZ2h0Jyk7Ci0gICAgcXVlcnlUZXh0QWxpZ25tZW50KHNlbGVjdE1p
ZGRsZU9mSGVsbG9Xb3JsZCwgJzxkaXYgYWxpZ249InJpZ2h0Ij5oZWxsbzxwIGFsaWduPSJsZWZ0
Ij53b3JsZDwvcD48L2Rpdj4nLCB7J21hYyc6ICdyaWdodCcsICd3aW4nOiAnJ31bZWRpdGluZ0Jl
aGF2aW9yXSk7Ci0gICAgcXVlcnlUZXh0QWxpZ25tZW50KHNlbGVjdE1pZGRsZU9mSGVsbG9Xb3Js
ZCwgJzxkaXYgYWxpZ249ImxlZnQiPjxwIGFsaWduPSJjZW50ZXIiPndvcmxkPC9wPmhlbGxvPC9k
aXY+JywgeydtYWMnOiAnY2VudGVyJywgJ3dpbic6ICcnfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAg
ICBxdWVyeVRleHRBbGlnbm1lbnQoc2VsZWN0TWlkZGxlT2ZIZWxsb1dvcmxkLCAnPHAgYWxpZ249
ImxlZnQiPmhlbGxvPC9wPjxwPnc8L3A+PHAgYWxpZ249ImxlZnQiPm9ybGQ8L3A+JywgeydtYWMn
OiAnbGVmdCcsICd3aW4nOiAnbGVmdCd9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHF1ZXJ5VGV4
dEFsaWdubWVudChzZWxlY3RNaWRkbGVPZkhlbGxvV29ybGQsICc8cCBhbGlnbj0ianVzdGlmeSI+
aGVsbG88L3A+PHA+dzwvcD48cCBhbGlnbj0iY2VudGVyIj5vcmxkPC9wPicsIHsnbWFjJzogJ2Z1
bGwnLCAnd2luJzogJyd9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHF1ZXJ5VGV4dEFsaWdubWVu
dChzZWxlY3RNaWRkbGVPZkhlbGxvV29ybGQsICc8ZGl2IGFsaWduPSJyaWdodCI+aGVsbG88cCBh
bGlnbj0ibGVmdCI+d29ybGQ8L3A+PC9kaXY+JywgeydtYWMnOiAncmlnaHQnLCAnd2luZG93cyc6
ICcnfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICBxdWVyeVRleHRBbGlnbm1lbnQoc2VsZWN0TWlk
ZGxlT2ZIZWxsb1dvcmxkLCAnPGRpdiBhbGlnbj0ibGVmdCI+PHAgYWxpZ249ImNlbnRlciI+d29y
bGQ8L3A+aGVsbG88L2Rpdj4nLCB7J21hYyc6ICdjZW50ZXInLCAnd2luZG93cyc6ICcnfVtlZGl0
aW5nQmVoYXZpb3JdKTsKKyAgICBxdWVyeVRleHRBbGlnbm1lbnQoc2VsZWN0TWlkZGxlT2ZIZWxs
b1dvcmxkLCAnPHAgYWxpZ249ImxlZnQiPmhlbGxvPC9wPjxwPnc8L3A+PHAgYWxpZ249ImxlZnQi
Pm9ybGQ8L3A+JywgeydtYWMnOiAnbGVmdCcsICd3aW5kb3dzJzogJ2xlZnQnfVtlZGl0aW5nQmVo
YXZpb3JdKTsKKyAgICBxdWVyeVRleHRBbGlnbm1lbnQoc2VsZWN0TWlkZGxlT2ZIZWxsb1dvcmxk
LCAnPHAgYWxpZ249Imp1c3RpZnkiPmhlbGxvPC9wPjxwPnc8L3A+PHAgYWxpZ249ImNlbnRlciI+
b3JsZDwvcD4nLCB7J21hYyc6ICdmdWxsJywgJ3dpbmRvd3MnOiAnJ31bZWRpdGluZ0JlaGF2aW9y
XSk7CiB9CiAKIGRlYnVnKCcnKTsKLXJ1blJhbmdlVGVzdHMoJ3dpbicpOworcnVuUmFuZ2VUZXN0
cygnd2luZG93cycpOwogZGVidWcoJycpOwogcnVuUmFuZ2VUZXN0cygnbWFjJyk7CiAKSW5kZXg6
IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvcmVtb3ZlLWZvcm1hdC1tdWx0aXBsZS1l
bGVtZW50cy13aW4uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWND
b21tYW5kL3JlbW92ZS1mb3JtYXQtbXVsdGlwbGUtZWxlbWVudHMtd2luLmh0bWwJKHJldmlzaW9u
IDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvcmVtb3ZlLWZvcm1h
dC1tdWx0aXBsZS1lbGVtZW50cy13aW4uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTMsNyArMTMs
NyBAQCB2YXIgdGVzdENvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lCiB0ZXN0Q29udGFp
bmVyLmNvbnRlbnRFZGl0YWJsZSA9IHRydWU7CiBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRl
c3RDb250YWluZXIpOwogaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldHRp
bmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luJyk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dEVkaXRpbmdCZWhhdmlvcignd2luZG93cycpOwogCiBmdW5jdGlvbiB0ZXN0UmVtb3ZlRm9ybWF0
KGluaXRpYWxDb250ZW50cywgc2VsZWN0b3IsIGV4cGVjdGVkKQogewpJbmRleDogTGF5b3V0VGVz
dHMvZWRpdGluZy9leGVjQ29tbWFuZC90b2dnbGUtY29tcG91bmQtc3R5bGVzLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3RvZ2dsZS1j
b21wb3VuZC1zdHlsZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRU
ZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3RvZ2dsZS1jb21wb3VuZC1zdHlsZXMtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xNyw3ICsxNyw3IEBAIFBBU1Mgb25lIGl0YWxpYyBjb21t
YW5kIGNvbnZlcnRlZCAiPHNwYW4KIFBBU1Mgb25lIGl0YWxpYyBjb21tYW5kIGNvbnZlcnRlZCAi
PHA+PGk+aGVsbG88L2k+PHNwYW4gc3R5bGU9J2ZvbnQtc3R5bGU6aXRhbGljOyc+d29ybGQ8L3Nw
YW4+PC9wPiIgdG8gIjxwPmhlbGxvd29ybGQ8L3A+CiBQQVNTIG9uZSBpdGFsaWMgY29tbWFuZCBj
b252ZXJ0ZWQgIjxzPjxiPmhlbGxvPGk+IHdvcmxkPC9pPjwvYj48L3M+IiB0byAiPHM+PGI+PGk+
aGVsbG8gd29ybGQ8L2k+PC9iPjwvcz4KIAotUGxhdGZvcm06IHdpbgorUGxhdGZvcm06IHdpbmRv
d3MKIFBBU1Mgb25lIGJvbGQgY29tbWFuZCBjb252ZXJ0ZWQgIjx1PjxiPmhlbGxvPC9iPiB3b3Js
ZDwvdT4iIHRvICI8dT48Yj5oZWxsbyB3b3JsZDwvYj48L3U+CiBQQVNTIG9uZSBib2xkIGNvbW1h
bmQgY29udmVydGVkICI8Yj5oZWxsbyA8L2I+d29ybGQiIHRvICI8Yj5oZWxsbyB3b3JsZDwvYj4K
IFBBU1Mgb25lIGJvbGQgY29tbWFuZCBjb252ZXJ0ZWQgIjx1PjxiPmhlbGxvIDwvYj48L3U+d29y
bGQiIHRvICI8Yj48dT5oZWxsbyA8L3U+d29ybGQ8L2I+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0
aW5nL2V4ZWNDb21tYW5kL3RvZ2dsZS1jb21wb3VuZC1zdHlsZXMuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3RvZ2dsZS1jb21wb3VuZC1zdHlsZXMu
aHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFu
ZC90b2dnbGUtY29tcG91bmQtc3R5bGVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1
LDcgQEAgZnVuY3Rpb24gdGVzdFNpbmdsZVRvZ2dsZSh0b2dnbGVDb21tYW5kLAogICAgICAgICB0
ZXN0RmFpbGVkKGFjdGlvbiArICciLCBleHBlY3RlZCAiJyArIGV4cGVjdGVkQ29udGVudHMgKyAn
IicpOwogfQogCi1wbGF0Zm9ybXMgPSBbJ21hYycsICd3aW4nLCAndW5peCddOworcGxhdGZvcm1z
ID0gWydtYWMnLCAnd2luZG93cycsICd1bml4J107CiAKIGZvciAodmFyIGkgPSAwOyBpIDwgcGxh
dGZvcm1zLmxlbmd0aDsgaSsrKSB7CiAgICAgcGxhdGZvcm0gPSBwbGF0Zm9ybXNbaV07CkluZGV4
OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3RvZ2dsZS1saW5rLXdpbi5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvdG9nZ2xlLWxpbmst
d2luLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0Nv
bW1hbmQvdG9nZ2xlLWxpbmstd2luLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEzLDcgKzEzLDcg
QEAgdmFyIHRlc3RDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZQogdGVzdENvbnRhaW5l
ci5jb250ZW50RWRpdGFibGUgPSB0cnVlOwogZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZXN0
Q29udGFpbmVyKTsKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXR0aW5n
cy5zZXRFZGl0aW5nQmVoYXZpb3IoIndpbiIpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRF
ZGl0aW5nQmVoYXZpb3IoIndpbmRvd3MiKTsKIAogZnVuY3Rpb24gdGVzdFNpbmdsZVRvZ2dsZSh0
b2dnbGVDb21tYW5kLCBpbml0aWFsQ29udGVudHMsIHNlbGVjdG9yLCBleHBlY3RlZENvbnRlbnRz
KQogewpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC90b2dnbGUtdW5saW5r
LXdpbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQv
dG9nZ2xlLXVubGluay13aW4uaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMv
ZWRpdGluZy9leGVjQ29tbWFuZC90b2dnbGUtdW5saW5rLXdpbi5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC01MSw3ICs1MSw3IEBAIGZ1bmN0aW9uIHNlbGVjdExhc3RXb3JkKGNvbnRhaW5lcikgewog
fQogCiBpZiAod2luZG93LmludGVybmFscykKLSAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0
aW5nQmVoYXZpb3IoJ3dpbicpOworICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhh
dmlvcignd2luZG93cycpOwogCiB0ZXN0U2luZ2xlVG9nZ2xlKCJ1bmxpbmsiLCAnaGVsbG8gPGI+
d29ybGQ8L2I+Jywgc2VsZWN0QWxsLCAnaGVsbG8gPGI+d29ybGQ8L2I+Jyk7CiB0ZXN0U2luZ2xl
VG9nZ2xlKCJ1bmxpbmsiLCAnPGEgaHJlZj0iaHR0cDovL3dlYmtpdC5vcmcvIj48dT5oZWxsbyB3
b3JsZDwvdT48L2E+Jywgc2VsZWN0QWxsLCAnPHU+aGVsbG8gd29ybGQ8L3U+Jyk7CkluZGV4OiBM
YXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi81MTk1MTY2LTEuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi81MTk1MTY2LTEuaHRtbAkocmV2aXNpb24g
MjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vNTE5NTE2Ni0xLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAgZnVuY3Rpb24gcnVuVGVzdChwbGF0Zm9y
bSwgZXhwZWN0ZWRUZXh0KQogaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5h
bHMpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKQogICAgIHJ1blRlc3QoJ21hYycsICdz
aG91bGQgYmUgcycpOwotICAgIHJ1blRlc3QoJ3dpbicsICdob3VsZCBiZSAnKTsKKyAgICBydW5U
ZXN0KCd3aW5kb3dzJywgJ2hvdWxkIGJlICcpOwogfSBlbHNlIHsKICAgICBsb2coIkZhaWx1cmU6
IFRvIHRlc3QgbWFudWFsbHksIHNlbGVjdCB0aGUgZ3JlZW4gdGV4dCAiICsKICAgICAgICAgInN0
YXJ0aW5nIGF0IHRoZSBlbmQgdmlhIGRvdWJsZS1jbGljayAoaS5lLiB3b3JkIGdyYW51bGFyaXR5
KSwgdGhlbiBzaGlmdCtyaWdodC1hcnJvdy4gIiArCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi81MzU0NDU1LTEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi81MzU0NDU1LTEuaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vNTM1NDQ1NS0xLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTI2LDcgKzI2LDcgQEAgaWYgKHdpbmRvdy5ldmVudFNlbmRlciAmJiB3aW5kb3cudGVzdFJ1bgog
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiAgICAgdGVzdCgnbWFjJywgJ3Jlc3VsdG1h
YycpOwotICAgIHRlc3QoJ3dpbicsICdyZXN1bHR3aW4nKTsKKyAgICB0ZXN0KCd3aW5kb3dzJywg
J3Jlc3VsdHdpbicpOwogICAgIHRlc3QoJ3VuaXgnLCAncmVzdWx0dW5peCcpOwogfQogPC9zY3Jp
cHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9jbGljay1pbi1tYXJnaW5z
LWluc2lkZS1lZGl0YWJsZS1kaXYuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9jbGljay1pbi1tYXJnaW5zLWluc2lkZS1lZGl0YWJsZS1kaXYuaHRtbAko
cmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY2xpY2st
aW4tbWFyZ2lucy1pbnNpZGUtZWRpdGFibGUtZGl2Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEw
NCw3ICsxMDQsNyBAQCBmdW5jdGlvbiBlZGl0aW5nVGVzdChlZGl0aW5nQmVoYXZpb3IpCiB9CiAK
IGVkaXRpbmdUZXN0KCJtYWMiKTsKLWVkaXRpbmdUZXN0KCJ3aW4iKTsKK2VkaXRpbmdUZXN0KCJ3
aW5kb3dzIik7CiAKIC8vIENsZWFuIHVwIGFmdGVyIG91cnNlbHZlcyBpZiB3ZSdyZSBub3QgYmVp
bmcgcnVuIGluIHRoZSBicm93c2VyCiBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CkluZGV4OiBM
YXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9jbGljay1pbi1wYWRkaW5nLXdpdGgtbXVsdGlw
bGUtbGluZS1ib3hlcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2Vs
ZWN0aW9uL2NsaWNrLWluLXBhZGRpbmctd2l0aC1tdWx0aXBsZS1saW5lLWJveGVzLmh0bWwJKHJl
dmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2NsaWNrLWlu
LXBhZGRpbmctd2l0aC1tdWx0aXBsZS1saW5lLWJveGVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTc4LDcgKzc4LDcgQEAgZnVuY3Rpb24gZWRpdGluZ1Rlc3QoZWRpdGluZ0JlaGF2aW9yKQogfQog
CiBlZGl0aW5nVGVzdCgibWFjIik7Ci1lZGl0aW5nVGVzdCgid2luIik7CitlZGl0aW5nVGVzdCgi
d2luZG93cyIpOwogCiAvLyBDbGVhbiB1cCBhZnRlciBvdXJzZWx2ZXMgaWYgd2UncmUgbm90IGJl
aW5nIHJ1biBpbiB0aGUgYnJvd3NlcgogaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewpJbmRleDog
TGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY29udGV4dC1tZW51LXRleHQtc2VsZWN0aW9u
LWxvb2t1cC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
L2NvbnRleHQtbWVudS10ZXh0LXNlbGVjdGlvbi1sb29rdXAuaHRtbAkocmV2aXNpb24gMjY5ODMw
KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY29udGV4dC1tZW51LXRleHQtc2Vs
ZWN0aW9uLWxvb2t1cC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01MCw3ICs1MCw3IEBAIGZ1bmN0
aW9uIGxvYWQoKQogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiAgICAgdGVzdCgnbWFj
JywgdHJ1ZSwgJ05ldyBZb3JrJywgJ3Jlc3VsdG1hYycpOwotICAgIHRlc3QoJ3dpbicsIGZhbHNl
LCAnJywgJ3Jlc3VsdHdpbicpOworICAgIHRlc3QoJ3dpbmRvd3MnLCBmYWxzZSwgJycsICdyZXN1
bHR3aW4nKTsKICAgICB0ZXN0KCd1bml4JywgZmFsc2UsICcnLCAncmVzdWx0dW5peCcpOwogfQog
PC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9jb250ZXh0LW1l
bnUtdGV4dC1zZWxlY3Rpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi9jb250ZXh0LW1lbnUtdGV4dC1zZWxlY3Rpb24uaHRtbAkocmV2aXNpb24gMjY5
ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY29udGV4dC1tZW51LXRleHQt
c2VsZWN0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDcgKzQ2LDcgQEAgZnVuY3Rpb24g
bG9hZCgpCiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKICAgICB0ZXN0KCdtYWMnLCB0
cnVlLCAncmVzdWx0bWFjJyk7Ci0gICAgdGVzdCgnd2luJywgZmFsc2UsICdyZXN1bHR3aW4nKTsK
KyAgICB0ZXN0KCd3aW5kb3dzJywgZmFsc2UsICdyZXN1bHR3aW4nKTsKICAgICB0ZXN0KCd1bml4
JywgZmFsc2UsICdyZXN1bHR1bml4Jyk7CiB9CiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3Rz
L2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1hZnRlci1tb3VzZS1zZWxlY3Rpb24uaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtYWZ0ZXItbW91
c2Utc2VsZWN0aW9uLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRp
bmcvc2VsZWN0aW9uL2V4dGVuZC1hZnRlci1tb3VzZS1zZWxlY3Rpb24uaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtNzUsNyArNzUsNyBAQCBmdW5jdGlvbiBlZGl0aW5nVGVzdChlZGl0aW5nQmVoYXZp
b3IpIHsKIAogPHNjcmlwdD4KIGVkaXRpbmdUZXN0KCJtYWMiKTsKLWVkaXRpbmdUZXN0KCJ3aW4i
KTsKK2VkaXRpbmdUZXN0KCJ3aW5kb3dzIik7CiBlZGl0aW5nVGVzdCgidW5peCIpOwogPC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9u
LWFmdGVyLWRvdWJsZS1jbGljay5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRp
bmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24tYWZ0ZXItZG91YmxlLWNsaWNrLmh0bWwJKHJl
dmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1z
ZWxlY3Rpb24tYWZ0ZXItZG91YmxlLWNsaWNrLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcg
KzMxLDcgQEAKICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKICAgICAgICAgcnVu
VGVzdCgibWFjIiwgImEgcGFyYWdyYXBoIik7Ci0gICAgICAgIHJ1blRlc3QoIndpbiIsICJwYXJh
Z3JhIik7CisgICAgICAgIHJ1blRlc3QoIndpbmRvd3MiLCAicGFyYWdyYSIpOwogICAgIH0KIAog
ICAgIGZ1bmN0aW9uIHJ1blRlc3QoYmVoYXZpb3IsIGV4cGVjdGVkVGV4dCkKSW5kZXg6IExheW91
dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24tZW5jbG9zaW5nLWJsb2Nr
LXdpbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4
dGVuZC1zZWxlY3Rpb24tZW5jbG9zaW5nLWJsb2NrLXdpbi5odG1sCShyZXZpc2lvbiAyNjk4MzAp
CisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWVuY2xv
c2luZy1ibG9jay13aW4uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjMsNyArMjMsNyBAQCBmdW5j
dGlvbiBydW5TZWxlY3Rpb25UZXN0c1dpdGhHcmFudWxhcml0CiB9CiAKIGlmICh3aW5kb3cuaW50
ZXJuYWxzKQotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoIndpbiIp
OworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoIndpbmRvd3MiKTsK
IGxvZygiXG5cblxuRXh0ZW5kaW5nIGJ5IGNoYXJhY3RlclxuIik7CiBydW5TZWxlY3Rpb25UZXN0
c1dpdGhHcmFudWxhcml0eUZvckVuY2xvc2luZ0Jsb2NrKGNyZWF0ZUVuY2xvc2luZ0Jsb2NrTm9k
ZXMoKSwgImNoYXJhY3RlciIpOwogCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlv
bi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC0xLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWNyYXNo
LXRlc3QtMS5odG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3Nl
bGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC0xLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEyLDcgKzEyLDcgQEAgb25sb2FkID0gZnVuY3Rpb24oKSB7CiAKIGlmICh3aW5k
b3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7Ci0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2lu
Jyk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luZG93cycp
OwogfQogPC9zY3JpcHQ+CiA8dGV4dGFyZWE+PC90ZXh0YXJlYT4KSW5kZXg6IExheW91dFRlc3Rz
L2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0LTIuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdv
cmQtdmlzdWFsbHktY3Jhc2gtdGVzdC0yLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91
dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0
LTIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTIsNyArMTIsNyBAQCBvbmxvYWQgPSBmdW5jdGlv
bigpIHsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRp
dGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0Jl
aGF2aW9yKCd3aW5kb3dzJyk7CiB9CiA8L3NjcmlwdD4KIDx2a2Vybj48L3ZrZXJuPjxtYXJxdWVl
PjxkaXYgdGl0bGU9IjB8MCIgY2xhc3M9InRlc3RfbW92ZV9ieV93b3JkIj5hYmMgZGVmCkluZGV4
OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jh
c2gtdGVzdC0zLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWNyYXNoLXRlc3QtMy5odG1sCShyZXZpc2lvbiAyNjk4
MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFs
bHktY3Jhc2gtdGVzdC0zLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEyLDcgKzEyLDcgQEAgb25s
b2FkID0gZnVuY3Rpb24oKSB7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50
ZXJuYWxzKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luJyk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldEVkaXRpbmdCZWhhdmlvcignd2luZG93cycpOwogfQogPC9zY3JpcHQ+CiA8dmlkZW8+PC92
aWRlbz48bWV0ZXI+PGltYWdlIGNsYXNzPSJ0ZXN0X21vdmVfYnlfd29yZCIgdGl0bGU9IjB8MCI+
CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFs
bHktY3Jhc2gtdGVzdC00Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWNyYXNoLXRlc3QtNC5odG1sCShyZXZpc2lv
biAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQt
dmlzdWFsbHktY3Jhc2gtdGVzdC00Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEyLDcgKzEyLDcg
QEAgb25sb2FkID0gZnVuY3Rpb24oKSB7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5k
b3cuaW50ZXJuYWxzKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgaW50ZXJu
YWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luJyk7CisgICAgaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luZG93cycpOwogfQogPC9zY3JpcHQ+CiA+PGRp
diB0aXRsZT0iMHwwIiBjbGFzcz0idGVzdF9tb3ZlX2J5X3dvcmQiIGRpcj1sdHI+PGtleWdlbj48
YmFzZT4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12
aXN1YWxseS1jcmFzaC10ZXN0LTUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC01Lmh0bWwJKHJl
dmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnkt
d29yZC12aXN1YWxseS1jcmFzaC10ZXN0LTUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTEsNyAr
MTEsNyBAQCBvbmxvYWQgPSBmdW5jdGlvbigpIHsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyICYm
IHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICBp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiB9CiA8L3NjcmlwdD4K
IApJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3Vh
bGx5LWNyYXNoLXRlc3QtY3NzLWdlbmVyYXRlZC1jb250ZW50Lmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWNyYXNo
LXRlc3QtY3NzLWdlbmVyYXRlZC1jb250ZW50Lmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExh
eW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10
ZXN0LWNzcy1nZW5lcmF0ZWQtY29udGVudC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xOSw3ICsx
OSw3IEBAIG9ubG9hZCA9IGZ1bmN0aW9uKCkgewogCiBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYg
d2luZG93LmludGVybmFscykgewogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIGlu
dGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbicpOworICAgIGludGVybmFs
cy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbmRvd3MnKTsKIH0KIDwvc2NyaXB0Pgog
PGRpdiBjb250ZW50ZWRpdGFibGUgZGlyPWx0cj4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcv
c2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0LXRleHRhcmVhLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3Jk
LXZpc3VhbGx5LWNyYXNoLXRlc3QtdGV4dGFyZWEuaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysg
TGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWNyYXNo
LXRlc3QtdGV4dGFyZWEuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTgsNyArMTgsNyBAQCBvbmxv
YWQgPSBmdW5jdGlvbigpIHsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRl
cm5hbHMpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICBpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiB9CiA8L3NjcmlwdD4KIApJbmRleDogTGF5
b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWlubGluZS1i
bG9jay1wb3NpdGlvbmVkLWVsZW1lbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktaW5saW5lLWJsb2NrLXBvc2l0
aW9uZWQtZWxlbWVudC5odG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktaW5saW5lLWJsb2NrLXBvc2l0aW9u
ZWQtZWxlbWVudC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMiw3ICsxMiw3IEBAIG9ubG9hZCA9
IGZ1bmN0aW9uKCkgewogCiBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFs
cykgewogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIGludGVybmFscy5zZXR0aW5n
cy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbicpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRF
ZGl0aW5nQmVoYXZpb3IoJ3dpbmRvd3MnKTsKIH0KIDwvc2NyaXB0PgogCkluZGV4OiBMYXlvdXRU
ZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktbXVsdGktbGluZS5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnkt
d29yZC12aXN1YWxseS1tdWx0aS1saW5lLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91
dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1tdWx0aS1saW5l
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE5LDcgKzE5LDcgQEAgb25sb2FkID0gZnVuY3Rpb24o
KSB7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRp
bmdCZWhhdmlvcignd2luJyk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhh
dmlvcignd2luZG93cycpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CkluZGV4OiBMYXlvdXRUZXN0
cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktbXVsdGktc3BhY2UuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdv
cmQtdmlzdWFsbHktbXVsdGktc3BhY2UuaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LW11bHRpLXNwYWNl
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE5LDcgKzE5LDcgQEAgb25sb2FkID0gZnVuY3Rpb24o
KSB7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRp
bmdCZWhhdmlvcignd2luJyk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhh
dmlvcignd2luZG93cycpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CkluZGV4OiBMYXlvdXRUZXN0
cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktbnVsbC1ib3guaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQt
dmlzdWFsbHktbnVsbC1ib3guaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMv
ZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LW51bGwtYm94Lmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTE4LDcgKzE4LDcgQEAgb25sb2FkID0gZnVuY3Rpb24oKSB7CiAKIGlm
ICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7Ci0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlv
cignd2luJyk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2lu
ZG93cycpOwogfQogPC9zY3JpcHQ+CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KSW5kZXg6IExh
eW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1zaW5nbGUt
c3BhY2UtaW5saW5lLWVsZW1lbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktc2luZ2xlLXNwYWNlLWlubGluZS1l
bGVtZW50Lmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2Vs
ZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1zaW5nbGUtc3BhY2UtaW5saW5lLWVsZW1lbnQu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNyBAQCBvbmxvYWQgPSBmdW5jdGlvbigp
IHsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGlu
Z0JlaGF2aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2
aW9yKCd3aW5kb3dzJyk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KSW5kZXg6IExheW91dFRlc3Rz
L2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1zaW5nbGUtc3BhY2Utb25l
LWVsZW1lbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlv
bi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktc2luZ2xlLXNwYWNlLW9uZS1lbGVtZW50Lmh0bWwJKHJl
dmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnkt
d29yZC12aXN1YWxseS1zaW5nbGUtc3BhY2Utb25lLWVsZW1lbnQuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMTksNyArMTksNyBAQCBvbmxvYWQgPSBmdW5jdGlvbigpIHsKIAogaWYgKHdpbmRvdy50
ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW4nKTsK
KyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiB9
CiA8L3NjcmlwdD4KIDwvaGVhZD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
L21vdmUtYnktd29yZC12aXN1YWxseS10ZXh0YXJlYS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS10ZXh0YXJlYS5o
dG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9t
b3ZlLWJ5LXdvcmQtdmlzdWFsbHktdGV4dGFyZWEuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzYs
NyArMzYsNyBAQCBvbmxvYWQgPSBmdW5jdGlvbigpIHsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVy
ICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAg
ICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiB9CiA8L3Njcmlw
dD4KIApJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZp
c3VhbGx5LXdyb25nLWxlZnQtcmlnaHQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktd3JvbmctbGVmdC1yaWdodC5o
dG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9t
b3ZlLWJ5LXdvcmQtdmlzdWFsbHktd3JvbmctbGVmdC1yaWdodC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0yMiw3ICsyMiw3IEBAIG9ubG9hZCA9IGZ1bmN0aW9uKCkgewogCiBpZiAod2luZG93LnRl
c3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbicpOwor
ICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbmRvd3MnKTsKIH0K
IDwvc2NyaXB0PgogPHRpdGxlPndyb25nIHJlc3VsdCBiZWNhdXNlIFZpc2libGVQb3NpdGlvbi5s
ZWZ0KCkvcmlnaHQoKSByZXR1cm5zIHdyb25nIHJlc3VsdDwvdGl0bGU+CkluZGV4OiBMYXlvdXRU
ZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9wcm9ncmFtbWF0aWMtc2VsZWN0aW9uLW9uLW1hYy1pcy1k
aXJlY3Rpb25sZXNzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9wcm9ncmFtbWF0aWMtc2VsZWN0aW9uLW9uLW1hYy1pcy1kaXJlY3Rpb25s
ZXNzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zZWxlY3Rpb24vcHJvZ3JhbW1hdGljLXNlbGVjdGlvbi1vbi1tYWMtaXMtZGlyZWN0aW9ubGVz
cy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEwMCw3ICsxMDAsNyBAQCBQQVNTIHJp
Z2h0IGJ5IGxpbmUgaW4gdGV4dC1pbnB1dCwgYWZ0ZXIgCiBQQVNTIHJpZ2h0IGJ5IGxpbmUgaW4g
dGV4dC1pbnB1dCwgYWZ0ZXIgdW5kb2luZyBjdXQKIFBBU1MgcmlnaHQgYnkgbGluZSBpbiB0ZXh0
LWlucHV0LCBhZnRlciB1bmRvaW5nIGJvbGQKIFBBU1MgcmlnaHQgYnkgbGluZSBpbiB0ZXh0LWlu
cHV0LCBhZnRlciB1bmRvaW5nIGluc2VydFRleHQKLXdpbjoKK3dpbmRvd3M6CiBQQVNTIGxlZnQg
YnkgY2hhcmFjdGVyIGluIHJlZ3VsYXItZGl2CiBQQVNTIGxlZnQgYnkgY2hhcmFjdGVyIGluIHJl
Z3VsYXItZGl2LCBhZnRlciB1bmRvaW5nIGRlbGV0ZQogUEFTUyBsZWZ0IGJ5IGNoYXJhY3RlciBp
biByZWd1bGFyLWRpdiwgYWZ0ZXIgdW5kb2luZyBmb3J3YXJkRGVsZXRlCkluZGV4OiBMYXlvdXRU
ZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9wcm9ncmFtbWF0aWMtc2VsZWN0aW9uLW9uLW1hYy1pcy1k
aXJlY3Rpb25sZXNzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxl
Y3Rpb24vcHJvZ3JhbW1hdGljLXNlbGVjdGlvbi1vbi1tYWMtaXMtZGlyZWN0aW9ubGVzcy5odG1s
CShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9wcm9n
cmFtbWF0aWMtc2VsZWN0aW9uLW9uLW1hYy1pcy1kaXJlY3Rpb25sZXNzLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEzNiw3ICsxMzYsNyBAQCBmdW5jdGlvbiBydW5UZXN0c0ZvcihwbGF0Zm9ybSkg
ewogCiBpZiAod2luZG93LmludGVybmFscykgewogICAgIHJ1blRlc3RzRm9yKCdtYWMnKTsKLSAg
ICBydW5UZXN0c0Zvcignd2luJyk7CisgICAgcnVuVGVzdHNGb3IoJ3dpbmRvd3MnKTsKICAgICBy
dW5UZXN0c0ZvcigndW5peCcpOwogCiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Qn
KS5pbm5lckhUTUwgPSAnJzsKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3J0
bC1tb3ZlLXNlbGVjdGlvbi1yaWdodC1sZWZ0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZWRpdGluZy9zZWxlY3Rpb24vcnRsLW1vdmUtc2VsZWN0aW9uLXJpZ2h0LWxlZnQuaHRtbAko
cmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vcnRsLW1v
dmUtc2VsZWN0aW9uLXJpZ2h0LWxlZnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNzMsNyArNzMs
NyBAQCBmdW5jdGlvbiBydW5UZXN0cygpCiAgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRF
ZGl0aW5nQmVoYXZpb3IoIm1hYyIpOwogICAgICAgICB0ZXN0U2VsZWN0aW9uQ2hhbmdlKGRyYWdT
ZWxlY3Rpb24sICJleHRlbmQiLCAicmlnaHQiLCAwLCAwLCAiRXh0ZW5kIGRyYWdnZWQgc2VsZWN0
aW9uIHJpZ2h0IChNYWMpIik7CiAgICAgICAgIHRlc3RTZWxlY3Rpb25DaGFuZ2UoZHJhZ1NlbGVj
dGlvbiwgImV4dGVuZCIsICJsZWZ0IiwgMCwgMCwgIkV4dGVuZCBkcmFnZ2VkIHNlbGVjdGlvbiBs
ZWZ0IChNYWMpIik7Ci0gICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZp
b3IoIndpbiIpOworICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9y
KCJ3aW5kb3dzIik7CiAgICAgICAgIHRlc3RTZWxlY3Rpb25DaGFuZ2UoZHJhZ1NlbGVjdGlvbiwg
ImV4dGVuZCIsICJyaWdodCIsIDAsIDAsICJFeHRlbmQgZHJhZ2dlZCBzZWxlY3Rpb24gcmlnaHQg
KFdpbikiKTsKICAgICAgICAgdGVzdFNlbGVjdGlvbkNoYW5nZShkcmFnU2VsZWN0aW9uLCAiZXh0
ZW5kIiwgImxlZnQiLCAxLCAwLCAiRXh0ZW5kIGRyYWdnZWQgc2VsZWN0aW9uIGxlZnQgKFdpbiki
KTsKICAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcigidW5peCIp
OwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWV4dGVuZC1z
aG91bGQtbm90LW1vdmUtYWNyb3NzLWNhcmV0LW9uLW1hYy1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWV4dGVuZC1zaG91
bGQtbm90LW1vdmUtYWNyb3NzLWNhcmV0LW9uLW1hYy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI2
OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1leHRlbmQt
c2hvdWxkLW5vdC1tb3ZlLWFjcm9zcy1jYXJldC1vbi1tYWMtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC03LDcgKzcsNyBAQCBFeHRlbmQgYmFja3dhcmQgYW5kIHRoZW4gZm9yd2FyZCBi
eSBsaW5lCiBFeHRlbmQgZm9yd2FyZCBhbmQgdGhlbiBiYWNrd2FyZCBieSBsaW5lOiBQQVNTCiBF
eHRlbmQgYmFja3dhcmQgYW5kIHRoZW4gZm9yd2FyZCBieSBwYXJhZ3JhcGg6IFBBU1MKIEV4dGVu
ZCBmb3J3YXJkIGFuZCB0aGVuIGJhY2t3YXJkIGJ5IHBhcmFncmFwaDogUEFTUwotd2luOgord2lu
ZG93czoKIEV4dGVuZCBiYWNrd2FyZCBhbmQgdGhlbiBmb3J3YXJkIGJ5IHdvcmQ6IFBBU1MKIEV4
dGVuZCBmb3J3YXJkIGFuZCB0aGVuIGJhY2t3YXJkIGJ5IHdvcmQ6IFBBU1MKIEV4dGVuZCBiYWNr
d2FyZCBhbmQgdGhlbiBmb3J3YXJkIGJ5IGxpbmU6IFBBU1MKSW5kZXg6IExheW91dFRlc3RzL2Vk
aXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1leHRlbmQtc2hvdWxkLW5vdC1tb3ZlLWFjcm9zcy1j
YXJldC1vbi1tYWMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVj
dGlvbi9zZWxlY3Rpb24tZXh0ZW5kLXNob3VsZC1ub3QtbW92ZS1hY3Jvc3MtY2FyZXQtb24tbWFj
Lmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
L3NlbGVjdGlvbi1leHRlbmQtc2hvdWxkLW5vdC1tb3ZlLWFjcm9zcy1jYXJldC1vbi1tYWMuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtNDgsNyArNDgsNyBAQCBmdW5jdGlvbiBlZGl0aW5nVGVzdChi
ZWhhdmlvcikgewogICAgIHZhciB3b3JkQ2FyZXRGdW5jdGlvbiA9IGdldFNldENhcmV0RnVuY3Rp
b24obm9kZSwgY2hpbGRyZW5bMl0sIGNoaWxkcmVuWzJdLmRhdGEuc2VhcmNoKCJuZSAyIikpOwog
CiAgICAgZG9jdW1lbnQud3JpdGUoYmVoYXZpb3IgKyAiOjxicj4iKTsKLSAgICBydW5UZXN0KCJi
YWNrd2FyZCIsICJmb3J3YXJkIiwgIndvcmQiLCBiZWhhdmlvciA9PSAibWFjIiA/ICIiIDogYmVo
YXZpb3IgPT0gIndpbiIgPyAibmUgIiA6ICJuZSIsIGdldFNldENhcmV0RnVuY3Rpb24obm9kZSwg
Y2hpbGRyZW5bMl0sIGNoaWxkcmVuWzJdLmRhdGEuc2VhcmNoKCJuZSAyIikpKTsKKyAgICBydW5U
ZXN0KCJiYWNrd2FyZCIsICJmb3J3YXJkIiwgIndvcmQiLCBiZWhhdmlvciA9PSAibWFjIiA/ICIi
IDogYmVoYXZpb3IgPT0gIndpbmRvd3MiID8gIm5lICIgOiAibmUiLCBnZXRTZXRDYXJldEZ1bmN0
aW9uKG5vZGUsIGNoaWxkcmVuWzJdLCBjaGlsZHJlblsyXS5kYXRhLnNlYXJjaCgibmUgMiIpKSk7
CiAgICAgcnVuVGVzdCgiZm9yd2FyZCIsICJiYWNrd2FyZCIsICJ3b3JkIiwgYmVoYXZpb3IgPT0g
Im1hYyIgPyAiIiA6ICJsaSIsIGdldFNldENhcmV0RnVuY3Rpb24obm9kZSwgY2hpbGRyZW5bMl0s
IGNoaWxkcmVuWzJdLmRhdGEuc2VhcmNoKCJuZSAyIikpKTsKICAgICBydW5UZXN0KCJiYWNrd2Fy
ZCIsICJmb3J3YXJkIiwgImxpbmUiLCBiZWhhdmlvciA9PSAibWFjIiA/ICIiIDogIjFcbmxpbmUg
IiwgZ2V0U2V0Q2FyZXRGdW5jdGlvbihub2RlLCBjaGlsZHJlblswXSwgY2hpbGRyZW5bMF0uZGF0
YS5zZWFyY2goIjEiKSkpOwogICAgIHJ1blRlc3QoImZvcndhcmQiLCAiYmFja3dhcmQiLCAibGlu
ZSIsIGJlaGF2aW9yID09ICJtYWMiID8gIiIgOiAiMlxubGluZSAiLCBnZXRTZXRDYXJldEZ1bmN0
aW9uKG5vZGUsIGNoaWxkcmVuWzRdLCBjaGlsZHJlbls0XS5kYXRhLnNlYXJjaCgiMyIpKSk7CkBA
IC01Nyw3ICs1Nyw3IEBAIGZ1bmN0aW9uIGVkaXRpbmdUZXN0KGJlaGF2aW9yKSB7CiB9CiAKIGVk
aXRpbmdUZXN0KCJtYWMiKTsKLWVkaXRpbmdUZXN0KCJ3aW4iKTsKK2VkaXRpbmdUZXN0KCJ3aW5k
b3dzIik7CiBlZGl0aW5nVGVzdCgidW5peCIpOwogCiB2YXIgbm9kZSA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0ZXN0LWRpdiIpOwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vc2hpZnQtY2xpY2suaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Nl
bGVjdGlvbi9zaGlmdC1jbGljay5odG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0
cy9lZGl0aW5nL3NlbGVjdGlvbi9zaGlmdC1jbGljay5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC05
NSw3ICs5NSw3IEBAIGZ1bmN0aW9uIHJ1blNoaWZ0Q2xpY2tUZXN0KGVkaXRpbmdCZWhhdmkKIAog
aWYgKHdpbmRvdy5ldmVudFNlbmRlciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgcnVuU2hp
ZnRDbGlja1Rlc3QoIm1hYyIpOwotICAgIHJ1blNoaWZ0Q2xpY2tUZXN0KCJ3aW4iKTsKKyAgICBy
dW5TaGlmdENsaWNrVGVzdCgid2luZG93cyIpOwogfQogCiB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3VzZXItc2VsZWN0
LWFsbC13aXRoLXNoaWZ0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3NlbGVjdGlvbi91c2VyLXNlbGVjdC1hbGwtd2l0aC1zaGlmdC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3VzZXIt
c2VsZWN0LWFsbC13aXRoLXNoaWZ0LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNjks
NyArNjksNyBAQCBTb21lIG90aGVyIHRleHQuCiB8ICIKICIKIAotQWZ0ZXIgY2xpY2tpbmcgb24g
dGhlIGZpcnN0IGVsZW1lbnQgKHdpbik6CitBZnRlciBjbGlja2luZyBvbiB0aGUgZmlyc3QgZWxl
bWVudCAod2luZG93cyk6CiB8ICIKICIKIHwgPGRpdj4KQEAgLTg2LDcgKzg2LDcgQEAgU29tZSBv
dGhlciB0ZXh0LgogfCAiCiAiCiAKLUFmdGVyIHNoaWZ0IGNsaWNraW5nIG9uIHRoZSBzZWNvbmQg
ZWxlbWVudCAod2luKToKK0FmdGVyIHNoaWZ0IGNsaWNraW5nIG9uIHRoZSBzZWNvbmQgZWxlbWVu
dCAod2luZG93cyk6CiB8ICIKICIKIHwgPGRpdj4KQEAgLTEwMyw3ICsxMDMsNyBAQCBTb21lIG90
aGVyIHRleHQuCiB8ICIKICIKIAotQWZ0ZXIgY2xpY2tpbmcgb24gdGhlIHNlY29uZCBlbGVtZW50
ICh3aW4pOgorQWZ0ZXIgY2xpY2tpbmcgb24gdGhlIHNlY29uZCBlbGVtZW50ICh3aW5kb3dzKToK
IHwgIgogIgogfCA8ZGl2PgpAQCAtMTIwLDcgKzEyMCw3IEBAIFNvbWUgb3RoZXIgdGV4dC4KIHwg
IgogIgogCi1BZnRlciBzaGlmdCBjbGlja2luZyBvbiB0aGUgZmlyc3QgZWxlbWVudCAod2luKToK
K0FmdGVyIHNoaWZ0IGNsaWNraW5nIG9uIHRoZSBmaXJzdCBlbGVtZW50ICh3aW5kb3dzKToKIHwg
IgogIgogfCA8ZGl2PgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vdXNlci1z
ZWxlY3QtYWxsLXdpdGgtc2hpZnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi91c2VyLXNlbGVjdC1hbGwtd2l0aC1zaGlmdC5odG1sCShyZXZpc2lvbiAy
Njk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi91c2VyLXNlbGVjdC1hbGwt
d2l0aC1zaGlmdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01MCw3ICs1MCw3IEBAIGZ1bmN0aW9u
IHJ1blRlc3QoZWRpdGluZ0JlaGF2aW9yKSB7CiAKIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsK
ICAgICBydW5UZXN0KCdtYWMnKTsKLSAgICBydW5UZXN0KCd3aW4nKTsKKyAgICBydW5UZXN0KCd3
aW5kb3dzJyk7CiAgICAgcnVuVGVzdCgndW5peCcpOwogCiB9IGVsc2UKSW5kZXg6IExheW91dFRl
c3RzL2VkaXRpbmcvc3BlbGxpbmcvY29weS1wYXN0ZS1jcmFzaC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvY29weS1wYXN0ZS1jcmFzaC5odG1sCShyZXZp
c2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL2NvcHktcGFzdGUt
Y3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTQsNyArMTQsNyBAQAogPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+CiA8c2NyaXB0Pgogb25sb2FkID0gaW5pdFNwZWxsVGVzdCgiZGVzdGluYXRp
b24iLCAiU3BlbGwgd2VsbGNvbWUuIElzIGl0IGJyb2tlbj8iLCBmdW5jdGlvbih0ZXh0Tm9kZSkg
ewotICAgIHZhciBiZWhhdmlvcnMgPSBbIndpbiIsICJtYWMiXTsKKyAgICB2YXIgYmVoYXZpb3Jz
ID0gWyJ3aW5kb3dzIiwgIm1hYyJdOwogICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYmVoYXZpb3Jz
Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVo
YXZpb3IoYmVoYXZpb3JzW2ldKTsKICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIlNlbGVj
dEFsbCIpOwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9pZnJhbWUtb25sb2FkLWNy
YXNoLXdpbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvaWZy
YW1lLW9ubG9hZC1jcmFzaC13aW4uaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVz
dHMvZWRpdGluZy9zdHlsZS9pZnJhbWUtb25sb2FkLWNyYXNoLXdpbi5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDcgKzEsNyBAQAogPG1ldGE+PGlucHV0PjxoNj48bm9icj48L25vYnI+PGRhdGFn
cmlkPjxpbnM+PGJ1dHRvbj48ZW0+PGlmcmFtZSBvbmxvYWQ9IgogaWYgKHdpbmRvdy50ZXN0UnVu
bmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
LSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiB9CiAKIGlm
IChkb2N1bWVudC5jb3VudGVyKQpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9tYWtl
LXRleHQtd3JpdGluZy1kaXJlY3Rpb24taW5saW5lLXdpbi5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvbWFrZS10ZXh0LXdyaXRpbmctZGlyZWN0aW9uLWlubGlu
ZS13aW4uaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zdHls
ZS9tYWtlLXRleHQtd3JpdGluZy1kaXJlY3Rpb24taW5saW5lLXdpbi5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xNCw3ICsxNCw3IEBAIGRlc2NyaXB0aW9uKCdUZXN0cyB0byBlbnN1cmUgTWFrZVRl
eHRXcmkKIGlmICghd2luZG93LnRlc3RSdW5uZXIpCiAgICAgdGVzdEZhaWxlZCgnVGhpcyB0ZXN0
IHJlcXVpcmVzIHRlc3RSdW5uZXInKTsKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbicpOworICAgIGludGVybmFscy5z
ZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbmRvd3MnKTsKIAogdmFyIHRlc3RDb250YWlu
ZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKIHRlc3RDb250YWluZXIuY29udGVu
dEVkaXRhYmxlID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvcHVzaC1k
b3duLWZvbnQtc3R5bGVzLXdpbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRp
bmcvc3R5bGUvcHVzaC1kb3duLWZvbnQtc3R5bGVzLXdpbi5odG1sCShyZXZpc2lvbiAyNjk4MzAp
CisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3B1c2gtZG93bi1mb250LXN0eWxlcy13aW4u
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQAogZGVzY3JpcHRpb24oJ1Rlc3Qg
dG8gbWFrZSBzdXJlIHdlIHB1c2ggZG93biBpbmxpbmUgc3R5bGVzIHByb3Blcmx5LicpOwogCiBp
ZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0Jl
aGF2aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9y
KCd3aW5kb3dzJyk7CiB2YXIgdGVzdENvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpOwogdGVzdENvbnRhaW5lci5jb250ZW50RWRpdGFibGUgPSB0cnVlOwogZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZCh0ZXN0Q29udGFpbmVyKTsKSW5kZXg6IExheW91dFRlc3RzL2VkaXRp
bmcvc3R5bGUvcHVzaC1kb3duLWltcGxpY2l0LXN0eWxlcy1hcm91bmQtbGlzdC13aW4uaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3B1c2gtZG93bi1pbXBsaWNp
dC1zdHlsZXMtYXJvdW5kLWxpc3Qtd2luLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91
dFRlc3RzL2VkaXRpbmcvc3R5bGUvcHVzaC1kb3duLWltcGxpY2l0LXN0eWxlcy1hcm91bmQtbGlz
dC13aW4uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQAogZGVzY3JpcHRpb24o
J1Rlc3QgdG8gbWFrZSBzdXJlIHdlIHB1c2ggZG93biBpbmxpbmUgc3R5bGVzIHByb3Blcmx5Licp
OwogCiBpZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRp
dGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0Jl
aGF2aW9yKCd3aW5kb3dzJyk7CiB2YXIgdGVzdENvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImRpdiIpOwogdGVzdENvbnRhaW5lci5jb250ZW50RWRpdGFibGUgPSB0cnVlOwogZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZXN0Q29udGFpbmVyKTsKSW5kZXg6IExheW91dFRlc3Rz
L2VkaXRpbmcvc3R5bGUvdG9nZ2xlLXN0eWxlLWJvbGQtaXRhbGljLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3RvZ2dsZS1zdHlsZS1ib2xkLWl0
YWxpYy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRp
bmcvc3R5bGUvdG9nZ2xlLXN0eWxlLWJvbGQtaXRhbGljLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtNTcsNyArNTcsNyBAQCBleGVjSXRhbGljQ29tbWFuZDogPGRpdiBpZD0idGVzdCI+
IDxkaXY+CiBleGVjQm9sZENvbW1hbmQ6IDxkaXYgaWQ9InRlc3QiPiA8ZGl2PjxpPlNvbWUgdGV4
dDwvaT48L2Rpdj4gPHA+PGk+U29tZSBtb3JlIHRleHQ8L2k+PC9wPiA8L2Rpdj4KIGV4ZWNJdGFs
aWNDb21tYW5kOiA8ZGl2IGlkPSJ0ZXN0Ij4gPGRpdj5Tb21lIHRleHQ8L2Rpdj4gPHA+U29tZSBt
b3JlIHRleHQ8L3A+IDwvZGl2PgogCi1UZXN0IGZvciB3aW4KK1Rlc3QgZm9yIHdpbmRvd3MKIGV4
ZWNCb2xkQ29tbWFuZDogPGRpdiBpZD0idGVzdCI+IDxkaXY+PGI+U29tZSB0ZXh0PC9iPjwvZGl2
PiA8cD48Yj5Tb21lIG1vcmUgdGV4dDwvYj48L3A+IDwvZGl2PgogZXhlY0l0YWxpY0NvbW1hbmQ6
IDxkaXYgaWQ9InRlc3QiPiA8ZGl2PjxiPjxpPlNvbWUgdGV4dDwvaT48L2I+PC9kaXY+IDxwPjxi
PjxpPlNvbWUgbW9yZSB0ZXh0PC9pPjwvYj48L3A+IDwvZGl2PgogZXhlY0JvbGRDb21tYW5kOiA8
ZGl2IGlkPSJ0ZXN0Ij4gPGRpdj48aT5Tb21lIHRleHQ8L2k+PC9kaXY+IDxwPjxpPlNvbWUgbW9y
ZSB0ZXh0PC9pPjwvcD4gPC9kaXY+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3Rv
Z2dsZS1zdHlsZS1ib2xkLWl0YWxpYy1taXhlZC1lZGl0YWJpbGl0eS1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS90b2dnbGUtc3R5bGUtYm9sZC1p
dGFsaWMtbWl4ZWQtZWRpdGFiaWxpdHktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNjk4MzApCisr
KyBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3RvZ2dsZS1zdHlsZS1ib2xkLWl0YWxpYy1taXhl
ZC1lZGl0YWJpbGl0eS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTU1LDcgKzU1LDcg
QEAgZXhlY0l0YWxpY0NvbW1hbmQ6IDxkaXYgaWQ9InRlc3QiPjxiPjxpPgogZXhlY0JvbGRDb21t
YW5kOiA8ZGl2IGlkPSJ0ZXN0Ij48aT4gRWRpdGFibGUgPC9pPjxzcGFuIGNvbnRlbnRlZGl0YWJs
ZT0iZmFsc2UiPk5vbi1lZGl0YWJsZTwvc3Bhbj48aT4gRWRpdGFibGUgPC9pPjwvZGl2PgogZXhl
Y0l0YWxpY0NvbW1hbmQ6IDxkaXYgaWQ9InRlc3QiPiBFZGl0YWJsZSA8c3BhbiBjb250ZW50ZWRp
dGFibGU9ImZhbHNlIj5Ob24tZWRpdGFibGU8L3NwYW4+IEVkaXRhYmxlIDwvZGl2PgogCi1UZXN0
IGZvciB3aW4KK1Rlc3QgZm9yIHdpbmRvd3MKIGV4ZWNCb2xkQ29tbWFuZDogPGRpdiBpZD0idGVz
dCI+PGI+IEVkaXRhYmxlIDwvYj48c3BhbiBjb250ZW50ZWRpdGFibGU9ImZhbHNlIj5Ob24tZWRp
dGFibGU8L3NwYW4+PGI+IEVkaXRhYmxlIDwvYj48L2Rpdj4KIGV4ZWNJdGFsaWNDb21tYW5kOiA8
ZGl2IGlkPSJ0ZXN0Ij48Yj48aT4gRWRpdGFibGUgPC9pPjwvYj48c3BhbiBjb250ZW50ZWRpdGFi
bGU9ImZhbHNlIj5Ob24tZWRpdGFibGU8L3NwYW4+PGI+PGk+IEVkaXRhYmxlIDwvaT48L2I+PC9k
aXY+CiBleGVjQm9sZENvbW1hbmQ6IDxkaXYgaWQ9InRlc3QiPjxpPiBFZGl0YWJsZSA8L2k+PHNw
YW4gY29udGVudGVkaXRhYmxlPSJmYWxzZSI+Tm9uLWVkaXRhYmxlPC9zcGFuPjxpPiBFZGl0YWJs
ZSA8L2k+PC9kaXY+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3RvZ2dsZS1zdHls
ZS1ib2xkLWl0YWxpYy1taXhlZC1lZGl0YWJpbGl0eS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2VkaXRpbmcvc3R5bGUvdG9nZ2xlLXN0eWxlLWJvbGQtaXRhbGljLW1peGVkLWVkaXRh
YmlsaXR5Lmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc3R5
bGUvdG9nZ2xlLXN0eWxlLWJvbGQtaXRhbGljLW1peGVkLWVkaXRhYmlsaXR5Lmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAgRWRpdGFibGUgPHNwYW4gY29udGVudGVkaXRhYmxl
PWZhbHNlPk5vbgogPHNjcmlwdCBzcmM9Li4vZWRpdGluZy5qcyBsYW5ndWFnZT0iSmF2YVNjcmlw
dCIgdHlwZT0idGV4dC9KYXZhU2NyaXB0IiA+PC9zY3JpcHQ+CiA8c2NyaXB0PgogdGVzdCgnbWFj
Jyk7Ci10ZXN0KCd3aW4nKTsKK3Rlc3QoJ3dpbmRvd3MnKTsKIHRlc3QoJ3VuaXgnKTsKIGZ1bmN0
aW9uIHRlc3QocGxhdGZvcm0pIHsKICAgICBpZiAod2luZG93LmludGVybmFscykKSW5kZXg6IExh
eW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvdG9nZ2xlLXN0eWxlLWJvbGQtaXRhbGljLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS90b2dnbGUtc3R5bGUtYm9sZC1p
dGFsaWMuaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zdHls
ZS90b2dnbGUtc3R5bGUtYm9sZC1pdGFsaWMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTEsNyAr
MTEsNyBAQAogPHNjcmlwdCBzcmM9Li4vZWRpdGluZy5qcyBsYW5ndWFnZT0iSmF2YVNjcmlwdCIg
dHlwZT0idGV4dC9KYXZhU2NyaXB0IiA+PC9zY3JpcHQ+CiA8c2NyaXB0PgogdGVzdCgnbWFjJyk7
Ci10ZXN0KCd3aW4nKTsKK3Rlc3QoJ3dpbmRvd3MnKTsKIHRlc3QoJ3VuaXgnKTsKIGZ1bmN0aW9u
IHRlc3QocGxhdGZvcm0pIHsKICAgICBpZiAod2luZG93LmludGVybmFscykKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL2JhY2tzcGFjZS1uYXZpZ2F0ZXMtYmFjay5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2JhY2tzcGFjZS1uYXZpZ2F0ZXMtYmFjay5o
dG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9iYWNrc3Bh
Y2UtbmF2aWdhdGVzLWJhY2suaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNTAsNyArNTAsNyBAQCBm
dW5jdGlvbiBkb1N0ZXAoc3RlcCwgbG9jYXRpb24pIHsKICAgICAgICAgaWYgKCFleHBlY3QobG9j
YXRpb24gPT0gJ3Rlc3Qtd2luJywgJ25hdmlnYXRpb24gdG8gdGVzdC13aW4nKSkKICAgICAgICAg
ICAgIHJldHVybjsKIAotICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2
aW9yKCd3aW4nKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlv
cignd2luZG93cycpOwogICAgICAgICB0ZXN0QmFja3NwYWNlTmF2aWdhdGVzQmFjaygpOwogCiAg
ICAgICAgIGJyZWFrOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3Rpb24tZGly
ZWN0aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3NlbGVjdGlvbi1kaXJlY3Rpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNjk4MzApCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdGlvbi1kaXJlY3Rpb24tZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC01NSw3ICs1NSw3IEBAIFBBU1Mgc2VsZWN0aW9uRGlyZWN0aW9uIHdh
cyAiYmFja3dhcmQiIGEKIFBBU1Mgc2VsZWN0aW9uRGlyZWN0aW9uIHdhcyAiYmFja3dhcmQiIGFm
dGVyIGZvY3VzaW5nIG9uIGFub3RoZXIgZWxlbWVudAogUEFTUyBzZWxlY3Rpb25EaXJlY3Rpb24g
d2FzICJiYWNrd2FyZCIgYWZ0ZXIgaGlkaW5nIHRoZSBlbGVtZW50CiAKLWlucHV0IG9uIFdpbgor
aW5wdXQgb24gV2luZG93cwogUEFTUyBzZWxlY3Rpb25EaXJlY3Rpb24gd2FzICJmb3J3YXJkIiBh
ZnRlciBmb2N1c2luZyBhbmQgc2V0dGluZyBzZWxlY3Rpb24gYnkgc2V0U2VsZWN0aW9uUmFuZ2Uo
MSwgMikKIFBBU1Mgc2VsZWN0aW9uRGlyZWN0aW9uIHdhcyAiZm9yd2FyZCIgYWZ0ZXIgZm9jdXNp
bmcgb24gYW5vdGhlciBlbGVtZW50CiBQQVNTIHNlbGVjdGlvbkRpcmVjdGlvbiB3YXMgImZvcndh
cmQiIGFmdGVyIGhpZGluZyB0aGUgZWxlbWVudApAQCAtODEsNyArODEsNyBAQCBQQVNTIHNlbGVj
dGlvbkRpcmVjdGlvbiB3YXMgImJhY2t3YXJkIiBhCiBQQVNTIHNlbGVjdGlvbkRpcmVjdGlvbiB3
YXMgImJhY2t3YXJkIiBhZnRlciBmb2N1c2luZyBvbiBhbm90aGVyIGVsZW1lbnQKIFBBU1Mgc2Vs
ZWN0aW9uRGlyZWN0aW9uIHdhcyAiYmFja3dhcmQiIGFmdGVyIGhpZGluZyB0aGUgZWxlbWVudAog
Ci10ZXh0YXJlYSBvbiBXaW4KK3RleHRhcmVhIG9uIFdpbmRvd3MKIFBBU1Mgc2VsZWN0aW9uRGly
ZWN0aW9uIHdhcyAiZm9yd2FyZCIgYWZ0ZXIgZm9jdXNpbmcgYW5kIHNldHRpbmcgc2VsZWN0aW9u
IGJ5IHNldFNlbGVjdGlvblJhbmdlKDEsIDIpCiBQQVNTIHNlbGVjdGlvbkRpcmVjdGlvbiB3YXMg
ImZvcndhcmQiIGFmdGVyIGZvY3VzaW5nIG9uIGFub3RoZXIgZWxlbWVudAogUEFTUyBzZWxlY3Rp
b25EaXJlY3Rpb24gd2FzICJmb3J3YXJkIiBhZnRlciBoaWRpbmcgdGhlIGVsZW1lbnQKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0aW9uLWRpcmVjdGlvbi5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0aW9uLWRpcmVjdGlvbi5odG1sCShy
ZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdGlvbi1kaXJl
Y3Rpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOTEsNyArOTEsNyBAQCBmdW5jdGlvbiBydW5U
ZXN0Rm9yKHBsYXRmb3JtKSB7DQogDQogaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsNCiAgICAgcnVu
VGVzdEZvcignTWFjJyk7DQotICAgIHJ1blRlc3RGb3IoJ1dpbicpOw0KKyAgICBydW5UZXN0Rm9y
KCdXaW5kb3dzJyk7DQogICAgIHJ1blRlc3RGb3IoJ1VuaXgnKTsNCiB9IGVsc2UNCiAgICAgcnVu
VGVzdEZvcihuYXZpZ2F0b3IucGxhdGZvcm0uaW5kZXhPZignTWFjJykgPj0gMCA/ICdNYWMnIDog
J1dpbicpOw0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414181</attachid>
            <date>2020-11-15 14:53:36 -0800</date>
            <delta_ts>2020-11-16 09:48:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218960-20201115145335.patch</filename>
            <type>text/plain</type>
            <size>219216</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIwLTExLTE1ICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBTdGFuZGFyZGl6ZSBlbnVtcyB0aGF0IGFyZSB1c2VkIGJ5
IFNldHRpbmdzIGluIHByZXBlcmF0aW9uIGZvciBhdXRvZ2VuZXJhdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4OTYwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1dJUF0KKworICAgICAgICAqIFNj
cmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXMueWFtbDoKKwogMjAyMC0xMS0xNCAgRG9u
IE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIFtjbGFuZy10aWR5
XSBSdW4gbW9kZXJuaXplLXVzZS1vdmVycmlkZSB0aHJvdWdoIEpTQwpJbmRleDogU291cmNlL1dU
Ri9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWwJKHJldmlz
aW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJl
bmNlcy55YW1sCSh3b3JraW5nIGNvcHkpCkBAIC03MDYsNyArNzA2LDcgQEAgRWRpdGFibGVMaW5r
QmVoYXZpb3I6CiAgICAgV2ViS2l0TGVnYWN5OgogICAgICAgZGVmYXVsdDogV2ViS2l0RWRpdGFi
bGVMaW5rRGVmYXVsdEJlaGF2aW9yCiAgICAgV2ViS2l0OgotICAgICAgZGVmYXVsdDogV2ViQ29y
ZTo6RWRpdGFibGVMaW5rTmV2ZXJMaXZlCisgICAgICBkZWZhdWx0OiBXZWJDb3JlOjpFZGl0YWJs
ZUxpbmtCZWhhdmlvcjo6TmV2ZXJMaXZlCiAKIEVuYWJsZUluaGVyaXRVUklRdWVyeUNvbXBvbmVu
dDoKICAgdHlwZTogYm9vbApAQCAtMjE3Myw3ICsyMTczLDcgQEAgU3RvcmFnZUJsb2NraW5nUG9s
aWN5OgogICAgIFdlYktpdExlZ2FjeToKICAgICAgIGRlZmF1bHQ6IFdlYkFsbG93QWxsU3RvcmFn
ZQogICAgIFdlYktpdDoKLSAgICAgIGRlZmF1bHQ6IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpC
bG9ja1RoaXJkUGFydHlTdG9yYWdlCisgICAgICBkZWZhdWx0OiBXZWJDb3JlOjpTdG9yYWdlQmxv
Y2tpbmdQb2xpY3k6OkJsb2NrVGhpcmRQYXJ0eQogCiBTdWJyZXNvdXJjZUludGVncml0eUVuYWJs
ZWQ6CiAgIHR5cGU6IGJvb2wKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzOSBAQAor
MjAyMC0xMS0xNSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAgU3Rh
bmRhcmRpemUgZW51bXMgdGhhdCBhcmUgdXNlZCBieSBTZXR0aW5ncyBpbiBwcmVwZXJhdGlvbiBm
b3IgYXV0b2dlbmVyYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxODk2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFtXSVBdCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFNj
cmlwdHMvR2VuZXJhdGVTZXR0aW5ncy5yYjoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9Gb3JjZWRBY2Nlc3NpYmls
aXR5VmFsdWUuaDogQWRkZWQuCisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmZvbnRMb2FkVGltaW5nT3ZlcnJpZGUpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTRm9udEZhY2U6OmZvbnRMb2FkVGltaW5nIGNvbnN0KToKKyAgICAgICAgKiBjc3MvRm9udExv
YWRUaW1pbmdPdmVycmlkZS5oOiBBZGRlZC4KKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2YWx1
YXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjptb25vY2hyb21lRXZhbHVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6aW52ZXJ0ZWRDb2xvcnNFdmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpk
eW5hbWljUmFuZ2VFdmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpwcmVmZXJzUmVkdWNlZE1v
dGlvbkV2YWx1YXRlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmFwcGx5UXVpY2tMb29rU2FuZGJveCk6CisgICAgICAgICogZWRpdGlu
Zy9FZGl0YWJsZUxpbmtCZWhhdmlvci5oOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRp
bmdCZWhhdmlvci5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yOjpzaG91bGRN
b3ZlQ2FyZXRUb0hvcml6b250YWxCb3VuZGFyeVdoZW5QYXN0VG9wT3JCb3R0b20gY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yOjpzaG91bGRDb25zaWRlclNlbGVjdGlv
bkFzRGlyZWN0aW9uYWwgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9y
OjpzaG91bGRDZW50ZXJBbGlnbldoZW5TZWxlY3Rpb25Jc1JldmVhbGVkIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkVkaXRpbmdCZWhhdmlvcjo6c2hvdWxkVG9nZ2xlU3R5bGVCYXNlZE9uU3Rh
cnRPZlNlbGVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3I6
OnNob3VsZEFsd2F5c0dyb3dTZWxlY3Rpb25XaGVuRXh0ZW5kaW5nVG9Cb3VuZGFyeSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3I6OnNob3VsZFNlbGVjdE9uQ29udGV4
dHVhbE1lbnVDbGljayBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3I6
OnNob3VsZEFsbG93U3BlbGxpbmdTdWdnZXN0aW9uc1dpdGhvdXRTZWxlY3Rpb24gY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yOjpzaG91bGROYXZpZ2F0ZUJhY2tPbkJh
Y2tzcGFjZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3I6OnNob3Vs
ZEV4dGVuZFNlbGVjdGlvbkJ5V29yZE9yTGluZUFjcm9zc0NhcmV0IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRpbmdCZWhhdmlvcjo6c2hvdWxkU2tpcFNwYWNlV2hlbk1vdmluZ1JpZ2h0
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRpbmdCZWhhdmlvcjo6c2hvdWxkUmViYWxh
bmNlV2hpdGVTcGFjZXNJblNlY3VyZUZpZWxkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRpbmdCZWhhdmlvcjo6c2hvdWxkU2VsZWN0QmFzZWRPbkRpY3Rpb25hcnlMb29rdXAgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yOjpzaG91bGRBbHdheXNFeHRlbmRT
ZWxlY3Rpb25Gcm9tRXh0ZW50RW5kcG9pbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dGluZ0JlaGF2aW9yOjpzaG91bGRNb3ZlU2VsZWN0aW9uVG9FbmRXaGVuRm9jdXNpbmdUZXh0SW5w
dXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yOjpzaG91bGRBbHdh
eXNTbWFydERlbGV0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3I6
OnNob3VsZFNtYXJ0SW5zZXJ0RGVsZXRlUGFyYWdyYXBocyBjb25zdCk6CisgICAgICAgICogZWRp
dGluZy9FZGl0aW5nQmVoYXZpb3JUeXBlLmg6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvRWRp
dGluZ0JlaGF2aW9yVHlwZXMuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmJlaGF2aW9yIGNvbnN0KToKKyAgICAgICAg
KiBlZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24uaDoKKyAgICAgICAgKiBlZGl0aW5nL2NvY29h
L0RhdGFEZXRlY3Rpb24ubW06CisgICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RVUkxTdHJpbmdG
b3JSZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGFpbnMpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6cmVtb3ZlUmVzdWx0TGlua3NGcm9tQW5jaG9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OnNlYXJjaEZvckxpbmtSZW1vdmluZ0V4aXN0aW5nRERMaW5rcyk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpkYXRhRGV0ZWN0b3JUeXBlRm9yQ2F0ZWdvcnkpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6ZGF0YURldGVjdG9yU3RyaW5nRm9yUGF0aCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpidWlsZFF1ZXJ5KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OnF1ZXJ5T2Zmc2V0Q29tcGFyZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpE
YXRhRGV0ZWN0aW9uOjpyZW1vdmVEYXRhRGV0ZWN0ZWRMaW5rc0luRG9jdW1lbnQpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6RGF0YURldGVjdGlvbjo6ZGV0ZWN0Q29udGVudEluUmFuZ2Up
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGF0YURldGVjdGlvbjo6ZGF0YURldGVjdG9y
VVJMUHJvdG9jb2wpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGF0YURldGVjdGlvbjo6
aXNEYXRhRGV0ZWN0b3JVUkwpOiBEZWxldGVkLgorICAgICAgICAqIGVkaXRpbmcvY29jb2EvRGF0
YURldGVjdG9yVHlwZXMuaDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9tYXJrdXAuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUGFnZUZvclNhbml0aXppbmdXZWJDb250ZW50KToKKyAg
ICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxBbmNob3JFbGVtZW50OjpzZXRBY3RpdmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFuY2hv
ckVsZW1lbnQ6OnRyZWF0TGlua0FzTGl2ZUZvckV2ZW50VHlwZSBjb25zdCk6CisgICAgICAgICog
aHRtbC9wYXJzZXIvSFRNTFBhcnNlck9wdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFBhcnNlck9wdGlvbnM6OkhUTUxQYXJzZXJPcHRpb25zKToKKyAgICAgICAgKiBodG1sL3BhcnNl
ci9IVE1MUGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeS5oOiBBZGRlZC4KKyAgICAgICAgKiBsb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNoZWNr
TG9hZENvbXBsZXRlRm9yVGhpc0ZyYW1lKToKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OnBv
cHVsYXRlKToKKyAgICAgICAgKiBwYWdlL0RlYnVnT3ZlcmxheVJlZ2lvbnMuaDogQWRkZWQuCisg
ICAgICAgICogcGFnZS9EZWJ1Z1BhZ2VPdmVybGF5cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
ZWJ1Z1BhZ2VPdmVybGF5czo6dXBkYXRlT3ZlcmxheVJlZ2lvblZpc2liaWxpdHkpOgorICAgICAg
ICAoV2ViQ29yZTo6RGVidWdQYWdlT3ZlcmxheXM6OnNldHRpbmdzQ2hhbmdlZCk6CisgICAgICAg
ICogcGFnZS9EZWJ1Z1BhZ2VPdmVybGF5cy5oOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6dXNlSGFuZEN1cnNvcik6Cisg
ICAgICAgICogcGFnZS9GcmFtZUZsYXR0ZW5pbmcuaDogQWRkZWQuCisgICAgICAgICogcGFnZS9G
cmFtZVZpZXcuaDoKKyAgICAgICAgKiBwYWdlL1BERkltYWdlQ2FjaGluZ1BvbGljeS5oOiBBZGRl
ZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2hv
dWxkQnVpbGRFZGl0YWJsZVJlZ2lvbiBjb25zdCk6CisgICAgICAgICogcGFnZS9TZWN1cml0eU9y
aWdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6Y2FuQWNjZXNzU3Rv
cmFnZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6ZG9tYWluRm9y
Q2FjaGVQYXJ0aXRpb24gY29uc3QpOgorICAgICAgICAqIHBhZ2UvU2VjdXJpdHlPcmlnaW4uaDoK
KyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6CisgICAgICAgICogcGFnZS9TZXR0aW5nc0Jh
c2UuaDoKKyAgICAgICAgKiBwYWdlL1N0b3JhZ2VCbG9ja2luZ1BvbGljeS5oOiBBZGRlZC4KKyAg
ICAgICAgKiBwYWdlL1RleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IuaDogQWRk
ZWQuCisgICAgICAgICogcGFnZS9Vc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5Lmg6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL0RyYWdJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nn
L1BERkRvY3VtZW50SW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UERGRG9jdW1lbnRJbWFn
ZTo6dXBkYXRlQ2FjaGVkSW1hZ2VJZk5lZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvUERGRG9jdW1lbnRJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvRm9udFJl
bmRlcmluZ01vZGUuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0RGlyZWN0
aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6aXNMZWZ0VG9SaWdodERpcmVjdGlvbik6
CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0RmxhZ3MuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS90ZXh0L1dyaXRpbmdNb2RlLmg6CisgICAgICAgIChXZWJDb3JlOjptYWtlVGV4dEZsb3dJbml0
YWxpemVyKToKKyAgICAgICAgKFdlYkNvcmU6Om1ha2VUZXh0Rmxvdyk6CisgICAgICAgIChXZWJD
b3JlOjppc1JldmVyc2VkVGV4dEZsb3cpOgorICAgICAgICAoV2ViQ29yZTo6aXNGbGlwcGVkVGV4
dEZsb3cpOgorICAgICAgICAoV2ViQ29yZTo6aXNWZXJ0aWNhbFRleHRGbG93KToKKyAgICAgICAg
KFdlYkNvcmU6OmlzVmVydGljYWxXcml0aW5nTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjppc0Zs
aXBwZWRXcml0aW5nTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjppc0hvcml6b250YWxXcml0aW5n
TW9kZSk6CisgICAgICAgIChXZWJDb3JlOjppc0ZsaXBwZWRMaW5lc1dyaXRpbmdNb2RlKToKKyAg
ICAgICAgKFdlYkNvcmU6OmlzSG9yaXpvbnRhbFBoeXNpY2FsU2lkZSk6CisgICAgICAgIChXZWJD
b3JlOjptaXJyb3JQaHlzaWNhbFNpZGUpOgorICAgICAgICAoV2ViQ29yZTo6cm90YXRlUGh5c2lj
YWxTaWRlKToKKyAgICAgICAgKFdlYkNvcmU6Om1hcExvZ2ljYWxTaWRlVG9QaHlzaWNhbFNpZGUp
OgorICAgICAgICAoV2ViQ29yZTo6aXNMZWZ0VG9SaWdodERpcmVjdGlvbik6IERlbGV0ZWQuCisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyOjpjYWxjdWxhdGVDbGlwUmVjdHMgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJC
YWNraW5nOjpwYWludERlYnVnT3ZlcmxheXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXJCYWNraW5nOjpwYWludENvbnRlbnRzKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpC
YWNrdXApOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpyZXN0
b3JlVG8pOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6c2V0RWRpdGluZ0Jl
aGF2aW9yKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldFN0b3JhZ2VC
bG9ja2luZ1BvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRQ
REZJbWFnZUNhY2hpbmdQb2xpY3kpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGw6CisgICAgICAgICog
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZVBhZ2VGb3JTZXJ2aWNlV29ya2VyKToKKyAgICAgICAgKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6U2VydmljZVdvcmtlclRocmVhZFByb3h5
KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFk
UHJveHkuaDoKKwogMjAyMC0xMS0xNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkIGEgV2ViUlRDIFNGcmFtZSB0cmFuc2Zvcm0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZQkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQkod29ya2luZyBjb3B5KQpAQCAtMTg4LDYgKzE4OCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVf
RlJBTUVXT1JLX0hFQURFUlMKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJ
bnRlcmZhY2UuaAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5o
CiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oCisgICAgYWNjZXNz
aWJpbGl0eS9Gb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUuaAogCiAgICAgYWNjZXNzaWJpbGl0eS9p
c29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCiAgICAgYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZFRyZWUuaApAQCAtMzUzLDYgKzM1NCw3IEBAIHNldChXZWJDb3JlX1BS
SVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBjc3MvRGVwcmVjYXRlZENTU09NUmVjdC5oCiAg
ICAgY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmgKICAgICBjc3MvRGVwcmVjYXRlZENTU09NVmFs
dWVMaXN0LmgKKyAgICBjc3MvRm9udExvYWRUaW1pbmdPdmVycmlkZS5oCiAgICAgY3NzL0xlbmd0
aEZ1bmN0aW9ucy5oCiAgICAgY3NzL01lZGlhTGlzdC5oCiAgICAgY3NzL01lZGlhUXVlcnlFdmFs
dWF0b3IuaApAQCAtNTI2LDkgKzUyOCwxMCBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09S
S19IRUFERVJTCiAgICAgZWRpdGluZy9EaWN0YXRpb25Db250ZXh0LmgKICAgICBlZGl0aW5nL0Rp
Y3Rpb25hcnlQb3B1cEluZm8uaAogICAgIGVkaXRpbmcvRWRpdEFjdGlvbi5oCisgICAgZWRpdGlu
Zy9FZGl0YWJsZUxpbmtCZWhhdmlvci5oCiAgICAgZWRpdGluZy9FZGl0aW5nLmgKICAgICBlZGl0
aW5nL0VkaXRpbmdCZWhhdmlvci5oCi0gICAgZWRpdGluZy9FZGl0aW5nQmVoYXZpb3JUeXBlcy5o
CisgICAgZWRpdGluZy9FZGl0aW5nQmVoYXZpb3JUeXBlLmgKICAgICBlZGl0aW5nL0VkaXRpbmdC
b3VuZGFyeS5oCiAgICAgZWRpdGluZy9FZGl0aW5nU3R5bGUuaAogICAgIGVkaXRpbmcvRWRpdG9y
LmgKQEAgLTY5Myw2ICs2OTYsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFE
RVJTCiAKICAgICBodG1sL3BhcnNlci9QYXJzaW5nVXRpbGl0aWVzLmgKICAgICBodG1sL3BhcnNl
ci9IVE1MUGFyc2VySWRpb21zLmgKKyAgICBodG1sL3BhcnNlci9IVE1MUGFyc2VyU2NyaXB0aW5n
RmxhZ1BvbGljeS5oCiAKICAgICBodG1sL3RyYWNrL0F1ZGlvVHJhY2suaAogICAgIGh0bWwvdHJh
Y2svVGV4dFRyYWNrLmgKQEAgLTgzMSw2ICs4MzUsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZS
QU1FV09SS19IRUFERVJTCiAgICAgcGFnZS9ET01XaW5kb3dFeHRlbnNpb24uaAogICAgIHBhZ2Uv
RE9NV2luZG93UHJvcGVydHkuaAogICAgIHBhZ2UvRGF0YWJhc2VQcm92aWRlci5oCisgICAgcGFn
ZS9EZWJ1Z092ZXJsYXlSZWdpb25zLmgKICAgICBwYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmgKICAg
ICBwYWdlL0RlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oCiAgICAgcGFnZS9EZXZpY2VDbGllbnQu
aApAQCAtODQ4LDYgKzg1Myw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURF
UlMKICAgICBwYWdlL0ZvY3VzRGlyZWN0aW9uLmgKICAgICBwYWdlL0ZyYW1lLmgKICAgICBwYWdl
L0ZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5oCisgICAgcGFnZS9GcmFtZUZsYXR0ZW5pbmcuaAog
ICAgIHBhZ2UvRnJhbWVJZGVudGlmaWVyLmgKICAgICBwYWdlL0ZyYW1lU25hcHNob3R0aW5nLmgK
ICAgICBwYWdlL0ZyYW1lVHJlZS5oCkBAIC04NjAsNiArODY2LDcgQEAgc2V0KFdlYkNvcmVfUFJJ
VkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBhZ2UvTWVkaWFQcm9kdWNlci5oCiAgICAgcGFn
ZS9NZW1vcnlSZWxlYXNlLmgKICAgICBwYWdlL05hdmlnYXRvcklzTG9nZ2VkSW4uaAorICAgIHBh
Z2UvUERGSW1hZ2VDYWNoaW5nUG9saWN5LmgKICAgICBwYWdlL1BhZ2UuaAogICAgIHBhZ2UvUGFn
ZUNvbmZpZ3VyYXRpb24uaAogICAgIHBhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaApAQCAtODk2LDEy
ICs5MDMsMTUgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBh
Z2UvU29ja2V0UHJvdmlkZXIuaAogICAgIHBhZ2UvU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5o
CiAgICAgcGFnZS9TcGVlY2hTeW50aGVzaXNDbGllbnQuaAorICAgIHBhZ2UvU3RvcmFnZUJsb2Nr
aW5nUG9saWN5LmgKICAgICBwYWdlL1N1c3BlbmRhYmxlVGltZXIuaAorICAgIHBhZ2UvVGV4dERp
cmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvci5oCiAgICAgcGFnZS9UZXh0SW5kaWNhdG9y
LmgKICAgICBwYWdlL1VzZXJDb250ZW50Q29udHJvbGxlci5oCiAgICAgcGFnZS9Vc2VyQ29udGVu
dFByb3ZpZGVyLmgKICAgICBwYWdlL1VzZXJDb250ZW50VHlwZXMuaAogICAgIHBhZ2UvVXNlckNv
bnRlbnRVUkxQYXR0ZXJuLmgKKyAgICBwYWdlL1VzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3ku
aAogICAgIHBhZ2UvVXNlck1lc3NhZ2VIYW5kbGVyLmgKICAgICBwYWdlL1VzZXJNZXNzYWdlSGFu
ZGxlckRlc2NyaXB0b3IuaAogICAgIHBhZ2UvVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5o
CkBAIC0xMzgxLDExICsxMzkxLDEzIEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hF
QURFUlMKICAgICBwbGF0Zm9ybS9zcWwvU1FMaXRlVHJhbnNhY3Rpb24uaAogCiAgICAgcGxhdGZv
cm0vdGV4dC9CaWRpQ29udGV4dC5oCisgICAgcGxhdGZvcm0vdGV4dC9Gb250UmVuZGVyaW5nTW9k
ZS5oCiAgICAgcGxhdGZvcm0vdGV4dC9TdHJpbmdXaXRoRGlyZWN0aW9uLmgKICAgICBwbGF0Zm9y
bS90ZXh0L1RleHRCb3VuZGFyaWVzLmgKICAgICBwbGF0Zm9ybS90ZXh0L1RleHRDaGVja2VyQ2xp
ZW50LmgKICAgICBwbGF0Zm9ybS90ZXh0L1RleHRDaGVja2luZy5oCiAgICAgcGxhdGZvcm0vdGV4
dC9UZXh0Q29kZWMuaAorICAgIHBsYXRmb3JtL3RleHQvVGV4dERpcmVjdGlvbi5oCiAgICAgcGxh
dGZvcm0vdGV4dC9UZXh0RW5jb2RpbmcuaAogICAgIHBsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5n
UmVnaXN0cnkuaAogICAgIHBsYXRmb3JtL3RleHQvVGV4dEZsYWdzLmgKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy5yYgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MucmIJKHJldmlzaW9uIDI2OTgzMCkKKysr
IFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy5yYgkod29ya2luZyBjb3B5
KQpAQCAtMTMyLDcgKzEzMiw3IEBAIGNsYXNzIFNldHRpbmcKICAgICAgIG5hbWUKICAgICBlbHNp
ZiBuYW1lLnN0YXJ0X3dpdGg/KCJDU1MiLCAiWFNTIiwgIkZUUCIsICJET00iLCAiRE5TIiwgIlBE
RiIsICJJQ0UiLCAiSERSIikKICAgICAgIG5hbWVbMC4uMl0uZG93bmNhc2UgKyBuYW1lWzMuLm5h
bWUubGVuZ3RoXQotICAgIGVsc2lmIG5hbWUuc3RhcnRfd2l0aD8oIkhUVFAiKQorICAgIGVsc2lm
IG5hbWUuc3RhcnRfd2l0aD8oIkhUVFAiLCAiSFRNTCIpCiAgICAgICBuYW1lWzAuLjNdLmRvd25j
YXNlICsgbmFtZVs0Li5uYW1lLmxlbmd0aF0KICAgICBlbHNlCiAgICAgICBuYW1lWzBdLmRvd25j
YXNlICsgbmFtZVsxLi5uYW1lLmxlbmd0aF0KQEAgLTE3NSw3ICsxNzUsOSBAQCBjbGFzcyBTZXR0
aW5nCiAgIGVuZAogCiAgIGRlZiBzZXR0ZXJGdW5jdGlvbk5hbWUKLSAgICBpZiBAbmFtZS5zdGFy
dF93aXRoPygiY3NzIiwgInhzcyIsICJmdHAiLCAiZG9tIiwgImRucyIsICJpY2UiLCAiaGRyIikK
KyAgICBpZiBAbmFtZS5zdGFydF93aXRoPygiaHRtbCIpCisgICAgICAic2V0IiArIEBuYW1lWzAu
LjNdLnVwY2FzZSArIEBuYW1lWzQuLkBuYW1lLmxlbmd0aF0KKyAgICBlbHNpZiBAbmFtZS5zdGFy
dF93aXRoPygiY3NzIiwgInhzcyIsICJmdHAiLCAiZG9tIiwgImRucyIsICJpY2UiLCAiaGRyIikK
ICAgICAgICJzZXQiICsgQG5hbWVbMC4uMl0udXBjYXNlICsgQG5hbWVbMy4uQG5hbWUubGVuZ3Ro
XQogICAgIGVsc2UKICAgICAgICJzZXQiICsgQG5hbWVbMF0udXBjYXNlICsgQG5hbWVbMS4uQG5h
bWUubGVuZ3RoXQpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMzg1LDcg
KzEzODUsNyBAQAogCQk0RTE5NTkyQTBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFRdWVyeS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEUxOTU5MjQwQTM5
REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk0RTE5NTkyQzBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFR
dWVyeUV2YWx1YXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNEUxOTU5MjYwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnlFdmFsdWF0b3IuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0RjE1MzRE
RTExQjUzMkVDMDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9yLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RjE1MzRERDExQjUzMkVDMDAyMUZEODYgLyog
RWRpdGluZ0JlaGF2aW9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKLQkJNEYxNTM0RTAxMUI1MzMwMjAwMjFGRDg2IC8qIEVkaXRpbmdCZWhhdmlvclR5
cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RjE1
MzRERjExQjUzMzAyMDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9yVHlwZXMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0RjE1MzRFMDExQjUzMzAy
MDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9yVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEYxNTM0REYxMUI1MzMwMjAwMjFGRDg2IC8qIEVkaXRp
bmdCZWhhdmlvclR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk0RkE2NUE2QzExMDhBQkVEMDAyNjE1RTAgLyogTWF0aE1MU3BhY2VFbGVtZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RkE2NUE2
QTExMDhBQkVEMDAyNjE1RTAgLyogTWF0aE1MU3BhY2VFbGVtZW50LmggKi87IH07CiAJCTUwMUJB
QUE5MTM5NTBFMkMwMEY3QUNFQiAvKiBXaW5kUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTAxQkFBQTgxMzk1MEUyQzAwRjdBQ0VCIC8qIFdpbmRS
dWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NTA0QUFDQ0UxODM0NDU1OTAwRTNEOUJDIC8qIEluc3BlY3Rvck5vZGVGaW5kZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwNEFBQ0NDMTgzNDQ1NTkw
MEUzRDlCQyAvKiBJbnNwZWN0b3JOb2RlRmluZGVyLmggKi87IH07CkBAIC0zOTEyLDYgKzM5MTIs
MTkgQEAKIAkJQkM0OTE4QzcwQkZFQTA1MDAwOUQ2MzE2IC8qIEpTSFRNTEZyYW1lRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0OTE4QzEw
QkZFQTA1MDAwOUQ2MzE2IC8qIEpTSFRNTEZyYW1lRWxlbWVudC5oICovOyB9OwogCQlCQzQ5MThD
OTBCRkVBMDUwMDA5RDYzMTYgLyogSlNIVE1MSUZyYW1lRWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0OTE4QzMwQkZFQTA1MDAwOUQ2MzE2
IC8qIEpTSFRNTElGcmFtZUVsZW1lbnQuaCAqLzsgfTsKIAkJQkM0OTFCNzkwQzAyM0VGRDAwOUQ2
MzE2IC8qIEpTSFRNTE1hcnF1ZWVFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzQ5MUI3NzBDMDIzRUZEMDA5RDYzMTYgLyogSlNIVE1MTWFy
cXVlZUVsZW1lbnQuaCAqLzsgfTsKKwkJQkM0QTUzMjMyNTYwNTI3NjAwMjhDNTkyIC8qIEVkaXRh
YmxlTGlua0JlaGF2aW9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzRBNTMyMTI1NjA1MjcwMDAyOEM1OTIgLyogRWRpdGFibGVMaW5rQmVoYXZpb3Iu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlCQzRB
NTMyNTI1NjA1NTVGMDAyOEM1OTIgLyogVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhh
dmlvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0
QTUzMjQyNTYwNTU1OTAwMjhDNTkyIC8qIFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVo
YXZpb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQlCQzRBNTMyNzI1NjA1NUQzMDAyOEM1OTIgLyogVXNlckludGVyZmFjZURpcmVjdGlvblBvbGlj
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0QTUz
MjYyNTYwNTVEMzAwMjhDNTkyIC8qIFVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3kuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlCQzRBNTMyOTI1
NjA1NjNCMDAyOEM1OTIgLyogUERGSW1hZ2VDYWNoaW5nUG9saWN5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzRBNTMyODI1NjA1NjNCMDAyOEM1OTIg
LyogUERGSW1hZ2VDYWNoaW5nUG9saWN5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJQkM0QTUzMkIyNTYwNTY2RTAwMjhDNTkyIC8qIEZyYW1lRmxh
dHRlbmluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkM0QTUzMkEyNTYwNTY2RTAwMjhDNTkyIC8qIEZyYW1lRmxhdHRlbmluZy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUJDNEE1MzJEMjU2MDU2RDUw
MDI4QzU5MiAvKiBEZWJ1Z092ZXJsYXlSZWdpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzRBNTMyQzI1NjA1NkQ1MDAyOEM1OTIgLyogRGVidWdP
dmVybGF5UmVnaW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCUJDNEE1MzJGMjU2MDU3Q0QwMDI4QzU5MiAvKiBGb250TG9hZFRpbWluZ092ZXJy
aWRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzRB
NTMyRTI1NjA1N0NEMDAyOEM1OTIgLyogRm9udExvYWRUaW1pbmdPdmVycmlkZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUJDNEE1MzMxMjU2MDU5
MDMwMDI4QzU5MiAvKiBGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNEE1MzMwMjU2MDU5MDMwMDI4QzU5MiAv
KiBGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQlCQzRBNTMzMzI1NjA1OTgzMDAyOEM1OTIgLyogSFRNTFBh
cnNlclNjcmlwdGluZ0ZsYWdQb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDNEE1MzMyMjU2MDU5ODMwMDI4QzU5MiAvKiBIVE1MUGFyc2VyU2Ny
aXB0aW5nRmxhZ1BvbGljeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCUJDNEE1MzM1MjU2MDVBNTYwMDI4QzU5MiAvKiBEYXRhRGV0ZWN0b3JUeXBl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0QTUz
MzQyNTYwNUE1NjAwMjhDNTkyIC8qIERhdGFEZXRlY3RvclR5cGVzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQkM0QTUzMzcyNTYwNUFFMTAwMjhD
NTkyIC8qIFN0b3JhZ2VCbG9ja2luZ1BvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0QTUzMzYyNTYwNUFFMTAwMjhDNTkyIC8qIFN0b3JhZ2VC
bG9ja2luZ1BvbGljeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCUJDNEE1MzM5MjU2MDYzOTgwMDI4QzU5MiAvKiBGb250UmVuZGVyaW5nTW9kZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0QTUzMzgy
NTYwNjM5ODAwMjhDNTkyIC8qIEZvbnRSZW5kZXJpbmdNb2RlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQkM0QTUzM0IyNTYwNjRFMTAwMjhDNTky
IC8qIFRleHREaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDNEE1MzNBMjU2MDY0RTEwMDI4QzU5MiAvKiBUZXh0RGlyZWN0aW9uLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM1MTE1NkUx
MkIxNzQ5QzAwQzk2NzU0IC8qIFNjcm9sbEFuaW1hdG9yTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1MTE1NkQxMkIxNzQ5QzAwQzk2NzU0IC8q
IFNjcm9sbEFuaW1hdG9yTWFjLm1tICovOyB9OwogCQlCQzUzQzVGNTBEQTU2QjkyMDAyMUVCNUQg
LyogR3JhZGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDNTNDNUY0MERBNTZCOTIwMDIxRUI1RCAvKiBHcmFkaWVudC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDNTNDNjkyMERBNTkxMTQwMDIx
RUI1RCAvKiBDU1NHcmFkaWVudFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzUzQzY5MTBEQTU5MTE0MDAyMUVCNUQgLyogQ1NTR3JhZGllbnRW
YWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBA
IC04MzU2LDcgKzgzNjksNyBAQAogCQk0RTE5NTkyNTBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFR
dWVyeUV2YWx1YXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TWVkaWFRdWVyeUV2YWx1YXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRF
MTk1OTI2MEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5RXZhbHVhdG9yLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVF1ZXJ5RXZhbHVhdG9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGMTUzNEREMTFCNTMyRUMwMDIxRkQ4NiAvKiBFZGl0aW5n
QmVoYXZpb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRWRpdGluZ0JlaGF2
aW9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTRGMTUzNERGMTFCNTMzMDIwMDIx
RkQ4NiAvKiBFZGl0aW5nQmVoYXZpb3JUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBFZGl0aW5nQmVoYXZpb3JUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0RjE1MzRERjExQjUzMzAyMDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9yVHlwZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFZGl0aW5nQmVoYXZpb3JUeXBlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGQTY1QTY5MTEwOEFCRUQwMDI2MTVFMCAvKiBN
YXRoTUxTcGFjZUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTWF0aE1MU3BhY2VFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NEZBNjVBNkExMTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFNwYWNlRWxlbWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYXRoTUxTcGFjZUVsZW1lbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEZBQjQ4NjQxNjQzQTY2RDAwRjcwQzA3IC8qIEVsZW1lbnRS
YXJlRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFbGVtZW50
UmFyZURhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM4MTgsNiArMTM4
MzEsMTkgQEAKIAkJQkM0OTFCNEUwQzAyM0UyRDAwOUQ2MzE2IC8qIEhUTUxNYXJxdWVlRWxlbWVu
dC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTE1hcnF1ZWVFbGVtZW50LmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM0OTFCNzYwQzAyM0VGRDAwOUQ2MzE2IC8qIEpT
SFRNTE1hcnF1ZWVFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU0hUTUxNYXJxdWVlRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUJDNDkxQjc3MEMwMjNFRkQwMDlENjMxNiAvKiBKU0hUTUxNYXJxdWVlRWxlbWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MTWFycXVlZUVsZW1lbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM0QTUzMjEyNTYwNTI3MDAwMjhDNTkyIC8q
IEVkaXRhYmxlTGlua0JlaGF2aW9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVkaXRhYmxlTGlua0JlaGF2
aW9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDNEE1MzI0MjU2MDU1NTkwMDI4
QzU5MiAvKiBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM0QTUzMjYyNTYwNTVEMzAwMjhDNTkyIC8qIFVzZXJJbnRl
cmZhY2VEaXJlY3Rpb25Qb2xpY3kuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlckludGVyZmFjZURpcmVj
dGlvblBvbGljeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzRBNTMyODI1NjA1
NjNCMDAyOEM1OTIgLyogUERGSW1hZ2VDYWNoaW5nUG9saWN5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBE
RkltYWdlQ2FjaGluZ1BvbGljeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzRB
NTMyQTI1NjA1NjZFMDAyOEM1OTIgLyogRnJhbWVGbGF0dGVuaW5nLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEZyYW1lRmxhdHRlbmluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzRBNTMy
QzI1NjA1NkQ1MDAyOEM1OTIgLyogRGVidWdPdmVybGF5UmVnaW9ucy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEZWJ1Z092ZXJsYXlSZWdpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJD
NEE1MzJFMjU2MDU3Q0QwMDI4QzU5MiAvKiBGb250TG9hZFRpbWluZ092ZXJyaWRlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEZvbnRMb2FkVGltaW5nT3ZlcnJpZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQkM0QTUzMzAyNTYwNTkwMzAwMjhDNTkyIC8qIEZvcmNlZEFjY2Vzc2liaWxpdHlW
YWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM0QTUzMzIyNTYwNTk4MzAwMjhDNTkyIC8qIEhUTUxQ
YXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxQYXJzZXJTY3Jp
cHRpbmdGbGFnUG9saWN5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDNEE1MzM0
MjU2MDVBNTYwMDI4QzU5MiAvKiBEYXRhRGV0ZWN0b3JUeXBlcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
YXRhRGV0ZWN0b3JUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzRBNTMz
NjI1NjA1QUUxMDAyOEM1OTIgLyogU3RvcmFnZUJsb2NraW5nUG9saWN5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFN0b3JhZ2VCbG9ja2luZ1BvbGljeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlCQzRBNTMzODI1NjA2Mzk4MDAyOEM1OTIgLyogRm9udFJlbmRlcmluZ01vZGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRm9udFJlbmRlcmluZ01vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQkM0QTUzM0EyNTYwNjRFMTAwMjhDNTkyIC8qIFRleHREaXJlY3Rpb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gVGV4dERpcmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzUx
MTU2RDEyQjE3NDlDMDBDOTY3NTQgLyogU2Nyb2xsQW5pbWF0b3JNYWMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxBbmltYXRvck1hYy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1MTU4MEEwQzAzRDQwNDAwOEJCMEVFIC8qIEpTSFRN
TERvY3VtZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU0hUTUxEb2N1bWVudEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUJDNTNDNUY0MERBNTZCOTIwMDIxRUI1RCAvKiBHcmFkaWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBHcmFkaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTg4NzgsNiArMTg5MDQsNyBAQAogCQkJCTI5ODFDQUFGMTMxODIyRUMwMEQxMkYyQSAvKiBB
WE9iamVjdENhY2hlLmNwcCAqLywKIAkJCQkyOUE4MTIxQTBGQkI5QzFEMDA1MTAyOTMgLyogQVhP
YmplY3RDYWNoZS5oICovLAogCQkJCTkxQzlGMkY4MUFFM0JFMjQwMDk1QjYxQyAvKiBBWFRleHRT
dGF0ZUNoYW5nZUludGVudC5oICovLAorCQkJCUJDNEE1MzMwMjU2MDU5MDMwMDI4QzU5MiAvKiBG
b3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gYWNjZXNzaWJp
bGl0eTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yMTc4MCw2ICsyMTgwNyw3IEBA
CiAJCQkJOTc1Q0EyODkxMzAzNjVGODAwRTk5QUQ5IC8qIENyeXB0by5pZGwgKi8sCiAJCQkJMUFD
QjJCMjExQTU3MzNGNDAwMzMzMzkyIC8qIERhdGFiYXNlUHJvdmlkZXIuY3BwICovLAogCQkJCTFB
Q0IyQjIyMUE1NzMzRjQwMDMzMzM5MiAvKiBEYXRhYmFzZVByb3ZpZGVyLmggKi8sCisJCQkJQkM0
QTUzMkMyNTYwNTZENTAwMjhDNTkyIC8qIERlYnVnT3ZlcmxheVJlZ2lvbnMuaCAqLywKIAkJCQkw
RjZBMTJCQjFBMDA5MjM3MDBDNkRFNzIgLyogRGVidWdQYWdlT3ZlcmxheXMuY3BwICovLAogCQkJ
CTBGNkExMkJDMUEwMDkyMzcwMEM2REU3MiAvKiBEZWJ1Z1BhZ2VPdmVybGF5cy5oICovLAogCQkJ
CTdDQkQxMjlDMUY5OEI1RkYwMDEyN0QyOSAvKiBEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuY3Bw
ICovLApAQCAtMjE4MzIsNiArMjE4NjAsNyBAQAogCQkJCTY1QkYwMjJBMDk3NDgxNjMwMEM0MzE5
NiAvKiBGcmFtZS5oICovLAogCQkJCTk3NEE4NjIwMTRCN0FEQkIwMDNGREM3NiAvKiBGcmFtZURl
c3RydWN0aW9uT2JzZXJ2ZXIuY3BwICovLAogCQkJCTk3NEE4NjIxMTRCN0FEQkIwMDNGREM3NiAv
KiBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaCAqLywKKwkJCQlCQzRBNTMyQTI1NjA1NjZFMDAy
OEM1OTIgLyogRnJhbWVGbGF0dGVuaW5nLmggKi8sCiAJCQkJMEYxMTc4MTYyMkUzQzQ3RTAwOEJE
NTcwIC8qIEZyYW1lSWRlbnRpZmllci5oICovLAogCQkJCUM0Q0Q2Mjk4MTgzODM3NjYwMDdFQkFG
MSAvKiBGcmFtZVNuYXBzaG90dGluZy5jcHAgKi8sCiAJCQkJQzRDRDYyOTkxODM4Mzc2NjAwN0VC
QUYxIC8qIEZyYW1lU25hcHNob3R0aW5nLmggKi8sCkBAIC0yMTkwMiw2ICsyMTkzMSw3IEBACiAJ
CQkJMkQ1QzlDRkUxOUM3QjUyRTAwQjNDNUMxIC8qIFBhZ2VPdmVybGF5Q29udHJvbGxlci5oICov
LAogCQkJCTM3MUU2NUNEMTM2NjFFRUQwMEJFRURCMCAvKiBQYWdlU2VyaWFsaXplci5jcHAgKi8s
CiAJCQkJMzcxRTY1Q0IxMzY2MUVEQzAwQkVFREIwIC8qIFBhZ2VTZXJpYWxpemVyLmggKi8sCisJ
CQkJQkM0QTUzMjgyNTYwNTYzQjAwMjhDNTkyIC8qIFBERkltYWdlQ2FjaGluZ1BvbGljeS5oICov
LAogCQkJCTdDNzI0NzFFMjUxNjc1ODgwMEMzNjNDRCAvKiBQZXJmb3JtYW5jZStOYXZpZ2F0aW9u
VGltaW5nLmlkbCAqLywKIAkJCQk3QzcyNDcxQzI1MTY3NENFMDBDMzYzQ0QgLyogUGVyZm9ybWFu
Y2UrUGVyZm9ybWFuY2VUaW1lbGluZS5pZGwgKi8sCiAJCQkJN0M3MjQ3MUQyNTE2NzUyQzAwQzM2
M0NEIC8qIFBlcmZvcm1hbmNlK1Jlc291cmNlVGltaW5nLmlkbCAqLywKQEAgLTIyMDI1LDggKzIy
MDU1LDEwIEBACiAJCQkJNjI2Q0RFMEQxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0
aW9uLmggKi8sCiAJCQkJOTNBMDQ4MjYyNTQ5NTUwMDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0
aW9uUHJvdmlkZXIuaCAqLywKIAkJCQlDMTQ5MzgwNTIyMzQyNzE5MDAwQ0Q3MDcgLyogU3BlZWNo
U3ludGhlc2lzQ2xpZW50LmggKi8sCisJCQkJQkM0QTUzMzYyNTYwNUFFMTAwMjhDNTkyIC8qIFN0
b3JhZ2VCbG9ja2luZ1BvbGljeS5oICovLAogCQkJCTYyQzEyMTdBMTFBQjlFNzYwMDNDNDYyQyAv
KiBTdXNwZW5kYWJsZVRpbWVyLmNwcCAqLywKIAkJCQk2MkMxMjE3QjExQUI5RTc3MDAzQzQ2MkMg
LyogU3VzcGVuZGFibGVUaW1lci5oICovLAorCQkJCUJDNEE1MzI0MjU2MDU1NTkwMDI4QzU5MiAv
KiBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yLmggKi8sCiAJCQkJMkQ0Rjk2
RjExQTFFQ0MyNDAwOThCRjg4IC8qIFRleHRJbmRpY2F0b3IuY3BwICovLAogCQkJCTJENEY5NkYy
MUExRUNDMjQwMDk4QkY4OCAvKiBUZXh0SW5kaWNhdG9yLmggKi8sCiAJCQkJRjRFMTk2NUYyMUYy
NkU0RTAwMjg1MDc4IC8qIFVuZG9JdGVtLmNwcCAqLywKQEAgLTIyMDQyLDYgKzIyMDc0LDcgQEAK
IAkJCQkwMDNGMUZFOTExRTZBQjQzMDA4MjU4RDkgLyogVXNlckNvbnRlbnRUeXBlcy5oICovLAog
CQkJCUJDQUNGM0JBMTA3MjkyMUEwMEMwQzhBMyAvKiBVc2VyQ29udGVudFVSTFBhdHRlcm4uY3Bw
ICovLAogCQkJCUJDQUNGM0JCMTA3MjkyMUEwMEMwQzhBMyAvKiBVc2VyQ29udGVudFVSTFBhdHRl
cm4uaCAqLywKKwkJCQlCQzRBNTMyNjI1NjA1NUQzMDAyOEM1OTIgLyogVXNlckludGVyZmFjZURp
cmVjdGlvblBvbGljeS5oICovLAogCQkJCTdDM0I3OTZGMTkwODc1N0IwMEI0N0EyRCAvKiBVc2Vy
TWVzc2FnZUhhbmRsZXIuY3BwICovLAogCQkJCTdDM0I3OTcwMTkwODc1N0IwMEI0N0EyRCAvKiBV
c2VyTWVzc2FnZUhhbmRsZXIuaCAqLywKIAkJCQk3QzczRkIwRTE5MUVGNjBFMDA3REUwNjEgLyog
VXNlck1lc3NhZ2VIYW5kbGVyLmlkbCAqLywKQEAgLTIyNTQwLDYgKzIyNTczLDcgQEAKIAkJCQk1
Q0NDMjcwNjIyRDUzQjY4MDA5NjRGQTAgLyogQXV0b2ZpbGxFbGVtZW50cy5oICovLAogCQkJCUM1
MjI3REVGMUMzQzZERDcwMEY1RUQ1NCAvKiBEYXRhRGV0ZWN0aW9uLmggKi8sCiAJCQkJQzUyMjdE
RjAxQzNDNkRENzAwRjVFRDU0IC8qIERhdGFEZXRlY3Rpb24ubW0gKi8sCisJCQkJQkM0QTUzMzQy
NTYwNUE1NjAwMjhDNTkyIC8qIERhdGFEZXRlY3RvclR5cGVzLmggKi8sCiAJCQkJOTM3RkYzRDYx
QTEwMTMxQjAwOEVCQTMxIC8qIERpY3Rpb25hcnlMb29rdXAubW0gKi8sCiAJCQkJOUI1NUVFRTgx
QjNFODg5ODAwNTM0MkJDIC8qIEVkaXRvckNvY29hLm1tICovLAogCQkJCUY0MkNFQjU0MjE0MDMx
RUUwMDJEQ0E3MiAvKiBGb250QXR0cmlidXRlQ2hhbmdlc0NvY29hLm1tICovLApAQCAtMjI4NDYs
NiArMjI4ODAsNyBAQAogCQkJCUNFQ0FERkM1MTUzNzc4RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25D
b21tYW5kLmggKi8sCiAJCQkJOTM4NDMwQjIyNDc1REUzRjAwM0Y5NjE3IC8qIERpY3RhdGlvbkNv
bnRleHQuaCAqLywKIAkJCQkyRDU2NDZBRjFCOEY4NDkzMDAzQzQ5OTQgLyogRGljdGlvbmFyeVBv
cHVwSW5mby5oICovLAorCQkJCUJDNEE1MzIxMjU2MDUyNzAwMDI4QzU5MiAvKiBFZGl0YWJsZUxp
bmtCZWhhdmlvci5oICovLAogCQkJCUY0OUU5OEU0MjFERUU2QzEwMDlBRTU1RSAvKiBFZGl0QWN0
aW9uLmNwcCAqLywKIAkJCQk5MzMwOUQ5MzA5OUU2NDkxMDA1NkU1ODEgLyogRWRpdEFjdGlvbi5o
ICovLAogCQkJCTkzMzA5RDk0MDk5RTY0OTEwMDU2RTU4MSAvKiBFZGl0Q29tbWFuZC5jcHAgKi8s
CkBAIC0yMjg1Myw3ICsyMjg4OCw3IEBACiAJCQkJOTMzMDlEOTgwOTlFNjQ5MTAwNTZFNTgxIC8q
IEVkaXRpbmcuY3BwICovLAogCQkJCTkzMzA5RDk5MDk5RTY0OTEwMDU2RTU4MSAvKiBFZGl0aW5n
LmggKi8sCiAJCQkJNEYxNTM0REQxMUI1MzJFQzAwMjFGRDg2IC8qIEVkaXRpbmdCZWhhdmlvci5o
ICovLAotCQkJCTRGMTUzNERGMTFCNTMzMDIwMDIxRkQ4NiAvKiBFZGl0aW5nQmVoYXZpb3JUeXBl
cy5oICovLAorCQkJCTRGMTUzNERGMTFCNTMzMDIwMDIxRkQ4NiAvKiBFZGl0aW5nQmVoYXZpb3JU
eXBlLmggKi8sCiAJCQkJM0FDNjQ4QjExMjlFMTQ2NTAwQzNFQjI1IC8qIEVkaXRpbmdCb3VuZGFy
eS5oICovLAogCQkJCTlCQUI2QzZCMTI1NTA2MzEwMDE2MjZENCAvKiBFZGl0aW5nU3R5bGUuY3Bw
ICovLAogCQkJCTlCQUI2QzZBMTI1NTA2MzEwMDE2MjZENCAvKiBFZGl0aW5nU3R5bGUuaCAqLywK
QEAgLTIzODk1LDYgKzIzOTMwLDcgQEAKIAkJCQk5NzNGNDE4ODE2OUI5NUVGMDAwNkJGNjAgLyog
SFRNTFBhcnNlck9wdGlvbnMuaCAqLywKIAkJCQk5NzdCMzg1NzEyMjg4M0U5MDBCODFGRjggLyog
SFRNTFBhcnNlclNjaGVkdWxlci5jcHAgKi8sCiAJCQkJOTc3QjM4NTgxMjI4ODNFOTAwQjgxRkY4
IC8qIEhUTUxQYXJzZXJTY2hlZHVsZXIuaCAqLywKKwkJCQlCQzRBNTMzMjI1NjA1OTgzMDAyOEM1
OTIgLyogSFRNTFBhcnNlclNjcmlwdGluZ0ZsYWdQb2xpY3kuaCAqLywKIAkJCQk5NzdCMzg1OTEy
Mjg4M0U5MDBCODFGRjggLyogSFRNTFByZWxvYWRTY2FubmVyLmNwcCAqLywKIAkJCQk5NzdCMzg1
QTEyMjg4M0U5MDBCODFGRjggLyogSFRNTFByZWxvYWRTY2FubmVyLmggKi8sCiAJCQkJQThEMjIz
RkIxNkI1MkU0RTAwMTU3Mjg4IC8qIEhUTUxSZXNvdXJjZVByZWxvYWRlci5jcHAgKi8sCkBAIC0y
NjU1Nyw2ICsyNjU5Myw3IEBACiAJCQkJQ0VDQ0ZDM0ExNDE5NzNENTAwMkEwQUMxIC8qIERlY29k
ZUVzY2FwZVNlcXVlbmNlcy5oICovLAogCQkJCURGQzYxMEEyMjRGQjJBN0MwMDYyNTRDOCAvKiBF
bmNvZGluZ1RhYmxlcy5jcHAgKi8sCiAJCQkJREZDNjEwQTQyNEZCMkE3RDAwNjI1NEM4IC8qIEVu
Y29kaW5nVGFibGVzLmggKi8sCisJCQkJQkM0QTUzMzgyNTYwNjM5ODAwMjhDNTkyIC8qIEZvbnRS
ZW5kZXJpbmdNb2RlLmggKi8sCiAJCQkJMzc1Q0QyMzExMTlENDNDODAwQTJBODU5IC8qIEh5cGhl
bmF0aW9uLmggKi8sCiAJCQkJNzYzM0E3MjUxM0Q4QjMzQTAwODUwMUI2IC8qIExvY2FsZVRvU2Ny
aXB0TWFwcGluZy5jcHAgKi8sCiAJCQkJNzYzM0E3MjQxM0Q4QjMzQTAwODUwMUI2IC8qIExvY2Fs
ZVRvU2NyaXB0TWFwcGluZy5oICovLApAQCAtMjY1OTEsNiArMjY2MjgsNyBAQAogCQkJCUIyQzNE
QTEyMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNVVEYxNi5oICovLAogCQkJCTkzNDNDQjdG
MTJGMjVFNTEwMDMzQzVFRSAvKiBUZXh0Q29kZWNVVEY4LmNwcCAqLywKIAkJCQk5MzQzQ0I4MDEy
RjI1RTUxMDAzM0M1RUUgLyogVGV4dENvZGVjVVRGOC5oICovLAorCQkJCUJDNEE1MzNBMjU2MDY0
RTEwMDI4QzU5MiAvKiBUZXh0RGlyZWN0aW9uLmggKi8sCiAJCQkJQjJDM0RBMTYwRDAwNkMxRDAw
RUY2RjI2IC8qIFRleHRFbmNvZGluZy5jcHAgKi8sCiAJCQkJQjJDM0RBMTcwRDAwNkMxRDAwRUY2
RjI2IC8qIFRleHRFbmNvZGluZy5oICovLAogCQkJCUMxMDVEQTYzMEYzQUE2QjgwMDFERDQ0RiAv
KiBUZXh0RW5jb2RpbmdEZXRlY3Rvci5oICovLApAQCAtMjkyMjksNiArMjkyNjcsNyBAQAogCQkJ
CTFDMjRFRUEzMUM3MjlDRTQwMDgwRjhGQyAvKiBGb250RmFjZVNldC5oICovLAogCQkJCTFDMjRF
RUExMUM3MjlCMzIwMDgwRjhGQyAvKiBGb250RmFjZVNldC5pZGwgKi8sCiAJCQkJN0MzQThBQkMy
NTA5QTI1NjAwOEM0NzdGIC8qIEZvbnRGYWNlU291cmNlLmlkbCAqLywKKwkJCQlCQzRBNTMyRTI1
NjA1N0NEMDAyOEM1OTIgLyogRm9udExvYWRUaW1pbmdPdmVycmlkZS5oICovLAogCQkJCUMyQUIw
QjAzMUU2REU5MkMwMDEzNDhDNSAvKiBGb250U2VsZWN0aW9uVmFsdWVJbmxpbmVzLmggKi8sCiAJ
CQkJMUMzMjQ5MTAxQzZENkEzQjAwN0VEQjMyIC8qIEZvbnRWYXJpYW50QnVpbGRlci5jcHAgKi8s
CiAJCQkJQzIwMTVDMDkxQkU2RkUyQzAwODIyMzg5IC8qIEZvbnRWYXJpYW50QnVpbGRlci5oICov
LApAQCAtMzE0NjksNiArMzE1MDgsNyBAQAogCQkJCUJFMjM0ODBEMThBOTg3MTQwMEU0QjZFOCAv
KiBEYXRhQ3VlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTIyN0RGMTFDM0M2REYxMDBGNUVENTQg
LyogRGF0YURldGVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M3OTQxRTUxQzU2QzI5MzAw
QTRDNThFIC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUJDNEE1MzM1MjU2MDVBNTYwMDI4QzU5MiAvKiBEYXRhRGV0ZWN0b3JUeXBlcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRTU4QjQ1QkEyMEFEMDdERDAwOTkxMDI1IC8qIERhdGFMaXN0QnV0dG9uRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTUxNzY3MDMyMEI4OEMxNDAwRDQxMTY3IC8qIERh
dGFMaXN0U3VnZ2VzdGlvbkluZm9ybWF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNTJDRjU0
RjIwQTM1QTI4MDBEQURBMjcgLyogRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmggaW4gSGVhZGVy
cyAqLywKQEAgLTMxNDkxLDYgKzMxNTMxLDcgQEAKIAkJCQlGNTVCM0RCQTEyNTFGMTJEMDAzRUYy
NjkgLyogRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTVGMDZB
RUIyNEQ0OUJGNzAwQkJDNEY4IC8qIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRTVGMDZBRUYyNEQ0QTYzNzAwQkJDNEY4IC8qIERhdGVUaW1lU3ltYm9s
aWNGaWVsZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDNEE1MzJEMjU2MDU2RDUwMDI4
QzU5MiAvKiBEZWJ1Z092ZXJsYXlSZWdpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjZBMTJC
RTFBMDA5MjM3MDBDNkRFNzIgLyogRGVidWdQYWdlT3ZlcmxheXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQ1RkVBNUQwMTU2RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmggaW4gSGVhZGVycyAqLywK
IAkJCQk3MTVBRDcyMDIwNTA1MTMyMDBENTkyREMgLyogRGVjbGFyYXRpdmVBbmltYXRpb24uaCBp
biBIZWFkZXJzICovLApAQCAtMzE2NzEsMTEgKzMxNzEyLDEyIEBACiAJCQkJRkQ1MzczNTcxMzdC
NjUzQjAwMDA4RENFIC8qIER5bmFtaWNzQ29tcHJlc3Nvcktlcm5lbC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRkQ2RUQyQzQxMzZCOEU0MjAwM0NGMDcyIC8qIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTgzN0MwQjc2MjREQjM4NTAwMDVENTk1OSAvKiBEeW5hbWlj
c0NvbXByZXNzb3JPcHRpb25zLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzRBNTMyMzI1NjA1Mjc2
MDAyOEM1OTIgLyogRWRpdGFibGVMaW5rQmVoYXZpb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
MzA5REUyMDk5RTY0OTIwMDU2RTU4MSAvKiBFZGl0QWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5MzMwOURFNDA5OUU2NDkyMDA1NkU1ODEgLyogRWRpdENvbW1hbmQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTkzMzA5REU4MDk5RTY0OTIwMDU2RTU4MSAvKiBFZGl0aW5nLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0RjE1MzRERTExQjUzMkVDMDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9yLmggaW4g
SGVhZGVycyAqLywKLQkJCQk0RjE1MzRFMDExQjUzMzAyMDAyMUZEODYgLyogRWRpdGluZ0JlaGF2
aW9yVHlwZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTRGMTUzNEUwMTFCNTMzMDIwMDIxRkQ4NiAv
KiBFZGl0aW5nQmVoYXZpb3JUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzQUM2NDhCMjEyOUUx
NDY1MDBDM0VCMjUgLyogRWRpdGluZ0JvdW5kYXJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQk5QkFC
NkM2QzEyNTUwNjMxMDAxNjI2RDQgLyogRWRpdGluZ1N0eWxlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0QjMwNDNDRDBBRTAzNzNCMDBBODI2NDcgLyogRWRpdG9yLmggaW4gSGVhZGVycyAqLywKQEAg
LTMxODQ2LDE1ICszMTg4OCwxOCBAQAogCQkJCTFDNjYyNjExMUM2RTdDQTYwMEFCNTI3QyAvKiBG
b250RmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUMyNEVFQTUxQzcyOUNFNDAwODBGOEZDIC8q
IEZvbnRGYWNlU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzEyQUMyQjFFRTc3OEFFMDA3OUUw
QTAgLyogRm9udEZhbWlseVNwZWNpZmljYXRpb25Db3JlVGV4dC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJQkM0QTUzMkYyNTYwNTdDRDAwMjhDNTkyIC8qIEZvbnRMb2FkVGltaW5nT3ZlcnJpZGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTA4NDU2ODA4MTJCOTBEQTYwMDk2MEE5RiAvKiBGb250TWV0cmlj
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjUzMjBENkIxMjJBMjRFOTAwMkQxNDQwIC8qIEZvbnRQ
bGF0Zm9ybURhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3MUY0RkZDMEQyNUU3RjMwMEVDRTBE
NSAvKiBGb250UmFuZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzRBNTMzOTI1NjA2Mzk4MDAy
OEM1OTIgLyogRm9udFJlbmRlcmluZ01vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUMyQUIwQUY3
MUU2QjNDNkMwMDEzNDhDNSAvKiBGb250U2VsZWN0aW9uQWxnb3JpdGhtLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCMkMzREE2QjBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udFNlbGVjdG9yLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlFNDE5MDQxRjFDQzY0ODZCMDBDMzVGNUQgLyogRm9udFNlbGVjdG9yQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlGNDhEMkE2QzIxNTYyM0I0MDBDNjc1MkIgLyogRm9u
dFNoYWRvdy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEE2RTlGQzgxM0MxN0Q1NzAwNDZBN0Y4IC8q
IEZvbnRUYWdnZWRTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzIwMTVDMEExQkU2RkVC
MjAwODIyMzg5IC8qIEZvbnRWYXJpYW50QnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM0
QTUzMzEyNTYwNTkwMzAwMjhDNTkyIC8qIEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNEEwREEyRkYxMjlCMjQxOTAwQUI2MUUxIC8qIEZvcm1Bc3NvY2lhdGVk
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDA1Q0VEMkEwQTQwQkIyQzAwQzVBRjM4IC8q
IEZvcm1hdEJsb2NrQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NFNkNCRkIxODdGMzcw
NzAwRDQ2QkY1IC8qIEZvcm1hdENvbnZlcnRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTg3Miw2
ICszMTkxNyw3IEBACiAJCQkJQTg1MzEyM0QxMUQwNDcxQjAwRDREMDc3IC8qIEZyYWdtZW50U2Ny
aXB0aW5nUGVybWlzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVCRjAyMkYwOTc0ODE2MzAw
QzQzMTk2IC8qIEZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzRBODYyMzE0QjdBREJCMDAz
RkRDNzYgLyogRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlC
QzRBNTMyQjI1NjA1NjZFMDAyOEM1OTIgLyogRnJhbWVGbGF0dGVuaW5nLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjExNzgxODIyRTNDNDdGMDA4QkQ1NzAgLyogRnJhbWVJZGVudGlmaWVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk2NTZEMzczQzBBREJBNURFMDBBNDU1NEQgLyogRnJhbWVMb2FkZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTY1NkQzNzNFMEFEQkE1REUwMEE0NTU0RCAvKiBGcmFtZUxv
YWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjA3Myw2ICszMjExOSw3IEBACiAJCQkJ
OTNFMkEzMDcxMjNFOURDMDAwOUZFMTJBIC8qIEhUTUxQYXJzZXJJZGlvbXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTk3M0Y0MThBMTY5Qjk1RkYwMDA2QkY2MCAvKiBIVE1MUGFyc2VyT3B0aW9ucy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTc3QjM4NzExMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxQYXJz
ZXJTY2hlZHVsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDNEE1MzMzMjU2MDU5ODMwMDI4QzU5
MiAvKiBIVE1MUGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkNDMEU4NzYxQkZFNzBFOTAwOEY3RjUwIC8qIEhUTUxQaWN0dXJlRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTg3MUQ0NTYwQTEyN0NCQzAwQjEyQTY4IC8qIEhUTUxQbHVnSW5FbGVtZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NDE1MjkyRTBFMUFFOEEwMDBDNEEyRDAgLyogSFRNTFBs
dWdJbkltYWdlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMzY5MSw2ICszMzczOCw3IEBA
CiAJCQkJQTFERkQ1MjYyMzM0NTk0ODAwNDJGQ0RCIC8qIFBheW1lbnRTdW1tYXJ5SXRlbXMuaCBp
biBIZWFkZXJzICovLAogCQkJCUExNjc3REZEMjEzRTAwNjYwMEEwOEMzNCAvKiBQYXltZW50VmFs
aWRhdGlvbkVycm9ycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjI3NTM1NjUwQjA1MzgxNDAwMkNF
NjRGIC8qIFBERkRvY3VtZW50SW1hZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDNEE1MzI5MjU2
MDU2M0IwMDI4QzU5MiAvKiBQREZJbWFnZUNhY2hpbmdQb2xpY3kuaCBpbiBIZWFkZXJzICovLAog
CQkJCTVFMkM0MzUxMUJDRUUyRjYwMDAxRTJCQyAvKiBQZWVyQ29ubmVjdGlvbkJhY2tlbmQuaCBp
biBIZWFkZXJzICovLAogCQkJCTVFQkI4OTM5MUM3N0MzOTkwMEM2NUQ0MSAvKiBQZWVyTWVkaWFE
ZXNjcmlwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOEE3Q0M5NkIxMjA3NkQ3MzAwMUQ0NTg4
IC8qIFBlbmRpbmdTY3JpcHQuaCBpbiBIZWFkZXJzICovLApAQCAtMzQzOTUsNiArMzQ0NDMsNyBA
QAogCQkJCUU3RkJFN0MzMjRFQjJGQjYwMEExOEU2MiAvKiBTdGVyZW9QYW5uZXJPcHRpb25zLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQUMyRDg0NTE3MTczNEExMDA2NTJGQzAgLyogU3RvcmFnZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTFCRTM3RTAwREFFRTAwRTAwMTA4NUZDIC8qIFN0b3JhZ2VB
cmVhLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzRBNTMzNzI1NjA1QUUxMDAyOEM1OTIgLyogU3Rv
cmFnZUJsb2NraW5nUG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUUwQkFCQjBEQTU1NDcx
MDBBOUU0MTcgLyogU3RvcmFnZUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlDNUVCREQ4NDEw
NUVEREVDMDA1NjgxNkYgLyogU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTFFMEJCMzgwREE1QUNCNjAwQTlFNDE3IC8qIFN0b3JhZ2VNYXAuaCBpbiBIZWFkZXJz
ICovLApAQCAtMzQ3MTEsNiArMzQ3NjAsOCBAQAogCQkJCTE0MkI5N0NBMTMxMzg5NDMwMDhCRUY0
QiAvKiBUZXh0Q29udHJvbElubmVyRWxlbWVudHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU4MkRF
MzI1MUMzMEM4NTQwMEJFMDJBOCAvKiBUZXh0RGVjb3JhdGlvblBhaW50ZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFDNzNBNzE1MjE4NTc1ODcwMDRDQ0VBNSAvKiBUZXh0RGVjb3JhdGlvblRoaWNr
bmVzcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM0QTUzM0IyNTYwNjRFMTAwMjhDNTkyIC8qIFRl
eHREaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUJDNEE1MzI1MjU2MDU1NUYwMDI4QzU5
MiAvKiBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5N0JDODRCNDEyMzcxMTgwMDAwQzYxNjEgLyogVGV4dERvY3VtZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5N0JDODQ4NDEyMzZGRDkzMDAwQzYxNjEgLyogVGV4dERvY3VtZW50UGFy
c2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREE0NzBEMDA2QzFEMDBFRjZGMjYgLyogVGV4
dEVuY29kaW5nLmggaW4gSGVhZGVycyAqLywKQEAgLTM0ODM4LDYgKzM0ODg5LDcgQEAKIAkJCQlG
MzJCRENEOTIzNjNBQUNBMDA3M0I2QUUgLyogVXNlckdlc3R1cmVFbXVsYXRpb25TY29wZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMjU0MkY0REIxMTY2QzI1QTAwRTg5QTg2IC8qIFVzZXJHZXN0dXJl
SW5kaWNhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OTIwMzk4MzE4Qjk1QkM2MDBCMzlBRjkg
LyogVXNlcklucHV0QnJpZGdlLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzRBNTMyNzI1NjA1NUQz
MDAyOEM1OTIgLyogVXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNzFDOTE2MDgxRDE0ODNBMzAwQUNBNDdEIC8qIFVzZXJJbnRlcmZhY2VMYXlvdXREaXJl
Y3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTJFMTdEMTREMUMwMDQyMEFBMSAvKiBV
c2VyTWVkaWFDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTJGMTdEMTREMUMwMDQy
MEFBMSAvKiBVc2VyTWVkaWFDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9Gb3JjZWRBY2Nlc3NpYmlsaXR5
VmFsdWUuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Zv
cmNlZEFjY2Vzc2liaWxpdHlWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVt
IGNsYXNzIEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZSA6IHVpbnQ4X3QgeworICAgIFN5c3RlbSwK
KyAgICBPbiwKKyAgICBPZmYKK307CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250RmFjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNl
LmNwcAkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDU5LDkgKzQ1OSw5IEBAIEFsbG93VXNlckluc3RhbGxl
ZEZvbnRzIENTU0ZvbnRGYWNlOjphbGwKICAgICByZXR1cm4gQWxsb3dVc2VySW5zdGFsbGVkRm9u
dHM6OlllczsKIH0KIAotc3RhdGljIFNldHRpbmdzOjpGb250TG9hZFRpbWluZ092ZXJyaWRlIGZv
bnRMb2FkVGltaW5nT3ZlcnJpZGUoQ1NTRm9udFNlbGVjdG9yKiBmb250U2VsZWN0b3IpCitzdGF0
aWMgRm9udExvYWRUaW1pbmdPdmVycmlkZSBmb250TG9hZFRpbWluZ092ZXJyaWRlKENTU0ZvbnRT
ZWxlY3RvciogZm9udFNlbGVjdG9yKQogewotICAgIGF1dG8gb3ZlcnJpZGVWYWx1ZSA9IFNldHRp
bmdzOjpGb250TG9hZFRpbWluZ092ZXJyaWRlOjpOb25lOworICAgIGF1dG8gb3ZlcnJpZGVWYWx1
ZSA9IEZvbnRMb2FkVGltaW5nT3ZlcnJpZGU6Ok5vbmU7CiAgICAgaWYgKGZvbnRTZWxlY3RvciAm
JiBmb250U2VsZWN0b3ItPmRvY3VtZW50KCkpCiAgICAgICAgIG92ZXJyaWRlVmFsdWUgPSBmb250
U2VsZWN0b3ItPmRvY3VtZW50KCktPnNldHRpbmdzKCkuZm9udExvYWRUaW1pbmdPdmVycmlkZSgp
OwogICAgIHJldHVybiBvdmVycmlkZVZhbHVlOwpAQCAtNDcwLDcgKzQ3MCw3IEBAIHN0YXRpYyBT
ZXR0aW5nczo6Rm9udExvYWRUaW1pbmdPdmVycmlkZSAKIGF1dG8gQ1NTRm9udEZhY2U6OmZvbnRM
b2FkVGltaW5nKCkgY29uc3QgLT4gRm9udExvYWRUaW1pbmcKIHsKICAgICBzd2l0Y2ggKGZvbnRM
b2FkVGltaW5nT3ZlcnJpZGUobV9mb250U2VsZWN0b3IuZ2V0KCkpKSB7Ci0gICAgY2FzZSBTZXR0
aW5nczo6Rm9udExvYWRUaW1pbmdPdmVycmlkZTo6Tm9uZToKKyAgICBjYXNlIEZvbnRMb2FkVGlt
aW5nT3ZlcnJpZGU6Ok5vbmU6CiAgICAgICAgIHN3aXRjaCAobV9sb2FkaW5nQmVoYXZpb3IpIHsK
ICAgICAgICAgY2FzZSBGb250TG9hZGluZ0JlaGF2aW9yOjpBdXRvOgogICAgICAgICBjYXNlIEZv
bnRMb2FkaW5nQmVoYXZpb3I6OkJsb2NrOgpAQCAtNDgzLDExICs0ODMsMTEgQEAgYXV0byBDU1NG
b250RmFjZTo6Zm9udExvYWRUaW1pbmcoKSBjb25zdAogICAgICAgICAgICAgcmV0dXJuIHsgMC4x
X3MsIDBfcyB9OwogICAgICAgICB9CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgY2FzZSBTZXR0aW5nczo6Rm9udExvYWRUaW1pbmdPdmVycmlkZTo6QmxvY2s6Cisg
ICAgY2FzZSBGb250TG9hZFRpbWluZ092ZXJyaWRlOjpCbG9jazoKICAgICAgICAgcmV0dXJuIHsg
U2Vjb25kczo6aW5maW5pdHkoKSwgMF9zIH07Ci0gICAgY2FzZSBTZXR0aW5nczo6Rm9udExvYWRU
aW1pbmdPdmVycmlkZTo6U3dhcDoKKyAgICBjYXNlIEZvbnRMb2FkVGltaW5nT3ZlcnJpZGU6OlN3
YXA6CiAgICAgICAgIHJldHVybiB7IDBfcywgU2Vjb25kczo6aW5maW5pdHkoKSB9OwotICAgIGNh
c2UgU2V0dGluZ3M6OkZvbnRMb2FkVGltaW5nT3ZlcnJpZGU6OkZhaWx1cmU6CisgICAgY2FzZSBG
b250TG9hZFRpbWluZ092ZXJyaWRlOjpGYWlsdXJlOgogICAgICAgICByZXR1cm4geyAwX3MsIDBf
cyB9OwogICAgIH0KICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvY3NzL0ZvbnRMb2FkVGltaW5nT3ZlcnJpZGUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRUaW1pbmdPdmVycmlkZS5oCShub25leGlzdGVudCkK
KysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZFRpbWluZ092ZXJyaWRlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgRm9udExvYWRUaW1pbmdPdmVycmlkZSA6IHVp
bnQ4X3QgeworICAgIE5vbmUsCisgICAgQmxvY2ssCisgICAgU3dhcCwKKyAgICBGYWlsdXJlCit9
OworCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3Bw
CShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1
YXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxNSw5ICszMTUsOSBAQCBzdGF0aWMgYm9vbCBt
b25vY2hyb21lRXZhbHVhdGUoQ1NTVmFsdWUqCiB7CiAgICAgYm9vbCBpc01vbm9jaHJvbWU7CiAK
LSAgICBpZiAoZnJhbWUuc2V0dGluZ3MoKS5mb3JjZWREaXNwbGF5SXNNb25vY2hyb21lQWNjZXNz
aWJpbGl0eVZhbHVlKCkgPT0gU2V0dGluZ3M6OkZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZTo6T24p
CisgICAgaWYgKGZyYW1lLnNldHRpbmdzKCkuZm9yY2VkRGlzcGxheUlzTW9ub2Nocm9tZUFjY2Vz
c2liaWxpdHlWYWx1ZSgpID09IEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZTo6T24pCiAgICAgICAg
IGlzTW9ub2Nocm9tZSA9IHRydWU7Ci0gICAgZWxzZSBpZiAoZnJhbWUuc2V0dGluZ3MoKS5mb3Jj
ZWREaXNwbGF5SXNNb25vY2hyb21lQWNjZXNzaWJpbGl0eVZhbHVlKCkgPT0gU2V0dGluZ3M6OkZv
cmNlZEFjY2Vzc2liaWxpdHlWYWx1ZTo6T2ZmKQorICAgIGVsc2UgaWYgKGZyYW1lLnNldHRpbmdz
KCkuZm9yY2VkRGlzcGxheUlzTW9ub2Nocm9tZUFjY2Vzc2liaWxpdHlWYWx1ZSgpID09IEZvcmNl
ZEFjY2Vzc2liaWxpdHlWYWx1ZTo6T2ZmKQogICAgICAgICBpc01vbm9jaHJvbWUgPSBmYWxzZTsK
ICAgICBlbHNlCiAgICAgICAgIGlzTW9ub2Nocm9tZSA9IHNjcmVlbklzTW9ub2Nocm9tZShmcmFt
ZS5tYWluRnJhbWUoKS52aWV3KCkpOwpAQCAtMzMxLDkgKzMzMSw5IEBAIHN0YXRpYyBib29sIGlu
dmVydGVkQ29sb3JzRXZhbHVhdGUoQ1NTVmEKIHsKICAgICBib29sIGlzSW52ZXJ0ZWQ7CiAKLSAg
ICBpZiAoZnJhbWUuc2V0dGluZ3MoKS5mb3JjZWRDb2xvcnNBcmVJbnZlcnRlZEFjY2Vzc2liaWxp
dHlWYWx1ZSgpID09IFNldHRpbmdzOjpGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWU6Ok9uKQorICAg
IGlmIChmcmFtZS5zZXR0aW5ncygpLmZvcmNlZENvbG9yc0FyZUludmVydGVkQWNjZXNzaWJpbGl0
eVZhbHVlKCkgPT0gRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlOjpPbikKICAgICAgICAgaXNJbnZl
cnRlZCA9IHRydWU7Ci0gICAgZWxzZSBpZiAoZnJhbWUuc2V0dGluZ3MoKS5mb3JjZWRDb2xvcnNB
cmVJbnZlcnRlZEFjY2Vzc2liaWxpdHlWYWx1ZSgpID09IFNldHRpbmdzOjpGb3JjZWRBY2Nlc3Np
YmlsaXR5VmFsdWU6Ok9mZikKKyAgICBlbHNlIGlmIChmcmFtZS5zZXR0aW5ncygpLmZvcmNlZENv
bG9yc0FyZUludmVydGVkQWNjZXNzaWJpbGl0eVZhbHVlKCkgPT0gRm9yY2VkQWNjZXNzaWJpbGl0
eVZhbHVlOjpPZmYpCiAgICAgICAgIGlzSW52ZXJ0ZWQgPSBmYWxzZTsKICAgICBlbHNlCiAgICAg
ICAgIGlzSW52ZXJ0ZWQgPSBzY3JlZW5IYXNJbnZlcnRlZENvbG9ycygpOwpAQCAtNDU5LDkgKzQ1
OSw5IEBAIHN0YXRpYyBib29sIGR5bmFtaWNSYW5nZUV2YWx1YXRlKENTU1ZhbHUKIAogICAgIGJv
b2wgc3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlOwogCi0gICAgaWYgKGZyYW1lLnNldHRpbmdzKCku
Zm9yY2VkU3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlVmFsdWUoKSA9PSBTZXR0aW5nczo6Rm9yY2Vk
QWNjZXNzaWJpbGl0eVZhbHVlOjpPbikKKyAgICBpZiAoZnJhbWUuc2V0dGluZ3MoKS5mb3JjZWRT
dXBwb3J0c0hpZ2hEeW5hbWljUmFuZ2VWYWx1ZSgpID09IEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1
ZTo6T24pCiAgICAgICAgIHN1cHBvcnRzSGlnaER5bmFtaWNSYW5nZSA9IHRydWU7Ci0gICAgZWxz
ZSBpZiAoZnJhbWUuc2V0dGluZ3MoKS5mb3JjZWRTdXBwb3J0c0hpZ2hEeW5hbWljUmFuZ2VWYWx1
ZSgpID09IFNldHRpbmdzOjpGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWU6Ok9mZikKKyAgICBlbHNl
IGlmIChmcmFtZS5zZXR0aW5ncygpLmZvcmNlZFN1cHBvcnRzSGlnaER5bmFtaWNSYW5nZVZhbHVl
KCkgPT0gRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlOjpPZmYpCiAgICAgICAgIHN1cHBvcnRzSGln
aER5bmFtaWNSYW5nZSA9IGZhbHNlOwogICAgIGVsc2UKICAgICAgICAgc3VwcG9ydHNIaWdoRHlu
YW1pY1JhbmdlID0gc2NyZWVuU3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlKGZyYW1lLm1haW5GcmFt
ZSgpLnZpZXcoKSk7CkBAIC04MjUsMTIgKzgyNSwxMiBAQCBzdGF0aWMgYm9vbCBwcmVmZXJzUmVk
dWNlZE1vdGlvbkV2YWx1YXRlCiAgICAgYm9vbCB1c2VyUHJlZmVyc1JlZHVjZWRNb3Rpb24gPSBm
YWxzZTsKIAogICAgIHN3aXRjaCAoZnJhbWUuc2V0dGluZ3MoKS5mb3JjZWRQcmVmZXJzUmVkdWNl
ZE1vdGlvbkFjY2Vzc2liaWxpdHlWYWx1ZSgpKSB7Ci0gICAgY2FzZSBTZXR0aW5nczo6Rm9yY2Vk
QWNjZXNzaWJpbGl0eVZhbHVlOjpPbjoKKyAgICBjYXNlIEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1
ZTo6T246CiAgICAgICAgIHVzZXJQcmVmZXJzUmVkdWNlZE1vdGlvbiA9IHRydWU7CiAgICAgICAg
IGJyZWFrOwotICAgIGNhc2UgU2V0dGluZ3M6OkZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZTo6T2Zm
OgorICAgIGNhc2UgRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlOjpPZmY6CiAgICAgICAgIGJyZWFr
OwotICAgIGNhc2UgU2V0dGluZ3M6OkZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZTo6U3lzdGVtOgor
ICAgIGNhc2UgRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlOjpTeXN0ZW06CiAjaWYgVVNFKE5FV19U
SEVNRSkgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICAgICAgdXNlclByZWZlcnNSZWR1Y2Vk
TW90aW9uID0gVGhlbWU6OnNpbmdsZXRvbigpLnVzZXJQcmVmZXJzUmVkdWNlZE1vdGlvbigpOwog
I2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDI2OTgzMCkKKysr
IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1MDgs
NyArNzUwOCw3IEBAIHZvaWQgRG9jdW1lbnQ6OmFwcGx5UXVpY2tMb29rU2FuZGJveCgpCiAgICAg
QVNTRVJUKHJlc3BvbnNlVVJMLnByb3RvY29sSXMoUUxQcmV2aWV3UHJvdG9jb2wpKTsKIAogICAg
IGF1dG8gc2VjdXJpdHlPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlTm9uTG9jYWxXaXRo
QWxsb3dlZEZpbGVQYXRoKHJlc3BvbnNlVVJMLCBkb2N1bWVudFVSTC5maWxlU3lzdGVtUGF0aCgp
KTsKLSAgICBzZWN1cml0eU9yaWdpbi0+c2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KFNlY3VyaXR5
T3JpZ2luOjpCbG9ja0FsbFN0b3JhZ2UpOworICAgIHNlY3VyaXR5T3JpZ2luLT5zZXRTdG9yYWdl
QmxvY2tpbmdQb2xpY3koU3RvcmFnZUJsb2NraW5nUG9saWN5OjpCbG9ja0FsbCk7CiAgICAgc2V0
U2VjdXJpdHlPcmlnaW5Qb2xpY3koU2VjdXJpdHlPcmlnaW5Qb2xpY3k6OmNyZWF0ZShXVEZNb3Zl
KHNlY3VyaXR5T3JpZ2luKSkpOwogCiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4g
cXVpY2tMb29rQ1NQID0gbWFrZVN0cmluZygiZGVmYXVsdC1zcmMgIiwgUUxQcmV2aWV3UHJvdG9j
b2wsICI6ICd1bnNhZmUtaW5saW5lJzsgYmFzZS11cmkgJ25vbmUnOyBzYW5kYm94IGFsbG93LXNh
bWUtb3JpZ2luIGFsbG93LXNjcmlwdHMiKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdGFibGVMaW5rQmVoYXZpb3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRhYmxlTGlua0JlaGF2aW9yLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0YWJsZUxpbmtCZWhhdmlvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitlbnVtIGNsYXNzIEVkaXRhYmxlTGlua0JlaGF2aW9yIDogdWludDhfdCB7CisgICAgRGVm
YXVsdCwKKyAgICBBbHdheXNMaXZlLAorICAgIE9ubHlMaXZlV2l0aFNoaWZ0S2V5LAorICAgIExp
dmVXaGVuTm90Rm9jdXNlZCwKKyAgICBOZXZlckxpdmUKK307CisKK30KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0aW5nQmVoYXZpb3IuaAkocmV2aXNpb24gMjY5ODMwKQorKysgU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQmVoYXZpb3IuaAkod29ya2luZyBjb3B5KQpAQCAt
MjAsMTIgKzIwLDExIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiRWRpdGluZ0JlaGF2
aW9yVHlwZXMuaCIKKyNpbmNsdWRlICJFZGl0aW5nQmVoYXZpb3JUeXBlLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgRWRpdGluZ0JlaGF2aW9yIHsKLQogcHVibGljOgogICAgIGV4
cGxpY2l0IEVkaXRpbmdCZWhhdmlvcihFZGl0aW5nQmVoYXZpb3JUeXBlIHR5cGUpCiAgICAgICAg
IDogbV90eXBlKHR5cGUpCkBAIC00MCw2NyArMzksNjcgQEAgcHVibGljOgogICAgIC8vIGNvbnRl
bnQgb24gTWFjLgogICAgIGJvb2wgc2hvdWxkTW92ZUNhcmV0VG9Ib3Jpem9udGFsQm91bmRhcnlX
aGVuUGFzdFRvcE9yQm90dG9tKCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBtX3R5cGUg
IT0gRWRpdGluZ1dpbmRvd3NCZWhhdmlvcjsKKyAgICAgICAgcmV0dXJuIG1fdHlwZSAhPSBFZGl0
aW5nQmVoYXZpb3JUeXBlOjpXaW5kb3dzOwogICAgIH0KIAogICAgIC8vIE9uIFdpbmRvd3MsIHNl
bGVjdGlvbnMgc2hvdWxkIGFsd2F5cyBiZSBjb25zaWRlcmVkIGFzIGRpcmVjdGlvbmFsLCByZWdh
cmRsZXNzIGlmIGl0IGlzCiAgICAgLy8gbW91c2UtYmFzZWQgb3Iga2V5Ym9hcmQtYmFzZWQuCi0g
ICAgYm9vbCBzaG91bGRDb25zaWRlclNlbGVjdGlvbkFzRGlyZWN0aW9uYWwoKSBjb25zdCB7IHJl
dHVybiBtX3R5cGUgIT0gRWRpdGluZ01hY0JlaGF2aW9yICYmIG1fdHlwZSAhPSBFZGl0aW5nSU9T
QmVoYXZpb3I7IH0KKyAgICBib29sIHNob3VsZENvbnNpZGVyU2VsZWN0aW9uQXNEaXJlY3Rpb25h
bCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSAhPSBFZGl0aW5nQmVoYXZpb3JUeXBlOjpNYWMgJiYg
bV90eXBlICE9IEVkaXRpbmdCZWhhdmlvclR5cGU6OklvczsgfQogCiAgICAgLy8gT24gTWFjLCB3
aGVuIHJldmVhbGluZyBhIHNlbGVjdGlvbiAoZm9yIGV4YW1wbGUgYXMgYSByZXN1bHQgb2YgYSBG
aW5kIG9wZXJhdGlvbiBvbiB0aGUgQnJvd3NlciksCiAgICAgLy8gY29udGVudCBzaG91bGQgYmUg
c2Nyb2xsZWQgc3VjaCB0aGF0IHRoZSBzZWxlY3Rpb24gZ2V0cyBjZXJ0ZXIgYWxpZ25lZC4KLSAg
ICBib29sIHNob3VsZENlbnRlckFsaWduV2hlblNlbGVjdGlvbklzUmV2ZWFsZWQoKSBjb25zdCB7
IHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ01hY0JlaGF2aW9yIHx8IG1fdHlwZSA9PSBFZGl0aW5n
SU9TQmVoYXZpb3I7IH0KKyAgICBib29sIHNob3VsZENlbnRlckFsaWduV2hlblNlbGVjdGlvbklz
UmV2ZWFsZWQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ0JlaGF2aW9yVHlwZTo6
TWFjIHx8IG1fdHlwZSA9PSBFZGl0aW5nQmVoYXZpb3JUeXBlOjpJb3M7IH0KIAogICAgIC8vIE9u
IE1hYywgc3R5bGUgaXMgY29uc2lkZXJlZCBwcmVzZW50IHdoZW4gcHJlc2VudCBhdCB0aGUgYmVn
aW5uaW5nIG9mIHNlbGVjdGlvbi4gT24gb3RoZXIgcGxhdGZvcm1zLAogICAgIC8vIHN0eWxlIGhh
cyB0byBiZSBwcmVzZW50IHRocm91Z2hvdXQgdGhlIHNlbGVjdGlvbi4KLSAgICBib29sIHNob3Vs
ZFRvZ2dsZVN0eWxlQmFzZWRPblN0YXJ0T2ZTZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3R5
cGUgPT0gRWRpdGluZ01hY0JlaGF2aW9yIHx8IG1fdHlwZSA9PSBFZGl0aW5nSU9TQmVoYXZpb3I7
IH0KKyAgICBib29sIHNob3VsZFRvZ2dsZVN0eWxlQmFzZWRPblN0YXJ0T2ZTZWxlY3Rpb24oKSBj
b25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ0JlaGF2aW9yVHlwZTo6TWFjIHx8IG1fdHlw
ZSA9PSBFZGl0aW5nQmVoYXZpb3JUeXBlOjpJb3M7IH0KIAogICAgIC8vIFN0YW5kYXJkIE1hYyBi
ZWhhdmlvciB3aGVuIGV4dGVuZGluZyB0byBhIGJvdW5kYXJ5IGlzIGdyb3cgdGhlIHNlbGVjdGlv
biByYXRoZXIgdGhhbiBsZWF2aW5nIHRoZSBiYXNlCiAgICAgLy8gaW4gcGxhY2UgYW5kIG1vdmlu
ZyB0aGUgZXh0ZW50LiBNYXRjaGVzIE5TVGV4dFZpZXcuCi0gICAgYm9vbCBzaG91bGRBbHdheXNH
cm93U2VsZWN0aW9uV2hlbkV4dGVuZGluZ1RvQm91bmRhcnkoKSBjb25zdCB7IHJldHVybiBtX3R5
cGUgPT0gRWRpdGluZ01hY0JlaGF2aW9yIHx8IG1fdHlwZSA9PSBFZGl0aW5nSU9TQmVoYXZpb3I7
IH0KKyAgICBib29sIHNob3VsZEFsd2F5c0dyb3dTZWxlY3Rpb25XaGVuRXh0ZW5kaW5nVG9Cb3Vu
ZGFyeSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBFZGl0aW5nQmVoYXZpb3JUeXBlOjpNYWMg
fHwgbV90eXBlID09IEVkaXRpbmdCZWhhdmlvclR5cGU6OklvczsgfQogCiAgICAgLy8gT24gTWFj
LCB3aGVuIHByb2Nlc3NpbmcgYSBjb250ZXh0dWFsIGNsaWNrLCB0aGUgb2JqZWN0IGJlaW5nIGNs
aWNrZWQgdXBvbiBzaG91bGQgYmUgc2VsZWN0ZWQuCi0gICAgYm9vbCBzaG91bGRTZWxlY3RPbkNv
bnRleHR1YWxNZW51Q2xpY2soKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ01hY0Jl
aGF2aW9yOyB9CisgICAgYm9vbCBzaG91bGRTZWxlY3RPbkNvbnRleHR1YWxNZW51Q2xpY2soKSBj
b25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ0JlaGF2aW9yVHlwZTo6TWFjOyB9CiAKICAg
ICAvLyBPbiBMaW51eCwgc2hvdWxkIGJlIGFibGUgdG8gZ2V0IGFuZCBpbnNlcnQgc3BlbGxpbmcg
c3VnZ2VzdGlvbnMgd2l0aG91dCBzZWxlY3RpbmcgdGhlIG1pc3NwZWxsZWQgd29yZC4KICAgICBi
b29sIHNob3VsZEFsbG93U3BlbGxpbmdTdWdnZXN0aW9uc1dpdGhvdXRTZWxlY3Rpb24oKSBjb25z
dAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fdHlwZSA9PSBFZGl0aW5nVW5peEJlaGF2aW9yOwor
ICAgICAgICByZXR1cm4gbV90eXBlID09IEVkaXRpbmdCZWhhdmlvclR5cGU6OlVuaXg7CiAgICAg
fQogICAgIAogICAgIC8vIE9uIE1hYyBhbmQgV2luZG93cywgcHJlc3NpbmcgYmFja3NwYWNlICh3
aGVuIGl0IGlzbid0IGhhbmRsZWQgb3RoZXJ3aXNlKSBzaG91bGQgbmF2aWdhdGUgYmFjay4KICAg
ICBib29sIHNob3VsZE5hdmlnYXRlQmFja09uQmFja3NwYWNlKCkgY29uc3QKICAgICB7Ci0gICAg
ICAgIHJldHVybiBtX3R5cGUgIT0gRWRpdGluZ1VuaXhCZWhhdmlvcjsKKyAgICAgICAgcmV0dXJu
IG1fdHlwZSAhPSBFZGl0aW5nQmVoYXZpb3JUeXBlOjpVbml4OwogICAgIH0KIAogICAgIC8vIE9u
IE1hYywgc2VsZWN0aW5nIGJhY2t3YXJkcyBieSB3b3JkL2xpbmUgZnJvbSB0aGUgbWlkZGxlIG9m
IGEgd29yZC9saW5lLCBhbmQgdGhlbiBnb2luZwogICAgIC8vIGZvcndhcmQgbGVhdmVzIHRoZSBj
YXJldCBiYWNrIGluIHRoZSBtaWRkbGUgd2l0aCBubyBzZWxlY3Rpb24sIGluc3RlYWQgb2YgZGly
ZWN0bHkgc2VsZWN0aW5nCiAgICAgLy8gdG8gdGhlIG90aGVyIGVuZCBvZiB0aGUgbGluZS93b3Jk
IChVbml4L1dpbmRvd3MgYmVoYXZpb3IpLgotICAgIGJvb2wgc2hvdWxkRXh0ZW5kU2VsZWN0aW9u
QnlXb3JkT3JMaW5lQWNyb3NzQ2FyZXQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgIT0gRWRpdGlu
Z01hY0JlaGF2aW9yICYmIG1fdHlwZSAhPSBFZGl0aW5nSU9TQmVoYXZpb3I7IH0KKyAgICBib29s
IHNob3VsZEV4dGVuZFNlbGVjdGlvbkJ5V29yZE9yTGluZUFjcm9zc0NhcmV0KCkgY29uc3QgeyBy
ZXR1cm4gbV90eXBlICE9IEVkaXRpbmdCZWhhdmlvclR5cGU6Ok1hYyAmJiBtX3R5cGUgIT0gRWRp
dGluZ0JlaGF2aW9yVHlwZTo6SW9zOyB9CiAKICAgICAvLyBCYXNlZCBvbiBuYXRpdmUgYmVoYXZp
b3IsIHdoZW4gdXNpbmcgY3RybChhbHQpK2Fycm93IHRvIG1vdmUgY2FyZXQgYnkgd29yZCwgY3Ry
bChhbHQpK2xlZnQgYXJyb3cgbW92ZXMgY2FyZXQgdG8KICAgICAvLyBpbW1lZGlhdGVseSBiZWZv
cmUgdGhlIHdvcmQgaW4gYWxsIHBsYXRmb3JtcywgZm9yIGV4YW1wbGUsIHRoZSB3b3JkIGJyZWFr
IHBvc2l0aW9ucyBhcmU6ICJ8YWJjIHxkZWYgfGhpaiB8b3BxIi4KICAgICAvLyBCdXQgY3RybCty
aWdodCBhcnJvdyBtb3ZlcyBjYXJldCB0byAiYWJjIHxkZWYgfGhpaiB8b3BxIiBvbiBXaW5kb3dz
IGFuZCAiYWJjfCBkZWZ8IGhpanwgb3BxfCIgb24gTWFjIGFuZCBMaW51eC4KLSAgICBib29sIHNo
b3VsZFNraXBTcGFjZVdoZW5Nb3ZpbmdSaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBF
ZGl0aW5nV2luZG93c0JlaGF2aW9yOyB9CisgICAgYm9vbCBzaG91bGRTa2lwU3BhY2VXaGVuTW92
aW5nUmlnaHQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ0JlaGF2aW9yVHlwZTo6
V2luZG93czsgfQogCiAgICAgLy8gT24gaU9TIHRoZSBsYXN0IGVudGVyZWQgY2hhcmFjdGVyIGlu
IGEgc2VjdXJlIGZpbGVkIGlzIHNob3duIG1vbWVudGFyaWx5LCByZW1vdmluZyBhbmQgYWRkaW5n
IGJhY2sgdGhlCiAgICAgLy8gc3BhY2Ugd2hlbiBkZWxldGluZyBwYXNzd29yZCBjYXVzZSBzcGFj
ZSBiZWVuIHNob3dlZCBpbnNlY3VyZWx5LgotICAgIGJvb2wgc2hvdWxkUmViYWxhbmNlV2hpdGVT
cGFjZXNJblNlY3VyZUZpZWxkKCkgY29uc3QgeyByZXR1cm4gbV90eXBlICE9IEVkaXRpbmdJT1NC
ZWhhdmlvcjsgfQorICAgIGJvb2wgc2hvdWxkUmViYWxhbmNlV2hpdGVTcGFjZXNJblNlY3VyZUZp
ZWxkKCkgY29uc3QgeyByZXR1cm4gbV90eXBlICE9IEVkaXRpbmdCZWhhdmlvclR5cGU6Oklvczsg
fQogCi0gICAgYm9vbCBzaG91bGRTZWxlY3RCYXNlZE9uRGljdGlvbmFyeUxvb2t1cCgpIGNvbnN0
IHsgcmV0dXJuIG1fdHlwZSA9PSBFZGl0aW5nTWFjQmVoYXZpb3I7IH0KKyAgICBib29sIHNob3Vs
ZFNlbGVjdEJhc2VkT25EaWN0aW9uYXJ5TG9va3VwKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09
IEVkaXRpbmdCZWhhdmlvclR5cGU6Ok1hYzsgfQogCiAgICAgLy8gTGludXggYW5kIFdpbmRvd3Mg
YWx3YXlzIGV4dGVuZCBzZWxlY3Rpb25zIGZyb20gdGhlIGV4dGVudCBlbmRwb2ludC4KLSAgICBi
b29sIHNob3VsZEFsd2F5c0V4dGVuZFNlbGVjdGlvbkZyb21FeHRlbnRFbmRwb2ludCgpIGNvbnN0
IHsgcmV0dXJuIG1fdHlwZSAhPSBFZGl0aW5nTWFjQmVoYXZpb3IgJiYgbV90eXBlICE9IEVkaXRp
bmdJT1NCZWhhdmlvcjsgfQorICAgIGJvb2wgc2hvdWxkQWx3YXlzRXh0ZW5kU2VsZWN0aW9uRnJv
bUV4dGVudEVuZHBvaW50KCkgY29uc3QgeyByZXR1cm4gbV90eXBlICE9IEVkaXRpbmdCZWhhdmlv
clR5cGU6Ok1hYyAmJiBtX3R5cGUgIT0gRWRpdGluZ0JlaGF2aW9yVHlwZTo6SW9zOyB9CiAKICAg
ICAvLyBPbiBpT1MsIHdlIGRvbid0IHdhbnQgdG8gc2VsZWN0IGFsbCB0aGUgdGV4dCB3aGVuIGZv
Y3VzaW5nIGEgZmllbGQuIEluc3RlYWQsIG1hdGNoIHBsYXRmb3JtIGJlaGF2aW9yIGJ5IGdvaW5n
IHRvIHRoZSBlbmQgb2YgdGhlIGxpbmUuCi0gICAgYm9vbCBzaG91bGRNb3ZlU2VsZWN0aW9uVG9F
bmRXaGVuRm9jdXNpbmdUZXh0SW5wdXQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGlu
Z0lPU0JlaGF2aW9yOyB9CisgICAgYm9vbCBzaG91bGRNb3ZlU2VsZWN0aW9uVG9FbmRXaGVuRm9j
dXNpbmdUZXh0SW5wdXQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ0JlaGF2aW9y
VHlwZTo6SW9zOyB9CiAgICAgCiAgICAgLy8gT24gaU9TLCB3aGVuIHNtYXJ0IGRlbGV0ZSBpcyBv
biwgaXQgaXMgYWx3YXlzIG9uLCBhbmQgc2hvdWxkIGRvIG5vdCBhZGRpdGlvbmFsIGNoZWNrcyAo
aS5lLiBUZXh0R3JhbnVsYXJpdHk6OldvcmRHcmFudWxhcml0eSkuCi0gICAgYm9vbCBzaG91bGRB
bHdheXNTbWFydERlbGV0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBFZGl0aW5nSU9TQmVo
YXZpb3I7IH0KKyAgICBib29sIHNob3VsZEFsd2F5c1NtYXJ0RGVsZXRlKCkgY29uc3QgeyByZXR1
cm4gbV90eXBlID09IEVkaXRpbmdCZWhhdmlvclR5cGU6OklvczsgfQogICAgIAogICAgIC8vIE9u
IGlPUywgd2Ugc2hvdWxkIHR1cm4gb24gc21hcnQgaW5zZXJ0IGFuZCBkZWxldGUgYW5kIG5ld2xp
bmVzIGFyb3VuZCBwYXJhZ3JhcGhzIHRvIG1hdGNoIFVJS2l0IGJlaGF2aW91ci4KLSAgICBib29s
IHNob3VsZFNtYXJ0SW5zZXJ0RGVsZXRlUGFyYWdyYXBocygpIGNvbnN0IHsgcmV0dXJuIG1fdHlw
ZSA9PSBFZGl0aW5nSU9TQmVoYXZpb3I7IH0KKyAgICBib29sIHNob3VsZFNtYXJ0SW5zZXJ0RGVs
ZXRlUGFyYWdyYXBocygpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBFZGl0aW5nQmVoYXZpb3JU
eXBlOjpJb3M7IH0KIAogcHJpdmF0ZToKICAgICBFZGl0aW5nQmVoYXZpb3JUeXBlIG1fdHlwZTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yVHlwZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yVHlwZS5oCShu
b25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yVHlw
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNw
cmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIFRoZXJlIGFyZSBtdWx0aXBs
ZSBlZGl0aW5nIGRldGFpbHMgdGhhdCBhcmUgZGlmZmVyZW50IG9uIFdpbmRvd3MgdGhhbiBNYWNp
bnRvc2guCisvLyBXZSB1c2UgYSBzaW5nbGUgc3dpdGNoIGZvciBhbGwgb2YgdGhlbS4gU29tZSBl
eGFtcGxlczoKKy8vCisvLyAgICAxKSBDbGlja2luZyBiZWxvdyB0aGUgbGFzdCBsaW5lIG9mIGFu
IGVkaXRhYmxlIGFyZWEgcHV0cyB0aGUgY2FyZXQgYXQgdGhlIGVuZAorLy8gICAgICAgb2YgdGhl
IGxhc3QgbGluZSBvbiBNYWMsIGJ1dCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBsYXN0IGxpbmUgb24g
V2luZG93cy4KKy8vICAgIDIpIFB1c2hpbmcgdGhlIGRvd24gYXJyb3cga2V5IG9uIHRoZSBsYXN0
IGxpbmUgcHV0cyB0aGUgY2FyZXQgYXQgdGhlIGVuZCBvZiB0aGUKKy8vICAgICAgIGxhc3QgbGlu
ZSBvbiBNYWMsIGJ1dCBkb2VzIG5vdGhpbmcgb24gV2luZG93cy4gQSBzaW1pbGFyIGNhc2UgZXhp
c3RzIG9uIHRoZQorLy8gICAgICAgdG9wIGxpbmUuCisvLworLy8gVGhpcyBzZXR0aW5nIGlzIGlu
dGVuZGVkIHRvIGNvbnRyb2wgdGhlc2Ugc29ydHMgb2YgYmVoYXZpb3JzLiBUaGVyZSBhcmUgc29t
ZSBvdGhlcgorLy8gYmVoYXZpb3JzIHdpdGggaW5kaXZpZHVhbCBmdW5jdGlvbiBjYWxscyBvbiBF
ZGl0b3JDbGllbnQgKHNtYXJ0IGNvcHkgYW5kIHBhc3RlIGFuZAorLy8gc2VsZWN0aW5nIHRoZSBz
cGFjZSBhZnRlciBhIGRvdWJsZSBjbGljaykgdGhhdCBjb3VsZCBiZSBjb21iaW5lZCB3aXRoIHRo
aXMgaWYKKy8vIGlmIHBvc3NpYmxlIGluIHRoZSBmdXR1cmUuCitlbnVtIGNsYXNzIEVkaXRpbmdC
ZWhhdmlvclR5cGUgOiB1aW50OF90IHsKKyAgICBNYWMsCisgICAgV2luZG93cywKKyAgICBVbml4
LAorICAgIElvcworfTsKKworfSAvLyBXZWJDb3JlIG5hbWVzcGFjZQpJbmRleDogU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0aW5nQmVoYXZpb3JUeXBlcy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yVHlwZXMuaAkocmV2aXNpb24gMjY5ODMw
KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQmVoYXZpb3JUeXBlcy5oCShub25l
eGlzdGVudCkKQEAgLTEsNDUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKLSAqIENvcHlyaWdodCAo
QykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
LSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
LSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNwcmFnbWEgb25jZQotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLS8vIFRoZXJlIGFyZSBtdWx0aXBsZSBlZGl0aW5nIGRldGFp
bHMgdGhhdCBhcmUgZGlmZmVyZW50IG9uIFdpbmRvd3MgdGhhbiBNYWNpbnRvc2guCi0vLyBXZSB1
c2UgYSBzaW5nbGUgc3dpdGNoIGZvciBhbGwgb2YgdGhlbS4gU29tZSBleGFtcGxlczoKLS8vCi0v
LyAgICAxKSBDbGlja2luZyBiZWxvdyB0aGUgbGFzdCBsaW5lIG9mIGFuIGVkaXRhYmxlIGFyZWEg
cHV0cyB0aGUgY2FyZXQgYXQgdGhlIGVuZAotLy8gICAgICAgb2YgdGhlIGxhc3QgbGluZSBvbiBN
YWMsIGJ1dCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBsYXN0IGxpbmUgb24gV2luZG93cy4KLS8vICAg
IDIpIFB1c2hpbmcgdGhlIGRvd24gYXJyb3cga2V5IG9uIHRoZSBsYXN0IGxpbmUgcHV0cyB0aGUg
Y2FyZXQgYXQgdGhlIGVuZCBvZiB0aGUKLS8vICAgICAgIGxhc3QgbGluZSBvbiBNYWMsIGJ1dCBk
b2VzIG5vdGhpbmcgb24gV2luZG93cy4gQSBzaW1pbGFyIGNhc2UgZXhpc3RzIG9uIHRoZQotLy8g
ICAgICAgdG9wIGxpbmUuCi0vLwotLy8gVGhpcyBzZXR0aW5nIGlzIGludGVuZGVkIHRvIGNvbnRy
b2wgdGhlc2Ugc29ydHMgb2YgYmVoYXZpb3JzLiBUaGVyZSBhcmUgc29tZSBvdGhlcgotLy8gYmVo
YXZpb3JzIHdpdGggaW5kaXZpZHVhbCBmdW5jdGlvbiBjYWxscyBvbiBFZGl0b3JDbGllbnQgKHNt
YXJ0IGNvcHkgYW5kIHBhc3RlIGFuZAotLy8gc2VsZWN0aW5nIHRoZSBzcGFjZSBhZnRlciBhIGRv
dWJsZSBjbGljaykgdGhhdCBjb3VsZCBiZSBjb21iaW5lZCB3aXRoIHRoaXMgaWYKLS8vIGlmIHBv
c3NpYmxlIGluIHRoZSBmdXR1cmUuCi1lbnVtIEVkaXRpbmdCZWhhdmlvclR5cGUgewotICAgIEVk
aXRpbmdNYWNCZWhhdmlvciwKLSAgICBFZGl0aW5nV2luZG93c0JlaGF2aW9yLAotICAgIEVkaXRp
bmdVbml4QmVoYXZpb3IsCi0gICAgRWRpdGluZ0lPU0JlaGF2aW9yCi19OwotCi19IC8vIFdlYkNv
cmUgbmFtZXNwYWNlCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRpbmdCZWhhdmlvclR5cGVzLmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxl
CiMjIC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4MCw3ICsy
ODAsNyBAQCBWaXNpYmxlU2VsZWN0aW9uIEVkaXRvcjo6c2VsZWN0aW9uRm9yQ29tCiAvLyBGdW5j
dGlvbiBjb25zaWRlcnMgTWFjIGVkaXRpbmcgYmVoYXZpb3IgYSBmYWxsYmFjayB3aGVuIFBhZ2Ug
b3IgU2V0dGluZ3MgaXMgbm90IGF2YWlsYWJsZS4KIEVkaXRpbmdCZWhhdmlvciBFZGl0b3I6OmJl
aGF2aW9yKCkgY29uc3QKIHsKLSAgICByZXR1cm4gRWRpdGluZ0JlaGF2aW9yKG1fZG9jdW1lbnQu
c2V0dGluZ3MoKS5lZGl0aW5nQmVoYXZpb3JUeXBlKCkpOworICAgIHJldHVybiBtX2RvY3VtZW50
LmVkaXRpbmdCZWhhdmlvcigpOwogfQogCiBFZGl0b3JDbGllbnQqIEVkaXRvcjo6Y2xpZW50KCkg
Y29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAJKHJldmlzaW9uIDI2OTgzMCkK
KysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTgwLDcgKzE4MCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxQYWdlPiBjcmVhdGVQYWdlRm9yU2FuaXQK
ICAgICBhdXRvIHBhZ2UgPSBtYWtlVW5pcXVlPFBhZ2U+KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRp
b24pKTsKICAgICBwYWdlLT5zZXR0aW5ncygpLnNldE1lZGlhRW5hYmxlZChmYWxzZSk7CiAgICAg
cGFnZS0+c2V0dGluZ3MoKS5zZXRTY3JpcHRFbmFibGVkKGZhbHNlKTsKLSAgICBwYWdlLT5zZXR0
aW5ncygpLnNldFBhcnNlclNjcmlwdGluZ0ZsYWdQb2xpY3koU2V0dGluZ3NCYXNlOjpQYXJzZXJT
Y3JpcHRpbmdGbGFnUG9saWN5OjpFbmFibGVkKTsKKyAgICBwYWdlLT5zZXR0aW5ncygpLnNldEhU
TUxQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5KEhUTUxQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5
OjpFbmFibGVkKTsKICAgICBwYWdlLT5zZXR0aW5ncygpLnNldFBsdWdpbnNFbmFibGVkKGZhbHNl
KTsKICAgICBwYWdlLT5zZXR0aW5ncygpLnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVk
KGZhbHNlKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0
aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0
ZWN0aW9uLmgJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29j
b2EvRGF0YURldGVjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw4ICsyNywxMCBAQAogCiAj
aWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQogCisjaW1wb3J0ICJEYXRhRGV0ZWN0b3JUeXBlcy5o
IgogI2ltcG9ydCAiRmxvYXRSZWN0LmgiCiAjaW1wb3J0ICJTaW1wbGVSYW5nZS5oIgorI2ltcG9y
dCA8d3RmL09wdGlvblNldC5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiBPQkpDX0NM
QVNTIEREQWN0aW9uQ29udGV4dDsKQEAgLTM5LDE3ICs0MSw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgSGl0VGVzdFJlc3VsdDsKIAotLy8gRklYTUU6IFdvdWxkIGJlIGJldHRlciB0
byB1c2UgYW4gT3B0aW9uU2V0IGFuZCB1aW50OF90LgotZW51bSBjbGFzcyBEYXRhRGV0ZWN0b3JU
eXBlcyA6IHVpbnQzMl90IHsKLSAgICBQaG9uZU51bWJlciA9IDEgPDwgMCwKLSAgICBMaW5rID0g
MSA8PCAxLAotICAgIEFkZHJlc3MgPSAxIDw8IDIsCi0gICAgQ2FsZW5kYXJFdmVudCA9IDEgPDwg
MywKLSAgICBUcmFja2luZ051bWJlciA9IDEgPDwgNCwKLSAgICBGbGlnaHROdW1iZXIgPSAxIDw8
IDUsCi0gICAgTG9va3VwU3VnZ2VzdGlvbiA9IDEgPDwgNiwKLX07Ci0KIHN0cnVjdCBEZXRlY3Rl
ZEl0ZW0gewogICAgIFJldGFpblB0cjxEREFjdGlvbkNvbnRleHQ+IGFjdGlvbkNvbnRleHQ7CiAg
ICAgRmxvYXRSZWN0IGJvdW5kaW5nQm94OwpAQCAtNjEsNyArNTIsNyBAQCBwdWJsaWM6CiAjaWYg
UExBVEZPUk0oTUFDKQogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBPcHRpb25hbDxEZXRlY3Rl
ZEl0ZW0+IGRldGVjdEl0ZW1Bcm91bmRIaXRUZXN0UmVzdWx0KGNvbnN0IEhpdFRlc3RSZXN1bHQm
KTsKICNlbmRpZgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBOU0FycmF5ICpkZXRlY3RDb250
ZW50SW5SYW5nZShjb25zdCBTaW1wbGVSYW5nZSYsIERhdGFEZXRlY3RvclR5cGVzLCBOU0RpY3Rp
b25hcnkgKmNvbnRleHQpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBOU0FycmF5ICpkZXRl
Y3RDb250ZW50SW5SYW5nZShjb25zdCBTaW1wbGVSYW5nZSYsIE9wdGlvblNldDxEYXRhRGV0ZWN0
b3JUeXBlcz4sIE5TRGljdGlvbmFyeSAqY29udGV4dCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIHZvaWQgcmVtb3ZlRGF0YURldGVjdGVkTGlua3NJbkRvY3VtZW50KERvY3VtZW50Jik7CiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBj
YW5CZVByZXNlbnRlZEJ5RGF0YURldGVjdG9ycyhjb25zdCBVUkwmKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW0JKHJldmlzaW9uIDI2OTgz
MCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbQkod29y
a2luZyBjb3B5KQpAQCAtMjE4LDMwICsyMTgsMjQgQEAgc3RhdGljIEJPT0wgcmVzdWx0SXNVUkwo
RERSZXN1bHRSZWYgcmVzdQogICAgIHJldHVybiBbdXJsVHlwZXMgY29udGFpbnNPYmplY3Q6KE5T
U3RyaW5nICopc29mdExpbmtfRGF0YURldGVjdG9yc0NvcmVfRERSZXN1bHRHZXRUeXBlKHJlc3Vs
dCldOwogfQogCi0vLyBQb29yIG1hbidzIE9wdGlvblNldC4KLXN0YXRpYyBib29sIGNvbnRhaW5z
KERhdGFEZXRlY3RvclR5cGVzIHR5cGVzLCBEYXRhRGV0ZWN0b3JUeXBlcyBzaW5nbGVUeXBlKQot
ewotICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50MzJfdD4odHlwZXMpICYgc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KHNpbmdsZVR5cGUpOwotfQotCi1zdGF0aWMgTlNTdHJpbmcgKmNvbnN0cnVjdFVS
TFN0cmluZ0ZvclJlc3VsdChERFJlc3VsdFJlZiBjdXJyZW50UmVzdWx0LCBOU1N0cmluZyAqcmVz
dWx0SWRlbnRpZmllciwgTlNEYXRlICpyZWZlcmVuY2VEYXRlLCBOU1RpbWVab25lICpyZWZlcmVu
Y2VUaW1lWm9uZSwgRGF0YURldGVjdG9yVHlwZXMgZGV0ZWN0aW9uVHlwZXMpCitzdGF0aWMgTlNT
dHJpbmcgKmNvbnN0cnVjdFVSTFN0cmluZ0ZvclJlc3VsdChERFJlc3VsdFJlZiBjdXJyZW50UmVz
dWx0LCBOU1N0cmluZyAqcmVzdWx0SWRlbnRpZmllciwgTlNEYXRlICpyZWZlcmVuY2VEYXRlLCBO
U1RpbWVab25lICpyZWZlcmVuY2VUaW1lWm9uZSwgT3B0aW9uU2V0PERhdGFEZXRlY3RvclR5cGVz
PiBkZXRlY3Rpb25UeXBlcykKIHsKICAgICBpZiAoIXNvZnRMaW5rX0RhdGFEZXRlY3RvcnNDb3Jl
X0REUmVzdWx0SGFzUHJvcGVydGllcyhjdXJyZW50UmVzdWx0LCBERFJlc3VsdFByb3BlcnR5UGFz
c2l2ZURpc3BsYXkpKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgYXV0byBwaG9uZVR5cGVz
ID0gY29udGFpbnMoZGV0ZWN0aW9uVHlwZXMsIERhdGFEZXRlY3RvclR5cGVzOjpQaG9uZU51bWJl
cikgPyBERFVSTGlmaWVyUGhvbmVOdW1iZXJEZXRlY3Rpb25SZWd1bGFyIDogRERVUkxpZmllclBo
b25lTnVtYmVyRGV0ZWN0aW9uTm9uZTsKKyAgICBhdXRvIHBob25lVHlwZXMgPSBkZXRlY3Rpb25U
eXBlcy5jb250YWlucyhEYXRhRGV0ZWN0b3JUeXBlczo6UGhvbmVOdW1iZXIpID8gRERVUkxpZmll
clBob25lTnVtYmVyRGV0ZWN0aW9uUmVndWxhciA6IEREVVJMaWZpZXJQaG9uZU51bWJlckRldGVj
dGlvbk5vbmU7CiAgICAgYXV0byBjYXRlZ29yeSA9IHNvZnRMaW5rX0RhdGFEZXRlY3RvcnNDb3Jl
X0REUmVzdWx0R2V0Q2F0ZWdvcnkoY3VycmVudFJlc3VsdCk7CiAgICAgYXV0byB0eXBlID0gc29m
dExpbmtfRGF0YURldGVjdG9yc0NvcmVfRERSZXN1bHRHZXRUeXBlKGN1cnJlbnRSZXN1bHQpOwog
Ci0gICAgaWYgKChjb250YWlucyhkZXRlY3Rpb25UeXBlcywgRGF0YURldGVjdG9yVHlwZXM6OkFk
ZHJlc3MpICYmIEREUmVzdWx0Q2F0ZWdvcnlBZGRyZXNzID09IGNhdGVnb3J5KQotICAgICAgICB8
fCAoY29udGFpbnMoZGV0ZWN0aW9uVHlwZXMsIERhdGFEZXRlY3RvclR5cGVzOjpUcmFja2luZ051
bWJlcikgJiYgQ0ZFcXVhbChnZXRfRGF0YURldGVjdG9yc0NvcmVfRERCaW5kZXJUcmFja2luZ051
bWJlcktleSgpLCB0eXBlKSkKLSAgICAgICAgfHwgKGNvbnRhaW5zKGRldGVjdGlvblR5cGVzLCBE
YXRhRGV0ZWN0b3JUeXBlczo6RmxpZ2h0TnVtYmVyKSAmJiBDRkVxdWFsKGdldF9EYXRhRGV0ZWN0
b3JzQ29yZV9EREJpbmRlckZsaWdodEluZm9ybWF0aW9uS2V5KCksIHR5cGUpKQotICAgICAgICB8
fCAoY29udGFpbnMoZGV0ZWN0aW9uVHlwZXMsIERhdGFEZXRlY3RvclR5cGVzOjpMb29rdXBTdWdn
ZXN0aW9uKSAmJiBDRkVxdWFsKGdldF9EYXRhRGV0ZWN0b3JzQ29yZV9EREJpbmRlclBhcnNlY1Nv
dXJjZUtleSgpLCB0eXBlKSkKLSAgICAgICAgfHwgKGNvbnRhaW5zKGRldGVjdGlvblR5cGVzLCBE
YXRhRGV0ZWN0b3JUeXBlczo6UGhvbmVOdW1iZXIpICYmIEREUmVzdWx0Q2F0ZWdvcnlQaG9uZU51
bWJlciA9PSBjYXRlZ29yeSkKLSAgICAgICAgfHwgKGNvbnRhaW5zKGRldGVjdGlvblR5cGVzLCBE
YXRhRGV0ZWN0b3JUeXBlczo6TGluaykgJiYgcmVzdWx0SXNVUkwoY3VycmVudFJlc3VsdCkpKSB7
CisgICAgaWYgKChkZXRlY3Rpb25UeXBlcy5jb250YWlucyhEYXRhRGV0ZWN0b3JUeXBlczo6QWRk
cmVzcykgJiYgRERSZXN1bHRDYXRlZ29yeUFkZHJlc3MgPT0gY2F0ZWdvcnkpCisgICAgICAgIHx8
IChkZXRlY3Rpb25UeXBlcy5jb250YWlucyhEYXRhRGV0ZWN0b3JUeXBlczo6VHJhY2tpbmdOdW1i
ZXIpICYmIENGRXF1YWwoZ2V0X0RhdGFEZXRlY3RvcnNDb3JlX0REQmluZGVyVHJhY2tpbmdOdW1i
ZXJLZXkoKSwgdHlwZSkpCisgICAgICAgIHx8IChkZXRlY3Rpb25UeXBlcy5jb250YWlucyhEYXRh
RGV0ZWN0b3JUeXBlczo6RmxpZ2h0TnVtYmVyKSAmJiBDRkVxdWFsKGdldF9EYXRhRGV0ZWN0b3Jz
Q29yZV9EREJpbmRlckZsaWdodEluZm9ybWF0aW9uS2V5KCksIHR5cGUpKQorICAgICAgICB8fCAo
ZGV0ZWN0aW9uVHlwZXMuY29udGFpbnMoRGF0YURldGVjdG9yVHlwZXM6Okxvb2t1cFN1Z2dlc3Rp
b24pICYmIENGRXF1YWwoZ2V0X0RhdGFEZXRlY3RvcnNDb3JlX0REQmluZGVyUGFyc2VjU291cmNl
S2V5KCksIHR5cGUpKQorICAgICAgICB8fCAoZGV0ZWN0aW9uVHlwZXMuY29udGFpbnMoRGF0YURl
dGVjdG9yVHlwZXM6OlBob25lTnVtYmVyKSAmJiBERFJlc3VsdENhdGVnb3J5UGhvbmVOdW1iZXIg
PT0gY2F0ZWdvcnkpCisgICAgICAgIHx8IChkZXRlY3Rpb25UeXBlcy5jb250YWlucyhEYXRhRGV0
ZWN0b3JUeXBlczo6TGluaykgJiYgcmVzdWx0SXNVUkwoY3VycmVudFJlc3VsdCkpKSB7CiAgICAg
ICAgIHJldHVybiBzb2Z0TGlua19EYXRhRGV0ZWN0b3JzQ29yZV9ERFVSTFN0cmluZ0ZvclJlc3Vs
dChjdXJyZW50UmVzdWx0LCByZXN1bHRJZGVudGlmaWVyLCBwaG9uZVR5cGVzLCByZWZlcmVuY2VE
YXRlLCByZWZlcmVuY2VUaW1lWm9uZSk7CiAgICAgfQotICAgIGlmIChjb250YWlucyhkZXRlY3Rp
b25UeXBlcywgRGF0YURldGVjdG9yVHlwZXM6OkNhbGVuZGFyRXZlbnQpICYmIEREUmVzdWx0Q2F0
ZWdvcnlDYWxlbmRhckV2ZW50ID09IGNhdGVnb3J5KSB7CisgICAgaWYgKGRldGVjdGlvblR5cGVz
LmNvbnRhaW5zKERhdGFEZXRlY3RvclR5cGVzOjpDYWxlbmRhckV2ZW50KSAmJiBERFJlc3VsdENh
dGVnb3J5Q2FsZW5kYXJFdmVudCA9PSBjYXRlZ29yeSkgewogICAgICAgICBpZiAoIXNvZnRMaW5r
X0RhdGFEZXRlY3RvcnNDb3JlX0REUmVzdWx0SXNQYXN0RGF0ZShjdXJyZW50UmVzdWx0LCAoQ0ZE
YXRlUmVmKXJlZmVyZW5jZURhdGUsIChDRlRpbWVab25lUmVmKXJlZmVyZW5jZVRpbWVab25lKSkK
ICAgICAgICAgICAgIHJldHVybiBzb2Z0TGlua19EYXRhRGV0ZWN0b3JzQ29yZV9ERFVSTFN0cmlu
Z0ZvclJlc3VsdChjdXJyZW50UmVzdWx0LCByZXN1bHRJZGVudGlmaWVyLCBwaG9uZVR5cGVzLCBy
ZWZlcmVuY2VEYXRlLCByZWZlcmVuY2VUaW1lWm9uZSk7CiAgICAgfQpAQCAtNDM5LDEzICs0MzMs
MTMgQEAgdm9pZCBEYXRhRGV0ZWN0aW9uOjpyZW1vdmVEYXRhRGV0ZWN0ZWRMaQogICAgICAgICBy
ZW1vdmVSZXN1bHRMaW5rc0Zyb21BbmNob3IoYW5jaG9yLmdldCgpKTsKIH0KIAotTlNBcnJheSAq
RGF0YURldGVjdGlvbjo6ZGV0ZWN0Q29udGVudEluUmFuZ2UoY29uc3QgU2ltcGxlUmFuZ2UmIGNv
bnRleHRSYW5nZSwgRGF0YURldGVjdG9yVHlwZXMgdHlwZXMsIE5TRGljdGlvbmFyeSAqY29udGV4
dCkKK05TQXJyYXkgKkRhdGFEZXRlY3Rpb246OmRldGVjdENvbnRlbnRJblJhbmdlKGNvbnN0IFNp
bXBsZVJhbmdlJiBjb250ZXh0UmFuZ2UsIE9wdGlvblNldDxEYXRhRGV0ZWN0b3JUeXBlcz4gdHlw
ZXMsIE5TRGljdGlvbmFyeSAqY29udGV4dCkKIHsKICAgICBhdXRvIHNjYW5uZXIgPSBhZG9wdENG
KHNvZnRMaW5rX0RhdGFEZXRlY3RvcnNDb3JlX0REU2Nhbm5lckNyZWF0ZShERFNjYW5uZXJUeXBl
U3RhbmRhcmQsIDAsIG51bGxwdHIpKTsKICAgICBhdXRvIHNjYW5RdWVyeSA9IGFkb3B0Q0Yoc29m
dExpbmtfRGF0YURldGVjdG9yc0NvcmVfRERTY2FuUXVlcnlDcmVhdGUoTlVMTCkpOwogICAgIGJ1
aWxkUXVlcnkoc2NhblF1ZXJ5LmdldCgpLCBjb250ZXh0UmFuZ2UpOwogICAgIAotICAgIGlmIChj
b250YWlucyh0eXBlcywgRGF0YURldGVjdG9yVHlwZXM6Okxvb2t1cFN1Z2dlc3Rpb24pKQorICAg
IGlmICh0eXBlcy5jb250YWlucyhEYXRhRGV0ZWN0b3JUeXBlczo6TG9va3VwU3VnZ2VzdGlvbikp
CiAgICAgICAgIHNvZnRMaW5rX0RhdGFEZXRlY3RvcnNDb3JlX0REU2Nhbm5lckVuYWJsZU9wdGlv
bmFsU291cmNlKHNjYW5uZXIuZ2V0KCksIEREU2Nhbm5lclNvdXJjZVNwb3RsaWdodCwgdHJ1ZSk7
CiAKICAgICAvLyBGSVhNRTogd2Ugc2hvdWxkIGFkZCBhIHRpbWVvdXQgdG8gdGhpcyBjYWxsIHRv
IG1ha2Ugc3VyZSBpdCBkb2Vzbid0IHRha2UgdG9vIG11Y2ggdGltZS4KQEAgLTYzOCw3ICs2MzIs
NyBAQCBOU0FycmF5ICpEYXRhRGV0ZWN0aW9uOjpkZXRlY3RDb250ZW50SW5SCiAKICNlbHNlCiAK
LU5TQXJyYXkgKkRhdGFEZXRlY3Rpb246OmRldGVjdENvbnRlbnRJblJhbmdlKGNvbnN0IFNpbXBs
ZVJhbmdlJiwgRGF0YURldGVjdG9yVHlwZXMsIE5TRGljdGlvbmFyeSAqKQorTlNBcnJheSAqRGF0
YURldGVjdGlvbjo6ZGV0ZWN0Q29udGVudEluUmFuZ2UoY29uc3QgU2ltcGxlUmFuZ2UmLCBPcHRp
b25TZXQ8RGF0YURldGVjdG9yVHlwZXM+LCBOU0RpY3Rpb25hcnkgKikKIHsKICAgICByZXR1cm4g
bmlsOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0b3JU
eXBlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURl
dGVjdG9yVHlwZXMuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2Nv
Y29hL0RhdGFEZXRlY3RvclR5cGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2NSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQor
CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitl
bnVtIGNsYXNzIERhdGFEZXRlY3RvclR5cGVzIDogdWludDhfdCB7CisgICAgTm9uZSA9IDAsCisg
ICAgUGhvbmVOdW1iZXIgPSAxIDw8IDAsCisgICAgTGluayA9IDEgPDwgMSwKKyAgICBBZGRyZXNz
ID0gMSA8PCAyLAorICAgIENhbGVuZGFyRXZlbnQgPSAxIDw8IDMsCisgICAgVHJhY2tpbmdOdW1i
ZXIgPSAxIDw8IDQsCisgICAgRmxpZ2h0TnVtYmVyID0gMSA8PCA1LAorICAgIExvb2t1cFN1Z2dl
c3Rpb24gPSAxIDw8IDYsCit9OworCit9CisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+
IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkRhdGFEZXRlY3RvclR5cGVzPiB7CisgICAgdXNp
bmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6RGF0YURldGVjdG9yVHlw
ZXMsCisgICAgICAgIFdlYkNvcmU6OkRhdGFEZXRlY3RvclR5cGVzOjpOb25lLAorICAgICAgICBX
ZWJDb3JlOjpEYXRhRGV0ZWN0b3JUeXBlczo6UGhvbmVOdW1iZXIsCisgICAgICAgIFdlYkNvcmU6
OkRhdGFEZXRlY3RvclR5cGVzOjpMaW5rLAorICAgICAgICBXZWJDb3JlOjpEYXRhRGV0ZWN0b3JU
eXBlczo6QWRkcmVzcywKKyAgICAgICAgV2ViQ29yZTo6RGF0YURldGVjdG9yVHlwZXM6OkNhbGVu
ZGFyRXZlbnQsCisgICAgICAgIFdlYkNvcmU6OkRhdGFEZXRlY3RvclR5cGVzOjpUcmFja2luZ051
bWJlciwKKyAgICAgICAgV2ViQ29yZTo6RGF0YURldGVjdG9yVHlwZXM6OkZsaWdodE51bWJlciwK
KyAgICAgICAgV2ViQ29yZTo6RGF0YURldGVjdG9yVHlwZXM6Okxvb2t1cFN1Z2dlc3Rpb24KKyAg
ICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKKyNlbmRpZgpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yMTQsMjggKzIxNCwyMyBAQCB2b2lkIEhUTUxBbmNob3JFbGVtZW50OjpkZWZhdWx0RXZlbnRI
YW5kCiB2b2lkIEhUTUxBbmNob3JFbGVtZW50OjpzZXRBY3RpdmUoYm9vbCBkb3duLCBib29sIHBh
dXNlKQogewogICAgIGlmIChoYXNFZGl0YWJsZVN0eWxlKCkpIHsKLSAgICAgICAgRWRpdGFibGVM
aW5rQmVoYXZpb3IgZWRpdGFibGVMaW5rQmVoYXZpb3IgPSBkb2N1bWVudCgpLnNldHRpbmdzKCku
ZWRpdGFibGVMaW5rQmVoYXZpb3IoKTsKLSAgICAgICAgICAgIAotICAgICAgICBzd2l0Y2ggKGVk
aXRhYmxlTGlua0JlaGF2aW9yKSB7Ci0gICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAg
Y2FzZSBFZGl0YWJsZUxpbmtEZWZhdWx0QmVoYXZpb3I6Ci0gICAgICAgICAgICBjYXNlIEVkaXRh
YmxlTGlua0Fsd2F5c0xpdmU6Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAg
IGNhc2UgRWRpdGFibGVMaW5rTmV2ZXJMaXZlOgorICAgICAgICBzd2l0Y2ggKGRvY3VtZW50KCku
c2V0dGluZ3MoKS5lZGl0YWJsZUxpbmtCZWhhdmlvcigpKSB7CisgICAgICAgIGNhc2UgRWRpdGFi
bGVMaW5rQmVoYXZpb3I6OkRlZmF1bHQ6CisgICAgICAgIGNhc2UgRWRpdGFibGVMaW5rQmVoYXZp
b3I6OkFsd2F5c0xpdmU6CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAvLyBEb24ndCBz
ZXQgdGhlIGxpbmsgdG8gYmUgYWN0aXZlIGlmIHRoZSBjdXJyZW50IHNlbGVjdGlvbiBpcyBpbiB0
aGUgc2FtZSBlZGl0YWJsZSBibG9jayBhcworICAgICAgICAvLyB0aGlzIGxpbmsKKyAgICAgICAg
Y2FzZSBFZGl0YWJsZUxpbmtCZWhhdmlvcjo6TGl2ZVdoZW5Ob3RGb2N1c2VkOgorICAgICAgICAg
ICAgaWYgKGRvd24gJiYgZG9jdW1lbnQoKS5mcmFtZSgpICYmIGRvY3VtZW50KCkuZnJhbWUoKS0+
c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkucm9vdEVkaXRhYmxlRWxlbWVudCgpID09IHJvb3RFZGl0
YWJsZUVsZW1lbnQoKSkKICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgCisgICAgICAgIGNhc2UgRWRpdGFibGVMaW5rQmVoYXZpb3I6Ok5ldmVyTGl2
ZToKKyAgICAgICAgY2FzZSBFZGl0YWJsZUxpbmtCZWhhdmlvcjo6T25seUxpdmVXaXRoU2hpZnRL
ZXk6CisgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgICAgIC8vIERvbid0IHNldCB0aGUg
bGluayB0byBiZSBhY3RpdmUgaWYgdGhlIGN1cnJlbnQgc2VsZWN0aW9uIGlzIGluIHRoZSBzYW1l
IGVkaXRhYmxlIGJsb2NrIGFzCi0gICAgICAgICAgICAvLyB0aGlzIGxpbmsKLSAgICAgICAgICAg
IGNhc2UgRWRpdGFibGVMaW5rTGl2ZVdoZW5Ob3RGb2N1c2VkOgotICAgICAgICAgICAgICAgIGlm
IChkb3duICYmIGRvY3VtZW50KCkuZnJhbWUoKSAmJiBkb2N1bWVudCgpLmZyYW1lKCktPnNlbGVj
dGlvbigpLnNlbGVjdGlvbigpLnJvb3RFZGl0YWJsZUVsZW1lbnQoKSA9PSByb290RWRpdGFibGVF
bGVtZW50KCkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgY2FzZSBFZGl0YWJsZUxpbmtPbmx5TGl2
ZVdpdGhTaGlmdEtleToKLSAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLQogICAg
IH0KICAgICAKICAgICBIVE1MRWxlbWVudDo6c2V0QWN0aXZlKGRvd24sIHBhdXNlKTsKQEAgLTU1
MCwxOSArNTQ1LDE5IEBAIGJvb2wgSFRNTEFuY2hvckVsZW1lbnQ6OnRyZWF0TGlua0FzTGl2ZUYK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBzd2l0Y2ggKGRvY3VtZW50KCkuc2V0dGluZ3Mo
KS5lZGl0YWJsZUxpbmtCZWhhdmlvcigpKSB7Ci0gICAgY2FzZSBFZGl0YWJsZUxpbmtEZWZhdWx0
QmVoYXZpb3I6Ci0gICAgY2FzZSBFZGl0YWJsZUxpbmtBbHdheXNMaXZlOgorICAgIGNhc2UgRWRp
dGFibGVMaW5rQmVoYXZpb3I6OkRlZmF1bHQ6CisgICAgY2FzZSBFZGl0YWJsZUxpbmtCZWhhdmlv
cjo6QWx3YXlzTGl2ZToKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBjYXNlIEVkaXRhYmxl
TGlua05ldmVyTGl2ZToKKyAgICBjYXNlIEVkaXRhYmxlTGlua0JlaGF2aW9yOjpOZXZlckxpdmU6
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIElmIHRoZSBzZWxlY3Rpb24gcHJpb3Ig
dG8gY2xpY2tpbmcgb24gdGhpcyBsaW5rIHJlc2lkZWQgaW4gdGhlIHNhbWUgZWRpdGFibGUgYmxv
Y2sgYXMgdGhpcyBsaW5rLAogICAgIC8vIGFuZCB0aGUgc2hpZnQga2V5IGlzbid0IHByZXNzZWQs
IHdlIGRvbid0IHdhbnQgdG8gZm9sbG93IHRoZSBsaW5rLgotICAgIGNhc2UgRWRpdGFibGVMaW5r
TGl2ZVdoZW5Ob3RGb2N1c2VkOgorICAgIGNhc2UgRWRpdGFibGVMaW5rQmVoYXZpb3I6OkxpdmVX
aGVuTm90Rm9jdXNlZDoKICAgICAgICAgcmV0dXJuIGV2ZW50VHlwZSA9PSBNb3VzZUV2ZW50V2l0
aFNoaWZ0S2V5IHx8IChldmVudFR5cGUgPT0gTW91c2VFdmVudFdpdGhvdXRTaGlmdEtleSAmJiBy
b290RWRpdGFibGVFbGVtZW50Rm9yU2VsZWN0aW9uT25Nb3VzZURvd24oKSAhPSByb290RWRpdGFi
bGVFbGVtZW50KCkpOwogCi0gICAgY2FzZSBFZGl0YWJsZUxpbmtPbmx5TGl2ZVdpdGhTaGlmdEtl
eToKKyAgICBjYXNlIEVkaXRhYmxlTGlua0JlaGF2aW9yOjpPbmx5TGl2ZVdpdGhTaGlmdEtleToK
ICAgICAgICAgcmV0dXJuIGV2ZW50VHlwZSA9PSBNb3VzZUV2ZW50V2l0aFNoaWZ0S2V5OwogICAg
IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlck9wdGlvbnMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJP
cHRpb25zLmNwcAkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTFBhcnNlck9wdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NSw3ICs0NSw3IEBA
IEhUTUxQYXJzZXJPcHRpb25zOjpIVE1MUGFyc2VyT3B0aW9ucygpCiBIVE1MUGFyc2VyT3B0aW9u
czo6SFRNTFBhcnNlck9wdGlvbnMoRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIFJlZlB0cjxG
cmFtZT4gZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpOwotICAgIGlmIChkb2N1bWVudC5zZXR0aW5n
cygpLnBhcnNlclNjcmlwdGluZ0ZsYWdQb2xpY3koKSA9PSBTZXR0aW5nc0Jhc2U6OlBhcnNlclNj
cmlwdGluZ0ZsYWdQb2xpY3k6OkVuYWJsZWQpCisgICAgaWYgKGRvY3VtZW50LnNldHRpbmdzKCku
aHRtbFBhcnNlclNjcmlwdGluZ0ZsYWdQb2xpY3koKSA9PSBIVE1MUGFyc2VyU2NyaXB0aW5nRmxh
Z1BvbGljeTo6RW5hYmxlZCkKICAgICAgICAgc2NyaXB0aW5nRmxhZyA9IHRydWU7CiAgICAgZWxz
ZQogICAgICAgICBzY3JpcHRpbmdGbGFnID0gZnJhbWUgJiYgZnJhbWUtPnNjcmlwdCgpLmNhbkV4
ZWN1dGVTY3JpcHRzKE5vdEFib3V0VG9FeGVjdXRlU2NyaXB0KTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlclNjcmlwdGluZ0ZsYWdQ
b2xpY3kuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
UGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitl
bnVtIGNsYXNzIEhUTUxQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5IDogdWludDhfdCB7CisgICAg
T25seUlmU2NyaXB0SXNFbmFibGVkLAorICAgIEVuYWJsZWQKK307CisKK30KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjU4MCw4
ICsyNTgwLDggQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y2hlY2tMb2FkQ29tcGxldGVGb3JUaAogICAg
ICAgICAgICAgICAgIEZSQU1FTE9BREVSX1JFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUmVzb3VyY2VM
b2FkaW5nLCAiY2hlY2tMb2FkQ29tcGxldGVGb3JUaGlzRnJhbWU6IEZpbmlzaGVkIGZyYW1lIGxv
YWQiKTsKICNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCiAgICAgICAgICAgICAgICAgYXV0byBk
b2N1bWVudCA9IG1fZnJhbWUuZG9jdW1lbnQoKTsKLSAgICAgICAgICAgICAgICBhdXRvIHR5cGVz
ID0gbV9mcmFtZS5zZXR0aW5ncygpLmRhdGFEZXRlY3RvclR5cGVzKCk7Ci0gICAgICAgICAgICAg
ICAgaWYgKGRvY3VtZW50ICYmIHN0YXRpY19jYXN0PHVpbnQzMl90Pih0eXBlcykpIHsKKyAgICAg
ICAgICAgICAgICBhdXRvIHR5cGVzID0gT3B0aW9uU2V0PERhdGFEZXRlY3RvclR5cGVzPiB7IG1f
ZnJhbWUuc2V0dGluZ3MoKS5kYXRhRGV0ZWN0b3JUeXBlcygpIH07CisgICAgICAgICAgICAgICAg
aWYgKGRvY3VtZW50ICYmIHR5cGVzKSB7CiAgICAgICAgICAgICAgICAgICAgIG1fZnJhbWUuc2V0
RGF0YURldGVjdGlvblJlc3VsdHMoRGF0YURldGVjdGlvbjo6ZGV0ZWN0Q29udGVudEluUmFuZ2Uo
bWFrZVJhbmdlU2VsZWN0aW5nTm9kZUNvbnRlbnRzKCpkb2N1bWVudCksIHR5cGVzLCBtX2NsaWVu
dC0+ZGF0YURldGVjdGlvbkNvbnRleHQoKSkpOwogICAgICAgICAgICAgICAgICAgICBpZiAobV9m
cmFtZS5pc01haW5GcmFtZSgpKQogICAgICAgICAgICAgICAgICAgICAgICAgbV9jbGllbnQtPmRp
c3BhdGNoRGlkRmluaXNoRGF0YURldGVjdGlvbihtX2ZyYW1lLmRhdGFEZXRlY3Rpb25SZXN1bHRz
KCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVy
LmNwcAkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVu
dUNvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTEwLDggKzExMTAsOCBAQCB2b2lk
IENvbnRleHRNZW51Q29udHJvbGxlcjo6cG9wdWxhdGUoKQogICAgICAgICAgICAgY3JlYXRlQW5k
QXBwZW5kV3JpdGluZ0RpcmVjdGlvblN1Yk1lbnUoV3JpdGluZ0RpcmVjdGlvbk1lbnVJdGVtKTsK
ICAgICAgICAgICAgIGFwcGVuZEl0ZW0oV3JpdGluZ0RpcmVjdGlvbk1lbnVJdGVtLCBtX2NvbnRl
eHRNZW51LmdldCgpKTsKICAgICAgICAgICAgIGlmIChQYWdlKiBwYWdlID0gZnJhbWUtPnBhZ2Uo
KSkgewotICAgICAgICAgICAgICAgIGJvb2wgaW5jbHVkZVRleHREaXJlY3Rpb25TdWJtZW51ID0g
cGFnZS0+c2V0dGluZ3MoKS50ZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yKCkg
PT0gVGV4dERpcmVjdGlvblN1Ym1lbnVBbHdheXNJbmNsdWRlZAotICAgICAgICAgICAgICAgICAg
ICB8fCAocGFnZS0+c2V0dGluZ3MoKS50ZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2
aW9yKCkgPT0gVGV4dERpcmVjdGlvblN1Ym1lbnVBdXRvbWF0aWNhbGx5SW5jbHVkZWQgJiYgZnJh
bWUtPmVkaXRvcigpLmhhc0JpZGlTZWxlY3Rpb24oKSk7CisgICAgICAgICAgICAgICAgYm9vbCBp
bmNsdWRlVGV4dERpcmVjdGlvblN1Ym1lbnUgPSBwYWdlLT5zZXR0aW5ncygpLnRleHREaXJlY3Rp
b25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IoKSA9PSBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1
c2lvbkJlaGF2aW9yOjpBbHdheXNJbmNsdWRlZAorICAgICAgICAgICAgICAgICAgICB8fCAocGFn
ZS0+c2V0dGluZ3MoKS50ZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yKCkgPT0g
VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcjo6QXV0b21hdGljYWxseUluY2x1
ZGVkICYmIGZyYW1lLT5lZGl0b3IoKS5oYXNCaWRpU2VsZWN0aW9uKCkpOwogICAgICAgICAgICAg
ICAgIGlmIChpbmNsdWRlVGV4dERpcmVjdGlvblN1Ym1lbnUpIHsKICAgICAgICAgICAgICAgICAg
ICAgQ29udGV4dE1lbnVJdGVtIFRleHREaXJlY3Rpb25NZW51SXRlbShTdWJtZW51VHlwZSwgQ29u
dGV4dE1lbnVJdGVtVGFnVGV4dERpcmVjdGlvbk1lbnUsIGNvbnRleHRNZW51SXRlbVRhZ1RleHRE
aXJlY3Rpb25NZW51KCkpOwogICAgICAgICAgICAgICAgICAgICBjcmVhdGVBbmRBcHBlbmRUZXh0
RGlyZWN0aW9uU3ViTWVudShUZXh0RGlyZWN0aW9uTWVudUl0ZW0pOwpJbmRleDogU291cmNlL1dl
YkNvcmUvcGFnZS9EZWJ1Z092ZXJsYXlSZWdpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGFnZS9EZWJ1Z092ZXJsYXlSZWdpb25zLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNl
L1dlYkNvcmUvcGFnZS9EZWJ1Z092ZXJsYXlSZWdpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0Vu
dW1UcmFpdHMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIERlYnVnT3Zl
cmxheVJlZ2lvbnMgOiB1aW50OF90IHsKKyAgICBOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbiA9IDEg
PDwgMCwKKyAgICBXaGVlbEV2ZW50SGFuZGxlclJlZ2lvbiA9IDEgPDwgMSwKKyAgICBUb3VjaEFj
dGlvblJlZ2lvbiA9IDEgPDwgMiwKKyAgICBFZGl0YWJsZUVsZW1lbnRSZWdpb24gPSAxIDw8IDMs
Cit9OworCit9CisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJh
aXRzPFdlYkNvcmU6OkRlYnVnT3ZlcmxheVJlZ2lvbnM+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBF
bnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpEZWJ1Z092ZXJsYXlSZWdpb25zLAorICAgICAg
ICBXZWJDb3JlOjpEZWJ1Z092ZXJsYXlSZWdpb25zOjpOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbiwK
KyAgICAgICAgV2ViQ29yZTo6RGVidWdPdmVybGF5UmVnaW9uczo6V2hlZWxFdmVudEhhbmRsZXJS
ZWdpb24sCisgICAgICAgIFdlYkNvcmU6OkRlYnVnT3ZlcmxheVJlZ2lvbnM6OlRvdWNoQWN0aW9u
UmVnaW9uLAorICAgICAgICBXZWJDb3JlOjpEZWJ1Z092ZXJsYXlSZWdpb25zOjpFZGl0YWJsZUVs
ZW1lbnRSZWdpb24KKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmNwcAkocmV2aXNpb24gMjY5ODMwKQor
KysgU291cmNlL1dlYkNvcmUvcGFnZS9EZWJ1Z1BhZ2VPdmVybGF5cy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM5OSwxNCArMzk5LDE0IEBAIFJlZ2lvbk92ZXJsYXkqIERlYnVnUGFnZU92ZXJsYXlz
OjpyZWdpb24KICAgICByZXR1cm4gaXQtPnZhbHVlLmF0KGluZGV4T2YocmVnaW9uVHlwZSkpLmdl
dCgpOwogfQogCi12b2lkIERlYnVnUGFnZU92ZXJsYXlzOjp1cGRhdGVPdmVybGF5UmVnaW9uVmlz
aWJpbGl0eShQYWdlJiBwYWdlLCBEZWJ1Z092ZXJsYXlSZWdpb25zIHZpc2libGVSZWdpb25zKQor
dm9pZCBEZWJ1Z1BhZ2VPdmVybGF5czo6dXBkYXRlT3ZlcmxheVJlZ2lvblZpc2liaWxpdHkoUGFn
ZSYgcGFnZSwgT3B0aW9uU2V0PERlYnVnT3ZlcmxheVJlZ2lvbnM+IHZpc2libGVSZWdpb25zKQog
ewotICAgIGlmICh2aXNpYmxlUmVnaW9ucyAmIE5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKQorICAg
IGlmICh2aXNpYmxlUmVnaW9ucy5jb250YWlucyhEZWJ1Z092ZXJsYXlSZWdpb25zOjpOb25GYXN0
U2Nyb2xsYWJsZVJlZ2lvbikpCiAgICAgICAgIHNob3dSZWdpb25PdmVybGF5KHBhZ2UsIFJlZ2lv
blR5cGU6Ok5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKTsKICAgICBlbHNlCiAgICAgICAgIGhpZGVS
ZWdpb25PdmVybGF5KHBhZ2UsIFJlZ2lvblR5cGU6Ok5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKTsK
IAotICAgIGlmICh2aXNpYmxlUmVnaW9ucyAmIFdoZWVsRXZlbnRIYW5kbGVyUmVnaW9uKQorICAg
IGlmICh2aXNpYmxlUmVnaW9ucy5jb250YWlucyhEZWJ1Z092ZXJsYXlSZWdpb25zOjpXaGVlbEV2
ZW50SGFuZGxlclJlZ2lvbikpCiAgICAgICAgIHNob3dSZWdpb25PdmVybGF5KHBhZ2UsIFJlZ2lv
blR5cGU6OldoZWVsRXZlbnRIYW5kbGVycyk7CiAgICAgZWxzZQogICAgICAgICBoaWRlUmVnaW9u
T3ZlcmxheShwYWdlLCBSZWdpb25UeXBlOjpXaGVlbEV2ZW50SGFuZGxlcnMpOwpAQCAtNDE0LDcg
KzQxNCw3IEBAIHZvaWQgRGVidWdQYWdlT3ZlcmxheXM6OnVwZGF0ZU92ZXJsYXlSZWcKIAogdm9p
ZCBEZWJ1Z1BhZ2VPdmVybGF5czo6c2V0dGluZ3NDaGFuZ2VkKFBhZ2UmIHBhZ2UpCiB7Ci0gICAg
RGVidWdPdmVybGF5UmVnaW9ucyBhY3RpdmVPdmVybGF5UmVnaW9ucyA9IHBhZ2Uuc2V0dGluZ3Mo
KS52aXNpYmxlRGVidWdPdmVybGF5UmVnaW9ucygpOworICAgIGF1dG8gYWN0aXZlT3ZlcmxheVJl
Z2lvbnMgPSBPcHRpb25TZXQ8RGVidWdPdmVybGF5UmVnaW9ucz46OmZyb21SYXcocGFnZS5zZXR0
aW5ncygpLnZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zKCkpOwogICAgIGlmICghYWN0aXZlT3Zl
cmxheVJlZ2lvbnMgJiYgIWhhc092ZXJsYXlzKHBhZ2UpKQogICAgICAgICByZXR1cm47CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmgJKHJldmlzaW9uIDI2OTgz
MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuaAkod29ya2luZyBj
b3B5KQpAQCAtMjUsOSArMjUsMTAgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJEZWJ1
Z092ZXJsYXlSZWdpb25zLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJTZXR0aW5n
cy5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvblNldC5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDMs
NyArNDQsNyBAQCBwdWJsaWM6CiAgICAgICAgIFdoZWVsRXZlbnRIYW5kbGVycywKICAgICAgICAg
Tm9uRmFzdFNjcm9sbGFibGVSZWdpb24sCiAgICAgfTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgTnVtYmVyT2ZSZWdpb25UeXBlcyA9IE5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uICsgMTsKKyAg
ICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIE51bWJlck9mUmVnaW9uVHlwZXMgPSBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oUmVnaW9uVHlwZTo6Tm9uRmFzdFNjcm9sbGFibGVSZWdpb24pICsgMTsK
IAogICAgIHN0YXRpYyB2b2lkIGRpZExheW91dChGcmFtZSYpOwogICAgIHN0YXRpYyB2b2lkIGRp
ZENoYW5nZUV2ZW50SGFuZGxlcnMoRnJhbWUmKTsKQEAgLTY2LDcgKzY3LDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgcmV0dXJuIG1fcGFnZVJlZ2lvbk92ZXJsYXlzLmNvbnRhaW5zKCZwYWdlKTsKICAg
ICB9CiAgICAgCi0gICAgdm9pZCB1cGRhdGVPdmVybGF5UmVnaW9uVmlzaWJpbGl0eShQYWdlJiwg
RGVidWdPdmVybGF5UmVnaW9ucyk7CisgICAgdm9pZCB1cGRhdGVPdmVybGF5UmVnaW9uVmlzaWJp
bGl0eShQYWdlJiwgT3B0aW9uU2V0PERlYnVnT3ZlcmxheVJlZ2lvbnM+KTsKIAogICAgIFJlZ2lv
bk92ZXJsYXkqIHJlZ2lvbk92ZXJsYXlGb3JQYWdlKFBhZ2UmLCBSZWdpb25UeXBlKSBjb25zdDsK
ICAgICBSZWdpb25PdmVybGF5JiBlbnN1cmVSZWdpb25PdmVybGF5Rm9yUGFnZShQYWdlJiwgUmVn
aW9uVHlwZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCShyZXZpc2lv
biAyNjk4MzApCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEzODMsMjEgKzEzODMsMjAgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnVzZUhh
bmRDdXJzb3IoTm9kZSogbgogICAgIC8vIElmIHRoZSBsaW5rIGlzIGVkaXRhYmxlLCB0aGVuIHdl
IG5lZWQgdG8gY2hlY2sgdGhlIHNldHRpbmdzIHRvIHNlZSB3aGV0aGVyIG9yIG5vdCB0aGUgbGlu
ayBzaG91bGQgYmUgZm9sbG93ZWQKICAgICBpZiAoZWRpdGFibGUpIHsKICAgICAgICAgc3dpdGNo
IChtX2ZyYW1lLnNldHRpbmdzKCkuZWRpdGFibGVMaW5rQmVoYXZpb3IoKSkgewotICAgICAgICBk
ZWZhdWx0OgotICAgICAgICBjYXNlIEVkaXRhYmxlTGlua0RlZmF1bHRCZWhhdmlvcjoKLSAgICAg
ICAgY2FzZSBFZGl0YWJsZUxpbmtBbHdheXNMaXZlOgorICAgICAgICBjYXNlIEVkaXRhYmxlTGlu
a0JlaGF2aW9yOjpEZWZhdWx0OgorICAgICAgICBjYXNlIEVkaXRhYmxlTGlua0JlaGF2aW9yOjpB
bHdheXNMaXZlOgogICAgICAgICAgICAgZWRpdGFibGVMaW5rRW5hYmxlZCA9IHRydWU7CiAgICAg
ICAgICAgICBicmVhazsKIAotICAgICAgICBjYXNlIEVkaXRhYmxlTGlua05ldmVyTGl2ZToKKyAg
ICAgICAgY2FzZSBFZGl0YWJsZUxpbmtCZWhhdmlvcjo6TmV2ZXJMaXZlOgogICAgICAgICAgICAg
ZWRpdGFibGVMaW5rRW5hYmxlZCA9IGZhbHNlOwogICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAg
ICAgY2FzZSBFZGl0YWJsZUxpbmtMaXZlV2hlbk5vdEZvY3VzZWQ6CisgICAgICAgIGNhc2UgRWRp
dGFibGVMaW5rQmVoYXZpb3I6OkxpdmVXaGVuTm90Rm9jdXNlZDoKICAgICAgICAgICAgIGVkaXRh
YmxlTGlua0VuYWJsZWQgPSBub2RlSXNOb3RCZWluZ0VkaXRlZCgqbm9kZSwgbV9mcmFtZSkgfHwg
c2hpZnRLZXk7CiAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICBjYXNlIEVkaXRhYmxlTGlu
a09ubHlMaXZlV2l0aFNoaWZ0S2V5OgorICAgICAgICBjYXNlIEVkaXRhYmxlTGlua0JlaGF2aW9y
OjpPbmx5TGl2ZVdpdGhTaGlmdEtleToKICAgICAgICAgICAgIGVkaXRhYmxlTGlua0VuYWJsZWQg
PSBzaGlmdEtleTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lRmxhdHRlbmluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVGbGF0dGVuaW5nLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZUZsYXR0ZW5pbmcuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM2IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51
bSBjbGFzcyBGcmFtZUZsYXR0ZW5pbmcgOiB1aW50OF90IHsKKyAgICBEaXNhYmxlZCwKKyAgICBF
bmFibGVkRm9yTm9uRnVsbFNjcmVlbklGcmFtZXMsCisgICAgRnVsbHlFbmFibGVkCit9OworCit9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcg
QEAKICNpbmNsdWRlICJBZGp1c3RWaWV3U2l6ZU9yTm90LmgiCiAjaW5jbHVkZSAiQ29sb3IuaCIK
ICNpbmNsdWRlICJDb250YWluZXJOb2RlLmgiCisjaW5jbHVkZSAiRnJhbWVGbGF0dGVuaW5nLmgi
CiAjaW5jbHVkZSAiRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5oIgogI2luY2x1ZGUgIkdyYXBoaWNz
Q29udGV4dC5oIgogI2luY2x1ZGUgIkxheW91dE1pbGVzdG9uZS5oIgpAQCAtODAsOCArODEsNiBA
QCBjbGFzcyBWaWV3OwogfQogI2VuZGlmCiAKLWVudW0gY2xhc3MgRnJhbWVGbGF0dGVuaW5nOwot
CiBQYWdpbmF0aW9uOjpNb2RlIHBhZ2luYXRpb25Nb2RlRm9yUmVuZGVyU3R5bGUoY29uc3QgUmVu
ZGVyU3R5bGUmKTsKIAogY2xhc3MgRnJhbWVWaWV3IGZpbmFsIDogcHVibGljIFNjcm9sbFZpZXcg
ewpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QREZJbWFnZUNhY2hpbmdQb2xpY3kuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BERkltYWdlQ2FjaGluZ1BvbGljeS5oCShu
b25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUERGSW1hZ2VDYWNoaW5nUG9saWN5
LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgUERGSW1hZ2VDYWNoaW5n
UG9saWN5IDogdWludDhfdCB7CisgICAgRW5hYmxlZCwKKyAgICBCZWxvd01lbW9yeUxpbWl0LAor
ICAgIERpc2FibGVkLAorICAgIENsaXBCb3VuZHNPbmx5LAorI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCisgICAgRGVmYXVsdCA9IEJlbG93TWVtb3J5TGltaXQKKyNlbHNlCisgICAgRGVmYXVsdCA9
IEVuYWJsZWQKKyNlbmRpZgorfTsKKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCShyZXZpc2lv
biAyNjk4MzApCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiRE9NUmVjdC5oIgogI2luY2x1ZGUgIkRPTVJl
Y3RMaXN0LmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VQcm92aWRlci5oIgorI2luY2x1ZGUgIkRlYnVn
T3ZlcmxheVJlZ2lvbnMuaCIKICNpbmNsdWRlICJEZWJ1Z1BhZ2VPdmVybGF5cy5oIgogI2luY2x1
ZGUgIkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCiAjaW5jbHVkZSAiRGlhZ25vc3RpY0xvZ2dp
bmdLZXlzLmgiCkBAIC05NDQsNyArOTQ1LDcgQEAgdm9pZCBQYWdlOjpzZXRFZGl0YWJsZVJlZ2lv
bkVuYWJsZWQoYm9vbAogCiBib29sIFBhZ2U6OnNob3VsZEJ1aWxkRWRpdGFibGVSZWdpb24oKSBj
b25zdAogewotICAgIHJldHVybiBtX2lzRWRpdGFibGVSZWdpb25FbmFibGVkIHx8IG1fc2V0dGlu
Z3MtPnZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zKCkgJiBFZGl0YWJsZUVsZW1lbnRSZWdpb247
CisgICAgcmV0dXJuIG1faXNFZGl0YWJsZVJlZ2lvbkVuYWJsZWQgfHwgT3B0aW9uU2V0PERlYnVn
T3ZlcmxheVJlZ2lvbnM+Ojpmcm9tUmF3KG1fc2V0dGluZ3MtPnZpc2libGVEZWJ1Z092ZXJsYXlS
ZWdpb25zKCkpLmNvbnRhaW5zKERlYnVnT3ZlcmxheVJlZ2lvbnM6OkVkaXRhYmxlRWxlbWVudFJl
Z2lvbik7CiB9CiAKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9y
aWdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdp
bi5jcHAJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlP
cmlnaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MDQsMTQgKzQwNCwxNCBAQCBib29sIFNlY3Vy
aXR5T3JpZ2luOjpjYW5BY2Nlc3NTdG9yYWdlKGNvCiAgICAgaWYgKGlzTG9jYWwoKSAmJiAhbmVl
ZHNTdG9yYWdlQWNjZXNzRnJvbUZpbGVVUkxzUXVpcmsoKSAmJiAhbV91bml2ZXJzYWxBY2Nlc3Mg
JiYgc2hvdWxkQWxsb3dGcm9tVGhpcmRQYXJ0eSAhPSBBbHdheXNBbGxvd0Zyb21UaGlyZFBhcnR5
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgCi0gICAgaWYgKG1fc3RvcmFnZUJsb2NraW5n
UG9saWN5ID09IEJsb2NrQWxsU3RvcmFnZSkKKyAgICBpZiAobV9zdG9yYWdlQmxvY2tpbmdQb2xp
Y3kgPT0gU3RvcmFnZUJsb2NraW5nUG9saWN5OjpCbG9ja0FsbCkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgLy8gRklYTUU6IFRoaXMgY2hlY2sgc2hvdWxkIGJlIHJlcGxhY2VkIHdpdGgg
YW4gQVNTRVJUIG9uY2Ugd2UgY2FuIGd1YXJhbnRlZSB0aGF0IHRvcE9yaWdpbiBpcyBub3QgbnVs
bC4KICAgICBpZiAoIXRvcE9yaWdpbikKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBpZiAo
dG9wT3JpZ2luLT5tX3N0b3JhZ2VCbG9ja2luZ1BvbGljeSA9PSBCbG9ja0FsbFN0b3JhZ2UpCisg
ICAgaWYgKHRvcE9yaWdpbi0+bV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgPT0gU3RvcmFnZUJsb2Nr
aW5nUG9saWN5OjpCbG9ja0FsbCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKHNo
b3VsZEFsbG93RnJvbVRoaXJkUGFydHkgPT0gQWx3YXlzQWxsb3dGcm9tVGhpcmRQYXJ0eSkKQEAg
LTQyMCw3ICs0MjAsNyBAQCBib29sIFNlY3VyaXR5T3JpZ2luOjpjYW5BY2Nlc3NTdG9yYWdlKGNv
CiAgICAgaWYgKG1fdW5pdmVyc2FsQWNjZXNzKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAg
IGlmICgobV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgPT0gQmxvY2tUaGlyZFBhcnR5U3RvcmFnZSB8
fCB0b3BPcmlnaW4tPm1fc3RvcmFnZUJsb2NraW5nUG9saWN5ID09IEJsb2NrVGhpcmRQYXJ0eVN0
b3JhZ2UpICYmICF0b3BPcmlnaW4tPmlzU2FtZU9yaWdpbkFzKCp0aGlzKSkKKyAgICBpZiAoKG1f
c3RvcmFnZUJsb2NraW5nUG9saWN5ID09IFN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QmxvY2tUaGly
ZFBhcnR5IHx8IHRvcE9yaWdpbi0+bV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgPT0gU3RvcmFnZUJs
b2NraW5nUG9saWN5OjpCbG9ja1RoaXJkUGFydHkpICYmICF0b3BPcmlnaW4tPmlzU2FtZU9yaWdp
bkFzKCp0aGlzKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CkBA
IC00ODgsNyArNDg4LDcgQEAgdm9pZCBTZWN1cml0eU9yaWdpbjo6Z3JhbnRTdG9yYWdlQWNjZXNz
RgogCiBTdHJpbmcgU2VjdXJpdHlPcmlnaW46OmRvbWFpbkZvckNhY2hlUGFydGl0aW9uKCkgY29u
c3QKIHsKLSAgICBpZiAobV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgIT0gQmxvY2tUaGlyZFBhcnR5
U3RvcmFnZSkKKyAgICBpZiAobV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgIT0gU3RvcmFnZUJsb2Nr
aW5nUG9saWN5OjpCbG9ja1RoaXJkUGFydHkpCiAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygp
OwogCiAgICAgaWYgKGlzSFRUUEZhbWlseSgpKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9T
ZWN1cml0eU9yaWdpbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJp
dHlPcmlnaW4uaAkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1
cml0eU9yaWdpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjcHJhZ21hIG9u
Y2UKIAogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luRGF0YS5oIgorI2luY2x1ZGUgIlN0b3JhZ2VC
bG9ja2luZ1BvbGljeS5oIgogI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAjaW5jbHVkZSA8
d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CkBAIC00MywxMiArNDQsNiBAQCBwdWJsaWM6CiAgICAgICAgIEFzawogICAgIH07CiAKLSAg
ICBlbnVtIFN0b3JhZ2VCbG9ja2luZ1BvbGljeSB7Ci0gICAgICAgIEFsbG93QWxsU3RvcmFnZSA9
IDAsCi0gICAgICAgIEJsb2NrVGhpcmRQYXJ0eVN0b3JhZ2UsCi0gICAgICAgIEJsb2NrQWxsU3Rv
cmFnZQotICAgIH07Ci0KICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPFNlY3VyaXR5T3Jp
Z2luPiBjcmVhdGUoY29uc3QgVVJMJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxT
ZWN1cml0eU9yaWdpbj4gY3JlYXRlVW5pcXVlKCk7CiAKQEAgLTI0Myw3ICsyMzgsNyBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV91bml2ZXJzYWxBY2Nlc3MgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9k
b21haW5XYXNTZXRJbkRPTSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2NhbkxvYWRMb2NhbFJlc291
cmNlcyB7IGZhbHNlIH07Ci0gICAgU3RvcmFnZUJsb2NraW5nUG9saWN5IG1fc3RvcmFnZUJsb2Nr
aW5nUG9saWN5IHsgQWxsb3dBbGxTdG9yYWdlIH07CisgICAgU3RvcmFnZUJsb2NraW5nUG9saWN5
IG1fc3RvcmFnZUJsb2NraW5nUG9saWN5IHsgU3RvcmFnZUJsb2NraW5nUG9saWN5OjpBbGxvd0Fs
bCB9OwogICAgIGJvb2wgbV9lbmZvcmNlc0ZpbGVQYXRoU2VwYXJhdGlvbiB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX25lZWRzU3RvcmFnZUFjY2Vzc0Zyb21GaWxlVVJMc1F1aXJrIHsgZmFsc2UgfTsK
ICAgICBib29sIG1faXNQb3RlbnRpYWxseVRydXN0d29ydGh5IHsgZmFsc2UgfTsKQEAgLTMwOCwx
NyArMzAzLDMgQEAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gaW5saW5lIFJlZlB0cjxTZQogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLW5hbWVzcGFjZSBXVEYgewotCi10ZW1wbGF0ZTw+
IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tp
bmdQb2xpY3k+IHsKLSAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAotICAgICAgICBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5LAotICAgICAgICBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5OjpBbGxvd0FsbFN0b3Jh
Z2UsCi0gICAgICAgIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xp
Y3k6OkJsb2NrVGhpcmRQYXJ0eVN0b3JhZ2UsCi0gICAgICAgIFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkJsb2NrQWxsU3RvcmFnZQotICAgID47Ci19Owot
Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy55YW1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAko
cmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCSh3
b3JraW5nIGNvcHkpCkBAIC05NCw3ICs5NCw3IEBAIERhdGFEZXRlY3RvclR5cGVzOgogICBjb25k
aXRpb246IEVOQUJMRShEQVRBX0RFVEVDVElPTikKICAgZGVmYXVsdFZhbHVlOgogICAgIFdlYkNv
cmU6Ci0gICAgICBkZWZhdWx0OgorICAgICAgZGVmYXVsdDogRGF0YURldGVjdG9yVHlwZXM6Ok5v
bmUKIAogRGVmYXVsdFZpZGVvUG9zdGVyVVJMOgogICBjb21tZW50OiA+LQpAQCAtMTI1LDE4ICsx
MjUsMTggQEAgRWRpdGFibGVMaW5rQmVoYXZpb3I6CiAgIHJlZmluZWRUeXBlOiBFZGl0YWJsZUxp
bmtCZWhhdmlvcgogICBkZWZhdWx0VmFsdWU6CiAgICAgV2ViQ29yZToKLSAgICAgIGRlZmF1bHQ6
IEVkaXRhYmxlTGlua0RlZmF1bHRCZWhhdmlvcgorICAgICAgZGVmYXVsdDogRWRpdGFibGVMaW5r
QmVoYXZpb3I6OkRlZmF1bHQKIAogRWRpdGluZ0JlaGF2aW9yVHlwZToKICAgdHlwZTogdWludDMy
X3QKICAgcmVmaW5lZFR5cGU6IEVkaXRpbmdCZWhhdmlvclR5cGUKICAgZGVmYXVsdFZhbHVlOgog
ICAgIFdlYkNvcmU6Ci0gICAgICBQTEFURk9STShJT1NfRkFNSUxZKTogRWRpdGluZ0lPU0JlaGF2
aW9yCi0gICAgICBPUyhEQVJXSU4pOiBFZGl0aW5nTWFjQmVoYXZpb3IKLSAgICAgIE9TKFdJTkRP
V1MpOiBFZGl0aW5nV2luZG93c0JlaGF2aW9yCi0gICAgICBPUyhVTklYKTogRWRpdGluZ1VuaXhC
ZWhhdmlvcgotICAgICAgZGVmYXVsdDogRWRpdGluZ01hY0JlaGF2aW9yCisgICAgICBQTEFURk9S
TShJT1NfRkFNSUxZKTogRWRpdGluZ0JlaGF2aW9yVHlwZTo6SW9zCisgICAgICBPUyhEQVJXSU4p
OiBFZGl0aW5nQmVoYXZpb3JUeXBlOjpNYWMKKyAgICAgIE9TKFdJTkRPV1MpOiBFZGl0aW5nQmVo
YXZpb3JUeXBlOjpXaW5kb3dzCisgICAgICBPUyhVTklYKTogRWRpdGluZ0JlaGF2aW9yVHlwZTo6
VW5peAorICAgICAgZGVmYXVsdDogRWRpdGluZ0JlaGF2aW9yVHlwZTo6TWFjCiAKIEZpeGVkQmFj
a2dyb3VuZHNQYWludFJlbGF0aXZlVG9Eb2N1bWVudDoKICAgdHlwZTogYm9vbApAQCAtMjI4LDYg
KzIyOCwxMyBAQCBHZW9sb2NhdGlvbkZsb29yTGV2ZWxFbmFibGVkOgogICAgIFdlYkNvcmU6CiAg
ICAgICBkZWZhdWx0OiB0cnVlCiAKK0hUTUxQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5OgorICB0
eXBlOiB1aW50MzJfdAorICByZWZpbmVkVHlwZTogSFRNTFBhcnNlclNjcmlwdGluZ0ZsYWdQb2xp
Y3kKKyAgZGVmYXVsdFZhbHVlOgorICAgIFdlYkNvcmU6CisgICAgICBkZWZhdWx0OiBIVE1MUGFy
c2VyU2NyaXB0aW5nRmxhZ1BvbGljeTo6T25seUlmU2NyaXB0SXNFbmFibGVkCisKIElkZW1wb3Rl
bnRNb2RlQXV0b3NpemluZ09ubHlIb25vcnNQZXJjZW50YWdlczoKICAgdHlwZTogYm9vbAogICBj
b25kaXRpb246IEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCkBAIC0zODksMTMgKzM5Niw2IEBAIE5l
ZWRzRGVmZXJLZXlEb3duQW5kS2V5UHJlc3NUaW1lcnNVbnRpbE4KICAgICBXZWJDb3JlOgogICAg
ICAgZGVmYXVsdDogZmFsc2UKIAotUGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeToKLSAgdHlwZTog
dWludDMyX3QKLSAgcmVmaW5lZFR5cGU6IFBhcnNlclNjcmlwdGluZ0ZsYWdQb2xpY3kKLSAgZGVm
YXVsdFZhbHVlOgotICAgIFdlYkNvcmU6Ci0gICAgICBkZWZhdWx0OiBQYXJzZXJTY3JpcHRpbmdG
bGFnUG9saWN5OjpPbmx5SWZTY3JpcHRJc0VuYWJsZWQKLQogUGF5bWVudFJlcXVlc3RFbmFibGVk
OgogICB0eXBlOiBib29sCiAgIGNvbmRpdGlvbjogRU5BQkxFKFBBWU1FTlRfUkVRVUVTVCkKQEAg
LTQwOCw3ICs0MDgsOCBAQCBQREZJbWFnZUNhY2hpbmdQb2xpY3k6CiAgIHJlZmluZWRUeXBlOiBQ
REZJbWFnZUNhY2hpbmdQb2xpY3kKICAgZGVmYXVsdFZhbHVlOgogICAgIFdlYkNvcmU6Ci0gICAg
ICBkZWZhdWx0OiBQREZJbWFnZUNhY2hpbmdEZWZhdWx0CisgICAgICBQTEFURk9STShJT1NfRkFN
SUxZKTogUERGSW1hZ2VDYWNoaW5nUG9saWN5OjpCZWxvd01lbW9yeUxpbWl0CisgICAgICBkZWZh
dWx0OiBQREZJbWFnZUNhY2hpbmdQb2xpY3k6OkVuYWJsZWQKIAogUHJlZmVyTUlNRVR5cGVGb3JJ
bWFnZXM6CiAgIHR5cGU6IGJvb2wKQEAgLTQ4OSwxMSArNDkwLDExIEBAIFN0b3JhZ2VBY2Nlc3NB
UElQZXJQYWdlU2NvcGVFbmFibGVkOgogCiBTdG9yYWdlQmxvY2tpbmdQb2xpY3k6CiAgIHR5cGU6
IHVpbnQzMl90Ci0gIHJlZmluZWRUeXBlOiBTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5n
UG9saWN5CisgIHJlZmluZWRUeXBlOiBTdG9yYWdlQmxvY2tpbmdQb2xpY3kKICAgd2ViY29yZU9u
Q2hhbmdlOiBzdG9yYWdlQmxvY2tpbmdQb2xpY3lDaGFuZ2VkCiAgIGRlZmF1bHRWYWx1ZToKICAg
ICBXZWJDb3JlOgotICAgICAgZGVmYXVsdDogU2VjdXJpdHlPcmlnaW46OkFsbG93QWxsU3RvcmFn
ZQorICAgICAgZGVmYXVsdDogU3RvcmFnZUJsb2NraW5nUG9saWN5OjpBbGxvd0FsbAogCiBTeXN0
ZW1MYXlvdXREaXJlY3Rpb246CiAgIHR5cGU6IHVpbnQzMl90CkBAIC01MjMsNyArNTI0LDcgQEAg
VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcjoKICAgcmVmaW5lZFR5cGU6IFRl
eHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IKICAgZGVmYXVsdFZhbHVlOgogICAg
IFdlYkNvcmU6Ci0gICAgICBkZWZhdWx0OiBUZXh0RGlyZWN0aW9uU3VibWVudUF1dG9tYXRpY2Fs
bHlJbmNsdWRlZAorICAgICAgZGVmYXVsdDogVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25C
ZWhhdmlvcjo6QXV0b21hdGljYWxseUluY2x1ZGVkCiAKIFRpbWVXaXRob3V0TW91c2VNb3ZlbWVu
dEJlZm9yZUhpZGluZ0NvbnRyb2xzOgogICB0eXBlOiBkb3VibGUKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3NCYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFn
ZS9TZXR0aW5nc0Jhc2UuaAkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9TZXR0aW5nc0Jhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNzQgKzI4LDM3IEBACiAKICNp
bmNsdWRlICJDbGlwYm9hcmRBY2Nlc3NQb2xpY3kuaCIKICNpbmNsdWRlICJDb250ZW50VHlwZS5o
IgotI2luY2x1ZGUgIkVkaXRpbmdCZWhhdmlvclR5cGVzLmgiCi0jaW5jbHVkZSAiSW50U2l6ZS5o
IgotI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiRWRpdGFibGVMaW5rQmVo
YXZpb3IuaCIKKyNpbmNsdWRlICJFZGl0aW5nQmVoYXZpb3JUeXBlLmgiCisjaW5jbHVkZSAiRm9u
dExvYWRUaW1pbmdPdmVycmlkZS5oIgorI2luY2x1ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgiCisj
aW5jbHVkZSAiRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlLmgiCisjaW5jbHVkZSAiRnJhbWVGbGF0
dGVuaW5nLmgiCisjaW5jbHVkZSAiSFRNTFBhcnNlclNjcmlwdGluZ0ZsYWdQb2xpY3kuaCIKKyNp
bmNsdWRlICJQREZJbWFnZUNhY2hpbmdQb2xpY3kuaCIKKyNpbmNsdWRlICJTdG9yYWdlQmxvY2tp
bmdQb2xpY3kuaCIKICNpbmNsdWRlICJTdG9yYWdlTWFwLmgiCi0jaW5jbHVkZSAiVGV4dEZsYWdz
LmgiCisjaW5jbHVkZSAiVGV4dERpcmVjdGlvbi5oIgorI2luY2x1ZGUgIlRleHREaXJlY3Rpb25T
dWJtZW51SW5jbHVzaW9uQmVoYXZpb3IuaCIKICNpbmNsdWRlICJUaW1lci5oIgotI2luY2x1ZGUg
IldyaXRpbmdNb2RlLmgiCisjaW5jbHVkZSAiVXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeS5o
IgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1J1bnRpbWVGbGFncy5oPgogI2luY2x1ZGUgPHVu
aWNvZGUvdXNjcmlwdC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgogI2luY2x1ZGUgPHd0Zi9V
UkwuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0
cmluZy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmdIYXNoLmg+CisKKyNpZiBFTkFC
TEUoREFUQV9ERVRFQ1RJT04pCisjaW5jbHVkZSAiRGF0YURldGVjdG9yVHlwZXMuaCIKKyNlbmRp
ZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZvbnRHZW5lcmljRmFtaWxpZXM7CiBj
bGFzcyBQYWdlOwogCi1lbnVtIGNsYXNzIERhdGFEZXRlY3RvclR5cGVzIDogdWludDMyX3Q7Ci0K
LWVudW0gRWRpdGFibGVMaW5rQmVoYXZpb3IgewotICAgIEVkaXRhYmxlTGlua0RlZmF1bHRCZWhh
dmlvciwKLSAgICBFZGl0YWJsZUxpbmtBbHdheXNMaXZlLAotICAgIEVkaXRhYmxlTGlua09ubHlM
aXZlV2l0aFNoaWZ0S2V5LAotICAgIEVkaXRhYmxlTGlua0xpdmVXaGVuTm90Rm9jdXNlZCwKLSAg
ICBFZGl0YWJsZUxpbmtOZXZlckxpdmUKLX07Ci0KLWVudW0gVGV4dERpcmVjdGlvblN1Ym1lbnVJ
bmNsdXNpb25CZWhhdmlvciB7Ci0gICAgVGV4dERpcmVjdGlvblN1Ym1lbnVOZXZlckluY2x1ZGVk
LAotICAgIFRleHREaXJlY3Rpb25TdWJtZW51QXV0b21hdGljYWxseUluY2x1ZGVkLAotICAgIFRl
eHREaXJlY3Rpb25TdWJtZW51QWx3YXlzSW5jbHVkZWQKLX07Ci0KLWVudW0gRGVidWdPdmVybGF5
UmVnaW9uRmxhZ3MgewotICAgIE5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uID0gMSA8PCAwLAotICAg
IFdoZWVsRXZlbnRIYW5kbGVyUmVnaW9uID0gMSA8PCAxLAotICAgIFRvdWNoQWN0aW9uUmVnaW9u
ID0gMSA8PCAyLAotICAgIEVkaXRhYmxlRWxlbWVudFJlZ2lvbiA9IDEgPDwgMywKLX07Ci0KLWVu
dW0gY2xhc3MgVXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeSB7Ci0gICAgQ29udGVudCwKLSAg
ICBTeXN0ZW0KLX07Ci0KLWVudW0gUERGSW1hZ2VDYWNoaW5nUG9saWN5IHsKLSAgICBQREZJbWFn
ZUNhY2hpbmdFbmFibGVkLAotICAgIFBERkltYWdlQ2FjaGluZ0JlbG93TWVtb3J5TGltaXQsCi0g
ICAgUERGSW1hZ2VDYWNoaW5nRGlzYWJsZWQsCi0gICAgUERGSW1hZ2VDYWNoaW5nQ2xpcEJvdW5k
c09ubHksCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBQREZJbWFnZUNhY2hpbmdEZWZh
dWx0ID0gUERGSW1hZ2VDYWNoaW5nQmVsb3dNZW1vcnlMaW1pdAotI2Vsc2UKLSAgICBQREZJbWFn
ZUNhY2hpbmdEZWZhdWx0ID0gUERGSW1hZ2VDYWNoaW5nRW5hYmxlZAotI2VuZGlmCi19OwotCi1l
bnVtIGNsYXNzIEZyYW1lRmxhdHRlbmluZyB7Ci0gICAgRGlzYWJsZWQsCi0gICAgRW5hYmxlZEZv
ck5vbkZ1bGxTY3JlZW5JRnJhbWVzLAotICAgIEZ1bGx5RW5hYmxlZAotfTsKLQotdHlwZWRlZiB1
bnNpZ25lZCBEZWJ1Z092ZXJsYXlSZWdpb25zOwotCiBjbGFzcyBTZXR0aW5nc0Jhc2UgewogICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKFNldHRpbmdzQmFzZSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgpAQCAtMTAzLDEwICs2Niw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcGFn
ZURlc3Ryb3llZCgpIHsgbV9wYWdlID0gbnVsbHB0cjsgfQogCi0gICAgZW51bSBjbGFzcyBGb250
TG9hZFRpbWluZ092ZXJyaWRlIDogdWludDhfdCB7IE5vbmUsIEJsb2NrLCBTd2FwLCBGYWlsdXJl
IH07Ci0gICAgZW51bSBjbGFzcyBQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5IDogdWludDhfdCB7
IE9ubHlJZlNjcmlwdElzRW5hYmxlZCwgRW5hYmxlZCB9OwotICAgIGVudW0gY2xhc3MgRm9yY2Vk
QWNjZXNzaWJpbGl0eVZhbHVlIDogdWludDhfdCB7IFN5c3RlbSwgT24sIE9mZiB9OwotCiAjaWYg
RU5BQkxFKE1FRElBX1NPVVJDRSkKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBwbGF0
Zm9ybURlZmF1bHRNZWRpYVNvdXJjZUVuYWJsZWQoKTsKICNlbmRpZgpJbmRleDogU291cmNlL1dl
YkNvcmUvcGFnZS9TdG9yYWdlQmxvY2tpbmdQb2xpY3kuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wYWdlL1N0b3JhZ2VCbG9ja2luZ1BvbGljeS5oCShub25leGlzdGVudCkKKysrIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvU3RvcmFnZUJsb2NraW5nUG9saWN5LmgJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8
d3RmL0VudW1UcmFpdHMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFN0
b3JhZ2VCbG9ja2luZ1BvbGljeSA6IHVpbnQ4X3QgeworICAgIEFsbG93QWxsID0gMCwKKyAgICBC
bG9ja1RoaXJkUGFydHksCisgICAgQmxvY2tBbGwKK307CisKK30KKworbmFtZXNwYWNlIFdURiB7
CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6U3RvcmFnZUJsb2NraW5n
UG9saWN5PiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29y
ZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5LAorICAgICAgICBXZWJDb3JlOjpTdG9yYWdlQmxvY2tp
bmdQb2xpY3k6OkFsbG93QWxsLAorICAgICAgICBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xp
Y3k6OkJsb2NrVGhpcmRQYXJ0eSwKKyAgICAgICAgV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9s
aWN5OjpCbG9ja0FsbAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BhZ2UvVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4dERpcmVjdGlvblN1Ym1lbnVJ
bmNsdXNpb25CZWhhdmlvci5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvci5oCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitlbnVtIGNsYXNzIFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZp
b3IgOiB1aW50OF90IHsKKyAgICBOZXZlckluY2x1ZGVkLAorICAgIEF1dG9tYXRpY2FsbHlJbmNs
dWRlZCwKKyAgICBBbHdheXNJbmNsdWRlZAorfTsKKworfQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGFnZS9Vc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGFnZS9Vc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5LmgJKG5vbmV4aXN0ZW50
KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9Vc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgVXNlckludGVyZmFjZURpcmVj
dGlvblBvbGljeSA6IGJvb2wgeworICAgIENvbnRlbnQsCisgICAgU3lzdGVtCit9OworCit9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuaAkocmV2aXNpb24gMjY5ODMwKQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2
LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRmxvYXRTaXplLmgiCisjaW5j
bHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIKICNpbmNsdWRlICJJbWFnZU9yaWVudGF0aW9uLmgi
CiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIlBhdGguaCIKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCShyZXZp
c2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVz
Y3JpcHRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQAogCiAjcHJhZ21hIG9u
Y2UKIAorI2luY2x1ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgiCiAjaW5jbHVkZSAiRm9udFNlbGVj
dGlvbkFsZ29yaXRobS5oIgogI2luY2x1ZGUgIkZvbnRUYWdnZWRTZXR0aW5ncy5oIgogI2luY2x1
ZGUgIlRleHRGbGFncy5oIgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Evd2luL0NBQ0ZMYXllclRyZWVIb3N0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vQ0FDRkxheWVyVHJlZUhvc3QuY3BwCShyZXZpc2lv
biAyNjk4MzApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vQ0FD
RkxheWVyVHJlZUhvc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNywxMSArMzcsMTIgQEAKICNp
bmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1DQUxheWVyV2luLmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1MYXllci5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAi
VGlsZWRCYWNraW5nLmgiCiAjaW5jbHVkZSAiV0tDQUNGVmlld0xheWVyVHJlZUhvc3QuaCIKICNp
bmNsdWRlICJXZWJDb3JlSW5zdGFuY2VIYW5kbGUuaCIKLSNpbmNsdWRlIDxsaW1pdHMuaD4KICNp
bmNsdWRlIDxRdWFydHpDb3JlL0NBQmFzZS5oPgorI2luY2x1ZGUgPGxpbWl0cy5oPgogI2luY2x1
ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvVW5pcXVlQXJyYXkuaD4KICNp
bmNsdWRlIDx3dGYvd2luL0dESU9iamVjdC5oPgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5jcHAJKHJldmlz
aW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BERkRv
Y3VtZW50SW1hZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDEsNyArMjAxLDcgQEAgdm9pZCBQ
REZEb2N1bWVudEltYWdlOjpkZWNvZGVkU2l6ZUNoYW5nZQogdm9pZCBQREZEb2N1bWVudEltYWdl
Ojp1cGRhdGVDYWNoZWRJbWFnZUlmTmVlZGVkKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29u
c3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QpCiB7CiAgICAg
Ly8gQ2xpcHBlZCBvcHRpb24gaXMgZm9yIHRlc3Rpbmcgb25seS4gRm9yY2UgcmUtY2FjaGluZyB0
aGUgUERGIHdpdGggZWFjaCBkcmF3LgotICAgIGJvb2wgZm9yY2VVcGRhdGVDYWNoZWRJbWFnZSA9
IG1fcGRmSW1hZ2VDYWNoaW5nUG9saWN5ID09IFBERkltYWdlQ2FjaGluZ0NsaXBCb3VuZHNPbmx5
IHx8ICFtX2NhY2hlZEltYWdlQnVmZmVyOworICAgIGJvb2wgZm9yY2VVcGRhdGVDYWNoZWRJbWFn
ZSA9IG1fcGRmSW1hZ2VDYWNoaW5nUG9saWN5ID09IFBERkltYWdlQ2FjaGluZ1BvbGljeTo6Q2xp
cEJvdW5kc09ubHkgfHwgIW1fY2FjaGVkSW1hZ2VCdWZmZXI7CiAgICAgaWYgKCFmb3JjZVVwZGF0
ZUNhY2hlZEltYWdlICYmIGNhY2hlUGFyYW1ldGVyc01hdGNoKGNvbnRleHQsIGRzdFJlY3QsIHNy
Y1JlY3QpKSB7CiAgICAgICAgIC8vIEFkanVzdCB0aGUgdmlldy1wb3J0IHJlY3RhbmdsZXMgaWYg
bm8gcmUtY2FjaGluZyB3aWxsIGhhcHBlbi4KICAgICAgICAgbV9jYWNoZWRJbWFnZVJlY3QubW92
ZShGbG9hdFNpemUoZHN0UmVjdC5sb2NhdGlvbigpIC0gbV9jYWNoZWREZXN0aW5hdGlvblJlY3Qu
bG9jYXRpb24oKSkpOwpAQCAtMjEwLDE3ICsyMTAsMTcgQEAgdm9pZCBQREZEb2N1bWVudEltYWdl
Ojp1cGRhdGVDYWNoZWRJbWFnZQogICAgIH0KIAogICAgIHN3aXRjaCAobV9wZGZJbWFnZUNhY2hp
bmdQb2xpY3kpIHsKLSAgICBjYXNlIFBERkltYWdlQ2FjaGluZ0Rpc2FibGVkOgorICAgIGNhc2Ug
UERGSW1hZ2VDYWNoaW5nUG9saWN5OjpEaXNhYmxlZDoKICAgICAgICAgcmV0dXJuOwotICAgIGNh
c2UgUERGSW1hZ2VDYWNoaW5nQmVsb3dNZW1vcnlMaW1pdDoKKyAgICBjYXNlIFBERkltYWdlQ2Fj
aGluZ1BvbGljeTo6QmVsb3dNZW1vcnlMaW1pdDoKICAgICAgICAgLy8gS2VlcCB0aGUgbWVtb3J5
IHVzZWQgYnkgdGhlIGNhY2hlZCBpbWFnZSBiZWxvdyBzb21lIHRocmVzaG9sZCwgb3RoZXJ3aXNl
IFdlYktpdCBwcm9jZXNzCiAgICAgICAgIC8vIHdpbGwgamV0c2FtIGlmIGl0IGV4Y2VlZHMgaXRz
IG1lbW9yeSBsaW1pdC4gT25seSBhIHJlY3RhbmdsZSBmcm9tIHRoZSBQREYgbWF5IGJlIGNhY2hl
ZC4KICAgICAgICAgbV9jYWNoZWRJbWFnZVJlY3QgPSBjYWNoZWRJbWFnZVJlY3QoY29udGV4dCwg
ZHN0UmVjdCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUERGSW1hZ2VDYWNoaW5nQ2xpcEJv
dW5kc09ubHk6CisgICAgY2FzZSBQREZJbWFnZUNhY2hpbmdQb2xpY3k6OkNsaXBCb3VuZHNPbmx5
OgogICAgICAgICBtX2NhY2hlZEltYWdlUmVjdCA9IGludGVyc2VjdGlvbihjb250ZXh0LmNsaXBC
b3VuZHMoKSwgZHN0UmVjdCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUERGSW1hZ2VDYWNo
aW5nRW5hYmxlZDoKKyAgICBjYXNlIFBERkltYWdlQ2FjaGluZ1BvbGljeTo6RW5hYmxlZDoKICAg
ICAgICAgbV9jYWNoZWRJbWFnZVJlY3QgPSBkc3RSZWN0OwogICAgICAgICBicmVhazsKICAgICB9
CkBAIC0yMjgsNyArMjI4LDcgQEAgdm9pZCBQREZEb2N1bWVudEltYWdlOjp1cGRhdGVDYWNoZWRJ
bWFnZQogICAgIEZsb2F0U2l6ZSBjYWNoZWRJbWFnZVNpemUgPSBGbG9hdFJlY3QoZW5jbG9zaW5n
SW50UmVjdChtX2NhY2hlZEltYWdlUmVjdCkpLnNpemUoKTsKIAogICAgIC8vIENhY2hlIHRoZSBQ
REYgaW1hZ2Ugb25seSBpZiB0aGUgc2l6ZSBvZiB0aGUgbmV3IGltYWdlIHdvbid0IGV4Y2VlZCB0
aGUgY2FjaGUgdGhyZXNob2xkLgotICAgIGlmIChtX3BkZkltYWdlQ2FjaGluZ1BvbGljeSA9PSBQ
REZJbWFnZUNhY2hpbmdCZWxvd01lbW9yeUxpbWl0KSB7CisgICAgaWYgKG1fcGRmSW1hZ2VDYWNo
aW5nUG9saWN5ID09IFBERkltYWdlQ2FjaGluZ1BvbGljeTo6QmVsb3dNZW1vcnlMaW1pdCkgewog
ICAgICAgICBJbnRTaXplIHNjYWxlZFNpemUgPSBJbWFnZUJ1ZmZlcjo6Y29tcGF0aWJsZUJ1ZmZl
clNpemUoY2FjaGVkSW1hZ2VTaXplLCBjb250ZXh0KTsKICAgICAgICAgaWYgKHNfYWxsRGVjb2Rl
ZERhdGFTaXplICsgc2NhbGVkU2l6ZS51bmNsYW1wZWRBcmVhKCkgKiA0IC0gbV9jYWNoZWRCeXRl
cyA+IHNfbWF4RGVjb2RlZERhdGFTaXplKSB7CiAgICAgICAgICAgICBkZXN0cm95RGVjb2RlZERh
dGEoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BERkRvY3Vt
ZW50SW1hZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9QREZEb2N1bWVudEltYWdlLmgJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuaAkod29ya2luZyBjb3B5
KQpAQCAtOTQsNyArOTQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlQ2FjaGVkSW1hZ2VJ
Zk5lZWRlZChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0
IEZsb2F0UmVjdCYgc3JjUmVjdCk7CiAgICAgYm9vbCBjYWNoZVBhcmFtZXRlcnNNYXRjaChHcmFw
aGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYg
c3JjUmVjdCkgY29uc3Q7CiAKLSAgICBQREZJbWFnZUNhY2hpbmdQb2xpY3kgbV9wZGZJbWFnZUNh
Y2hpbmdQb2xpY3kgeyBQREZJbWFnZUNhY2hpbmdEZWZhdWx0IH07CisgICAgUERGSW1hZ2VDYWNo
aW5nUG9saWN5IG1fcGRmSW1hZ2VDYWNoaW5nUG9saWN5IHsgUERGSW1hZ2VDYWNoaW5nUG9saWN5
OjpEZWZhdWx0IH07CiAKICNpZiBVU0UoUERGS0lUX0ZPUl9QREZET0NVTUVOVElNQUdFKQogICAg
IFJldGFpblB0cjxQREZEb2N1bWVudD4gbV9kb2N1bWVudDsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvRm9udFJlbmRlcmluZ01vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0ZvbnRSZW5kZXJpbmdNb2RlLmgJKG5vbmV4aXN0ZW50KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Gb250UmVuZGVyaW5nTW9kZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8g
VGhpcyBzZXR0aW5nIGlzIHVzZWQgdG8gcHJvdmlkZSB3YXlzIG9mIHN3aXRjaGluZyBiZXR3ZWVu
IG11bHRpcGxlIHJlbmRlcmluZyBtb2RlcyB0aGF0IG1heSBoYXZlIGRpZmZlcmVudAorLy8gbWV0
cmljcy4gSXQgaXMgdXNlZCB0byBzd2l0Y2ggYmV0d2VlbiBDRyBhbmQgR0RJIHRleHQgb24gV2lu
ZG93cy4KK2VudW0gY2xhc3MgRm9udFJlbmRlcmluZ01vZGUgOiB1aW50OF90IHsKKyAgICBOb3Jt
YWwsCisgICAgQWx0ZXJuYXRlCit9OworCit9CisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0
ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkZvbnRSZW5kZXJpbmdNb2RlPiB7CisgICAg
dXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6Rm9udFJlbmRlcmlu
Z01vZGUsCisgICAgICAgIFdlYkNvcmU6OkZvbnRSZW5kZXJpbmdNb2RlOjpOb3JtYWwsCisgICAg
ICAgIFdlYkNvcmU6OkZvbnRSZW5kZXJpbmdNb2RlOjpBbHRlcm5hdGUKKyAgICA+OworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV1RGCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1Rl
eHREaXJlY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L1RleHREaXJlY3Rpb24uaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L1RleHREaXJlY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBj
bGFzcyBUZXh0RGlyZWN0aW9uIDogYm9vbCB7IExUUiwgUlRMIH07CisKK2lubGluZSBib29sIGlz
TGVmdFRvUmlnaHREaXJlY3Rpb24oVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24pCit7CisgICAgcmV0
dXJuIGRpcmVjdGlvbiA9PSBUZXh0RGlyZWN0aW9uOjpMVFI7Cit9CisKK30KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEZsYWdzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RmxhZ3MuaAkocmV2aXNpb24gMjY5ODMwKQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RmxhZ3MuaAkod29ya2luZyBjb3B5KQpA
QCAtNDQsMTMgKzQ0LDYgQEAgZW51bSBjbGFzcyBGb250U21vb3RoaW5nTW9kZSA6IHVpbnQ4X3Qg
ewogICAgIFN1YnBpeGVsQW50aWFsaWFzZWQKIH07CiAKLS8vIFRoaXMgc2V0dGluZyBpcyB1c2Vk
IHRvIHByb3ZpZGUgd2F5cyBvZiBzd2l0Y2hpbmcgYmV0d2VlbiBtdWx0aXBsZSByZW5kZXJpbmcg
bW9kZXMgdGhhdCBtYXkgaGF2ZSBkaWZmZXJlbnQKLS8vIG1ldHJpY3MuIEl0IGlzIHVzZWQgdG8g
c3dpdGNoIGJldHdlZW4gQ0cgYW5kIEdESSB0ZXh0IG9uIFdpbmRvd3MuCi1lbnVtIGNsYXNzIEZv
bnRSZW5kZXJpbmdNb2RlIDogdWludDhfdCB7Ci0gICAgTm9ybWFsLAotICAgIEFsdGVybmF0ZQot
fTsKLQogZW51bSBjbGFzcyBGb250T3JpZW50YXRpb24gOiB1aW50OF90IHsKICAgICBIb3Jpem9u
dGFsLAogICAgIFZlcnRpY2FsCkBAIC02NDcsMTQgKzY0MCw2IEBAIHRlbXBsYXRlPD4gc3RydWN0
IEVudW1UcmFpdHM8V2ViQ29yZTo6Rm8KICAgICA+OwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3Qg
RW51bVRyYWl0czxXZWJDb3JlOjpGb250UmVuZGVyaW5nTW9kZT4gewotICAgIHVzaW5nIHZhbHVl
cyA9IEVudW1WYWx1ZXM8Ci0gICAgV2ViQ29yZTo6Rm9udFJlbmRlcmluZ01vZGUsCi0gICAgV2Vi
Q29yZTo6Rm9udFJlbmRlcmluZ01vZGU6Ok5vcm1hbCwKLSAgICBXZWJDb3JlOjpGb250UmVuZGVy
aW5nTW9kZTo6QWx0ZXJuYXRlCi0gICAgPjsKLX07Ci0KIHRlbXBsYXRlPD4gc3RydWN0IEVudW1U
cmFpdHM8V2ViQ29yZTo6Rm9udE9yaWVudGF0aW9uPiB7CiAgICAgdXNpbmcgdmFsdWVzID0gRW51
bVZhbHVlczwKICAgICBXZWJDb3JlOjpGb250T3JpZW50YXRpb24sCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L1dyaXRpbmdNb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9Xcml0aW5nTW9kZS5oCShyZXZpc2lvbiAyNjk4MzApCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1dyaXRpbmdNb2RlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTMxLDE4ICszMSwxMSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIlRleHREaXJl
Y3Rpb24uaCIKICNpbmNsdWRlIDxhcnJheT4KLSNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gY2xhc3MgVGV4dERpcmVjdGlvbiA6IGJvb2wg
eyBMVFIsIFJUTCB9OwotCi1pbmxpbmUgYm9vbCBpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKFRleHRE
aXJlY3Rpb24gZGlyZWN0aW9uKQotewotICAgIHJldHVybiBkaXJlY3Rpb24gPT0gVGV4dERpcmVj
dGlvbjo6TFRSOwotfQotCiBlbnVtIGNsYXNzIFdyaXRpbmdNb2RlIDogdWludDhfdCB7CiAgICAg
VG9wVG9Cb3R0b20gPSAwLCAvLyBob3Jpem9udGFsLXRiCiAgICAgQm90dG9tVG9Ub3AgPSAxLCAv
LyBob3Jpem9udGFsLWJ0CkBAIC01MCw2NyArNDMsNjggQEAgZW51bSBjbGFzcyBXcml0aW5nTW9k
ZSA6IHVpbnQ4X3QgewogICAgIFJpZ2h0VG9MZWZ0ID0gMywgLy8gdmVydGljYWwtcmwKIH07CiAK
LSNkZWZpbmUgTUFLRV9URVhUX0ZMT1cod3JpdGluZ01vZGUsIGRpcmVjdGlvbikgIChzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4od3JpdGluZ01vZGUpIDw8IDEgfCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
ZGlyZWN0aW9uKSkKK2NvbnN0ZXhwciB1bnNpZ25lZCBtYWtlVGV4dEZsb3dJbml0YWxpemVyKFdy
aXRpbmdNb2RlIHdyaXRpbmdNb2RlLCBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbikKK3sKKyAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHdyaXRpbmdNb2RlKSA8PCAxIHwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KGRpcmVjdGlvbik7Cit9CiAKIC8vIERlZmluZSB0aGUgdGV4dCBmbG93IGlu
IHRlcm1zIG9mIHRoZSB3cml0aW5nIG1vZGUgYW5kIHRoZSB0ZXh0IGRpcmVjdGlvbi4gVGhlIGZp
cnN0CiAvLyBwYXJ0IGlzIHRoZSBsaW5lIGdyb3dpbmcgZGlyZWN0aW9uIGFuZCB0aGUgc2Vjb25k
IHBhcnQgaXMgdGhlIGJsb2NrIGdyb3dpbmcgZGlyZWN0aW9uLgogZW51bSBUZXh0RmxvdyB7Ci0g
ICAgSW5saW5lRWFzdEJsb2NrU291dGggPSBNQUtFX1RFWFRfRkxPVyhXcml0aW5nTW9kZTo6VG9w
VG9Cb3R0b20sIFRleHREaXJlY3Rpb246OkxUUiksCi0gICAgSW5saW5lV2VzdEJsb2NrU291dGgg
PSBNQUtFX1RFWFRfRkxPVyhXcml0aW5nTW9kZTo6VG9wVG9Cb3R0b20sIFRleHREaXJlY3Rpb246
OlJUTCksCi0gICAgSW5saW5lRWFzdEJsb2NrTm9ydGggPSBNQUtFX1RFWFRfRkxPVyhXcml0aW5n
TW9kZTo6Qm90dG9tVG9Ub3AsIFRleHREaXJlY3Rpb246OkxUUiksCi0gICAgSW5saW5lV2VzdEJs
b2NrTm9ydGggPSBNQUtFX1RFWFRfRkxPVyhXcml0aW5nTW9kZTo6Qm90dG9tVG9Ub3AsIFRleHRE
aXJlY3Rpb246OlJUTCksCi0gICAgSW5saW5lU291dGhCbG9ja0Vhc3QgPSBNQUtFX1RFWFRfRkxP
VyhXcml0aW5nTW9kZTo6TGVmdFRvUmlnaHQsIFRleHREaXJlY3Rpb246OkxUUiksCi0gICAgSW5s
aW5lU291dGhCbG9ja1dlc3QgPSBNQUtFX1RFWFRfRkxPVyhXcml0aW5nTW9kZTo6TGVmdFRvUmln
aHQsIFRleHREaXJlY3Rpb246OlJUTCksCi0gICAgSW5saW5lTm9ydGhCbG9ja0Vhc3QgPSBNQUtF
X1RFWFRfRkxPVyhXcml0aW5nTW9kZTo6UmlnaHRUb0xlZnQsIFRleHREaXJlY3Rpb246OkxUUiks
Ci0gICAgSW5saW5lTm9ydGhCbG9ja1dlc3QgPSBNQUtFX1RFWFRfRkxPVyhXcml0aW5nTW9kZTo6
UmlnaHRUb0xlZnQsIFRleHREaXJlY3Rpb246OlJUTCkKKyAgICBJbmxpbmVFYXN0QmxvY2tTb3V0
aCA9IG1ha2VUZXh0Rmxvd0luaXRhbGl6ZXIoV3JpdGluZ01vZGU6OlRvcFRvQm90dG9tLCBUZXh0
RGlyZWN0aW9uOjpMVFIpLAorICAgIElubGluZVdlc3RCbG9ja1NvdXRoID0gbWFrZVRleHRGbG93
SW5pdGFsaXplcihXcml0aW5nTW9kZTo6VG9wVG9Cb3R0b20sIFRleHREaXJlY3Rpb246OlJUTCks
CisgICAgSW5saW5lRWFzdEJsb2NrTm9ydGggPSBtYWtlVGV4dEZsb3dJbml0YWxpemVyKFdyaXRp
bmdNb2RlOjpCb3R0b21Ub1RvcCwgVGV4dERpcmVjdGlvbjo6TFRSKSwKKyAgICBJbmxpbmVXZXN0
QmxvY2tOb3J0aCA9IG1ha2VUZXh0Rmxvd0luaXRhbGl6ZXIoV3JpdGluZ01vZGU6OkJvdHRvbVRv
VG9wLCBUZXh0RGlyZWN0aW9uOjpSVEwpLAorICAgIElubGluZVNvdXRoQmxvY2tFYXN0ID0gbWFr
ZVRleHRGbG93SW5pdGFsaXplcihXcml0aW5nTW9kZTo6TGVmdFRvUmlnaHQsIFRleHREaXJlY3Rp
b246OkxUUiksCisgICAgSW5saW5lU291dGhCbG9ja1dlc3QgPSBtYWtlVGV4dEZsb3dJbml0YWxp
emVyKFdyaXRpbmdNb2RlOjpMZWZ0VG9SaWdodCwgVGV4dERpcmVjdGlvbjo6UlRMKSwKKyAgICBJ
bmxpbmVOb3J0aEJsb2NrRWFzdCA9IG1ha2VUZXh0Rmxvd0luaXRhbGl6ZXIoV3JpdGluZ01vZGU6
OlJpZ2h0VG9MZWZ0LCBUZXh0RGlyZWN0aW9uOjpMVFIpLAorICAgIElubGluZU5vcnRoQmxvY2tX
ZXN0ID0gbWFrZVRleHRGbG93SW5pdGFsaXplcihXcml0aW5nTW9kZTo6UmlnaHRUb0xlZnQsIFRl
eHREaXJlY3Rpb246OlJUTCkKIH07CiAKLWlubGluZSBUZXh0RmxvdyBtYWtlVGV4dEZsb3coV3Jp
dGluZ01vZGUgd3JpdGluZ01vZGUsIFRleHREaXJlY3Rpb24gZGlyZWN0aW9uKQorY29uc3RleHBy
IGlubGluZSBUZXh0RmxvdyBtYWtlVGV4dEZsb3coV3JpdGluZ01vZGUgd3JpdGluZ01vZGUsIFRl
eHREaXJlY3Rpb24gZGlyZWN0aW9uKQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxUZXh0Rmxv
dz4oTUFLRV9URVhUX0ZMT1cod3JpdGluZ01vZGUsIGRpcmVjdGlvbikpOworICAgIHJldHVybiBz
dGF0aWNfY2FzdDxUZXh0Rmxvdz4obWFrZVRleHRGbG93SW5pdGFsaXplcih3cml0aW5nTW9kZSwg
ZGlyZWN0aW9uKSk7CiB9CiAKLSN1bmRlZiBNQUtFX1RFWFRfRkxPVwotCi1jb25zdCB1bnNpZ25l
ZCBUZXh0Rmxvd1JldmVyc2VkTWFzayA9IDE7Ci1jb25zdCB1bnNpZ25lZCBUZXh0Rmxvd0ZsaXBw
ZWRNYXNrID0gMjsKLWNvbnN0IHVuc2lnbmVkIFRleHRGbG93VmVydGljYWxNYXNrID0gNDsKK2Nv
bnN0ZXhwciB1bnNpZ25lZCBUZXh0Rmxvd1JldmVyc2VkTWFzayA9IDE7Citjb25zdGV4cHIgdW5z
aWduZWQgVGV4dEZsb3dGbGlwcGVkTWFzayA9IDI7Citjb25zdGV4cHIgdW5zaWduZWQgVGV4dEZs
b3dWZXJ0aWNhbE1hc2sgPSA0OwogCi1pbmxpbmUgYm9vbCBpc1JldmVyc2VkVGV4dEZsb3coVGV4
dEZsb3cgdGV4dGZsb3cpCitjb25zdGV4cHIgaW5saW5lIGJvb2wgaXNSZXZlcnNlZFRleHRGbG93
KFRleHRGbG93IHRleHRmbG93KQogewogICAgIHJldHVybiB0ZXh0ZmxvdyAmIFRleHRGbG93UmV2
ZXJzZWRNYXNrOwogfQogCi1pbmxpbmUgYm9vbCBpc0ZsaXBwZWRUZXh0RmxvdyhUZXh0RmxvdyB0
ZXh0ZmxvdykKK2NvbnN0ZXhwciBpbmxpbmUgYm9vbCBpc0ZsaXBwZWRUZXh0RmxvdyhUZXh0Rmxv
dyB0ZXh0ZmxvdykKIHsKICAgICByZXR1cm4gdGV4dGZsb3cgJiBUZXh0Rmxvd0ZsaXBwZWRNYXNr
OwogfQogCi1pbmxpbmUgYm9vbCBpc1ZlcnRpY2FsVGV4dEZsb3coVGV4dEZsb3cgdGV4dGZsb3cp
Citjb25zdGV4cHIgaW5saW5lIGJvb2wgaXNWZXJ0aWNhbFRleHRGbG93KFRleHRGbG93IHRleHRm
bG93KQogewogICAgIHJldHVybiB0ZXh0ZmxvdyAmIFRleHRGbG93VmVydGljYWxNYXNrOwogfQog
CiAvLyBMaW5lcyBoYXZlIHZlcnRpY2FsIG9yaWVudGF0aW9uOyBtb2RlcyB2ZXJ0aWNhbC1sciBv
ciB2ZXJ0aWNhbC1ybC4KLWlubGluZSBib29sIGlzVmVydGljYWxXcml0aW5nTW9kZShXcml0aW5n
TW9kZSB3cml0aW5nTW9kZSkKK2NvbnN0ZXhwciBpbmxpbmUgYm9vbCBpc1ZlcnRpY2FsV3JpdGlu
Z01vZGUoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUpCiB7CiAgICAgcmV0dXJuIGlzVmVydGljYWxU
ZXh0RmxvdyhtYWtlVGV4dEZsb3cod3JpdGluZ01vZGUsIFRleHREaXJlY3Rpb246OkxUUikpOwog
fQogCiAvLyBCbG9jayBwcm9ncmVzc2lvbiBpbmNyZWFzZXMgaW4gdGhlIG9wcG9zaXRlIGRpcmVj
dGlvbiB0byBub3JtYWw7IG1vZGVzIHZlcnRpY2FsLXJsIG9yIGhvcml6b250YWwtYnQuCi1pbmxp
bmUgYm9vbCBpc0ZsaXBwZWRXcml0aW5nTW9kZShXcml0aW5nTW9kZSB3cml0aW5nTW9kZSkKK2Nv
bnN0ZXhwciBpbmxpbmUgYm9vbCBpc0ZsaXBwZWRXcml0aW5nTW9kZShXcml0aW5nTW9kZSB3cml0
aW5nTW9kZSkKIHsKICAgICByZXR1cm4gaXNGbGlwcGVkVGV4dEZsb3cobWFrZVRleHRGbG93KHdy
aXRpbmdNb2RlLCBUZXh0RGlyZWN0aW9uOjpMVFIpKTsKIH0KIAogLy8gTGluZXMgaGF2ZSBob3Jp
em9udGFsIG9yaWVudGF0aW9uOyBtb2RlcyBob3Jpem9udGFsLXRiIG9yIGhvcml6b250YWwtYnQu
Ci1pbmxpbmUgYm9vbCBpc0hvcml6b250YWxXcml0aW5nTW9kZShXcml0aW5nTW9kZSB3cml0aW5n
TW9kZSkKK2NvbnN0ZXhwciBpbmxpbmUgYm9vbCBpc0hvcml6b250YWxXcml0aW5nTW9kZShXcml0
aW5nTW9kZSB3cml0aW5nTW9kZSkKIHsKICAgICByZXR1cm4gIWlzVmVydGljYWxXcml0aW5nTW9k
ZSh3cml0aW5nTW9kZSk7CiB9CiAKIC8vIEJvdHRvbSBvZiB0aGUgbGluZSBvY2N1cnMgZWFybGll
ciBpbiB0aGUgYmxvY2s7IG1vZGVzIHZlcnRpY2FsLWxyIG9yIGhvcml6b250YWwtYnQuCi1pbmxp
bmUgYm9vbCBpc0ZsaXBwZWRMaW5lc1dyaXRpbmdNb2RlKFdyaXRpbmdNb2RlIHdyaXRpbmdNb2Rl
KQorY29uc3RleHByIGlubGluZSBib29sIGlzRmxpcHBlZExpbmVzV3JpdGluZ01vZGUoV3JpdGlu
Z01vZGUgd3JpdGluZ01vZGUpCiB7CiAgICAgcmV0dXJuIGlzVmVydGljYWxXcml0aW5nTW9kZSh3
cml0aW5nTW9kZSkgIT0gaXNGbGlwcGVkV3JpdGluZ01vZGUod3JpdGluZ01vZGUpOwogfQpAQCAt
MTMxLDI1ICsxMjUsMjUgQEAgZW51bSBjbGFzcyBCb3hTaWRlIDogdWludDhfdCB7CiAKIGNvbnN0
ZXhwciBzdGQ6OmFycmF5PEJveFNpZGUsIDQ+IGFsbEJveFNpZGVzID0geyBCb3hTaWRlOjpUb3As
IEJveFNpZGU6OlJpZ2h0LCBCb3hTaWRlOjpCb3R0b20sIEJveFNpZGU6OkxlZnQgfTsKIAotaW5s
aW5lIGJvb2wgaXNIb3Jpem9udGFsUGh5c2ljYWxTaWRlKEJveFNpZGUgcGh5c2ljYWxTaWRlKQor
Y29uc3RleHByIGlubGluZSBib29sIGlzSG9yaXpvbnRhbFBoeXNpY2FsU2lkZShCb3hTaWRlIHBo
eXNpY2FsU2lkZSkKIHsKICAgICByZXR1cm4gcGh5c2ljYWxTaWRlID09IEJveFNpZGU6OkxlZnQg
fHwgcGh5c2ljYWxTaWRlID09IEJveFNpZGU6OlJpZ2h0OwogfQogCi1pbmxpbmUgQm94U2lkZSBt
aXJyb3JQaHlzaWNhbFNpZGUoQm94U2lkZSBwaHlzaWNhbFNpZGUpCitjb25zdGV4cHIgaW5saW5l
IEJveFNpZGUgbWlycm9yUGh5c2ljYWxTaWRlKEJveFNpZGUgcGh5c2ljYWxTaWRlKQogewogICAg
IC8vIHRvcCA8LT4gYm90dG9tIGFuZCBsZWZ0IDwtPiByaWdodCBjb252ZXJzaW9uCiAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PEJveFNpZGU+KChzdGF0aWNfY2FzdDxpbnQ+KHBoeXNpY2FsU2lkZSkg
KyAyKSAlIDQpOwogfQogCi1pbmxpbmUgQm94U2lkZSByb3RhdGVQaHlzaWNhbFNpZGUoQm94U2lk
ZSBwaHlzaWNhbFNpZGUpCitjb25zdGV4cHIgaW5saW5lIEJveFNpZGUgcm90YXRlUGh5c2ljYWxT
aWRlKEJveFNpZGUgcGh5c2ljYWxTaWRlKQogewogICAgIC8vIHRvcCA8LT4gbGVmdCBhbmQgcmln
aHQgPC0+IGJvdHRvbSBjb252ZXJzaW9uCiAgICAgYm9vbCBob3Jpem9udGFsU2lkZSA9IGlzSG9y
aXpvbnRhbFBoeXNpY2FsU2lkZShwaHlzaWNhbFNpZGUpOwogICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxCb3hTaWRlPigoc3RhdGljX2Nhc3Q8aW50PihwaHlzaWNhbFNpZGUpICsgKGhvcml6b250YWxT
aWRlID8gMSA6IDMpKSAlIDQpOwogfQogCi1pbmxpbmUgQm94U2lkZSBtYXBMb2dpY2FsU2lkZVRv
UGh5c2ljYWxTaWRlKFRleHRGbG93IHRleHRmbG93LCBMb2dpY2FsQm94U2lkZSBsb2dpY2FsU2lk
ZSkKK2NvbnN0ZXhwciBpbmxpbmUgQm94U2lkZSBtYXBMb2dpY2FsU2lkZVRvUGh5c2ljYWxTaWRl
KFRleHRGbG93IHRleHRmbG93LCBMb2dpY2FsQm94U2lkZSBsb2dpY2FsU2lkZSkKIHsKICAgICBC
b3hTaWRlIHBoeXNpY2FsU2lkZSA9IHN0YXRpY19jYXN0PEJveFNpZGU+KGxvZ2ljYWxTaWRlKTsK
ICAgICBib29sIGhvcml6b250YWxTaWRlID0gaXNIb3Jpem9udGFsUGh5c2ljYWxTaWRlKHBoeXNp
Y2FsU2lkZSk7CkBAIC0xNjMsNyArMTU3LDcgQEAgaW5saW5lIEJveFNpZGUgbWFwTG9naWNhbFNp
ZGVUb1BoeXNpY2FsUwogICAgIHJldHVybiBwaHlzaWNhbFNpZGU7CiB9CiAKLWlubGluZSBCb3hT
aWRlIG1hcExvZ2ljYWxTaWRlVG9QaHlzaWNhbFNpZGUoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUs
IExvZ2ljYWxCb3hTaWRlIGxvZ2ljYWxTaWRlKQorY29uc3RleHByIGlubGluZSBCb3hTaWRlIG1h
cExvZ2ljYWxTaWRlVG9QaHlzaWNhbFNpZGUoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUsIExvZ2lj
YWxCb3hTaWRlIGxvZ2ljYWxTaWRlKQogewogICAgIC8vIFNldCB0aGUgZGlyZWN0aW9uIHN1Y2gg
dGhhdCBzaWRlIGlzIG1pcnJvcmVkIGlmIGlzRmxpcHBlZFdyaXRpbmdNb2RlKCkgaXMgdHJ1ZQog
ICAgIFRleHREaXJlY3Rpb24gZGlyZWN0aW9uID0gaXNGbGlwcGVkV3JpdGluZ01vZGUod3JpdGlu
Z01vZGUpID8gVGV4dERpcmVjdGlvbjo6UlRMIDogVGV4dERpcmVjdGlvbjo6TFRSOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCShyZXZpc2lvbiAyNjk4MzAp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC03MDYyLDcgKzcwNjIsOCBAQCBib29sIFJlbmRlckxheWVyOjppbnZhbGlkYXRlRXZl
bnRSZWdpb24oCiAgICAgICAgIGF1dG8mIHZpZXcgPSByZW5kZXJlcigpLnZpZXcoKTsKICAgICAg
ICAgTE9HX1dJVEhfU1RSRUFNKEV2ZW50UmVnaW9ucywgc3RyZWFtIDw8ICIgY2FsbGluZyBzZXRO
ZWVkc0V2ZW50UmVnaW9uVXBkYXRlRm9yTm9uQ29tcG9zaXRlZEZyYW1lIG9uICIgPDwgdmlldyk7
CiAgICAgICAgIHZpZXcuc2V0TmVlZHNFdmVudFJlZ2lvblVwZGF0ZUZvck5vbkNvbXBvc2l0ZWRG
cmFtZSgpOwotICAgICAgICBpZiAocmVuZGVyZXIoKS5zZXR0aW5ncygpLnZpc2libGVEZWJ1Z092
ZXJsYXlSZWdpb25zKCkgJiAoVG91Y2hBY3Rpb25SZWdpb24gfCBFZGl0YWJsZUVsZW1lbnRSZWdp
b24gfCBXaGVlbEV2ZW50SGFuZGxlclJlZ2lvbikpCisgICAgICAgIGF1dG8gdmlzaWJsZURlYnVn
T3ZlcmxheVJlZ2lvbnMgPSBPcHRpb25TZXQ8RGVidWdPdmVybGF5UmVnaW9ucz46OmZyb21SYXco
cmVuZGVyZXIoKS5zZXR0aW5ncygpLnZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zKCkpOworICAg
ICAgICBpZiAodmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMuY29udGFpbnNBbnkoeyBEZWJ1Z092
ZXJsYXlSZWdpb25zOjpUb3VjaEFjdGlvblJlZ2lvbiwgRGVidWdPdmVybGF5UmVnaW9uczo6RWRp
dGFibGVFbGVtZW50UmVnaW9uLCBEZWJ1Z092ZXJsYXlSZWdpb25zOjpXaGVlbEV2ZW50SGFuZGxl
clJlZ2lvbiB9KSkKICAgICAgICAgICAgIHZpZXcuc2V0TmVlZHNSZXBhaW50SGFja0FmdGVyQ29t
cG9zaXRpbmdMYXllclVwZGF0ZUZvckRlYnVnT3ZlcmxheXNPbmx5KCk7CiAgICAgICAgIHZpZXcu
Y29tcG9zaXRvcigpLnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllclVwZGF0ZSgpOwogICAgIH0KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3Bw
CShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJCYWNraW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMxOSw4ICszMzE5LDggQEAgdm9pZCBS
ZW5kZXJMYXllckJhY2tpbmc6OnBhaW50RGVidWdPdmVybAogICAgIGF1dG8gY29udGVudE9mZnNl
dCA9IHJvdW5kZWRJbnRTaXplKGdyYXBoaWNzTGF5ZXItPm9mZnNldEZyb21SZW5kZXJlcigpKTsK
ICAgICBjb250ZXh0LnRyYW5zbGF0ZShjb250ZW50T2Zmc2V0KTsKIAotICAgIGF1dG8gdmlzaWJs
ZURlYnVnT3ZlcmxheVJlZ2lvbnMgPSByZW5kZXJlcigpLnNldHRpbmdzKCkudmlzaWJsZURlYnVn
T3ZlcmxheVJlZ2lvbnMoKTsKLSAgICBpZiAodmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMgJiAo
VG91Y2hBY3Rpb25SZWdpb24gfCBXaGVlbEV2ZW50SGFuZGxlclJlZ2lvbikpIHsKKyAgICBhdXRv
IHZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zID0gT3B0aW9uU2V0PERlYnVnT3ZlcmxheVJlZ2lv
bnM+Ojpmcm9tUmF3KHJlbmRlcmVyKCkuc2V0dGluZ3MoKS52aXNpYmxlRGVidWdPdmVybGF5UmVn
aW9ucygpKTsKKyAgICBpZiAodmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMuY29udGFpbnNBbnko
eyBEZWJ1Z092ZXJsYXlSZWdpb25zOjpUb3VjaEFjdGlvblJlZ2lvbiwgRGVidWdPdmVybGF5UmVn
aW9uczo6V2hlZWxFdmVudEhhbmRsZXJSZWdpb24gfSkpIHsKICAgICAgICAgY29uc3RleHByIGF1
dG8gcmVnaW9uQ29sb3IgPSBDb2xvcjo6Ymx1ZS5jb2xvcldpdGhBbHBoYUJ5dGUoNTApOwogICAg
ICAgICBjb250ZXh0LnNldEZpbGxDb2xvcihyZWdpb25Db2xvcik7CiAgICAgICAgIGZvciAoYXV0
byByZWN0IDogZXZlbnRSZWdpb24ucmVnaW9uKCkucmVjdHMoKSkKQEAgLTMzMjgsNyArMzMyOCw3
IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpwYWludERlYnVnT3ZlcmwKICAgICB9CiAKICNp
ZiBFTkFCTEUoVE9VQ0hfQUNUSU9OX1JFR0lPTlMpCi0gICAgaWYgKHZpc2libGVEZWJ1Z092ZXJs
YXlSZWdpb25zICYgVG91Y2hBY3Rpb25SZWdpb24pIHsKKyAgICBpZiAodmlzaWJsZURlYnVnT3Zl
cmxheVJlZ2lvbnMuY29udGFpbnMoRGVidWdPdmVybGF5UmVnaW9uczo6VG91Y2hBY3Rpb25SZWdp
b24pKSB7CiAgICAgICAgIGNvbnN0IFRvdWNoQWN0aW9uIHRvdWNoQWN0aW9uTGlzdFtdID0gewog
ICAgICAgICAgICAgVG91Y2hBY3Rpb246Ok5vbmUsCiAgICAgICAgICAgICBUb3VjaEFjdGlvbjo6
TWFuaXB1bGF0aW9uLApAQCAtMzM1NCw3ICszMzU0LDcgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tp
bmc6OnBhaW50RGVidWdPdmVybAogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0hFRUxfRVZFTlRfUkVH
SU9OUykKLSAgICBpZiAodmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMgJiBXaGVlbEV2ZW50SGFu
ZGxlclJlZ2lvbikgeworICAgIGlmICh2aXNpYmxlRGVidWdPdmVybGF5UmVnaW9ucy5jb250YWlu
cyhEZWJ1Z092ZXJsYXlSZWdpb25zOjpXaGVlbEV2ZW50SGFuZGxlclJlZ2lvbikpIHsKICAgICAg
ICAgZm9yIChhdXRvIHR5cGUgOiB7IEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlOjpXaGVlbCwgRXZl
bnRMaXN0ZW5lclJlZ2lvblR5cGU6Ok5vblBhc3NpdmVXaGVlbCB9KSB7CiAgICAgICAgICAgICBh
dXRvIGZpbGxQYXR0ZXJuID0gcGF0dGVybkZvckV2ZW50TGlzdGVuZXJSZWdpb25UeXBlKHR5cGUs
IGdyYXBoaWNzTGF5ZXItPm9mZnNldEZyb21SZW5kZXJlcigpLCBjb250ZXh0KTsKICAgICAgICAg
ICAgIGNvbnRleHQuc2V0RmlsbFBhdHRlcm4oZmlsbFBhdHRlcm4ucmVsZWFzZU5vbk51bGwoKSk7
CkBAIC0zMzY3LDcgKzMzNjcsNyBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnREZWJ1
Z092ZXJsCiAjZW5kaWYKIAogI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCi0gICAgaWYgKHZp
c2libGVEZWJ1Z092ZXJsYXlSZWdpb25zICYgRWRpdGFibGVFbGVtZW50UmVnaW9uKSB7CisgICAg
aWYgKHZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zLmNvbnRhaW5zKERlYnVnT3ZlcmxheVJlZ2lv
bnM6OkVkaXRhYmxlRWxlbWVudFJlZ2lvbikpIHsKICAgICAgICAgY29udGV4dC5zZXRGaWxsQ29s
b3IoU1JHQkE8dWludDhfdD4geyAxMjgsIDAsIDEyOCwgNTAgfSk7CiAgICAgICAgIGZvciAoYXV0
byByZWN0IDogZXZlbnRSZWdpb24ucmVjdHNGb3JFZGl0YWJsZUVsZW1lbnRzKCkpCiAgICAgICAg
ICAgICBjb250ZXh0LmZpbGxSZWN0KHJlY3QpOwpAQCAtMzQxNCw3ICszNDE0LDggQEAgdm9pZCBS
ZW5kZXJMYXllckJhY2tpbmc6OnBhaW50Q29udGVudHMoYwogCiAgICAgICAgIHBhaW50SW50b0xh
eWVyKGdyYXBoaWNzTGF5ZXIsIGNvbnRleHQsIGRpcnR5UmVjdCwgYmVoYXZpb3IpOwogCi0gICAg
ICAgIGlmIChyZW5kZXJlcigpLnNldHRpbmdzKCkudmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMo
KSAmIChUb3VjaEFjdGlvblJlZ2lvbiB8IEVkaXRhYmxlRWxlbWVudFJlZ2lvbiB8IFdoZWVsRXZl
bnRIYW5kbGVyUmVnaW9uKSkKKyAgICAgICAgYXV0byB2aXNpYmxlRGVidWdPdmVybGF5UmVnaW9u
cyA9IE9wdGlvblNldDxEZWJ1Z092ZXJsYXlSZWdpb25zPjo6ZnJvbVJhdyhyZW5kZXJlcigpLnNl
dHRpbmdzKCkudmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMoKSk7CisgICAgICAgIGlmICh2aXNp
YmxlRGVidWdPdmVybGF5UmVnaW9ucy5jb250YWluc0FueSh7IERlYnVnT3ZlcmxheVJlZ2lvbnM6
OlRvdWNoQWN0aW9uUmVnaW9uLCBEZWJ1Z092ZXJsYXlSZWdpb25zOjpFZGl0YWJsZUVsZW1lbnRS
ZWdpb24sIERlYnVnT3ZlcmxheVJlZ2lvbnM6OldoZWVsRXZlbnRIYW5kbGVyUmVnaW9uIH0pKQog
ICAgICAgICAgICAgcGFpbnREZWJ1Z092ZXJsYXlzKGdyYXBoaWNzTGF5ZXIsIGNvbnRleHQpOwog
CiAgICAgfSBlbHNlIGlmIChncmFwaGljc0xheWVyID09IGxheWVyRm9ySG9yaXpvbnRhbFNjcm9s
bGJhcigpKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3Mu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5jcHAJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxTZXR0aW5ncy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDYgQEAKICNpbmNsdWRl
ICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5o
IgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKLSNpbmNsdWRlICJTZXR0aW5n
cy5oIgogI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCiAjaW5jbHVkZSA8d3RmL0xhbmd1YWdl
Lmg+CiAKQEAgLTUwLDkgKzQ5LDkgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogSW50ZXJuYWxT
ZXR0aW5nczo6QmFja3VwOjpCYWNrdXAoU2V0dGluZ3MmIHNldHRpbmdzKQotICAgIDogbV9vcmln
aW5hbEVkaXRpbmdCZWhhdmlvcihzZXR0aW5ncy5lZGl0aW5nQmVoYXZpb3JUeXBlKCkpCi0gICAg
LCBtX21pbmltdW1ET01UaW1lckludGVydmFsKHNldHRpbmdzLm1pbmltdW1ET01UaW1lckludGVy
dmFsKCkpCisgICAgOiBtX21pbmltdW1ET01UaW1lckludGVydmFsKHNldHRpbmdzLm1pbmltdW1E
T01UaW1lckludGVydmFsKCkpCiAgICAgLCBtX29yaWdpbmFsVGltZVdpdGhvdXRNb3VzZU1vdmVt
ZW50QmVmb3JlSGlkaW5nQ29udHJvbHMoc2V0dGluZ3MudGltZVdpdGhvdXRNb3VzZU1vdmVtZW50
QmVmb3JlSGlkaW5nQ29udHJvbHMoKSkKKyAgICAsIG1fb3JpZ2luYWxFZGl0aW5nQmVoYXZpb3Io
c2V0dGluZ3MuZWRpdGluZ0JlaGF2aW9yVHlwZSgpKQogICAgICwgbV9zdG9yYWdlQmxvY2tpbmdQ
b2xpY3koc2V0dGluZ3Muc3RvcmFnZUJsb2NraW5nUG9saWN5KCkpCiAgICAgLCBtX3VzZXJJbnRl
cmZhY2VEaXJlY3Rpb25Qb2xpY3koc2V0dGluZ3MudXNlckludGVyZmFjZURpcmVjdGlvblBvbGlj
eSgpKQogICAgICwgbV9zeXN0ZW1MYXlvdXREaXJlY3Rpb24oc2V0dGluZ3Muc3lzdGVtTGF5b3V0
RGlyZWN0aW9uKCkpCkBAIC0xMDgsOSArMTA3LDkgQEAgdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpC
YWNrdXA6OnJlc3RvcmVUbwogICAgICAgICBzZXR0aW5ncy5zZXRQaWN0b2dyYXBoRm9udEZhbWls
eShwaWN0b2dyYXBoRm9udC52YWx1ZSwgc3RhdGljX2Nhc3Q8VVNjcmlwdENvZGU+KHBpY3RvZ3Jh
cGhGb250LmtleSkpOwogICAgIG1fcGljdG9ncmFwaEZvbnRGYW1pbGllcy5jbGVhcigpOwogCi0g
ICAgc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yVHlwZShtX29yaWdpbmFsRWRpdGluZ0JlaGF2
aW9yKTsKICAgICBzZXR0aW5ncy5zZXRNaW5pbXVtRE9NVGltZXJJbnRlcnZhbChtX21pbmltdW1E
T01UaW1lckludGVydmFsKTsKICAgICBzZXR0aW5ncy5zZXRUaW1lV2l0aG91dE1vdXNlTW92ZW1l
bnRCZWZvcmVIaWRpbmdDb250cm9scyhtX29yaWdpbmFsVGltZVdpdGhvdXRNb3VzZU1vdmVtZW50
QmVmb3JlSGlkaW5nQ29udHJvbHMpOworICAgIHNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvclR5
cGUobV9vcmlnaW5hbEVkaXRpbmdCZWhhdmlvcik7CiAgICAgc2V0dGluZ3Muc2V0U3RvcmFnZUJs
b2NraW5nUG9saWN5KG1fc3RvcmFnZUJsb2NraW5nUG9saWN5KTsKICAgICBzZXR0aW5ncy5zZXRV
c2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5KG1fdXNlckludGVyZmFjZURpcmVjdGlvblBvbGlj
eSk7CiAgICAgc2V0dGluZ3Muc2V0U3lzdGVtTGF5b3V0RGlyZWN0aW9uKG1fc3lzdGVtTGF5b3V0
RGlyZWN0aW9uKTsKQEAgLTMwNCwyNCArMzAzLDExIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEludGVy
bmFsU2V0dGluZ3M6OnNldFQKICAgICByZXR1cm4geyB9OwogfQogCi1FeGNlcHRpb25Pcjx2b2lk
PiBJbnRlcm5hbFNldHRpbmdzOjpzZXRFZGl0aW5nQmVoYXZpb3IoRWRpdGluZ0JlaGF2aW9yIGVk
aXRpbmdCZWhhdmlvcikKK0V4Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFsU2V0dGluZ3M6OnNldEVk
aXRpbmdCZWhhdmlvcihFZGl0aW5nQmVoYXZpb3JUeXBlIGVkaXRpbmdCZWhhdmlvclR5cGUpCiB7
CiAgICAgaWYgKCFtX3BhZ2UpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNj
ZXNzRXJyb3IgfTsKLSAgICBzd2l0Y2ggKGVkaXRpbmdCZWhhdmlvcikgewotICAgIGNhc2UgRWRp
dGluZ0JlaGF2aW9yOjpXaW46Ci0gICAgICAgIHNldHRpbmdzKCkuc2V0RWRpdGluZ0JlaGF2aW9y
VHlwZShFZGl0aW5nV2luZG93c0JlaGF2aW9yKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBF
ZGl0aW5nQmVoYXZpb3I6Ok1hYzoKLSAgICAgICAgc2V0dGluZ3MoKS5zZXRFZGl0aW5nQmVoYXZp
b3JUeXBlKEVkaXRpbmdNYWNCZWhhdmlvcik7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRWRp
dGluZ0JlaGF2aW9yOjpVbml4OgotICAgICAgICBzZXR0aW5ncygpLnNldEVkaXRpbmdCZWhhdmlv
clR5cGUoRWRpdGluZ1VuaXhCZWhhdmlvcik7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRWRp
dGluZ0JlaGF2aW9yOjpJb3M6Ci0gICAgICAgIHNldHRpbmdzKCkuc2V0RWRpdGluZ0JlaGF2aW9y
VHlwZShFZGl0aW5nSU9TQmVoYXZpb3IpOwotICAgICAgICBicmVhazsKLSAgICB9CisgICAgc2V0
dGluZ3MoKS5zZXRFZGl0aW5nQmVoYXZpb3JUeXBlKGVkaXRpbmdCZWhhdmlvclR5cGUpOwogICAg
IHJldHVybiB7IH07CiB9CiAKQEAgLTMyOSwxNyArMzE1LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4g
SW50ZXJuYWxTZXR0aW5nczo6c2V0UwogewogICAgIGlmICghbV9wYWdlKQogICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yIH07Ci0gICAgc3dpdGNoIChwb2xpY3kp
IHsKLSAgICBjYXNlIFN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QWxsb3dBbGw6Ci0gICAgICAgIHNl
dHRpbmdzKCkuc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KFNlY3VyaXR5T3JpZ2luOjpBbGxvd0Fs
bFN0b3JhZ2UpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFN0b3JhZ2VCbG9ja2luZ1BvbGlj
eTo6QmxvY2tUaGlyZFBhcnR5OgotICAgICAgICBzZXR0aW5ncygpLnNldFN0b3JhZ2VCbG9ja2lu
Z1BvbGljeShTZWN1cml0eU9yaWdpbjo6QmxvY2tUaGlyZFBhcnR5U3RvcmFnZSk7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgU3RvcmFnZUJsb2NraW5nUG9saWN5OjpCbG9ja0FsbDoKLSAgICAg
ICAgc2V0dGluZ3MoKS5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koU2VjdXJpdHlPcmlnaW46OkJs
b2NrQWxsU3RvcmFnZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KKyAgICBzZXR0aW5ncygpLnNl
dFN0b3JhZ2VCbG9ja2luZ1BvbGljeShwb2xpY3kpOwogICAgIHJldHVybiB7IH07CiB9CiAKQEAg
LTM0NywyMCArMzIzLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxTZXR0aW5nczo6c2V0
UAogewogICAgIGlmICghbV9wYWdlKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZEFjY2Vzc0Vycm9yIH07Ci0gICAgc3dpdGNoIChwb2xpY3kpIHsKLSAgICBjYXNlIFBERkltYWdl
Q2FjaGluZ1BvbGljeTo6RW5hYmxlZDoKLSAgICAgICAgc2V0dGluZ3MoKS5zZXRQZGZJbWFnZUNh
Y2hpbmdQb2xpY3koUERGSW1hZ2VDYWNoaW5nRGlzYWJsZWQpOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIFBERkltYWdlQ2FjaGluZ1BvbGljeTo6QmVsb3dNZW1vcnlMaW1pdDoKLSAgICAgICAg
c2V0dGluZ3MoKS5zZXRQZGZJbWFnZUNhY2hpbmdQb2xpY3koUERGSW1hZ2VDYWNoaW5nQmVsb3dN
ZW1vcnlMaW1pdCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUERGSW1hZ2VDYWNoaW5nUG9s
aWN5OjpEaXNhYmxlZDoKLSAgICAgICAgc2V0dGluZ3MoKS5zZXRQZGZJbWFnZUNhY2hpbmdQb2xp
Y3koUERGSW1hZ2VDYWNoaW5nRGlzYWJsZWQpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBE
RkltYWdlQ2FjaGluZ1BvbGljeTo6Q2xpcEJvdW5kc09ubHk6Ci0gICAgICAgIHNldHRpbmdzKCku
c2V0UGRmSW1hZ2VDYWNoaW5nUG9saWN5KFBERkltYWdlQ2FjaGluZ0NsaXBCb3VuZHNPbmx5KTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgfQorICAgIHNldHRpbmdzKCkuc2V0UGRmSW1hZ2VDYWNoaW5n
UG9saWN5KHBvbGljeSk7CiAgICAgcmV0dXJuIHsgfTsKIH0KIApJbmRleDogU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
NiwyMiArMjYsMTQgQEAKIAogI3ByYWdtYSBvbmNlCiAKLS8vIEZJWE1FICgxMjE5MjcpOiBUaGlz
IGluY2x1ZGUgc2hvdWxkIG5vdCBiZSBuZWVkZWQuCi0jaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0
cmluZ0hhc2guaD4KLQotI2luY2x1ZGUgIkVkaXRpbmdCZWhhdmlvclR5cGVzLmgiCiAjaW5jbHVk
ZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlICJGb250R2VuZXJpY0ZhbWlsaWVzLmgiCi0jaW5j
bHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIkludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQuaCIK
LSNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCi0jaW5j
bHVkZSAiV3JpdGluZ01vZGUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBQYWdl
OwotY2xhc3MgU2V0dGluZ3M7CiAKIGNsYXNzIEludGVybmFsU2V0dGluZ3MgOiBwdWJsaWMgSW50
ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZCB7CiBwdWJsaWM6CkBAIC02NCwxMyArNTYsMTMgQEAgcHVi
bGljOgogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldE1pbmltdW1UaW1lckludGVydmFsKGRvdWJs
ZSBpbnRlcnZhbEluU2Vjb25kcyk7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VGltZVdpdGhv
dXRNb3VzZU1vdmVtZW50QmVmb3JlSGlkaW5nQ29udHJvbHMoZG91YmxlIGludGVydmFsSW5TZWNv
bmRzKTsKIAotICAgIGVudW0gY2xhc3MgRWRpdGluZ0JlaGF2aW9yIDogdWludDhfdCB7IE1hYywg
V2luLCBVbml4LCBJb3MgfTsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRFZGl0aW5nQmVoYXZp
b3IoRWRpdGluZ0JlaGF2aW9yKTsKKyAgICB1c2luZyBFZGl0aW5nQmVoYXZpb3JUeXBlID0gV2Vi
Q29yZTo6RWRpdGluZ0JlaGF2aW9yVHlwZTsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRFZGl0
aW5nQmVoYXZpb3IoRWRpdGluZ0JlaGF2aW9yVHlwZSk7CiAgICAgCi0gICAgZW51bSBjbGFzcyBQ
REZJbWFnZUNhY2hpbmdQb2xpY3kgOiB1aW50OF90IHsgRW5hYmxlZCwgQmVsb3dNZW1vcnlMaW1p
dCwgRGlzYWJsZWQsIENsaXBCb3VuZHNPbmx5IH07CisgICAgdXNpbmcgUERGSW1hZ2VDYWNoaW5n
UG9saWN5ID0gV2ViQ29yZTo6UERGSW1hZ2VDYWNoaW5nUG9saWN5OwogICAgIEV4Y2VwdGlvbk9y
PHZvaWQ+IHNldFBERkltYWdlQ2FjaGluZ1BvbGljeShQREZJbWFnZUNhY2hpbmdQb2xpY3kpOwog
Ci0gICAgZW51bSBjbGFzcyBTdG9yYWdlQmxvY2tpbmdQb2xpY3kgOiB1aW50OF90IHsgQWxsb3dB
bGwsIEJsb2NrVGhpcmRQYXJ0eSwgQmxvY2tBbGwgfTsKKyAgICB1c2luZyBTdG9yYWdlQmxvY2tp
bmdQb2xpY3kgPSBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k7CiAgICAgRXhjZXB0aW9u
T3I8dm9pZD4gc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KFN0b3JhZ2VCbG9ja2luZ1BvbGljeSk7
CiAgICAgCiAgICAgdXNpbmcgVXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeSA9IFdlYkNvcmU6
OlVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3k7CkBAIC03OSwxMyArNzEsMTMgQEAgcHVibGlj
OgogICAgIHVzaW5nIFN5c3RlbUxheW91dERpcmVjdGlvbiA9IFRleHREaXJlY3Rpb247CiAgICAg
RXhjZXB0aW9uT3I8dm9pZD4gc2V0U3lzdGVtTGF5b3V0RGlyZWN0aW9uKFN5c3RlbUxheW91dERp
cmVjdGlvbik7CiAKLSAgICB1c2luZyBGb250TG9hZFRpbWluZ092ZXJyaWRlID0gU2V0dGluZ3M6
OkZvbnRMb2FkVGltaW5nT3ZlcnJpZGU7CisgICAgdXNpbmcgRm9udExvYWRUaW1pbmdPdmVycmlk
ZSA9IFdlYkNvcmU6OkZvbnRMb2FkVGltaW5nT3ZlcnJpZGU7CiAgICAgRXhjZXB0aW9uT3I8dm9p
ZD4gc2V0Rm9udExvYWRUaW1pbmdPdmVycmlkZShGb250TG9hZFRpbWluZ092ZXJyaWRlKTsKIAog
ICAgIHVzaW5nIEZyYW1lRmxhdHRlbmluZ1ZhbHVlID0gRnJhbWVGbGF0dGVuaW5nOwogICAgIEV4
Y2VwdGlvbk9yPHZvaWQ+IHNldEZyYW1lRmxhdHRlbmluZyhGcmFtZUZsYXR0ZW5pbmdWYWx1ZSk7
CiAKLSAgICB1c2luZyBGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUgPSBTZXR0aW5nczo6Rm9yY2Vk
QWNjZXNzaWJpbGl0eVZhbHVlOworICAgIHVzaW5nIEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZSA9
IFdlYkNvcmU6OkZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZTsKICAgICBGb3JjZWRBY2Nlc3NpYmls
aXR5VmFsdWUgZm9yY2VkQ29sb3JzQXJlSW52ZXJ0ZWRBY2Nlc3NpYmlsaXR5VmFsdWUoKSBjb25z
dDsKICAgICB2b2lkIHNldEZvcmNlZENvbG9yc0FyZUludmVydGVkQWNjZXNzaWJpbGl0eVZhbHVl
KEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZSk7CiAgICAgRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVl
IGZvcmNlZERpc3BsYXlJc01vbm9jaHJvbWVBY2Nlc3NpYmlsaXR5VmFsdWUoKSBjb25zdDsKQEAg
LTE0OCwxOCArMTQwLDE4IEBAIHByaXZhdGU6CiAgICAgICAgIFNjcmlwdEZvbnRGYW1pbHlNYXAg
bV9jdXJzaXZlRm9udEZhbWlsaWVzOwogICAgICAgICBTY3JpcHRGb250RmFtaWx5TWFwIG1fZmFu
dGFzeUZvbnRGYW1pbGllczsKICAgICAgICAgU2NyaXB0Rm9udEZhbWlseU1hcCBtX3BpY3RvZ3Jh
cGhGb250RmFtaWxpZXM7Ci0gICAgICAgIEVkaXRpbmdCZWhhdmlvclR5cGUgbV9vcmlnaW5hbEVk
aXRpbmdCZWhhdmlvcjsKICAgICAgICAgU2Vjb25kcyBtX21pbmltdW1ET01UaW1lckludGVydmFs
OwogICAgICAgICBTZWNvbmRzIG1fb3JpZ2luYWxUaW1lV2l0aG91dE1vdXNlTW92ZW1lbnRCZWZv
cmVIaWRpbmdDb250cm9sczsKLSAgICAgICAgU2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2lu
Z1BvbGljeSBtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeTsKLSAgICAgICAgVXNlckludGVyZmFjZURp
cmVjdGlvblBvbGljeSBtX3VzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3k7CisgICAgICAgIFdl
YkNvcmU6OkVkaXRpbmdCZWhhdmlvclR5cGUgbV9vcmlnaW5hbEVkaXRpbmdCZWhhdmlvcjsKKyAg
ICAgICAgV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5IG1fc3RvcmFnZUJsb2NraW5nUG9s
aWN5OworICAgICAgICBXZWJDb3JlOjpVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5IG1fdXNl
ckludGVyZmFjZURpcmVjdGlvblBvbGljeTsKICAgICAgICAgVGV4dERpcmVjdGlvbiBtX3N5c3Rl
bUxheW91dERpcmVjdGlvbjsKICAgICAgICAgV2ViQ29yZTo6UERGSW1hZ2VDYWNoaW5nUG9saWN5
IG1fcGRmSW1hZ2VDYWNoaW5nUG9saWN5OwotICAgICAgICBTZXR0aW5nczo6Rm9yY2VkQWNjZXNz
aWJpbGl0eVZhbHVlIG1fZm9yY2VkQ29sb3JzQXJlSW52ZXJ0ZWRBY2Nlc3NpYmlsaXR5VmFsdWU7
Ci0gICAgICAgIFNldHRpbmdzOjpGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUgbV9mb3JjZWREaXNw
bGF5SXNNb25vY2hyb21lQWNjZXNzaWJpbGl0eVZhbHVlOwotICAgICAgICBTZXR0aW5nczo6Rm9y
Y2VkQWNjZXNzaWJpbGl0eVZhbHVlIG1fZm9yY2VkUHJlZmVyc1JlZHVjZWRNb3Rpb25BY2Nlc3Np
YmlsaXR5VmFsdWU7Ci0gICAgICAgIFNldHRpbmdzOjpGb250TG9hZFRpbWluZ092ZXJyaWRlIG1f
Zm9udExvYWRUaW1pbmdPdmVycmlkZTsKLSAgICAgICAgRnJhbWVGbGF0dGVuaW5nIG1fZnJhbWVG
bGF0dGVuaW5nOworICAgICAgICBXZWJDb3JlOjpGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUgbV9m
b3JjZWRDb2xvcnNBcmVJbnZlcnRlZEFjY2Vzc2liaWxpdHlWYWx1ZTsKKyAgICAgICAgV2ViQ29y
ZTo6Rm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlIG1fZm9yY2VkRGlzcGxheUlzTW9ub2Nocm9tZUFj
Y2Vzc2liaWxpdHlWYWx1ZTsKKyAgICAgICAgV2ViQ29yZTo6Rm9yY2VkQWNjZXNzaWJpbGl0eVZh
bHVlIG1fZm9yY2VkUHJlZmVyc1JlZHVjZWRNb3Rpb25BY2Nlc3NpYmlsaXR5VmFsdWU7CisgICAg
ICAgIFdlYkNvcmU6OkZvbnRMb2FkVGltaW5nT3ZlcnJpZGUgbV9mb250TG9hZFRpbWluZ092ZXJy
aWRlOworICAgICAgICBXZWJDb3JlOjpGcmFtZUZsYXR0ZW5pbmcgbV9mcmFtZUZsYXR0ZW5pbmc7
CiAKICAgICAgICAgLy8gUnVudGltZUVuYWJsZWRGZWF0dXJlcwogICAgICAgICBib29sIG1fd2Vi
R0wyRW5hYmxlZDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRp
bmdzLmlkbAkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjQsMTEgKzI0LDExIEBACiAgKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogICovCiAKLWVudW0gRWRpdGluZ0JlaGF2aW9yIHsgIm1hYyIsICJ3aW4iLCAidW5p
eCIsICJpb3MiIH07CitlbnVtIEVkaXRpbmdCZWhhdmlvclR5cGUgeyAibWFjIiwgIndpbmRvd3Mi
LCAidW5peCIsICJpb3MiIH07CiBlbnVtIEZvbnRMb2FkVGltaW5nT3ZlcnJpZGUgeyAiTm9uZSIs
ICJCbG9jayIsICJTd2FwIiwgIkZhaWx1cmUiIH07CiBlbnVtIEZvcmNlZEFjY2Vzc2liaWxpdHlW
YWx1ZSB7ICJzeXN0ZW0iLCAib24iLCAib2ZmIiB9OwogZW51bSBGcmFtZUZsYXR0ZW5pbmdWYWx1
ZSB7ICJEaXNhYmxlZCIsICJFbmFibGVkRm9yTm9uRnVsbFNjcmVlbklGcmFtZXMiLCAiRnVsbHlF
bmFibGVkIiB9OwotZW51bSBQREZJbWFnZUNhY2hpbmdQb2xpY3kgeyAiZW5hYmxlZCIsICJiZWxv
d01lbW9yeUxpbWl0IiwgImRpc2FibGVkIiwgImNsaXBCb3VuZHNPbmx5IiB9OworZW51bSBQREZJ
bWFnZUNhY2hpbmdQb2xpY3kgeyAiRW5hYmxlZCIsICJCZWxvd01lbW9yeUxpbWl0IiwgIkRpc2Fi
bGVkIiwgIkNsaXBCb3VuZHNPbmx5IiB9OwogZW51bSBTdG9yYWdlQmxvY2tpbmdQb2xpY3kgeyAi
QWxsb3dBbGwiLCAiQmxvY2tUaGlyZFBhcnR5IiwgIkJsb2NrQWxsIiB9OwogZW51bSBTeXN0ZW1M
YXlvdXREaXJlY3Rpb24geyAiTFRSIiwgIlJUTCIgfTsKIGVudW0gVHJhY2tLaW5kIHsgIlN1YnRp
dGxlcyIsICJDYXB0aW9ucyIsICJUZXh0RGVzY3JpcHRpb25zIiB9OwpAQCAtNTIsNyArNTIsNyBA
QCBlbnVtIFVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3kgeyAiQ29uCiAgICAgW01heVRocm93
RXhjZXB0aW9uXSB1bmRlZmluZWQgc2V0VGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJpZGUo
bG9uZyB3aWR0aCwgbG9uZyBoZWlnaHQpOwogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gdW5kZWZp
bmVkIHNldFRpbWVXaXRob3V0TW91c2VNb3ZlbWVudEJlZm9yZUhpZGluZ0NvbnRyb2xzKHVucmVz
dHJpY3RlZCBkb3VibGUgaW50ZXJ2YWxJblNlY29uZHMpOwogICAgIFtNYXlUaHJvd0V4Y2VwdGlv
bl0gdW5kZWZpbmVkIHNldE1pbmltdW1UaW1lckludGVydmFsKHVucmVzdHJpY3RlZCBkb3VibGUg
aW50ZXJ2YWxJblNlY29uZHMpOwotICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gdW5kZWZpbmVkIHNl
dEVkaXRpbmdCZWhhdmlvcihFZGl0aW5nQmVoYXZpb3IgYmVoYXZpb3IpOworICAgIFtNYXlUaHJv
d0V4Y2VwdGlvbl0gdW5kZWZpbmVkIHNldEVkaXRpbmdCZWhhdmlvcihFZGl0aW5nQmVoYXZpb3JU
eXBlIGJlaGF2aW9yKTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHVuZGVmaW5lZCBzZXRTdG9y
YWdlQmxvY2tpbmdQb2xpY3koU3RvcmFnZUJsb2NraW5nUG9saWN5IHBvbGljeSk7CiAgICAgW01h
eVRocm93RXhjZXB0aW9uXSB1bmRlZmluZWQgc2V0UERGSW1hZ2VDYWNoaW5nUG9saWN5KFBERklt
YWdlQ2FjaGluZ1BvbGljeSBwb2xpY3kpOwogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gdW5kZWZp
bmVkIHNldEZyYW1lRmxhdHRlbmluZyhGcmFtZUZsYXR0ZW5pbmdWYWx1ZSBmcmFtZUZsYXR0ZW5p
bmcpOwpJbmRleDogU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vydmlj
ZVdvcmtlclRocmVhZFByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCShyZXZpc2lv
biAyNjk4MzApCisrKyBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw3IEBA
IHN0YXRpYyBVUkwgdG9wT3JpZ2luVVJMKGNvbnN0IFNlY3VyaXR5T3IKICAgICByZXR1cm4gVVJM
IHsgVVJMIHsgfSwgb3JpZ2luLnRvUmF3U3RyaW5nKCkgfTsKIH0KIAotc3RhdGljIGlubGluZSBV
bmlxdWVSZWY8UGFnZT4gY3JlYXRlUGFnZUZvclNlcnZpY2VXb3JrZXIoUGFnZUNvbmZpZ3VyYXRp
b24mJiBjb25maWd1cmF0aW9uLCBjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmIGRhdGEs
IFNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgc3RvcmFnZUJsb2NraW5nUG9s
aWN5KQorc3RhdGljIGlubGluZSBVbmlxdWVSZWY8UGFnZT4gY3JlYXRlUGFnZUZvclNlcnZpY2VX
b3JrZXIoUGFnZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uLCBjb25zdCBTZXJ2aWNlV29y
a2VyQ29udGV4dERhdGEmIGRhdGEsIFN0b3JhZ2VCbG9ja2luZ1BvbGljeSBzdG9yYWdlQmxvY2tp
bmdQb2xpY3kpCiB7CiAgICAgYXV0byBwYWdlID0gbWFrZVVuaXF1ZVJlZjxQYWdlPihXVEZNb3Zl
KGNvbmZpZ3VyYXRpb24pKTsKIApAQCAtOTQsNyArOTQsNyBAQCBzdGF0aWMgSGFzaFNldDxTZXJ2
aWNlV29ya2VyVGhyZWFkUHJveHkqCiAgICAgcmV0dXJuIHNldDsKIH0KIAotU2VydmljZVdvcmtl
clRocmVhZFByb3h5OjpTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkoUGFnZUNvbmZpZ3VyYXRpb24m
JiBwYWdlQ29uZmlndXJhdGlvbiwgY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiBkYXRh
LCBTdHJpbmcmJiB1c2VyQWdlbnQsIENhY2hlU3RvcmFnZVByb3ZpZGVyJiBjYWNoZVN0b3JhZ2VQ
cm92aWRlciwgU2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBzdG9yYWdlQmxv
Y2tpbmdQb2xpY3kpCitTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OlNlcnZpY2VXb3JrZXJUaHJl
YWRQcm94eShQYWdlQ29uZmlndXJhdGlvbiYmIHBhZ2VDb25maWd1cmF0aW9uLCBjb25zdCBTZXJ2
aWNlV29ya2VyQ29udGV4dERhdGEmIGRhdGEsIFN0cmluZyYmIHVzZXJBZ2VudCwgQ2FjaGVTdG9y
YWdlUHJvdmlkZXImIGNhY2hlU3RvcmFnZVByb3ZpZGVyLCBTdG9yYWdlQmxvY2tpbmdQb2xpY3kg
c3RvcmFnZUJsb2NraW5nUG9saWN5KQogICAgIDogbV9wYWdlKGNyZWF0ZVBhZ2VGb3JTZXJ2aWNl
V29ya2VyKFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24pLCBkYXRhLCBzdG9yYWdlQmxvY2tpbmdQ
b2xpY3kpKQogICAgICwgbV9kb2N1bWVudCgqbV9wYWdlLT5tYWluRnJhbWUoKS5kb2N1bWVudCgp
KQogICAgICwgbV9zZXJ2aWNlV29ya2VyVGhyZWFkKFNlcnZpY2VXb3JrZXJUaHJlYWQ6OmNyZWF0
ZShkYXRhLCBXVEZNb3ZlKHVzZXJBZ2VudCksICp0aGlzLCAqdGhpcywgaWRiQ29ubmVjdGlvblBy
b3h5KG1fZG9jdW1lbnQpLCBtX2RvY3VtZW50LT5zb2NrZXRQcm92aWRlcigpKSkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQ
cm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJv
eHkuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsMTEgKzMxLDExIEBACiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKICNpbmNsdWRlICJGZXRjaElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJQYWdlLmgiCi0j
aW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRGVidWdn
YWJsZS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAi
U2VydmljZVdvcmtlckluc3BlY3RvclByb3h5LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclRo
cmVhZC5oIgorI2luY2x1ZGUgIlN0b3JhZ2VCbG9ja2luZ1BvbGljeS5oIgogI2luY2x1ZGUgIldv
cmtlckRlYnVnZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXb3JrZXJMb2FkZXJQcm94eS5oIgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC04MCw3ICs4MCw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IGZpcmVBY3RpdmF0ZUV2ZW50KCk7CiAKIHByaXZhdGU6Ci0gICAgV0VCQ09SRV9FWFBPUlQgU2Vy
dmljZVdvcmtlclRocmVhZFByb3h5KFBhZ2VDb25maWd1cmF0aW9uJiYsIGNvbnN0IFNlcnZpY2VX
b3JrZXJDb250ZXh0RGF0YSYsIFN0cmluZyYmIHVzZXJBZ2VudCwgQ2FjaGVTdG9yYWdlUHJvdmlk
ZXImLCBTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5KTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkoUGFnZUNvbmZpZ3VyYXRpb24mJiwgY29u
c3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiwgU3RyaW5nJiYgdXNlckFnZW50LCBDYWNoZVN0
b3JhZ2VQcm92aWRlciYsIFN0b3JhZ2VCbG9ja2luZ1BvbGljeSk7CiAKICAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgdm9pZCBuZXR3b3JrU3RhdGVDaGFuZ2VkKGJvb2wgaXNPbkxpbmUpOwogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzNiBAQAorMjAyMC0xMS0xNSAgU2FtIFdlaW5pZyAg
PHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAgU3RhbmRhcmRpemUgZW51bXMgdGhhdCBhcmUg
dXNlZCBieSBTZXR0aW5ncyBpbiBwcmVwZXJhdGlvbiBmb3IgYXV0b2dlbmVyYXRpb24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODk2MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtXSVBdCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAgIChXZWJLaXQ6OnRvQVBJ
KToKKyAgICAgICAgKFdlYktpdDo6dG9FZGl0YWJsZUxpbmtCZWhhdmlvcik6CisgICAgICAgIChX
ZWJLaXQ6OnRvU3RvcmFnZUJsb2NraW5nUG9saWN5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0MvV0tQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0RWRpdGFibGVM
aW5rQmVoYXZpb3IpOgorICAgICAgICAoV0tQcmVmZXJlbmNlc1NldFN0b3JhZ2VCbG9ja2luZ1Bv
bGljeSk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzR2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW06CisgICAgICAg
ICh0b1N0b3JhZ2VCbG9ja2luZ1BvbGljeSk6CisgICAgICAgICh0b0FQSSk6CisgICAgICAgICgt
W1dLUHJlZmVyZW5jZXMgX3N0b3JhZ2VCbG9ja2luZ1BvbGljeV0pOgorICAgICAgICAoLVtXS1By
ZWZlcmVuY2VzIF9zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3k6XSk6CisgICAgICAgICh0b0VkaXRh
YmxlTGlua0JlaGF2aW9yKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfc2V0RWRpdGFibGVM
aW5rQmVoYXZpb3I6XSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJlZmVyZW5jZXM6OmNyZWF0ZVdpdGhMZWdhY3lEZWZhdWx0
cyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b246OnVwZGF0ZVByZWZlcmVuY2VzU3RvcmUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlUHJl
ZmVyZW5jZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkZXRlY3REYXRhSW5BbGxGcmFt
ZXMpOgorCiAyMDIwLTExLTE1ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29t
PgogCiAgICAgICAgIEluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgRE9NIHJlbmRlcmluZyB2aWEg
dGhlIEdQVSBwcm9jZXNzCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcmVmZXJl
bmNlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJlZmVy
ZW5jZXMuY3BwCShyZXZpc2lvbiAyNjk4MzApCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcmVmZXJlbmNlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzLDcgKzUzLDcgQEAgUmVmPFdl
YlByZWZlcmVuY2VzPiBXZWJQcmVmZXJlbmNlczo6Y3JlYQogICAgIHByZWZlcmVuY2VzLT5yZWdp
c3RlckRlZmF1bHRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmphdmFFbmFibGVk
S2V5KCksIHRydWUpOwogICAgIHByZWZlcmVuY2VzLT5yZWdpc3RlckRlZmF1bHRCb29sVmFsdWVG
b3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmphdmFFbmFibGVkRm9yTG9jYWxGaWxlc0tleSgpLCB0
cnVlKTsKICAgICBwcmVmZXJlbmNlcy0+cmVnaXN0ZXJEZWZhdWx0Qm9vbFZhbHVlRm9yS2V5KFdl
YlByZWZlcmVuY2VzS2V5OjpwbHVnaW5zRW5hYmxlZEtleSgpLCB0cnVlKTsKLSAgICBwcmVmZXJl
bmNlcy0+cmVnaXN0ZXJEZWZhdWx0VUludDMyVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6
OnN0b3JhZ2VCbG9ja2luZ1BvbGljeUtleSgpLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6QWxs
b3dBbGxTdG9yYWdlKTsKKyAgICBwcmVmZXJlbmNlcy0+cmVnaXN0ZXJEZWZhdWx0VUludDMyVmFs
dWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnN0b3JhZ2VCbG9ja2luZ1BvbGljeUtleSgpLCBz
dGF0aWNfY2FzdDx1aW50MzJfdD4oV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5OjpBbGxv
d0FsbCkpOwogICAgIHJldHVybiBwcmVmZXJlbmNlczsKIH0KIApJbmRleDogU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
NTIsMTUgKzI1MiwxNSBAQCBpbmxpbmUgV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24gdG9BUEko
CiBpbmxpbmUgV0tFZGl0YWJsZUxpbmtCZWhhdmlvciB0b0FQSShXZWJDb3JlOjpFZGl0YWJsZUxp
bmtCZWhhdmlvciBiZWhhdmlvcikKIHsKICAgICBzd2l0Y2ggKGJlaGF2aW9yKSB7Ci0gICAgY2Fz
ZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtEZWZhdWx0QmVoYXZpb3I6CisgICAgY2FzZSBXZWJDb3Jl
OjpFZGl0YWJsZUxpbmtCZWhhdmlvcjo6RGVmYXVsdDoKICAgICAgICAgcmV0dXJuIGtXS0VkaXRh
YmxlTGlua0JlaGF2aW9yRGVmYXVsdDsKLSAgICBjYXNlIFdlYkNvcmU6OkVkaXRhYmxlTGlua0Fs
d2F5c0xpdmU6CisgICAgY2FzZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvcjo6QWx3YXlz
TGl2ZToKICAgICAgICAgcmV0dXJuIGtXS0VkaXRhYmxlTGlua0JlaGF2aW9yQWx3YXlzTGl2ZTsK
LSAgICBjYXNlIFdlYkNvcmU6OkVkaXRhYmxlTGlua09ubHlMaXZlV2l0aFNoaWZ0S2V5OgorICAg
IGNhc2UgV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6Ok9ubHlMaXZlV2l0aFNoaWZ0S2V5
OgogICAgICAgICByZXR1cm4ga1dLRWRpdGFibGVMaW5rQmVoYXZpb3JPbmx5TGl2ZVdpdGhTaGlm
dEtleTsKLSAgICBjYXNlIFdlYkNvcmU6OkVkaXRhYmxlTGlua0xpdmVXaGVuTm90Rm9jdXNlZDoK
KyAgICBjYXNlIFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpMaXZlV2hlbk5vdEZvY3Vz
ZWQ6CiAgICAgICAgIHJldHVybiBrV0tFZGl0YWJsZUxpbmtCZWhhdmlvckxpdmVXaGVuTm90Rm9j
dXNlZDsKLSAgICBjYXNlIFdlYkNvcmU6OkVkaXRhYmxlTGlua05ldmVyTGl2ZToKKyAgICBjYXNl
IFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpOZXZlckxpdmU6CiAgICAgICAgIHJldHVy
biBrV0tFZGl0YWJsZUxpbmtCZWhhdmlvck5ldmVyTGl2ZTsKICAgICB9CiAgICAgCkBAIC0yNzIs
MTkgKzI3MiwxOSBAQCBpbmxpbmUgV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3IgdG9FCiB7
CiAgICAgc3dpdGNoICh3a0JlaGF2aW9yKSB7CiAgICAgY2FzZSBrV0tFZGl0YWJsZUxpbmtCZWhh
dmlvckRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpFZGl0YWJsZUxpbmtEZWZhdWx0
QmVoYXZpb3I7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvcjo6
RGVmYXVsdDsKICAgICBjYXNlIGtXS0VkaXRhYmxlTGlua0JlaGF2aW9yQWx3YXlzTGl2ZToKLSAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRhYmxlTGlua0Fsd2F5c0xpdmU7CisgICAgICAgIHJl
dHVybiBXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvcjo6QWx3YXlzTGl2ZTsKICAgICBjYXNl
IGtXS0VkaXRhYmxlTGlua0JlaGF2aW9yT25seUxpdmVXaXRoU2hpZnRLZXk6Ci0gICAgICAgIHJl
dHVybiBXZWJDb3JlOjpFZGl0YWJsZUxpbmtPbmx5TGl2ZVdpdGhTaGlmdEtleTsKKyAgICAgICAg
cmV0dXJuIFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpPbmx5TGl2ZVdpdGhTaGlmdEtl
eTsKICAgICBjYXNlIGtXS0VkaXRhYmxlTGlua0JlaGF2aW9yTGl2ZVdoZW5Ob3RGb2N1c2VkOgot
ICAgICAgICByZXR1cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5rTGl2ZVdoZW5Ob3RGb2N1c2VkOwor
ICAgICAgICByZXR1cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6OkxpdmVXaGVuTm90
Rm9jdXNlZDsKICAgICBjYXNlIGtXS0VkaXRhYmxlTGlua0JlaGF2aW9yTmV2ZXJMaXZlOgotICAg
ICAgICByZXR1cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5rTmV2ZXJMaXZlOworICAgICAgICByZXR1
cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6Ok5ldmVyTGl2ZTsKICAgICB9CiAgICAg
CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRhYmxl
TGlua05ldmVyTGl2ZTsKKyAgICByZXR1cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6
Ok5ldmVyTGl2ZTsKIH0KICAgICAKIGlubGluZSBXS1Byb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUg
dG9BUEkoV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZSB0eXBlKQpAQCAtMzg0LDI5
ICszODQsMjkgQEAgaW5saW5lIFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSB0b0FQSShXZQogICAg
IHJldHVybiBrV0tIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlzOwogfQogCi1pbmxpbmUgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSB0b1N0b3JhZ2VCbG9j
a2luZ1BvbGljeShXS1N0b3JhZ2VCbG9ja2luZ1BvbGljeSBwb2xpY3kpCitpbmxpbmUgV2ViQ29y
ZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5IHRvU3RvcmFnZUJsb2NraW5nUG9saWN5KFdLU3RvcmFn
ZUJsb2NraW5nUG9saWN5IHBvbGljeSkKIHsKICAgICBzd2l0Y2ggKHBvbGljeSkgewogICAgIGNh
c2Uga1dLQWxsb3dBbGxTdG9yYWdlOgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW46OkFsbG93QWxsU3RvcmFnZTsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlN0b3JhZ2VC
bG9ja2luZ1BvbGljeTo6QWxsb3dBbGw7CiAgICAgY2FzZSBrV0tCbG9ja1RoaXJkUGFydHlTdG9y
YWdlOgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OkJsb2NrVGhpcmRQ
YXJ0eVN0b3JhZ2U7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xp
Y3k6OkJsb2NrVGhpcmRQYXJ0eTsKICAgICBjYXNlIGtXS0Jsb2NrQWxsU3RvcmFnZToKLSAgICAg
ICAgcmV0dXJuIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpCbG9ja0FsbFN0b3JhZ2U7CisgICAg
ICAgIHJldHVybiBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkJsb2NrQWxsOwogICAg
IH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbjo6QWxsb3dBbGxTdG9yYWdlOworICAgIHJldHVybiBXZWJDb3JlOjpTdG9yYWdl
QmxvY2tpbmdQb2xpY3k6OkFsbG93QWxsOwogfQogCi1pbmxpbmUgV0tTdG9yYWdlQmxvY2tpbmdQ
b2xpY3kgdG9BUEkoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGlj
eSBwb2xpY3kpCitpbmxpbmUgV0tTdG9yYWdlQmxvY2tpbmdQb2xpY3kgdG9BUEkoV2ViQ29yZTo6
U3RvcmFnZUJsb2NraW5nUG9saWN5IHBvbGljeSkKIHsKICAgICBzd2l0Y2ggKHBvbGljeSkgewot
ICAgIGNhc2UgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OkFsbG93QWxsU3RvcmFnZToKKyAgICBj
YXNlIFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QWxsb3dBbGw6CiAgICAgICAgIHJl
dHVybiBrV0tBbGxvd0FsbFN0b3JhZ2U7Ci0gICAgY2FzZSBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bjo6QmxvY2tUaGlyZFBhcnR5U3RvcmFnZToKKyAgICBjYXNlIFdlYkNvcmU6OlN0b3JhZ2VCbG9j
a2luZ1BvbGljeTo6QmxvY2tUaGlyZFBhcnR5OgogICAgICAgICByZXR1cm4ga1dLQmxvY2tUaGly
ZFBhcnR5U3RvcmFnZTsKLSAgICBjYXNlIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpCbG9ja0Fs
bFN0b3JhZ2U6CisgICAgY2FzZSBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkJsb2Nr
QWxsOgogICAgICAgICByZXR1cm4ga1dLQmxvY2tBbGxTdG9yYWdlOwogICAgIH0KIApJbmRleDog
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAJKHJl
dmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVy
ZW5jZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNTgsNyArMzU4LDcgQEAgYm9vbCBXS1ByZWZl
cmVuY2VzR2V0Q29va2llRW5hYmxlZChXS1ByZQogCiB2b2lkIFdLUHJlZmVyZW5jZXNTZXRFZGl0
YWJsZUxpbmtCZWhhdmlvcihXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBXS0VkaXRh
YmxlTGlua0JlaGF2aW9yIHdrQmVoYXZpb3IpCiB7Ci0gICAgdG9JbXBsKHByZWZlcmVuY2VzUmVm
KS0+c2V0RWRpdGFibGVMaW5rQmVoYXZpb3IodG9FZGl0YWJsZUxpbmtCZWhhdmlvcih3a0JlaGF2
aW9yKSk7CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0RWRpdGFibGVMaW5rQmVoYXZp
b3Ioc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHRvRWRpdGFibGVMaW5rQmVoYXZpb3Iod2tCZWhhdmlv
cikpKTsKIH0KIAogV0tFZGl0YWJsZUxpbmtCZWhhdmlvciBXS1ByZWZlcmVuY2VzR2V0RWRpdGFi
bGVMaW5rQmVoYXZpb3IoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKQEAgLTk5OCwx
MiArOTk4LDEyIEBAIGJvb2wgV0tQcmVmZXJlbmNlc0dldFJlcXVlc3RBbmltYXRpb25GcmEKIAog
dm9pZCBXS1ByZWZlcmVuY2VzU2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KFdLUHJlZmVyZW5jZXNS
ZWYgcHJlZmVyZW5jZXNSZWYsIFdLU3RvcmFnZUJsb2NraW5nUG9saWN5IHBvbGljeSkKIHsKLSAg
ICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3kodG9TdG9y
YWdlQmxvY2tpbmdQb2xpY3kocG9saWN5KSk7CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+
c2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KHN0YXRpY19jYXN0PHVpbnQzMl90Pih0b1N0b3JhZ2VC
bG9ja2luZ1BvbGljeShwb2xpY3kpKSk7CiB9CiAKIFdLU3RvcmFnZUJsb2NraW5nUG9saWN5IFdL
UHJlZmVyZW5jZXNHZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koV0tQcmVmZXJlbmNlc1JlZiBwcmVm
ZXJlbmNlc1JlZikKIHsKLSAgICByZXR1cm4gdG9BUEkoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeT4odG9JbXBsKHByZWZlcmVuY2VzUmVm
KS0+c3RvcmFnZUJsb2NraW5nUG9saWN5KCkpKTsKKyAgICByZXR1cm4gdG9BUEkoc3RhdGljX2Nh
c3Q8V2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5Pih0b0ltcGwocHJlZmVyZW5jZXNSZWYp
LT5zdG9yYWdlQmxvY2tpbmdQb2xpY3koKSkpOwogfQogCiB2b2lkIFdLUHJlZmVyZW5jZXNTZXRE
aWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwg
Ym9vbCBlbmFibGVkKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJlZmVyZW5jZXMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJlZmVyZW5jZXMubW0JKHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0xNzUsMjkgKzE3NSwyOSBAQCAtICh2b2lkKV9zZXRUZWxlcGhvbmVOdW1iZXJEZXRlY3Rpb25J
c0VuCiAgICAgX3ByZWZlcmVuY2VzLT5zZXRUZWxlcGhvbmVOdW1iZXJQYXJzaW5nRW5hYmxlZCh0
ZWxlcGhvbmVOdW1iZXJEZXRlY3Rpb25Jc0VuYWJsZWQpOwogfQogCi1zdGF0aWMgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSB0b1N0b3JhZ2VCbG9ja2luZ1Bv
bGljeShfV0tTdG9yYWdlQmxvY2tpbmdQb2xpY3kgcG9saWN5KQorc3RhdGljIFdlYkNvcmU6OlN0
b3JhZ2VCbG9ja2luZ1BvbGljeSB0b1N0b3JhZ2VCbG9ja2luZ1BvbGljeShfV0tTdG9yYWdlQmxv
Y2tpbmdQb2xpY3kgcG9saWN5KQogewogICAgIHN3aXRjaCAocG9saWN5KSB7CiAgICAgY2FzZSBf
V0tTdG9yYWdlQmxvY2tpbmdQb2xpY3lBbGxvd0FsbDoKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luOjpBbGxvd0FsbFN0b3JhZ2U7CisgICAgICAgIHJldHVybiBXZWJDb3Jl
OjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkFsbG93QWxsOwogICAgIGNhc2UgX1dLU3RvcmFnZUJs
b2NraW5nUG9saWN5QmxvY2tUaGlyZFBhcnR5OgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW46OkJsb2NrVGhpcmRQYXJ0eVN0b3JhZ2U7CisgICAgICAgIHJldHVybiBXZWJD
b3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkJsb2NrVGhpcmRQYXJ0eTsKICAgICBjYXNlIF9X
S1N0b3JhZ2VCbG9ja2luZ1BvbGljeUJsb2NrQWxsOgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW46OkJsb2NrQWxsU3RvcmFnZTsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6
OlN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QmxvY2tBbGw7CiAgICAgfQogCiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpBbGxvd0Fs
bFN0b3JhZ2U7CisgICAgcmV0dXJuIFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QWxs
b3dBbGw7CiB9CiAKLXN0YXRpYyBfV0tTdG9yYWdlQmxvY2tpbmdQb2xpY3kgdG9BUEkoV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBwb2xpY3kpCitzdGF0aWMg
X1dLU3RvcmFnZUJsb2NraW5nUG9saWN5IHRvQVBJKFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1Bv
bGljeSBwb2xpY3kpCiB7CiAgICAgc3dpdGNoIChwb2xpY3kpIHsKLSAgICBjYXNlIFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luOjpBbGxvd0FsbFN0b3JhZ2U6CisgICAgY2FzZSBXZWJDb3JlOjpTdG9y
YWdlQmxvY2tpbmdQb2xpY3k6OkFsbG93QWxsOgogICAgICAgICByZXR1cm4gX1dLU3RvcmFnZUJs
b2NraW5nUG9saWN5QWxsb3dBbGw7Ci0gICAgY2FzZSBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6
QmxvY2tUaGlyZFBhcnR5U3RvcmFnZToKKyAgICBjYXNlIFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2lu
Z1BvbGljeTo6QmxvY2tUaGlyZFBhcnR5OgogICAgICAgICByZXR1cm4gX1dLU3RvcmFnZUJsb2Nr
aW5nUG9saWN5QmxvY2tUaGlyZFBhcnR5OwotICAgIGNhc2UgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW46OkJsb2NrQWxsU3RvcmFnZToKKyAgICBjYXNlIFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1Bv
bGljeTo6QmxvY2tBbGw6CiAgICAgICAgIHJldHVybiBfV0tTdG9yYWdlQmxvY2tpbmdQb2xpY3lC
bG9ja0FsbDsKICAgICB9CiAKQEAgLTIwNywxMiArMjA3LDEyIEBAIHN0YXRpYyBfV0tTdG9yYWdl
QmxvY2tpbmdQb2xpY3kgdG9BUEkoV2UKIAogLSAoX1dLU3RvcmFnZUJsb2NraW5nUG9saWN5KV9z
dG9yYWdlQmxvY2tpbmdQb2xpY3kKIHsKLSAgICByZXR1cm4gdG9BUEkoc3RhdGljX2Nhc3Q8V2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeT4oX3ByZWZlcmVuY2Vz
LT5zdG9yYWdlQmxvY2tpbmdQb2xpY3koKSkpOworICAgIHJldHVybiB0b0FQSShzdGF0aWNfY2Fz
dDxXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k+KF9wcmVmZXJlbmNlcy0+c3RvcmFnZUJs
b2NraW5nUG9saWN5KCkpKTsKIH0KIAogLSAodm9pZClfc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5
OihfV0tTdG9yYWdlQmxvY2tpbmdQb2xpY3kpcG9saWN5CiB7Ci0gICAgX3ByZWZlcmVuY2VzLT5z
ZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3kodG9TdG9yYWdlQmxvY2tpbmdQb2xpY3kocG9saWN5KSk7
CisgICAgX3ByZWZlcmVuY2VzLT5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KHRvU3RvcmFnZUJsb2NraW5nUG9saWN5KHBvbGljeSkpKTsKIH0KIAogLSAoQk9P
TClfb2ZmbGluZUFwcGxpY2F0aW9uQ2FjaGVJc0VuYWJsZWQKQEAgLTczMywxNSArNzMzLDE1IEBA
IC0gKHZvaWQpX3NldFNob3VsZEFsbG93RGVzaWduU3lzdGVtVUlGb24KIHN0YXRpYyBfV0tFZGl0
YWJsZUxpbmtCZWhhdmlvciB0b0FQSShXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvciBiZWhh
dmlvcikKIHsKICAgICBzd2l0Y2ggKGJlaGF2aW9yKSB7Ci0gICAgY2FzZSBXZWJDb3JlOjpFZGl0
YWJsZUxpbmtEZWZhdWx0QmVoYXZpb3I6CisgICAgY2FzZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtC
ZWhhdmlvcjo6RGVmYXVsdDoKICAgICAgICAgcmV0dXJuIF9XS0VkaXRhYmxlTGlua0JlaGF2aW9y
RGVmYXVsdDsKLSAgICBjYXNlIFdlYkNvcmU6OkVkaXRhYmxlTGlua0Fsd2F5c0xpdmU6CisgICAg
Y2FzZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvcjo6QWx3YXlzTGl2ZToKICAgICAgICAg
cmV0dXJuIF9XS0VkaXRhYmxlTGlua0JlaGF2aW9yQWx3YXlzTGl2ZTsKLSAgICBjYXNlIFdlYkNv
cmU6OkVkaXRhYmxlTGlua09ubHlMaXZlV2l0aFNoaWZ0S2V5OgorICAgIGNhc2UgV2ViQ29yZTo6
RWRpdGFibGVMaW5rQmVoYXZpb3I6Ok9ubHlMaXZlV2l0aFNoaWZ0S2V5OgogICAgICAgICByZXR1
cm4gX1dLRWRpdGFibGVMaW5rQmVoYXZpb3JPbmx5TGl2ZVdpdGhTaGlmdEtleTsKLSAgICBjYXNl
IFdlYkNvcmU6OkVkaXRhYmxlTGlua0xpdmVXaGVuTm90Rm9jdXNlZDoKKyAgICBjYXNlIFdlYkNv
cmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpMaXZlV2hlbk5vdEZvY3VzZWQ6CiAgICAgICAgIHJl
dHVybiBfV0tFZGl0YWJsZUxpbmtCZWhhdmlvckxpdmVXaGVuTm90Rm9jdXNlZDsKLSAgICBjYXNl
IFdlYkNvcmU6OkVkaXRhYmxlTGlua05ldmVyTGl2ZToKKyAgICBjYXNlIFdlYkNvcmU6OkVkaXRh
YmxlTGlua0JlaGF2aW9yOjpOZXZlckxpdmU6CiAgICAgICAgIHJldHVybiBfV0tFZGl0YWJsZUxp
bmtCZWhhdmlvck5ldmVyTGl2ZTsKICAgICB9CiAgICAgCkBAIC03NTMsMTkgKzc1MywxOSBAQCBz
dGF0aWMgV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3IgdG9FCiB7CiAgICAgc3dpdGNoICh3
a0JlaGF2aW9yKSB7CiAgICAgY2FzZSBfV0tFZGl0YWJsZUxpbmtCZWhhdmlvckRlZmF1bHQ6Ci0g
ICAgICAgIHJldHVybiBXZWJDb3JlOjpFZGl0YWJsZUxpbmtEZWZhdWx0QmVoYXZpb3I7CisgICAg
ICAgIHJldHVybiBXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvcjo6RGVmYXVsdDsKICAgICBj
YXNlIF9XS0VkaXRhYmxlTGlua0JlaGF2aW9yQWx3YXlzTGl2ZToKLSAgICAgICAgcmV0dXJuIFdl
YkNvcmU6OkVkaXRhYmxlTGlua0Fsd2F5c0xpdmU7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpF
ZGl0YWJsZUxpbmtCZWhhdmlvcjo6QWx3YXlzTGl2ZTsKICAgICBjYXNlIF9XS0VkaXRhYmxlTGlu
a0JlaGF2aW9yT25seUxpdmVXaXRoU2hpZnRLZXk6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpF
ZGl0YWJsZUxpbmtPbmx5TGl2ZVdpdGhTaGlmdEtleTsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6
OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpPbmx5TGl2ZVdpdGhTaGlmdEtleTsKICAgICBjYXNlIF9X
S0VkaXRhYmxlTGlua0JlaGF2aW9yTGl2ZVdoZW5Ob3RGb2N1c2VkOgotICAgICAgICByZXR1cm4g
V2ViQ29yZTo6RWRpdGFibGVMaW5rTGl2ZVdoZW5Ob3RGb2N1c2VkOworICAgICAgICByZXR1cm4g
V2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6OkxpdmVXaGVuTm90Rm9jdXNlZDsKICAgICBj
YXNlIF9XS0VkaXRhYmxlTGlua0JlaGF2aW9yTmV2ZXJMaXZlOgotICAgICAgICByZXR1cm4gV2Vi
Q29yZTo6RWRpdGFibGVMaW5rTmV2ZXJMaXZlOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6RWRp
dGFibGVMaW5rQmVoYXZpb3I6Ok5ldmVyTGl2ZTsKICAgICB9CiAgICAgCiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRhYmxlTGlua05ldmVyTGl2ZTsK
KyAgICByZXR1cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6Ok5ldmVyTGl2ZTsKIH0K
IAogLSAoX1dLRWRpdGFibGVMaW5rQmVoYXZpb3IpX2VkaXRhYmxlTGlua0JlaGF2aW9yCkBAIC03
NzUsNyArNzc1LDcgQEAgLSAoX1dLRWRpdGFibGVMaW5rQmVoYXZpb3IpX2VkaXRhYmxlTGluawog
CiAtICh2b2lkKV9zZXRFZGl0YWJsZUxpbmtCZWhhdmlvcjooX1dLRWRpdGFibGVMaW5rQmVoYXZp
b3IpZWRpdGFibGVMaW5rQmVoYXZpb3IKIHsKLSAgICBfcHJlZmVyZW5jZXMtPnNldEVkaXRhYmxl
TGlua0JlaGF2aW9yKHRvRWRpdGFibGVMaW5rQmVoYXZpb3IoZWRpdGFibGVMaW5rQmVoYXZpb3Ip
KTsKKyAgICBfcHJlZmVyZW5jZXMtPnNldEVkaXRhYmxlTGlua0JlaGF2aW9yKHN0YXRpY19jYXN0
PHVpbnQzMl90Pih0b0VkaXRhYmxlTGlua0JlaGF2aW9yKGVkaXRhYmxlTGlua0JlaGF2aW9yKSkp
OwogfQogCiAtICh2b2lkKV9zZXRBVkZvdW5kYXRpb25FbmFibGVkOihCT09MKWVuYWJsZWQKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAJKHJldmlzaW9uIDI2OTgzMCkK
KysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIyLDcgKzEyMiw3IEBAIHZvaWQgV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnVwZGEKIHsKICAgICBXZWJQYWdlOjp1cGRhdGVQ
cmVmZXJlbmNlc0dlbmVyYXRlZChzdG9yZSk7CiAKLSAgICBtX3N0b3JhZ2VCbG9ja2luZ1BvbGlj
eSA9IHN0YXRpY19jYXN0PFNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k+KHN0
b3JlLmdldFVJbnQzMlZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpzdG9yYWdlQmxvY2tp
bmdQb2xpY3lLZXkoKSkpOworICAgIG1fc3RvcmFnZUJsb2NraW5nUG9saWN5ID0gc3RhdGljX2Nh
c3Q8U3RvcmFnZUJsb2NraW5nUG9saWN5PihzdG9yZS5nZXRVSW50MzJWYWx1ZUZvcktleShXZWJQ
cmVmZXJlbmNlc0tleTo6c3RvcmFnZUJsb2NraW5nUG9saWN5S2V5KCkpKTsKICAgICBzZXRTaG91
bGRVc2VTaG9ydFRpbWVvdXQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2Vz
S2V5OjpzaG91bGRVc2VTZXJ2aWNlV29ya2VyU2hvcnRUaW1lb3V0S2V5KCkpKTsKIH0KIApJbmRl
eDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCShyZXZpc2lvbiAyNjk4MzApCisrKyBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIsNyArMTAyLDcgQEAgcHJpdmF0ZToKICAgICBX
ZWJQYWdlUHJveHlJZGVudGlmaWVyIG1fd2ViUGFnZVByb3h5SUQ7CiAgICAgV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIgbV9wYWdlSUQ7CiAKLSAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6U3Rv
cmFnZUJsb2NraW5nUG9saWN5IG1fc3RvcmFnZUJsb2NraW5nUG9saWN5IHsgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QWxsb3dBbGxTdG9yYWdlIH07Cisg
ICAgV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5IG1fc3RvcmFnZUJsb2NraW5nUG9saWN5
IHsgV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5OjpBbGxvd0FsbCB9OwogCiAgICAgSGFz
aFNldDxzdGQ6OnVuaXF1ZV9wdHI8U2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50Pj4gbV9s
b2FkZXJzOwogICAgIEhhc2hNYXA8dWludDY0X3QsIEZpbmRDbGllbnRCeUlkZW50aWZpZXJDYWxs
YmFjaz4gbV9maW5kQ2xpZW50QnlJZGVudGlmaWVyUmVxdWVzdHM7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2aXNpb24gMjY5ODMwKQor
KysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTM3MzUsNyArMzczNSw3IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5j
ZXMoY29uc3QgV2UKICAgICBzZXR0aW5ncy5zZXRVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5
KHN0YXRpY19jYXN0PFdlYkNvcmU6OlVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3k+KHN0b3Jl
LmdldFVJbnQzMlZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojp1c2VySW50ZXJmYWNlRGly
ZWN0aW9uUG9saWN5S2V5KCkpKSk7CiAgICAgc2V0dGluZ3Muc2V0U3lzdGVtTGF5b3V0RGlyZWN0
aW9uKHN0YXRpY19jYXN0PFRleHREaXJlY3Rpb24+KHN0b3JlLmdldFVJbnQzMlZhbHVlRm9yS2V5
KFdlYlByZWZlcmVuY2VzS2V5OjpzeXN0ZW1MYXlvdXREaXJlY3Rpb25LZXkoKSkpKTsKICAgICBz
ZXR0aW5ncy5zZXRKYXZhU2NyaXB0UnVudGltZUZsYWdzKHN0YXRpY19jYXN0PFJ1bnRpbWVGbGFn
cz4oc3RvcmUuZ2V0VUludDMyVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmphdmFTY3Jp
cHRSdW50aW1lRmxhZ3NLZXkoKSkpKTsKLSAgICBzZXR0aW5ncy5zZXRTdG9yYWdlQmxvY2tpbmdQ
b2xpY3koc3RhdGljX2Nhc3Q8U2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeT4o
c3RvcmUuZ2V0VUludDMyVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnN0b3JhZ2VCbG9j
a2luZ1BvbGljeUtleSgpKSkpOworICAgIHNldHRpbmdzLnNldFN0b3JhZ2VCbG9ja2luZ1BvbGlj
eShzdGF0aWNfY2FzdDxTdG9yYWdlQmxvY2tpbmdQb2xpY3k+KHN0b3JlLmdldFVJbnQzMlZhbHVl
Rm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpzdG9yYWdlQmxvY2tpbmdQb2xpY3lLZXkoKSkpKTsK
ICAgICBzZXR0aW5ncy5zZXRGcmFtZUZsYXR0ZW5pbmcoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5
KFdlYlByZWZlcmVuY2VzS2V5OjpmcmFtZUZsYXR0ZW5pbmdFbmFibGVkS2V5KCkpID8gV2ViQ29y
ZTo6RnJhbWVGbGF0dGVuaW5nOjpGdWxseUVuYWJsZWQgOiBXZWJDb3JlOjpGcmFtZUZsYXR0ZW5p
bmc6OkRpc2FibGVkKTsKICAgICBzZXR0aW5ncy5zZXRFZGl0YWJsZUxpbmtCZWhhdmlvcihzdGF0
aWNfY2FzdDxXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvcj4oc3RvcmUuZ2V0VUludDMyVmFs
dWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmVkaXRhYmxlTGlua0JlaGF2aW9yS2V5KCkpKSk7
CiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQpAQCAtMzgzNiw3ICszODM2LDcgQEAgdm9pZCBX
ZWJQYWdlOjpyZW1vdmVEYXRhRGV0ZWN0ZWRMaW5rcyhDbwogCiB2b2lkIFdlYlBhZ2U6OmRldGVj
dERhdGFJbkFsbEZyYW1lcyh1aW50NjRfdCB0eXBlcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChj
b25zdCBEYXRhRGV0ZWN0aW9uUmVzdWx0Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAg
YXV0byBkYXRhRGV0ZWN0b3JUeXBlcyA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OkRhdGFEZXRlY3Rv
clR5cGVzPih0eXBlcyk7CisgICAgYXV0byBkYXRhRGV0ZWN0b3JUeXBlcyA9IE9wdGlvblNldDxE
YXRhRGV0ZWN0b3JUeXBlcz46OmZyb21SYXcodHlwZXMpOwogICAgIGZvciAoYXV0byBmcmFtZSA9
IG1ha2VSZWZQdHIoJm1fcGFnZS0+bWFpbkZyYW1lKCkpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+
dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7CiAgICAgICAgIGF1dG8gZG9jdW1lbnQgPSBtYWtlUmVm
UHRyKGZyYW1lLT5kb2N1bWVudCgpKTsKICAgICAgICAgaWYgKCFkb2N1bWVudCkKSW5kZXg6IFNv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisy
MDIwLTExLTE1ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBTdGFu
ZGFyZGl6ZSBlbnVtcyB0aGF0IGFyZSB1c2VkIGJ5IFNldHRpbmdzIGluIHByZXBlcmF0aW9uIGZv
ciBhdXRvZ2VuZXJhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE4OTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgW1dJUF0KKworICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06CisgICAgICAg
ICogV2ViVmlldy9XZWJWaWV3Lm1tOgorCiAyMDIwLTExLTEzICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIHNvbWUgbW9yZSBXZWJLaXQgYW5kIFdlYktpdExl
Z2FjeSBwcmVmZXJlbmNlcyBib3VuZCB0byBTZXR0aW5ncyB0byBXZWJQcmVmZXJlbmNlcy55YW1s
CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0JKHJl
dmlzaW9uIDI2OTgzMCkKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJh
bWUubW0JKHdvcmtpbmcgY29weSkKQEAgLTIwNywxOCArMjA3LDE4IEBAIFdlYkNvcmU6OkVkaXRh
YmxlTGlua0JlaGF2aW9yIGNvcmUoV2ViS2kKICAgICB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
ICAgICBzd2l0Y2ggKGVkaXRhYmxlTGlua0JlaGF2aW9yKSB7CiAgICAgICAgIGNhc2UgV2ViS2l0
RWRpdGFibGVMaW5rRGVmYXVsdEJlaGF2aW9yOgotICAgICAgICAgICAgcmV0dXJuIEVkaXRhYmxl
TGlua0RlZmF1bHRCZWhhdmlvcjsKKyAgICAgICAgICAgIHJldHVybiBFZGl0YWJsZUxpbmtCZWhh
dmlvcjo6RGVmYXVsdDsKICAgICAgICAgY2FzZSBXZWJLaXRFZGl0YWJsZUxpbmtBbHdheXNMaXZl
OgotICAgICAgICAgICAgcmV0dXJuIEVkaXRhYmxlTGlua0Fsd2F5c0xpdmU7CisgICAgICAgICAg
ICByZXR1cm4gRWRpdGFibGVMaW5rQmVoYXZpb3I6OkFsd2F5c0xpdmU7CiAgICAgICAgIGNhc2Ug
V2ViS2l0RWRpdGFibGVMaW5rT25seUxpdmVXaXRoU2hpZnRLZXk6Ci0gICAgICAgICAgICByZXR1
cm4gRWRpdGFibGVMaW5rT25seUxpdmVXaXRoU2hpZnRLZXk7CisgICAgICAgICAgICByZXR1cm4g
RWRpdGFibGVMaW5rQmVoYXZpb3I6Ok9ubHlMaXZlV2l0aFNoaWZ0S2V5OwogICAgICAgICBjYXNl
IFdlYktpdEVkaXRhYmxlTGlua0xpdmVXaGVuTm90Rm9jdXNlZDoKLSAgICAgICAgICAgIHJldHVy
biBFZGl0YWJsZUxpbmtMaXZlV2hlbk5vdEZvY3VzZWQ7CisgICAgICAgICAgICByZXR1cm4gRWRp
dGFibGVMaW5rQmVoYXZpb3I6OkxpdmVXaGVuTm90Rm9jdXNlZDsKICAgICAgICAgY2FzZSBXZWJL
aXRFZGl0YWJsZUxpbmtOZXZlckxpdmU6Ci0gICAgICAgICAgICByZXR1cm4gRWRpdGFibGVMaW5r
TmV2ZXJMaXZlOworICAgICAgICAgICAgcmV0dXJuIEVkaXRhYmxlTGlua0JlaGF2aW9yOjpOZXZl
ckxpdmU7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBFZGl0
YWJsZUxpbmtEZWZhdWx0QmVoYXZpb3I7CisgICAgcmV0dXJuIEVkaXRhYmxlTGlua0JlaGF2aW9y
OjpEZWZhdWx0OwogfQogCiBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJl
aGF2aW9yIGNvcmUoV2ViVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvciBiZWhh
dmlvcikKQEAgLTIyNiwxNCArMjI2LDE0IEBAIFdlYkNvcmU6OlRleHREaXJlY3Rpb25TdWJtZW51
SW5jbHVzaW9uQmUKICAgICB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAgICBzd2l0Y2ggKGJl
aGF2aW9yKSB7CiAgICAgICAgIGNhc2UgV2ViVGV4dERpcmVjdGlvblN1Ym1lbnVOZXZlckluY2x1
ZGVkOgotICAgICAgICAgICAgcmV0dXJuIFRleHREaXJlY3Rpb25TdWJtZW51TmV2ZXJJbmNsdWRl
ZDsKKyAgICAgICAgICAgIHJldHVybiBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2
aW9yOjpOZXZlckluY2x1ZGVkOwogICAgICAgICBjYXNlIFdlYlRleHREaXJlY3Rpb25TdWJtZW51
QXV0b21hdGljYWxseUluY2x1ZGVkOgotICAgICAgICAgICAgcmV0dXJuIFRleHREaXJlY3Rpb25T
dWJtZW51QXV0b21hdGljYWxseUluY2x1ZGVkOworICAgICAgICAgICAgcmV0dXJuIFRleHREaXJl
Y3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3I6OkF1dG9tYXRpY2FsbHlJbmNsdWRlZDsKICAg
ICAgICAgY2FzZSBXZWJUZXh0RGlyZWN0aW9uU3VibWVudUFsd2F5c0luY2x1ZGVkOgotICAgICAg
ICAgICAgcmV0dXJuIFRleHREaXJlY3Rpb25TdWJtZW51QWx3YXlzSW5jbHVkZWQ7CisgICAgICAg
ICAgICByZXR1cm4gVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcjo6QWx3YXlz
SW5jbHVkZWQ7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBU
ZXh0RGlyZWN0aW9uU3VibWVudU5ldmVySW5jbHVkZWQ7CisgICAgcmV0dXJuIFRleHREaXJlY3Rp
b25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3I6Ok5ldmVySW5jbHVkZWQ7CiB9CiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbQkocmV2aXNpb24gMjY5ODMwKQorKysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC03NTUsMTkgKzc1NSwxOSBAQCBz
dGF0aWMgV2ViUGFnZVZpc2liaWxpdHlTdGF0ZSBraXQoV2ViQ29yCiAgICAgcmV0dXJuIFdlYlBh
Z2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlOwogfQogCi1zdGF0aWMgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBjb3JlKFdlYlN0b3JhZ2VCbG9ja2luZ1BvbGlj
eSBzdG9yYWdlQmxvY2tpbmdQb2xpY3kpCitzdGF0aWMgV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5n
UG9saWN5IGNvcmUoV2ViU3RvcmFnZUJsb2NraW5nUG9saWN5IHN0b3JhZ2VCbG9ja2luZ1BvbGlj
eSkKIHsKICAgICBzd2l0Y2ggKHN0b3JhZ2VCbG9ja2luZ1BvbGljeSkgewogICAgIGNhc2UgV2Vi
QWxsb3dBbGxTdG9yYWdlOgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46
OkFsbG93QWxsU3RvcmFnZTsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2lu
Z1BvbGljeTo6QWxsb3dBbGw7CiAgICAgY2FzZSBXZWJCbG9ja1RoaXJkUGFydHlTdG9yYWdlOgot
ICAgICAgICByZXR1cm4gV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OkJsb2NrVGhpcmRQYXJ0eVN0
b3JhZ2U7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkJs
b2NrVGhpcmRQYXJ0eTsKICAgICBjYXNlIFdlYkJsb2NrQWxsU3RvcmFnZToKLSAgICAgICAgcmV0
dXJuIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpCbG9ja0FsbFN0b3JhZ2U7CisgICAgICAgIHJl
dHVybiBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkJsb2NrQWxsOwogICAgIGRlZmF1
bHQ6CiAgICAgICAgIC8vIElmIGFuIGludmFsaWQgdmFsdWUgd2FzIHNldCAoYXMgY2FuIGJlIGRv
bmUgdmlhIE5TVXNlckRlZmF1bHRzKSwgZmFsbCBiYWNrIHRvCi0gICAgICAgIC8vIHRoZSBkZWZh
dWx0IHZhbHVlLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6QWxsb3dBbGxTdG9yYWdlLgotICAg
ICAgICByZXR1cm4gV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OkFsbG93QWxsU3RvcmFnZTsKKyAg
ICAgICAgLy8gdGhlIGRlZmF1bHQgdmFsdWUsIFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGlj
eTo6QWxsb3dBbGwuCisgICAgICAgIHJldHVybiBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xp
Y3k6OkFsbG93QWxsOwogICAgIH0KIH0KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjY5ODMwKQorKysg
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjEgQEAKKzIw
MjAtMTEtMTUgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgorCisgICAgICAgIFN0YW5k
YXJkaXplIGVudW1zIHRoYXQgYXJlIHVzZWQgYnkgU2V0dGluZ3MgaW4gcHJlcGVyYXRpb24gZm9y
IGF1dG9nZW5lcmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTg5NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBbV0lQXQorCisgICAgICAgICogZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1
cmUtMDAzLmh0bWw6CisgICAgICAgICogZWRpdGluZy9kZWxldGluZy9wYXJhZ3JhcGgtaW4tcHJl
c2VydmVOZXdsaW5lLmh0bWw6CisgICAgICAgICogZWRpdGluZy9kZWxldGluZy9zbWFydC1lZGl0
aW5nLWRpc2FibGVkLXdpbi5odG1sOgorICAgICAgICAqIGVkaXRpbmcvZGVsZXRpbmcvd2hpdGVz
cGFjZS1wcmUtMS5odG1sOgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvcXVlcnktY29t
bWFuZC1zdGF0ZS5odG1sOgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvcXVlcnktdGV4
dC1hbGlnbm1lbnQuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL3JlbW92ZS1m
b3JtYXQtbXVsdGlwbGUtZWxlbWVudHMtd2luLmh0bWw6CisgICAgICAgICogZWRpdGluZy9leGVj
Q29tbWFuZC90b2dnbGUtY29tcG91bmQtc3R5bGVzLmh0bWw6CisgICAgICAgICogZWRpdGluZy9l
eGVjQ29tbWFuZC90b2dnbGUtbGluay13aW4uaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2V4ZWND
b21tYW5kL3RvZ2dsZS11bmxpbmstd2luLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rp
b24vNTE5NTE2Ni0xLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vNTM1NDQ1NS0x
Lmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vY2xpY2staW4tbWFyZ2lucy1pbnNp
ZGUtZWRpdGFibGUtZGl2Lmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vY2xpY2st
aW4tcGFkZGluZy13aXRoLW11bHRpcGxlLWxpbmUtYm94ZXMuaHRtbDoKKyAgICAgICAgKiBlZGl0
aW5nL3NlbGVjdGlvbi9jb250ZXh0LW1lbnUtdGV4dC1zZWxlY3Rpb24tbG9va3VwLmh0bWw6Cisg
ICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vY29udGV4dC1tZW51LXRleHQtc2VsZWN0aW9uLmh0
bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLWFmdGVyLW1vdXNlLXNlbGVj
dGlvbi5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24t
YWZ0ZXItZG91YmxlLWNsaWNrLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vZXh0
ZW5kLXNlbGVjdGlvbi1lbmNsb3NpbmctYmxvY2std2luLmh0bWw6CisgICAgICAgICogZWRpdGlu
Zy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWNyYXNoLXRlc3QtMS5odG1sOgorICAg
ICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0
LTIuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFs
bHktY3Jhc2gtdGVzdC0zLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1i
eS13b3JkLXZpc3VhbGx5LWNyYXNoLXRlc3QtNC5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2Vs
ZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0LTUuaHRtbDoKKyAgICAgICAg
KiBlZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC1jc3Mt
Z2VuZXJhdGVkLWNvbnRlbnQuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9tb3Zl
LWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC10ZXh0YXJlYS5odG1sOgorICAgICAgICAqIGVk
aXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1pbmxpbmUtYmxvY2stcG9zaXRp
b25lZC1lbGVtZW50Lmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13
b3JkLXZpc3VhbGx5LW11bHRpLWxpbmUuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlv
bi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktbXVsdGktc3BhY2UuaHRtbDoKKyAgICAgICAgKiBlZGl0
aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktbnVsbC1ib3guaHRtbDoKKyAgICAg
ICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktc2luZ2xlLXNwYWNl
LWlubGluZS1lbGVtZW50Lmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1i
eS13b3JkLXZpc3VhbGx5LXNpbmdsZS1zcGFjZS1vbmUtZWxlbWVudC5odG1sOgorICAgICAgICAq
IGVkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS10ZXh0YXJlYS5odG1sOgor
ICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS13cm9uZy1s
ZWZ0LXJpZ2h0Lmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vcHJvZ3JhbW1hdGlj
LXNlbGVjdGlvbi1vbi1tYWMtaXMtZGlyZWN0aW9ubGVzcy5odG1sOgorICAgICAgICAqIGVkaXRp
bmcvc2VsZWN0aW9uL3J0bC1tb3ZlLXNlbGVjdGlvbi1yaWdodC1sZWZ0Lmh0bWw6CisgICAgICAg
ICogZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWV4dGVuZC1zaG91bGQtbm90LW1vdmUtYWNy
b3NzLWNhcmV0LW9uLW1hYy5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL3NoaWZ0
LWNsaWNrLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vdXNlci1zZWxlY3QtYWxs
LXdpdGgtc2hpZnQuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NwZWxsaW5nL2NvcHktcGFzdGUt
Y3Jhc2guaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3N0eWxlL2lmcmFtZS1vbmxvYWQtY3Jhc2gt
d2luLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zdHlsZS9tYWtlLXRleHQtd3JpdGluZy1kaXJl
Y3Rpb24taW5saW5lLXdpbi5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc3R5bGUvcHVzaC1kb3du
LWZvbnQtc3R5bGVzLXdpbi5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc3R5bGUvcHVzaC1kb3du
LWltcGxpY2l0LXN0eWxlcy1hcm91bmQtbGlzdC13aW4uaHRtbDoKKyAgICAgICAgKiBlZGl0aW5n
L3N0eWxlL3RvZ2dsZS1zdHlsZS1ib2xkLWl0YWxpYy1taXhlZC1lZGl0YWJpbGl0eS5odG1sOgor
ICAgICAgICAqIGVkaXRpbmcvc3R5bGUvdG9nZ2xlLXN0eWxlLWJvbGQtaXRhbGljLmh0bWw6Cisg
ICAgICAgICogZmFzdC9ldmVudHMvYmFja3NwYWNlLW5hdmlnYXRlcy1iYWNrLmh0bWw6CisgICAg
ICAgICogZmFzdC9mb3Jtcy9zZWxlY3Rpb24tZGlyZWN0aW9uLmh0bWw6CisKIDIwMjAtMTEtMTUg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhIFdlYlJU
QyBTRnJhbWUgdHJhbnNmb3JtCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2Rl
bGV0ZS1saWdhdHVyZS0wMDMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWxpZ2F0dXJlLTAwMy1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWxpZ2F0
dXJlLTAwMy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTMxLDUgKzMxLDUgQEAgSWYg
dGhpcyB0ZXN0IHN1Y2NlZWRzLCB5b3UgY2FuIHNlZSAi4Lin4AogCiDguKfguLEKIFN1Y2NlZWRl
ZCBmb3IgbWFjCi1TdWNjZWVkZWQgZm9yIHdpbgorU3VjY2VlZGVkIGZvciB3aW5kb3dzCiBTdWNj
ZWVkZWQgZm9yIHVuaXgKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRl
LWxpZ2F0dXJlLTAwMy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvZGVs
ZXRpbmcvZGVsZXRlLWxpZ2F0dXJlLTAwMy5odG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlv
dXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1saWdhdHVyZS0wMDMuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQAogICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQogICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICAg
ICAgcnVuVGVzdE9uKCJtYWMiKTsKLSAgICAgICAgICAgIHJ1blRlc3RPbigid2luIik7CisgICAg
ICAgICAgICBydW5UZXN0T24oIndpbmRvd3MiKTsKICAgICAgICAgICAgIHJ1blRlc3RPbigidW5p
eCIpOwogICAgICAgICB9CiAgICAgICAgIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZWRp
dGluZy9kZWxldGluZy9wYXJhZ3JhcGgtaW4tcHJlc2VydmVOZXdsaW5lLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3BhcmFncmFwaC1pbi1w
cmVzZXJ2ZU5ld2xpbmUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRU
ZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3BhcmFncmFwaC1pbi1wcmVzZXJ2ZU5ld2xpbmUtZXhwZWN0
ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01MiwxMiArNTIsMTIgQEAgYWZ0ZXIgdW5kbyBvbiBt
YWM6CiB8ICAgIjwjc2VsZWN0aW9uLWFuY2hvcj5mb288I3NlbGVjdGlvbi1mb2N1cz4KIGJhciIK
IAotb24gd2luOgorb24gd2luZG93czoKIHwgPHByZT4KIHwgICAiPCNzZWxlY3Rpb24tY2FyZXQ+
CiBiYXIiCiAKLWFmdGVyIHVuZG8gb24gd2luOgorYWZ0ZXIgdW5kbyBvbiB3aW5kb3dzOgogfCA8
cHJlPgogfCAgICI8I3NlbGVjdGlvbi1hbmNob3I+Zm9vPCNzZWxlY3Rpb24tZm9jdXM+CiBiYXIi
CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3BhcmFncmFwaC1pbi1wcmVzZXJ2
ZU5ld2xpbmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5n
L3BhcmFncmFwaC1pbi1wcmVzZXJ2ZU5ld2xpbmUuaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysg
TGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9wYXJhZ3JhcGgtaW4tcHJlc2VydmVOZXdsaW5l
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQogTWFya3VwLmRlc2NyaXB0aW9uKGRlc2NyaXB0aW9uLnRleHRDb250ZW50KTsKIE1hcmt1
cC5kdW1wKCJ0ZXN0IiwgImluaXRpYWwgc3RhdGUiKTsKIHJ1blRlc3RzT24oIm1hYyIpOwotcnVu
VGVzdHNPbigid2luIik7CitydW5UZXN0c09uKCJ3aW5kb3dzIik7CiBydW5UZXN0c09uKCJ1bml4
Iik7CiA8L3NjcmlwdD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRp
bmcvc21hcnQtZWRpdGluZy1kaXNhYmxlZC13aW4uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWVkaXRpbmctZGlzYWJsZWQtd2luLmh0bWwJKHJl
dmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvc21hcnQtZWRp
dGluZy1kaXNhYmxlZC13aW4uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOCw3ICs4LDcgQEAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CiB9CiBpZiAod2luZG93LmludGVybmFscykK
LSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiAKIGZ1bmN0
aW9uIGVkaXRpbmdUZXN0KCkgewogICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiZGl2Iik7CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3doaXRlc3BhY2Ut
cHJlLTEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvZGVs
ZXRpbmcvd2hpdGVzcGFjZS1wcmUtMS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI2OTgzMCkKKysr
IExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvd2hpdGVzcGFjZS1wcmUtMS1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDEyICs0NiwxMiBAQCBhZnRlciB1bmRvIG9uIG1hYzoK
IFRoZXJlIHNob3VsZCBiZSB0aHJlZSBwYXJhZ3JhcGhzIGluIHRoaXMgZWRpdGFibGUgcmVnaW9u
LgogVGhlIGZpcnN0IG9uZSBzaG91bGQgYmUgZW1wdHkuIgogCi1vbiB3aW46CitvbiB3aW5kb3dz
OgogfCAiPCNzZWxlY3Rpb24tY2FyZXQ+CiBUaGVyZSBzaG91bGQgYmUgdGhyZWUgcGFyYWdyYXBo
cyBpbiB0aGlzIGVkaXRhYmxlIHJlZ2lvbi4KIFRoZSBmaXJzdCBvbmUgc2hvdWxkIGJlIGVtcHR5
LiIKIAotYWZ0ZXIgdW5kbyBvbiB3aW46CithZnRlciB1bmRvIG9uIHdpbmRvd3M6CiB8ICI8I3Nl
bGVjdGlvbi1hbmNob3I+WW91IHNob3VsZCBub3Qgc2VlIHRoaXMgcGFyYWdyYXBoIHVubGVzcyB0
aGUgY29tbWFuZCBoYXMgYmVlbiB1bmRvbmUuPCNzZWxlY3Rpb24tZm9jdXM+CiBUaGVyZSBzaG91
bGQgYmUgdGhyZWUgcGFyYWdyYXBocyBpbiB0aGlzIGVkaXRhYmxlIHJlZ2lvbi4KIFRoZSBmaXJz
dCBvbmUgc2hvdWxkIGJlIGVtcHR5LiIKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRp
bmcvd2hpdGVzcGFjZS1wcmUtMS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRp
bmcvZGVsZXRpbmcvd2hpdGVzcGFjZS1wcmUtMS5odG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBM
YXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3doaXRlc3BhY2UtcHJlLTEuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMjYsNiArMjYsNiBAQCBpZiAod2luZG93LnRlc3RSdW5uZXIpCiBNYXJrdXAu
ZGVzY3JpcHRpb24oZGVzY3JpcHRpb24udGV4dENvbnRlbnQpOwogTWFya3VwLmR1bXAoInRlc3Qi
LCAiaW5pdGlhbCBzdGF0ZSIpOwogcnVuVGVzdHNPbigibWFjIik7Ci1ydW5UZXN0c09uKCJ3aW4i
KTsKK3J1blRlc3RzT24oIndpbmRvd3MiKTsKIHJ1blRlc3RzT24oInVuaXgiKTsKIDwvc2NyaXB0
PgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9xdWVyeS1jb21tYW5kLXN0
YXRlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWND
b21tYW5kL3F1ZXJ5LWNvbW1hbmQtc3RhdGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNjk4MzAp
CisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3F1ZXJ5LWNvbW1hbmQtc3RhdGUt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zLDcgKzMsNyBAQCBUZXN0IHRvIG1ha2Ug
c3VyZSBxdWVyeUNvbW1hbmRTdGF0ZSByZXR1CiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAK
IAotVGVzdHMgZm9yIHdpbgorVGVzdHMgZm9yIHdpbmRvd3MKIFBBU1MgcXVlcnlDb21tYW5kU3Rh
dGUoImJvbGQiKSByZXR1cm5zIGZhbHNlIHdoZW4gc2VsZWN0aW5nIGFsbCBvZiAiaGVsbG8iCiBQ
QVNTIHF1ZXJ5Q29tbWFuZFN0YXRlKCJib2xkIikgcmV0dXJucyBmYWxzZSB3aGVuIHNlbGVjdGlu
ZyBhbGwgb2YgIjxpPmhlbGxvPC9pPiIKIFBBU1MgcXVlcnlDb21tYW5kU3RhdGUoImJvbGQiKSBy
ZXR1cm5zIHRydWUgd2hlbiBzZWxlY3RpbmcgYWxsIG9mICI8Yj5oZWxsbzwvYj4iCkluZGV4OiBM
YXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3F1ZXJ5LWNvbW1hbmQtc3RhdGUuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3F1ZXJ5LWNvbW1h
bmQtc3RhdGUuaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9l
eGVjQ29tbWFuZC9xdWVyeS1jb21tYW5kLXN0YXRlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTU1
LDY5ICs1NSw2OSBAQCBmdW5jdGlvbiBydW5UZXN0cyhlZGl0aW5nQmVoYXZpb3IpIHsKICAgICAg
ICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcihlZGl0aW5nQmVoYXZpb3Ip
OwogICAgIGRlYnVnKCdUZXN0cyBmb3IgJyArIGVkaXRpbmdCZWhhdmlvcikKIAotICAgIHRlc3RR
dWVyeUNvbW1hbmRTdGF0ZSgiYm9sZCIsICdoZWxsbycsIHNlbGVjdEFsbCwgeydtYWMnOiBmYWxz
ZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlDb21tYW5k
U3RhdGUoImJvbGQiLCAnPGk+aGVsbG88L2k+Jywgc2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAn
d2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0
ZSgiYm9sZCIsICc8Yj5oZWxsbzwvYj4nLCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dpbic6
IHRydWV9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiYm9s
ZCIsICdoZWxsbyA8Yj53b3JsZDwvYj4nLCBzZWxlY3RBbGwsIHsnbWFjJzogZmFsc2UsICd3aW4n
OiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJi
b2xkIiwgJzxiPmhlbGxvPC9iPiB3b3JsZCcsIHNlbGVjdEFsbCwgeydtYWMnOiB0cnVlLCAnd2lu
JzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgi
Ym9sZCIsICdoZWxsbyA8Yj53b3JsZDwvYj4gV2ViS2l0Jywgc2VsZWN0U2Vjb25kV29yZCwgeydt
YWMnOiB0cnVlLCAnd2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVy
eUNvbW1hbmRTdGF0ZSgiYm9sZCIsICc8Yj5oZWxsbzwvYj4gd29ybGQgPGI+V2ViS2l0PC9iPics
IHNlbGVjdFNlY29uZFdvcmQsIHsnbWFjJzogZmFsc2UsICd3aW4nOiBmYWxzZX1bZWRpdGluZ0Jl
aGF2aW9yXSk7Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJib2xkIiwgJzxpPmhlbGxvIDxi
PmhlbGxvPC9iPiBXZWJLaXQ8L2k+Jywgc2VsZWN0U2Vjb25kV29yZCwgeydtYWMnOiB0cnVlLCAn
d2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0
ZSgiYm9sZCIsICc8Yj5oZWxsbyA8aT5oZWxsbzwvaT4gV2ViS2l0PC9iPicsIHNlbGVjdFNlY29u
ZFdvcmQsIHsnbWFjJzogdHJ1ZSwgJ3dpbic6IHRydWV9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAg
IHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiYm9sZCIsICc8Yj48ZGl2PmhlbGxvIDxpPmhlbGxvPC9p
PiBXZWJLaXQ8L2Rpdj48L2I+Jywgc2VsZWN0U2Vjb25kV29yZCwgeydtYWMnOiB0cnVlLCAnd2lu
JzogdHJ1ZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJi
b2xkIiwgJzxiIHN0eWxlPSJmb250LXdlaWdodDogbm9ybWFsOyI+aGVsbG88L2I+Jywgc2VsZWN0
QWxsLCB7J21hYyc6IGZhbHNlLCAnd2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAg
IHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiYm9sZCIsICc8aSBzdHlsZT0iZm9udC13ZWlnaHQ6IGJv
bGQ7Ij5oZWxsbzwvaT4nLCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dpbic6IHRydWV9W2Vk
aXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiYm9sZCIsICc8Yj5o
ZWxsbzwvYj4gd29ybGQgPGI+V2ViS2l0PC9iPicsIHNlbGVjdEFsbCwgeydtYWMnOiB0cnVlLCAn
d2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0
ZSgiYm9sZCIsICc8Yj5oZWxsbzwvYj48Yj4gd29ybGQ8L2I+Jywgc2VsZWN0QWxsLCB7J21hYyc6
IHRydWUsICd3aW4nOiB0cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlDb21t
YW5kU3RhdGUoImJvbGQiLCAnPGRpdj48Yj5oZWxsbzwvYj48L2Rpdj48cD48Yj4gV2ViS2l0PC9i
PjwvcD4nLCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dpbic6IHRydWV9W2VkaXRpbmdCZWhh
dmlvcl0pOwotCi0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJpdGFsaWMiLCAnaGVsbG8nLCBz
ZWxlY3RBbGwsIHsnbWFjJzogZmFsc2UsICd3aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7
Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJpdGFsaWMiLCAnPGI+aGVsbG88L2I+Jywgc2Vs
ZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwot
ICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiaXRhbGljIiwgJzxpPmhlbGxvPC9pPicsIHNlbGVj
dEFsbCwgeydtYWMnOiB0cnVlLCAnd2luJzogdHJ1ZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAg
dGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJpdGFsaWMiLCAnPGk+aGVsbG88L2k+IHdvcmxkJywgc2Vs
ZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0g
ICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJpdGFsaWMiLCAnaGVsbG8gPGk+d29ybGQ8L2k+Jywg
c2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0p
OwotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiaXRhbGljIiwgJzxpPjxkaXY+aGVsbG8gd29y
bGQ8L2Rpdj48L2k+Jywgc2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW4nOiB0cnVlfVtlZGl0
aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoIml0YWxpYyIsICc8ZGl2
IHN0eWxlPSJmb250LXN0eWxlOiBpdGFsaWMiPmhlbGxvIDxzcGFuIHN0eWxlPSJmb250LXN0eWxl
OiBub3JtYWw7Ij5oZWxsbzwvc3Bhbj48L2Rpdj4nLCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwg
J3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLQotICAgIHRlc3RRdWVyeUNvbW1hbmRT
dGF0ZSgic3Vic2NyaXB0IiwgJ2hlbGxvJywgc2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2lu
JzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgi
c3Vic2NyaXB0IiwgJzxzdXA+aGVsbG88L3N1cD4nLCBzZWxlY3RBbGwsIHsnbWFjJzogZmFsc2Us
ICd3aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0
YXRlKCJzdWJzY3JpcHQiLCAnPHN1Yj5oZWxsbzwvc3ViPicsIHNlbGVjdEFsbCwgeydtYWMnOiB0
cnVlLCAnd2luJzogdHJ1ZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAgdGVzdFF1ZXJ5Q29tbWFu
ZFN0YXRlKCJzdWJzY3JpcHQiLCAnPHN1Yj5oZWxsbzwvc3ViPiB3b3JsZCcsIHNlbGVjdEFsbCwg
eydtYWMnOiB0cnVlLCAnd2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RR
dWVyeUNvbW1hbmRTdGF0ZSgic3Vic2NyaXB0IiwgJ2hlbGxvIDxzdWI+d29ybGQ8L3N1Yj4nLCBz
ZWxlY3RBbGwsIHsnbWFjJzogZmFsc2UsICd3aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7
Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdWJzY3JpcHQiLCAnaGVsbG8gPHNwYW4gc3R5
bGU9InZlcnRpY2FsLWFsaWduOiBzdWI7Ij53b3JsZDwvc3Bhbj4gV2ViS2l0Jywgc2VsZWN0U2Vj
b25kV29yZCwgeydtYWMnOiB0cnVlLCAnd2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwot
Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdXBlcnNjcmlwdCIsICdoZWxsbycsIHNlbGVj
dEFsbCwgeydtYWMnOiBmYWxzZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAg
ICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN1cGVyc2NyaXB0IiwgJzxzdWI+aGVsbG88L3N1Yj4n
LCBzZWxlY3RBbGwsIHsnbWFjJzogZmFsc2UsICd3aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9y
XSk7Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdXBlcnNjcmlwdCIsICc8c3VwPmhlbGxv
PC9zdXA+Jywgc2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW4nOiB0cnVlfVtlZGl0aW5nQmVo
YXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN1cGVyc2NyaXB0IiwgJzxzdXA+
aGVsbG88L3N1cD4gd29ybGQnLCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dpbic6IGZhbHNl
fVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN1cGVyc2Ny
aXB0IiwgJ2hlbGxvIDxzdXA+d29ybGQ8L3N1cD4nLCBzZWxlY3RBbGwsIHsnbWFjJzogZmFsc2Us
ICd3aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0
YXRlKCJzdXBlcnNjcmlwdCIsICc8c3BhbiBzdHlsZT0idmVydGljYWwtYWxpZ246IHN1cGVyOyI+
aGVsbG88L3NwYW4+PHNwYW4gc3R5bGU9InZlcnRpY2FsLWFsaWduOiBzdWI7Ij53b3JsZDwvc3Bh
bj4nLCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZp
b3JdKTsKLSAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN1cGVyc2NyaXB0IiwgJ2hlbGxvPHNw
YW4gc3R5bGU9InZlcnRpY2FsLWFsaWduOiBzdXBlcjsiPndvcmxkPC9zcGFuPicsIHNlbGVjdEFs
bCwgeydtYWMnOiBmYWxzZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLQotICAg
IHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgidW5kZXJsaW5lIiwgJ2hlbGxvJywgc2VsZWN0QWxsLCB7
J21hYyc6IGZhbHNlLCAnd2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RR
dWVyeUNvbW1hbmRTdGF0ZSgidW5kZXJsaW5lIiwgJzxzPmhlbGxvPC9zPicsIHNlbGVjdEFsbCwg
eydtYWMnOiBmYWxzZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0
UXVlcnlDb21tYW5kU3RhdGUoInVuZGVybGluZSIsICc8dT5oZWxsbzwvdT4nLCBzZWxlY3RBbGws
IHsnbWFjJzogdHJ1ZSwgJ3dpbic6IHRydWV9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RR
dWVyeUNvbW1hbmRTdGF0ZSgidW5kZXJsaW5lIiwgJzx1PmhlbGxvPC91PiB3b3JsZCcsIHNlbGVj
dEFsbCwgeydtYWMnOiB0cnVlLCAnd2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAg
IHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgidW5kZXJsaW5lIiwgJ2hlbGxvIDx1PndvcmxkPC91Pics
IHNlbGVjdEFsbCwgeydtYWMnOiBmYWxzZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3Jd
KTsKLSAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInVuZGVybGluZSIsICc8dT48ZGl2PmhlbGxv
IHdvcmxkPC9kaXY+PC91PicsIHNlbGVjdEFsbCwgeydtYWMnOiB0cnVlLCAnd2luJzogdHJ1ZX1b
ZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJ1bmRlcmxpbmUi
LCAnPHU+PHM+PGRpdj5oZWxsbyB3b3JsZCBXZWJLaXQ8L2Rpdj48L3M+PC91PicsIHNlbGVjdFNl
Y29uZFdvcmQsIHsnbWFjJzogdHJ1ZSwgJ3dpbic6IHRydWV9W2VkaXRpbmdCZWhhdmlvcl0pOwot
ICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgidW5kZXJsaW5lIiwgJzxzPjx1PmhlbGxvPC91PiB3
b3JsZDwvcz4gV2ViS2l0Jywgc2VsZWN0U2Vjb25kV29yZCwgeydtYWMnOiBmYWxzZSwgJ3dpbic6
IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInVu
ZGVybGluZSIsICc8dT48cz5oZWxsbzwvcz4gd29ybGQ8L3U+IFdlYktpdCcsIHNlbGVjdFNlY29u
ZFdvcmQsIHsnbWFjJzogdHJ1ZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAg
ICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInVuZGVybGluZSIsICc8cz5oZWxsbyA8dT53b3JsZDwv
cz4gV2ViS2l0PC91PicsIHNlbGVjdFNlY29uZFdvcmQsIHsnbWFjJzogdHJ1ZSwgJ3dpbic6IHRy
dWV9W2VkaXRpbmdCZWhhdmlvcl0pOwotCi0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdHJp
a2VUaHJvdWdoIiwgJ2hlbGxvJywgc2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2luJzogZmFs
c2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3RyaWtl
VGhyb3VnaCIsICc8dT5oZWxsbzwvdT4nLCBzZWxlY3RBbGwsIHsnbWFjJzogZmFsc2UsICd3aW4n
OiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJz
dHJpa2VUaHJvdWdoIiwgJzxzPmhlbGxvPC9zPicsIHNlbGVjdEFsbCwgeydtYWMnOiB0cnVlLCAn
d2luJzogdHJ1ZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRl
KCJzdHJpa2VUaHJvdWdoIiwgJzxzPmhlbGxvPC9zPiB3b3JsZCcsIHNlbGVjdEFsbCwgeydtYWMn
OiB0cnVlLCAnd2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVyeUNv
bW1hbmRTdGF0ZSgic3RyaWtlVGhyb3VnaCIsICdoZWxsbyA8cz53b3JsZDwvcz4nLCBzZWxlY3RB
bGwsIHsnbWFjJzogZmFsc2UsICd3aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAg
dGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdHJpa2VUaHJvdWdoIiwgJzxzPjxkaXY+aGVsbG8gd29y
bGQ8L2Rpdj48L3M+Jywgc2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW4nOiB0cnVlfVtlZGl0
aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN0cmlrZVRocm91Z2gi
LCAnPHM+PHU+PGRpdj5oZWxsbyB3b3JsZCBXZWJLaXQ8L2Rpdj48L3U+PC9zPicsIHNlbGVjdFNl
Y29uZFdvcmQsIHsnbWFjJzogdHJ1ZSwgJ3dpbic6IHRydWV9W2VkaXRpbmdCZWhhdmlvcl0pOwot
ICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3RyaWtlVGhyb3VnaCIsICc8dT48cz5oZWxsbzwv
cz4gd29ybGQ8L3U+IFdlYktpdCcsIHNlbGVjdFNlY29uZFdvcmQsIHsnbWFjJzogZmFsc2UsICd3
aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRl
KCJzdHJpa2VUaHJvdWdoIiwgJ2hlbGxvIDxzPndvcmxkIFdlYktpdDwvcz4nLCBzZWxlY3RTZWNv
bmRXb3JkLCB7J21hYyc6IHRydWUsICd3aW4nOiB0cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAg
ICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN0cmlrZVRocm91Z2giLCAnaGVsbG8gPHM+d29ybGQg
V2ViS2l0PC9zPicsIHNlbGVjdEZpcnN0VHdvV29yZHMsIHsnbWFjJzogZmFsc2UsICd3aW4nOiB0
cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoImJvbGQi
LCAnaGVsbG8nLCBzZWxlY3RBbGwsIHsnbWFjJzogZmFsc2UsICd3aW5kb3dzJzogZmFsc2V9W2Vk
aXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiYm9sZCIsICc8aT5o
ZWxsbzwvaT4nLCBzZWxlY3RBbGwsIHsnbWFjJzogZmFsc2UsICd3aW5kb3dzJzogZmFsc2V9W2Vk
aXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiYm9sZCIsICc8Yj5o
ZWxsbzwvYj4nLCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dpbmRvd3MnOiB0cnVlfVtlZGl0
aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoImJvbGQiLCAnaGVsbG8g
PGI+d29ybGQ8L2I+Jywgc2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2luZG93cyc6IGZhbHNl
fVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoImJvbGQiLCAn
PGI+aGVsbG88L2I+IHdvcmxkJywgc2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW5kb3dzJzog
ZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiYm9s
ZCIsICdoZWxsbyA8Yj53b3JsZDwvYj4gV2ViS2l0Jywgc2VsZWN0U2Vjb25kV29yZCwgeydtYWMn
OiB0cnVlLCAnd2luZG93cyc6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVl
cnlDb21tYW5kU3RhdGUoImJvbGQiLCAnPGI+aGVsbG88L2I+IHdvcmxkIDxiPldlYktpdDwvYj4n
LCBzZWxlY3RTZWNvbmRXb3JkLCB7J21hYyc6IGZhbHNlLCAnd2luZG93cyc6IGZhbHNlfVtlZGl0
aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoImJvbGQiLCAnPGk+aGVs
bG8gPGI+aGVsbG88L2I+IFdlYktpdDwvaT4nLCBzZWxlY3RTZWNvbmRXb3JkLCB7J21hYyc6IHRy
dWUsICd3aW5kb3dzJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNv
bW1hbmRTdGF0ZSgiYm9sZCIsICc8Yj5oZWxsbyA8aT5oZWxsbzwvaT4gV2ViS2l0PC9iPicsIHNl
bGVjdFNlY29uZFdvcmQsIHsnbWFjJzogdHJ1ZSwgJ3dpbmRvd3MnOiB0cnVlfVtlZGl0aW5nQmVo
YXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoImJvbGQiLCAnPGI+PGRpdj5oZWxs
byA8aT5oZWxsbzwvaT4gV2ViS2l0PC9kaXY+PC9iPicsIHNlbGVjdFNlY29uZFdvcmQsIHsnbWFj
JzogdHJ1ZSwgJ3dpbmRvd3MnOiB0cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVl
cnlDb21tYW5kU3RhdGUoImJvbGQiLCAnPGIgc3R5bGU9ImZvbnQtd2VpZ2h0OiBub3JtYWw7Ij5o
ZWxsbzwvYj4nLCBzZWxlY3RBbGwsIHsnbWFjJzogZmFsc2UsICd3aW5kb3dzJzogZmFsc2V9W2Vk
aXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiYm9sZCIsICc8aSBz
dHlsZT0iZm9udC13ZWlnaHQ6IGJvbGQ7Ij5oZWxsbzwvaT4nLCBzZWxlY3RBbGwsIHsnbWFjJzog
dHJ1ZSwgJ3dpbmRvd3MnOiB0cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlD
b21tYW5kU3RhdGUoImJvbGQiLCAnPGI+aGVsbG88L2I+IHdvcmxkIDxiPldlYktpdDwvYj4nLCBz
ZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dpbmRvd3MnOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9y
XSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJib2xkIiwgJzxiPmhlbGxvPC9iPjxiPiB3
b3JsZDwvYj4nLCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dpbmRvd3MnOiB0cnVlfVtlZGl0
aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoImJvbGQiLCAnPGRpdj48
Yj5oZWxsbzwvYj48L2Rpdj48cD48Yj4gV2ViS2l0PC9iPjwvcD4nLCBzZWxlY3RBbGwsIHsnbWFj
JzogdHJ1ZSwgJ3dpbmRvd3MnOiB0cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKworICAgIHRlc3RR
dWVyeUNvbW1hbmRTdGF0ZSgiaXRhbGljIiwgJ2hlbGxvJywgc2VsZWN0QWxsLCB7J21hYyc6IGZh
bHNlLCAnd2luZG93cyc6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlD
b21tYW5kU3RhdGUoIml0YWxpYyIsICc8Yj5oZWxsbzwvYj4nLCBzZWxlY3RBbGwsIHsnbWFjJzog
ZmFsc2UsICd3aW5kb3dzJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVy
eUNvbW1hbmRTdGF0ZSgiaXRhbGljIiwgJzxpPmhlbGxvPC9pPicsIHNlbGVjdEFsbCwgeydtYWMn
OiB0cnVlLCAnd2luZG93cyc6IHRydWV9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVy
eUNvbW1hbmRTdGF0ZSgiaXRhbGljIiwgJzxpPmhlbGxvPC9pPiB3b3JsZCcsIHNlbGVjdEFsbCwg
eydtYWMnOiB0cnVlLCAnd2luZG93cyc6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0
ZXN0UXVlcnlDb21tYW5kU3RhdGUoIml0YWxpYyIsICdoZWxsbyA8aT53b3JsZDwvaT4nLCBzZWxl
Y3RBbGwsIHsnbWFjJzogZmFsc2UsICd3aW5kb3dzJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0p
OworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiaXRhbGljIiwgJzxpPjxkaXY+aGVsbG8gd29y
bGQ8L2Rpdj48L2k+Jywgc2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW5kb3dzJzogdHJ1ZX1b
ZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJpdGFsaWMiLCAn
PGRpdiBzdHlsZT0iZm9udC1zdHlsZTogaXRhbGljIj5oZWxsbyA8c3BhbiBzdHlsZT0iZm9udC1z
dHlsZTogbm9ybWFsOyI+aGVsbG88L3NwYW4+PC9kaXY+Jywgc2VsZWN0QWxsLCB7J21hYyc6IHRy
dWUsICd3aW5kb3dzJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOworCisgICAgdGVzdFF1ZXJ5
Q29tbWFuZFN0YXRlKCJzdWJzY3JpcHQiLCAnaGVsbG8nLCBzZWxlY3RBbGwsIHsnbWFjJzogZmFs
c2UsICd3aW5kb3dzJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNv
bW1hbmRTdGF0ZSgic3Vic2NyaXB0IiwgJzxzdXA+aGVsbG88L3N1cD4nLCBzZWxlY3RBbGwsIHsn
bWFjJzogZmFsc2UsICd3aW5kb3dzJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRl
c3RRdWVyeUNvbW1hbmRTdGF0ZSgic3Vic2NyaXB0IiwgJzxzdWI+aGVsbG88L3N1Yj4nLCBzZWxl
Y3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dpbmRvd3MnOiB0cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsK
KyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN1YnNjcmlwdCIsICc8c3ViPmhlbGxvPC9zdWI+
IHdvcmxkJywgc2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW5kb3dzJzogZmFsc2V9W2VkaXRp
bmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3Vic2NyaXB0IiwgJ2hl
bGxvIDxzdWI+d29ybGQ8L3N1Yj4nLCBzZWxlY3RBbGwsIHsnbWFjJzogZmFsc2UsICd3aW5kb3dz
JzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgi
c3Vic2NyaXB0IiwgJ2hlbGxvIDxzcGFuIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogc3ViOyI+d29y
bGQ8L3NwYW4+IFdlYktpdCcsIHNlbGVjdFNlY29uZFdvcmQsIHsnbWFjJzogdHJ1ZSwgJ3dpbmRv
d3MnOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3Rh
dGUoInN1cGVyc2NyaXB0IiwgJ2hlbGxvJywgc2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2lu
ZG93cyc6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3Rh
dGUoInN1cGVyc2NyaXB0IiwgJzxzdWI+aGVsbG88L3N1Yj4nLCBzZWxlY3RBbGwsIHsnbWFjJzog
ZmFsc2UsICd3aW5kb3dzJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVy
eUNvbW1hbmRTdGF0ZSgic3VwZXJzY3JpcHQiLCAnPHN1cD5oZWxsbzwvc3VwPicsIHNlbGVjdEFs
bCwgeydtYWMnOiB0cnVlLCAnd2luZG93cyc6IHRydWV9W2VkaXRpbmdCZWhhdmlvcl0pOworICAg
IHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3VwZXJzY3JpcHQiLCAnPHN1cD5oZWxsbzwvc3VwPiB3
b3JsZCcsIHNlbGVjdEFsbCwgeydtYWMnOiB0cnVlLCAnd2luZG93cyc6IGZhbHNlfVtlZGl0aW5n
QmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN1cGVyc2NyaXB0IiwgJ2hl
bGxvIDxzdXA+d29ybGQ8L3N1cD4nLCBzZWxlY3RBbGwsIHsnbWFjJzogZmFsc2UsICd3aW5kb3dz
JzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgi
c3VwZXJzY3JpcHQiLCAnPHNwYW4gc3R5bGU9InZlcnRpY2FsLWFsaWduOiBzdXBlcjsiPmhlbGxv
PC9zcGFuPjxzcGFuIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogc3ViOyI+d29ybGQ8L3NwYW4+Jywg
c2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW5kb3dzJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlv
cl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3VwZXJzY3JpcHQiLCAnaGVsbG88c3Bh
biBzdHlsZT0idmVydGljYWwtYWxpZ246IHN1cGVyOyI+d29ybGQ8L3NwYW4+Jywgc2VsZWN0QWxs
LCB7J21hYyc6IGZhbHNlLCAnd2luZG93cyc6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKwor
ICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgidW5kZXJsaW5lIiwgJ2hlbGxvJywgc2VsZWN0QWxs
LCB7J21hYyc6IGZhbHNlLCAnd2luZG93cyc6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAg
ICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInVuZGVybGluZSIsICc8cz5oZWxsbzwvcz4nLCBzZWxl
Y3RBbGwsIHsnbWFjJzogZmFsc2UsICd3aW5kb3dzJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0p
OworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgidW5kZXJsaW5lIiwgJzx1PmhlbGxvPC91Pics
IHNlbGVjdEFsbCwgeydtYWMnOiB0cnVlLCAnd2luZG93cyc6IHRydWV9W2VkaXRpbmdCZWhhdmlv
cl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgidW5kZXJsaW5lIiwgJzx1PmhlbGxvPC91
PiB3b3JsZCcsIHNlbGVjdEFsbCwgeydtYWMnOiB0cnVlLCAnd2luZG93cyc6IGZhbHNlfVtlZGl0
aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInVuZGVybGluZSIsICdo
ZWxsbyA8dT53b3JsZDwvdT4nLCBzZWxlY3RBbGwsIHsnbWFjJzogZmFsc2UsICd3aW5kb3dzJzog
ZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgidW5k
ZXJsaW5lIiwgJzx1PjxkaXY+aGVsbG8gd29ybGQ8L2Rpdj48L3U+Jywgc2VsZWN0QWxsLCB7J21h
Yyc6IHRydWUsICd3aW5kb3dzJzogdHJ1ZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1
ZXJ5Q29tbWFuZFN0YXRlKCJ1bmRlcmxpbmUiLCAnPHU+PHM+PGRpdj5oZWxsbyB3b3JsZCBXZWJL
aXQ8L2Rpdj48L3M+PC91PicsIHNlbGVjdFNlY29uZFdvcmQsIHsnbWFjJzogdHJ1ZSwgJ3dpbmRv
d3MnOiB0cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUo
InVuZGVybGluZSIsICc8cz48dT5oZWxsbzwvdT4gd29ybGQ8L3M+IFdlYktpdCcsIHNlbGVjdFNl
Y29uZFdvcmQsIHsnbWFjJzogZmFsc2UsICd3aW5kb3dzJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlv
cl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgidW5kZXJsaW5lIiwgJzx1PjxzPmhlbGxv
PC9zPiB3b3JsZDwvdT4gV2ViS2l0Jywgc2VsZWN0U2Vjb25kV29yZCwgeydtYWMnOiB0cnVlLCAn
d2luZG93cyc6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5k
U3RhdGUoInVuZGVybGluZSIsICc8cz5oZWxsbyA8dT53b3JsZDwvcz4gV2ViS2l0PC91PicsIHNl
bGVjdFNlY29uZFdvcmQsIHsnbWFjJzogdHJ1ZSwgJ3dpbmRvd3MnOiB0cnVlfVtlZGl0aW5nQmVo
YXZpb3JdKTsKKworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3RyaWtlVGhyb3VnaCIsICdo
ZWxsbycsIHNlbGVjdEFsbCwgeydtYWMnOiBmYWxzZSwgJ3dpbmRvd3MnOiBmYWxzZX1bZWRpdGlu
Z0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdHJpa2VUaHJvdWdoIiwg
Jzx1PmhlbGxvPC91PicsIHNlbGVjdEFsbCwgeydtYWMnOiBmYWxzZSwgJ3dpbmRvd3MnOiBmYWxz
ZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdHJpa2VU
aHJvdWdoIiwgJzxzPmhlbGxvPC9zPicsIHNlbGVjdEFsbCwgeydtYWMnOiB0cnVlLCAnd2luZG93
cyc6IHRydWV9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgi
c3RyaWtlVGhyb3VnaCIsICc8cz5oZWxsbzwvcz4gd29ybGQnLCBzZWxlY3RBbGwsIHsnbWFjJzog
dHJ1ZSwgJ3dpbmRvd3MnOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5
Q29tbWFuZFN0YXRlKCJzdHJpa2VUaHJvdWdoIiwgJ2hlbGxvIDxzPndvcmxkPC9zPicsIHNlbGVj
dEFsbCwgeydtYWMnOiBmYWxzZSwgJ3dpbmRvd3MnOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7
CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdHJpa2VUaHJvdWdoIiwgJzxzPjxkaXY+aGVs
bG8gd29ybGQ8L2Rpdj48L3M+Jywgc2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW5kb3dzJzog
dHJ1ZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdHJp
a2VUaHJvdWdoIiwgJzxzPjx1PjxkaXY+aGVsbG8gd29ybGQgV2ViS2l0PC9kaXY+PC91Pjwvcz4n
LCBzZWxlY3RTZWNvbmRXb3JkLCB7J21hYyc6IHRydWUsICd3aW5kb3dzJzogdHJ1ZX1bZWRpdGlu
Z0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdHJpa2VUaHJvdWdoIiwg
Jzx1PjxzPmhlbGxvPC9zPiB3b3JsZDwvdT4gV2ViS2l0Jywgc2VsZWN0U2Vjb25kV29yZCwgeydt
YWMnOiBmYWxzZSwgJ3dpbmRvd3MnOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVz
dFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdHJpa2VUaHJvdWdoIiwgJ2hlbGxvIDxzPndvcmxkIFdlYktp
dDwvcz4nLCBzZWxlY3RTZWNvbmRXb3JkLCB7J21hYyc6IHRydWUsICd3aW5kb3dzJzogdHJ1ZX1b
ZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdHJpa2VUaHJv
dWdoIiwgJ2hlbGxvIDxzPndvcmxkIFdlYktpdDwvcz4nLCBzZWxlY3RGaXJzdFR3b1dvcmRzLCB7
J21hYyc6IGZhbHNlLCAnd2luZG93cyc6IHRydWV9W2VkaXRpbmdCZWhhdmlvcl0pOwogfQogCi1y
dW5UZXN0cygnd2luJyk7CitydW5UZXN0cygnd2luZG93cycpOwogZGVidWcoJycpCiBydW5UZXN0
cygnbWFjJyk7CiAKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvcXVlcnkt
dGV4dC1hbGlnbm1lbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Vk
aXRpbmcvZXhlY0NvbW1hbmQvcXVlcnktdGV4dC1hbGlnbm1lbnQtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3F1ZXJ5LXRl
eHQtYWxpZ25tZW50LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBA
QCBQQVNTIHF1ZXJ5Q29tbWFuZCgnZm9ybWF0JykgcmV0dXJucyAiY2VuCiBQQVNTIHF1ZXJ5Q29t
bWFuZCgnZm9ybWF0JykgcmV0dXJucyAibGVmdCIgd2hlbiBzZWxlY3RpbmcgZmlyc3QgcG9zaXRp
b24gb2YgIjxkaXYgYWxpZ249ImxlZnQiPmhlbGxvPC9kaXY+IgogUEFTUyBxdWVyeUNvbW1hbmQo
J2Zvcm1hdCcpIHJldHVybnMgInJpZ2h0IiB3aGVuIHNlbGVjdGluZyBmaXJzdCBwb3NpdGlvbiBv
ZiAiPGRpdiBhbGlnbj0icmlnaHQiPmhlbGxvPC9kaXY+IgogCi1UZXN0cyBmb3Igd2luCitUZXN0
cyBmb3Igd2luZG93cwogUEFTUyBxdWVyeUNvbW1hbmQoJ2Zvcm1hdCcpIHJldHVybnMgImxlZnQi
IHdoZW4gc2VsZWN0aW5nIG1pZGRsZSBvZiAiPHA+aGVsbG88L3A+PHA+d29ybGQ8L3A+IgogUEFT
UyBxdWVyeUNvbW1hbmQoJ2Zvcm1hdCcpIHJldHVybnMgIiIgd2hlbiBzZWxlY3RpbmcgbWlkZGxl
IG9mICI8cCBhbGlnbj0icmlnaHQiPmhlbGxvPC9wPjxwPndvcmxkPC9wPiIKIFBBU1MgcXVlcnlD
b21tYW5kKCdmb3JtYXQnKSByZXR1cm5zICJsZWZ0IiB3aGVuIHNlbGVjdGluZyBtaWRkbGUgb2Yg
IjxwPmhlbGxvPC9wPjxwIGFsaWduPSJsZWZ0Ij53b3JsZDwvcD4iCkluZGV4OiBMYXlvdXRUZXN0
cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3F1ZXJ5LXRleHQtYWxpZ25tZW50Lmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9xdWVyeS10ZXh0LWFsaWdubWVu
dC5odG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21t
YW5kL3F1ZXJ5LXRleHQtYWxpZ25tZW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTk2LDIxICs5
NiwyMSBAQCBmdW5jdGlvbiBydW5SYW5nZVRlc3RzKGVkaXRpbmdCZWhhdmlvcikKICAgICBkZWJ1
ZygnVGVzdHMgZm9yICcgKyBlZGl0aW5nQmVoYXZpb3IpOwogCiAgICAgcXVlcnlUZXh0QWxpZ25t
ZW50KHNlbGVjdE1pZGRsZU9mSGVsbG9Xb3JsZCwgJzxwPmhlbGxvPC9wPjxwPndvcmxkPC9wPics
ICdsZWZ0Jyk7Ci0gICAgcXVlcnlUZXh0QWxpZ25tZW50KHNlbGVjdE1pZGRsZU9mSGVsbG9Xb3Js
ZCwgJzxwIGFsaWduPSJyaWdodCI+aGVsbG88L3A+PHA+d29ybGQ8L3A+JywgeydtYWMnOiAncmln
aHQnLCAnd2luJzogJyd9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHF1ZXJ5VGV4dEFsaWdubWVu
dChzZWxlY3RNaWRkbGVPZkhlbGxvV29ybGQsICc8cCBhbGlnbj0icmlnaHQiPmhlbGxvPC9wPjxw
PndvcmxkPC9wPicsIHsnbWFjJzogJ3JpZ2h0JywgJ3dpbmRvd3MnOiAnJ31bZWRpdGluZ0JlaGF2
aW9yXSk7CiAgICAgcXVlcnlUZXh0QWxpZ25tZW50KHNlbGVjdE1pZGRsZU9mSGVsbG9Xb3JsZCwg
JzxwPmhlbGxvPC9wPjxwIGFsaWduPSJsZWZ0Ij53b3JsZDwvcD4nLCAnbGVmdCcpOwotICAgIHF1
ZXJ5VGV4dEFsaWdubWVudChzZWxlY3RNaWRkbGVPZkhlbGxvV29ybGQsICc8cCBhbGlnbj0ibGVm
dCI+aGVsbG88L3A+PHAgYWxpZ249InJpZ2h0Ij53b3JsZDwvcD4nLCB7J21hYyc6ICdsZWZ0Jywg
J3dpbic6ICcnfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICBxdWVyeVRleHRBbGlnbm1lbnQoc2Vs
ZWN0TWlkZGxlT2ZIZWxsb1dvcmxkLCAnPHAgYWxpZ249ImxlZnQiPmhlbGxvPC9wPjxwIGFsaWdu
PSJyaWdodCI+d29ybGQ8L3A+JywgeydtYWMnOiAnbGVmdCcsICd3aW5kb3dzJzogJyd9W2VkaXRp
bmdCZWhhdmlvcl0pOwogICAgIHF1ZXJ5VGV4dEFsaWdubWVudChzZWxlY3RNaWRkbGVPZkhlbGxv
V29ybGQsICc8cCBhbGlnbj0iY2VudGVyIj5oZWxsbzwvcD48cCBhbGlnbj0iY2VudGVyIj53b3Js
ZDwvcD4nLCAnY2VudGVyJyk7CiAgICAgcXVlcnlUZXh0QWxpZ25tZW50KHNlbGVjdE1pZGRsZU9m
SGVsbG9Xb3JsZCwgJzxwIGFsaWduPSJqdXN0aWZ5Ij5oZWxsbzwvcD48cCBhbGlnbj0ianVzdGlm
eSI+d29ybGQ8L3A+JywgJ2Z1bGwnKTsKICAgICBxdWVyeVRleHRBbGlnbm1lbnQoc2VsZWN0TWlk
ZGxlT2ZIZWxsb1dvcmxkLCAnPHAgYWxpZ249ImxlZnQiPmhlbGxvPC9wPjxwIGFsaWduPSJsZWZ0
Ij53b3JsZDwvcD4nLCAnbGVmdCcpOwogICAgIHF1ZXJ5VGV4dEFsaWdubWVudChzZWxlY3RNaWRk
bGVPZkhlbGxvV29ybGQsICc8cCBhbGlnbj0icmlnaHQiPmhlbGxvPC9wPjxwIGFsaWduPSJyaWdo
dCI+d29ybGQ8L3A+JywgJ3JpZ2h0Jyk7Ci0gICAgcXVlcnlUZXh0QWxpZ25tZW50KHNlbGVjdE1p
ZGRsZU9mSGVsbG9Xb3JsZCwgJzxkaXYgYWxpZ249InJpZ2h0Ij5oZWxsbzxwIGFsaWduPSJsZWZ0
Ij53b3JsZDwvcD48L2Rpdj4nLCB7J21hYyc6ICdyaWdodCcsICd3aW4nOiAnJ31bZWRpdGluZ0Jl
aGF2aW9yXSk7Ci0gICAgcXVlcnlUZXh0QWxpZ25tZW50KHNlbGVjdE1pZGRsZU9mSGVsbG9Xb3Js
ZCwgJzxkaXYgYWxpZ249ImxlZnQiPjxwIGFsaWduPSJjZW50ZXIiPndvcmxkPC9wPmhlbGxvPC9k
aXY+JywgeydtYWMnOiAnY2VudGVyJywgJ3dpbic6ICcnfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAg
ICBxdWVyeVRleHRBbGlnbm1lbnQoc2VsZWN0TWlkZGxlT2ZIZWxsb1dvcmxkLCAnPHAgYWxpZ249
ImxlZnQiPmhlbGxvPC9wPjxwPnc8L3A+PHAgYWxpZ249ImxlZnQiPm9ybGQ8L3A+JywgeydtYWMn
OiAnbGVmdCcsICd3aW4nOiAnbGVmdCd9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHF1ZXJ5VGV4
dEFsaWdubWVudChzZWxlY3RNaWRkbGVPZkhlbGxvV29ybGQsICc8cCBhbGlnbj0ianVzdGlmeSI+
aGVsbG88L3A+PHA+dzwvcD48cCBhbGlnbj0iY2VudGVyIj5vcmxkPC9wPicsIHsnbWFjJzogJ2Z1
bGwnLCAnd2luJzogJyd9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHF1ZXJ5VGV4dEFsaWdubWVu
dChzZWxlY3RNaWRkbGVPZkhlbGxvV29ybGQsICc8ZGl2IGFsaWduPSJyaWdodCI+aGVsbG88cCBh
bGlnbj0ibGVmdCI+d29ybGQ8L3A+PC9kaXY+JywgeydtYWMnOiAncmlnaHQnLCAnd2luZG93cyc6
ICcnfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICBxdWVyeVRleHRBbGlnbm1lbnQoc2VsZWN0TWlk
ZGxlT2ZIZWxsb1dvcmxkLCAnPGRpdiBhbGlnbj0ibGVmdCI+PHAgYWxpZ249ImNlbnRlciI+d29y
bGQ8L3A+aGVsbG88L2Rpdj4nLCB7J21hYyc6ICdjZW50ZXInLCAnd2luZG93cyc6ICcnfVtlZGl0
aW5nQmVoYXZpb3JdKTsKKyAgICBxdWVyeVRleHRBbGlnbm1lbnQoc2VsZWN0TWlkZGxlT2ZIZWxs
b1dvcmxkLCAnPHAgYWxpZ249ImxlZnQiPmhlbGxvPC9wPjxwPnc8L3A+PHAgYWxpZ249ImxlZnQi
Pm9ybGQ8L3A+JywgeydtYWMnOiAnbGVmdCcsICd3aW5kb3dzJzogJ2xlZnQnfVtlZGl0aW5nQmVo
YXZpb3JdKTsKKyAgICBxdWVyeVRleHRBbGlnbm1lbnQoc2VsZWN0TWlkZGxlT2ZIZWxsb1dvcmxk
LCAnPHAgYWxpZ249Imp1c3RpZnkiPmhlbGxvPC9wPjxwPnc8L3A+PHAgYWxpZ249ImNlbnRlciI+
b3JsZDwvcD4nLCB7J21hYyc6ICdmdWxsJywgJ3dpbmRvd3MnOiAnJ31bZWRpdGluZ0JlaGF2aW9y
XSk7CiB9CiAKIGRlYnVnKCcnKTsKLXJ1blJhbmdlVGVzdHMoJ3dpbicpOworcnVuUmFuZ2VUZXN0
cygnd2luZG93cycpOwogZGVidWcoJycpOwogcnVuUmFuZ2VUZXN0cygnbWFjJyk7CiAKSW5kZXg6
IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvcmVtb3ZlLWZvcm1hdC1tdWx0aXBsZS1l
bGVtZW50cy13aW4uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWND
b21tYW5kL3JlbW92ZS1mb3JtYXQtbXVsdGlwbGUtZWxlbWVudHMtd2luLmh0bWwJKHJldmlzaW9u
IDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvcmVtb3ZlLWZvcm1h
dC1tdWx0aXBsZS1lbGVtZW50cy13aW4uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTMsNyArMTMs
NyBAQCB2YXIgdGVzdENvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lCiB0ZXN0Q29udGFp
bmVyLmNvbnRlbnRFZGl0YWJsZSA9IHRydWU7CiBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRl
c3RDb250YWluZXIpOwogaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldHRp
bmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luJyk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dEVkaXRpbmdCZWhhdmlvcignd2luZG93cycpOwogCiBmdW5jdGlvbiB0ZXN0UmVtb3ZlRm9ybWF0
KGluaXRpYWxDb250ZW50cywgc2VsZWN0b3IsIGV4cGVjdGVkKQogewpJbmRleDogTGF5b3V0VGVz
dHMvZWRpdGluZy9leGVjQ29tbWFuZC90b2dnbGUtY29tcG91bmQtc3R5bGVzLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3RvZ2dsZS1j
b21wb3VuZC1zdHlsZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRU
ZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3RvZ2dsZS1jb21wb3VuZC1zdHlsZXMtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xNyw3ICsxNyw3IEBAIFBBU1Mgb25lIGl0YWxpYyBjb21t
YW5kIGNvbnZlcnRlZCAiPHNwYW4KIFBBU1Mgb25lIGl0YWxpYyBjb21tYW5kIGNvbnZlcnRlZCAi
PHA+PGk+aGVsbG88L2k+PHNwYW4gc3R5bGU9J2ZvbnQtc3R5bGU6aXRhbGljOyc+d29ybGQ8L3Nw
YW4+PC9wPiIgdG8gIjxwPmhlbGxvd29ybGQ8L3A+CiBQQVNTIG9uZSBpdGFsaWMgY29tbWFuZCBj
b252ZXJ0ZWQgIjxzPjxiPmhlbGxvPGk+IHdvcmxkPC9pPjwvYj48L3M+IiB0byAiPHM+PGI+PGk+
aGVsbG8gd29ybGQ8L2k+PC9iPjwvcz4KIAotUGxhdGZvcm06IHdpbgorUGxhdGZvcm06IHdpbmRv
d3MKIFBBU1Mgb25lIGJvbGQgY29tbWFuZCBjb252ZXJ0ZWQgIjx1PjxiPmhlbGxvPC9iPiB3b3Js
ZDwvdT4iIHRvICI8dT48Yj5oZWxsbyB3b3JsZDwvYj48L3U+CiBQQVNTIG9uZSBib2xkIGNvbW1h
bmQgY29udmVydGVkICI8Yj5oZWxsbyA8L2I+d29ybGQiIHRvICI8Yj5oZWxsbyB3b3JsZDwvYj4K
IFBBU1Mgb25lIGJvbGQgY29tbWFuZCBjb252ZXJ0ZWQgIjx1PjxiPmhlbGxvIDwvYj48L3U+d29y
bGQiIHRvICI8Yj48dT5oZWxsbyA8L3U+d29ybGQ8L2I+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0
aW5nL2V4ZWNDb21tYW5kL3RvZ2dsZS1jb21wb3VuZC1zdHlsZXMuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3RvZ2dsZS1jb21wb3VuZC1zdHlsZXMu
aHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFu
ZC90b2dnbGUtY29tcG91bmQtc3R5bGVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1
LDcgQEAgZnVuY3Rpb24gdGVzdFNpbmdsZVRvZ2dsZSh0b2dnbGVDb21tYW5kLAogICAgICAgICB0
ZXN0RmFpbGVkKGFjdGlvbiArICciLCBleHBlY3RlZCAiJyArIGV4cGVjdGVkQ29udGVudHMgKyAn
IicpOwogfQogCi1wbGF0Zm9ybXMgPSBbJ21hYycsICd3aW4nLCAndW5peCddOworcGxhdGZvcm1z
ID0gWydtYWMnLCAnd2luZG93cycsICd1bml4J107CiAKIGZvciAodmFyIGkgPSAwOyBpIDwgcGxh
dGZvcm1zLmxlbmd0aDsgaSsrKSB7CiAgICAgcGxhdGZvcm0gPSBwbGF0Zm9ybXNbaV07CkluZGV4
OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3RvZ2dsZS1saW5rLXdpbi5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvdG9nZ2xlLWxpbmst
d2luLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0Nv
bW1hbmQvdG9nZ2xlLWxpbmstd2luLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEzLDcgKzEzLDcg
QEAgdmFyIHRlc3RDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZQogdGVzdENvbnRhaW5l
ci5jb250ZW50RWRpdGFibGUgPSB0cnVlOwogZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZXN0
Q29udGFpbmVyKTsKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXR0aW5n
cy5zZXRFZGl0aW5nQmVoYXZpb3IoIndpbiIpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRF
ZGl0aW5nQmVoYXZpb3IoIndpbmRvd3MiKTsKIAogZnVuY3Rpb24gdGVzdFNpbmdsZVRvZ2dsZSh0
b2dnbGVDb21tYW5kLCBpbml0aWFsQ29udGVudHMsIHNlbGVjdG9yLCBleHBlY3RlZENvbnRlbnRz
KQogewpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC90b2dnbGUtdW5saW5r
LXdpbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQv
dG9nZ2xlLXVubGluay13aW4uaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMv
ZWRpdGluZy9leGVjQ29tbWFuZC90b2dnbGUtdW5saW5rLXdpbi5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC01MSw3ICs1MSw3IEBAIGZ1bmN0aW9uIHNlbGVjdExhc3RXb3JkKGNvbnRhaW5lcikgewog
fQogCiBpZiAod2luZG93LmludGVybmFscykKLSAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0
aW5nQmVoYXZpb3IoJ3dpbicpOworICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhh
dmlvcignd2luZG93cycpOwogCiB0ZXN0U2luZ2xlVG9nZ2xlKCJ1bmxpbmsiLCAnaGVsbG8gPGI+
d29ybGQ8L2I+Jywgc2VsZWN0QWxsLCAnaGVsbG8gPGI+d29ybGQ8L2I+Jyk7CiB0ZXN0U2luZ2xl
VG9nZ2xlKCJ1bmxpbmsiLCAnPGEgaHJlZj0iaHR0cDovL3dlYmtpdC5vcmcvIj48dT5oZWxsbyB3
b3JsZDwvdT48L2E+Jywgc2VsZWN0QWxsLCAnPHU+aGVsbG8gd29ybGQ8L3U+Jyk7CkluZGV4OiBM
YXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi81MTk1MTY2LTEuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi81MTk1MTY2LTEuaHRtbAkocmV2aXNpb24g
MjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vNTE5NTE2Ni0xLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAgZnVuY3Rpb24gcnVuVGVzdChwbGF0Zm9y
bSwgZXhwZWN0ZWRUZXh0KQogaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5h
bHMpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKQogICAgIHJ1blRlc3QoJ21hYycsICdz
aG91bGQgYmUgcycpOwotICAgIHJ1blRlc3QoJ3dpbicsICdob3VsZCBiZSAnKTsKKyAgICBydW5U
ZXN0KCd3aW5kb3dzJywgJ2hvdWxkIGJlICcpOwogfSBlbHNlIHsKICAgICBsb2coIkZhaWx1cmU6
IFRvIHRlc3QgbWFudWFsbHksIHNlbGVjdCB0aGUgZ3JlZW4gdGV4dCAiICsKICAgICAgICAgInN0
YXJ0aW5nIGF0IHRoZSBlbmQgdmlhIGRvdWJsZS1jbGljayAoaS5lLiB3b3JkIGdyYW51bGFyaXR5
KSwgdGhlbiBzaGlmdCtyaWdodC1hcnJvdy4gIiArCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi81MzU0NDU1LTEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi81MzU0NDU1LTEuaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vNTM1NDQ1NS0xLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTI2LDcgKzI2LDcgQEAgaWYgKHdpbmRvdy5ldmVudFNlbmRlciAmJiB3aW5kb3cudGVzdFJ1bgog
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiAgICAgdGVzdCgnbWFjJywgJ3Jlc3VsdG1h
YycpOwotICAgIHRlc3QoJ3dpbicsICdyZXN1bHR3aW4nKTsKKyAgICB0ZXN0KCd3aW5kb3dzJywg
J3Jlc3VsdHdpbicpOwogICAgIHRlc3QoJ3VuaXgnLCAncmVzdWx0dW5peCcpOwogfQogPC9zY3Jp
cHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9jbGljay1pbi1tYXJnaW5z
LWluc2lkZS1lZGl0YWJsZS1kaXYuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9jbGljay1pbi1tYXJnaW5zLWluc2lkZS1lZGl0YWJsZS1kaXYuaHRtbAko
cmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY2xpY2st
aW4tbWFyZ2lucy1pbnNpZGUtZWRpdGFibGUtZGl2Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEw
NCw3ICsxMDQsNyBAQCBmdW5jdGlvbiBlZGl0aW5nVGVzdChlZGl0aW5nQmVoYXZpb3IpCiB9CiAK
IGVkaXRpbmdUZXN0KCJtYWMiKTsKLWVkaXRpbmdUZXN0KCJ3aW4iKTsKK2VkaXRpbmdUZXN0KCJ3
aW5kb3dzIik7CiAKIC8vIENsZWFuIHVwIGFmdGVyIG91cnNlbHZlcyBpZiB3ZSdyZSBub3QgYmVp
bmcgcnVuIGluIHRoZSBicm93c2VyCiBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CkluZGV4OiBM
YXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9jbGljay1pbi1wYWRkaW5nLXdpdGgtbXVsdGlw
bGUtbGluZS1ib3hlcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2Vs
ZWN0aW9uL2NsaWNrLWluLXBhZGRpbmctd2l0aC1tdWx0aXBsZS1saW5lLWJveGVzLmh0bWwJKHJl
dmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2NsaWNrLWlu
LXBhZGRpbmctd2l0aC1tdWx0aXBsZS1saW5lLWJveGVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTc4LDcgKzc4LDcgQEAgZnVuY3Rpb24gZWRpdGluZ1Rlc3QoZWRpdGluZ0JlaGF2aW9yKQogfQog
CiBlZGl0aW5nVGVzdCgibWFjIik7Ci1lZGl0aW5nVGVzdCgid2luIik7CitlZGl0aW5nVGVzdCgi
d2luZG93cyIpOwogCiAvLyBDbGVhbiB1cCBhZnRlciBvdXJzZWx2ZXMgaWYgd2UncmUgbm90IGJl
aW5nIHJ1biBpbiB0aGUgYnJvd3NlcgogaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewpJbmRleDog
TGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY29udGV4dC1tZW51LXRleHQtc2VsZWN0aW9u
LWxvb2t1cC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
L2NvbnRleHQtbWVudS10ZXh0LXNlbGVjdGlvbi1sb29rdXAuaHRtbAkocmV2aXNpb24gMjY5ODMw
KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY29udGV4dC1tZW51LXRleHQtc2Vs
ZWN0aW9uLWxvb2t1cC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01MCw3ICs1MCw3IEBAIGZ1bmN0
aW9uIGxvYWQoKQogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiAgICAgdGVzdCgnbWFj
JywgdHJ1ZSwgJ05ldyBZb3JrJywgJ3Jlc3VsdG1hYycpOwotICAgIHRlc3QoJ3dpbicsIGZhbHNl
LCAnJywgJ3Jlc3VsdHdpbicpOworICAgIHRlc3QoJ3dpbmRvd3MnLCBmYWxzZSwgJycsICdyZXN1
bHR3aW4nKTsKICAgICB0ZXN0KCd1bml4JywgZmFsc2UsICcnLCAncmVzdWx0dW5peCcpOwogfQog
PC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9jb250ZXh0LW1l
bnUtdGV4dC1zZWxlY3Rpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi9jb250ZXh0LW1lbnUtdGV4dC1zZWxlY3Rpb24uaHRtbAkocmV2aXNpb24gMjY5
ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY29udGV4dC1tZW51LXRleHQt
c2VsZWN0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDcgKzQ2LDcgQEAgZnVuY3Rpb24g
bG9hZCgpCiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKICAgICB0ZXN0KCdtYWMnLCB0
cnVlLCAncmVzdWx0bWFjJyk7Ci0gICAgdGVzdCgnd2luJywgZmFsc2UsICdyZXN1bHR3aW4nKTsK
KyAgICB0ZXN0KCd3aW5kb3dzJywgZmFsc2UsICdyZXN1bHR3aW4nKTsKICAgICB0ZXN0KCd1bml4
JywgZmFsc2UsICdyZXN1bHR1bml4Jyk7CiB9CiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3Rz
L2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1hZnRlci1tb3VzZS1zZWxlY3Rpb24uaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtYWZ0ZXItbW91
c2Utc2VsZWN0aW9uLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRp
bmcvc2VsZWN0aW9uL2V4dGVuZC1hZnRlci1tb3VzZS1zZWxlY3Rpb24uaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtNzUsNyArNzUsNyBAQCBmdW5jdGlvbiBlZGl0aW5nVGVzdChlZGl0aW5nQmVoYXZp
b3IpIHsKIAogPHNjcmlwdD4KIGVkaXRpbmdUZXN0KCJtYWMiKTsKLWVkaXRpbmdUZXN0KCJ3aW4i
KTsKK2VkaXRpbmdUZXN0KCJ3aW5kb3dzIik7CiBlZGl0aW5nVGVzdCgidW5peCIpOwogPC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9u
LWFmdGVyLWRvdWJsZS1jbGljay5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRp
bmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24tYWZ0ZXItZG91YmxlLWNsaWNrLmh0bWwJKHJl
dmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1z
ZWxlY3Rpb24tYWZ0ZXItZG91YmxlLWNsaWNrLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcg
KzMxLDcgQEAKICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKICAgICAgICAgcnVu
VGVzdCgibWFjIiwgImEgcGFyYWdyYXBoIik7Ci0gICAgICAgIHJ1blRlc3QoIndpbiIsICJwYXJh
Z3JhIik7CisgICAgICAgIHJ1blRlc3QoIndpbmRvd3MiLCAicGFyYWdyYSIpOwogICAgIH0KIAog
ICAgIGZ1bmN0aW9uIHJ1blRlc3QoYmVoYXZpb3IsIGV4cGVjdGVkVGV4dCkKSW5kZXg6IExheW91
dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24tZW5jbG9zaW5nLWJsb2Nr
LXdpbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4
dGVuZC1zZWxlY3Rpb24tZW5jbG9zaW5nLWJsb2NrLXdpbi5odG1sCShyZXZpc2lvbiAyNjk4MzAp
CisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWVuY2xv
c2luZy1ibG9jay13aW4uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjMsNyArMjMsNyBAQCBmdW5j
dGlvbiBydW5TZWxlY3Rpb25UZXN0c1dpdGhHcmFudWxhcml0CiB9CiAKIGlmICh3aW5kb3cuaW50
ZXJuYWxzKQotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoIndpbiIp
OworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoIndpbmRvd3MiKTsK
IGxvZygiXG5cblxuRXh0ZW5kaW5nIGJ5IGNoYXJhY3RlclxuIik7CiBydW5TZWxlY3Rpb25UZXN0
c1dpdGhHcmFudWxhcml0eUZvckVuY2xvc2luZ0Jsb2NrKGNyZWF0ZUVuY2xvc2luZ0Jsb2NrTm9k
ZXMoKSwgImNoYXJhY3RlciIpOwogCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlv
bi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC0xLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWNyYXNo
LXRlc3QtMS5odG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3Nl
bGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC0xLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEyLDcgKzEyLDcgQEAgb25sb2FkID0gZnVuY3Rpb24oKSB7CiAKIGlmICh3aW5k
b3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7Ci0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2lu
Jyk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luZG93cycp
OwogfQogPC9zY3JpcHQ+CiA8dGV4dGFyZWE+PC90ZXh0YXJlYT4KSW5kZXg6IExheW91dFRlc3Rz
L2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0LTIuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdv
cmQtdmlzdWFsbHktY3Jhc2gtdGVzdC0yLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91
dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0
LTIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTIsNyArMTIsNyBAQCBvbmxvYWQgPSBmdW5jdGlv
bigpIHsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRp
dGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0Jl
aGF2aW9yKCd3aW5kb3dzJyk7CiB9CiA8L3NjcmlwdD4KIDx2a2Vybj48L3ZrZXJuPjxtYXJxdWVl
PjxkaXYgdGl0bGU9IjB8MCIgY2xhc3M9InRlc3RfbW92ZV9ieV93b3JkIj5hYmMgZGVmCkluZGV4
OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jh
c2gtdGVzdC0zLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWNyYXNoLXRlc3QtMy5odG1sCShyZXZpc2lvbiAyNjk4
MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFs
bHktY3Jhc2gtdGVzdC0zLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEyLDcgKzEyLDcgQEAgb25s
b2FkID0gZnVuY3Rpb24oKSB7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50
ZXJuYWxzKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luJyk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldEVkaXRpbmdCZWhhdmlvcignd2luZG93cycpOwogfQogPC9zY3JpcHQ+CiA8dmlkZW8+PC92
aWRlbz48bWV0ZXI+PGltYWdlIGNsYXNzPSJ0ZXN0X21vdmVfYnlfd29yZCIgdGl0bGU9IjB8MCI+
CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFs
bHktY3Jhc2gtdGVzdC00Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWNyYXNoLXRlc3QtNC5odG1sCShyZXZpc2lv
biAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQt
dmlzdWFsbHktY3Jhc2gtdGVzdC00Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEyLDcgKzEyLDcg
QEAgb25sb2FkID0gZnVuY3Rpb24oKSB7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5k
b3cuaW50ZXJuYWxzKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgaW50ZXJu
YWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luJyk7CisgICAgaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luZG93cycpOwogfQogPC9zY3JpcHQ+CiA+PGRp
diB0aXRsZT0iMHwwIiBjbGFzcz0idGVzdF9tb3ZlX2J5X3dvcmQiIGRpcj1sdHI+PGtleWdlbj48
YmFzZT4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12
aXN1YWxseS1jcmFzaC10ZXN0LTUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC01Lmh0bWwJKHJl
dmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnkt
d29yZC12aXN1YWxseS1jcmFzaC10ZXN0LTUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTEsNyAr
MTEsNyBAQCBvbmxvYWQgPSBmdW5jdGlvbigpIHsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyICYm
IHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICBp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiB9CiA8L3NjcmlwdD4K
IApJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3Vh
bGx5LWNyYXNoLXRlc3QtY3NzLWdlbmVyYXRlZC1jb250ZW50Lmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWNyYXNo
LXRlc3QtY3NzLWdlbmVyYXRlZC1jb250ZW50Lmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExh
eW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10
ZXN0LWNzcy1nZW5lcmF0ZWQtY29udGVudC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xOSw3ICsx
OSw3IEBAIG9ubG9hZCA9IGZ1bmN0aW9uKCkgewogCiBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYg
d2luZG93LmludGVybmFscykgewogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIGlu
dGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbicpOworICAgIGludGVybmFs
cy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbmRvd3MnKTsKIH0KIDwvc2NyaXB0Pgog
PGRpdiBjb250ZW50ZWRpdGFibGUgZGlyPWx0cj4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcv
c2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0LXRleHRhcmVhLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3Jk
LXZpc3VhbGx5LWNyYXNoLXRlc3QtdGV4dGFyZWEuaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysg
TGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWNyYXNo
LXRlc3QtdGV4dGFyZWEuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTgsNyArMTgsNyBAQCBvbmxv
YWQgPSBmdW5jdGlvbigpIHsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRl
cm5hbHMpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICBpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiB9CiA8L3NjcmlwdD4KIApJbmRleDogTGF5
b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWlubGluZS1i
bG9jay1wb3NpdGlvbmVkLWVsZW1lbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktaW5saW5lLWJsb2NrLXBvc2l0
aW9uZWQtZWxlbWVudC5odG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktaW5saW5lLWJsb2NrLXBvc2l0aW9u
ZWQtZWxlbWVudC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMiw3ICsxMiw3IEBAIG9ubG9hZCA9
IGZ1bmN0aW9uKCkgewogCiBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFs
cykgewogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIGludGVybmFscy5zZXR0aW5n
cy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbicpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRF
ZGl0aW5nQmVoYXZpb3IoJ3dpbmRvd3MnKTsKIH0KIDwvc2NyaXB0PgogCkluZGV4OiBMYXlvdXRU
ZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktbXVsdGktbGluZS5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnkt
d29yZC12aXN1YWxseS1tdWx0aS1saW5lLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91
dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1tdWx0aS1saW5l
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE5LDcgKzE5LDcgQEAgb25sb2FkID0gZnVuY3Rpb24o
KSB7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRp
bmdCZWhhdmlvcignd2luJyk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhh
dmlvcignd2luZG93cycpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CkluZGV4OiBMYXlvdXRUZXN0
cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktbXVsdGktc3BhY2UuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdv
cmQtdmlzdWFsbHktbXVsdGktc3BhY2UuaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LW11bHRpLXNwYWNl
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE5LDcgKzE5LDcgQEAgb25sb2FkID0gZnVuY3Rpb24o
KSB7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRp
bmdCZWhhdmlvcignd2luJyk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhh
dmlvcignd2luZG93cycpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CkluZGV4OiBMYXlvdXRUZXN0
cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktbnVsbC1ib3guaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQt
dmlzdWFsbHktbnVsbC1ib3guaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMv
ZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LW51bGwtYm94Lmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTE4LDcgKzE4LDcgQEAgb25sb2FkID0gZnVuY3Rpb24oKSB7CiAKIGlm
ICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7Ci0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlv
cignd2luJyk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2lu
ZG93cycpOwogfQogPC9zY3JpcHQ+CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KSW5kZXg6IExh
eW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1zaW5nbGUt
c3BhY2UtaW5saW5lLWVsZW1lbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktc2luZ2xlLXNwYWNlLWlubGluZS1l
bGVtZW50Lmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2Vs
ZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1zaW5nbGUtc3BhY2UtaW5saW5lLWVsZW1lbnQu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNyBAQCBvbmxvYWQgPSBmdW5jdGlvbigp
IHsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGlu
Z0JlaGF2aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2
aW9yKCd3aW5kb3dzJyk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KSW5kZXg6IExheW91dFRlc3Rz
L2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1zaW5nbGUtc3BhY2Utb25l
LWVsZW1lbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlv
bi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktc2luZ2xlLXNwYWNlLW9uZS1lbGVtZW50Lmh0bWwJKHJl
dmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnkt
d29yZC12aXN1YWxseS1zaW5nbGUtc3BhY2Utb25lLWVsZW1lbnQuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMTksNyArMTksNyBAQCBvbmxvYWQgPSBmdW5jdGlvbigpIHsKIAogaWYgKHdpbmRvdy50
ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW4nKTsK
KyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiB9
CiA8L3NjcmlwdD4KIDwvaGVhZD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
L21vdmUtYnktd29yZC12aXN1YWxseS10ZXh0YXJlYS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS10ZXh0YXJlYS5o
dG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9t
b3ZlLWJ5LXdvcmQtdmlzdWFsbHktdGV4dGFyZWEuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzYs
NyArMzYsNyBAQCBvbmxvYWQgPSBmdW5jdGlvbigpIHsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVy
ICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAg
ICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiB9CiA8L3Njcmlw
dD4KIApJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZp
c3VhbGx5LXdyb25nLWxlZnQtcmlnaHQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktd3JvbmctbGVmdC1yaWdodC5o
dG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9t
b3ZlLWJ5LXdvcmQtdmlzdWFsbHktd3JvbmctbGVmdC1yaWdodC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0yMiw3ICsyMiw3IEBAIG9ubG9hZCA9IGZ1bmN0aW9uKCkgewogCiBpZiAod2luZG93LnRl
c3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbicpOwor
ICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbmRvd3MnKTsKIH0K
IDwvc2NyaXB0PgogPHRpdGxlPndyb25nIHJlc3VsdCBiZWNhdXNlIFZpc2libGVQb3NpdGlvbi5s
ZWZ0KCkvcmlnaHQoKSByZXR1cm5zIHdyb25nIHJlc3VsdDwvdGl0bGU+CkluZGV4OiBMYXlvdXRU
ZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9wcm9ncmFtbWF0aWMtc2VsZWN0aW9uLW9uLW1hYy1pcy1k
aXJlY3Rpb25sZXNzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9wcm9ncmFtbWF0aWMtc2VsZWN0aW9uLW9uLW1hYy1pcy1kaXJlY3Rpb25s
ZXNzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zZWxlY3Rpb24vcHJvZ3JhbW1hdGljLXNlbGVjdGlvbi1vbi1tYWMtaXMtZGlyZWN0aW9ubGVz
cy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEwMCw3ICsxMDAsNyBAQCBQQVNTIHJp
Z2h0IGJ5IGxpbmUgaW4gdGV4dC1pbnB1dCwgYWZ0ZXIgCiBQQVNTIHJpZ2h0IGJ5IGxpbmUgaW4g
dGV4dC1pbnB1dCwgYWZ0ZXIgdW5kb2luZyBjdXQKIFBBU1MgcmlnaHQgYnkgbGluZSBpbiB0ZXh0
LWlucHV0LCBhZnRlciB1bmRvaW5nIGJvbGQKIFBBU1MgcmlnaHQgYnkgbGluZSBpbiB0ZXh0LWlu
cHV0LCBhZnRlciB1bmRvaW5nIGluc2VydFRleHQKLXdpbjoKK3dpbmRvd3M6CiBQQVNTIGxlZnQg
YnkgY2hhcmFjdGVyIGluIHJlZ3VsYXItZGl2CiBQQVNTIGxlZnQgYnkgY2hhcmFjdGVyIGluIHJl
Z3VsYXItZGl2LCBhZnRlciB1bmRvaW5nIGRlbGV0ZQogUEFTUyBsZWZ0IGJ5IGNoYXJhY3RlciBp
biByZWd1bGFyLWRpdiwgYWZ0ZXIgdW5kb2luZyBmb3J3YXJkRGVsZXRlCkluZGV4OiBMYXlvdXRU
ZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9wcm9ncmFtbWF0aWMtc2VsZWN0aW9uLW9uLW1hYy1pcy1k
aXJlY3Rpb25sZXNzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxl
Y3Rpb24vcHJvZ3JhbW1hdGljLXNlbGVjdGlvbi1vbi1tYWMtaXMtZGlyZWN0aW9ubGVzcy5odG1s
CShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9wcm9n
cmFtbWF0aWMtc2VsZWN0aW9uLW9uLW1hYy1pcy1kaXJlY3Rpb25sZXNzLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEzNiw3ICsxMzYsNyBAQCBmdW5jdGlvbiBydW5UZXN0c0ZvcihwbGF0Zm9ybSkg
ewogCiBpZiAod2luZG93LmludGVybmFscykgewogICAgIHJ1blRlc3RzRm9yKCdtYWMnKTsKLSAg
ICBydW5UZXN0c0Zvcignd2luJyk7CisgICAgcnVuVGVzdHNGb3IoJ3dpbmRvd3MnKTsKICAgICBy
dW5UZXN0c0ZvcigndW5peCcpOwogCiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Qn
KS5pbm5lckhUTUwgPSAnJzsKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3J0
bC1tb3ZlLXNlbGVjdGlvbi1yaWdodC1sZWZ0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZWRpdGluZy9zZWxlY3Rpb24vcnRsLW1vdmUtc2VsZWN0aW9uLXJpZ2h0LWxlZnQuaHRtbAko
cmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vcnRsLW1v
dmUtc2VsZWN0aW9uLXJpZ2h0LWxlZnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNzMsNyArNzMs
NyBAQCBmdW5jdGlvbiBydW5UZXN0cygpCiAgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRF
ZGl0aW5nQmVoYXZpb3IoIm1hYyIpOwogICAgICAgICB0ZXN0U2VsZWN0aW9uQ2hhbmdlKGRyYWdT
ZWxlY3Rpb24sICJleHRlbmQiLCAicmlnaHQiLCAwLCAwLCAiRXh0ZW5kIGRyYWdnZWQgc2VsZWN0
aW9uIHJpZ2h0IChNYWMpIik7CiAgICAgICAgIHRlc3RTZWxlY3Rpb25DaGFuZ2UoZHJhZ1NlbGVj
dGlvbiwgImV4dGVuZCIsICJsZWZ0IiwgMCwgMCwgIkV4dGVuZCBkcmFnZ2VkIHNlbGVjdGlvbiBs
ZWZ0IChNYWMpIik7Ci0gICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZp
b3IoIndpbiIpOworICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9y
KCJ3aW5kb3dzIik7CiAgICAgICAgIHRlc3RTZWxlY3Rpb25DaGFuZ2UoZHJhZ1NlbGVjdGlvbiwg
ImV4dGVuZCIsICJyaWdodCIsIDAsIDAsICJFeHRlbmQgZHJhZ2dlZCBzZWxlY3Rpb24gcmlnaHQg
KFdpbikiKTsKICAgICAgICAgdGVzdFNlbGVjdGlvbkNoYW5nZShkcmFnU2VsZWN0aW9uLCAiZXh0
ZW5kIiwgImxlZnQiLCAxLCAwLCAiRXh0ZW5kIGRyYWdnZWQgc2VsZWN0aW9uIGxlZnQgKFdpbiki
KTsKICAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcigidW5peCIp
OwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWV4dGVuZC1z
aG91bGQtbm90LW1vdmUtYWNyb3NzLWNhcmV0LW9uLW1hYy1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWV4dGVuZC1zaG91
bGQtbm90LW1vdmUtYWNyb3NzLWNhcmV0LW9uLW1hYy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI2
OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1leHRlbmQt
c2hvdWxkLW5vdC1tb3ZlLWFjcm9zcy1jYXJldC1vbi1tYWMtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC03LDcgKzcsNyBAQCBFeHRlbmQgYmFja3dhcmQgYW5kIHRoZW4gZm9yd2FyZCBi
eSBsaW5lCiBFeHRlbmQgZm9yd2FyZCBhbmQgdGhlbiBiYWNrd2FyZCBieSBsaW5lOiBQQVNTCiBF
eHRlbmQgYmFja3dhcmQgYW5kIHRoZW4gZm9yd2FyZCBieSBwYXJhZ3JhcGg6IFBBU1MKIEV4dGVu
ZCBmb3J3YXJkIGFuZCB0aGVuIGJhY2t3YXJkIGJ5IHBhcmFncmFwaDogUEFTUwotd2luOgord2lu
ZG93czoKIEV4dGVuZCBiYWNrd2FyZCBhbmQgdGhlbiBmb3J3YXJkIGJ5IHdvcmQ6IFBBU1MKIEV4
dGVuZCBmb3J3YXJkIGFuZCB0aGVuIGJhY2t3YXJkIGJ5IHdvcmQ6IFBBU1MKIEV4dGVuZCBiYWNr
d2FyZCBhbmQgdGhlbiBmb3J3YXJkIGJ5IGxpbmU6IFBBU1MKSW5kZXg6IExheW91dFRlc3RzL2Vk
aXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1leHRlbmQtc2hvdWxkLW5vdC1tb3ZlLWFjcm9zcy1j
YXJldC1vbi1tYWMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVj
dGlvbi9zZWxlY3Rpb24tZXh0ZW5kLXNob3VsZC1ub3QtbW92ZS1hY3Jvc3MtY2FyZXQtb24tbWFj
Lmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
L3NlbGVjdGlvbi1leHRlbmQtc2hvdWxkLW5vdC1tb3ZlLWFjcm9zcy1jYXJldC1vbi1tYWMuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtNDgsNyArNDgsNyBAQCBmdW5jdGlvbiBlZGl0aW5nVGVzdChi
ZWhhdmlvcikgewogICAgIHZhciB3b3JkQ2FyZXRGdW5jdGlvbiA9IGdldFNldENhcmV0RnVuY3Rp
b24obm9kZSwgY2hpbGRyZW5bMl0sIGNoaWxkcmVuWzJdLmRhdGEuc2VhcmNoKCJuZSAyIikpOwog
CiAgICAgZG9jdW1lbnQud3JpdGUoYmVoYXZpb3IgKyAiOjxicj4iKTsKLSAgICBydW5UZXN0KCJi
YWNrd2FyZCIsICJmb3J3YXJkIiwgIndvcmQiLCBiZWhhdmlvciA9PSAibWFjIiA/ICIiIDogYmVo
YXZpb3IgPT0gIndpbiIgPyAibmUgIiA6ICJuZSIsIGdldFNldENhcmV0RnVuY3Rpb24obm9kZSwg
Y2hpbGRyZW5bMl0sIGNoaWxkcmVuWzJdLmRhdGEuc2VhcmNoKCJuZSAyIikpKTsKKyAgICBydW5U
ZXN0KCJiYWNrd2FyZCIsICJmb3J3YXJkIiwgIndvcmQiLCBiZWhhdmlvciA9PSAibWFjIiA/ICIi
IDogYmVoYXZpb3IgPT0gIndpbmRvd3MiID8gIm5lICIgOiAibmUiLCBnZXRTZXRDYXJldEZ1bmN0
aW9uKG5vZGUsIGNoaWxkcmVuWzJdLCBjaGlsZHJlblsyXS5kYXRhLnNlYXJjaCgibmUgMiIpKSk7
CiAgICAgcnVuVGVzdCgiZm9yd2FyZCIsICJiYWNrd2FyZCIsICJ3b3JkIiwgYmVoYXZpb3IgPT0g
Im1hYyIgPyAiIiA6ICJsaSIsIGdldFNldENhcmV0RnVuY3Rpb24obm9kZSwgY2hpbGRyZW5bMl0s
IGNoaWxkcmVuWzJdLmRhdGEuc2VhcmNoKCJuZSAyIikpKTsKICAgICBydW5UZXN0KCJiYWNrd2Fy
ZCIsICJmb3J3YXJkIiwgImxpbmUiLCBiZWhhdmlvciA9PSAibWFjIiA/ICIiIDogIjFcbmxpbmUg
IiwgZ2V0U2V0Q2FyZXRGdW5jdGlvbihub2RlLCBjaGlsZHJlblswXSwgY2hpbGRyZW5bMF0uZGF0
YS5zZWFyY2goIjEiKSkpOwogICAgIHJ1blRlc3QoImZvcndhcmQiLCAiYmFja3dhcmQiLCAibGlu
ZSIsIGJlaGF2aW9yID09ICJtYWMiID8gIiIgOiAiMlxubGluZSAiLCBnZXRTZXRDYXJldEZ1bmN0
aW9uKG5vZGUsIGNoaWxkcmVuWzRdLCBjaGlsZHJlbls0XS5kYXRhLnNlYXJjaCgiMyIpKSk7CkBA
IC01Nyw3ICs1Nyw3IEBAIGZ1bmN0aW9uIGVkaXRpbmdUZXN0KGJlaGF2aW9yKSB7CiB9CiAKIGVk
aXRpbmdUZXN0KCJtYWMiKTsKLWVkaXRpbmdUZXN0KCJ3aW4iKTsKK2VkaXRpbmdUZXN0KCJ3aW5k
b3dzIik7CiBlZGl0aW5nVGVzdCgidW5peCIpOwogCiB2YXIgbm9kZSA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0ZXN0LWRpdiIpOwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vc2hpZnQtY2xpY2suaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Nl
bGVjdGlvbi9zaGlmdC1jbGljay5odG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0
cy9lZGl0aW5nL3NlbGVjdGlvbi9zaGlmdC1jbGljay5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC05
NSw3ICs5NSw3IEBAIGZ1bmN0aW9uIHJ1blNoaWZ0Q2xpY2tUZXN0KGVkaXRpbmdCZWhhdmkKIAog
aWYgKHdpbmRvdy5ldmVudFNlbmRlciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgcnVuU2hp
ZnRDbGlja1Rlc3QoIm1hYyIpOwotICAgIHJ1blNoaWZ0Q2xpY2tUZXN0KCJ3aW4iKTsKKyAgICBy
dW5TaGlmdENsaWNrVGVzdCgid2luZG93cyIpOwogfQogCiB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3VzZXItc2VsZWN0
LWFsbC13aXRoLXNoaWZ0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3NlbGVjdGlvbi91c2VyLXNlbGVjdC1hbGwtd2l0aC1zaGlmdC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3VzZXIt
c2VsZWN0LWFsbC13aXRoLXNoaWZ0LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNjks
NyArNjksNyBAQCBTb21lIG90aGVyIHRleHQuCiB8ICIKICIKIAotQWZ0ZXIgY2xpY2tpbmcgb24g
dGhlIGZpcnN0IGVsZW1lbnQgKHdpbik6CitBZnRlciBjbGlja2luZyBvbiB0aGUgZmlyc3QgZWxl
bWVudCAod2luZG93cyk6CiB8ICIKICIKIHwgPGRpdj4KQEAgLTg2LDcgKzg2LDcgQEAgU29tZSBv
dGhlciB0ZXh0LgogfCAiCiAiCiAKLUFmdGVyIHNoaWZ0IGNsaWNraW5nIG9uIHRoZSBzZWNvbmQg
ZWxlbWVudCAod2luKToKK0FmdGVyIHNoaWZ0IGNsaWNraW5nIG9uIHRoZSBzZWNvbmQgZWxlbWVu
dCAod2luZG93cyk6CiB8ICIKICIKIHwgPGRpdj4KQEAgLTEwMyw3ICsxMDMsNyBAQCBTb21lIG90
aGVyIHRleHQuCiB8ICIKICIKIAotQWZ0ZXIgY2xpY2tpbmcgb24gdGhlIHNlY29uZCBlbGVtZW50
ICh3aW4pOgorQWZ0ZXIgY2xpY2tpbmcgb24gdGhlIHNlY29uZCBlbGVtZW50ICh3aW5kb3dzKToK
IHwgIgogIgogfCA8ZGl2PgpAQCAtMTIwLDcgKzEyMCw3IEBAIFNvbWUgb3RoZXIgdGV4dC4KIHwg
IgogIgogCi1BZnRlciBzaGlmdCBjbGlja2luZyBvbiB0aGUgZmlyc3QgZWxlbWVudCAod2luKToK
K0FmdGVyIHNoaWZ0IGNsaWNraW5nIG9uIHRoZSBmaXJzdCBlbGVtZW50ICh3aW5kb3dzKToKIHwg
IgogIgogfCA8ZGl2PgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vdXNlci1z
ZWxlY3QtYWxsLXdpdGgtc2hpZnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi91c2VyLXNlbGVjdC1hbGwtd2l0aC1zaGlmdC5odG1sCShyZXZpc2lvbiAy
Njk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi91c2VyLXNlbGVjdC1hbGwt
d2l0aC1zaGlmdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01MCw3ICs1MCw3IEBAIGZ1bmN0aW9u
IHJ1blRlc3QoZWRpdGluZ0JlaGF2aW9yKSB7CiAKIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsK
ICAgICBydW5UZXN0KCdtYWMnKTsKLSAgICBydW5UZXN0KCd3aW4nKTsKKyAgICBydW5UZXN0KCd3
aW5kb3dzJyk7CiAgICAgcnVuVGVzdCgndW5peCcpOwogCiB9IGVsc2UKSW5kZXg6IExheW91dFRl
c3RzL2VkaXRpbmcvc3BlbGxpbmcvY29weS1wYXN0ZS1jcmFzaC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvY29weS1wYXN0ZS1jcmFzaC5odG1sCShyZXZp
c2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL2NvcHktcGFzdGUt
Y3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTQsNyArMTQsNyBAQAogPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+CiA8c2NyaXB0Pgogb25sb2FkID0gaW5pdFNwZWxsVGVzdCgiZGVzdGluYXRp
b24iLCAiU3BlbGwgd2VsbGNvbWUuIElzIGl0IGJyb2tlbj8iLCBmdW5jdGlvbih0ZXh0Tm9kZSkg
ewotICAgIHZhciBiZWhhdmlvcnMgPSBbIndpbiIsICJtYWMiXTsKKyAgICB2YXIgYmVoYXZpb3Jz
ID0gWyJ3aW5kb3dzIiwgIm1hYyJdOwogICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYmVoYXZpb3Jz
Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVo
YXZpb3IoYmVoYXZpb3JzW2ldKTsKICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIlNlbGVj
dEFsbCIpOwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9pZnJhbWUtb25sb2FkLWNy
YXNoLXdpbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvaWZy
YW1lLW9ubG9hZC1jcmFzaC13aW4uaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVz
dHMvZWRpdGluZy9zdHlsZS9pZnJhbWUtb25sb2FkLWNyYXNoLXdpbi5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDcgKzEsNyBAQAogPG1ldGE+PGlucHV0PjxoNj48bm9icj48L25vYnI+PGRhdGFn
cmlkPjxpbnM+PGJ1dHRvbj48ZW0+PGlmcmFtZSBvbmxvYWQ9IgogaWYgKHdpbmRvdy50ZXN0UnVu
bmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
LSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiB9CiAKIGlm
IChkb2N1bWVudC5jb3VudGVyKQpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9tYWtl
LXRleHQtd3JpdGluZy1kaXJlY3Rpb24taW5saW5lLXdpbi5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvbWFrZS10ZXh0LXdyaXRpbmctZGlyZWN0aW9uLWlubGlu
ZS13aW4uaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zdHls
ZS9tYWtlLXRleHQtd3JpdGluZy1kaXJlY3Rpb24taW5saW5lLXdpbi5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xNCw3ICsxNCw3IEBAIGRlc2NyaXB0aW9uKCdUZXN0cyB0byBlbnN1cmUgTWFrZVRl
eHRXcmkKIGlmICghd2luZG93LnRlc3RSdW5uZXIpCiAgICAgdGVzdEZhaWxlZCgnVGhpcyB0ZXN0
IHJlcXVpcmVzIHRlc3RSdW5uZXInKTsKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbicpOworICAgIGludGVybmFscy5z
ZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbmRvd3MnKTsKIAogdmFyIHRlc3RDb250YWlu
ZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKIHRlc3RDb250YWluZXIuY29udGVu
dEVkaXRhYmxlID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvcHVzaC1k
b3duLWZvbnQtc3R5bGVzLXdpbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRp
bmcvc3R5bGUvcHVzaC1kb3duLWZvbnQtc3R5bGVzLXdpbi5odG1sCShyZXZpc2lvbiAyNjk4MzAp
CisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3B1c2gtZG93bi1mb250LXN0eWxlcy13aW4u
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQAogZGVzY3JpcHRpb24oJ1Rlc3Qg
dG8gbWFrZSBzdXJlIHdlIHB1c2ggZG93biBpbmxpbmUgc3R5bGVzIHByb3Blcmx5LicpOwogCiBp
ZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0Jl
aGF2aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9y
KCd3aW5kb3dzJyk7CiB2YXIgdGVzdENvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpOwogdGVzdENvbnRhaW5lci5jb250ZW50RWRpdGFibGUgPSB0cnVlOwogZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZCh0ZXN0Q29udGFpbmVyKTsKSW5kZXg6IExheW91dFRlc3RzL2VkaXRp
bmcvc3R5bGUvcHVzaC1kb3duLWltcGxpY2l0LXN0eWxlcy1hcm91bmQtbGlzdC13aW4uaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3B1c2gtZG93bi1pbXBsaWNp
dC1zdHlsZXMtYXJvdW5kLWxpc3Qtd2luLmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91
dFRlc3RzL2VkaXRpbmcvc3R5bGUvcHVzaC1kb3duLWltcGxpY2l0LXN0eWxlcy1hcm91bmQtbGlz
dC13aW4uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQAogZGVzY3JpcHRpb24o
J1Rlc3QgdG8gbWFrZSBzdXJlIHdlIHB1c2ggZG93biBpbmxpbmUgc3R5bGVzIHByb3Blcmx5Licp
OwogCiBpZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRp
dGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0Jl
aGF2aW9yKCd3aW5kb3dzJyk7CiB2YXIgdGVzdENvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImRpdiIpOwogdGVzdENvbnRhaW5lci5jb250ZW50RWRpdGFibGUgPSB0cnVlOwogZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZXN0Q29udGFpbmVyKTsKSW5kZXg6IExheW91dFRlc3Rz
L2VkaXRpbmcvc3R5bGUvdG9nZ2xlLXN0eWxlLWJvbGQtaXRhbGljLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3RvZ2dsZS1zdHlsZS1ib2xkLWl0
YWxpYy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRp
bmcvc3R5bGUvdG9nZ2xlLXN0eWxlLWJvbGQtaXRhbGljLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtNTcsNyArNTcsNyBAQCBleGVjSXRhbGljQ29tbWFuZDogPGRpdiBpZD0idGVzdCI+
IDxkaXY+CiBleGVjQm9sZENvbW1hbmQ6IDxkaXYgaWQ9InRlc3QiPiA8ZGl2PjxpPlNvbWUgdGV4
dDwvaT48L2Rpdj4gPHA+PGk+U29tZSBtb3JlIHRleHQ8L2k+PC9wPiA8L2Rpdj4KIGV4ZWNJdGFs
aWNDb21tYW5kOiA8ZGl2IGlkPSJ0ZXN0Ij4gPGRpdj5Tb21lIHRleHQ8L2Rpdj4gPHA+U29tZSBt
b3JlIHRleHQ8L3A+IDwvZGl2PgogCi1UZXN0IGZvciB3aW4KK1Rlc3QgZm9yIHdpbmRvd3MKIGV4
ZWNCb2xkQ29tbWFuZDogPGRpdiBpZD0idGVzdCI+IDxkaXY+PGI+U29tZSB0ZXh0PC9iPjwvZGl2
PiA8cD48Yj5Tb21lIG1vcmUgdGV4dDwvYj48L3A+IDwvZGl2PgogZXhlY0l0YWxpY0NvbW1hbmQ6
IDxkaXYgaWQ9InRlc3QiPiA8ZGl2PjxiPjxpPlNvbWUgdGV4dDwvaT48L2I+PC9kaXY+IDxwPjxi
PjxpPlNvbWUgbW9yZSB0ZXh0PC9pPjwvYj48L3A+IDwvZGl2PgogZXhlY0JvbGRDb21tYW5kOiA8
ZGl2IGlkPSJ0ZXN0Ij4gPGRpdj48aT5Tb21lIHRleHQ8L2k+PC9kaXY+IDxwPjxpPlNvbWUgbW9y
ZSB0ZXh0PC9pPjwvcD4gPC9kaXY+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3Rv
Z2dsZS1zdHlsZS1ib2xkLWl0YWxpYy1taXhlZC1lZGl0YWJpbGl0eS1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS90b2dnbGUtc3R5bGUtYm9sZC1p
dGFsaWMtbWl4ZWQtZWRpdGFiaWxpdHktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNjk4MzApCisr
KyBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3RvZ2dsZS1zdHlsZS1ib2xkLWl0YWxpYy1taXhl
ZC1lZGl0YWJpbGl0eS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTU1LDcgKzU1LDcg
QEAgZXhlY0l0YWxpY0NvbW1hbmQ6IDxkaXYgaWQ9InRlc3QiPjxiPjxpPgogZXhlY0JvbGRDb21t
YW5kOiA8ZGl2IGlkPSJ0ZXN0Ij48aT4gRWRpdGFibGUgPC9pPjxzcGFuIGNvbnRlbnRlZGl0YWJs
ZT0iZmFsc2UiPk5vbi1lZGl0YWJsZTwvc3Bhbj48aT4gRWRpdGFibGUgPC9pPjwvZGl2PgogZXhl
Y0l0YWxpY0NvbW1hbmQ6IDxkaXYgaWQ9InRlc3QiPiBFZGl0YWJsZSA8c3BhbiBjb250ZW50ZWRp
dGFibGU9ImZhbHNlIj5Ob24tZWRpdGFibGU8L3NwYW4+IEVkaXRhYmxlIDwvZGl2PgogCi1UZXN0
IGZvciB3aW4KK1Rlc3QgZm9yIHdpbmRvd3MKIGV4ZWNCb2xkQ29tbWFuZDogPGRpdiBpZD0idGVz
dCI+PGI+IEVkaXRhYmxlIDwvYj48c3BhbiBjb250ZW50ZWRpdGFibGU9ImZhbHNlIj5Ob24tZWRp
dGFibGU8L3NwYW4+PGI+IEVkaXRhYmxlIDwvYj48L2Rpdj4KIGV4ZWNJdGFsaWNDb21tYW5kOiA8
ZGl2IGlkPSJ0ZXN0Ij48Yj48aT4gRWRpdGFibGUgPC9pPjwvYj48c3BhbiBjb250ZW50ZWRpdGFi
bGU9ImZhbHNlIj5Ob24tZWRpdGFibGU8L3NwYW4+PGI+PGk+IEVkaXRhYmxlIDwvaT48L2I+PC9k
aXY+CiBleGVjQm9sZENvbW1hbmQ6IDxkaXYgaWQ9InRlc3QiPjxpPiBFZGl0YWJsZSA8L2k+PHNw
YW4gY29udGVudGVkaXRhYmxlPSJmYWxzZSI+Tm9uLWVkaXRhYmxlPC9zcGFuPjxpPiBFZGl0YWJs
ZSA8L2k+PC9kaXY+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3RvZ2dsZS1zdHls
ZS1ib2xkLWl0YWxpYy1taXhlZC1lZGl0YWJpbGl0eS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2VkaXRpbmcvc3R5bGUvdG9nZ2xlLXN0eWxlLWJvbGQtaXRhbGljLW1peGVkLWVkaXRh
YmlsaXR5Lmh0bWwJKHJldmlzaW9uIDI2OTgzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc3R5
bGUvdG9nZ2xlLXN0eWxlLWJvbGQtaXRhbGljLW1peGVkLWVkaXRhYmlsaXR5Lmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAgRWRpdGFibGUgPHNwYW4gY29udGVudGVkaXRhYmxl
PWZhbHNlPk5vbgogPHNjcmlwdCBzcmM9Li4vZWRpdGluZy5qcyBsYW5ndWFnZT0iSmF2YVNjcmlw
dCIgdHlwZT0idGV4dC9KYXZhU2NyaXB0IiA+PC9zY3JpcHQ+CiA8c2NyaXB0PgogdGVzdCgnbWFj
Jyk7Ci10ZXN0KCd3aW4nKTsKK3Rlc3QoJ3dpbmRvd3MnKTsKIHRlc3QoJ3VuaXgnKTsKIGZ1bmN0
aW9uIHRlc3QocGxhdGZvcm0pIHsKICAgICBpZiAod2luZG93LmludGVybmFscykKSW5kZXg6IExh
eW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvdG9nZ2xlLXN0eWxlLWJvbGQtaXRhbGljLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS90b2dnbGUtc3R5bGUtYm9sZC1p
dGFsaWMuaHRtbAkocmV2aXNpb24gMjY5ODMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zdHls
ZS90b2dnbGUtc3R5bGUtYm9sZC1pdGFsaWMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTEsNyAr
MTEsNyBAQAogPHNjcmlwdCBzcmM9Li4vZWRpdGluZy5qcyBsYW5ndWFnZT0iSmF2YVNjcmlwdCIg
dHlwZT0idGV4dC9KYXZhU2NyaXB0IiA+PC9zY3JpcHQ+CiA8c2NyaXB0PgogdGVzdCgnbWFjJyk7
Ci10ZXN0KCd3aW4nKTsKK3Rlc3QoJ3dpbmRvd3MnKTsKIHRlc3QoJ3VuaXgnKTsKIGZ1bmN0aW9u
IHRlc3QocGxhdGZvcm0pIHsKICAgICBpZiAod2luZG93LmludGVybmFscykKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL2JhY2tzcGFjZS1uYXZpZ2F0ZXMtYmFjay5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2JhY2tzcGFjZS1uYXZpZ2F0ZXMtYmFjay5o
dG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9iYWNrc3Bh
Y2UtbmF2aWdhdGVzLWJhY2suaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNTAsNyArNTAsNyBAQCBm
dW5jdGlvbiBkb1N0ZXAoc3RlcCwgbG9jYXRpb24pIHsKICAgICAgICAgaWYgKCFleHBlY3QobG9j
YXRpb24gPT0gJ3Rlc3Qtd2luJywgJ25hdmlnYXRpb24gdG8gdGVzdC13aW4nKSkKICAgICAgICAg
ICAgIHJldHVybjsKIAotICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2
aW9yKCd3aW4nKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlv
cignd2luZG93cycpOwogICAgICAgICB0ZXN0QmFja3NwYWNlTmF2aWdhdGVzQmFjaygpOwogCiAg
ICAgICAgIGJyZWFrOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3Rpb24tZGly
ZWN0aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3NlbGVjdGlvbi1kaXJlY3Rpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNjk4MzApCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdGlvbi1kaXJlY3Rpb24tZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC01NSw3ICs1NSw3IEBAIFBBU1Mgc2VsZWN0aW9uRGlyZWN0aW9uIHdh
cyAiYmFja3dhcmQiIGEKIFBBU1Mgc2VsZWN0aW9uRGlyZWN0aW9uIHdhcyAiYmFja3dhcmQiIGFm
dGVyIGZvY3VzaW5nIG9uIGFub3RoZXIgZWxlbWVudAogUEFTUyBzZWxlY3Rpb25EaXJlY3Rpb24g
d2FzICJiYWNrd2FyZCIgYWZ0ZXIgaGlkaW5nIHRoZSBlbGVtZW50CiAKLWlucHV0IG9uIFdpbgor
aW5wdXQgb24gV2luZG93cwogUEFTUyBzZWxlY3Rpb25EaXJlY3Rpb24gd2FzICJmb3J3YXJkIiBh
ZnRlciBmb2N1c2luZyBhbmQgc2V0dGluZyBzZWxlY3Rpb24gYnkgc2V0U2VsZWN0aW9uUmFuZ2Uo
MSwgMikKIFBBU1Mgc2VsZWN0aW9uRGlyZWN0aW9uIHdhcyAiZm9yd2FyZCIgYWZ0ZXIgZm9jdXNp
bmcgb24gYW5vdGhlciBlbGVtZW50CiBQQVNTIHNlbGVjdGlvbkRpcmVjdGlvbiB3YXMgImZvcndh
cmQiIGFmdGVyIGhpZGluZyB0aGUgZWxlbWVudApAQCAtODEsNyArODEsNyBAQCBQQVNTIHNlbGVj
dGlvbkRpcmVjdGlvbiB3YXMgImJhY2t3YXJkIiBhCiBQQVNTIHNlbGVjdGlvbkRpcmVjdGlvbiB3
YXMgImJhY2t3YXJkIiBhZnRlciBmb2N1c2luZyBvbiBhbm90aGVyIGVsZW1lbnQKIFBBU1Mgc2Vs
ZWN0aW9uRGlyZWN0aW9uIHdhcyAiYmFja3dhcmQiIGFmdGVyIGhpZGluZyB0aGUgZWxlbWVudAog
Ci10ZXh0YXJlYSBvbiBXaW4KK3RleHRhcmVhIG9uIFdpbmRvd3MKIFBBU1Mgc2VsZWN0aW9uRGly
ZWN0aW9uIHdhcyAiZm9yd2FyZCIgYWZ0ZXIgZm9jdXNpbmcgYW5kIHNldHRpbmcgc2VsZWN0aW9u
IGJ5IHNldFNlbGVjdGlvblJhbmdlKDEsIDIpCiBQQVNTIHNlbGVjdGlvbkRpcmVjdGlvbiB3YXMg
ImZvcndhcmQiIGFmdGVyIGZvY3VzaW5nIG9uIGFub3RoZXIgZWxlbWVudAogUEFTUyBzZWxlY3Rp
b25EaXJlY3Rpb24gd2FzICJmb3J3YXJkIiBhZnRlciBoaWRpbmcgdGhlIGVsZW1lbnQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414183</attachid>
            <date>2020-11-15 15:51:41 -0800</date>
            <delta_ts>2020-11-15 15:57:09 -0800</delta_ts>
            <desc>Can I remove the file completely?</desc>
            <filename>can-I-remove-you.diff</filename>
            <type>text/plain</type>
            <size>4110</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0aW9uLWRpcmVjdGlvbi5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0aW9uLWRpcmVjdGlvbi5o
dG1sCShyZXZpc2lvbiAyNjk4MzApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdGlv
bi1kaXJlY3Rpb24uaHRtbAkobm9uZXhpc3RlbnQpCkBAIC0xLDEwNSArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4NCi08aHRtbD4NCi08aGVhZD4NCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4NCi08L2hlYWQ+DQotPGJvZHk+DQotPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+DQotPGRpdj48aW5wdXQgaWQ9ImR1bW15Ij48L2Rpdj4NCi08ZGl2IGlk
PSJ0ZXN0cyI+PGlucHV0IHZhbHVlPSJoZWxsbyI+PHRleHRhcmVhPmhlbGxvPC90ZXh0YXJlYT48
L2Rpdj4NCi08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4NCi08ZGl2Pg0KLTxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4NCi1kZXNjcmlwdGlvbignVGVzdHMgZm9yIHNlbGVjdGlvbkRpcmVj
dGlvbicpOw0KLQ0KLXZhciBkdW1teSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdW1teScp
Ow0KLQ0KLWZ1bmN0aW9uIGFzc2VydERpcmVjdGlvbihleHBlY3RlZERpcmVjdGlvbiwgZWxlbWVu
dCwgZGVzY3JpcHRpb24pIHsNCi0gICAgdmFyIGFjdGlvbiA9ICdzZWxlY3Rpb25EaXJlY3Rpb24g
d2FzICInICsgZWxlbWVudC5zZWxlY3Rpb25EaXJlY3Rpb24NCi0gICAgICAgICsgJyIgYWZ0ZXIg
JyArIGRlc2NyaXB0aW9uOw0KLQ0KLSAgICBpZiAoZWxlbWVudC5zZWxlY3Rpb25EaXJlY3Rpb24g
PT0gZXhwZWN0ZWREaXJlY3Rpb24pDQotICAgICAgICB0ZXN0UGFzc2VkKGFjdGlvbik7DQotICAg
IGVsc2UNCi0gICAgICAgIHRlc3RGYWlsZWQoYWN0aW9uICsgJywgYnV0IGV4cGVjdGVkICInICsg
ZXhwZWN0ZWREaXJlY3Rpb24gKyAnIicpOw0KLX0NCi0NCi1mdW5jdGlvbiB0ZXN0Q2FjaGUoZXhw
ZWN0ZWREaXJlY3Rpb24sIGVsZW1lbnQpIHsNCi0gICAgZHVtbXkuZm9jdXMoKTsNCi0gICAgYXNz
ZXJ0RGlyZWN0aW9uKGV4cGVjdGVkRGlyZWN0aW9uLCBlbGVtZW50LCAnZm9jdXNpbmcgb24gYW5v
dGhlciBlbGVtZW50Jyk7DQotDQotICAgIGVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJzsN
Ci0gICAgYXNzZXJ0RGlyZWN0aW9uKGV4cGVjdGVkRGlyZWN0aW9uLCBlbGVtZW50LCAnaGlkaW5n
IHRoZSBlbGVtZW50Jyk7DQotICAgIGVsZW1lbnQuc3R5bGUuZGlzcGxheSA9IG51bGw7DQotfQ0K
LQ0KLWZ1bmN0aW9uIHJ1blRlc3QoZWxlbWVudCwgcGxhdGZvcm0pIHsNCi0gICAgZGVidWcoZWxl
bWVudC5sb2NhbE5hbWUgKyAnIG9uICcgKyBwbGF0Zm9ybSk7DQotICAgIGVsZW1lbnQuZm9jdXMo
KTsNCi0NCi0gICAgdmFyIG5vbmVPbk1hY0FuZEZvcndhcmRPbk90aGVycyA9IChwbGF0Zm9ybSA9
PSAnTWFjJykgPyAnbm9uZScgOiAnZm9yd2FyZCc7DQotDQotICAgIGVsZW1lbnQuc2V0U2VsZWN0
aW9uUmFuZ2UoMSwgMik7DQotICAgIGFzc2VydERpcmVjdGlvbihub25lT25NYWNBbmRGb3J3YXJk
T25PdGhlcnMsIGVsZW1lbnQsICdmb2N1c2luZyBhbmQgc2V0dGluZyBzZWxlY3Rpb24gYnkgc2V0
U2VsZWN0aW9uUmFuZ2UoMSwgMiknKTsNCi0gICAgdGVzdENhY2hlKG5vbmVPbk1hY0FuZEZvcndh
cmRPbk90aGVycywgZWxlbWVudCk7DQotDQotICAgIGVsZW1lbnQuZm9jdXMoKTsNCi0gICAgZWxl
bWVudC5zZXRTZWxlY3Rpb25SYW5nZSgxLCAyLCAnZm9yd2FyZCcpOw0KLSAgICBhc3NlcnREaXJl
Y3Rpb24oJ2ZvcndhcmQnLCBlbGVtZW50LCAnZm9jdXNpbmcgYW5kIHNldHRpbmcgc2VsZWN0aW9u
IGJ5IHNldFNlbGVjdGlvblJhbmdlKDEsIDIsICJmb3J3YXJkIiknKTsNCi0gICAgdGVzdENhY2hl
KCdmb3J3YXJkJywgZWxlbWVudCk7DQotDQotICAgIGVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2Uo
MSwgMiwgJ2JhY2t3YXJkJyk7DQotICAgIGFzc2VydERpcmVjdGlvbignYmFja3dhcmQnLCBlbGVt
ZW50LCAnc2V0dGluZyBzZWxlY3Rpb24gYnkgc2V0U2VsZWN0aW9uUmFuZ2UoMSwgMiwgImJhY2t3
YXJkIikgd2l0aG91dCBmb2N1cycpOw0KLSAgICB0ZXN0Q2FjaGUoJ2JhY2t3YXJkJywgZWxlbWVu
dCk7DQotDQotICAgIGVsZW1lbnQuc2VsZWN0aW9uRGlyZWN0aW9uID0gJ25vbmUnOw0KLSAgICBh
c3NlcnREaXJlY3Rpb24obm9uZU9uTWFjQW5kRm9yd2FyZE9uT3RoZXJzLCBlbGVtZW50LCAnc2V0
dGluZyBzZWxlY3Rpb24gYnkgc2VsZWN0aW9uRGlyZWN0aW9uID0gIm5vbmUiIHdpdGhvdXQgZm9j
dXMnKTsNCi0gICAgdGVzdENhY2hlKG5vbmVPbk1hY0FuZEZvcndhcmRPbk90aGVycywgZWxlbWVu
dCk7DQotDQotICAgIGVsZW1lbnQuc2VsZWN0aW9uRGlyZWN0aW9uID0gJ2ZvcndhcmQnOw0KLSAg
ICBhc3NlcnREaXJlY3Rpb24oJ2ZvcndhcmQnLCBlbGVtZW50LCAnZm9jdXNpbmcgYW5kIHNldHRp
bmcgc2VsZWN0aW9uIGJ5IHNlbGVjdGlvbkRpcmVjdGlvbiA9ICJmb3J3YXJkIiB3aXRob3V0IGZv
Y3VzJyk7DQotICAgIHRlc3RDYWNoZSgnZm9yd2FyZCcsIGVsZW1lbnQpOw0KLQ0KLSAgICBlbGVt
ZW50LmZvY3VzKCk7DQotICAgIGVsZW1lbnQuc2VsZWN0aW9uRGlyZWN0aW9uID0gJ2JhY2t3YXJk
JzsNCi0gICAgYXNzZXJ0RGlyZWN0aW9uKCdiYWNrd2FyZCcsIGVsZW1lbnQsICdmb2N1c2luZyBh
bmQgc2V0dGluZyBzZWxlY3Rpb24gYnkgc2VsZWN0aW9uRGlyZWN0aW9uID0gImJhY2t3YXJkIicp
Ow0KLSAgICB0ZXN0Q2FjaGUoJ2JhY2t3YXJkJywgZWxlbWVudCk7DQotDQotICAgIGVsZW1lbnQu
Zm9jdXMoKTsNCi0gICAgZWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZSgxLCAxKTsNCi0gICAgd2lu
ZG93LmdldFNlbGVjdGlvbigpLm1vZGlmeSgnZXh0ZW5kJywgJ2ZvcndhcmQnLCAnY2hhcmFjdGVy
Jyk7DQotICAgIGFzc2VydERpcmVjdGlvbignZm9yd2FyZCcsIGVsZW1lbnQsICdleHRlbmRpbmcg
c2VsZWN0aW9uIGZvcndhcmQgYnkgY2hhcmFjdGVyJyk7DQotICAgIHRlc3RDYWNoZSgnZm9yd2Fy
ZCcsIGVsZW1lbnQpOw0KLQ0KLSAgICBlbGVtZW50LmZvY3VzKCk7DQotICAgIGVsZW1lbnQuc2V0
U2VsZWN0aW9uUmFuZ2UoMSwgMSk7DQotICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5tb2RpZnko
J2V4dGVuZCcsICdiYWNrd2FyZCcsICdjaGFyYWN0ZXInKTsNCi0gICAgYXNzZXJ0RGlyZWN0aW9u
KCdiYWNrd2FyZCcsIGVsZW1lbnQsICdleHRlbmRpbmcgc2VsZWN0aW9uIGJhY2t3YXJkIGJ5IGNo
YXJhY3RlcicpOw0KLSAgICB0ZXN0Q2FjaGUoJ2JhY2t3YXJkJywgZWxlbWVudCk7DQotDQotfQ0K
LQ0KLWZ1bmN0aW9uIHJ1blRlc3RGb3IocGxhdGZvcm0pIHsNCi0gICAgaWYgKHdpbmRvdy5pbnRl
cm5hbHMpDQotICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKHBs
YXRmb3JtLnRvTG93ZXJDYXNlKCkpOw0KLSAgICB2YXIgdGVzdHMgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgndGVzdHMnKTsNCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0cy5jaGlsZE5v
ZGVzLmxlbmd0aDsgaSsrKSB7DQotICAgICAgICBydW5UZXN0KHRlc3RzLmNoaWxkTm9kZXNbaV0s
IHBsYXRmb3JtKTsNCi0gICAgICAgIGRlYnVnKCcnKTsNCi0gICAgfQ0KLX0NCi0NCi1pZiAod2lu
ZG93LmludGVybmFscykgew0KLSAgICBydW5UZXN0Rm9yKCdNYWMnKTsNCi0gICAgcnVuVGVzdEZv
cignV2luJyk7DQotICAgIHJ1blRlc3RGb3IoJ1VuaXgnKTsNCi19IGVsc2UNCi0gICAgcnVuVGVz
dEZvcihuYXZpZ2F0b3IucGxhdGZvcm0uaW5kZXhPZignTWFjJykgPj0gMCA/ICdNYWMnIDogJ1dp
bicpOw0KLQ0KLXRlc3RzLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7DQotZHVtbXkucGFyZW50Tm9k
ZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOw0KLQ0KLTwvc2NyaXB0Pg0KLTxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4NCi08L2JvZHk+DQotPC9o
dG1sPg0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414243</attachid>
            <date>2020-11-16 09:48:53 -0800</date>
            <delta_ts>2020-11-16 17:35:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218960-20201116094852.patch</filename>
            <type>text/plain</type>
            <size>222891</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNjk4NTYpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIwLTExLTE1ICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBTdGFuZGFyZGl6ZSBlbnVtcyB0aGF0IGFyZSB1c2VkIGJ5
IFNldHRpbmdzIGluIHByZXBlcmF0aW9uIGZvciBhdXRvZ2VuZXJhdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4OTYwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIGVudW0gdXNlcyBpbiBk
ZWZhdWx0IFdlYlByZWZlcmVuY2VzIHZhbHVlcyBmb3IgcmVuYW1lcyBhbmQgc2NvcGVkIHN5bnRh
eCB1c2UuCisKKyAgICAgICAgKiBTY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlh
bWw6CisKIDIwMjAtMTEtMTYgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgog
CiAgICAgICAgIFJlLWRpc2FibGUgYXN5bmMgb3ZlcmZsb3cgc2Nyb2xsaW5nIGZvciBVU0UoTklD
T1NJQSkKSW5kZXg6IFNvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNl
cy55YW1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQ
cmVmZXJlbmNlcy55YW1sCShyZXZpc2lvbiAyNjk4NTYpCisrKyBTb3VyY2UvV1RGL1NjcmlwdHMv
UHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXMueWFtbAkod29ya2luZyBjb3B5KQpAQCAtNzA2LDcg
KzcwNiw3IEBAIEVkaXRhYmxlTGlua0JlaGF2aW9yOgogICAgIFdlYktpdExlZ2FjeToKICAgICAg
IGRlZmF1bHQ6IFdlYktpdEVkaXRhYmxlTGlua0RlZmF1bHRCZWhhdmlvcgogICAgIFdlYktpdDoK
LSAgICAgIGRlZmF1bHQ6IFdlYkNvcmU6OkVkaXRhYmxlTGlua05ldmVyTGl2ZQorICAgICAgZGVm
YXVsdDogV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6Ok5ldmVyTGl2ZQogCiBFbmFibGVJ
bmhlcml0VVJJUXVlcnlDb21wb25lbnQ6CiAgIHR5cGU6IGJvb2wKQEAgLTIxNzMsNyArMjE3Myw3
IEBAIFN0b3JhZ2VCbG9ja2luZ1BvbGljeToKICAgICBXZWJLaXRMZWdhY3k6CiAgICAgICBkZWZh
dWx0OiBXZWJBbGxvd0FsbFN0b3JhZ2UKICAgICBXZWJLaXQ6Ci0gICAgICBkZWZhdWx0OiBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbjo6QmxvY2tUaGlyZFBhcnR5U3RvcmFnZQorICAgICAgZGVmYXVs
dDogV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5OjpCbG9ja1RoaXJkUGFydHkKIAogU3Vi
cmVzb3VyY2VJbnRlZ3JpdHlFbmFibGVkOgogICB0eXBlOiBib29sCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAyNjk4NTYpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxNjIgQEAKKzIwMjAtMTEtMTUgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBw
bGUuY29tPgorCisgICAgICAgIFN0YW5kYXJkaXplIGVudW1zIHRoYXQgYXJlIHVzZWQgYnkgU2V0
dGluZ3MgaW4gcHJlcGVyYXRpb24gZm9yIGF1dG9nZW5lcmF0aW9uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg5NjAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIGVhY2ggZW51bSB0eXBlIHVzZWQg
YnkgU2V0dGluZ3MgdG8gaXRzIG93biBoZWFkZXIgYW5kIG1ha2UgdGhlbSBhbGwgc2NvcGVkCisg
ICAgICAgIGVudW1zIGluIHByZXBhcmF0aW9uIGZvciB1c2luZyB0aGVtIGluIHRoZSBnZW5lcmF0
ZWQgc2V0dGluZ3MgY29kZS4KKworICAgICAgICBBbHNvIGNvbnZlcnRlZCBlbnVtcyB1c2VkIGlu
IFNldHRpbmdzIHRoYXQgYXJlIHVzZWQgYXMgZmxhZ3MgdG8gdXNlIE9wdGlvblNldCwKKyAgICAg
ICAgYWRkaW5nIHRoZSBuZWNlc3NhcnkgRW51bVRyYWl0cyB0byBtYWtlIGl0IHRvIHdvcmsuIElu
IHRoZSBjaGFuZ2UsIFNldHRpbmdzIHN0aWxsCisgICAgICAgIGdlbmVyYXRlcyB3aXRoIGdldHRl
cnMvc2V0dGVycyB0aGF0IHdvcmsgb24gdGhlIHJhdyBlbnVtLCBidXQgaW4gc3Vic2VxdWVudCBj
aGFuZ2VzCisgICAgICAgIHRoZSBnZW5lcmF0aW9uIHdpbGwgd29yayBkaXJlY3RseSB3aXRoIE9w
dGlvblNldHMuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgQWRkIG5ldyBoZWFkZXJzLCBhZGp1
c3QgZm9yIHJlbmFtZXMuCisKKyAgICAgICAgKiBTY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MucmI6
CisgICAgICAgIEFkZCBzcGVjaWFsIGNhc2UgZm9yIEhUTUwgcHJlZml4IHRvIGtlZXAgcmVuYW1l
ZCBIVE1MUGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeQorICAgICAgICBzZXR0aW5nIHVzaW5nIFdl
YkNvcmUgY29uc2lzdGVudCBjYXBpdGFsaXphdGlvbi4KKyAgICAgICAgCisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9Gb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUuaDogQWRkZWQuCisgICAgICAgICog
Y3NzL0ZvbnRMb2FkVGltaW5nT3ZlcnJpZGUuaDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9F
ZGl0YWJsZUxpbmtCZWhhdmlvci5oOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2NvY29hL0Rh
dGFEZXRlY3RvclR5cGVzLmg6IEFkZGVkLgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxQYXJz
ZXJTY3JpcHRpbmdGbGFnUG9saWN5Lmg6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvRnJhbWVGbGF0
dGVuaW5nLmg6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvUERGSW1hZ2VDYWNoaW5nUG9saWN5Lmg6
IEFkZGVkLgorICAgICAgICAqIHBhZ2UvRGVidWdPdmVybGF5UmVnaW9ucy5oOiBBZGRlZC4KKyAg
ICAgICAgKiBwYWdlL1N0b3JhZ2VCbG9ja2luZ1BvbGljeS5oOiBBZGRlZC4KKyAgICAgICAgKiBw
YWdlL1RleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IuaDogQWRkZWQuCisgICAg
ICAgICogcGFnZS9Vc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5Lmg6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL3RleHQvRm9udFJlbmRlcmluZ01vZGUuaDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vdGV4dC9UZXh0RGlyZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICBBZGQgbmV3IGhl
YWRlcnMuCisKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRpbmdCZWhhdmlvclR5cGUuaDogQWRkZWQu
CisgICAgICAgICogZWRpdGluZy9FZGl0aW5nQmVoYXZpb3JUeXBlcy5oOiBSZW1vdmVkLgorICAg
ICAgICBSZW5hbWVkIGhlYWRlciB0byBtYXRjaCBlbnVtIG5hbWUuCisKKyAgICAgICAgKiBjc3Mv
Q1NTRm9udEZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Zm9udExvYWRUaW1pbmdPdmVycmlk
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZTo6Zm9udExvYWRUaW1pbmcgY29uc3Qp
OgorICAgICAgICBVcGRhdGUgdXNlcyBvZiBGb250TG9hZFRpbWluZ092ZXJyaWRlIHRvIHJlbW92
ZSBTZXR0aW5ncyBzY29waW5nLgorCisgICAgICAgICogY3NzL01lZGlhUXVlcnlFdmFsdWF0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6bW9ub2Nocm9tZUV2YWx1YXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OmludmVydGVkQ29sb3JzRXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6ZHluYW1p
Y1JhbmdlRXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6cHJlZmVyc1JlZHVjZWRNb3Rpb25F
dmFsdWF0ZSk6CisgICAgICAgIFVwZGF0ZSB1c2VzIG9mIEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1
ZSB0byByZW1vdmUgU2V0dGluZ3Mgc2NvcGluZy4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YXBwbHlRdWlja0xvb2tTYW5kYm94KToK
KyAgICAgICAgVXBkYXRlIHVzZXMgb2YgU3RvcmFnZUJsb2NraW5nUG9saWN5IHRvIHJlbW92ZSBT
ZWN1cml0eU9yaWdpbiBzY29waW5nLgorCisgICAgICAgICogZWRpdGluZy9FZGl0aW5nQmVoYXZp
b3IuaDoKKyAgICAgICAgVXBkYXRlIHVzZSBvZiBFZGl0aW5nQmVoYXZpb3JUeXBlIHRvIHVzZSBz
Y29wZWQgc3ludGF4LgorCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdG9yOjpiZWhhdmlvciBjb25zdCk6CisgICAgICAgIFJlbW92ZSB1bm5lY2Vz
c2FyeSBkdXBsaWNhdGlvbiBvZiBFZGl0aW5nQmVoYXZpb3IgY29uc3RydWN0aW9uLgorCisgICAg
ICAgICogZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLmg6CisgICAgICAgICogZWRpdGluZy9j
b2NvYS9EYXRhRGV0ZWN0aW9uLm1tOgorICAgICAgICBTd2l0Y2ggdG8gdXNpbmcgT3B0aW9uU2V0
PERhdGFEZXRlY3RvclR5cGVzPiByYXRoZXIgdGhhbiByYXcgRGF0YURldGVjdG9yVHlwZXMuCisK
KyAgICAgICAgKiBlZGl0aW5nL21hcmt1cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVQ
YWdlRm9yU2FuaXRpemluZ1dlYkNvbnRlbnQpOgorICAgICAgICBVcGRhdGUgZm9yIHJlbmFtZWQg
c2V0dGVyIG5vdyBjYWxsZWQgc2V0SFRNTFBhcnNlclNjcmlwdGluZ0ZsYWdQb2xpY3kgdG8gbWFr
ZSBpdCBjbGVhcgorICAgICAgICBpdCBpcyBhYm91dCB0aGUgSFRNTCBwYXJzZXIuCisKKyAgICAg
ICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxB
bmNob3JFbGVtZW50OjpzZXRBY3RpdmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFuY2hvckVs
ZW1lbnQ6OnRyZWF0TGlua0FzTGl2ZUZvckV2ZW50VHlwZSBjb25zdCk6CisgICAgICAgIFVwZGF0
ZSB1c2Ugb2YgRWRpdGFibGVMaW5rQmVoYXZpb3IgdG8gdXNlIHNjb3BlZCBzeW50YXguCisKKyAg
ICAgICAgKiBodG1sL3BhcnNlci9IVE1MUGFyc2VyT3B0aW9ucy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MUGFyc2VyT3B0aW9uczo6SFRNTFBhcnNlck9wdGlvbnMpOgorICAgICAgICBVcGRh
dGUgZm9yIHJlbmFtZWQgc2V0dGluZyBub3cgY2FsbGVkIEhUTUxQYXJzZXJTY3JpcHRpbmdGbGFn
UG9saWN5IHRvIG1ha2UgaXQgY2xlYXIKKyAgICAgICAgaXQgaXMgYWJvdXQgdGhlIEhUTUwgcGFy
c2VyIGFuZCBubyBsb25nZXIgc2NvcGVkIHRvIFNldHRpbmdzLgorCisgICAgICAgICogbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjaGVja0xv
YWRDb21wbGV0ZUZvclRoaXNGcmFtZSk6CisgICAgICAgIFN3aXRjaCB0byB1c2luZyBPcHRpb25T
ZXQ8RGF0YURldGVjdG9yVHlwZXM+IHJhdGhlciB0aGFuIHJhdyBEYXRhRGV0ZWN0b3JUeXBlcy4K
KworICAgICAgICAqIHBhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6cG9wdWxhdGUpOgorICAgICAgICBVcGRhdGUg
dXNlIG9mIFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IgdG8gdXNlIHNjb3Bl
ZCBzeW50YXguCisKKyAgICAgICAgKiBwYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRlYnVnUGFnZU92ZXJsYXlzOjp1cGRhdGVPdmVybGF5UmVnaW9uVmlzaWJp
bGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpEZWJ1Z1BhZ2VPdmVybGF5czo6c2V0dGluZ3NDaGFu
Z2VkKToKKyAgICAgICAgKiBwYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmg6CisgICAgICAgIFN3aXRj
aCB0byB1c2luZyBPcHRpb25TZXQ8RGVidWdPdmVybGF5UmVnaW9ucz4gcmF0aGVyIHRoYW4gcmF3
IERlYnVnT3ZlcmxheVJlZ2lvbnMuCisKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnVzZUhhbmRDdXJzb3IpOgorICAgICAg
ICBVcGRhdGUgdXNlIG9mIEVkaXRhYmxlTGlua0JlaGF2aW9yIHRvIHVzZSBzY29wZWQgc3ludGF4
LgorCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgU3dpdGNoIHRvICNpbmNs
dWRpbmcgRnJhbWVGbGF0dGVuaW5nLmggc2luY2UgaXQgaXMgc3VjaCBhIHRyaXZpYWwgaW5jbHVk
ZSBub3cuCisKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZTo6c2hvdWxkQnVpbGRFZGl0YWJsZVJlZ2lvbiBjb25zdCk6CisgICAgICAgIFN3aXRjaCB0byB1
c2luZyBPcHRpb25TZXQ8RGVidWdPdmVybGF5UmVnaW9ucz4gcmF0aGVyIHRoYW4gcmF3IERlYnVn
T3ZlcmxheVJlZ2lvbnMuCisKKyAgICAgICAgKiBwYWdlL1NlY3VyaXR5T3JpZ2luLmNwcDoKKyAg
ICAgICAgKiBwYWdlL1NlY3VyaXR5T3JpZ2luLmg6CisgICAgICAgIFVwZGF0ZSB0byBub3cgaW5j
bHVkZSBTdG9yYWdlQmxvY2tpbmdQb2xpY3kuaCBhbmQgc3dpdGNoIHRvIHVzZSBzY29wZWQgc3lu
dGF4LgorCisgICAgICAgICogcGFnZS9TZXR0aW5ncy55YW1sOgorICAgICAgICBVcGRhdGUgc2V0
dGluZyBkZWZhdWx0cyB0byB1c2UgbmV3IHNjb3BlZCBuYW1lcyB3aGVyZSBhcHByb3ByaWF0ZSBh
bmQgcmVuYW1lIAorICAgICAgICBQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5IHRvIEhUTUxQYXJz
ZXJTY3JpcHRpbmdGbGFnUG9saWN5IHRvIG1ha2UgaXQgY2xlYXIgd2hpY2gKKyAgICAgICAgcGFy
c2VyIGl0IGlzIGZvci4KKworICAgICAgICAqIHBhZ2UvU2V0dGluZ3NCYXNlLmg6CisgICAgICAg
IFJlcGxhY2UgZW51bSBkZWZpbml0aW9ucyB3aXRoICNpbmNsdWRlcyBmb3IgdGhlIG5ldyBoZWFk
ZXJzLiBJbiBmdXR1cmUgY2hhbmdlcywKKyAgICAgICAgdGhlc2Ugd2lsbCBiZSBhdXRvbWF0aWNh
bGx5IGluY2x1ZGVkIGluIHRoZSBnZW5lcmF0ZWQgY29kZSBhbmQgdGhpcyB3b24ndCBiZSBuZWNl
c3NhcnkgCisgICAgICAgIGFueW1vcmUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9EcmFnSW1hZ2Uu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaDoKKyAgICAg
ICAgVXBkYXRlICNpbmNsdWRlcyB0byBrZWVwIHRoaW5ncyBidWlsZGluZy4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UERGRG9jdW1lbnRJbWFnZTo6dXBkYXRlQ2FjaGVkSW1hZ2VJZk5lZWRlZCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5oOgorICAgICAgICBV
cGRhdGUgdXNlIG9mIFBERkltYWdlQ2FjaGluZ1BvbGljeSB0byB1c2Ugc2NvcGVkIHN5bnRheC4K
KworICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dEZsYWdzLmg6CisgICAgICAgIEV4dHJhY3Qg
Rm9udFJlbmRlcmluZ01vZGUgaW50byBpdHMgb3duIGhlYWRlci4KKworICAgICAgICAqIHBsYXRm
b3JtL3RleHQvV3JpdGluZ01vZGUuaDoKKyAgICAgICAgRXh0cmFjdCBUZXh0RGlyZWN0aW9uIGlu
dG8gaXRzIG93biBoZWFkZXIuIEFsc28gcmVwbGFjZSBzb21lIG1hY3JvcyB3aXRoIGNvbnN0ZXhw
cnMgd2hpbGUKKyAgICAgICAgSSB3YXMgaGVyZS4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2FsY3VsYXRlQ2xp
cFJlY3RzIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6cGFpbnREZWJ1Z092ZXJs
YXlzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6cGFpbnRDb250ZW50
cyk6CisgICAgICAgIFN3aXRjaCB0byB1c2luZyBPcHRpb25TZXQ8RGVidWdPdmVybGF5UmVnaW9u
cz4gcmF0aGVyIHRoYW4gcmF3IERlYnVnT3ZlcmxheVJlZ2lvbnMuCisKKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0
aW5ncy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGw6CisgICAgICAg
IFVzZSBuZXcgZW51bXMgcmF0aGVyIHRoYW4gcmVkZWNsYXJpbmcgdGhlbS4gVXBkYXRlcyBFZGl0
aW5nQmVoYXZpb3JUeXBlIHRvIHVzZSB0aGUgCisgICAgICAgIHZhbHVlICJ3aW5kb3dzIiByYXRo
ZXIgdGhhbiAid2luIiB3aGljaCByZXF1aXJlcyB0ZXN0IGNoYW5nZXMgYXMgZG9lcyBjaGFuZ2Vz
IHRvCisgICAgICAgIGNhcGl0YWxpemF0aW9uIG9mIFBERkltYWdlQ2FjaGluZ1BvbGljeSBlbnVt
IHZhbHVlcy4KKworICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3Jr
ZXJUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVQYWdlRm9yU2Vydmlj
ZVdvcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OlNl
cnZpY2VXb3JrZXJUaHJlYWRQcm94eSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRl
eHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5Lmg6CisgICAgICAgIFVwZGF0ZSBmb3IgZXh0cmFj
dGVkIFN0b3JhZ2VCbG9ja2luZ1BvbGljeSBlbnVtLgorCiAyMDIwLTExLTE2ICBBbnR0aSBLb2l2
aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJbnRlZ3JhdGlvbl0gUmVt
b3ZlIGlzTGFzdFRleHRSdW5PbkxpbmUvaXNMYXN0VGV4dFJ1biBmcm9tIHJ1biBpdGVyYXRvcgpJ
bmRleDogU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9IZWFkZXJzLmNtYWtlCShyZXZpc2lvbiAyNjk4NTYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0xODgsNiArMTg4LDcgQEAgc2V0KFdl
YkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdEludGVyZmFjZS5oCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0LmgKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3
LmgKKyAgICBhY2Nlc3NpYmlsaXR5L0ZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZS5oCiAKICAgICBh
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKICAgICBhY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCkBAIC0zNTMsNiArMzU0LDcgQEAg
c2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIGNzcy9EZXByZWNhdGVk
Q1NTT01SZWN0LmgKICAgICBjc3MvRGVwcmVjYXRlZENTU09NVmFsdWUuaAogICAgIGNzcy9EZXBy
ZWNhdGVkQ1NTT01WYWx1ZUxpc3QuaAorICAgIGNzcy9Gb250TG9hZFRpbWluZ092ZXJyaWRlLmgK
ICAgICBjc3MvTGVuZ3RoRnVuY3Rpb25zLmgKICAgICBjc3MvTWVkaWFMaXN0LmgKICAgICBjc3Mv
TWVkaWFRdWVyeUV2YWx1YXRvci5oCkBAIC01MjYsOSArNTI4LDEwIEBAIHNldChXZWJDb3JlX1BS
SVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBlZGl0aW5nL0RpY3RhdGlvbkNvbnRleHQuaAog
ICAgIGVkaXRpbmcvRGljdGlvbmFyeVBvcHVwSW5mby5oCiAgICAgZWRpdGluZy9FZGl0QWN0aW9u
LmgKKyAgICBlZGl0aW5nL0VkaXRhYmxlTGlua0JlaGF2aW9yLmgKICAgICBlZGl0aW5nL0VkaXRp
bmcuaAogICAgIGVkaXRpbmcvRWRpdGluZ0JlaGF2aW9yLmgKLSAgICBlZGl0aW5nL0VkaXRpbmdC
ZWhhdmlvclR5cGVzLmgKKyAgICBlZGl0aW5nL0VkaXRpbmdCZWhhdmlvclR5cGUuaAogICAgIGVk
aXRpbmcvRWRpdGluZ0JvdW5kYXJ5LmgKICAgICBlZGl0aW5nL0VkaXRpbmdTdHlsZS5oCiAgICAg
ZWRpdGluZy9FZGl0b3IuaApAQCAtNjkzLDYgKzY5Niw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVf
RlJBTUVXT1JLX0hFQURFUlMKIAogICAgIGh0bWwvcGFyc2VyL1BhcnNpbmdVdGlsaXRpZXMuaAog
ICAgIGh0bWwvcGFyc2VyL0hUTUxQYXJzZXJJZGlvbXMuaAorICAgIGh0bWwvcGFyc2VyL0hUTUxQ
YXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5LmgKIAogICAgIGh0bWwvdHJhY2svQXVkaW9UcmFjay5o
CiAgICAgaHRtbC90cmFjay9UZXh0VHJhY2suaApAQCAtODMxLDYgKzgzNSw3IEBAIHNldChXZWJD
b3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwYWdlL0RPTVdpbmRvd0V4dGVuc2lv
bi5oCiAgICAgcGFnZS9ET01XaW5kb3dQcm9wZXJ0eS5oCiAgICAgcGFnZS9EYXRhYmFzZVByb3Zp
ZGVyLmgKKyAgICBwYWdlL0RlYnVnT3ZlcmxheVJlZ2lvbnMuaAogICAgIHBhZ2UvRGVidWdQYWdl
T3ZlcmxheXMuaAogICAgIHBhZ2UvRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzLmgKICAgICBwYWdl
L0RldmljZUNsaWVudC5oCkBAIC04NDgsNiArODUzLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9G
UkFNRVdPUktfSEVBREVSUwogICAgIHBhZ2UvRm9jdXNEaXJlY3Rpb24uaAogICAgIHBhZ2UvRnJh
bWUuaAogICAgIHBhZ2UvRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmgKKyAgICBwYWdlL0ZyYW1l
RmxhdHRlbmluZy5oCiAgICAgcGFnZS9GcmFtZUlkZW50aWZpZXIuaAogICAgIHBhZ2UvRnJhbWVT
bmFwc2hvdHRpbmcuaAogICAgIHBhZ2UvRnJhbWVUcmVlLmgKQEAgLTg2MCw2ICs4NjYsNyBAQCBz
ZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGFnZS9NZWRpYVByb2R1
Y2VyLmgKICAgICBwYWdlL01lbW9yeVJlbGVhc2UuaAogICAgIHBhZ2UvTmF2aWdhdG9ySXNMb2dn
ZWRJbi5oCisgICAgcGFnZS9QREZJbWFnZUNhY2hpbmdQb2xpY3kuaAogICAgIHBhZ2UvUGFnZS5o
CiAgICAgcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCiAgICAgcGFnZS9QYWdlQ29uc29sZUNsaWVu
dC5oCkBAIC04OTYsMTIgKzkwMywxNSBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19I
RUFERVJTCiAgICAgcGFnZS9Tb2NrZXRQcm92aWRlci5oCiAgICAgcGFnZS9TcGVlY2hSZWNvZ25p
dGlvblByb3ZpZGVyLmgKICAgICBwYWdlL1NwZWVjaFN5bnRoZXNpc0NsaWVudC5oCisgICAgcGFn
ZS9TdG9yYWdlQmxvY2tpbmdQb2xpY3kuaAogICAgIHBhZ2UvU3VzcGVuZGFibGVUaW1lci5oCisg
ICAgcGFnZS9UZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yLmgKICAgICBwYWdl
L1RleHRJbmRpY2F0b3IuaAogICAgIHBhZ2UvVXNlckNvbnRlbnRDb250cm9sbGVyLmgKICAgICBw
YWdlL1VzZXJDb250ZW50UHJvdmlkZXIuaAogICAgIHBhZ2UvVXNlckNvbnRlbnRUeXBlcy5oCiAg
ICAgcGFnZS9Vc2VyQ29udGVudFVSTFBhdHRlcm4uaAorICAgIHBhZ2UvVXNlckludGVyZmFjZURp
cmVjdGlvblBvbGljeS5oCiAgICAgcGFnZS9Vc2VyTWVzc2FnZUhhbmRsZXIuaAogICAgIHBhZ2Uv
VXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5oCiAgICAgcGFnZS9Vc2VyTWVzc2FnZUhhbmRs
ZXJzTmFtZXNwYWNlLmgKQEAgLTEzODEsMTEgKzEzOTEsMTMgQEAgc2V0KFdlYkNvcmVfUFJJVkFU
RV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL3NxbC9TUUxpdGVUcmFuc2FjdGlvbi5o
CiAKICAgICBwbGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmgKKyAgICBwbGF0Zm9ybS90ZXh0L0Zv
bnRSZW5kZXJpbmdNb2RlLmgKICAgICBwbGF0Zm9ybS90ZXh0L1N0cmluZ1dpdGhEaXJlY3Rpb24u
aAogICAgIHBsYXRmb3JtL3RleHQvVGV4dEJvdW5kYXJpZXMuaAogICAgIHBsYXRmb3JtL3RleHQv
VGV4dENoZWNrZXJDbGllbnQuaAogICAgIHBsYXRmb3JtL3RleHQvVGV4dENoZWNraW5nLmgKICAg
ICBwbGF0Zm9ybS90ZXh0L1RleHRDb2RlYy5oCisgICAgcGxhdGZvcm0vdGV4dC9UZXh0RGlyZWN0
aW9uLmgKICAgICBwbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZy5oCiAgICAgcGxhdGZvcm0vdGV4
dC9UZXh0RW5jb2RpbmdSZWdpc3RyeS5oCiAgICAgcGxhdGZvcm0vdGV4dC9UZXh0RmxhZ3MuaApJ
bmRleDogU291cmNlL1dlYkNvcmUvU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzLnJiCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy5yYgkocmV2aXNp
b24gMjY5ODU2KQorKysgU291cmNlL1dlYkNvcmUvU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzLnJi
CSh3b3JraW5nIGNvcHkpCkBAIC0xMzIsNyArMTMyLDcgQEAgY2xhc3MgU2V0dGluZwogICAgICAg
bmFtZQogICAgIGVsc2lmIG5hbWUuc3RhcnRfd2l0aD8oIkNTUyIsICJYU1MiLCAiRlRQIiwgIkRP
TSIsICJETlMiLCAiUERGIiwgIklDRSIsICJIRFIiKQogICAgICAgbmFtZVswLi4yXS5kb3duY2Fz
ZSArIG5hbWVbMy4ubmFtZS5sZW5ndGhdCi0gICAgZWxzaWYgbmFtZS5zdGFydF93aXRoPygiSFRU
UCIpCisgICAgZWxzaWYgbmFtZS5zdGFydF93aXRoPygiSFRUUCIsICJIVE1MIikKICAgICAgIG5h
bWVbMC4uM10uZG93bmNhc2UgKyBuYW1lWzQuLm5hbWUubGVuZ3RoXQogICAgIGVsc2UKICAgICAg
IG5hbWVbMF0uZG93bmNhc2UgKyBuYW1lWzEuLm5hbWUubGVuZ3RoXQpAQCAtMTc1LDcgKzE3NSw5
IEBAIGNsYXNzIFNldHRpbmcKICAgZW5kCiAKICAgZGVmIHNldHRlckZ1bmN0aW9uTmFtZQotICAg
IGlmIEBuYW1lLnN0YXJ0X3dpdGg/KCJjc3MiLCAieHNzIiwgImZ0cCIsICJkb20iLCAiZG5zIiwg
ImljZSIsICJoZHIiKQorICAgIGlmIEBuYW1lLnN0YXJ0X3dpdGg/KCJodG1sIikKKyAgICAgICJz
ZXQiICsgQG5hbWVbMC4uM10udXBjYXNlICsgQG5hbWVbNC4uQG5hbWUubGVuZ3RoXQorICAgIGVs
c2lmIEBuYW1lLnN0YXJ0X3dpdGg/KCJjc3MiLCAieHNzIiwgImZ0cCIsICJkb20iLCAiZG5zIiwg
ImljZSIsICJoZHIiKQogICAgICAgInNldCIgKyBAbmFtZVswLi4yXS51cGNhc2UgKyBAbmFtZVsz
Li5AbmFtZS5sZW5ndGhdCiAgICAgZWxzZQogICAgICAgInNldCIgKyBAbmFtZVswXS51cGNhc2Ug
KyBAbmFtZVsxLi5AbmFtZS5sZW5ndGhdCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNjk4NTYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTEzODUsNyArMTM4NSw3IEBACiAJCTRFMTk1OTJBMEEzOURBQ0MwMDIyMEZFNSAvKiBN
ZWRpYVF1ZXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0RTE5NTkyNDBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFRdWVyeS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTRFMTk1OTJDMEEzOURBQ0MwMDIy
MEZFNSAvKiBNZWRpYVF1ZXJ5RXZhbHVhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0RTE5NTkyNjBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFRdWVy
eUV2YWx1YXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTRGMTUzNERFMTFCNTMyRUMwMDIxRkQ4NiAvKiBFZGl0aW5nQmVoYXZpb3IuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGMTUzNEREMTFCNTMy
RUMwMDIxRkQ4NiAvKiBFZGl0aW5nQmVoYXZpb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk0RjE1MzRFMDExQjUzMzAyMDAyMUZEODYgLyogRWRp
dGluZ0JlaGF2aW9yVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDRGMTUzNERGMTFCNTMzMDIwMDIxRkQ4NiAvKiBFZGl0aW5nQmVoYXZpb3JUeXBl
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTRG
MTUzNEUwMTFCNTMzMDIwMDIxRkQ4NiAvKiBFZGl0aW5nQmVoYXZpb3JUeXBlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RjE1MzRERjExQjUzMzAyMDAy
MUZEODYgLyogRWRpdGluZ0JlaGF2aW9yVHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTRGQTY1QTZDMTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRo
TUxTcGFjZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDRGQTY1QTZBMTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxTcGFjZUVsZW1lbnQuaCAq
LzsgfTsKIAkJNTAxQkFBQTkxMzk1MEUyQzAwRjdBQ0VCIC8qIFdpbmRSdWxlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDFCQUFBODEzOTUwRTJDMDBG
N0FDRUIgLyogV2luZFJ1bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk1MDRBQUNDRTE4MzQ0NTU5MDBFM0Q5QkMgLyogSW5zcGVjdG9yTm9kZUZp
bmRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTA0
QUFDQ0MxODM0NDU1OTAwRTNEOUJDIC8qIEluc3BlY3Rvck5vZGVGaW5kZXIuaCAqLzsgfTsKQEAg
LTM5MTIsNiArMzkxMiwxOSBAQAogCQlCQzQ5MThDNzBCRkVBMDUwMDA5RDYzMTYgLyogSlNIVE1M
RnJhbWVFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzQ5MThDMTBCRkVBMDUwMDA5RDYzMTYgLyogSlNIVE1MRnJhbWVFbGVtZW50LmggKi87
IH07CiAJCUJDNDkxOEM5MEJGRUEwNTAwMDlENjMxNiAvKiBKU0hUTUxJRnJhbWVFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzQ5MThDMzBC
RkVBMDUwMDA5RDYzMTYgLyogSlNIVE1MSUZyYW1lRWxlbWVudC5oICovOyB9OwogCQlCQzQ5MUI3
OTBDMDIzRUZEMDA5RDYzMTYgLyogSlNIVE1MTWFycXVlZUVsZW1lbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNDkxQjc3MEMwMjNFRkQwMDlENjMx
NiAvKiBKU0hUTUxNYXJxdWVlRWxlbWVudC5oICovOyB9OworCQlCQzRBNTMyMzI1NjA1Mjc2MDAy
OEM1OTIgLyogRWRpdGFibGVMaW5rQmVoYXZpb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNEE1MzIxMjU2MDUyNzAwMDI4QzU5MiAvKiBFZGl0YWJs
ZUxpbmtCZWhhdmlvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCUJDNEE1MzI1MjU2MDU1NUYwMDI4QzU5MiAvKiBUZXh0RGlyZWN0aW9uU3VibWVu
dUluY2x1c2lvbkJlaGF2aW9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzRBNTMyNDI1NjA1NTU5MDAyOEM1OTIgLyogVGV4dERpcmVjdGlvblN1Ym1l
bnVJbmNsdXNpb25CZWhhdmlvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCUJDNEE1MzI3MjU2MDU1RDMwMDI4QzU5MiAvKiBVc2VySW50ZXJmYWNl
RGlyZWN0aW9uUG9saWN5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzRBNTMyNjI1NjA1NUQzMDAyOEM1OTIgLyogVXNlckludGVyZmFjZURpcmVjdGlv
blBvbGljeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCUJDNEE1MzI5MjU2MDU2M0IwMDI4QzU5MiAvKiBQREZJbWFnZUNhY2hpbmdQb2xpY3kuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNEE1MzI4MjU2
MDU2M0IwMDI4QzU5MiAvKiBQREZJbWFnZUNhY2hpbmdQb2xpY3kuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlCQzRBNTMyQjI1NjA1NjZFMDAyOEM1
OTIgLyogRnJhbWVGbGF0dGVuaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzRBNTMyQTI1NjA1NjZFMDAyOEM1OTIgLyogRnJhbWVGbGF0dGVuaW5n
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQkM0
QTUzMkQyNTYwNTZENTAwMjhDNTkyIC8qIERlYnVnT3ZlcmxheVJlZ2lvbnMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNEE1MzJDMjU2MDU2RDUwMDI4
QzU5MiAvKiBEZWJ1Z092ZXJsYXlSZWdpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQkM0QTUzMkYyNTYwNTdDRDAwMjhDNTkyIC8qIEZvbnRM
b2FkVGltaW5nT3ZlcnJpZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDNEE1MzJFMjU2MDU3Q0QwMDI4QzU5MiAvKiBGb250TG9hZFRpbWluZ092ZXJy
aWRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
QkM0QTUzMzEyNTYwNTkwMzAwMjhDNTkyIC8qIEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0QTUzMzAyNTYw
NTkwMzAwMjhDNTkyIC8qIEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUJDNEE1MzMzMjU2MDU5ODMwMDI4
QzU5MiAvKiBIVE1MUGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0QTUzMzIyNTYwNTk4MzAwMjhDNTkyIC8q
IEhUTUxQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQkM0QTUzMzUyNTYwNUE1NjAwMjhDNTkyIC8qIERh
dGFEZXRlY3RvclR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzRBNTMzNDI1NjA1QTU2MDAyOEM1OTIgLyogRGF0YURldGVjdG9yVHlwZXMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlCQzRBNTMz
NzI1NjA1QUUxMDAyOEM1OTIgLyogU3RvcmFnZUJsb2NraW5nUG9saWN5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzRBNTMzNjI1NjA1QUUxMDAyOEM1
OTIgLyogU3RvcmFnZUJsb2NraW5nUG9saWN5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQkM0QTUzMzkyNTYwNjM5ODAwMjhDNTkyIC8qIEZvbnRS
ZW5kZXJpbmdNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzRBNTMzODI1NjA2Mzk4MDAyOEM1OTIgLyogRm9udFJlbmRlcmluZ01vZGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlCQzRBNTMzQjI1
NjA2NEUxMDAyOEM1OTIgLyogVGV4dERpcmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0QTUzM0EyNTYwNjRFMTAwMjhDNTkyIC8qIFRleHRE
aXJlY3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlCQzUxMTU2RTEyQjE3NDlDMDBDOTY3NTQgLyogU2Nyb2xsQW5pbWF0b3JNYWMubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzUxMTU2RDEyQjE3
NDlDMDBDOTY3NTQgLyogU2Nyb2xsQW5pbWF0b3JNYWMubW0gKi87IH07CiAJCUJDNTNDNUY1MERB
NTZCOTIwMDIxRUI1RCAvKiBHcmFkaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkM1M0M1RjQwREE1NkI5MjAwMjFFQjVEIC8qIEdyYWRpZW50Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM1M0M2
OTIwREE1OTExNDAwMjFFQjVEIC8qIENTU0dyYWRpZW50VmFsdWUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNTNDNjkxMERBNTkxMTQwMDIxRUI1RCAv
KiBDU1NHcmFkaWVudFZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKQEAgLTgzNTYsNyArODM2OSw3IEBACiAJCTRFMTk1OTI1MEEzOURBQ0MwMDIy
MEZFNSAvKiBNZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBNZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNEUxOTU5MjYwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnlFdmFsdWF0
b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUXVlcnlFdmFsdWF0
b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEYxNTM0REQxMUI1MzJFQzAwMjFG
RDg2IC8qIEVkaXRpbmdCZWhhdmlvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBFZGl0aW5nQmVoYXZpb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNEYxNTM0
REYxMUI1MzMwMjAwMjFGRDg2IC8qIEVkaXRpbmdCZWhhdmlvclR5cGVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVkaXRpbmdCZWhhdmlvclR5cGVzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTRGMTUzNERGMTFCNTMzMDIwMDIxRkQ4NiAvKiBFZGl0aW5nQmVo
YXZpb3JUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVkaXRpbmdCZWhh
dmlvclR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEZBNjVBNjkxMTA4QUJF
RDAwMjYxNUUwIC8qIE1hdGhNTFNwYWNlRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBNYXRoTUxTcGFjZUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0RkE2NUE2QTExMDhBQkVEMDAyNjE1RTAgLyogTWF0aE1MU3BhY2VFbGVt
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hdGhNTFNwYWNlRWxlbWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0RkFCNDg2NDE2NDNBNjZEMDBGNzBD
MDcgLyogRWxlbWVudFJhcmVEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEVsZW1lbnRSYXJlRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xMzgxOCw2ICsxMzgzMSwxOSBAQAogCQlCQzQ5MUI0RTBDMDIzRTJEMDA5RDYzMTYgLyogSFRN
TE1hcnF1ZWVFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MTWFycXVlZUVs
ZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzQ5MUI3NjBDMDIzRUZE
MDA5RDYzMTYgLyogSlNIVE1MTWFycXVlZUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTE1hcnF1ZWVFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQkM0OTFCNzcwQzAyM0VGRDAwOUQ2MzE2IC8qIEpTSFRNTE1hcnF1
ZWVFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0hUTUxNYXJx
dWVlRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzRBNTMyMTI1NjA1
MjcwMDAyOEM1OTIgLyogRWRpdGFibGVMaW5rQmVoYXZpb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRWRp
dGFibGVMaW5rQmVoYXZpb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM0QTUz
MjQyNTYwNTU1OTAwMjhDNTkyIC8qIFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZp
b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlv
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzRBNTMyNjI1NjA1NUQzMDAyOEM1
OTIgLyogVXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVc2Vy
SW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUJDNEE1MzI4MjU2MDU2M0IwMDI4QzU5MiAvKiBQREZJbWFnZUNhY2hpbmdQb2xpY3kuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUERGSW1hZ2VDYWNoaW5nUG9saWN5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUJDNEE1MzJBMjU2MDU2NkUwMDI4QzU5MiAvKiBGcmFtZUZsYXR0ZW5pbmcuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRnJhbWVGbGF0dGVuaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUJDNEE1MzJDMjU2MDU2RDUwMDI4QzU5MiAvKiBEZWJ1Z092ZXJsYXlSZWdpb25zLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERlYnVnT3ZlcmxheVJlZ2lvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQkM0QTUzMkUyNTYwNTdDRDAwMjhDNTkyIC8qIEZvbnRMb2FkVGltaW5nT3Zl
cnJpZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9udExvYWRUaW1pbmdPdmVycmlkZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlCQzRBNTMzMDI1NjA1OTAzMDAyOEM1OTIgLyogRm9yY2Vk
QWNjZXNzaWJpbGl0eVZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvcmNlZEFjY2Vzc2liaWxpdHlW
YWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzRBNTMzMjI1NjA1OTgzMDAy
OEM1OTIgLyogSFRNTFBhcnNlclNjcmlwdGluZ0ZsYWdQb2xpY3kuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SFRNTFBhcnNlclNjcmlwdGluZ0ZsYWdQb2xpY3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQkM0QTUzMzQyNTYwNUE1NjAwMjhDNTkyIC8qIERhdGFEZXRlY3RvclR5cGVzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERhdGFEZXRlY3RvclR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUJDNEE1MzM2MjU2MDVBRTEwMDI4QzU5MiAvKiBTdG9yYWdlQmxvY2tpbmdQb2xpY3ku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZUJsb2NraW5nUG9saWN5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUJDNEE1MzM4MjU2MDYzOTgwMDI4QzU5MiAvKiBGb250UmVuZGVyaW5n
TW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBGb250UmVuZGVyaW5nTW9kZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlCQzRBNTMzQTI1NjA2NEUxMDAyOEM1OTIgLyogVGV4dERpcmVjdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0RGlyZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDNTExNTZEMTJCMTc0OUMwMEM5Njc1NCAvKiBTY3JvbGxBbmltYXRvck1hYy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbEFuaW1hdG9y
TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzUxNTgwQTBDMDNENDA0MDA4
QkIwRUUgLyogSlNIVE1MRG9jdW1lbnRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTSFRNTERvY3VtZW50Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQkM1M0M1RjQwREE1NkI5MjAwMjFFQjVEIC8qIEdyYWRpZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYWRpZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xODg3OCw2ICsxODkwNCw3IEBACiAJCQkJMjk4MUNBQUYxMzE4MjJF
QzAwRDEyRjJBIC8qIEFYT2JqZWN0Q2FjaGUuY3BwICovLAogCQkJCTI5QTgxMjFBMEZCQjlDMUQw
MDUxMDI5MyAvKiBBWE9iamVjdENhY2hlLmggKi8sCiAJCQkJOTFDOUYyRjgxQUUzQkUyNDAwOTVC
NjFDIC8qIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmggKi8sCisJCQkJQkM0QTUzMzAyNTYwNTkw
MzAwMjhDNTkyIC8qIEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZS5oICovLAogCQkJKTsKIAkJCXBh
dGggPSBhY2Nlc3NpYmlsaXR5OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTIxNzgw
LDYgKzIxODA3LDcgQEAKIAkJCQk5NzVDQTI4OTEzMDM2NUY4MDBFOTlBRDkgLyogQ3J5cHRvLmlk
bCAqLywKIAkJCQkxQUNCMkIyMTFBNTczM0Y0MDAzMzMzOTIgLyogRGF0YWJhc2VQcm92aWRlci5j
cHAgKi8sCiAJCQkJMUFDQjJCMjIxQTU3MzNGNDAwMzMzMzkyIC8qIERhdGFiYXNlUHJvdmlkZXIu
aCAqLywKKwkJCQlCQzRBNTMyQzI1NjA1NkQ1MDAyOEM1OTIgLyogRGVidWdPdmVybGF5UmVnaW9u
cy5oICovLAogCQkJCTBGNkExMkJCMUEwMDkyMzcwMEM2REU3MiAvKiBEZWJ1Z1BhZ2VPdmVybGF5
cy5jcHAgKi8sCiAJCQkJMEY2QTEyQkMxQTAwOTIzNzAwQzZERTcyIC8qIERlYnVnUGFnZU92ZXJs
YXlzLmggKi8sCiAJCQkJN0NCRDEyOUMxRjk4QjVGRjAwMTI3RDI5IC8qIERlcHJlY2F0ZWRHbG9i
YWxTZXR0aW5ncy5jcHAgKi8sCkBAIC0yMTgzMiw2ICsyMTg2MCw3IEBACiAJCQkJNjVCRjAyMkEw
OTc0ODE2MzAwQzQzMTk2IC8qIEZyYW1lLmggKi8sCiAJCQkJOTc0QTg2MjAxNEI3QURCQjAwM0ZE
Qzc2IC8qIEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAgKi8sCiAJCQkJOTc0QTg2MjExNEI3
QURCQjAwM0ZEQzc2IC8qIEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5oICovLAorCQkJCUJDNEE1
MzJBMjU2MDU2NkUwMDI4QzU5MiAvKiBGcmFtZUZsYXR0ZW5pbmcuaCAqLywKIAkJCQkwRjExNzgx
NjIyRTNDNDdFMDA4QkQ1NzAgLyogRnJhbWVJZGVudGlmaWVyLmggKi8sCiAJCQkJQzRDRDYyOTgx
ODM4Mzc2NjAwN0VCQUYxIC8qIEZyYW1lU25hcHNob3R0aW5nLmNwcCAqLywKIAkJCQlDNENENjI5
OTE4MzgzNzY2MDA3RUJBRjEgLyogRnJhbWVTbmFwc2hvdHRpbmcuaCAqLywKQEAgLTIxOTAyLDYg
KzIxOTMxLDcgQEAKIAkJCQkyRDVDOUNGRTE5QzdCNTJFMDBCM0M1QzEgLyogUGFnZU92ZXJsYXlD
b250cm9sbGVyLmggKi8sCiAJCQkJMzcxRTY1Q0QxMzY2MUVFRDAwQkVFREIwIC8qIFBhZ2VTZXJp
YWxpemVyLmNwcCAqLywKIAkJCQkzNzFFNjVDQjEzNjYxRURDMDBCRUVEQjAgLyogUGFnZVNlcmlh
bGl6ZXIuaCAqLywKKwkJCQlCQzRBNTMyODI1NjA1NjNCMDAyOEM1OTIgLyogUERGSW1hZ2VDYWNo
aW5nUG9saWN5LmggKi8sCiAJCQkJN0M3MjQ3MUUyNTE2NzU4ODAwQzM2M0NEIC8qIFBlcmZvcm1h
bmNlK05hdmlnYXRpb25UaW1pbmcuaWRsICovLAogCQkJCTdDNzI0NzFDMjUxNjc0Q0UwMEMzNjND
RCAvKiBQZXJmb3JtYW5jZStQZXJmb3JtYW5jZVRpbWVsaW5lLmlkbCAqLywKIAkJCQk3QzcyNDcx
RDI1MTY3NTJDMDBDMzYzQ0QgLyogUGVyZm9ybWFuY2UrUmVzb3VyY2VUaW1pbmcuaWRsICovLApA
QCAtMjIwMjUsOCArMjIwNTUsMTAgQEAKIAkJCQk2MjZDREUwRDExNDA0MjRDMDAxRTVBNjggLyog
U3BhdGlhbE5hdmlnYXRpb24uaCAqLywKIAkJCQk5M0EwNDgyNjI1NDk1NTAwMDAwQUM0NjIgLyog
U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovLAogCQkJCUMxNDkzODA1MjIzNDI3MTkwMDBD
RDcwNyAvKiBTcGVlY2hTeW50aGVzaXNDbGllbnQuaCAqLywKKwkJCQlCQzRBNTMzNjI1NjA1QUUx
MDAyOEM1OTIgLyogU3RvcmFnZUJsb2NraW5nUG9saWN5LmggKi8sCiAJCQkJNjJDMTIxN0ExMUFC
OUU3NjAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIuY3BwICovLAogCQkJCTYyQzEyMTdCMTFB
QjlFNzcwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmggKi8sCisJCQkJQkM0QTUzMjQyNTYw
NTU1OTAwMjhDNTkyIC8qIFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IuaCAq
LywKIAkJCQkyRDRGOTZGMTFBMUVDQzI0MDA5OEJGODggLyogVGV4dEluZGljYXRvci5jcHAgKi8s
CiAJCQkJMkQ0Rjk2RjIxQTFFQ0MyNDAwOThCRjg4IC8qIFRleHRJbmRpY2F0b3IuaCAqLywKIAkJ
CQlGNEUxOTY1RjIxRjI2RTRFMDAyODUwNzggLyogVW5kb0l0ZW0uY3BwICovLApAQCAtMjIwNDIs
NiArMjIwNzQsNyBAQAogCQkJCTAwM0YxRkU5MTFFNkFCNDMwMDgyNThEOSAvKiBVc2VyQ29udGVu
dFR5cGVzLmggKi8sCiAJCQkJQkNBQ0YzQkExMDcyOTIxQTAwQzBDOEEzIC8qIFVzZXJDb250ZW50
VVJMUGF0dGVybi5jcHAgKi8sCiAJCQkJQkNBQ0YzQkIxMDcyOTIxQTAwQzBDOEEzIC8qIFVzZXJD
b250ZW50VVJMUGF0dGVybi5oICovLAorCQkJCUJDNEE1MzI2MjU2MDU1RDMwMDI4QzU5MiAvKiBV
c2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5LmggKi8sCiAJCQkJN0MzQjc5NkYxOTA4NzU3QjAw
QjQ3QTJEIC8qIFVzZXJNZXNzYWdlSGFuZGxlci5jcHAgKi8sCiAJCQkJN0MzQjc5NzAxOTA4NzU3
QjAwQjQ3QTJEIC8qIFVzZXJNZXNzYWdlSGFuZGxlci5oICovLAogCQkJCTdDNzNGQjBFMTkxRUY2
MEUwMDdERTA2MSAvKiBVc2VyTWVzc2FnZUhhbmRsZXIuaWRsICovLApAQCAtMjI1NDAsNiArMjI1
NzMsNyBAQAogCQkJCTVDQ0MyNzA2MjJENTNCNjgwMDk2NEZBMCAvKiBBdXRvZmlsbEVsZW1lbnRz
LmggKi8sCiAJCQkJQzUyMjdERUYxQzNDNkRENzAwRjVFRDU0IC8qIERhdGFEZXRlY3Rpb24uaCAq
LywKIAkJCQlDNTIyN0RGMDFDM0M2REQ3MDBGNUVENTQgLyogRGF0YURldGVjdGlvbi5tbSAqLywK
KwkJCQlCQzRBNTMzNDI1NjA1QTU2MDAyOEM1OTIgLyogRGF0YURldGVjdG9yVHlwZXMuaCAqLywK
IAkJCQk5MzdGRjNENjFBMTAxMzFCMDA4RUJBMzEgLyogRGljdGlvbmFyeUxvb2t1cC5tbSAqLywK
IAkJCQk5QjU1RUVFODFCM0U4ODk4MDA1MzQyQkMgLyogRWRpdG9yQ29jb2EubW0gKi8sCiAJCQkJ
RjQyQ0VCNTQyMTQwMzFFRTAwMkRDQTcyIC8qIEZvbnRBdHRyaWJ1dGVDaGFuZ2VzQ29jb2EubW0g
Ki8sCkBAIC0yMjg0Niw2ICsyMjg4MCw3IEBACiAJCQkJQ0VDQURGQzUxNTM3NzhGRjAwRTM3MDY4
IC8qIERpY3RhdGlvbkNvbW1hbmQuaCAqLywKIAkJCQk5Mzg0MzBCMjI0NzVERTNGMDAzRjk2MTcg
LyogRGljdGF0aW9uQ29udGV4dC5oICovLAogCQkJCTJENTY0NkFGMUI4Rjg0OTMwMDNDNDk5NCAv
KiBEaWN0aW9uYXJ5UG9wdXBJbmZvLmggKi8sCisJCQkJQkM0QTUzMjEyNTYwNTI3MDAwMjhDNTky
IC8qIEVkaXRhYmxlTGlua0JlaGF2aW9yLmggKi8sCiAJCQkJRjQ5RTk4RTQyMURFRTZDMTAwOUFF
NTVFIC8qIEVkaXRBY3Rpb24uY3BwICovLAogCQkJCTkzMzA5RDkzMDk5RTY0OTEwMDU2RTU4MSAv
KiBFZGl0QWN0aW9uLmggKi8sCiAJCQkJOTMzMDlEOTQwOTlFNjQ5MTAwNTZFNTgxIC8qIEVkaXRD
b21tYW5kLmNwcCAqLywKQEAgLTIyODUzLDcgKzIyODg4LDcgQEAKIAkJCQk5MzMwOUQ5ODA5OUU2
NDkxMDA1NkU1ODEgLyogRWRpdGluZy5jcHAgKi8sCiAJCQkJOTMzMDlEOTkwOTlFNjQ5MTAwNTZF
NTgxIC8qIEVkaXRpbmcuaCAqLywKIAkJCQk0RjE1MzRERDExQjUzMkVDMDAyMUZEODYgLyogRWRp
dGluZ0JlaGF2aW9yLmggKi8sCi0JCQkJNEYxNTM0REYxMUI1MzMwMjAwMjFGRDg2IC8qIEVkaXRp
bmdCZWhhdmlvclR5cGVzLmggKi8sCisJCQkJNEYxNTM0REYxMUI1MzMwMjAwMjFGRDg2IC8qIEVk
aXRpbmdCZWhhdmlvclR5cGUuaCAqLywKIAkJCQkzQUM2NDhCMTEyOUUxNDY1MDBDM0VCMjUgLyog
RWRpdGluZ0JvdW5kYXJ5LmggKi8sCiAJCQkJOUJBQjZDNkIxMjU1MDYzMTAwMTYyNkQ0IC8qIEVk
aXRpbmdTdHlsZS5jcHAgKi8sCiAJCQkJOUJBQjZDNkExMjU1MDYzMTAwMTYyNkQ0IC8qIEVkaXRp
bmdTdHlsZS5oICovLApAQCAtMjM4OTUsNiArMjM5MzAsNyBAQAogCQkJCTk3M0Y0MTg4MTY5Qjk1
RUYwMDA2QkY2MCAvKiBIVE1MUGFyc2VyT3B0aW9ucy5oICovLAogCQkJCTk3N0IzODU3MTIyODgz
RTkwMEI4MUZGOCAvKiBIVE1MUGFyc2VyU2NoZWR1bGVyLmNwcCAqLywKIAkJCQk5NzdCMzg1ODEy
Mjg4M0U5MDBCODFGRjggLyogSFRNTFBhcnNlclNjaGVkdWxlci5oICovLAorCQkJCUJDNEE1MzMy
MjU2MDU5ODMwMDI4QzU5MiAvKiBIVE1MUGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeS5oICovLAog
CQkJCTk3N0IzODU5MTIyODgzRTkwMEI4MUZGOCAvKiBIVE1MUHJlbG9hZFNjYW5uZXIuY3BwICov
LAogCQkJCTk3N0IzODVBMTIyODgzRTkwMEI4MUZGOCAvKiBIVE1MUHJlbG9hZFNjYW5uZXIuaCAq
LywKIAkJCQlBOEQyMjNGQjE2QjUyRTRFMDAxNTcyODggLyogSFRNTFJlc291cmNlUHJlbG9hZGVy
LmNwcCAqLywKQEAgLTI2NTU3LDYgKzI2NTkzLDcgQEAKIAkJCQlDRUNDRkMzQTE0MTk3M0Q1MDAy
QTBBQzEgLyogRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmggKi8sCiAJCQkJREZDNjEwQTIyNEZCMkE3
QzAwNjI1NEM4IC8qIEVuY29kaW5nVGFibGVzLmNwcCAqLywKIAkJCQlERkM2MTBBNDI0RkIyQTdE
MDA2MjU0QzggLyogRW5jb2RpbmdUYWJsZXMuaCAqLywKKwkJCQlCQzRBNTMzODI1NjA2Mzk4MDAy
OEM1OTIgLyogRm9udFJlbmRlcmluZ01vZGUuaCAqLywKIAkJCQkzNzVDRDIzMTExOUQ0M0M4MDBB
MkE4NTkgLyogSHlwaGVuYXRpb24uaCAqLywKIAkJCQk3NjMzQTcyNTEzRDhCMzNBMDA4NTAxQjYg
LyogTG9jYWxlVG9TY3JpcHRNYXBwaW5nLmNwcCAqLywKIAkJCQk3NjMzQTcyNDEzRDhCMzNBMDA4
NTAxQjYgLyogTG9jYWxlVG9TY3JpcHRNYXBwaW5nLmggKi8sCkBAIC0yNjU5MSw2ICsyNjYyOCw3
IEBACiAJCQkJQjJDM0RBMTIwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY1VURjE2LmggKi8s
CiAJCQkJOTM0M0NCN0YxMkYyNUU1MTAwMzNDNUVFIC8qIFRleHRDb2RlY1VURjguY3BwICovLAog
CQkJCTkzNDNDQjgwMTJGMjVFNTEwMDMzQzVFRSAvKiBUZXh0Q29kZWNVVEY4LmggKi8sCisJCQkJ
QkM0QTUzM0EyNTYwNjRFMTAwMjhDNTkyIC8qIFRleHREaXJlY3Rpb24uaCAqLywKIAkJCQlCMkMz
REExNjBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dEVuY29kaW5nLmNwcCAqLywKIAkJCQlCMkMzREEx
NzBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dEVuY29kaW5nLmggKi8sCiAJCQkJQzEwNURBNjMwRjNB
QTZCODAwMURENDRGIC8qIFRleHRFbmNvZGluZ0RldGVjdG9yLmggKi8sCkBAIC0yOTIyOSw2ICsy
OTI2Nyw3IEBACiAJCQkJMUMyNEVFQTMxQzcyOUNFNDAwODBGOEZDIC8qIEZvbnRGYWNlU2V0Lmgg
Ki8sCiAJCQkJMUMyNEVFQTExQzcyOUIzMjAwODBGOEZDIC8qIEZvbnRGYWNlU2V0LmlkbCAqLywK
IAkJCQk3QzNBOEFCQzI1MDlBMjU2MDA4QzQ3N0YgLyogRm9udEZhY2VTb3VyY2UuaWRsICovLAor
CQkJCUJDNEE1MzJFMjU2MDU3Q0QwMDI4QzU5MiAvKiBGb250TG9hZFRpbWluZ092ZXJyaWRlLmgg
Ki8sCiAJCQkJQzJBQjBCMDMxRTZERTkyQzAwMTM0OEM1IC8qIEZvbnRTZWxlY3Rpb25WYWx1ZUlu
bGluZXMuaCAqLywKIAkJCQkxQzMyNDkxMDFDNkQ2QTNCMDA3RURCMzIgLyogRm9udFZhcmlhbnRC
dWlsZGVyLmNwcCAqLywKIAkJCQlDMjAxNUMwOTFCRTZGRTJDMDA4MjIzODkgLyogRm9udFZhcmlh
bnRCdWlsZGVyLmggKi8sCkBAIC0zMTQ2OSw2ICszMTUwOCw3IEBACiAJCQkJQkUyMzQ4MEQxOEE5
ODcxNDAwRTRCNkU4IC8qIERhdGFDdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1MjI3REYxMUMz
QzZERjEwMEY1RUQ1NCAvKiBEYXRhRGV0ZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Qzc5
NDFFNTFDNTZDMjkzMDBBNEM1OEUgLyogRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5oIGluIEhl
YWRlcnMgKi8sCisJCQkJQkM0QTUzMzUyNTYwNUE1NjAwMjhDNTkyIC8qIERhdGFEZXRlY3RvclR5
cGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNThCNDVCQTIwQUQwN0REMDA5OTEwMjUgLyogRGF0
YUxpc3RCdXR0b25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNTE3NjcwMzIwQjg4QzE0
MDBENDExNjcgLyogRGF0YUxpc3RTdWdnZXN0aW9uSW5mb3JtYXRpb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCUU1MkNGNTRGMjBBMzVBMjgwMERBREEyNyAvKiBEYXRhTGlzdFN1Z2dlc3Rpb25QaWNr
ZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMzE0OTEsNiArMzE1MzEsNyBAQAogCQkJCUY1NUIzREJB
MTI1MUYxMkQwMDNFRjI2OSAvKiBEYXRlVGltZUxvY2FsSW5wdXRUeXBlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlFNUYwNkFFQjI0RDQ5QkY3MDBCQkM0RjggLyogRGF0ZVRpbWVOdW1lcmljRmllbGRF
bGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNUYwNkFFRjI0RDRBNjM3MDBCQkM0RjggLyog
RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM0QTUz
MkQyNTYwNTZENTAwMjhDNTkyIC8qIERlYnVnT3ZlcmxheVJlZ2lvbnMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGNkExMkJFMUEwMDkyMzcwMEM2REU3MiAvKiBEZWJ1Z1BhZ2VPdmVybGF5cy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDVGRUE1RDAxNTZEREU4QzAwNjU0MTAxIC8qIERlY2ltYWwuaCBp
biBIZWFkZXJzICovLAogCQkJCTcxNUFENzIwMjA1MDUxMzIwMEQ1OTJEQyAvKiBEZWNsYXJhdGl2
ZUFuaW1hdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTY3MSwxMSArMzE3MTIsMTIgQEAKIAkJ
CQlGRDUzNzM1NzEzN0I2NTNCMDAwMDhEQ0UgLyogRHluYW1pY3NDb21wcmVzc29yS2VybmVsLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGRDZFRDJDNDEzNkI4RTQyMDAzQ0YwNzIgLyogRHluYW1pY3ND
b21wcmVzc29yTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM3QzBCNzYyNERCMzg1MDAwNUQ1
OTU5IC8qIER5bmFtaWNzQ29tcHJlc3Nvck9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAorCQkJCUJD
NEE1MzIzMjU2MDUyNzYwMDI4QzU5MiAvKiBFZGl0YWJsZUxpbmtCZWhhdmlvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTMzMDlERTIwOTlFNjQ5MjAwNTZFNTgxIC8qIEVkaXRBY3Rpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTkzMzA5REU0MDk5RTY0OTIwMDU2RTU4MSAvKiBFZGl0Q29tbWFuZC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlERTgwOTlFNjQ5MjAwNTZFNTgxIC8qIEVkaXRpbmcu
aCBpbiBIZWFkZXJzICovLAogCQkJCTRGMTUzNERFMTFCNTMyRUMwMDIxRkQ4NiAvKiBFZGl0aW5n
QmVoYXZpb3IuaCBpbiBIZWFkZXJzICovLAotCQkJCTRGMTUzNEUwMTFCNTMzMDIwMDIxRkQ4NiAv
KiBFZGl0aW5nQmVoYXZpb3JUeXBlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNEYxNTM0RTAxMUI1
MzMwMjAwMjFGRDg2IC8qIEVkaXRpbmdCZWhhdmlvclR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTNBQzY0OEIyMTI5RTE0NjUwMEMzRUIyNSAvKiBFZGl0aW5nQm91bmRhcnkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTlCQUI2QzZDMTI1NTA2MzEwMDE2MjZENCAvKiBFZGl0aW5nU3R5bGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTRCMzA0M0NEMEFFMDM3M0IwMEE4MjY0NyAvKiBFZGl0b3IuaCBpbiBI
ZWFkZXJzICovLApAQCAtMzE4NDYsMTUgKzMxODg4LDE4IEBACiAJCQkJMUM2NjI2MTExQzZFN0NB
NjAwQUI1MjdDIC8qIEZvbnRGYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzI0RUVBNTFDNzI5
Q0U0MDA4MEY4RkMgLyogRm9udEZhY2VTZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFDMTJBQzJC
MUVFNzc4QUUwMDc5RTBBMCAvKiBGb250RmFtaWx5U3BlY2lmaWNhdGlvbkNvcmVUZXh0LmggaW4g
SGVhZGVycyAqLywKKwkJCQlCQzRBNTMyRjI1NjA1N0NEMDAyOEM1OTIgLyogRm9udExvYWRUaW1p
bmdPdmVycmlkZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg0NTY4MDgxMkI5MERBNjAwOTYwQTlG
IC8qIEZvbnRNZXRyaWNzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCNTMyMEQ2QjEyMkEyNEU5MDAy
RDE0NDAgLyogRm9udFBsYXRmb3JtRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzcxRjRGRkMw
RDI1RTdGMzAwRUNFMEQ1IC8qIEZvbnRSYW5nZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDNEE1
MzM5MjU2MDYzOTgwMDI4QzU5MiAvKiBGb250UmVuZGVyaW5nTW9kZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQzJBQjBBRjcxRTZCM0M2QzAwMTM0OEM1IC8qIEZvbnRTZWxlY3Rpb25BbGdvcml0aG0u
aCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTZCMEQwMDZDRDYwMEVGNkYyNiAvKiBGb250U2Vs
ZWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0MTkwNDFGMUNDNjQ4NkIwMEMzNUY1RCAvKiBG
b250U2VsZWN0b3JDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUY0OEQyQTZDMjE1NjIzQjQw
MEM2NzUyQiAvKiBGb250U2hhZG93LmggaW4gSGVhZGVycyAqLywKIAkJCQk0QTZFOUZDODEzQzE3
RDU3MDA0NkE3RjggLyogRm9udFRhZ2dlZFNldHRpbmdzLmggaW4gSGVhZGVycyAqLywKIAkJCQlD
MjAxNUMwQTFCRTZGRUIyMDA4MjIzODkgLyogRm9udFZhcmlhbnRCdWlsZGVyLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlCQzRBNTMzMTI1NjA1OTAzMDAyOEM1OTIgLyogRm9yY2VkQWNjZXNzaWJpbGl0
eVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0QTBEQTJGRjEyOUIyNDE5MDBBQjYxRTEgLyog
Rm9ybUFzc29jaWF0ZWRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlEMDVDRUQyQTBBNDBC
QjJDMDBDNUFGMzggLyogRm9ybWF0QmxvY2tDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk3
Q0U2Q0JGQjE4N0YzNzA3MDBENDZCRjUgLyogRm9ybWF0Q29udmVydGVyLmggaW4gSGVhZGVycyAq
LywKQEAgLTMxODcyLDYgKzMxOTE3LDcgQEAKIAkJCQlBODUzMTIzRDExRDA0NzFCMDBENEQwNzcg
LyogRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NUJG
MDIyRjA5NzQ4MTYzMDBDNDMxOTYgLyogRnJhbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3NEE4
NjIzMTRCN0FEQkIwMDNGREM3NiAvKiBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUJDNEE1MzJCMjU2MDU2NkUwMDI4QzU5MiAvKiBGcmFtZUZsYXR0ZW5pbmcu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGMTE3ODE4MjJFM0M0N0YwMDhCRDU3MCAvKiBGcmFtZUlk
ZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NkQzNzNDMEFEQkE1REUwMEE0NTU0RCAv
KiBGcmFtZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2RDM3M0UwQURCQTVERTAwQTQ1
NTREIC8qIEZyYW1lTG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTMyMDczLDYgKzMy
MTE5LDcgQEAKIAkJCQk5M0UyQTMwNzEyM0U5REMwMDA5RkUxMkEgLyogSFRNTFBhcnNlcklkaW9t
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTczRjQxOEExNjlCOTVGRjAwMDZCRjYwIC8qIEhUTUxQ
YXJzZXJPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzdCMzg3MTEyMjg4M0U5MDBCODFG
RjggLyogSFRNTFBhcnNlclNjaGVkdWxlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM0QTUzMzMy
NTYwNTk4MzAwMjhDNTkyIC8qIEhUTUxQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQ0MwRTg3NjFCRkU3MEU5MDA4RjdGNTAgLyogSFRNTFBpY3R1cmVFbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODcxRDQ1NjBBMTI3Q0JDMDBCMTJBNjggLyogSFRN
TFBsdWdJbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ0MTUyOTJFMEUxQUU4QTAwMEM0
QTJEMCAvKiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTMzNjkx
LDYgKzMzNzM4LDcgQEAKIAkJCQlBMURGRDUyNjIzMzQ1OTQ4MDA0MkZDREIgLyogUGF5bWVudFN1
bW1hcnlJdGVtcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE2NzdERkQyMTNFMDA2NjAwQTA4QzM0
IC8qIFBheW1lbnRWYWxpZGF0aW9uRXJyb3JzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjc1MzU2
NTBCMDUzODE0MDAyQ0U2NEYgLyogUERGRG9jdW1lbnRJbWFnZS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJQkM0QTUzMjkyNTYwNTYzQjAwMjhDNTkyIC8qIFBERkltYWdlQ2FjaGluZ1BvbGljeS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNUUyQzQzNTExQkNFRTJGNjAwMDFFMkJDIC8qIFBlZXJDb25uZWN0
aW9uQmFja2VuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUVCQjg5MzkxQzc3QzM5OTAwQzY1RDQx
IC8qIFBlZXJNZWRpYURlc2NyaXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk4QTdDQzk2QjEy
MDc2RDczMDAxRDQ1ODggLyogUGVuZGluZ1NjcmlwdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDM5
NSw2ICszNDQ0Myw3IEBACiAJCQkJRTdGQkU3QzMyNEVCMkZCNjAwQTE4RTYyIC8qIFN0ZXJlb1Bh
bm5lck9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQzJEODQ1MTcxNzM0QTEwMDY1MkZD
MCAvKiBTdG9yYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUJFMzdFMDBEQUVFMDBFMDAxMDg1
RkMgLyogU3RvcmFnZUFyZWEuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDNEE1MzM3MjU2MDVBRTEw
MDI4QzU5MiAvKiBTdG9yYWdlQmxvY2tpbmdQb2xpY3kuaCBpbiBIZWFkZXJzICovLAogCQkJCTUx
RTBCQUJCMERBNTU0NzEwMEE5RTQxNyAvKiBTdG9yYWdlRXZlbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUM1RUJERDg0MTA1RURERUMwMDU2ODE2RiAvKiBTdG9yYWdlRXZlbnREaXNwYXRjaGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MUUwQkIzODBEQTVBQ0I2MDBBOUU0MTcgLyogU3RvcmFnZU1h
cC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDcxMSw2ICszNDc2MCw4IEBACiAJCQkJMTQyQjk3Q0Ex
MzEzODk0MzAwOEJFRjRCIC8qIFRleHRDb250cm9sSW5uZXJFbGVtZW50cy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTgyREUzMjUxQzMwQzg1NDAwQkUwMkE4IC8qIFRleHREZWNvcmF0aW9uUGFpbnRl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUM3M0E3MTUyMTg1NzU4NzAwNENDRUE1IC8qIFRleHRE
ZWNvcmF0aW9uVGhpY2tuZXNzLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzRBNTMzQjI1NjA2NEUx
MDAyOEM1OTIgLyogVGV4dERpcmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM0QTUzMjUy
NTYwNTU1RjAwMjhDNTkyIC8qIFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3Iu
aCBpbiBIZWFkZXJzICovLAogCQkJCTk3QkM4NEI0MTIzNzExODAwMDBDNjE2MSAvKiBUZXh0RG9j
dW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3QkM4NDg0MTIzNkZEOTMwMDBDNjE2MSAvKiBU
ZXh0RG9jdW1lbnRQYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTQ3MEQwMDZDMUQw
MEVGNkYyNiAvKiBUZXh0RW5jb2RpbmcuaCBpbiBIZWFkZXJzICovLApAQCAtMzQ4MzgsNiArMzQ4
ODksNyBAQAogCQkJCUYzMkJEQ0Q5MjM2M0FBQ0EwMDczQjZBRSAvKiBVc2VyR2VzdHVyZUVtdWxh
dGlvblNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyNTQyRjREQjExNjZDMjVBMDBFODlBODYg
LyogVXNlckdlc3R1cmVJbmRpY2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5MjAzOTgzMThC
OTVCQzYwMEIzOUFGOSAvKiBVc2VySW5wdXRCcmlkZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCUJD
NEE1MzI3MjU2MDU1RDMwMDI4QzU5MiAvKiBVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk3MUM5MTYwODFEMTQ4M0EzMDBBQ0E0N0QgLyogVXNlckludGVy
ZmFjZUxheW91dERpcmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5MkUxN0QxNEQx
QzAwNDIwQUExIC8qIFVzZXJNZWRpYUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5
MkYxN0QxNEQxQzAwNDIwQUExIC8qIFVzZXJNZWRpYUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICov
LApJbmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9Gb3JjZWRBY2Nlc3NpYmlsaXR5
VmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0ZvcmNl
ZEFjY2Vzc2liaWxpdHlWYWx1ZS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2VudW0gY2xhc3MgRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlIDogdWludDhfdCB7
CisgICAgU3lzdGVtLAorICAgIE9uLAorICAgIE9mZgorfTsKKworfQpJbmRleDogU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTRm9udEZhY2UuY3BwCShyZXZpc2lvbiAyNjk4NTYpCisrKyBTb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTRm9udEZhY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NTksOSArNDU5LDkgQEAgQWxs
b3dVc2VySW5zdGFsbGVkRm9udHMgQ1NTRm9udEZhY2U6OmFsbAogICAgIHJldHVybiBBbGxvd1Vz
ZXJJbnN0YWxsZWRGb250czo6WWVzOwogfQogCi1zdGF0aWMgU2V0dGluZ3M6OkZvbnRMb2FkVGlt
aW5nT3ZlcnJpZGUgZm9udExvYWRUaW1pbmdPdmVycmlkZShDU1NGb250U2VsZWN0b3IqIGZvbnRT
ZWxlY3RvcikKK3N0YXRpYyBGb250TG9hZFRpbWluZ092ZXJyaWRlIGZvbnRMb2FkVGltaW5nT3Zl
cnJpZGUoQ1NTRm9udFNlbGVjdG9yKiBmb250U2VsZWN0b3IpCiB7Ci0gICAgYXV0byBvdmVycmlk
ZVZhbHVlID0gU2V0dGluZ3M6OkZvbnRMb2FkVGltaW5nT3ZlcnJpZGU6Ok5vbmU7CisgICAgYXV0
byBvdmVycmlkZVZhbHVlID0gRm9udExvYWRUaW1pbmdPdmVycmlkZTo6Tm9uZTsKICAgICBpZiAo
Zm9udFNlbGVjdG9yICYmIGZvbnRTZWxlY3Rvci0+ZG9jdW1lbnQoKSkKICAgICAgICAgb3ZlcnJp
ZGVWYWx1ZSA9IGZvbnRTZWxlY3Rvci0+ZG9jdW1lbnQoKS0+c2V0dGluZ3MoKS5mb250TG9hZFRp
bWluZ092ZXJyaWRlKCk7CiAgICAgcmV0dXJuIG92ZXJyaWRlVmFsdWU7CkBAIC00NzAsNyArNDcw
LDcgQEAgc3RhdGljIFNldHRpbmdzOjpGb250TG9hZFRpbWluZ092ZXJyaWRlIAogYXV0byBDU1NG
b250RmFjZTo6Zm9udExvYWRUaW1pbmcoKSBjb25zdCAtPiBGb250TG9hZFRpbWluZwogewogICAg
IHN3aXRjaCAoZm9udExvYWRUaW1pbmdPdmVycmlkZShtX2ZvbnRTZWxlY3Rvci5nZXQoKSkpIHsK
LSAgICBjYXNlIFNldHRpbmdzOjpGb250TG9hZFRpbWluZ092ZXJyaWRlOjpOb25lOgorICAgIGNh
c2UgRm9udExvYWRUaW1pbmdPdmVycmlkZTo6Tm9uZToKICAgICAgICAgc3dpdGNoIChtX2xvYWRp
bmdCZWhhdmlvcikgewogICAgICAgICBjYXNlIEZvbnRMb2FkaW5nQmVoYXZpb3I6OkF1dG86CiAg
ICAgICAgIGNhc2UgRm9udExvYWRpbmdCZWhhdmlvcjo6QmxvY2s6CkBAIC00ODMsMTEgKzQ4Mywx
MSBAQCBhdXRvIENTU0ZvbnRGYWNlOjpmb250TG9hZFRpbWluZygpIGNvbnN0CiAgICAgICAgICAg
ICByZXR1cm4geyAwLjFfcywgMF9zIH07CiAgICAgICAgIH0KICAgICAgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLSAgICBjYXNlIFNldHRpbmdzOjpGb250TG9hZFRpbWluZ092ZXJy
aWRlOjpCbG9jazoKKyAgICBjYXNlIEZvbnRMb2FkVGltaW5nT3ZlcnJpZGU6OkJsb2NrOgogICAg
ICAgICByZXR1cm4geyBTZWNvbmRzOjppbmZpbml0eSgpLCAwX3MgfTsKLSAgICBjYXNlIFNldHRp
bmdzOjpGb250TG9hZFRpbWluZ092ZXJyaWRlOjpTd2FwOgorICAgIGNhc2UgRm9udExvYWRUaW1p
bmdPdmVycmlkZTo6U3dhcDoKICAgICAgICAgcmV0dXJuIHsgMF9zLCBTZWNvbmRzOjppbmZpbml0
eSgpIH07Ci0gICAgY2FzZSBTZXR0aW5nczo6Rm9udExvYWRUaW1pbmdPdmVycmlkZTo6RmFpbHVy
ZToKKyAgICBjYXNlIEZvbnRMb2FkVGltaW5nT3ZlcnJpZGU6OkZhaWx1cmU6CiAgICAgICAgIHJl
dHVybiB7IDBfcywgMF9zIH07CiAgICAgfQogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRUaW1pbmdPdmVycmlkZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZFRpbWluZ092ZXJyaWRlLmgJ
KG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRMb2FkVGltaW5nT3ZlcnJp
ZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBGb250TG9hZFRpbWlu
Z092ZXJyaWRlIDogdWludDhfdCB7CisgICAgTm9uZSwKKyAgICBCbG9jaywKKyAgICBTd2FwLAor
ICAgIEZhaWx1cmUKK307CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5
RXZhbHVhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVy
eUV2YWx1YXRvci5jcHAJKHJldmlzaW9uIDI2OTg1NikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9N
ZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzE1LDkgKzMxNSw5IEBA
IHN0YXRpYyBib29sIG1vbm9jaHJvbWVFdmFsdWF0ZShDU1NWYWx1ZSoKIHsKICAgICBib29sIGlz
TW9ub2Nocm9tZTsKIAotICAgIGlmIChmcmFtZS5zZXR0aW5ncygpLmZvcmNlZERpc3BsYXlJc01v
bm9jaHJvbWVBY2Nlc3NpYmlsaXR5VmFsdWUoKSA9PSBTZXR0aW5nczo6Rm9yY2VkQWNjZXNzaWJp
bGl0eVZhbHVlOjpPbikKKyAgICBpZiAoZnJhbWUuc2V0dGluZ3MoKS5mb3JjZWREaXNwbGF5SXNN
b25vY2hyb21lQWNjZXNzaWJpbGl0eVZhbHVlKCkgPT0gRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVl
OjpPbikKICAgICAgICAgaXNNb25vY2hyb21lID0gdHJ1ZTsKLSAgICBlbHNlIGlmIChmcmFtZS5z
ZXR0aW5ncygpLmZvcmNlZERpc3BsYXlJc01vbm9jaHJvbWVBY2Nlc3NpYmlsaXR5VmFsdWUoKSA9
PSBTZXR0aW5nczo6Rm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlOjpPZmYpCisgICAgZWxzZSBpZiAo
ZnJhbWUuc2V0dGluZ3MoKS5mb3JjZWREaXNwbGF5SXNNb25vY2hyb21lQWNjZXNzaWJpbGl0eVZh
bHVlKCkgPT0gRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlOjpPZmYpCiAgICAgICAgIGlzTW9ub2No
cm9tZSA9IGZhbHNlOwogICAgIGVsc2UKICAgICAgICAgaXNNb25vY2hyb21lID0gc2NyZWVuSXNN
b25vY2hyb21lKGZyYW1lLm1haW5GcmFtZSgpLnZpZXcoKSk7CkBAIC0zMzEsOSArMzMxLDkgQEAg
c3RhdGljIGJvb2wgaW52ZXJ0ZWRDb2xvcnNFdmFsdWF0ZShDU1NWYQogewogICAgIGJvb2wgaXNJ
bnZlcnRlZDsKIAotICAgIGlmIChmcmFtZS5zZXR0aW5ncygpLmZvcmNlZENvbG9yc0FyZUludmVy
dGVkQWNjZXNzaWJpbGl0eVZhbHVlKCkgPT0gU2V0dGluZ3M6OkZvcmNlZEFjY2Vzc2liaWxpdHlW
YWx1ZTo6T24pCisgICAgaWYgKGZyYW1lLnNldHRpbmdzKCkuZm9yY2VkQ29sb3JzQXJlSW52ZXJ0
ZWRBY2Nlc3NpYmlsaXR5VmFsdWUoKSA9PSBGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWU6Ok9uKQog
ICAgICAgICBpc0ludmVydGVkID0gdHJ1ZTsKLSAgICBlbHNlIGlmIChmcmFtZS5zZXR0aW5ncygp
LmZvcmNlZENvbG9yc0FyZUludmVydGVkQWNjZXNzaWJpbGl0eVZhbHVlKCkgPT0gU2V0dGluZ3M6
OkZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZTo6T2ZmKQorICAgIGVsc2UgaWYgKGZyYW1lLnNldHRp
bmdzKCkuZm9yY2VkQ29sb3JzQXJlSW52ZXJ0ZWRBY2Nlc3NpYmlsaXR5VmFsdWUoKSA9PSBGb3Jj
ZWRBY2Nlc3NpYmlsaXR5VmFsdWU6Ok9mZikKICAgICAgICAgaXNJbnZlcnRlZCA9IGZhbHNlOwog
ICAgIGVsc2UKICAgICAgICAgaXNJbnZlcnRlZCA9IHNjcmVlbkhhc0ludmVydGVkQ29sb3JzKCk7
CkBAIC00NTksOSArNDU5LDkgQEAgc3RhdGljIGJvb2wgZHluYW1pY1JhbmdlRXZhbHVhdGUoQ1NT
VmFsdQogCiAgICAgYm9vbCBzdXBwb3J0c0hpZ2hEeW5hbWljUmFuZ2U7CiAKLSAgICBpZiAoZnJh
bWUuc2V0dGluZ3MoKS5mb3JjZWRTdXBwb3J0c0hpZ2hEeW5hbWljUmFuZ2VWYWx1ZSgpID09IFNl
dHRpbmdzOjpGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWU6Ok9uKQorICAgIGlmIChmcmFtZS5zZXR0
aW5ncygpLmZvcmNlZFN1cHBvcnRzSGlnaER5bmFtaWNSYW5nZVZhbHVlKCkgPT0gRm9yY2VkQWNj
ZXNzaWJpbGl0eVZhbHVlOjpPbikKICAgICAgICAgc3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlID0g
dHJ1ZTsKLSAgICBlbHNlIGlmIChmcmFtZS5zZXR0aW5ncygpLmZvcmNlZFN1cHBvcnRzSGlnaER5
bmFtaWNSYW5nZVZhbHVlKCkgPT0gU2V0dGluZ3M6OkZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZTo6
T2ZmKQorICAgIGVsc2UgaWYgKGZyYW1lLnNldHRpbmdzKCkuZm9yY2VkU3VwcG9ydHNIaWdoRHlu
YW1pY1JhbmdlVmFsdWUoKSA9PSBGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWU6Ok9mZikKICAgICAg
ICAgc3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlID0gZmFsc2U7CiAgICAgZWxzZQogICAgICAgICBz
dXBwb3J0c0hpZ2hEeW5hbWljUmFuZ2UgPSBzY3JlZW5TdXBwb3J0c0hpZ2hEeW5hbWljUmFuZ2Uo
ZnJhbWUubWFpbkZyYW1lKCkudmlldygpKTsKQEAgLTgyNSwxMiArODI1LDEyIEBAIHN0YXRpYyBi
b29sIHByZWZlcnNSZWR1Y2VkTW90aW9uRXZhbHVhdGUKICAgICBib29sIHVzZXJQcmVmZXJzUmVk
dWNlZE1vdGlvbiA9IGZhbHNlOwogCiAgICAgc3dpdGNoIChmcmFtZS5zZXR0aW5ncygpLmZvcmNl
ZFByZWZlcnNSZWR1Y2VkTW90aW9uQWNjZXNzaWJpbGl0eVZhbHVlKCkpIHsKLSAgICBjYXNlIFNl
dHRpbmdzOjpGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWU6Ok9uOgorICAgIGNhc2UgRm9yY2VkQWNj
ZXNzaWJpbGl0eVZhbHVlOjpPbjoKICAgICAgICAgdXNlclByZWZlcnNSZWR1Y2VkTW90aW9uID0g
dHJ1ZTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBTZXR0aW5nczo6Rm9yY2VkQWNjZXNzaWJp
bGl0eVZhbHVlOjpPZmY6CisgICAgY2FzZSBGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWU6Ok9mZjoK
ICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBTZXR0aW5nczo6Rm9yY2VkQWNjZXNzaWJpbGl0eVZh
bHVlOjpTeXN0ZW06CisgICAgY2FzZSBGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWU6OlN5c3RlbToK
ICNpZiBVU0UoTkVXX1RIRU1FKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKQogICAgICAgICB1c2Vy
UHJlZmVyc1JlZHVjZWRNb3Rpb24gPSBUaGVtZTo6c2luZ2xldG9uKCkudXNlclByZWZlcnNSZWR1
Y2VkTW90aW9uKCk7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkocmV2aXNp
b24gMjY5ODU2KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNzUwOCw3ICs3NTA4LDcgQEAgdm9pZCBEb2N1bWVudDo6YXBwbHlRdWlja0xvb2tT
YW5kYm94KCkKICAgICBBU1NFUlQocmVzcG9uc2VVUkwucHJvdG9jb2xJcyhRTFByZXZpZXdQcm90
b2NvbCkpOwogCiAgICAgYXV0byBzZWN1cml0eU9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVh
dGVOb25Mb2NhbFdpdGhBbGxvd2VkRmlsZVBhdGgocmVzcG9uc2VVUkwsIGRvY3VtZW50VVJMLmZp
bGVTeXN0ZW1QYXRoKCkpOwotICAgIHNlY3VyaXR5T3JpZ2luLT5zZXRTdG9yYWdlQmxvY2tpbmdQ
b2xpY3koU2VjdXJpdHlPcmlnaW46OkJsb2NrQWxsU3RvcmFnZSk7CisgICAgc2VjdXJpdHlPcmln
aW4tPnNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkJsb2Nr
QWxsKTsKICAgICBzZXRTZWN1cml0eU9yaWdpblBvbGljeShTZWN1cml0eU9yaWdpblBvbGljeTo6
Y3JlYXRlKFdURk1vdmUoc2VjdXJpdHlPcmlnaW4pKSk7CiAKICAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8U3RyaW5nPiBxdWlja0xvb2tDU1AgPSBtYWtlU3RyaW5nKCJkZWZhdWx0LXNyYyAiLCBR
TFByZXZpZXdQcm90b2NvbCwgIjogJ3Vuc2FmZS1pbmxpbmUnOyBiYXNlLXVyaSAnbm9uZSc7IHNh
bmRib3ggYWxsb3ctc2FtZS1vcmlnaW4gYWxsb3ctc2NyaXB0cyIpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0YWJsZUxpbmtCZWhhdmlvci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGFibGVMaW5rQmVoYXZpb3IuaAkobm9uZXhpc3RlbnQpCisr
KyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRhYmxlTGlua0JlaGF2aW9yLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgRWRpdGFibGVMaW5rQmVoYXZpb3IgOiB1aW50
OF90IHsKKyAgICBEZWZhdWx0LAorICAgIEFsd2F5c0xpdmUsCisgICAgT25seUxpdmVXaXRoU2hp
ZnRLZXksCisgICAgTGl2ZVdoZW5Ob3RGb2N1c2VkLAorICAgIE5ldmVyTGl2ZQorfTsKKworfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQmVoYXZpb3IuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdCZWhhdmlvci5oCShyZXZpc2lvbiAy
Njk4NTYpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdCZWhhdmlvci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMCwxMiArMjAsMTEgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRl
ICJFZGl0aW5nQmVoYXZpb3JUeXBlcy5oIgorI2luY2x1ZGUgIkVkaXRpbmdCZWhhdmlvclR5cGUu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBFZGl0aW5nQmVoYXZpb3IgewotCiBw
dWJsaWM6CiAgICAgZXhwbGljaXQgRWRpdGluZ0JlaGF2aW9yKEVkaXRpbmdCZWhhdmlvclR5cGUg
dHlwZSkKICAgICAgICAgOiBtX3R5cGUodHlwZSkKQEAgLTQwLDY3ICszOSw2NyBAQCBwdWJsaWM6
CiAgICAgLy8gY29udGVudCBvbiBNYWMuCiAgICAgYm9vbCBzaG91bGRNb3ZlQ2FyZXRUb0hvcml6
b250YWxCb3VuZGFyeVdoZW5QYXN0VG9wT3JCb3R0b20oKSBjb25zdAogICAgIHsKLSAgICAgICAg
cmV0dXJuIG1fdHlwZSAhPSBFZGl0aW5nV2luZG93c0JlaGF2aW9yOworICAgICAgICByZXR1cm4g
bV90eXBlICE9IEVkaXRpbmdCZWhhdmlvclR5cGU6OldpbmRvd3M7CiAgICAgfQogCiAgICAgLy8g
T24gV2luZG93cywgc2VsZWN0aW9ucyBzaG91bGQgYWx3YXlzIGJlIGNvbnNpZGVyZWQgYXMgZGly
ZWN0aW9uYWwsIHJlZ2FyZGxlc3MgaWYgaXQgaXMKICAgICAvLyBtb3VzZS1iYXNlZCBvciBrZXli
b2FyZC1iYXNlZC4KLSAgICBib29sIHNob3VsZENvbnNpZGVyU2VsZWN0aW9uQXNEaXJlY3Rpb25h
bCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSAhPSBFZGl0aW5nTWFjQmVoYXZpb3IgJiYgbV90eXBl
ICE9IEVkaXRpbmdJT1NCZWhhdmlvcjsgfQorICAgIGJvb2wgc2hvdWxkQ29uc2lkZXJTZWxlY3Rp
b25Bc0RpcmVjdGlvbmFsKCkgY29uc3QgeyByZXR1cm4gbV90eXBlICE9IEVkaXRpbmdCZWhhdmlv
clR5cGU6Ok1hYyAmJiBtX3R5cGUgIT0gRWRpdGluZ0JlaGF2aW9yVHlwZTo6SW9zOyB9CiAKICAg
ICAvLyBPbiBNYWMsIHdoZW4gcmV2ZWFsaW5nIGEgc2VsZWN0aW9uIChmb3IgZXhhbXBsZSBhcyBh
IHJlc3VsdCBvZiBhIEZpbmQgb3BlcmF0aW9uIG9uIHRoZSBCcm93c2VyKSwKICAgICAvLyBjb250
ZW50IHNob3VsZCBiZSBzY3JvbGxlZCBzdWNoIHRoYXQgdGhlIHNlbGVjdGlvbiBnZXRzIGNlcnRl
ciBhbGlnbmVkLgotICAgIGJvb2wgc2hvdWxkQ2VudGVyQWxpZ25XaGVuU2VsZWN0aW9uSXNSZXZl
YWxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBFZGl0aW5nTWFjQmVoYXZpb3IgfHwgbV90
eXBlID09IEVkaXRpbmdJT1NCZWhhdmlvcjsgfQorICAgIGJvb2wgc2hvdWxkQ2VudGVyQWxpZ25X
aGVuU2VsZWN0aW9uSXNSZXZlYWxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBFZGl0aW5n
QmVoYXZpb3JUeXBlOjpNYWMgfHwgbV90eXBlID09IEVkaXRpbmdCZWhhdmlvclR5cGU6Oklvczsg
fQogCiAgICAgLy8gT24gTWFjLCBzdHlsZSBpcyBjb25zaWRlcmVkIHByZXNlbnQgd2hlbiBwcmVz
ZW50IGF0IHRoZSBiZWdpbm5pbmcgb2Ygc2VsZWN0aW9uLiBPbiBvdGhlciBwbGF0Zm9ybXMsCiAg
ICAgLy8gc3R5bGUgaGFzIHRvIGJlIHByZXNlbnQgdGhyb3VnaG91dCB0aGUgc2VsZWN0aW9uLgot
ICAgIGJvb2wgc2hvdWxkVG9nZ2xlU3R5bGVCYXNlZE9uU3RhcnRPZlNlbGVjdGlvbigpIGNvbnN0
IHsgcmV0dXJuIG1fdHlwZSA9PSBFZGl0aW5nTWFjQmVoYXZpb3IgfHwgbV90eXBlID09IEVkaXRp
bmdJT1NCZWhhdmlvcjsgfQorICAgIGJvb2wgc2hvdWxkVG9nZ2xlU3R5bGVCYXNlZE9uU3RhcnRP
ZlNlbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBFZGl0aW5nQmVoYXZpb3JUeXBl
OjpNYWMgfHwgbV90eXBlID09IEVkaXRpbmdCZWhhdmlvclR5cGU6OklvczsgfQogCiAgICAgLy8g
U3RhbmRhcmQgTWFjIGJlaGF2aW9yIHdoZW4gZXh0ZW5kaW5nIHRvIGEgYm91bmRhcnkgaXMgZ3Jv
dyB0aGUgc2VsZWN0aW9uIHJhdGhlciB0aGFuIGxlYXZpbmcgdGhlIGJhc2UKICAgICAvLyBpbiBw
bGFjZSBhbmQgbW92aW5nIHRoZSBleHRlbnQuIE1hdGNoZXMgTlNUZXh0Vmlldy4KLSAgICBib29s
IHNob3VsZEFsd2F5c0dyb3dTZWxlY3Rpb25XaGVuRXh0ZW5kaW5nVG9Cb3VuZGFyeSgpIGNvbnN0
IHsgcmV0dXJuIG1fdHlwZSA9PSBFZGl0aW5nTWFjQmVoYXZpb3IgfHwgbV90eXBlID09IEVkaXRp
bmdJT1NCZWhhdmlvcjsgfQorICAgIGJvb2wgc2hvdWxkQWx3YXlzR3Jvd1NlbGVjdGlvbldoZW5F
eHRlbmRpbmdUb0JvdW5kYXJ5KCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IEVkaXRpbmdCZWhh
dmlvclR5cGU6Ok1hYyB8fCBtX3R5cGUgPT0gRWRpdGluZ0JlaGF2aW9yVHlwZTo6SW9zOyB9CiAK
ICAgICAvLyBPbiBNYWMsIHdoZW4gcHJvY2Vzc2luZyBhIGNvbnRleHR1YWwgY2xpY2ssIHRoZSBv
YmplY3QgYmVpbmcgY2xpY2tlZCB1cG9uIHNob3VsZCBiZSBzZWxlY3RlZC4KLSAgICBib29sIHNo
b3VsZFNlbGVjdE9uQ29udGV4dHVhbE1lbnVDbGljaygpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9
PSBFZGl0aW5nTWFjQmVoYXZpb3I7IH0KKyAgICBib29sIHNob3VsZFNlbGVjdE9uQ29udGV4dHVh
bE1lbnVDbGljaygpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBFZGl0aW5nQmVoYXZpb3JUeXBl
OjpNYWM7IH0KIAogICAgIC8vIE9uIExpbnV4LCBzaG91bGQgYmUgYWJsZSB0byBnZXQgYW5kIGlu
c2VydCBzcGVsbGluZyBzdWdnZXN0aW9ucyB3aXRob3V0IHNlbGVjdGluZyB0aGUgbWlzc3BlbGxl
ZCB3b3JkLgogICAgIGJvb2wgc2hvdWxkQWxsb3dTcGVsbGluZ1N1Z2dlc3Rpb25zV2l0aG91dFNl
bGVjdGlvbigpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gbV90eXBlID09IEVkaXRpbmdV
bml4QmVoYXZpb3I7CisgICAgICAgIHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ0JlaGF2aW9yVHlw
ZTo6VW5peDsKICAgICB9CiAgICAgCiAgICAgLy8gT24gTWFjIGFuZCBXaW5kb3dzLCBwcmVzc2lu
ZyBiYWNrc3BhY2UgKHdoZW4gaXQgaXNuJ3QgaGFuZGxlZCBvdGhlcndpc2UpIHNob3VsZCBuYXZp
Z2F0ZSBiYWNrLgogICAgIGJvb2wgc2hvdWxkTmF2aWdhdGVCYWNrT25CYWNrc3BhY2UoKSBjb25z
dAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fdHlwZSAhPSBFZGl0aW5nVW5peEJlaGF2aW9yOwor
ICAgICAgICByZXR1cm4gbV90eXBlICE9IEVkaXRpbmdCZWhhdmlvclR5cGU6OlVuaXg7CiAgICAg
fQogCiAgICAgLy8gT24gTWFjLCBzZWxlY3RpbmcgYmFja3dhcmRzIGJ5IHdvcmQvbGluZSBmcm9t
IHRoZSBtaWRkbGUgb2YgYSB3b3JkL2xpbmUsIGFuZCB0aGVuIGdvaW5nCiAgICAgLy8gZm9yd2Fy
ZCBsZWF2ZXMgdGhlIGNhcmV0IGJhY2sgaW4gdGhlIG1pZGRsZSB3aXRoIG5vIHNlbGVjdGlvbiwg
aW5zdGVhZCBvZiBkaXJlY3RseSBzZWxlY3RpbmcKICAgICAvLyB0byB0aGUgb3RoZXIgZW5kIG9m
IHRoZSBsaW5lL3dvcmQgKFVuaXgvV2luZG93cyBiZWhhdmlvcikuCi0gICAgYm9vbCBzaG91bGRF
eHRlbmRTZWxlY3Rpb25CeVdvcmRPckxpbmVBY3Jvc3NDYXJldCgpIGNvbnN0IHsgcmV0dXJuIG1f
dHlwZSAhPSBFZGl0aW5nTWFjQmVoYXZpb3IgJiYgbV90eXBlICE9IEVkaXRpbmdJT1NCZWhhdmlv
cjsgfQorICAgIGJvb2wgc2hvdWxkRXh0ZW5kU2VsZWN0aW9uQnlXb3JkT3JMaW5lQWNyb3NzQ2Fy
ZXQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgIT0gRWRpdGluZ0JlaGF2aW9yVHlwZTo6TWFjICYm
IG1fdHlwZSAhPSBFZGl0aW5nQmVoYXZpb3JUeXBlOjpJb3M7IH0KIAogICAgIC8vIEJhc2VkIG9u
IG5hdGl2ZSBiZWhhdmlvciwgd2hlbiB1c2luZyBjdHJsKGFsdCkrYXJyb3cgdG8gbW92ZSBjYXJl
dCBieSB3b3JkLCBjdHJsKGFsdCkrbGVmdCBhcnJvdyBtb3ZlcyBjYXJldCB0bwogICAgIC8vIGlt
bWVkaWF0ZWx5IGJlZm9yZSB0aGUgd29yZCBpbiBhbGwgcGxhdGZvcm1zLCBmb3IgZXhhbXBsZSwg
dGhlIHdvcmQgYnJlYWsgcG9zaXRpb25zIGFyZTogInxhYmMgfGRlZiB8aGlqIHxvcHEiLgogICAg
IC8vIEJ1dCBjdHJsK3JpZ2h0IGFycm93IG1vdmVzIGNhcmV0IHRvICJhYmMgfGRlZiB8aGlqIHxv
cHEiIG9uIFdpbmRvd3MgYW5kICJhYmN8IGRlZnwgaGlqfCBvcHF8IiBvbiBNYWMgYW5kIExpbnV4
LgotICAgIGJvb2wgc2hvdWxkU2tpcFNwYWNlV2hlbk1vdmluZ1JpZ2h0KCkgY29uc3QgeyByZXR1
cm4gbV90eXBlID09IEVkaXRpbmdXaW5kb3dzQmVoYXZpb3I7IH0KKyAgICBib29sIHNob3VsZFNr
aXBTcGFjZVdoZW5Nb3ZpbmdSaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBFZGl0aW5n
QmVoYXZpb3JUeXBlOjpXaW5kb3dzOyB9CiAKICAgICAvLyBPbiBpT1MgdGhlIGxhc3QgZW50ZXJl
ZCBjaGFyYWN0ZXIgaW4gYSBzZWN1cmUgZmlsZWQgaXMgc2hvd24gbW9tZW50YXJpbHksIHJlbW92
aW5nIGFuZCBhZGRpbmcgYmFjayB0aGUKICAgICAvLyBzcGFjZSB3aGVuIGRlbGV0aW5nIHBhc3N3
b3JkIGNhdXNlIHNwYWNlIGJlZW4gc2hvd2VkIGluc2VjdXJlbHkuCi0gICAgYm9vbCBzaG91bGRS
ZWJhbGFuY2VXaGl0ZVNwYWNlc0luU2VjdXJlRmllbGQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUg
IT0gRWRpdGluZ0lPU0JlaGF2aW9yOyB9CisgICAgYm9vbCBzaG91bGRSZWJhbGFuY2VXaGl0ZVNw
YWNlc0luU2VjdXJlRmllbGQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgIT0gRWRpdGluZ0JlaGF2
aW9yVHlwZTo6SW9zOyB9CiAKLSAgICBib29sIHNob3VsZFNlbGVjdEJhc2VkT25EaWN0aW9uYXJ5
TG9va3VwKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IEVkaXRpbmdNYWNCZWhhdmlvcjsgfQor
ICAgIGJvb2wgc2hvdWxkU2VsZWN0QmFzZWRPbkRpY3Rpb25hcnlMb29rdXAoKSBjb25zdCB7IHJl
dHVybiBtX3R5cGUgPT0gRWRpdGluZ0JlaGF2aW9yVHlwZTo6TWFjOyB9CiAKICAgICAvLyBMaW51
eCBhbmQgV2luZG93cyBhbHdheXMgZXh0ZW5kIHNlbGVjdGlvbnMgZnJvbSB0aGUgZXh0ZW50IGVu
ZHBvaW50LgotICAgIGJvb2wgc2hvdWxkQWx3YXlzRXh0ZW5kU2VsZWN0aW9uRnJvbUV4dGVudEVu
ZHBvaW50KCkgY29uc3QgeyByZXR1cm4gbV90eXBlICE9IEVkaXRpbmdNYWNCZWhhdmlvciAmJiBt
X3R5cGUgIT0gRWRpdGluZ0lPU0JlaGF2aW9yOyB9CisgICAgYm9vbCBzaG91bGRBbHdheXNFeHRl
bmRTZWxlY3Rpb25Gcm9tRXh0ZW50RW5kcG9pbnQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgIT0g
RWRpdGluZ0JlaGF2aW9yVHlwZTo6TWFjICYmIG1fdHlwZSAhPSBFZGl0aW5nQmVoYXZpb3JUeXBl
OjpJb3M7IH0KIAogICAgIC8vIE9uIGlPUywgd2UgZG9uJ3Qgd2FudCB0byBzZWxlY3QgYWxsIHRo
ZSB0ZXh0IHdoZW4gZm9jdXNpbmcgYSBmaWVsZC4gSW5zdGVhZCwgbWF0Y2ggcGxhdGZvcm0gYmVo
YXZpb3IgYnkgZ29pbmcgdG8gdGhlIGVuZCBvZiB0aGUgbGluZS4KLSAgICBib29sIHNob3VsZE1v
dmVTZWxlY3Rpb25Ub0VuZFdoZW5Gb2N1c2luZ1RleHRJbnB1dCgpIGNvbnN0IHsgcmV0dXJuIG1f
dHlwZSA9PSBFZGl0aW5nSU9TQmVoYXZpb3I7IH0KKyAgICBib29sIHNob3VsZE1vdmVTZWxlY3Rp
b25Ub0VuZFdoZW5Gb2N1c2luZ1RleHRJbnB1dCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBF
ZGl0aW5nQmVoYXZpb3JUeXBlOjpJb3M7IH0KICAgICAKICAgICAvLyBPbiBpT1MsIHdoZW4gc21h
cnQgZGVsZXRlIGlzIG9uLCBpdCBpcyBhbHdheXMgb24sIGFuZCBzaG91bGQgZG8gbm90IGFkZGl0
aW9uYWwgY2hlY2tzIChpLmUuIFRleHRHcmFudWxhcml0eTo6V29yZEdyYW51bGFyaXR5KS4KLSAg
ICBib29sIHNob3VsZEFsd2F5c1NtYXJ0RGVsZXRlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09
IEVkaXRpbmdJT1NCZWhhdmlvcjsgfQorICAgIGJvb2wgc2hvdWxkQWx3YXlzU21hcnREZWxldGUo
KSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gRWRpdGluZ0JlaGF2aW9yVHlwZTo6SW9zOyB9CiAg
ICAgCiAgICAgLy8gT24gaU9TLCB3ZSBzaG91bGQgdHVybiBvbiBzbWFydCBpbnNlcnQgYW5kIGRl
bGV0ZSBhbmQgbmV3bGluZXMgYXJvdW5kIHBhcmFncmFwaHMgdG8gbWF0Y2ggVUlLaXQgYmVoYXZp
b3VyLgotICAgIGJvb2wgc2hvdWxkU21hcnRJbnNlcnREZWxldGVQYXJhZ3JhcGhzKCkgY29uc3Qg
eyByZXR1cm4gbV90eXBlID09IEVkaXRpbmdJT1NCZWhhdmlvcjsgfQorICAgIGJvb2wgc2hvdWxk
U21hcnRJbnNlcnREZWxldGVQYXJhZ3JhcGhzKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IEVk
aXRpbmdCZWhhdmlvclR5cGU6OklvczsgfQogCiBwcml2YXRlOgogICAgIEVkaXRpbmdCZWhhdmlv
clR5cGUgbV90eXBlOwpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQmVoYXZp
b3JUeXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQmVo
YXZpb3JUeXBlLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
aW5nQmVoYXZpb3JUeXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlh
cnkoLWllcykKKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAq
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gVGhl
cmUgYXJlIG11bHRpcGxlIGVkaXRpbmcgZGV0YWlscyB0aGF0IGFyZSBkaWZmZXJlbnQgb24gV2lu
ZG93cyB0aGFuIE1hY2ludG9zaC4KKy8vIFdlIHVzZSBhIHNpbmdsZSBzd2l0Y2ggZm9yIGFsbCBv
ZiB0aGVtLiBTb21lIGV4YW1wbGVzOgorLy8KKy8vICAgIDEpIENsaWNraW5nIGJlbG93IHRoZSBs
YXN0IGxpbmUgb2YgYW4gZWRpdGFibGUgYXJlYSBwdXRzIHRoZSBjYXJldCBhdCB0aGUgZW5kCisv
LyAgICAgICBvZiB0aGUgbGFzdCBsaW5lIG9uIE1hYywgYnV0IGluIHRoZSBtaWRkbGUgb2YgdGhl
IGxhc3QgbGluZSBvbiBXaW5kb3dzLgorLy8gICAgMikgUHVzaGluZyB0aGUgZG93biBhcnJvdyBr
ZXkgb24gdGhlIGxhc3QgbGluZSBwdXRzIHRoZSBjYXJldCBhdCB0aGUgZW5kIG9mIHRoZQorLy8g
ICAgICAgbGFzdCBsaW5lIG9uIE1hYywgYnV0IGRvZXMgbm90aGluZyBvbiBXaW5kb3dzLiBBIHNp
bWlsYXIgY2FzZSBleGlzdHMgb24gdGhlCisvLyAgICAgICB0b3AgbGluZS4KKy8vCisvLyBUaGlz
IHNldHRpbmcgaXMgaW50ZW5kZWQgdG8gY29udHJvbCB0aGVzZSBzb3J0cyBvZiBiZWhhdmlvcnMu
IFRoZXJlIGFyZSBzb21lIG90aGVyCisvLyBiZWhhdmlvcnMgd2l0aCBpbmRpdmlkdWFsIGZ1bmN0
aW9uIGNhbGxzIG9uIEVkaXRvckNsaWVudCAoc21hcnQgY29weSBhbmQgcGFzdGUgYW5kCisvLyBz
ZWxlY3RpbmcgdGhlIHNwYWNlIGFmdGVyIGEgZG91YmxlIGNsaWNrKSB0aGF0IGNvdWxkIGJlIGNv
bWJpbmVkIHdpdGggdGhpcyBpZgorLy8gaWYgcG9zc2libGUgaW4gdGhlIGZ1dHVyZS4KK2VudW0g
Y2xhc3MgRWRpdGluZ0JlaGF2aW9yVHlwZSA6IHVpbnQ4X3QgeworICAgIE1hYywKKyAgICBXaW5k
b3dzLAorICAgIFVuaXgsCisgICAgSW9zCit9OworCit9IC8vIFdlYkNvcmUgbmFtZXNwYWNlCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdCZWhhdmlvclR5cGVzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQmVoYXZpb3JUeXBlcy5oCShy
ZXZpc2lvbiAyNjk4NTYpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdCZWhhdmlv
clR5cGVzLmgJKG5vbmV4aXN0ZW50KQpAQCAtMSw0NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQot
ICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0g
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI3By
YWdtYSBvbmNlCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotLy8gVGhlcmUgYXJlIG11bHRpcGxl
IGVkaXRpbmcgZGV0YWlscyB0aGF0IGFyZSBkaWZmZXJlbnQgb24gV2luZG93cyB0aGFuIE1hY2lu
dG9zaC4KLS8vIFdlIHVzZSBhIHNpbmdsZSBzd2l0Y2ggZm9yIGFsbCBvZiB0aGVtLiBTb21lIGV4
YW1wbGVzOgotLy8KLS8vICAgIDEpIENsaWNraW5nIGJlbG93IHRoZSBsYXN0IGxpbmUgb2YgYW4g
ZWRpdGFibGUgYXJlYSBwdXRzIHRoZSBjYXJldCBhdCB0aGUgZW5kCi0vLyAgICAgICBvZiB0aGUg
bGFzdCBsaW5lIG9uIE1hYywgYnV0IGluIHRoZSBtaWRkbGUgb2YgdGhlIGxhc3QgbGluZSBvbiBX
aW5kb3dzLgotLy8gICAgMikgUHVzaGluZyB0aGUgZG93biBhcnJvdyBrZXkgb24gdGhlIGxhc3Qg
bGluZSBwdXRzIHRoZSBjYXJldCBhdCB0aGUgZW5kIG9mIHRoZQotLy8gICAgICAgbGFzdCBsaW5l
IG9uIE1hYywgYnV0IGRvZXMgbm90aGluZyBvbiBXaW5kb3dzLiBBIHNpbWlsYXIgY2FzZSBleGlz
dHMgb24gdGhlCi0vLyAgICAgICB0b3AgbGluZS4KLS8vCi0vLyBUaGlzIHNldHRpbmcgaXMgaW50
ZW5kZWQgdG8gY29udHJvbCB0aGVzZSBzb3J0cyBvZiBiZWhhdmlvcnMuIFRoZXJlIGFyZSBzb21l
IG90aGVyCi0vLyBiZWhhdmlvcnMgd2l0aCBpbmRpdmlkdWFsIGZ1bmN0aW9uIGNhbGxzIG9uIEVk
aXRvckNsaWVudCAoc21hcnQgY29weSBhbmQgcGFzdGUgYW5kCi0vLyBzZWxlY3RpbmcgdGhlIHNw
YWNlIGFmdGVyIGEgZG91YmxlIGNsaWNrKSB0aGF0IGNvdWxkIGJlIGNvbWJpbmVkIHdpdGggdGhp
cyBpZgotLy8gaWYgcG9zc2libGUgaW4gdGhlIGZ1dHVyZS4KLWVudW0gRWRpdGluZ0JlaGF2aW9y
VHlwZSB7Ci0gICAgRWRpdGluZ01hY0JlaGF2aW9yLAotICAgIEVkaXRpbmdXaW5kb3dzQmVoYXZp
b3IsCi0gICAgRWRpdGluZ1VuaXhCZWhhdmlvciwKLSAgICBFZGl0aW5nSU9TQmVoYXZpb3IKLX07
Ci0KLX0gLy8gV2ViQ29yZSBuYW1lc3BhY2UKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yVHlwZXMuaApfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6
IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0aXZlClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAJKHJldmlzaW9uIDI2
OTg1NikKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjgwLDcgKzI4MCw3IEBAIFZpc2libGVTZWxlY3Rpb24gRWRpdG9yOjpzZWxlY3Rpb25G
b3JDb20KIC8vIEZ1bmN0aW9uIGNvbnNpZGVycyBNYWMgZWRpdGluZyBiZWhhdmlvciBhIGZhbGxi
YWNrIHdoZW4gUGFnZSBvciBTZXR0aW5ncyBpcyBub3QgYXZhaWxhYmxlLgogRWRpdGluZ0JlaGF2
aW9yIEVkaXRvcjo6YmVoYXZpb3IoKSBjb25zdAogewotICAgIHJldHVybiBFZGl0aW5nQmVoYXZp
b3IobV9kb2N1bWVudC5zZXR0aW5ncygpLmVkaXRpbmdCZWhhdmlvclR5cGUoKSk7CisgICAgcmV0
dXJuIG1fZG9jdW1lbnQuZWRpdGluZ0JlaGF2aW9yKCk7CiB9CiAKIEVkaXRvckNsaWVudCogRWRp
dG9yOjpjbGllbnQoKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAkocmV2
aXNpb24gMjY5ODU2KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xODAsNyArMTgwLDcgQEAgc3RkOjp1bmlxdWVfcHRyPFBhZ2U+IGNyZWF0
ZVBhZ2VGb3JTYW5pdAogICAgIGF1dG8gcGFnZSA9IG1ha2VVbmlxdWU8UGFnZT4oV1RGTW92ZShw
YWdlQ29uZmlndXJhdGlvbikpOwogICAgIHBhZ2UtPnNldHRpbmdzKCkuc2V0TWVkaWFFbmFibGVk
KGZhbHNlKTsKICAgICBwYWdlLT5zZXR0aW5ncygpLnNldFNjcmlwdEVuYWJsZWQoZmFsc2UpOwot
ICAgIHBhZ2UtPnNldHRpbmdzKCkuc2V0UGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeShTZXR0aW5n
c0Jhc2U6OlBhcnNlclNjcmlwdGluZ0ZsYWdQb2xpY3k6OkVuYWJsZWQpOworICAgIHBhZ2UtPnNl
dHRpbmdzKCkuc2V0SFRNTFBhcnNlclNjcmlwdGluZ0ZsYWdQb2xpY3koSFRNTFBhcnNlclNjcmlw
dGluZ0ZsYWdQb2xpY3k6OkVuYWJsZWQpOwogICAgIHBhZ2UtPnNldHRpbmdzKCkuc2V0UGx1Z2lu
c0VuYWJsZWQoZmFsc2UpOwogICAgIHBhZ2UtPnNldHRpbmdzKCkuc2V0QWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0VuYWJsZWQoZmFsc2UpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2Nv
Y29hL0RhdGFEZXRlY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L2NvY29hL0RhdGFEZXRlY3Rpb24uaAkocmV2aXNpb24gMjY5ODU2KQorKysgU291cmNlL1dlYkNv
cmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDgg
KzI3LDEwIEBACiAKICNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCiAKKyNpbXBvcnQgIkRhdGFE
ZXRlY3RvclR5cGVzLmgiCiAjaW1wb3J0ICJGbG9hdFJlY3QuaCIKICNpbXBvcnQgIlNpbXBsZVJh
bmdlLmgiCisjaW1wb3J0IDx3dGYvT3B0aW9uU2V0Lmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRy
Lmg+CiAKIE9CSkNfQ0xBU1MgRERBY3Rpb25Db250ZXh0OwpAQCAtMzksMTcgKzQxLDYgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBIaXRUZXN0UmVzdWx0OwogCi0vLyBGSVhNRTogV291
bGQgYmUgYmV0dGVyIHRvIHVzZSBhbiBPcHRpb25TZXQgYW5kIHVpbnQ4X3QuCi1lbnVtIGNsYXNz
IERhdGFEZXRlY3RvclR5cGVzIDogdWludDMyX3QgewotICAgIFBob25lTnVtYmVyID0gMSA8PCAw
LAotICAgIExpbmsgPSAxIDw8IDEsCi0gICAgQWRkcmVzcyA9IDEgPDwgMiwKLSAgICBDYWxlbmRh
ckV2ZW50ID0gMSA8PCAzLAotICAgIFRyYWNraW5nTnVtYmVyID0gMSA8PCA0LAotICAgIEZsaWdo
dE51bWJlciA9IDEgPDwgNSwKLSAgICBMb29rdXBTdWdnZXN0aW9uID0gMSA8PCA2LAotfTsKLQog
c3RydWN0IERldGVjdGVkSXRlbSB7CiAgICAgUmV0YWluUHRyPEREQWN0aW9uQ29udGV4dD4gYWN0
aW9uQ29udGV4dDsKICAgICBGbG9hdFJlY3QgYm91bmRpbmdCb3g7CkBAIC02MSw3ICs1Miw3IEBA
IHB1YmxpYzoKICNpZiBQTEFURk9STShNQUMpCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIE9w
dGlvbmFsPERldGVjdGVkSXRlbT4gZGV0ZWN0SXRlbUFyb3VuZEhpdFRlc3RSZXN1bHQoY29uc3Qg
SGl0VGVzdFJlc3VsdCYpOwogI2VuZGlmCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIE5TQXJy
YXkgKmRldGVjdENvbnRlbnRJblJhbmdlKGNvbnN0IFNpbXBsZVJhbmdlJiwgRGF0YURldGVjdG9y
VHlwZXMsIE5TRGljdGlvbmFyeSAqY29udGV4dCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IE5TQXJyYXkgKmRldGVjdENvbnRlbnRJblJhbmdlKGNvbnN0IFNpbXBsZVJhbmdlJiwgT3B0aW9u
U2V0PERhdGFEZXRlY3RvclR5cGVzPiwgTlNEaWN0aW9uYXJ5ICpjb250ZXh0KTsKICAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgdm9pZCByZW1vdmVEYXRhRGV0ZWN0ZWRMaW5rc0luRG9jdW1lbnQo
RG9jdW1lbnQmKTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBib29sIGNhbkJlUHJlc2VudGVkQnlEYXRhRGV0ZWN0b3JzKGNvbnN0IFVSTCYpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbQko
cmV2aXNpb24gMjY5ODU2KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0
ZWN0aW9uLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yMTgsMzAgKzIxOCwyNCBAQCBzdGF0aWMgQk9P
TCByZXN1bHRJc1VSTChERFJlc3VsdFJlZiByZXN1CiAgICAgcmV0dXJuIFt1cmxUeXBlcyBjb250
YWluc09iamVjdDooTlNTdHJpbmcgKilzb2Z0TGlua19EYXRhRGV0ZWN0b3JzQ29yZV9ERFJlc3Vs
dEdldFR5cGUocmVzdWx0KV07CiB9CiAKLS8vIFBvb3IgbWFuJ3MgT3B0aW9uU2V0Lgotc3RhdGlj
IGJvb2wgY29udGFpbnMoRGF0YURldGVjdG9yVHlwZXMgdHlwZXMsIERhdGFEZXRlY3RvclR5cGVz
IHNpbmdsZVR5cGUpCi17Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQzMl90Pih0eXBlcykg
JiBzdGF0aWNfY2FzdDx1aW50MzJfdD4oc2luZ2xlVHlwZSk7Ci19Ci0KLXN0YXRpYyBOU1N0cmlu
ZyAqY29uc3RydWN0VVJMU3RyaW5nRm9yUmVzdWx0KEREUmVzdWx0UmVmIGN1cnJlbnRSZXN1bHQs
IE5TU3RyaW5nICpyZXN1bHRJZGVudGlmaWVyLCBOU0RhdGUgKnJlZmVyZW5jZURhdGUsIE5TVGlt
ZVpvbmUgKnJlZmVyZW5jZVRpbWVab25lLCBEYXRhRGV0ZWN0b3JUeXBlcyBkZXRlY3Rpb25UeXBl
cykKK3N0YXRpYyBOU1N0cmluZyAqY29uc3RydWN0VVJMU3RyaW5nRm9yUmVzdWx0KEREUmVzdWx0
UmVmIGN1cnJlbnRSZXN1bHQsIE5TU3RyaW5nICpyZXN1bHRJZGVudGlmaWVyLCBOU0RhdGUgKnJl
ZmVyZW5jZURhdGUsIE5TVGltZVpvbmUgKnJlZmVyZW5jZVRpbWVab25lLCBPcHRpb25TZXQ8RGF0
YURldGVjdG9yVHlwZXM+IGRldGVjdGlvblR5cGVzKQogewogICAgIGlmICghc29mdExpbmtfRGF0
YURldGVjdG9yc0NvcmVfRERSZXN1bHRIYXNQcm9wZXJ0aWVzKGN1cnJlbnRSZXN1bHQsIEREUmVz
dWx0UHJvcGVydHlQYXNzaXZlRGlzcGxheSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBh
dXRvIHBob25lVHlwZXMgPSBjb250YWlucyhkZXRlY3Rpb25UeXBlcywgRGF0YURldGVjdG9yVHlw
ZXM6OlBob25lTnVtYmVyKSA/IEREVVJMaWZpZXJQaG9uZU51bWJlckRldGVjdGlvblJlZ3VsYXIg
OiBERFVSTGlmaWVyUGhvbmVOdW1iZXJEZXRlY3Rpb25Ob25lOworICAgIGF1dG8gcGhvbmVUeXBl
cyA9IGRldGVjdGlvblR5cGVzLmNvbnRhaW5zKERhdGFEZXRlY3RvclR5cGVzOjpQaG9uZU51bWJl
cikgPyBERFVSTGlmaWVyUGhvbmVOdW1iZXJEZXRlY3Rpb25SZWd1bGFyIDogRERVUkxpZmllclBo
b25lTnVtYmVyRGV0ZWN0aW9uTm9uZTsKICAgICBhdXRvIGNhdGVnb3J5ID0gc29mdExpbmtfRGF0
YURldGVjdG9yc0NvcmVfRERSZXN1bHRHZXRDYXRlZ29yeShjdXJyZW50UmVzdWx0KTsKICAgICBh
dXRvIHR5cGUgPSBzb2Z0TGlua19EYXRhRGV0ZWN0b3JzQ29yZV9ERFJlc3VsdEdldFR5cGUoY3Vy
cmVudFJlc3VsdCk7CiAKLSAgICBpZiAoKGNvbnRhaW5zKGRldGVjdGlvblR5cGVzLCBEYXRhRGV0
ZWN0b3JUeXBlczo6QWRkcmVzcykgJiYgRERSZXN1bHRDYXRlZ29yeUFkZHJlc3MgPT0gY2F0ZWdv
cnkpCi0gICAgICAgIHx8IChjb250YWlucyhkZXRlY3Rpb25UeXBlcywgRGF0YURldGVjdG9yVHlw
ZXM6OlRyYWNraW5nTnVtYmVyKSAmJiBDRkVxdWFsKGdldF9EYXRhRGV0ZWN0b3JzQ29yZV9EREJp
bmRlclRyYWNraW5nTnVtYmVyS2V5KCksIHR5cGUpKQotICAgICAgICB8fCAoY29udGFpbnMoZGV0
ZWN0aW9uVHlwZXMsIERhdGFEZXRlY3RvclR5cGVzOjpGbGlnaHROdW1iZXIpICYmIENGRXF1YWwo
Z2V0X0RhdGFEZXRlY3RvcnNDb3JlX0REQmluZGVyRmxpZ2h0SW5mb3JtYXRpb25LZXkoKSwgdHlw
ZSkpCi0gICAgICAgIHx8IChjb250YWlucyhkZXRlY3Rpb25UeXBlcywgRGF0YURldGVjdG9yVHlw
ZXM6Okxvb2t1cFN1Z2dlc3Rpb24pICYmIENGRXF1YWwoZ2V0X0RhdGFEZXRlY3RvcnNDb3JlX0RE
QmluZGVyUGFyc2VjU291cmNlS2V5KCksIHR5cGUpKQotICAgICAgICB8fCAoY29udGFpbnMoZGV0
ZWN0aW9uVHlwZXMsIERhdGFEZXRlY3RvclR5cGVzOjpQaG9uZU51bWJlcikgJiYgRERSZXN1bHRD
YXRlZ29yeVBob25lTnVtYmVyID09IGNhdGVnb3J5KQotICAgICAgICB8fCAoY29udGFpbnMoZGV0
ZWN0aW9uVHlwZXMsIERhdGFEZXRlY3RvclR5cGVzOjpMaW5rKSAmJiByZXN1bHRJc1VSTChjdXJy
ZW50UmVzdWx0KSkpIHsKKyAgICBpZiAoKGRldGVjdGlvblR5cGVzLmNvbnRhaW5zKERhdGFEZXRl
Y3RvclR5cGVzOjpBZGRyZXNzKSAmJiBERFJlc3VsdENhdGVnb3J5QWRkcmVzcyA9PSBjYXRlZ29y
eSkKKyAgICAgICAgfHwgKGRldGVjdGlvblR5cGVzLmNvbnRhaW5zKERhdGFEZXRlY3RvclR5cGVz
OjpUcmFja2luZ051bWJlcikgJiYgQ0ZFcXVhbChnZXRfRGF0YURldGVjdG9yc0NvcmVfRERCaW5k
ZXJUcmFja2luZ051bWJlcktleSgpLCB0eXBlKSkKKyAgICAgICAgfHwgKGRldGVjdGlvblR5cGVz
LmNvbnRhaW5zKERhdGFEZXRlY3RvclR5cGVzOjpGbGlnaHROdW1iZXIpICYmIENGRXF1YWwoZ2V0
X0RhdGFEZXRlY3RvcnNDb3JlX0REQmluZGVyRmxpZ2h0SW5mb3JtYXRpb25LZXkoKSwgdHlwZSkp
CisgICAgICAgIHx8IChkZXRlY3Rpb25UeXBlcy5jb250YWlucyhEYXRhRGV0ZWN0b3JUeXBlczo6
TG9va3VwU3VnZ2VzdGlvbikgJiYgQ0ZFcXVhbChnZXRfRGF0YURldGVjdG9yc0NvcmVfRERCaW5k
ZXJQYXJzZWNTb3VyY2VLZXkoKSwgdHlwZSkpCisgICAgICAgIHx8IChkZXRlY3Rpb25UeXBlcy5j
b250YWlucyhEYXRhRGV0ZWN0b3JUeXBlczo6UGhvbmVOdW1iZXIpICYmIEREUmVzdWx0Q2F0ZWdv
cnlQaG9uZU51bWJlciA9PSBjYXRlZ29yeSkKKyAgICAgICAgfHwgKGRldGVjdGlvblR5cGVzLmNv
bnRhaW5zKERhdGFEZXRlY3RvclR5cGVzOjpMaW5rKSAmJiByZXN1bHRJc1VSTChjdXJyZW50UmVz
dWx0KSkpIHsKICAgICAgICAgcmV0dXJuIHNvZnRMaW5rX0RhdGFEZXRlY3RvcnNDb3JlX0REVVJM
U3RyaW5nRm9yUmVzdWx0KGN1cnJlbnRSZXN1bHQsIHJlc3VsdElkZW50aWZpZXIsIHBob25lVHlw
ZXMsIHJlZmVyZW5jZURhdGUsIHJlZmVyZW5jZVRpbWVab25lKTsKICAgICB9Ci0gICAgaWYgKGNv
bnRhaW5zKGRldGVjdGlvblR5cGVzLCBEYXRhRGV0ZWN0b3JUeXBlczo6Q2FsZW5kYXJFdmVudCkg
JiYgRERSZXN1bHRDYXRlZ29yeUNhbGVuZGFyRXZlbnQgPT0gY2F0ZWdvcnkpIHsKKyAgICBpZiAo
ZGV0ZWN0aW9uVHlwZXMuY29udGFpbnMoRGF0YURldGVjdG9yVHlwZXM6OkNhbGVuZGFyRXZlbnQp
ICYmIEREUmVzdWx0Q2F0ZWdvcnlDYWxlbmRhckV2ZW50ID09IGNhdGVnb3J5KSB7CiAgICAgICAg
IGlmICghc29mdExpbmtfRGF0YURldGVjdG9yc0NvcmVfRERSZXN1bHRJc1Bhc3REYXRlKGN1cnJl
bnRSZXN1bHQsIChDRkRhdGVSZWYpcmVmZXJlbmNlRGF0ZSwgKENGVGltZVpvbmVSZWYpcmVmZXJl
bmNlVGltZVpvbmUpKQogICAgICAgICAgICAgcmV0dXJuIHNvZnRMaW5rX0RhdGFEZXRlY3RvcnND
b3JlX0REVVJMU3RyaW5nRm9yUmVzdWx0KGN1cnJlbnRSZXN1bHQsIHJlc3VsdElkZW50aWZpZXIs
IHBob25lVHlwZXMsIHJlZmVyZW5jZURhdGUsIHJlZmVyZW5jZVRpbWVab25lKTsKICAgICB9CkBA
IC00MzksMTMgKzQzMywxMyBAQCB2b2lkIERhdGFEZXRlY3Rpb246OnJlbW92ZURhdGFEZXRlY3Rl
ZExpCiAgICAgICAgIHJlbW92ZVJlc3VsdExpbmtzRnJvbUFuY2hvcihhbmNob3IuZ2V0KCkpOwog
fQogCi1OU0FycmF5ICpEYXRhRGV0ZWN0aW9uOjpkZXRlY3RDb250ZW50SW5SYW5nZShjb25zdCBT
aW1wbGVSYW5nZSYgY29udGV4dFJhbmdlLCBEYXRhRGV0ZWN0b3JUeXBlcyB0eXBlcywgTlNEaWN0
aW9uYXJ5ICpjb250ZXh0KQorTlNBcnJheSAqRGF0YURldGVjdGlvbjo6ZGV0ZWN0Q29udGVudElu
UmFuZ2UoY29uc3QgU2ltcGxlUmFuZ2UmIGNvbnRleHRSYW5nZSwgT3B0aW9uU2V0PERhdGFEZXRl
Y3RvclR5cGVzPiB0eXBlcywgTlNEaWN0aW9uYXJ5ICpjb250ZXh0KQogewogICAgIGF1dG8gc2Nh
bm5lciA9IGFkb3B0Q0Yoc29mdExpbmtfRGF0YURldGVjdG9yc0NvcmVfRERTY2FubmVyQ3JlYXRl
KEREU2Nhbm5lclR5cGVTdGFuZGFyZCwgMCwgbnVsbHB0cikpOwogICAgIGF1dG8gc2NhblF1ZXJ5
ID0gYWRvcHRDRihzb2Z0TGlua19EYXRhRGV0ZWN0b3JzQ29yZV9ERFNjYW5RdWVyeUNyZWF0ZShO
VUxMKSk7CiAgICAgYnVpbGRRdWVyeShzY2FuUXVlcnkuZ2V0KCksIGNvbnRleHRSYW5nZSk7CiAg
ICAgCi0gICAgaWYgKGNvbnRhaW5zKHR5cGVzLCBEYXRhRGV0ZWN0b3JUeXBlczo6TG9va3VwU3Vn
Z2VzdGlvbikpCisgICAgaWYgKHR5cGVzLmNvbnRhaW5zKERhdGFEZXRlY3RvclR5cGVzOjpMb29r
dXBTdWdnZXN0aW9uKSkKICAgICAgICAgc29mdExpbmtfRGF0YURldGVjdG9yc0NvcmVfRERTY2Fu
bmVyRW5hYmxlT3B0aW9uYWxTb3VyY2Uoc2Nhbm5lci5nZXQoKSwgRERTY2FubmVyU291cmNlU3Bv
dGxpZ2h0LCB0cnVlKTsKIAogICAgIC8vIEZJWE1FOiB3ZSBzaG91bGQgYWRkIGEgdGltZW91dCB0
byB0aGlzIGNhbGwgdG8gbWFrZSBzdXJlIGl0IGRvZXNuJ3QgdGFrZSB0b28gbXVjaCB0aW1lLgpA
QCAtNjM4LDcgKzYzMiw3IEBAIE5TQXJyYXkgKkRhdGFEZXRlY3Rpb246OmRldGVjdENvbnRlbnRJ
blIKIAogI2Vsc2UKIAotTlNBcnJheSAqRGF0YURldGVjdGlvbjo6ZGV0ZWN0Q29udGVudEluUmFu
Z2UoY29uc3QgU2ltcGxlUmFuZ2UmLCBEYXRhRGV0ZWN0b3JUeXBlcywgTlNEaWN0aW9uYXJ5ICop
CitOU0FycmF5ICpEYXRhRGV0ZWN0aW9uOjpkZXRlY3RDb250ZW50SW5SYW5nZShjb25zdCBTaW1w
bGVSYW5nZSYsIE9wdGlvblNldDxEYXRhRGV0ZWN0b3JUeXBlcz4sIE5TRGljdGlvbmFyeSAqKQog
ewogICAgIHJldHVybiBuaWw7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29h
L0RhdGFEZXRlY3RvclR5cGVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9jb2NvYS9EYXRhRGV0ZWN0b3JUeXBlcy5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdG9yVHlwZXMuaAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoREFU
QV9ERVRFQ1RJT04pCisKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2VudW0gY2xhc3MgRGF0YURldGVjdG9yVHlwZXMgOiB1aW50OF90IHsKKyAg
ICBOb25lID0gMCwKKyAgICBQaG9uZU51bWJlciA9IDEgPDwgMCwKKyAgICBMaW5rID0gMSA8PCAx
LAorICAgIEFkZHJlc3MgPSAxIDw8IDIsCisgICAgQ2FsZW5kYXJFdmVudCA9IDEgPDwgMywKKyAg
ICBUcmFja2luZ051bWJlciA9IDEgPDwgNCwKKyAgICBGbGlnaHROdW1iZXIgPSAxIDw8IDUsCisg
ICAgTG9va3VwU3VnZ2VzdGlvbiA9IDEgPDwgNiwKK307CisKK30KKworbmFtZXNwYWNlIFdURiB7
CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6RGF0YURldGVjdG9yVHlw
ZXM+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpE
YXRhRGV0ZWN0b3JUeXBlcywKKyAgICAgICAgV2ViQ29yZTo6RGF0YURldGVjdG9yVHlwZXM6Ok5v
bmUsCisgICAgICAgIFdlYkNvcmU6OkRhdGFEZXRlY3RvclR5cGVzOjpQaG9uZU51bWJlciwKKyAg
ICAgICAgV2ViQ29yZTo6RGF0YURldGVjdG9yVHlwZXM6OkxpbmssCisgICAgICAgIFdlYkNvcmU6
OkRhdGFEZXRlY3RvclR5cGVzOjpBZGRyZXNzLAorICAgICAgICBXZWJDb3JlOjpEYXRhRGV0ZWN0
b3JUeXBlczo6Q2FsZW5kYXJFdmVudCwKKyAgICAgICAgV2ViQ29yZTo6RGF0YURldGVjdG9yVHlw
ZXM6OlRyYWNraW5nTnVtYmVyLAorICAgICAgICBXZWJDb3JlOjpEYXRhRGV0ZWN0b3JUeXBlczo6
RmxpZ2h0TnVtYmVyLAorICAgICAgICBXZWJDb3JlOjpEYXRhRGV0ZWN0b3JUeXBlczo6TG9va3Vw
U3VnZ2VzdGlvbgorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlmCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAkocmV2aXNpb24g
MjY5ODU2KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTIxNCwyOCArMjE0LDIzIEBAIHZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6
OmRlZmF1bHRFdmVudEhhbmQKIHZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OnNldEFjdGl2ZShib29s
IGRvd24sIGJvb2wgcGF1c2UpCiB7CiAgICAgaWYgKGhhc0VkaXRhYmxlU3R5bGUoKSkgewotICAg
ICAgICBFZGl0YWJsZUxpbmtCZWhhdmlvciBlZGl0YWJsZUxpbmtCZWhhdmlvciA9IGRvY3VtZW50
KCkuc2V0dGluZ3MoKS5lZGl0YWJsZUxpbmtCZWhhdmlvcigpOwotICAgICAgICAgICAgCi0gICAg
ICAgIHN3aXRjaCAoZWRpdGFibGVMaW5rQmVoYXZpb3IpIHsKLSAgICAgICAgICAgIGRlZmF1bHQ6
Ci0gICAgICAgICAgICBjYXNlIEVkaXRhYmxlTGlua0RlZmF1bHRCZWhhdmlvcjoKLSAgICAgICAg
ICAgIGNhc2UgRWRpdGFibGVMaW5rQWx3YXlzTGl2ZToKLSAgICAgICAgICAgICAgICBicmVhazsK
LQotICAgICAgICAgICAgY2FzZSBFZGl0YWJsZUxpbmtOZXZlckxpdmU6CisgICAgICAgIHN3aXRj
aCAoZG9jdW1lbnQoKS5zZXR0aW5ncygpLmVkaXRhYmxlTGlua0JlaGF2aW9yKCkpIHsKKyAgICAg
ICAgY2FzZSBFZGl0YWJsZUxpbmtCZWhhdmlvcjo6RGVmYXVsdDoKKyAgICAgICAgY2FzZSBFZGl0
YWJsZUxpbmtCZWhhdmlvcjo6QWx3YXlzTGl2ZToKKyAgICAgICAgICAgIGJyZWFrOworCisgICAg
ICAgIC8vIERvbid0IHNldCB0aGUgbGluayB0byBiZSBhY3RpdmUgaWYgdGhlIGN1cnJlbnQgc2Vs
ZWN0aW9uIGlzIGluIHRoZSBzYW1lIGVkaXRhYmxlIGJsb2NrIGFzCisgICAgICAgIC8vIHRoaXMg
bGluaworICAgICAgICBjYXNlIEVkaXRhYmxlTGlua0JlaGF2aW9yOjpMaXZlV2hlbk5vdEZvY3Vz
ZWQ6CisgICAgICAgICAgICBpZiAoZG93biAmJiBkb2N1bWVudCgpLmZyYW1lKCkgJiYgZG9jdW1l
bnQoKS5mcmFtZSgpLT5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKS5yb290RWRpdGFibGVFbGVtZW50
KCkgPT0gcm9vdEVkaXRhYmxlRWxlbWVudCgpKQogICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAKKyAgICAgICAgY2FzZSBFZGl0YWJsZUxpbmtCZWhh
dmlvcjo6TmV2ZXJMaXZlOgorICAgICAgICBjYXNlIEVkaXRhYmxlTGlua0JlaGF2aW9yOjpPbmx5
TGl2ZVdpdGhTaGlmdEtleToKKyAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAgICAgLy8g
RG9uJ3Qgc2V0IHRoZSBsaW5rIHRvIGJlIGFjdGl2ZSBpZiB0aGUgY3VycmVudCBzZWxlY3Rpb24g
aXMgaW4gdGhlIHNhbWUgZWRpdGFibGUgYmxvY2sgYXMKLSAgICAgICAgICAgIC8vIHRoaXMgbGlu
awotICAgICAgICAgICAgY2FzZSBFZGl0YWJsZUxpbmtMaXZlV2hlbk5vdEZvY3VzZWQ6Ci0gICAg
ICAgICAgICAgICAgaWYgKGRvd24gJiYgZG9jdW1lbnQoKS5mcmFtZSgpICYmIGRvY3VtZW50KCku
ZnJhbWUoKS0+c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkucm9vdEVkaXRhYmxlRWxlbWVudCgpID09
IHJvb3RFZGl0YWJsZUVsZW1lbnQoKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBjYXNlIEVkaXRh
YmxlTGlua09ubHlMaXZlV2l0aFNoaWZ0S2V5OgotICAgICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQotCiAgICAgfQogICAgIAogICAgIEhUTUxFbGVtZW50OjpzZXRBY3RpdmUoZG93biwg
cGF1c2UpOwpAQCAtNTUwLDE5ICs1NDUsMTkgQEAgYm9vbCBIVE1MQW5jaG9yRWxlbWVudDo6dHJl
YXRMaW5rQXNMaXZlRgogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHN3aXRjaCAoZG9jdW1l
bnQoKS5zZXR0aW5ncygpLmVkaXRhYmxlTGlua0JlaGF2aW9yKCkpIHsKLSAgICBjYXNlIEVkaXRh
YmxlTGlua0RlZmF1bHRCZWhhdmlvcjoKLSAgICBjYXNlIEVkaXRhYmxlTGlua0Fsd2F5c0xpdmU6
CisgICAgY2FzZSBFZGl0YWJsZUxpbmtCZWhhdmlvcjo6RGVmYXVsdDoKKyAgICBjYXNlIEVkaXRh
YmxlTGlua0JlaGF2aW9yOjpBbHdheXNMaXZlOgogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAg
IGNhc2UgRWRpdGFibGVMaW5rTmV2ZXJMaXZlOgorICAgIGNhc2UgRWRpdGFibGVMaW5rQmVoYXZp
b3I6Ok5ldmVyTGl2ZToKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gSWYgdGhlIHNl
bGVjdGlvbiBwcmlvciB0byBjbGlja2luZyBvbiB0aGlzIGxpbmsgcmVzaWRlZCBpbiB0aGUgc2Ft
ZSBlZGl0YWJsZSBibG9jayBhcyB0aGlzIGxpbmssCiAgICAgLy8gYW5kIHRoZSBzaGlmdCBrZXkg
aXNuJ3QgcHJlc3NlZCwgd2UgZG9uJ3Qgd2FudCB0byBmb2xsb3cgdGhlIGxpbmsuCi0gICAgY2Fz
ZSBFZGl0YWJsZUxpbmtMaXZlV2hlbk5vdEZvY3VzZWQ6CisgICAgY2FzZSBFZGl0YWJsZUxpbmtC
ZWhhdmlvcjo6TGl2ZVdoZW5Ob3RGb2N1c2VkOgogICAgICAgICByZXR1cm4gZXZlbnRUeXBlID09
IE1vdXNlRXZlbnRXaXRoU2hpZnRLZXkgfHwgKGV2ZW50VHlwZSA9PSBNb3VzZUV2ZW50V2l0aG91
dFNoaWZ0S2V5ICYmIHJvb3RFZGl0YWJsZUVsZW1lbnRGb3JTZWxlY3Rpb25Pbk1vdXNlRG93bigp
ICE9IHJvb3RFZGl0YWJsZUVsZW1lbnQoKSk7CiAKLSAgICBjYXNlIEVkaXRhYmxlTGlua09ubHlM
aXZlV2l0aFNoaWZ0S2V5OgorICAgIGNhc2UgRWRpdGFibGVMaW5rQmVoYXZpb3I6Ok9ubHlMaXZl
V2l0aFNoaWZ0S2V5OgogICAgICAgICByZXR1cm4gZXZlbnRUeXBlID09IE1vdXNlRXZlbnRXaXRo
U2hpZnRLZXk7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
UGFyc2VyT3B0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTFBhcnNlck9wdGlvbnMuY3BwCShyZXZpc2lvbiAyNjk4NTYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MUGFyc2VyT3B0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQ1LDcgKzQ1LDcgQEAgSFRNTFBhcnNlck9wdGlvbnM6OkhUTUxQYXJzZXJPcHRpb25zKCkKIEhU
TUxQYXJzZXJPcHRpb25zOjpIVE1MUGFyc2VyT3B0aW9ucyhEb2N1bWVudCYgZG9jdW1lbnQpCiB7
CiAgICAgUmVmUHRyPEZyYW1lPiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCk7Ci0gICAgaWYgKGRv
Y3VtZW50LnNldHRpbmdzKCkucGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeSgpID09IFNldHRpbmdz
QmFzZTo6UGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeTo6RW5hYmxlZCkKKyAgICBpZiAoZG9jdW1l
bnQuc2V0dGluZ3MoKS5odG1sUGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeSgpID09IEhUTUxQYXJz
ZXJTY3JpcHRpbmdGbGFnUG9saWN5OjpFbmFibGVkKQogICAgICAgICBzY3JpcHRpbmdGbGFnID0g
dHJ1ZTsKICAgICBlbHNlCiAgICAgICAgIHNjcmlwdGluZ0ZsYWcgPSBmcmFtZSAmJiBmcmFtZS0+
c2NyaXB0KCkuY2FuRXhlY3V0ZVNjcmlwdHMoTm90QWJvdXRUb0V4ZWN1dGVTY3JpcHQpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlclNjcmlwdGluZ0ZsYWdQb2xp
Y3kuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUGFyc2Vy
U2NyaXB0aW5nRmxhZ1BvbGljeS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0hUTUxQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5LmgJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2VudW0gY2xhc3MgSFRNTFBhcnNlclNjcmlwdGluZ0ZsYWdQb2xpY3kgOiB1
aW50OF90IHsKKyAgICBPbmx5SWZTY3JpcHRJc0VuYWJsZWQsCisgICAgRW5hYmxlZAorfTsKKwor
fQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCShyZXZpc2lvbiAyNjk4
NTYpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNTgwLDggKzI1ODAsOCBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjaGVja0xvYWRDb21w
bGV0ZUZvclRoCiAgICAgICAgICAgICAgICAgRlJBTUVMT0FERVJfUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRChSZXNvdXJjZUxvYWRpbmcsICJjaGVja0xvYWRDb21wbGV0ZUZvclRoaXNGcmFtZTogRmlu
aXNoZWQgZnJhbWUgbG9hZCIpOwogI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKICAgICAgICAg
ICAgICAgICBhdXRvIGRvY3VtZW50ID0gbV9mcmFtZS5kb2N1bWVudCgpOwotICAgICAgICAgICAg
ICAgIGF1dG8gdHlwZXMgPSBtX2ZyYW1lLnNldHRpbmdzKCkuZGF0YURldGVjdG9yVHlwZXMoKTsK
LSAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQgJiYgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHR5
cGVzKSkgeworICAgICAgICAgICAgICAgIGF1dG8gdHlwZXMgPSBPcHRpb25TZXQ8RGF0YURldGVj
dG9yVHlwZXM+IHsgbV9mcmFtZS5zZXR0aW5ncygpLmRhdGFEZXRlY3RvclR5cGVzKCkgfTsKKyAg
ICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQgJiYgdHlwZXMpIHsKICAgICAgICAgICAgICAgICAg
ICAgbV9mcmFtZS5zZXREYXRhRGV0ZWN0aW9uUmVzdWx0cyhEYXRhRGV0ZWN0aW9uOjpkZXRlY3RD
b250ZW50SW5SYW5nZShtYWtlUmFuZ2VTZWxlY3RpbmdOb2RlQ29udGVudHMoKmRvY3VtZW50KSwg
dHlwZXMsIG1fY2xpZW50LT5kYXRhRGV0ZWN0aW9uQ29udGV4dCgpKSk7CiAgICAgICAgICAgICAg
ICAgICAgIGlmIChtX2ZyYW1lLmlzTWFpbkZyYW1lKCkpCiAgICAgICAgICAgICAgICAgICAgICAg
ICBtX2NsaWVudC0+ZGlzcGF0Y2hEaWRGaW5pc2hEYXRhRGV0ZWN0aW9uKG1fZnJhbWUuZGF0YURl
dGVjdGlvblJlc3VsdHMoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51
Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0
TWVudUNvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAyNjk4NTYpCisrKyBTb3VyY2UvV2ViQ29yZS9w
YWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMTAsOCAr
MTExMCw4IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpwb3B1bGF0ZSgpCiAgICAgICAg
ICAgICBjcmVhdGVBbmRBcHBlbmRXcml0aW5nRGlyZWN0aW9uU3ViTWVudShXcml0aW5nRGlyZWN0
aW9uTWVudUl0ZW0pOwogICAgICAgICAgICAgYXBwZW5kSXRlbShXcml0aW5nRGlyZWN0aW9uTWVu
dUl0ZW0sIG1fY29udGV4dE1lbnUuZ2V0KCkpOwogICAgICAgICAgICAgaWYgKFBhZ2UqIHBhZ2Ug
PSBmcmFtZS0+cGFnZSgpKSB7Ci0gICAgICAgICAgICAgICAgYm9vbCBpbmNsdWRlVGV4dERpcmVj
dGlvblN1Ym1lbnUgPSBwYWdlLT5zZXR0aW5ncygpLnRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVz
aW9uQmVoYXZpb3IoKSA9PSBUZXh0RGlyZWN0aW9uU3VibWVudUFsd2F5c0luY2x1ZGVkCi0gICAg
ICAgICAgICAgICAgICAgIHx8IChwYWdlLT5zZXR0aW5ncygpLnRleHREaXJlY3Rpb25TdWJtZW51
SW5jbHVzaW9uQmVoYXZpb3IoKSA9PSBUZXh0RGlyZWN0aW9uU3VibWVudUF1dG9tYXRpY2FsbHlJ
bmNsdWRlZCAmJiBmcmFtZS0+ZWRpdG9yKCkuaGFzQmlkaVNlbGVjdGlvbigpKTsKKyAgICAgICAg
ICAgICAgICBib29sIGluY2x1ZGVUZXh0RGlyZWN0aW9uU3VibWVudSA9IHBhZ2UtPnNldHRpbmdz
KCkudGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcigpID09IFRleHREaXJlY3Rp
b25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3I6OkFsd2F5c0luY2x1ZGVkCisgICAgICAgICAgICAg
ICAgICAgIHx8IChwYWdlLT5zZXR0aW5ncygpLnRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9u
QmVoYXZpb3IoKSA9PSBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yOjpBdXRv
bWF0aWNhbGx5SW5jbHVkZWQgJiYgZnJhbWUtPmVkaXRvcigpLmhhc0JpZGlTZWxlY3Rpb24oKSk7
CiAgICAgICAgICAgICAgICAgaWYgKGluY2x1ZGVUZXh0RGlyZWN0aW9uU3VibWVudSkgewogICAg
ICAgICAgICAgICAgICAgICBDb250ZXh0TWVudUl0ZW0gVGV4dERpcmVjdGlvbk1lbnVJdGVtKFN1
Ym1lbnVUeXBlLCBDb250ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0aW9uTWVudSwgY29udGV4dE1l
bnVJdGVtVGFnVGV4dERpcmVjdGlvbk1lbnUoKSk7CiAgICAgICAgICAgICAgICAgICAgIGNyZWF0
ZUFuZEFwcGVuZFRleHREaXJlY3Rpb25TdWJNZW51KFRleHREaXJlY3Rpb25NZW51SXRlbSk7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RlYnVnT3ZlcmxheVJlZ2lvbnMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0RlYnVnT3ZlcmxheVJlZ2lvbnMuaAkobm9uZXhpc3Rl
bnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RlYnVnT3ZlcmxheVJlZ2lvbnMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0g
Y2xhc3MgRGVidWdPdmVybGF5UmVnaW9ucyA6IHVpbnQ4X3QgeworICAgIE5vbkZhc3RTY3JvbGxh
YmxlUmVnaW9uID0gMSA8PCAwLAorICAgIFdoZWVsRXZlbnRIYW5kbGVyUmVnaW9uID0gMSA8PCAx
LAorICAgIFRvdWNoQWN0aW9uUmVnaW9uID0gMSA8PCAyLAorICAgIEVkaXRhYmxlRWxlbWVudFJl
Z2lvbiA9IDEgPDwgMywKK307CisKK30KKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4g
c3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6RGVidWdPdmVybGF5UmVnaW9ucz4geworICAgIHVz
aW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OkRlYnVnT3ZlcmxheVJl
Z2lvbnMsCisgICAgICAgIFdlYkNvcmU6OkRlYnVnT3ZlcmxheVJlZ2lvbnM6Ok5vbkZhc3RTY3Jv
bGxhYmxlUmVnaW9uLAorICAgICAgICBXZWJDb3JlOjpEZWJ1Z092ZXJsYXlSZWdpb25zOjpXaGVl
bEV2ZW50SGFuZGxlclJlZ2lvbiwKKyAgICAgICAgV2ViQ29yZTo6RGVidWdPdmVybGF5UmVnaW9u
czo6VG91Y2hBY3Rpb25SZWdpb24sCisgICAgICAgIFdlYkNvcmU6OkRlYnVnT3ZlcmxheVJlZ2lv
bnM6OkVkaXRhYmxlRWxlbWVudFJlZ2lvbgorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
VEYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwCShyZXZp
c2lvbiAyNjk4NTYpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzk5LDE0ICszOTksMTQgQEAgUmVnaW9uT3ZlcmxheSogRGVi
dWdQYWdlT3ZlcmxheXM6OnJlZ2lvbgogICAgIHJldHVybiBpdC0+dmFsdWUuYXQoaW5kZXhPZihy
ZWdpb25UeXBlKSkuZ2V0KCk7CiB9CiAKLXZvaWQgRGVidWdQYWdlT3ZlcmxheXM6OnVwZGF0ZU92
ZXJsYXlSZWdpb25WaXNpYmlsaXR5KFBhZ2UmIHBhZ2UsIERlYnVnT3ZlcmxheVJlZ2lvbnMgdmlz
aWJsZVJlZ2lvbnMpCit2b2lkIERlYnVnUGFnZU92ZXJsYXlzOjp1cGRhdGVPdmVybGF5UmVnaW9u
VmlzaWJpbGl0eShQYWdlJiBwYWdlLCBPcHRpb25TZXQ8RGVidWdPdmVybGF5UmVnaW9ucz4gdmlz
aWJsZVJlZ2lvbnMpCiB7Ci0gICAgaWYgKHZpc2libGVSZWdpb25zICYgTm9uRmFzdFNjcm9sbGFi
bGVSZWdpb24pCisgICAgaWYgKHZpc2libGVSZWdpb25zLmNvbnRhaW5zKERlYnVnT3ZlcmxheVJl
Z2lvbnM6Ok5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKSkKICAgICAgICAgc2hvd1JlZ2lvbk92ZXJs
YXkocGFnZSwgUmVnaW9uVHlwZTo6Tm9uRmFzdFNjcm9sbGFibGVSZWdpb24pOwogICAgIGVsc2UK
ICAgICAgICAgaGlkZVJlZ2lvbk92ZXJsYXkocGFnZSwgUmVnaW9uVHlwZTo6Tm9uRmFzdFNjcm9s
bGFibGVSZWdpb24pOwogCi0gICAgaWYgKHZpc2libGVSZWdpb25zICYgV2hlZWxFdmVudEhhbmRs
ZXJSZWdpb24pCisgICAgaWYgKHZpc2libGVSZWdpb25zLmNvbnRhaW5zKERlYnVnT3ZlcmxheVJl
Z2lvbnM6OldoZWVsRXZlbnRIYW5kbGVyUmVnaW9uKSkKICAgICAgICAgc2hvd1JlZ2lvbk92ZXJs
YXkocGFnZSwgUmVnaW9uVHlwZTo6V2hlZWxFdmVudEhhbmRsZXJzKTsKICAgICBlbHNlCiAgICAg
ICAgIGhpZGVSZWdpb25PdmVybGF5KHBhZ2UsIFJlZ2lvblR5cGU6OldoZWVsRXZlbnRIYW5kbGVy
cyk7CkBAIC00MTQsNyArNDE0LDcgQEAgdm9pZCBEZWJ1Z1BhZ2VPdmVybGF5czo6dXBkYXRlT3Zl
cmxheVJlZwogCiB2b2lkIERlYnVnUGFnZU92ZXJsYXlzOjpzZXR0aW5nc0NoYW5nZWQoUGFnZSYg
cGFnZSkKIHsKLSAgICBEZWJ1Z092ZXJsYXlSZWdpb25zIGFjdGl2ZU92ZXJsYXlSZWdpb25zID0g
cGFnZS5zZXR0aW5ncygpLnZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zKCk7CisgICAgYXV0byBh
Y3RpdmVPdmVybGF5UmVnaW9ucyA9IE9wdGlvblNldDxEZWJ1Z092ZXJsYXlSZWdpb25zPjo6ZnJv
bVJhdyhwYWdlLnNldHRpbmdzKCkudmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMoKSk7CiAgICAg
aWYgKCFhY3RpdmVPdmVybGF5UmVnaW9ucyAmJiAhaGFzT3ZlcmxheXMocGFnZSkpCiAgICAgICAg
IHJldHVybjsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9EZWJ1Z1BhZ2VPdmVybGF5cy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuaAko
cmV2aXNpb24gMjY5ODU2KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9EZWJ1Z1BhZ2VPdmVybGF5
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw5ICsyNSwxMCBAQAogCiAjcHJhZ21hIG9uY2UKIAor
I2luY2x1ZGUgIkRlYnVnT3ZlcmxheVJlZ2lvbnMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgotI2lu
Y2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3
dGYvT3B0aW9uU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC00Myw3ICs0NCw3IEBAIHB1YmxpYzoKICAgICAgICAgV2hlZWxFdmVudEhhbmRs
ZXJzLAogICAgICAgICBOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbiwKICAgICB9OwotICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBOdW1iZXJPZlJlZ2lvblR5cGVzID0gTm9uRmFzdFNjcm9sbGFibGVS
ZWdpb24gKyAxOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgTnVtYmVyT2ZSZWdpb25U
eXBlcyA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZWdpb25UeXBlOjpOb25GYXN0U2Nyb2xsYWJs
ZVJlZ2lvbikgKyAxOwogCiAgICAgc3RhdGljIHZvaWQgZGlkTGF5b3V0KEZyYW1lJik7CiAgICAg
c3RhdGljIHZvaWQgZGlkQ2hhbmdlRXZlbnRIYW5kbGVycyhGcmFtZSYpOwpAQCAtNjYsNyArNjcs
NyBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gbV9wYWdlUmVnaW9uT3ZlcmxheXMuY29udGFp
bnMoJnBhZ2UpOwogICAgIH0KICAgICAKLSAgICB2b2lkIHVwZGF0ZU92ZXJsYXlSZWdpb25WaXNp
YmlsaXR5KFBhZ2UmLCBEZWJ1Z092ZXJsYXlSZWdpb25zKTsKKyAgICB2b2lkIHVwZGF0ZU92ZXJs
YXlSZWdpb25WaXNpYmlsaXR5KFBhZ2UmLCBPcHRpb25TZXQ8RGVidWdPdmVybGF5UmVnaW9ucz4p
OwogCiAgICAgUmVnaW9uT3ZlcmxheSogcmVnaW9uT3ZlcmxheUZvclBhZ2UoUGFnZSYsIFJlZ2lv
blR5cGUpIGNvbnN0OwogICAgIFJlZ2lvbk92ZXJsYXkmIGVuc3VyZVJlZ2lvbk92ZXJsYXlGb3JQ
YWdlKFBhZ2UmLCBSZWdpb25UeXBlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5jcHAJKHJldmlzaW9uIDI2OTg1NikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM4MywyMSArMTM4MywyMCBAQCBib29sIEV2ZW50
SGFuZGxlcjo6dXNlSGFuZEN1cnNvcihOb2RlKiBuCiAgICAgLy8gSWYgdGhlIGxpbmsgaXMgZWRp
dGFibGUsIHRoZW4gd2UgbmVlZCB0byBjaGVjayB0aGUgc2V0dGluZ3MgdG8gc2VlIHdoZXRoZXIg
b3Igbm90IHRoZSBsaW5rIHNob3VsZCBiZSBmb2xsb3dlZAogICAgIGlmIChlZGl0YWJsZSkgewog
ICAgICAgICBzd2l0Y2ggKG1fZnJhbWUuc2V0dGluZ3MoKS5lZGl0YWJsZUxpbmtCZWhhdmlvcigp
KSB7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgIGNhc2UgRWRpdGFibGVMaW5rRGVmYXVsdEJl
aGF2aW9yOgotICAgICAgICBjYXNlIEVkaXRhYmxlTGlua0Fsd2F5c0xpdmU6CisgICAgICAgIGNh
c2UgRWRpdGFibGVMaW5rQmVoYXZpb3I6OkRlZmF1bHQ6CisgICAgICAgIGNhc2UgRWRpdGFibGVM
aW5rQmVoYXZpb3I6OkFsd2F5c0xpdmU6CiAgICAgICAgICAgICBlZGl0YWJsZUxpbmtFbmFibGVk
ID0gdHJ1ZTsKICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgIGNhc2UgRWRpdGFibGVMaW5r
TmV2ZXJMaXZlOgorICAgICAgICBjYXNlIEVkaXRhYmxlTGlua0JlaGF2aW9yOjpOZXZlckxpdmU6
CiAgICAgICAgICAgICBlZGl0YWJsZUxpbmtFbmFibGVkID0gZmFsc2U7CiAgICAgICAgICAgICBi
cmVhazsKIAotICAgICAgICBjYXNlIEVkaXRhYmxlTGlua0xpdmVXaGVuTm90Rm9jdXNlZDoKKyAg
ICAgICAgY2FzZSBFZGl0YWJsZUxpbmtCZWhhdmlvcjo6TGl2ZVdoZW5Ob3RGb2N1c2VkOgogICAg
ICAgICAgICAgZWRpdGFibGVMaW5rRW5hYmxlZCA9IG5vZGVJc05vdEJlaW5nRWRpdGVkKCpub2Rl
LCBtX2ZyYW1lKSB8fCBzaGlmdEtleTsKICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgIGNh
c2UgRWRpdGFibGVMaW5rT25seUxpdmVXaXRoU2hpZnRLZXk6CisgICAgICAgIGNhc2UgRWRpdGFi
bGVMaW5rQmVoYXZpb3I6Ok9ubHlMaXZlV2l0aFNoaWZ0S2V5OgogICAgICAgICAgICAgZWRpdGFi
bGVMaW5rRW5hYmxlZCA9IHNoaWZ0S2V5OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVGbGF0dGVuaW5nLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZUZsYXR0ZW5pbmcuaAkobm9uZXhpc3RlbnQpCisr
KyBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lRmxhdHRlbmluZy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitlbnVtIGNsYXNzIEZyYW1lRmxhdHRlbmluZyA6IHVpbnQ4X3QgeworICAgIERp
c2FibGVkLAorICAgIEVuYWJsZWRGb3JOb25GdWxsU2NyZWVuSUZyYW1lcywKKyAgICBGdWxseUVu
YWJsZWQKK307CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAkocmV2aXNpb24gMjY5
ODU2KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAkod29ya2luZyBjb3B5KQpA
QCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkFkanVzdFZpZXdTaXplT3JOb3QuaCIKICNpbmNs
dWRlICJDb2xvci5oIgogI2luY2x1ZGUgIkNvbnRhaW5lck5vZGUuaCIKKyNpbmNsdWRlICJGcmFt
ZUZsYXR0ZW5pbmcuaCIKICNpbmNsdWRlICJGcmFtZVZpZXdMYXlvdXRDb250ZXh0LmgiCiAjaW5j
bHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiTGF5b3V0TWlsZXN0b25lLmgiCkBA
IC04MCw4ICs4MSw2IEBAIGNsYXNzIFZpZXc7CiB9CiAjZW5kaWYKIAotZW51bSBjbGFzcyBGcmFt
ZUZsYXR0ZW5pbmc7Ci0KIFBhZ2luYXRpb246Ok1vZGUgcGFnaW5hdGlvbk1vZGVGb3JSZW5kZXJT
dHlsZShjb25zdCBSZW5kZXJTdHlsZSYpOwogCiBjbGFzcyBGcmFtZVZpZXcgZmluYWwgOiBwdWJs
aWMgU2Nyb2xsVmlldyB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BERkltYWdlQ2FjaGlu
Z1BvbGljeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUERGSW1hZ2VDYWNo
aW5nUG9saWN5LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QREZJbWFn
ZUNhY2hpbmdQb2xpY3kuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBQ
REZJbWFnZUNhY2hpbmdQb2xpY3kgOiB1aW50OF90IHsKKyAgICBFbmFibGVkLAorICAgIEJlbG93
TWVtb3J5TGltaXQsCisgICAgRGlzYWJsZWQsCisgICAgQ2xpcEJvdW5kc09ubHksCisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBEZWZhdWx0ID0gQmVsb3dNZW1vcnlMaW1pdAorI2Vsc2UK
KyAgICBEZWZhdWx0ID0gRW5hYmxlZAorI2VuZGlmCit9OworCit9CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5jcHAJKHJldmlzaW9uIDI2OTg1NikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJET01SZWN0LmgiCiAj
aW5jbHVkZSAiRE9NUmVjdExpc3QuaCIKICNpbmNsdWRlICJEYXRhYmFzZVByb3ZpZGVyLmgiCisj
aW5jbHVkZSAiRGVidWdPdmVybGF5UmVnaW9ucy5oIgogI2luY2x1ZGUgIkRlYnVnUGFnZU92ZXJs
YXlzLmgiCiAjaW5jbHVkZSAiRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCIKICNpbmNsdWRlICJE
aWFnbm9zdGljTG9nZ2luZ0tleXMuaCIKQEAgLTk0NCw3ICs5NDUsNyBAQCB2b2lkIFBhZ2U6OnNl
dEVkaXRhYmxlUmVnaW9uRW5hYmxlZChib29sCiAKIGJvb2wgUGFnZTo6c2hvdWxkQnVpbGRFZGl0
YWJsZVJlZ2lvbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1faXNFZGl0YWJsZVJlZ2lvbkVuYWJs
ZWQgfHwgbV9zZXR0aW5ncy0+dmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMoKSAmIEVkaXRhYmxl
RWxlbWVudFJlZ2lvbjsKKyAgICByZXR1cm4gbV9pc0VkaXRhYmxlUmVnaW9uRW5hYmxlZCB8fCBP
cHRpb25TZXQ8RGVidWdPdmVybGF5UmVnaW9ucz46OmZyb21SYXcobV9zZXR0aW5ncy0+dmlzaWJs
ZURlYnVnT3ZlcmxheVJlZ2lvbnMoKSkuY29udGFpbnMoRGVidWdPdmVybGF5UmVnaW9uczo6RWRp
dGFibGVFbGVtZW50UmVnaW9uKTsKIH0KIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL1NlY3VyaXR5T3JpZ2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdl
L1NlY3VyaXR5T3JpZ2luLmNwcAkocmV2aXNpb24gMjY5ODU2KQorKysgU291cmNlL1dlYkNvcmUv
cGFnZS9TZWN1cml0eU9yaWdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwNCwxNCArNDA0LDE0
IEBAIGJvb2wgU2VjdXJpdHlPcmlnaW46OmNhbkFjY2Vzc1N0b3JhZ2UoY28KICAgICBpZiAoaXNM
b2NhbCgpICYmICFuZWVkc1N0b3JhZ2VBY2Nlc3NGcm9tRmlsZVVSTHNRdWlyaygpICYmICFtX3Vu
aXZlcnNhbEFjY2VzcyAmJiBzaG91bGRBbGxvd0Zyb21UaGlyZFBhcnR5ICE9IEFsd2F5c0FsbG93
RnJvbVRoaXJkUGFydHkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKLSAgICBpZiAobV9z
dG9yYWdlQmxvY2tpbmdQb2xpY3kgPT0gQmxvY2tBbGxTdG9yYWdlKQorICAgIGlmIChtX3N0b3Jh
Z2VCbG9ja2luZ1BvbGljeSA9PSBTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkJsb2NrQWxsKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBGSVhNRTogVGhpcyBjaGVjayBzaG91bGQgYmUg
cmVwbGFjZWQgd2l0aCBhbiBBU1NFUlQgb25jZSB3ZSBjYW4gZ3VhcmFudGVlIHRoYXQgdG9wT3Jp
Z2luIGlzIG5vdCBudWxsLgogICAgIGlmICghdG9wT3JpZ2luKQogICAgICAgICByZXR1cm4gdHJ1
ZTsKIAotICAgIGlmICh0b3BPcmlnaW4tPm1fc3RvcmFnZUJsb2NraW5nUG9saWN5ID09IEJsb2Nr
QWxsU3RvcmFnZSkKKyAgICBpZiAodG9wT3JpZ2luLT5tX3N0b3JhZ2VCbG9ja2luZ1BvbGljeSA9
PSBTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkJsb2NrQWxsKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICBpZiAoc2hvdWxkQWxsb3dGcm9tVGhpcmRQYXJ0eSA9PSBBbHdheXNBbGxvd0Zyb21U
aGlyZFBhcnR5KQpAQCAtNDIwLDcgKzQyMCw3IEBAIGJvb2wgU2VjdXJpdHlPcmlnaW46OmNhbkFj
Y2Vzc1N0b3JhZ2UoY28KICAgICBpZiAobV91bml2ZXJzYWxBY2Nlc3MpCiAgICAgICAgIHJldHVy
biB0cnVlOwogCi0gICAgaWYgKChtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeSA9PSBCbG9ja1RoaXJk
UGFydHlTdG9yYWdlIHx8IHRvcE9yaWdpbi0+bV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgPT0gQmxv
Y2tUaGlyZFBhcnR5U3RvcmFnZSkgJiYgIXRvcE9yaWdpbi0+aXNTYW1lT3JpZ2luQXMoKnRoaXMp
KQorICAgIGlmICgobV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgPT0gU3RvcmFnZUJsb2NraW5nUG9s
aWN5OjpCbG9ja1RoaXJkUGFydHkgfHwgdG9wT3JpZ2luLT5tX3N0b3JhZ2VCbG9ja2luZ1BvbGlj
eSA9PSBTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkJsb2NrVGhpcmRQYXJ0eSkgJiYgIXRvcE9yaWdp
bi0+aXNTYW1lT3JpZ2luQXMoKnRoaXMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBy
ZXR1cm4gdHJ1ZTsKQEAgLTQ4OCw3ICs0ODgsNyBAQCB2b2lkIFNlY3VyaXR5T3JpZ2luOjpncmFu
dFN0b3JhZ2VBY2Nlc3NGCiAKIFN0cmluZyBTZWN1cml0eU9yaWdpbjo6ZG9tYWluRm9yQ2FjaGVQ
YXJ0aXRpb24oKSBjb25zdAogewotICAgIGlmIChtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeSAhPSBC
bG9ja1RoaXJkUGFydHlTdG9yYWdlKQorICAgIGlmIChtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeSAh
PSBTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkJsb2NrVGhpcmRQYXJ0eSkKICAgICAgICAgcmV0dXJu
IGVtcHR5U3RyaW5nKCk7CiAKICAgICBpZiAoaXNIVFRQRmFtaWx5KCkpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oCShyZXZpc2lvbiAyNjk4NTYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcg
QEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5EYXRhLmgiCisjaW5j
bHVkZSAiU3RvcmFnZUJsb2NraW5nUG9saWN5LmgiCiAjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMu
aD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KQEAgLTQzLDEyICs0NCw2IEBAIHB1YmxpYzoKICAgICAgICAgQXNr
CiAgICAgfTsKIAotICAgIGVudW0gU3RvcmFnZUJsb2NraW5nUG9saWN5IHsKLSAgICAgICAgQWxs
b3dBbGxTdG9yYWdlID0gMCwKLSAgICAgICAgQmxvY2tUaGlyZFBhcnR5U3RvcmFnZSwKLSAgICAg
ICAgQmxvY2tBbGxTdG9yYWdlCi0gICAgfTsKLQogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBS
ZWY8U2VjdXJpdHlPcmlnaW4+IGNyZWF0ZShjb25zdCBVUkwmKTsKICAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgUmVmPFNlY3VyaXR5T3JpZ2luPiBjcmVhdGVVbmlxdWUoKTsKIApAQCAtMjQzLDcg
KzIzOCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3VuaXZlcnNhbEFjY2VzcyB7IGZhbHNlIH07
CiAgICAgYm9vbCBtX2RvbWFpbldhc1NldEluRE9NIHsgZmFsc2UgfTsKICAgICBib29sIG1fY2Fu
TG9hZExvY2FsUmVzb3VyY2VzIHsgZmFsc2UgfTsKLSAgICBTdG9yYWdlQmxvY2tpbmdQb2xpY3kg
bV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgeyBBbGxvd0FsbFN0b3JhZ2UgfTsKKyAgICBTdG9yYWdl
QmxvY2tpbmdQb2xpY3kgbV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgeyBTdG9yYWdlQmxvY2tpbmdQ
b2xpY3k6OkFsbG93QWxsIH07CiAgICAgYm9vbCBtX2VuZm9yY2VzRmlsZVBhdGhTZXBhcmF0aW9u
IHsgZmFsc2UgfTsKICAgICBib29sIG1fbmVlZHNTdG9yYWdlQWNjZXNzRnJvbUZpbGVVUkxzUXVp
cmsgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc1BvdGVudGlhbGx5VHJ1c3R3b3J0aHkgeyBmYWxz
ZSB9OwpAQCAtMzA4LDE3ICszMDMsMyBAQCB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBpbmxpbmUg
UmVmUHRyPFNlCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotbmFtZXNwYWNlIFdURiB7
Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46
OlN0b3JhZ2VCbG9ja2luZ1BvbGljeT4gewotICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8
Ci0gICAgICAgIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3ks
Ci0gICAgICAgIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6
OkFsbG93QWxsU3RvcmFnZSwKLSAgICAgICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OlN0b3Jh
Z2VCbG9ja2luZ1BvbGljeTo6QmxvY2tUaGlyZFBhcnR5U3RvcmFnZSwKLSAgICAgICAgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QmxvY2tBbGxTdG9yYWdl
Ci0gICAgPjsKLX07Ci0KLQotfSAvLyBuYW1lc3BhY2UgV1RGCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLnlhbWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9T
ZXR0aW5ncy55YW1sCShyZXZpc2lvbiAyNjk4NTYpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLnlhbWwJKHdvcmtpbmcgY29weSkKQEAgLTk0LDcgKzk0LDcgQEAgRGF0YURldGVjdG9y
VHlwZXM6CiAgIGNvbmRpdGlvbjogRU5BQkxFKERBVEFfREVURUNUSU9OKQogICBkZWZhdWx0VmFs
dWU6CiAgICAgV2ViQ29yZToKLSAgICAgIGRlZmF1bHQ6CisgICAgICBkZWZhdWx0OiBEYXRhRGV0
ZWN0b3JUeXBlczo6Tm9uZQogCiBEZWZhdWx0VmlkZW9Qb3N0ZXJVUkw6CiAgIGNvbW1lbnQ6ID4t
CkBAIC0xMjUsMTggKzEyNSwxOCBAQCBFZGl0YWJsZUxpbmtCZWhhdmlvcjoKICAgcmVmaW5lZFR5
cGU6IEVkaXRhYmxlTGlua0JlaGF2aW9yCiAgIGRlZmF1bHRWYWx1ZToKICAgICBXZWJDb3JlOgot
ICAgICAgZGVmYXVsdDogRWRpdGFibGVMaW5rRGVmYXVsdEJlaGF2aW9yCisgICAgICBkZWZhdWx0
OiBFZGl0YWJsZUxpbmtCZWhhdmlvcjo6RGVmYXVsdAogCiBFZGl0aW5nQmVoYXZpb3JUeXBlOgog
ICB0eXBlOiB1aW50MzJfdAogICByZWZpbmVkVHlwZTogRWRpdGluZ0JlaGF2aW9yVHlwZQogICBk
ZWZhdWx0VmFsdWU6CiAgICAgV2ViQ29yZToKLSAgICAgIFBMQVRGT1JNKElPU19GQU1JTFkpOiBF
ZGl0aW5nSU9TQmVoYXZpb3IKLSAgICAgIE9TKERBUldJTik6IEVkaXRpbmdNYWNCZWhhdmlvcgot
ICAgICAgT1MoV0lORE9XUyk6IEVkaXRpbmdXaW5kb3dzQmVoYXZpb3IKLSAgICAgIE9TKFVOSVgp
OiBFZGl0aW5nVW5peEJlaGF2aW9yCi0gICAgICBkZWZhdWx0OiBFZGl0aW5nTWFjQmVoYXZpb3IK
KyAgICAgIFBMQVRGT1JNKElPU19GQU1JTFkpOiBFZGl0aW5nQmVoYXZpb3JUeXBlOjpJb3MKKyAg
ICAgIE9TKERBUldJTik6IEVkaXRpbmdCZWhhdmlvclR5cGU6Ok1hYworICAgICAgT1MoV0lORE9X
Uyk6IEVkaXRpbmdCZWhhdmlvclR5cGU6OldpbmRvd3MKKyAgICAgIE9TKFVOSVgpOiBFZGl0aW5n
QmVoYXZpb3JUeXBlOjpVbml4CisgICAgICBkZWZhdWx0OiBFZGl0aW5nQmVoYXZpb3JUeXBlOjpN
YWMKIAogRml4ZWRCYWNrZ3JvdW5kc1BhaW50UmVsYXRpdmVUb0RvY3VtZW50OgogICB0eXBlOiBi
b29sCkBAIC0yMjgsNiArMjI4LDEzIEBAIEdlb2xvY2F0aW9uRmxvb3JMZXZlbEVuYWJsZWQ6CiAg
ICAgV2ViQ29yZToKICAgICAgIGRlZmF1bHQ6IHRydWUKIAorSFRNTFBhcnNlclNjcmlwdGluZ0Zs
YWdQb2xpY3k6CisgIHR5cGU6IHVpbnQzMl90CisgIHJlZmluZWRUeXBlOiBIVE1MUGFyc2VyU2Ny
aXB0aW5nRmxhZ1BvbGljeQorICBkZWZhdWx0VmFsdWU6CisgICAgV2ViQ29yZToKKyAgICAgIGRl
ZmF1bHQ6IEhUTUxQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5OjpPbmx5SWZTY3JpcHRJc0VuYWJs
ZWQKKwogSWRlbXBvdGVudE1vZGVBdXRvc2l6aW5nT25seUhvbm9yc1BlcmNlbnRhZ2VzOgogICB0
eXBlOiBib29sCiAgIGNvbmRpdGlvbjogRU5BQkxFKFRFWFRfQVVUT1NJWklORykKQEAgLTM4OSwx
MyArMzk2LDYgQEAgTmVlZHNEZWZlcktleURvd25BbmRLZXlQcmVzc1RpbWVyc1VudGlsTgogICAg
IFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogCi1QYXJzZXJTY3JpcHRpbmdGbGFnUG9s
aWN5OgotICB0eXBlOiB1aW50MzJfdAotICByZWZpbmVkVHlwZTogUGFyc2VyU2NyaXB0aW5nRmxh
Z1BvbGljeQotICBkZWZhdWx0VmFsdWU6Ci0gICAgV2ViQ29yZToKLSAgICAgIGRlZmF1bHQ6IFBh
cnNlclNjcmlwdGluZ0ZsYWdQb2xpY3k6Ok9ubHlJZlNjcmlwdElzRW5hYmxlZAotCiBQYXltZW50
UmVxdWVzdEVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgY29uZGl0aW9uOiBFTkFCTEUoUEFZTUVO
VF9SRVFVRVNUKQpAQCAtNDA4LDcgKzQwOCw4IEBAIFBERkltYWdlQ2FjaGluZ1BvbGljeToKICAg
cmVmaW5lZFR5cGU6IFBERkltYWdlQ2FjaGluZ1BvbGljeQogICBkZWZhdWx0VmFsdWU6CiAgICAg
V2ViQ29yZToKLSAgICAgIGRlZmF1bHQ6IFBERkltYWdlQ2FjaGluZ0RlZmF1bHQKKyAgICAgIFBM
QVRGT1JNKElPU19GQU1JTFkpOiBQREZJbWFnZUNhY2hpbmdQb2xpY3k6OkJlbG93TWVtb3J5TGlt
aXQKKyAgICAgIGRlZmF1bHQ6IFBERkltYWdlQ2FjaGluZ1BvbGljeTo6RW5hYmxlZAogCiBQcmVm
ZXJNSU1FVHlwZUZvckltYWdlczoKICAgdHlwZTogYm9vbApAQCAtNDg5LDExICs0OTAsMTEgQEAg
U3RvcmFnZUFjY2Vzc0FQSVBlclBhZ2VTY29wZUVuYWJsZWQ6CiAKIFN0b3JhZ2VCbG9ja2luZ1Bv
bGljeToKICAgdHlwZTogdWludDMyX3QKLSAgcmVmaW5lZFR5cGU6IFNlY3VyaXR5T3JpZ2luOjpT
dG9yYWdlQmxvY2tpbmdQb2xpY3kKKyAgcmVmaW5lZFR5cGU6IFN0b3JhZ2VCbG9ja2luZ1BvbGlj
eQogICB3ZWJjb3JlT25DaGFuZ2U6IHN0b3JhZ2VCbG9ja2luZ1BvbGljeUNoYW5nZWQKICAgZGVm
YXVsdFZhbHVlOgogICAgIFdlYkNvcmU6Ci0gICAgICBkZWZhdWx0OiBTZWN1cml0eU9yaWdpbjo6
QWxsb3dBbGxTdG9yYWdlCisgICAgICBkZWZhdWx0OiBTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkFs
bG93QWxsCiAKIFN5c3RlbUxheW91dERpcmVjdGlvbjoKICAgdHlwZTogdWludDMyX3QKQEAgLTUy
Myw3ICs1MjQsNyBAQCBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yOgogICBy
ZWZpbmVkVHlwZTogVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcgogICBkZWZh
dWx0VmFsdWU6CiAgICAgV2ViQ29yZToKLSAgICAgIGRlZmF1bHQ6IFRleHREaXJlY3Rpb25TdWJt
ZW51QXV0b21hdGljYWxseUluY2x1ZGVkCisgICAgICBkZWZhdWx0OiBUZXh0RGlyZWN0aW9uU3Vi
bWVudUluY2x1c2lvbkJlaGF2aW9yOjpBdXRvbWF0aWNhbGx5SW5jbHVkZWQKIAogVGltZVdpdGhv
dXRNb3VzZU1vdmVtZW50QmVmb3JlSGlkaW5nQ29udHJvbHM6CiAgIHR5cGU6IGRvdWJsZQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5oCShyZXZpc2lvbiAyNjk4NTYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3NCAr
MjgsMzcgQEAKIAogI2luY2x1ZGUgIkNsaXBib2FyZEFjY2Vzc1BvbGljeS5oIgogI2luY2x1ZGUg
IkNvbnRlbnRUeXBlLmgiCi0jaW5jbHVkZSAiRWRpdGluZ0JlaGF2aW9yVHlwZXMuaCIKLSNpbmNs
dWRlICJJbnRTaXplLmgiCi0jaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJF
ZGl0YWJsZUxpbmtCZWhhdmlvci5oIgorI2luY2x1ZGUgIkVkaXRpbmdCZWhhdmlvclR5cGUuaCIK
KyNpbmNsdWRlICJGb250TG9hZFRpbWluZ092ZXJyaWRlLmgiCisjaW5jbHVkZSAiRm9udFJlbmRl
cmluZ01vZGUuaCIKKyNpbmNsdWRlICJGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUuaCIKKyNpbmNs
dWRlICJGcmFtZUZsYXR0ZW5pbmcuaCIKKyNpbmNsdWRlICJIVE1MUGFyc2VyU2NyaXB0aW5nRmxh
Z1BvbGljeS5oIgorI2luY2x1ZGUgIlBERkltYWdlQ2FjaGluZ1BvbGljeS5oIgorI2luY2x1ZGUg
IlN0b3JhZ2VCbG9ja2luZ1BvbGljeS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VNYXAuaCIKLSNpbmNs
dWRlICJUZXh0RmxhZ3MuaCIKKyNpbmNsdWRlICJUZXh0RGlyZWN0aW9uLmgiCisjaW5jbHVkZSAi
VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvci5oIgogI2luY2x1ZGUgIlRpbWVy
LmgiCi0jaW5jbHVkZSAiV3JpdGluZ01vZGUuaCIKKyNpbmNsdWRlICJVc2VySW50ZXJmYWNlRGly
ZWN0aW9uUG9saWN5LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUnVudGltZUZsYWdzLmg+
CiAjaW5jbHVkZSA8dW5pY29kZS91c2NyaXB0Lmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CiAj
aW5jbHVkZSA8d3RmL1VSTC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9BdG9tU3RyaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZ0hhc2gu
aD4KKworI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKyNpbmNsdWRlICJEYXRhRGV0ZWN0b3JU
eXBlcy5oIgorI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRm9udEdlbmVy
aWNGYW1pbGllczsKIGNsYXNzIFBhZ2U7CiAKLWVudW0gY2xhc3MgRGF0YURldGVjdG9yVHlwZXMg
OiB1aW50MzJfdDsKLQotZW51bSBFZGl0YWJsZUxpbmtCZWhhdmlvciB7Ci0gICAgRWRpdGFibGVM
aW5rRGVmYXVsdEJlaGF2aW9yLAotICAgIEVkaXRhYmxlTGlua0Fsd2F5c0xpdmUsCi0gICAgRWRp
dGFibGVMaW5rT25seUxpdmVXaXRoU2hpZnRLZXksCi0gICAgRWRpdGFibGVMaW5rTGl2ZVdoZW5O
b3RGb2N1c2VkLAotICAgIEVkaXRhYmxlTGlua05ldmVyTGl2ZQotfTsKLQotZW51bSBUZXh0RGly
ZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yIHsKLSAgICBUZXh0RGlyZWN0aW9uU3VibWVu
dU5ldmVySW5jbHVkZWQsCi0gICAgVGV4dERpcmVjdGlvblN1Ym1lbnVBdXRvbWF0aWNhbGx5SW5j
bHVkZWQsCi0gICAgVGV4dERpcmVjdGlvblN1Ym1lbnVBbHdheXNJbmNsdWRlZAotfTsKLQotZW51
bSBEZWJ1Z092ZXJsYXlSZWdpb25GbGFncyB7Ci0gICAgTm9uRmFzdFNjcm9sbGFibGVSZWdpb24g
PSAxIDw8IDAsCi0gICAgV2hlZWxFdmVudEhhbmRsZXJSZWdpb24gPSAxIDw8IDEsCi0gICAgVG91
Y2hBY3Rpb25SZWdpb24gPSAxIDw8IDIsCi0gICAgRWRpdGFibGVFbGVtZW50UmVnaW9uID0gMSA8
PCAzLAotfTsKLQotZW51bSBjbGFzcyBVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5IHsKLSAg
ICBDb250ZW50LAotICAgIFN5c3RlbQotfTsKLQotZW51bSBQREZJbWFnZUNhY2hpbmdQb2xpY3kg
ewotICAgIFBERkltYWdlQ2FjaGluZ0VuYWJsZWQsCi0gICAgUERGSW1hZ2VDYWNoaW5nQmVsb3dN
ZW1vcnlMaW1pdCwKLSAgICBQREZJbWFnZUNhY2hpbmdEaXNhYmxlZCwKLSAgICBQREZJbWFnZUNh
Y2hpbmdDbGlwQm91bmRzT25seSwKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIFBERklt
YWdlQ2FjaGluZ0RlZmF1bHQgPSBQREZJbWFnZUNhY2hpbmdCZWxvd01lbW9yeUxpbWl0Ci0jZWxz
ZQotICAgIFBERkltYWdlQ2FjaGluZ0RlZmF1bHQgPSBQREZJbWFnZUNhY2hpbmdFbmFibGVkCi0j
ZW5kaWYKLX07Ci0KLWVudW0gY2xhc3MgRnJhbWVGbGF0dGVuaW5nIHsKLSAgICBEaXNhYmxlZCwK
LSAgICBFbmFibGVkRm9yTm9uRnVsbFNjcmVlbklGcmFtZXMsCi0gICAgRnVsbHlFbmFibGVkCi19
OwotCi10eXBlZGVmIHVuc2lnbmVkIERlYnVnT3ZlcmxheVJlZ2lvbnM7Ci0KIGNsYXNzIFNldHRp
bmdzQmFzZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2V0dGluZ3NCYXNlKTsgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CkBAIC0xMDMsMTAgKzY2LDYgQEAgcHVibGljOgog
CiAgICAgdm9pZCBwYWdlRGVzdHJveWVkKCkgeyBtX3BhZ2UgPSBudWxscHRyOyB9CiAKLSAgICBl
bnVtIGNsYXNzIEZvbnRMb2FkVGltaW5nT3ZlcnJpZGUgOiB1aW50OF90IHsgTm9uZSwgQmxvY2ss
IFN3YXAsIEZhaWx1cmUgfTsKLSAgICBlbnVtIGNsYXNzIFBhcnNlclNjcmlwdGluZ0ZsYWdQb2xp
Y3kgOiB1aW50OF90IHsgT25seUlmU2NyaXB0SXNFbmFibGVkLCBFbmFibGVkIH07Ci0gICAgZW51
bSBjbGFzcyBGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUgOiB1aW50OF90IHsgU3lzdGVtLCBPbiwg
T2ZmIH07Ci0KICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBib29sIHBsYXRmb3JtRGVmYXVsdE1lZGlhU291cmNlRW5hYmxlZCgpOwogI2VuZGlmCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1N0b3JhZ2VCbG9ja2luZ1BvbGljeS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU3RvcmFnZUJsb2NraW5nUG9saWN5LmgJKG5vbmV4
aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9TdG9yYWdlQmxvY2tpbmdQb2xpY3kuaAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2VudW0gY2xhc3MgU3RvcmFnZUJsb2NraW5nUG9saWN5IDogdWludDhfdCB7CisgICAgQWxsb3dB
bGwgPSAwLAorICAgIEJsb2NrVGhpcmRQYXJ0eSwKKyAgICBCbG9ja0FsbAorfTsKKworfQorCitu
YW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpT
dG9yYWdlQmxvY2tpbmdQb2xpY3k+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAor
ICAgICAgICBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3ksCisgICAgICAgIFdlYkNvcmU6
OlN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QWxsb3dBbGwsCisgICAgICAgIFdlYkNvcmU6OlN0b3Jh
Z2VCbG9ja2luZ1BvbGljeTo6QmxvY2tUaGlyZFBhcnR5LAorICAgICAgICBXZWJDb3JlOjpTdG9y
YWdlQmxvY2tpbmdQb2xpY3k6OkJsb2NrQWxsCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdURgpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9UZXh0RGlyZWN0aW9uU3VibWVudUluY2x1
c2lvbkJlaGF2aW9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9UZXh0RGly
ZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNl
L1dlYkNvcmUvcGFnZS9UZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yLmgJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgVGV4dERpcmVjdGlvblN1Ym1lbnVJ
bmNsdXNpb25CZWhhdmlvciA6IHVpbnQ4X3QgeworICAgIE5ldmVySW5jbHVkZWQsCisgICAgQXV0
b21hdGljYWxseUluY2x1ZGVkLAorICAgIEFsd2F5c0luY2x1ZGVkCit9OworCit9CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3kuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3ku
aAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJJbnRlcmZhY2VEaXJl
Y3Rpb25Qb2xpY3kuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBVc2Vy
SW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5IDogYm9vbCB7CisgICAgQ29udGVudCwKKyAgICBTeXN0
ZW0KK307CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5oCShyZXZpc2lv
biAyNjk4NTYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJGbG9h
dFNpemUuaCIKKyNpbmNsdWRlICJGb250UmVuZGVyaW5nTW9kZS5oIgogI2luY2x1ZGUgIkltYWdl
T3JpZW50YXRpb24uaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVkZSAiUGF0aC5oIgpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2Ny
aXB0aW9uLmgJKHJldmlzaW9uIDI2OTg1NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw2ICsyNCw3IEBA
CiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIKICNpbmNs
dWRlICJGb250U2VsZWN0aW9uQWxnb3JpdGhtLmgiCiAjaW5jbHVkZSAiRm9udFRhZ2dlZFNldHRp
bmdzLmgiCiAjaW5jbHVkZSAiVGV4dEZsYWdzLmgiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS93aW4vQ0FDRkxheWVyVHJlZUhvc3QuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9DQUNGTGF5ZXJUcmVlSG9z
dC5jcHAJKHJldmlzaW9uIDI2OTg1NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL3dpbi9DQUNGTGF5ZXJUcmVlSG9zdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDEx
ICszNywxMiBAQAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUNBTGF5
ZXJXaW4uaCIKICNpbmNsdWRlICJQbGF0Zm9ybUxheWVyLmgiCisjaW5jbHVkZSAiU2V0dGluZ3Mu
aCIKICNpbmNsdWRlICJUaWxlZEJhY2tpbmcuaCIKICNpbmNsdWRlICJXS0NBQ0ZWaWV3TGF5ZXJU
cmVlSG9zdC5oIgogI2luY2x1ZGUgIldlYkNvcmVJbnN0YW5jZUhhbmRsZS5oIgotI2luY2x1ZGUg
PGxpbWl0cy5oPgogI2luY2x1ZGUgPFF1YXJ0ekNvcmUvQ0FCYXNlLmg+CisjaW5jbHVkZSA8bGlt
aXRzLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9Vbmlx
dWVBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi93aW4vR0RJT2JqZWN0Lmg+CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1bWVudEltYWdlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1bWVudElt
YWdlLmNwcAkocmV2aXNpb24gMjY5ODU2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMSw3ICsy
MDEsNyBAQCB2b2lkIFBERkRvY3VtZW50SW1hZ2U6OmRlY29kZWRTaXplQ2hhbmdlCiB2b2lkIFBE
RkRvY3VtZW50SW1hZ2U6OnVwZGF0ZUNhY2hlZEltYWdlSWZOZWVkZWQoR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3Jj
UmVjdCkKIHsKICAgICAvLyBDbGlwcGVkIG9wdGlvbiBpcyBmb3IgdGVzdGluZyBvbmx5LiBGb3Jj
ZSByZS1jYWNoaW5nIHRoZSBQREYgd2l0aCBlYWNoIGRyYXcuCi0gICAgYm9vbCBmb3JjZVVwZGF0
ZUNhY2hlZEltYWdlID0gbV9wZGZJbWFnZUNhY2hpbmdQb2xpY3kgPT0gUERGSW1hZ2VDYWNoaW5n
Q2xpcEJvdW5kc09ubHkgfHwgIW1fY2FjaGVkSW1hZ2VCdWZmZXI7CisgICAgYm9vbCBmb3JjZVVw
ZGF0ZUNhY2hlZEltYWdlID0gbV9wZGZJbWFnZUNhY2hpbmdQb2xpY3kgPT0gUERGSW1hZ2VDYWNo
aW5nUG9saWN5OjpDbGlwQm91bmRzT25seSB8fCAhbV9jYWNoZWRJbWFnZUJ1ZmZlcjsKICAgICBp
ZiAoIWZvcmNlVXBkYXRlQ2FjaGVkSW1hZ2UgJiYgY2FjaGVQYXJhbWV0ZXJzTWF0Y2goY29udGV4
dCwgZHN0UmVjdCwgc3JjUmVjdCkpIHsKICAgICAgICAgLy8gQWRqdXN0IHRoZSB2aWV3LXBvcnQg
cmVjdGFuZ2xlcyBpZiBubyByZS1jYWNoaW5nIHdpbGwgaGFwcGVuLgogICAgICAgICBtX2NhY2hl
ZEltYWdlUmVjdC5tb3ZlKEZsb2F0U2l6ZShkc3RSZWN0LmxvY2F0aW9uKCkgLSBtX2NhY2hlZERl
c3RpbmF0aW9uUmVjdC5sb2NhdGlvbigpKSk7CkBAIC0yMTAsMTcgKzIxMCwxNyBAQCB2b2lkIFBE
RkRvY3VtZW50SW1hZ2U6OnVwZGF0ZUNhY2hlZEltYWdlCiAgICAgfQogCiAgICAgc3dpdGNoICht
X3BkZkltYWdlQ2FjaGluZ1BvbGljeSkgewotICAgIGNhc2UgUERGSW1hZ2VDYWNoaW5nRGlzYWJs
ZWQ6CisgICAgY2FzZSBQREZJbWFnZUNhY2hpbmdQb2xpY3k6OkRpc2FibGVkOgogICAgICAgICBy
ZXR1cm47Ci0gICAgY2FzZSBQREZJbWFnZUNhY2hpbmdCZWxvd01lbW9yeUxpbWl0OgorICAgIGNh
c2UgUERGSW1hZ2VDYWNoaW5nUG9saWN5OjpCZWxvd01lbW9yeUxpbWl0OgogICAgICAgICAvLyBL
ZWVwIHRoZSBtZW1vcnkgdXNlZCBieSB0aGUgY2FjaGVkIGltYWdlIGJlbG93IHNvbWUgdGhyZXNo
b2xkLCBvdGhlcndpc2UgV2ViS2l0IHByb2Nlc3MKICAgICAgICAgLy8gd2lsbCBqZXRzYW0gaWYg
aXQgZXhjZWVkcyBpdHMgbWVtb3J5IGxpbWl0LiBPbmx5IGEgcmVjdGFuZ2xlIGZyb20gdGhlIFBE
RiBtYXkgYmUgY2FjaGVkLgogICAgICAgICBtX2NhY2hlZEltYWdlUmVjdCA9IGNhY2hlZEltYWdl
UmVjdChjb250ZXh0LCBkc3RSZWN0KTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQREZJbWFn
ZUNhY2hpbmdDbGlwQm91bmRzT25seToKKyAgICBjYXNlIFBERkltYWdlQ2FjaGluZ1BvbGljeTo6
Q2xpcEJvdW5kc09ubHk6CiAgICAgICAgIG1fY2FjaGVkSW1hZ2VSZWN0ID0gaW50ZXJzZWN0aW9u
KGNvbnRleHQuY2xpcEJvdW5kcygpLCBkc3RSZWN0KTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBQREZJbWFnZUNhY2hpbmdFbmFibGVkOgorICAgIGNhc2UgUERGSW1hZ2VDYWNoaW5nUG9saWN5
OjpFbmFibGVkOgogICAgICAgICBtX2NhY2hlZEltYWdlUmVjdCA9IGRzdFJlY3Q7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KQEAgLTIyOCw3ICsyMjgsNyBAQCB2b2lkIFBERkRvY3VtZW50SW1hZ2U6
OnVwZGF0ZUNhY2hlZEltYWdlCiAgICAgRmxvYXRTaXplIGNhY2hlZEltYWdlU2l6ZSA9IEZsb2F0
UmVjdChlbmNsb3NpbmdJbnRSZWN0KG1fY2FjaGVkSW1hZ2VSZWN0KSkuc2l6ZSgpOwogCiAgICAg
Ly8gQ2FjaGUgdGhlIFBERiBpbWFnZSBvbmx5IGlmIHRoZSBzaXplIG9mIHRoZSBuZXcgaW1hZ2Ug
d29uJ3QgZXhjZWVkIHRoZSBjYWNoZSB0aHJlc2hvbGQuCi0gICAgaWYgKG1fcGRmSW1hZ2VDYWNo
aW5nUG9saWN5ID09IFBERkltYWdlQ2FjaGluZ0JlbG93TWVtb3J5TGltaXQpIHsKKyAgICBpZiAo
bV9wZGZJbWFnZUNhY2hpbmdQb2xpY3kgPT0gUERGSW1hZ2VDYWNoaW5nUG9saWN5OjpCZWxvd01l
bW9yeUxpbWl0KSB7CiAgICAgICAgIEludFNpemUgc2NhbGVkU2l6ZSA9IEltYWdlQnVmZmVyOjpj
b21wYXRpYmxlQnVmZmVyU2l6ZShjYWNoZWRJbWFnZVNpemUsIGNvbnRleHQpOwogICAgICAgICBp
ZiAoc19hbGxEZWNvZGVkRGF0YVNpemUgKyBzY2FsZWRTaXplLnVuY2xhbXBlZEFyZWEoKSAqIDQg
LSBtX2NhY2hlZEJ5dGVzID4gc19tYXhEZWNvZGVkRGF0YVNpemUpIHsKICAgICAgICAgICAgIGRl
c3Ryb3lEZWNvZGVkRGF0YSgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvUERGRG9jdW1lbnRJbWFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuaAkocmV2aXNpb24gMjY5ODU2KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC05NCw3ICs5NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRh
dGVDYWNoZWRJbWFnZUlmTmVlZGVkKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYg
ZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0KTsKICAgICBib29sIGNhY2hlUGFyYW1l
dGVyc01hdGNoKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29u
c3QgRmxvYXRSZWN0JiBzcmNSZWN0KSBjb25zdDsKIAotICAgIFBERkltYWdlQ2FjaGluZ1BvbGlj
eSBtX3BkZkltYWdlQ2FjaGluZ1BvbGljeSB7IFBERkltYWdlQ2FjaGluZ0RlZmF1bHQgfTsKKyAg
ICBQREZJbWFnZUNhY2hpbmdQb2xpY3kgbV9wZGZJbWFnZUNhY2hpbmdQb2xpY3kgeyBQREZJbWFn
ZUNhY2hpbmdQb2xpY3k6OkRlZmF1bHQgfTsKIAogI2lmIFVTRShQREZLSVRfRk9SX1BERkRPQ1VN
RU5USU1BR0UpCiAgICAgUmV0YWluUHRyPFBERkRvY3VtZW50PiBtX2RvY3VtZW50OwpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Gb250UmVuZGVyaW5nTW9kZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvRm9udFJlbmRlcmluZ01vZGUuaAko
bm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0ZvbnRSZW5kZXJp
bmdNb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCisvLyBUaGlzIHNldHRpbmcgaXMgdXNlZCB0byBwcm92aWRlIHdheXMgb2Ygc3dp
dGNoaW5nIGJldHdlZW4gbXVsdGlwbGUgcmVuZGVyaW5nIG1vZGVzIHRoYXQgbWF5IGhhdmUgZGlm
ZmVyZW50CisvLyBtZXRyaWNzLiBJdCBpcyB1c2VkIHRvIHN3aXRjaCBiZXR3ZWVuIENHIGFuZCBH
REkgdGV4dCBvbiBXaW5kb3dzLgorZW51bSBjbGFzcyBGb250UmVuZGVyaW5nTW9kZSA6IHVpbnQ4
X3QgeworICAgIE5vcm1hbCwKKyAgICBBbHRlcm5hdGUKK307CisKK30KKworbmFtZXNwYWNlIFdU
RiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6Rm9udFJlbmRlcmlu
Z01vZGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3Jl
OjpGb250UmVuZGVyaW5nTW9kZSwKKyAgICAgICAgV2ViQ29yZTo6Rm9udFJlbmRlcmluZ01vZGU6
Ok5vcm1hbCwKKyAgICAgICAgV2ViQ29yZTo6Rm9udFJlbmRlcmluZ01vZGU6OkFsdGVybmF0ZQor
ICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvVGV4dERpcmVjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvVGV4dERpcmVjdGlvbi5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dERpcmVjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitlbnVtIGNsYXNzIFRleHREaXJlY3Rpb24gOiBib29sIHsgTFRSLCBSVEwgfTsKKwor
aW5saW5lIGJvb2wgaXNMZWZ0VG9SaWdodERpcmVjdGlvbihUZXh0RGlyZWN0aW9uIGRpcmVjdGlv
bikKK3sKKyAgICByZXR1cm4gZGlyZWN0aW9uID09IFRleHREaXJlY3Rpb246OkxUUjsKK30KKwor
fQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RmxhZ3MuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRGbGFncy5oCShyZXZpc2lv
biAyNjk4NTYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRGbGFncy5oCSh3
b3JraW5nIGNvcHkpCkBAIC00NCwxMyArNDQsNiBAQCBlbnVtIGNsYXNzIEZvbnRTbW9vdGhpbmdN
b2RlIDogdWludDhfdCB7CiAgICAgU3VicGl4ZWxBbnRpYWxpYXNlZAogfTsKIAotLy8gVGhpcyBz
ZXR0aW5nIGlzIHVzZWQgdG8gcHJvdmlkZSB3YXlzIG9mIHN3aXRjaGluZyBiZXR3ZWVuIG11bHRp
cGxlIHJlbmRlcmluZyBtb2RlcyB0aGF0IG1heSBoYXZlIGRpZmZlcmVudAotLy8gbWV0cmljcy4g
SXQgaXMgdXNlZCB0byBzd2l0Y2ggYmV0d2VlbiBDRyBhbmQgR0RJIHRleHQgb24gV2luZG93cy4K
LWVudW0gY2xhc3MgRm9udFJlbmRlcmluZ01vZGUgOiB1aW50OF90IHsKLSAgICBOb3JtYWwsCi0g
ICAgQWx0ZXJuYXRlCi19OwotCiBlbnVtIGNsYXNzIEZvbnRPcmllbnRhdGlvbiA6IHVpbnQ4X3Qg
ewogICAgIEhvcml6b250YWwsCiAgICAgVmVydGljYWwKQEAgLTY0NywxNCArNjQwLDYgQEAgdGVt
cGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpGbwogICAgID47CiB9OwogCi10ZW1w
bGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkZvbnRSZW5kZXJpbmdNb2RlPiB7Ci0g
ICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKLSAgICBXZWJDb3JlOjpGb250UmVuZGVyaW5n
TW9kZSwKLSAgICBXZWJDb3JlOjpGb250UmVuZGVyaW5nTW9kZTo6Tm9ybWFsLAotICAgIFdlYkNv
cmU6OkZvbnRSZW5kZXJpbmdNb2RlOjpBbHRlcm5hdGUKLSAgICA+OwotfTsKLQogdGVtcGxhdGU8
PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpGb250T3JpZW50YXRpb24+IHsKICAgICB1c2lu
ZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAogICAgIFdlYkNvcmU6OkZvbnRPcmllbnRhdGlvbiwKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvV3JpdGluZ01vZGUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1dyaXRpbmdNb2RlLmgJKHJldmlzaW9u
IDI2OTg1NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvV3JpdGluZ01vZGUuaAko
d29ya2luZyBjb3B5KQpAQCAtMzEsMTggKzMxLDExIEBACiAKICNwcmFnbWEgb25jZQogCisjaW5j
bHVkZSAiVGV4dERpcmVjdGlvbi5oIgogI2luY2x1ZGUgPGFycmF5PgotI2luY2x1ZGUgPHd0Zi9F
bnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotZW51bSBjbGFzcyBUZXh0RGly
ZWN0aW9uIDogYm9vbCB7IExUUiwgUlRMIH07Ci0KLWlubGluZSBib29sIGlzTGVmdFRvUmlnaHRE
aXJlY3Rpb24oVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24pCi17Ci0gICAgcmV0dXJuIGRpcmVjdGlv
biA9PSBUZXh0RGlyZWN0aW9uOjpMVFI7Ci19Ci0KIGVudW0gY2xhc3MgV3JpdGluZ01vZGUgOiB1
aW50OF90IHsKICAgICBUb3BUb0JvdHRvbSA9IDAsIC8vIGhvcml6b250YWwtdGIKICAgICBCb3R0
b21Ub1RvcCA9IDEsIC8vIGhvcml6b250YWwtYnQKQEAgLTUwLDY3ICs0Myw2OCBAQCBlbnVtIGNs
YXNzIFdyaXRpbmdNb2RlIDogdWludDhfdCB7CiAgICAgUmlnaHRUb0xlZnQgPSAzLCAvLyB2ZXJ0
aWNhbC1ybAogfTsKIAotI2RlZmluZSBNQUtFX1RFWFRfRkxPVyh3cml0aW5nTW9kZSwgZGlyZWN0
aW9uKSAgKHN0YXRpY19jYXN0PHVuc2lnbmVkPih3cml0aW5nTW9kZSkgPDwgMSB8IHN0YXRpY19j
YXN0PHVuc2lnbmVkPihkaXJlY3Rpb24pKQorY29uc3RleHByIHVuc2lnbmVkIG1ha2VUZXh0Rmxv
d0luaXRhbGl6ZXIoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUsIFRleHREaXJlY3Rpb24gZGlyZWN0
aW9uKQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4od3JpdGluZ01vZGUpIDw8
IDEgfCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZGlyZWN0aW9uKTsKK30KIAogLy8gRGVmaW5lIHRo
ZSB0ZXh0IGZsb3cgaW4gdGVybXMgb2YgdGhlIHdyaXRpbmcgbW9kZSBhbmQgdGhlIHRleHQgZGly
ZWN0aW9uLiBUaGUgZmlyc3QKIC8vIHBhcnQgaXMgdGhlIGxpbmUgZ3Jvd2luZyBkaXJlY3Rpb24g
YW5kIHRoZSBzZWNvbmQgcGFydCBpcyB0aGUgYmxvY2sgZ3Jvd2luZyBkaXJlY3Rpb24uCiBlbnVt
IFRleHRGbG93IHsKLSAgICBJbmxpbmVFYXN0QmxvY2tTb3V0aCA9IE1BS0VfVEVYVF9GTE9XKFdy
aXRpbmdNb2RlOjpUb3BUb0JvdHRvbSwgVGV4dERpcmVjdGlvbjo6TFRSKSwKLSAgICBJbmxpbmVX
ZXN0QmxvY2tTb3V0aCA9IE1BS0VfVEVYVF9GTE9XKFdyaXRpbmdNb2RlOjpUb3BUb0JvdHRvbSwg
VGV4dERpcmVjdGlvbjo6UlRMKSwKLSAgICBJbmxpbmVFYXN0QmxvY2tOb3J0aCA9IE1BS0VfVEVY
VF9GTE9XKFdyaXRpbmdNb2RlOjpCb3R0b21Ub1RvcCwgVGV4dERpcmVjdGlvbjo6TFRSKSwKLSAg
ICBJbmxpbmVXZXN0QmxvY2tOb3J0aCA9IE1BS0VfVEVYVF9GTE9XKFdyaXRpbmdNb2RlOjpCb3R0
b21Ub1RvcCwgVGV4dERpcmVjdGlvbjo6UlRMKSwKLSAgICBJbmxpbmVTb3V0aEJsb2NrRWFzdCA9
IE1BS0VfVEVYVF9GTE9XKFdyaXRpbmdNb2RlOjpMZWZ0VG9SaWdodCwgVGV4dERpcmVjdGlvbjo6
TFRSKSwKLSAgICBJbmxpbmVTb3V0aEJsb2NrV2VzdCA9IE1BS0VfVEVYVF9GTE9XKFdyaXRpbmdN
b2RlOjpMZWZ0VG9SaWdodCwgVGV4dERpcmVjdGlvbjo6UlRMKSwKLSAgICBJbmxpbmVOb3J0aEJs
b2NrRWFzdCA9IE1BS0VfVEVYVF9GTE9XKFdyaXRpbmdNb2RlOjpSaWdodFRvTGVmdCwgVGV4dERp
cmVjdGlvbjo6TFRSKSwKLSAgICBJbmxpbmVOb3J0aEJsb2NrV2VzdCA9IE1BS0VfVEVYVF9GTE9X
KFdyaXRpbmdNb2RlOjpSaWdodFRvTGVmdCwgVGV4dERpcmVjdGlvbjo6UlRMKQorICAgIElubGlu
ZUVhc3RCbG9ja1NvdXRoID0gbWFrZVRleHRGbG93SW5pdGFsaXplcihXcml0aW5nTW9kZTo6VG9w
VG9Cb3R0b20sIFRleHREaXJlY3Rpb246OkxUUiksCisgICAgSW5saW5lV2VzdEJsb2NrU291dGgg
PSBtYWtlVGV4dEZsb3dJbml0YWxpemVyKFdyaXRpbmdNb2RlOjpUb3BUb0JvdHRvbSwgVGV4dERp
cmVjdGlvbjo6UlRMKSwKKyAgICBJbmxpbmVFYXN0QmxvY2tOb3J0aCA9IG1ha2VUZXh0Rmxvd0lu
aXRhbGl6ZXIoV3JpdGluZ01vZGU6OkJvdHRvbVRvVG9wLCBUZXh0RGlyZWN0aW9uOjpMVFIpLAor
ICAgIElubGluZVdlc3RCbG9ja05vcnRoID0gbWFrZVRleHRGbG93SW5pdGFsaXplcihXcml0aW5n
TW9kZTo6Qm90dG9tVG9Ub3AsIFRleHREaXJlY3Rpb246OlJUTCksCisgICAgSW5saW5lU291dGhC
bG9ja0Vhc3QgPSBtYWtlVGV4dEZsb3dJbml0YWxpemVyKFdyaXRpbmdNb2RlOjpMZWZ0VG9SaWdo
dCwgVGV4dERpcmVjdGlvbjo6TFRSKSwKKyAgICBJbmxpbmVTb3V0aEJsb2NrV2VzdCA9IG1ha2VU
ZXh0Rmxvd0luaXRhbGl6ZXIoV3JpdGluZ01vZGU6OkxlZnRUb1JpZ2h0LCBUZXh0RGlyZWN0aW9u
OjpSVEwpLAorICAgIElubGluZU5vcnRoQmxvY2tFYXN0ID0gbWFrZVRleHRGbG93SW5pdGFsaXpl
cihXcml0aW5nTW9kZTo6UmlnaHRUb0xlZnQsIFRleHREaXJlY3Rpb246OkxUUiksCisgICAgSW5s
aW5lTm9ydGhCbG9ja1dlc3QgPSBtYWtlVGV4dEZsb3dJbml0YWxpemVyKFdyaXRpbmdNb2RlOjpS
aWdodFRvTGVmdCwgVGV4dERpcmVjdGlvbjo6UlRMKQogfTsKIAotaW5saW5lIFRleHRGbG93IG1h
a2VUZXh0RmxvdyhXcml0aW5nTW9kZSB3cml0aW5nTW9kZSwgVGV4dERpcmVjdGlvbiBkaXJlY3Rp
b24pCitjb25zdGV4cHIgaW5saW5lIFRleHRGbG93IG1ha2VUZXh0RmxvdyhXcml0aW5nTW9kZSB3
cml0aW5nTW9kZSwgVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24pCiB7Ci0gICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFRleHRGbG93PihNQUtFX1RFWFRfRkxPVyh3cml0aW5nTW9kZSwgZGlyZWN0aW9uKSk7
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRleHRGbG93PihtYWtlVGV4dEZsb3dJbml0YWxpemVy
KHdyaXRpbmdNb2RlLCBkaXJlY3Rpb24pKTsKIH0KIAotI3VuZGVmIE1BS0VfVEVYVF9GTE9XCi0K
LWNvbnN0IHVuc2lnbmVkIFRleHRGbG93UmV2ZXJzZWRNYXNrID0gMTsKLWNvbnN0IHVuc2lnbmVk
IFRleHRGbG93RmxpcHBlZE1hc2sgPSAyOwotY29uc3QgdW5zaWduZWQgVGV4dEZsb3dWZXJ0aWNh
bE1hc2sgPSA0OworY29uc3RleHByIHVuc2lnbmVkIFRleHRGbG93UmV2ZXJzZWRNYXNrID0gMTsK
K2NvbnN0ZXhwciB1bnNpZ25lZCBUZXh0Rmxvd0ZsaXBwZWRNYXNrID0gMjsKK2NvbnN0ZXhwciB1
bnNpZ25lZCBUZXh0Rmxvd1ZlcnRpY2FsTWFzayA9IDQ7CiAKLWlubGluZSBib29sIGlzUmV2ZXJz
ZWRUZXh0RmxvdyhUZXh0RmxvdyB0ZXh0ZmxvdykKK2NvbnN0ZXhwciBpbmxpbmUgYm9vbCBpc1Jl
dmVyc2VkVGV4dEZsb3coVGV4dEZsb3cgdGV4dGZsb3cpCiB7CiAgICAgcmV0dXJuIHRleHRmbG93
ICYgVGV4dEZsb3dSZXZlcnNlZE1hc2s7CiB9CiAKLWlubGluZSBib29sIGlzRmxpcHBlZFRleHRG
bG93KFRleHRGbG93IHRleHRmbG93KQorY29uc3RleHByIGlubGluZSBib29sIGlzRmxpcHBlZFRl
eHRGbG93KFRleHRGbG93IHRleHRmbG93KQogewogICAgIHJldHVybiB0ZXh0ZmxvdyAmIFRleHRG
bG93RmxpcHBlZE1hc2s7CiB9CiAKLWlubGluZSBib29sIGlzVmVydGljYWxUZXh0RmxvdyhUZXh0
RmxvdyB0ZXh0ZmxvdykKK2NvbnN0ZXhwciBpbmxpbmUgYm9vbCBpc1ZlcnRpY2FsVGV4dEZsb3co
VGV4dEZsb3cgdGV4dGZsb3cpCiB7CiAgICAgcmV0dXJuIHRleHRmbG93ICYgVGV4dEZsb3dWZXJ0
aWNhbE1hc2s7CiB9CiAKIC8vIExpbmVzIGhhdmUgdmVydGljYWwgb3JpZW50YXRpb247IG1vZGVz
IHZlcnRpY2FsLWxyIG9yIHZlcnRpY2FsLXJsLgotaW5saW5lIGJvb2wgaXNWZXJ0aWNhbFdyaXRp
bmdNb2RlKFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKQorY29uc3RleHByIGlubGluZSBib29sIGlz
VmVydGljYWxXcml0aW5nTW9kZShXcml0aW5nTW9kZSB3cml0aW5nTW9kZSkKIHsKICAgICByZXR1
cm4gaXNWZXJ0aWNhbFRleHRGbG93KG1ha2VUZXh0Rmxvdyh3cml0aW5nTW9kZSwgVGV4dERpcmVj
dGlvbjo6TFRSKSk7CiB9CiAKIC8vIEJsb2NrIHByb2dyZXNzaW9uIGluY3JlYXNlcyBpbiB0aGUg
b3Bwb3NpdGUgZGlyZWN0aW9uIHRvIG5vcm1hbDsgbW9kZXMgdmVydGljYWwtcmwgb3IgaG9yaXpv
bnRhbC1idC4KLWlubGluZSBib29sIGlzRmxpcHBlZFdyaXRpbmdNb2RlKFdyaXRpbmdNb2RlIHdy
aXRpbmdNb2RlKQorY29uc3RleHByIGlubGluZSBib29sIGlzRmxpcHBlZFdyaXRpbmdNb2RlKFdy
aXRpbmdNb2RlIHdyaXRpbmdNb2RlKQogewogICAgIHJldHVybiBpc0ZsaXBwZWRUZXh0Rmxvdyht
YWtlVGV4dEZsb3cod3JpdGluZ01vZGUsIFRleHREaXJlY3Rpb246OkxUUikpOwogfQogCiAvLyBM
aW5lcyBoYXZlIGhvcml6b250YWwgb3JpZW50YXRpb247IG1vZGVzIGhvcml6b250YWwtdGIgb3Ig
aG9yaXpvbnRhbC1idC4KLWlubGluZSBib29sIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKFdyaXRp
bmdNb2RlIHdyaXRpbmdNb2RlKQorY29uc3RleHByIGlubGluZSBib29sIGlzSG9yaXpvbnRhbFdy
aXRpbmdNb2RlKFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKQogewogICAgIHJldHVybiAhaXNWZXJ0
aWNhbFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKTsKIH0KIAogLy8gQm90dG9tIG9mIHRoZSBsaW5l
IG9jY3VycyBlYXJsaWVyIGluIHRoZSBibG9jazsgbW9kZXMgdmVydGljYWwtbHIgb3IgaG9yaXpv
bnRhbC1idC4KLWlubGluZSBib29sIGlzRmxpcHBlZExpbmVzV3JpdGluZ01vZGUoV3JpdGluZ01v
ZGUgd3JpdGluZ01vZGUpCitjb25zdGV4cHIgaW5saW5lIGJvb2wgaXNGbGlwcGVkTGluZXNXcml0
aW5nTW9kZShXcml0aW5nTW9kZSB3cml0aW5nTW9kZSkKIHsKICAgICByZXR1cm4gaXNWZXJ0aWNh
bFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSAhPSBpc0ZsaXBwZWRXcml0aW5nTW9kZSh3cml0aW5n
TW9kZSk7CiB9CkBAIC0xMzEsMjUgKzEyNSwyNSBAQCBlbnVtIGNsYXNzIEJveFNpZGUgOiB1aW50
OF90IHsKIAogY29uc3RleHByIHN0ZDo6YXJyYXk8Qm94U2lkZSwgND4gYWxsQm94U2lkZXMgPSB7
IEJveFNpZGU6OlRvcCwgQm94U2lkZTo6UmlnaHQsIEJveFNpZGU6OkJvdHRvbSwgQm94U2lkZTo6
TGVmdCB9OwogCi1pbmxpbmUgYm9vbCBpc0hvcml6b250YWxQaHlzaWNhbFNpZGUoQm94U2lkZSBw
aHlzaWNhbFNpZGUpCitjb25zdGV4cHIgaW5saW5lIGJvb2wgaXNIb3Jpem9udGFsUGh5c2ljYWxT
aWRlKEJveFNpZGUgcGh5c2ljYWxTaWRlKQogewogICAgIHJldHVybiBwaHlzaWNhbFNpZGUgPT0g
Qm94U2lkZTo6TGVmdCB8fCBwaHlzaWNhbFNpZGUgPT0gQm94U2lkZTo6UmlnaHQ7CiB9CiAKLWlu
bGluZSBCb3hTaWRlIG1pcnJvclBoeXNpY2FsU2lkZShCb3hTaWRlIHBoeXNpY2FsU2lkZSkKK2Nv
bnN0ZXhwciBpbmxpbmUgQm94U2lkZSBtaXJyb3JQaHlzaWNhbFNpZGUoQm94U2lkZSBwaHlzaWNh
bFNpZGUpCiB7CiAgICAgLy8gdG9wIDwtPiBib3R0b20gYW5kIGxlZnQgPC0+IHJpZ2h0IGNvbnZl
cnNpb24KICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Qm94U2lkZT4oKHN0YXRpY19jYXN0PGludD4o
cGh5c2ljYWxTaWRlKSArIDIpICUgNCk7CiB9CiAKLWlubGluZSBCb3hTaWRlIHJvdGF0ZVBoeXNp
Y2FsU2lkZShCb3hTaWRlIHBoeXNpY2FsU2lkZSkKK2NvbnN0ZXhwciBpbmxpbmUgQm94U2lkZSBy
b3RhdGVQaHlzaWNhbFNpZGUoQm94U2lkZSBwaHlzaWNhbFNpZGUpCiB7CiAgICAgLy8gdG9wIDwt
PiBsZWZ0IGFuZCByaWdodCA8LT4gYm90dG9tIGNvbnZlcnNpb24KICAgICBib29sIGhvcml6b250
YWxTaWRlID0gaXNIb3Jpem9udGFsUGh5c2ljYWxTaWRlKHBoeXNpY2FsU2lkZSk7CiAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PEJveFNpZGU+KChzdGF0aWNfY2FzdDxpbnQ+KHBoeXNpY2FsU2lkZSkg
KyAoaG9yaXpvbnRhbFNpZGUgPyAxIDogMykpICUgNCk7CiB9CiAKLWlubGluZSBCb3hTaWRlIG1h
cExvZ2ljYWxTaWRlVG9QaHlzaWNhbFNpZGUoVGV4dEZsb3cgdGV4dGZsb3csIExvZ2ljYWxCb3hT
aWRlIGxvZ2ljYWxTaWRlKQorY29uc3RleHByIGlubGluZSBCb3hTaWRlIG1hcExvZ2ljYWxTaWRl
VG9QaHlzaWNhbFNpZGUoVGV4dEZsb3cgdGV4dGZsb3csIExvZ2ljYWxCb3hTaWRlIGxvZ2ljYWxT
aWRlKQogewogICAgIEJveFNpZGUgcGh5c2ljYWxTaWRlID0gc3RhdGljX2Nhc3Q8Qm94U2lkZT4o
bG9naWNhbFNpZGUpOwogICAgIGJvb2wgaG9yaXpvbnRhbFNpZGUgPSBpc0hvcml6b250YWxQaHlz
aWNhbFNpZGUocGh5c2ljYWxTaWRlKTsKQEAgLTE2Myw3ICsxNTcsNyBAQCBpbmxpbmUgQm94U2lk
ZSBtYXBMb2dpY2FsU2lkZVRvUGh5c2ljYWxTCiAgICAgcmV0dXJuIHBoeXNpY2FsU2lkZTsKIH0K
IAotaW5saW5lIEJveFNpZGUgbWFwTG9naWNhbFNpZGVUb1BoeXNpY2FsU2lkZShXcml0aW5nTW9k
ZSB3cml0aW5nTW9kZSwgTG9naWNhbEJveFNpZGUgbG9naWNhbFNpZGUpCitjb25zdGV4cHIgaW5s
aW5lIEJveFNpZGUgbWFwTG9naWNhbFNpZGVUb1BoeXNpY2FsU2lkZShXcml0aW5nTW9kZSB3cml0
aW5nTW9kZSwgTG9naWNhbEJveFNpZGUgbG9naWNhbFNpZGUpCiB7CiAgICAgLy8gU2V0IHRoZSBk
aXJlY3Rpb24gc3VjaCB0aGF0IHNpZGUgaXMgbWlycm9yZWQgaWYgaXNGbGlwcGVkV3JpdGluZ01v
ZGUoKSBpcyB0cnVlCiAgICAgVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24gPSBpc0ZsaXBwZWRXcml0
aW5nTW9kZSh3cml0aW5nTW9kZSkgPyBUZXh0RGlyZWN0aW9uOjpSVEwgOiBUZXh0RGlyZWN0aW9u
OjpMVFI7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAJKHJl
dmlzaW9uIDI2OTg1NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTcwNjIsNyArNzA2Miw4IEBAIGJvb2wgUmVuZGVyTGF5ZXI6
OmludmFsaWRhdGVFdmVudFJlZ2lvbigKICAgICAgICAgYXV0byYgdmlldyA9IHJlbmRlcmVyKCku
dmlldygpOwogICAgICAgICBMT0dfV0lUSF9TVFJFQU0oRXZlbnRSZWdpb25zLCBzdHJlYW0gPDwg
IiBjYWxsaW5nIHNldE5lZWRzRXZlbnRSZWdpb25VcGRhdGVGb3JOb25Db21wb3NpdGVkRnJhbWUg
b24gIiA8PCB2aWV3KTsKICAgICAgICAgdmlldy5zZXROZWVkc0V2ZW50UmVnaW9uVXBkYXRlRm9y
Tm9uQ29tcG9zaXRlZEZyYW1lKCk7Ci0gICAgICAgIGlmIChyZW5kZXJlcigpLnNldHRpbmdzKCku
dmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMoKSAmIChUb3VjaEFjdGlvblJlZ2lvbiB8IEVkaXRh
YmxlRWxlbWVudFJlZ2lvbiB8IFdoZWVsRXZlbnRIYW5kbGVyUmVnaW9uKSkKKyAgICAgICAgYXV0
byB2aXNpYmxlRGVidWdPdmVybGF5UmVnaW9ucyA9IE9wdGlvblNldDxEZWJ1Z092ZXJsYXlSZWdp
b25zPjo6ZnJvbVJhdyhyZW5kZXJlcigpLnNldHRpbmdzKCkudmlzaWJsZURlYnVnT3ZlcmxheVJl
Z2lvbnMoKSk7CisgICAgICAgIGlmICh2aXNpYmxlRGVidWdPdmVybGF5UmVnaW9ucy5jb250YWlu
c0FueSh7IERlYnVnT3ZlcmxheVJlZ2lvbnM6OlRvdWNoQWN0aW9uUmVnaW9uLCBEZWJ1Z092ZXJs
YXlSZWdpb25zOjpFZGl0YWJsZUVsZW1lbnRSZWdpb24sIERlYnVnT3ZlcmxheVJlZ2lvbnM6Oldo
ZWVsRXZlbnRIYW5kbGVyUmVnaW9uIH0pKQogICAgICAgICAgICAgdmlldy5zZXROZWVkc1JlcGFp
bnRIYWNrQWZ0ZXJDb21wb3NpdGluZ0xheWVyVXBkYXRlRm9yRGVidWdPdmVybGF5c09ubHkoKTsK
ICAgICAgICAgdmlldy5jb21wb3NpdG9yKCkuc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyVXBkYXRl
KCk7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5jcHAJKHJldmlzaW9uIDI2OTg1NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMzE5LDggKzMz
MTksOCBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnREZWJ1Z092ZXJsCiAgICAgYXV0
byBjb250ZW50T2Zmc2V0ID0gcm91bmRlZEludFNpemUoZ3JhcGhpY3NMYXllci0+b2Zmc2V0RnJv
bVJlbmRlcmVyKCkpOwogICAgIGNvbnRleHQudHJhbnNsYXRlKGNvbnRlbnRPZmZzZXQpOwogCi0g
ICAgYXV0byB2aXNpYmxlRGVidWdPdmVybGF5UmVnaW9ucyA9IHJlbmRlcmVyKCkuc2V0dGluZ3Mo
KS52aXNpYmxlRGVidWdPdmVybGF5UmVnaW9ucygpOwotICAgIGlmICh2aXNpYmxlRGVidWdPdmVy
bGF5UmVnaW9ucyAmIChUb3VjaEFjdGlvblJlZ2lvbiB8IFdoZWVsRXZlbnRIYW5kbGVyUmVnaW9u
KSkgeworICAgIGF1dG8gdmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMgPSBPcHRpb25TZXQ8RGVi
dWdPdmVybGF5UmVnaW9ucz46OmZyb21SYXcocmVuZGVyZXIoKS5zZXR0aW5ncygpLnZpc2libGVE
ZWJ1Z092ZXJsYXlSZWdpb25zKCkpOworICAgIGlmICh2aXNpYmxlRGVidWdPdmVybGF5UmVnaW9u
cy5jb250YWluc0FueSh7IERlYnVnT3ZlcmxheVJlZ2lvbnM6OlRvdWNoQWN0aW9uUmVnaW9uLCBE
ZWJ1Z092ZXJsYXlSZWdpb25zOjpXaGVlbEV2ZW50SGFuZGxlclJlZ2lvbiB9KSkgewogICAgICAg
ICBjb25zdGV4cHIgYXV0byByZWdpb25Db2xvciA9IENvbG9yOjpibHVlLmNvbG9yV2l0aEFscGhh
Qnl0ZSg1MCk7CiAgICAgICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKHJlZ2lvbkNvbG9yKTsKICAg
ICAgICAgZm9yIChhdXRvIHJlY3QgOiBldmVudFJlZ2lvbi5yZWdpb24oKS5yZWN0cygpKQpAQCAt
MzMyOCw3ICszMzI4LDcgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50RGVidWdPdmVy
bAogICAgIH0KIAogI2lmIEVOQUJMRShUT1VDSF9BQ1RJT05fUkVHSU9OUykKLSAgICBpZiAodmlz
aWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMgJiBUb3VjaEFjdGlvblJlZ2lvbikgeworICAgIGlmICh2
aXNpYmxlRGVidWdPdmVybGF5UmVnaW9ucy5jb250YWlucyhEZWJ1Z092ZXJsYXlSZWdpb25zOjpU
b3VjaEFjdGlvblJlZ2lvbikpIHsKICAgICAgICAgY29uc3QgVG91Y2hBY3Rpb24gdG91Y2hBY3Rp
b25MaXN0W10gPSB7CiAgICAgICAgICAgICBUb3VjaEFjdGlvbjo6Tm9uZSwKICAgICAgICAgICAg
IFRvdWNoQWN0aW9uOjpNYW5pcHVsYXRpb24sCkBAIC0zMzU0LDcgKzMzNTQsNyBAQCB2b2lkIFJl
bmRlckxheWVyQmFja2luZzo6cGFpbnREZWJ1Z092ZXJsCiAjZW5kaWYKIAogI2lmIEVOQUJMRShX
SEVFTF9FVkVOVF9SRUdJT05TKQotICAgIGlmICh2aXNpYmxlRGVidWdPdmVybGF5UmVnaW9ucyAm
IFdoZWVsRXZlbnRIYW5kbGVyUmVnaW9uKSB7CisgICAgaWYgKHZpc2libGVEZWJ1Z092ZXJsYXlS
ZWdpb25zLmNvbnRhaW5zKERlYnVnT3ZlcmxheVJlZ2lvbnM6OldoZWVsRXZlbnRIYW5kbGVyUmVn
aW9uKSkgewogICAgICAgICBmb3IgKGF1dG8gdHlwZSA6IHsgRXZlbnRMaXN0ZW5lclJlZ2lvblR5
cGU6OldoZWVsLCBFdmVudExpc3RlbmVyUmVnaW9uVHlwZTo6Tm9uUGFzc2l2ZVdoZWVsIH0pIHsK
ICAgICAgICAgICAgIGF1dG8gZmlsbFBhdHRlcm4gPSBwYXR0ZXJuRm9yRXZlbnRMaXN0ZW5lclJl
Z2lvblR5cGUodHlwZSwgZ3JhcGhpY3NMYXllci0+b2Zmc2V0RnJvbVJlbmRlcmVyKCksIGNvbnRl
eHQpOwogICAgICAgICAgICAgY29udGV4dC5zZXRGaWxsUGF0dGVybihmaWxsUGF0dGVybi5yZWxl
YXNlTm9uTnVsbCgpKTsKQEAgLTMzNjcsNyArMzM2Nyw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNr
aW5nOjpwYWludERlYnVnT3ZlcmwKICNlbmRpZgogCiAjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lP
TikKLSAgICBpZiAodmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMgJiBFZGl0YWJsZUVsZW1lbnRS
ZWdpb24pIHsKKyAgICBpZiAodmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMuY29udGFpbnMoRGVi
dWdPdmVybGF5UmVnaW9uczo6RWRpdGFibGVFbGVtZW50UmVnaW9uKSkgewogICAgICAgICBjb250
ZXh0LnNldEZpbGxDb2xvcihTUkdCQTx1aW50OF90PiB7IDEyOCwgMCwgMTI4LCA1MCB9KTsKICAg
ICAgICAgZm9yIChhdXRvIHJlY3QgOiBldmVudFJlZ2lvbi5yZWN0c0ZvckVkaXRhYmxlRWxlbWVu
dHMoKSkKICAgICAgICAgICAgIGNvbnRleHQuZmlsbFJlY3QocmVjdCk7CkBAIC0zNDE0LDcgKzM0
MTQsOCBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRDb250ZW50cyhjCiAKICAgICAg
ICAgcGFpbnRJbnRvTGF5ZXIoZ3JhcGhpY3NMYXllciwgY29udGV4dCwgZGlydHlSZWN0LCBiZWhh
dmlvcik7CiAKLSAgICAgICAgaWYgKHJlbmRlcmVyKCkuc2V0dGluZ3MoKS52aXNpYmxlRGVidWdP
dmVybGF5UmVnaW9ucygpICYgKFRvdWNoQWN0aW9uUmVnaW9uIHwgRWRpdGFibGVFbGVtZW50UmVn
aW9uIHwgV2hlZWxFdmVudEhhbmRsZXJSZWdpb24pKQorICAgICAgICBhdXRvIHZpc2libGVEZWJ1
Z092ZXJsYXlSZWdpb25zID0gT3B0aW9uU2V0PERlYnVnT3ZlcmxheVJlZ2lvbnM+Ojpmcm9tUmF3
KHJlbmRlcmVyKCkuc2V0dGluZ3MoKS52aXNpYmxlRGVidWdPdmVybGF5UmVnaW9ucygpKTsKKyAg
ICAgICAgaWYgKHZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zLmNvbnRhaW5zQW55KHsgRGVidWdP
dmVybGF5UmVnaW9uczo6VG91Y2hBY3Rpb25SZWdpb24sIERlYnVnT3ZlcmxheVJlZ2lvbnM6OkVk
aXRhYmxlRWxlbWVudFJlZ2lvbiwgRGVidWdPdmVybGF5UmVnaW9uczo6V2hlZWxFdmVudEhhbmRs
ZXJSZWdpb24gfSkpCiAgICAgICAgICAgICBwYWludERlYnVnT3ZlcmxheXMoZ3JhcGhpY3NMYXll
ciwgY29udGV4dCk7CiAKICAgICB9IGVsc2UgaWYgKGdyYXBoaWNzTGF5ZXIgPT0gbGF5ZXJGb3JI
b3Jpem9udGFsU2Nyb2xsYmFyKCkpIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbFNldHRpbmdzLmNwcAkocmV2aXNpb24gMjY5ODU2KQorKysgU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzks
NiBAQAogI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIgogI2luY2x1ZGUg
IlJlbmRlclRoZW1lLmgiCiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgotI2lu
Y2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKICNpbmNsdWRl
IDx3dGYvTGFuZ3VhZ2UuaD4KIApAQCAtNTAsOSArNDksOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBJbnRlcm5hbFNldHRpbmdzOjpCYWNrdXA6OkJhY2t1cChTZXR0aW5ncyYgc2V0dGluZ3Mp
Ci0gICAgOiBtX29yaWdpbmFsRWRpdGluZ0JlaGF2aW9yKHNldHRpbmdzLmVkaXRpbmdCZWhhdmlv
clR5cGUoKSkKLSAgICAsIG1fbWluaW11bURPTVRpbWVySW50ZXJ2YWwoc2V0dGluZ3MubWluaW11
bURPTVRpbWVySW50ZXJ2YWwoKSkKKyAgICA6IG1fbWluaW11bURPTVRpbWVySW50ZXJ2YWwoc2V0
dGluZ3MubWluaW11bURPTVRpbWVySW50ZXJ2YWwoKSkKICAgICAsIG1fb3JpZ2luYWxUaW1lV2l0
aG91dE1vdXNlTW92ZW1lbnRCZWZvcmVIaWRpbmdDb250cm9scyhzZXR0aW5ncy50aW1lV2l0aG91
dE1vdXNlTW92ZW1lbnRCZWZvcmVIaWRpbmdDb250cm9scygpKQorICAgICwgbV9vcmlnaW5hbEVk
aXRpbmdCZWhhdmlvcihzZXR0aW5ncy5lZGl0aW5nQmVoYXZpb3JUeXBlKCkpCiAgICAgLCBtX3N0
b3JhZ2VCbG9ja2luZ1BvbGljeShzZXR0aW5ncy5zdG9yYWdlQmxvY2tpbmdQb2xpY3koKSkKICAg
ICAsIG1fdXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeShzZXR0aW5ncy51c2VySW50ZXJmYWNl
RGlyZWN0aW9uUG9saWN5KCkpCiAgICAgLCBtX3N5c3RlbUxheW91dERpcmVjdGlvbihzZXR0aW5n
cy5zeXN0ZW1MYXlvdXREaXJlY3Rpb24oKSkKQEAgLTEwOCw5ICsxMDcsOSBAQCB2b2lkIEludGVy
bmFsU2V0dGluZ3M6OkJhY2t1cDo6cmVzdG9yZVRvCiAgICAgICAgIHNldHRpbmdzLnNldFBpY3Rv
Z3JhcGhGb250RmFtaWx5KHBpY3RvZ3JhcGhGb250LnZhbHVlLCBzdGF0aWNfY2FzdDxVU2NyaXB0
Q29kZT4ocGljdG9ncmFwaEZvbnQua2V5KSk7CiAgICAgbV9waWN0b2dyYXBoRm9udEZhbWlsaWVz
LmNsZWFyKCk7CiAKLSAgICBzZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3JUeXBlKG1fb3JpZ2lu
YWxFZGl0aW5nQmVoYXZpb3IpOwogICAgIHNldHRpbmdzLnNldE1pbmltdW1ET01UaW1lckludGVy
dmFsKG1fbWluaW11bURPTVRpbWVySW50ZXJ2YWwpOwogICAgIHNldHRpbmdzLnNldFRpbWVXaXRo
b3V0TW91c2VNb3ZlbWVudEJlZm9yZUhpZGluZ0NvbnRyb2xzKG1fb3JpZ2luYWxUaW1lV2l0aG91
dE1vdXNlTW92ZW1lbnRCZWZvcmVIaWRpbmdDb250cm9scyk7CisgICAgc2V0dGluZ3Muc2V0RWRp
dGluZ0JlaGF2aW9yVHlwZShtX29yaWdpbmFsRWRpdGluZ0JlaGF2aW9yKTsKICAgICBzZXR0aW5n
cy5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3kobV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kpOwogICAg
IHNldHRpbmdzLnNldFVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3kobV91c2VySW50ZXJmYWNl
RGlyZWN0aW9uUG9saWN5KTsKICAgICBzZXR0aW5ncy5zZXRTeXN0ZW1MYXlvdXREaXJlY3Rpb24o
bV9zeXN0ZW1MYXlvdXREaXJlY3Rpb24pOwpAQCAtMzA0LDI0ICszMDMsMTEgQEAgRXhjZXB0aW9u
T3I8dm9pZD4gSW50ZXJuYWxTZXR0aW5nczo6c2V0VAogICAgIHJldHVybiB7IH07CiB9CiAKLUV4
Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFsU2V0dGluZ3M6OnNldEVkaXRpbmdCZWhhdmlvcihFZGl0
aW5nQmVoYXZpb3IgZWRpdGluZ0JlaGF2aW9yKQorRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxT
ZXR0aW5nczo6c2V0RWRpdGluZ0JlaGF2aW9yKEVkaXRpbmdCZWhhdmlvclR5cGUgZWRpdGluZ0Jl
aGF2aW9yVHlwZSkKIHsKICAgICBpZiAoIW1fcGFnZSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IEludmFsaWRBY2Nlc3NFcnJvciB9OwotICAgIHN3aXRjaCAoZWRpdGluZ0JlaGF2aW9yKSB7
Ci0gICAgY2FzZSBFZGl0aW5nQmVoYXZpb3I6OldpbjoKLSAgICAgICAgc2V0dGluZ3MoKS5zZXRF
ZGl0aW5nQmVoYXZpb3JUeXBlKEVkaXRpbmdXaW5kb3dzQmVoYXZpb3IpOwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIEVkaXRpbmdCZWhhdmlvcjo6TWFjOgotICAgICAgICBzZXR0aW5ncygpLnNl
dEVkaXRpbmdCZWhhdmlvclR5cGUoRWRpdGluZ01hY0JlaGF2aW9yKTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBFZGl0aW5nQmVoYXZpb3I6OlVuaXg6Ci0gICAgICAgIHNldHRpbmdzKCkuc2V0
RWRpdGluZ0JlaGF2aW9yVHlwZShFZGl0aW5nVW5peEJlaGF2aW9yKTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBFZGl0aW5nQmVoYXZpb3I6OklvczoKLSAgICAgICAgc2V0dGluZ3MoKS5zZXRF
ZGl0aW5nQmVoYXZpb3JUeXBlKEVkaXRpbmdJT1NCZWhhdmlvcik7Ci0gICAgICAgIGJyZWFrOwot
ICAgIH0KKyAgICBzZXR0aW5ncygpLnNldEVkaXRpbmdCZWhhdmlvclR5cGUoZWRpdGluZ0JlaGF2
aW9yVHlwZSk7CiAgICAgcmV0dXJuIHsgfTsKIH0KIApAQCAtMzI5LDE3ICszMTUsNyBAQCBFeGNl
cHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNldHRpbmdzOjpzZXRTCiB7CiAgICAgaWYgKCFtX3BhZ2Up
CiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKLSAgICBz
d2l0Y2ggKHBvbGljeSkgewotICAgIGNhc2UgU3RvcmFnZUJsb2NraW5nUG9saWN5OjpBbGxvd0Fs
bDoKLSAgICAgICAgc2V0dGluZ3MoKS5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koU2VjdXJpdHlP
cmlnaW46OkFsbG93QWxsU3RvcmFnZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgU3RvcmFn
ZUJsb2NraW5nUG9saWN5OjpCbG9ja1RoaXJkUGFydHk6Ci0gICAgICAgIHNldHRpbmdzKCkuc2V0
U3RvcmFnZUJsb2NraW5nUG9saWN5KFNlY3VyaXR5T3JpZ2luOjpCbG9ja1RoaXJkUGFydHlTdG9y
YWdlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkJs
b2NrQWxsOgotICAgICAgICBzZXR0aW5ncygpLnNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShTZWN1
cml0eU9yaWdpbjo6QmxvY2tBbGxTdG9yYWdlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQorICAg
IHNldHRpbmdzKCkuc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KHBvbGljeSk7CiAgICAgcmV0dXJu
IHsgfTsKIH0KIApAQCAtMzQ3LDIwICszMjMsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5h
bFNldHRpbmdzOjpzZXRQCiB7CiAgICAgaWYgKCFtX3BhZ2UpCiAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKLSAgICBzd2l0Y2ggKHBvbGljeSkgewotICAg
IGNhc2UgUERGSW1hZ2VDYWNoaW5nUG9saWN5OjpFbmFibGVkOgotICAgICAgICBzZXR0aW5ncygp
LnNldFBkZkltYWdlQ2FjaGluZ1BvbGljeShQREZJbWFnZUNhY2hpbmdEaXNhYmxlZCk7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgUERGSW1hZ2VDYWNoaW5nUG9saWN5OjpCZWxvd01lbW9yeUxp
bWl0OgotICAgICAgICBzZXR0aW5ncygpLnNldFBkZkltYWdlQ2FjaGluZ1BvbGljeShQREZJbWFn
ZUNhY2hpbmdCZWxvd01lbW9yeUxpbWl0KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQREZJ
bWFnZUNhY2hpbmdQb2xpY3k6OkRpc2FibGVkOgotICAgICAgICBzZXR0aW5ncygpLnNldFBkZklt
YWdlQ2FjaGluZ1BvbGljeShQREZJbWFnZUNhY2hpbmdEaXNhYmxlZCk7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgUERGSW1hZ2VDYWNoaW5nUG9saWN5OjpDbGlwQm91bmRzT25seToKLSAgICAg
ICAgc2V0dGluZ3MoKS5zZXRQZGZJbWFnZUNhY2hpbmdQb2xpY3koUERGSW1hZ2VDYWNoaW5nQ2xp
cEJvdW5kc09ubHkpOwotICAgICAgICBicmVhazsKLSAgICB9CisgICAgc2V0dGluZ3MoKS5zZXRQ
ZGZJbWFnZUNhY2hpbmdQb2xpY3kocG9saWN5KTsKICAgICByZXR1cm4geyB9OwogfQogCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAkocmV2aXNpb24gMjY5
ODU2KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI2LDIyICsyNiwxNCBAQAogCiAjcHJhZ21hIG9uY2UKIAotLy8gRklYTUUg
KDEyMTkyNyk6IFRoaXMgaW5jbHVkZSBzaG91bGQgbm90IGJlIG5lZWRlZC4KLSNpbmNsdWRlIDx3
dGYvdGV4dC9BdG9tU3RyaW5nSGFzaC5oPgotCi0jaW5jbHVkZSAiRWRpdGluZ0JlaGF2aW9yVHlw
ZXMuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgIkZvbnRHZW5lcmljRmFt
aWxpZXMuaCIKLSNpbmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVkZSAiSW50ZXJuYWxTZXR0aW5n
c0dlbmVyYXRlZC5oIgotI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2V0
dGluZ3MuaCIKLSNpbmNsdWRlICJXcml0aW5nTW9kZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIFBhZ2U7Ci1jbGFzcyBTZXR0aW5nczsKIAogY2xhc3MgSW50ZXJuYWxTZXR0aW5n
cyA6IHB1YmxpYyBJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkIHsKIHB1YmxpYzoKQEAgLTY0LDEz
ICs1NiwxMyBAQCBwdWJsaWM6CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0TWluaW11bVRpbWVy
SW50ZXJ2YWwoZG91YmxlIGludGVydmFsSW5TZWNvbmRzKTsKICAgICBFeGNlcHRpb25Pcjx2b2lk
PiBzZXRUaW1lV2l0aG91dE1vdXNlTW92ZW1lbnRCZWZvcmVIaWRpbmdDb250cm9scyhkb3VibGUg
aW50ZXJ2YWxJblNlY29uZHMpOwogCi0gICAgZW51bSBjbGFzcyBFZGl0aW5nQmVoYXZpb3IgOiB1
aW50OF90IHsgTWFjLCBXaW4sIFVuaXgsIElvcyB9OwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNl
dEVkaXRpbmdCZWhhdmlvcihFZGl0aW5nQmVoYXZpb3IpOworICAgIHVzaW5nIEVkaXRpbmdCZWhh
dmlvclR5cGUgPSBXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3JUeXBlOworICAgIEV4Y2VwdGlvbk9y
PHZvaWQ+IHNldEVkaXRpbmdCZWhhdmlvcihFZGl0aW5nQmVoYXZpb3JUeXBlKTsKICAgICAKLSAg
ICBlbnVtIGNsYXNzIFBERkltYWdlQ2FjaGluZ1BvbGljeSA6IHVpbnQ4X3QgeyBFbmFibGVkLCBC
ZWxvd01lbW9yeUxpbWl0LCBEaXNhYmxlZCwgQ2xpcEJvdW5kc09ubHkgfTsKKyAgICB1c2luZyBQ
REZJbWFnZUNhY2hpbmdQb2xpY3kgPSBXZWJDb3JlOjpQREZJbWFnZUNhY2hpbmdQb2xpY3k7CiAg
ICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0UERGSW1hZ2VDYWNoaW5nUG9saWN5KFBERkltYWdlQ2Fj
aGluZ1BvbGljeSk7CiAKLSAgICBlbnVtIGNsYXNzIFN0b3JhZ2VCbG9ja2luZ1BvbGljeSA6IHVp
bnQ4X3QgeyBBbGxvd0FsbCwgQmxvY2tUaGlyZFBhcnR5LCBCbG9ja0FsbCB9OworICAgIHVzaW5n
IFN0b3JhZ2VCbG9ja2luZ1BvbGljeSA9IFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeTsK
ICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koU3RvcmFnZUJs
b2NraW5nUG9saWN5KTsKICAgICAKICAgICB1c2luZyBVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9s
aWN5ID0gV2ViQ29yZTo6VXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeTsKQEAgLTc5LDEzICs3
MSwxMyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgU3lzdGVtTGF5b3V0RGlyZWN0aW9uID0gVGV4dERp
cmVjdGlvbjsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRTeXN0ZW1MYXlvdXREaXJlY3Rpb24o
U3lzdGVtTGF5b3V0RGlyZWN0aW9uKTsKIAotICAgIHVzaW5nIEZvbnRMb2FkVGltaW5nT3ZlcnJp
ZGUgPSBTZXR0aW5nczo6Rm9udExvYWRUaW1pbmdPdmVycmlkZTsKKyAgICB1c2luZyBGb250TG9h
ZFRpbWluZ092ZXJyaWRlID0gV2ViQ29yZTo6Rm9udExvYWRUaW1pbmdPdmVycmlkZTsKICAgICBF
eGNlcHRpb25Pcjx2b2lkPiBzZXRGb250TG9hZFRpbWluZ092ZXJyaWRlKEZvbnRMb2FkVGltaW5n
T3ZlcnJpZGUpOwogCiAgICAgdXNpbmcgRnJhbWVGbGF0dGVuaW5nVmFsdWUgPSBGcmFtZUZsYXR0
ZW5pbmc7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0RnJhbWVGbGF0dGVuaW5nKEZyYW1lRmxh
dHRlbmluZ1ZhbHVlKTsKIAotICAgIHVzaW5nIEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZSA9IFNl
dHRpbmdzOjpGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWU7CisgICAgdXNpbmcgRm9yY2VkQWNjZXNz
aWJpbGl0eVZhbHVlID0gV2ViQ29yZTo6Rm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlOwogICAgIEZv
cmNlZEFjY2Vzc2liaWxpdHlWYWx1ZSBmb3JjZWRDb2xvcnNBcmVJbnZlcnRlZEFjY2Vzc2liaWxp
dHlWYWx1ZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0Rm9yY2VkQ29sb3JzQXJlSW52ZXJ0ZWRBY2Nl
c3NpYmlsaXR5VmFsdWUoRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlKTsKICAgICBGb3JjZWRBY2Nl
c3NpYmlsaXR5VmFsdWUgZm9yY2VkRGlzcGxheUlzTW9ub2Nocm9tZUFjY2Vzc2liaWxpdHlWYWx1
ZSgpIGNvbnN0OwpAQCAtMTQ4LDE4ICsxNDAsMTggQEAgcHJpdmF0ZToKICAgICAgICAgU2NyaXB0
Rm9udEZhbWlseU1hcCBtX2N1cnNpdmVGb250RmFtaWxpZXM7CiAgICAgICAgIFNjcmlwdEZvbnRG
YW1pbHlNYXAgbV9mYW50YXN5Rm9udEZhbWlsaWVzOwogICAgICAgICBTY3JpcHRGb250RmFtaWx5
TWFwIG1fcGljdG9ncmFwaEZvbnRGYW1pbGllczsKLSAgICAgICAgRWRpdGluZ0JlaGF2aW9yVHlw
ZSBtX29yaWdpbmFsRWRpdGluZ0JlaGF2aW9yOwogICAgICAgICBTZWNvbmRzIG1fbWluaW11bURP
TVRpbWVySW50ZXJ2YWw7CiAgICAgICAgIFNlY29uZHMgbV9vcmlnaW5hbFRpbWVXaXRob3V0TW91
c2VNb3ZlbWVudEJlZm9yZUhpZGluZ0NvbnRyb2xzOwotICAgICAgICBTZWN1cml0eU9yaWdpbjo6
U3RvcmFnZUJsb2NraW5nUG9saWN5IG1fc3RvcmFnZUJsb2NraW5nUG9saWN5OwotICAgICAgICBV
c2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5IG1fdXNlckludGVyZmFjZURpcmVjdGlvblBvbGlj
eTsKKyAgICAgICAgV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yVHlwZSBtX29yaWdpbmFsRWRpdGlu
Z0JlaGF2aW9yOworICAgICAgICBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgbV9zdG9y
YWdlQmxvY2tpbmdQb2xpY3k7CisgICAgICAgIFdlYkNvcmU6OlVzZXJJbnRlcmZhY2VEaXJlY3Rp
b25Qb2xpY3kgbV91c2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5OwogICAgICAgICBUZXh0RGly
ZWN0aW9uIG1fc3lzdGVtTGF5b3V0RGlyZWN0aW9uOwogICAgICAgICBXZWJDb3JlOjpQREZJbWFn
ZUNhY2hpbmdQb2xpY3kgbV9wZGZJbWFnZUNhY2hpbmdQb2xpY3k7Ci0gICAgICAgIFNldHRpbmdz
OjpGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUgbV9mb3JjZWRDb2xvcnNBcmVJbnZlcnRlZEFjY2Vz
c2liaWxpdHlWYWx1ZTsKLSAgICAgICAgU2V0dGluZ3M6OkZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1
ZSBtX2ZvcmNlZERpc3BsYXlJc01vbm9jaHJvbWVBY2Nlc3NpYmlsaXR5VmFsdWU7Ci0gICAgICAg
IFNldHRpbmdzOjpGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUgbV9mb3JjZWRQcmVmZXJzUmVkdWNl
ZE1vdGlvbkFjY2Vzc2liaWxpdHlWYWx1ZTsKLSAgICAgICAgU2V0dGluZ3M6OkZvbnRMb2FkVGlt
aW5nT3ZlcnJpZGUgbV9mb250TG9hZFRpbWluZ092ZXJyaWRlOwotICAgICAgICBGcmFtZUZsYXR0
ZW5pbmcgbV9mcmFtZUZsYXR0ZW5pbmc7CisgICAgICAgIFdlYkNvcmU6OkZvcmNlZEFjY2Vzc2li
aWxpdHlWYWx1ZSBtX2ZvcmNlZENvbG9yc0FyZUludmVydGVkQWNjZXNzaWJpbGl0eVZhbHVlOwor
ICAgICAgICBXZWJDb3JlOjpGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUgbV9mb3JjZWREaXNwbGF5
SXNNb25vY2hyb21lQWNjZXNzaWJpbGl0eVZhbHVlOworICAgICAgICBXZWJDb3JlOjpGb3JjZWRB
Y2Nlc3NpYmlsaXR5VmFsdWUgbV9mb3JjZWRQcmVmZXJzUmVkdWNlZE1vdGlvbkFjY2Vzc2liaWxp
dHlWYWx1ZTsKKyAgICAgICAgV2ViQ29yZTo6Rm9udExvYWRUaW1pbmdPdmVycmlkZSBtX2ZvbnRM
b2FkVGltaW5nT3ZlcnJpZGU7CisgICAgICAgIFdlYkNvcmU6OkZyYW1lRmxhdHRlbmluZyBtX2Zy
YW1lRmxhdHRlbmluZzsKIAogICAgICAgICAvLyBSdW50aW1lRW5hYmxlZEZlYXR1cmVzCiAgICAg
ICAgIGJvb2wgbV93ZWJHTDJFbmFibGVkOwpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbFNldHRpbmdzLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuaWRsCShyZXZpc2lvbiAyNjk4NTYpCisrKyBTb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNCwxMSAr
MjQsMTEgQEAKICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotZW51bSBFZGl0aW5nQmVoYXZpb3IgeyAibWFj
IiwgIndpbiIsICJ1bml4IiwgImlvcyIgfTsKK2VudW0gRWRpdGluZ0JlaGF2aW9yVHlwZSB7ICJt
YWMiLCAid2luZG93cyIsICJ1bml4IiwgImlvcyIgfTsKIGVudW0gRm9udExvYWRUaW1pbmdPdmVy
cmlkZSB7ICJOb25lIiwgIkJsb2NrIiwgIlN3YXAiLCAiRmFpbHVyZSIgfTsKIGVudW0gRm9yY2Vk
QWNjZXNzaWJpbGl0eVZhbHVlIHsgInN5c3RlbSIsICJvbiIsICJvZmYiIH07CiBlbnVtIEZyYW1l
RmxhdHRlbmluZ1ZhbHVlIHsgIkRpc2FibGVkIiwgIkVuYWJsZWRGb3JOb25GdWxsU2NyZWVuSUZy
YW1lcyIsICJGdWxseUVuYWJsZWQiIH07Ci1lbnVtIFBERkltYWdlQ2FjaGluZ1BvbGljeSB7ICJl
bmFibGVkIiwgImJlbG93TWVtb3J5TGltaXQiLCAiZGlzYWJsZWQiLCAiY2xpcEJvdW5kc09ubHki
IH07CitlbnVtIFBERkltYWdlQ2FjaGluZ1BvbGljeSB7ICJFbmFibGVkIiwgIkJlbG93TWVtb3J5
TGltaXQiLCAiRGlzYWJsZWQiLCAiQ2xpcEJvdW5kc09ubHkiIH07CiBlbnVtIFN0b3JhZ2VCbG9j
a2luZ1BvbGljeSB7ICJBbGxvd0FsbCIsICJCbG9ja1RoaXJkUGFydHkiLCAiQmxvY2tBbGwiIH07
CiBlbnVtIFN5c3RlbUxheW91dERpcmVjdGlvbiB7ICJMVFIiLCAiUlRMIiB9OwogZW51bSBUcmFj
a0tpbmQgeyAiU3VidGl0bGVzIiwgIkNhcHRpb25zIiwgIlRleHREZXNjcmlwdGlvbnMiIH07CkBA
IC01Miw3ICs1Miw3IEBAIGVudW0gVXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeSB7ICJDb24K
ICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHVuZGVmaW5lZCBzZXRUZXh0QXV0b3NpemluZ1dpbmRv
d1NpemVPdmVycmlkZShsb25nIHdpZHRoLCBsb25nIGhlaWdodCk7CiAgICAgW01heVRocm93RXhj
ZXB0aW9uXSB1bmRlZmluZWQgc2V0VGltZVdpdGhvdXRNb3VzZU1vdmVtZW50QmVmb3JlSGlkaW5n
Q29udHJvbHModW5yZXN0cmljdGVkIGRvdWJsZSBpbnRlcnZhbEluU2Vjb25kcyk7CiAgICAgW01h
eVRocm93RXhjZXB0aW9uXSB1bmRlZmluZWQgc2V0TWluaW11bVRpbWVySW50ZXJ2YWwodW5yZXN0
cmljdGVkIGRvdWJsZSBpbnRlcnZhbEluU2Vjb25kcyk7Ci0gICAgW01heVRocm93RXhjZXB0aW9u
XSB1bmRlZmluZWQgc2V0RWRpdGluZ0JlaGF2aW9yKEVkaXRpbmdCZWhhdmlvciBiZWhhdmlvcik7
CisgICAgW01heVRocm93RXhjZXB0aW9uXSB1bmRlZmluZWQgc2V0RWRpdGluZ0JlaGF2aW9yKEVk
aXRpbmdCZWhhdmlvclR5cGUgYmVoYXZpb3IpOwogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gdW5k
ZWZpbmVkIHNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShTdG9yYWdlQmxvY2tpbmdQb2xpY3kgcG9s
aWN5KTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHVuZGVmaW5lZCBzZXRQREZJbWFnZUNhY2hp
bmdQb2xpY3koUERGSW1hZ2VDYWNoaW5nUG9saWN5IHBvbGljeSk7CiAgICAgW01heVRocm93RXhj
ZXB0aW9uXSB1bmRlZmluZWQgc2V0RnJhbWVGbGF0dGVuaW5nKEZyYW1lRmxhdHRlbmluZ1ZhbHVl
IGZyYW1lRmxhdHRlbmluZyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
Y29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94
eS5jcHAJKHJldmlzaW9uIDI2OTg1NikKKysrIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTUyLDcgKzUyLDcgQEAgc3RhdGljIFVSTCB0b3BPcmlnaW5VUkwoY29uc3QgU2VjdXJpdHlPcgog
ICAgIHJldHVybiBVUkwgeyBVUkwgeyB9LCBvcmlnaW4udG9SYXdTdHJpbmcoKSB9OwogfQogCi1z
dGF0aWMgaW5saW5lIFVuaXF1ZVJlZjxQYWdlPiBjcmVhdGVQYWdlRm9yU2VydmljZVdvcmtlcihQ
YWdlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24sIGNvbnN0IFNlcnZpY2VXb3JrZXJDb250
ZXh0RGF0YSYgZGF0YSwgU2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBzdG9y
YWdlQmxvY2tpbmdQb2xpY3kpCitzdGF0aWMgaW5saW5lIFVuaXF1ZVJlZjxQYWdlPiBjcmVhdGVQ
YWdlRm9yU2VydmljZVdvcmtlcihQYWdlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24sIGNv
bnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYgZGF0YSwgU3RvcmFnZUJsb2NraW5nUG9saWN5
IHN0b3JhZ2VCbG9ja2luZ1BvbGljeSkKIHsKICAgICBhdXRvIHBhZ2UgPSBtYWtlVW5pcXVlUmVm
PFBhZ2U+KFdURk1vdmUoY29uZmlndXJhdGlvbikpOwogCkBAIC05NCw3ICs5NCw3IEBAIHN0YXRp
YyBIYXNoU2V0PFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSoKICAgICByZXR1cm4gc2V0OwogfQog
Ci1TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OlNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eShQYWdl
Q29uZmlndXJhdGlvbiYmIHBhZ2VDb25maWd1cmF0aW9uLCBjb25zdCBTZXJ2aWNlV29ya2VyQ29u
dGV4dERhdGEmIGRhdGEsIFN0cmluZyYmIHVzZXJBZ2VudCwgQ2FjaGVTdG9yYWdlUHJvdmlkZXIm
IGNhY2hlU3RvcmFnZVByb3ZpZGVyLCBTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9s
aWN5IHN0b3JhZ2VCbG9ja2luZ1BvbGljeSkKK1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6U2Vy
dmljZVdvcmtlclRocmVhZFByb3h5KFBhZ2VDb25maWd1cmF0aW9uJiYgcGFnZUNvbmZpZ3VyYXRp
b24sIGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYgZGF0YSwgU3RyaW5nJiYgdXNlckFn
ZW50LCBDYWNoZVN0b3JhZ2VQcm92aWRlciYgY2FjaGVTdG9yYWdlUHJvdmlkZXIsIFN0b3JhZ2VC
bG9ja2luZ1BvbGljeSBzdG9yYWdlQmxvY2tpbmdQb2xpY3kpCiAgICAgOiBtX3BhZ2UoY3JlYXRl
UGFnZUZvclNlcnZpY2VXb3JrZXIoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbiksIGRhdGEsIHN0
b3JhZ2VCbG9ja2luZ1BvbGljeSkpCiAgICAgLCBtX2RvY3VtZW50KCptX3BhZ2UtPm1haW5GcmFt
ZSgpLmRvY3VtZW50KCkpCiAgICAgLCBtX3NlcnZpY2VXb3JrZXJUaHJlYWQoU2VydmljZVdvcmtl
clRocmVhZDo6Y3JlYXRlKGRhdGEsIFdURk1vdmUodXNlckFnZW50KSwgKnRoaXMsICp0aGlzLCBp
ZGJDb25uZWN0aW9uUHJveHkobV9kb2N1bWVudCksIG1fZG9jdW1lbnQtPnNvY2tldFByb3ZpZGVy
KCkpKQpJbmRleDogU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vydmlj
ZVdvcmtlclRocmVhZFByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmgJKHJldmlzaW9uIDI2
OTg1NikKKysrIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VX
b3JrZXJUaHJlYWRQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSwxMSArMzEsMTEgQEAKICNp
bmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZldGNoSWRlbnRpZmllci5oIgogI2luY2x1
ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNlcnZp
Y2VXb3JrZXJEZWJ1Z2dhYmxlLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlcklkZW50aWZpZXIu
aCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VySW5zcGVjdG9yUHJveHkuaCIKICNpbmNsdWRlICJT
ZXJ2aWNlV29ya2VyVGhyZWFkLmgiCisjaW5jbHVkZSAiU3RvcmFnZUJsb2NraW5nUG9saWN5Lmgi
CiAjaW5jbHVkZSAiV29ya2VyRGVidWdnZXJQcm94eS5oIgogI2luY2x1ZGUgIldvcmtlckxvYWRl
clByb3h5LmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTgwLDcgKzgwLDcgQEAgcHVi
bGljOgogICAgIHZvaWQgZmlyZUFjdGl2YXRlRXZlbnQoKTsKIAogcHJpdmF0ZToKLSAgICBXRUJD
T1JFX0VYUE9SVCBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkoUGFnZUNvbmZpZ3VyYXRpb24mJiwg
Y29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiwgU3RyaW5nJiYgdXNlckFnZW50LCBDYWNo
ZVN0b3JhZ2VQcm92aWRlciYsIFNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kp
OworICAgIFdFQkNPUkVfRVhQT1JUIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eShQYWdlQ29uZmln
dXJhdGlvbiYmLCBjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmLCBTdHJpbmcmJiB1c2Vy
QWdlbnQsIENhY2hlU3RvcmFnZVByb3ZpZGVyJiwgU3RvcmFnZUJsb2NraW5nUG9saWN5KTsKIAog
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIG5ldHdvcmtTdGF0ZUNoYW5nZWQoYm9vbCBp
c09uTGluZSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjk4NTYpCisrKyBTb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDIwLTExLTE1
ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBTdGFuZGFyZGl6ZSBl
bnVtcyB0aGF0IGFyZSB1c2VkIGJ5IFNldHRpbmdzIGluIHByZXBlcmF0aW9uIGZvciBhdXRvZ2Vu
ZXJhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjE4OTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VXBkYXRlIGVudW0gdXNlcyBmb3IgcmVuYW1lcyBhbmQgc2NvcGVkIHN5bnRheCB1c2UuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAgIChXZWJLaXQ6OnRv
QVBJKToKKyAgICAgICAgKFdlYktpdDo6dG9FZGl0YWJsZUxpbmtCZWhhdmlvcik6CisgICAgICAg
IChXZWJLaXQ6OnRvU3RvcmFnZUJsb2NraW5nUG9saWN5KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0MvV0tQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0RWRpdGFi
bGVMaW5rQmVoYXZpb3IpOgorICAgICAgICAoV0tQcmVmZXJlbmNlc1NldFN0b3JhZ2VCbG9ja2lu
Z1BvbGljeSk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzR2V0U3RvcmFnZUJsb2NraW5nUG9saWN5
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW06CisgICAg
ICAgICh0b1N0b3JhZ2VCbG9ja2luZ1BvbGljeSk6CisgICAgICAgICh0b0FQSSk6CisgICAgICAg
ICgtW1dLUHJlZmVyZW5jZXMgX3N0b3JhZ2VCbG9ja2luZ1BvbGljeV0pOgorICAgICAgICAoLVtX
S1ByZWZlcmVuY2VzIF9zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3k6XSk6CisgICAgICAgICh0b0Vk
aXRhYmxlTGlua0JlaGF2aW9yKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfc2V0RWRpdGFi
bGVMaW5rQmVoYXZpb3I6XSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJlZmVyZW5jZXM6OmNyZWF0ZVdpdGhMZWdhY3lEZWZh
dWx0cyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb246OnVwZGF0ZVByZWZlcmVuY2VzU3RvcmUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRl
UHJlZmVyZW5jZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkZXRlY3REYXRhSW5BbGxG
cmFtZXMpOgorCiAyMDIwLTExLTE2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdh
bGlhLmNvbT4KIAogICAgICAgICBXZWJEcml2ZXI6IGRvIG5vdCBmb2N1cyB0aGUgbWFpbiBmcmFt
ZSB3aGVuIHN3aXRjaGluZyB0byBhIHdpbmRvdwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJlZmVyZW5jZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByZWZlcmVuY2VzLmNwcAkocmV2aXNpb24gMjY5ODU2KQorKysgU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Myw3ICs1
Myw3IEBAIFJlZjxXZWJQcmVmZXJlbmNlcz4gV2ViUHJlZmVyZW5jZXM6OmNyZWEKICAgICBwcmVm
ZXJlbmNlcy0+cmVnaXN0ZXJEZWZhdWx0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5
OjpqYXZhRW5hYmxlZEtleSgpLCB0cnVlKTsKICAgICBwcmVmZXJlbmNlcy0+cmVnaXN0ZXJEZWZh
dWx0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpqYXZhRW5hYmxlZEZvckxvY2Fs
RmlsZXNLZXkoKSwgdHJ1ZSk7CiAgICAgcHJlZmVyZW5jZXMtPnJlZ2lzdGVyRGVmYXVsdEJvb2xW
YWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6cGx1Z2luc0VuYWJsZWRLZXkoKSwgdHJ1ZSk7
Ci0gICAgcHJlZmVyZW5jZXMtPnJlZ2lzdGVyRGVmYXVsdFVJbnQzMlZhbHVlRm9yS2V5KFdlYlBy
ZWZlcmVuY2VzS2V5OjpzdG9yYWdlQmxvY2tpbmdQb2xpY3lLZXkoKSwgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW46OkFsbG93QWxsU3RvcmFnZSk7CisgICAgcHJlZmVyZW5jZXMtPnJlZ2lzdGVyRGVm
YXVsdFVJbnQzMlZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpzdG9yYWdlQmxvY2tpbmdQ
b2xpY3lLZXkoKSwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2lu
Z1BvbGljeTo6QWxsb3dBbGwpKTsKICAgICByZXR1cm4gcHJlZmVyZW5jZXM7CiB9CiAKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCShyZXZpc2lvbiAyNjk4
NTYpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjUyLDE1ICsyNTIsMTUgQEAgaW5saW5lIFdLUHJvY2Vzc1Rlcm1pbmF0aW9u
UmVhc29uIHRvQVBJKAogaW5saW5lIFdLRWRpdGFibGVMaW5rQmVoYXZpb3IgdG9BUEkoV2ViQ29y
ZTo6RWRpdGFibGVMaW5rQmVoYXZpb3IgYmVoYXZpb3IpCiB7CiAgICAgc3dpdGNoIChiZWhhdmlv
cikgewotICAgIGNhc2UgV2ViQ29yZTo6RWRpdGFibGVMaW5rRGVmYXVsdEJlaGF2aW9yOgorICAg
IGNhc2UgV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6OkRlZmF1bHQ6CiAgICAgICAgIHJl
dHVybiBrV0tFZGl0YWJsZUxpbmtCZWhhdmlvckRlZmF1bHQ7Ci0gICAgY2FzZSBXZWJDb3JlOjpF
ZGl0YWJsZUxpbmtBbHdheXNMaXZlOgorICAgIGNhc2UgV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVo
YXZpb3I6OkFsd2F5c0xpdmU6CiAgICAgICAgIHJldHVybiBrV0tFZGl0YWJsZUxpbmtCZWhhdmlv
ckFsd2F5c0xpdmU7Ci0gICAgY2FzZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtPbmx5TGl2ZVdpdGhT
aGlmdEtleToKKyAgICBjYXNlIFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpPbmx5TGl2
ZVdpdGhTaGlmdEtleToKICAgICAgICAgcmV0dXJuIGtXS0VkaXRhYmxlTGlua0JlaGF2aW9yT25s
eUxpdmVXaXRoU2hpZnRLZXk7Ci0gICAgY2FzZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtMaXZlV2hl
bk5vdEZvY3VzZWQ6CisgICAgY2FzZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvcjo6TGl2
ZVdoZW5Ob3RGb2N1c2VkOgogICAgICAgICByZXR1cm4ga1dLRWRpdGFibGVMaW5rQmVoYXZpb3JM
aXZlV2hlbk5vdEZvY3VzZWQ7Ci0gICAgY2FzZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtOZXZlckxp
dmU6CisgICAgY2FzZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvcjo6TmV2ZXJMaXZlOgog
ICAgICAgICByZXR1cm4ga1dLRWRpdGFibGVMaW5rQmVoYXZpb3JOZXZlckxpdmU7CiAgICAgfQog
ICAgIApAQCAtMjcyLDE5ICsyNzIsMTkgQEAgaW5saW5lIFdlYkNvcmU6OkVkaXRhYmxlTGlua0Jl
aGF2aW9yIHRvRQogewogICAgIHN3aXRjaCAod2tCZWhhdmlvcikgewogICAgIGNhc2Uga1dLRWRp
dGFibGVMaW5rQmVoYXZpb3JEZWZhdWx0OgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6RWRpdGFi
bGVMaW5rRGVmYXVsdEJlaGF2aW9yOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6RWRpdGFibGVM
aW5rQmVoYXZpb3I6OkRlZmF1bHQ7CiAgICAgY2FzZSBrV0tFZGl0YWJsZUxpbmtCZWhhdmlvckFs
d2F5c0xpdmU6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpFZGl0YWJsZUxpbmtBbHdheXNMaXZl
OworICAgICAgICByZXR1cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6OkFsd2F5c0xp
dmU7CiAgICAgY2FzZSBrV0tFZGl0YWJsZUxpbmtCZWhhdmlvck9ubHlMaXZlV2l0aFNoaWZ0S2V5
OgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5rT25seUxpdmVXaXRoU2hpZnRL
ZXk7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvcjo6T25seUxp
dmVXaXRoU2hpZnRLZXk7CiAgICAgY2FzZSBrV0tFZGl0YWJsZUxpbmtCZWhhdmlvckxpdmVXaGVu
Tm90Rm9jdXNlZDoKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRhYmxlTGlua0xpdmVXaGVu
Tm90Rm9jdXNlZDsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9y
OjpMaXZlV2hlbk5vdEZvY3VzZWQ7CiAgICAgY2FzZSBrV0tFZGl0YWJsZUxpbmtCZWhhdmlvck5l
dmVyTGl2ZToKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRhYmxlTGlua05ldmVyTGl2ZTsK
KyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpOZXZlckxpdmU7
CiAgICAgfQogICAgIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBXZWJD
b3JlOjpFZGl0YWJsZUxpbmtOZXZlckxpdmU7CisgICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRhYmxl
TGlua0JlaGF2aW9yOjpOZXZlckxpdmU7CiB9CiAgICAgCiBpbmxpbmUgV0tQcm90ZWN0aW9uU3Bh
Y2VTZXJ2ZXJUeXBlIHRvQVBJKFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUgdHlw
ZSkKQEAgLTM4NCwyOSArMzg0LDI5IEBAIGlubGluZSBXS0hUVFBDb29raWVBY2NlcHRQb2xpY3kg
dG9BUEkoV2UKICAgICByZXR1cm4ga1dLSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5czsKIH0K
IAotaW5saW5lIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kg
dG9TdG9yYWdlQmxvY2tpbmdQb2xpY3koV0tTdG9yYWdlQmxvY2tpbmdQb2xpY3kgcG9saWN5KQor
aW5saW5lIFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSB0b1N0b3JhZ2VCbG9ja2luZ1Bv
bGljeShXS1N0b3JhZ2VCbG9ja2luZ1BvbGljeSBwb2xpY3kpCiB7CiAgICAgc3dpdGNoIChwb2xp
Y3kpIHsKICAgICBjYXNlIGtXS0FsbG93QWxsU3RvcmFnZToKLSAgICAgICAgcmV0dXJuIFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luOjpBbGxvd0FsbFN0b3JhZ2U7CisgICAgICAgIHJldHVybiBXZWJD
b3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkFsbG93QWxsOwogICAgIGNhc2Uga1dLQmxvY2tU
aGlyZFBhcnR5U3RvcmFnZToKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
OjpCbG9ja1RoaXJkUGFydHlTdG9yYWdlOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6U3RvcmFn
ZUJsb2NraW5nUG9saWN5OjpCbG9ja1RoaXJkUGFydHk7CiAgICAgY2FzZSBrV0tCbG9ja0FsbFN0
b3JhZ2U6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6QmxvY2tBbGxT
dG9yYWdlOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5OjpC
bG9ja0FsbDsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4g
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OkFsbG93QWxsU3RvcmFnZTsKKyAgICByZXR1cm4gV2Vi
Q29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5OjpBbGxvd0FsbDsKIH0KIAotaW5saW5lIFdLU3Rv
cmFnZUJsb2NraW5nUG9saWN5IHRvQVBJKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpTdG9yYWdl
QmxvY2tpbmdQb2xpY3kgcG9saWN5KQoraW5saW5lIFdLU3RvcmFnZUJsb2NraW5nUG9saWN5IHRv
QVBJKFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBwb2xpY3kpCiB7CiAgICAgc3dpdGNo
IChwb2xpY3kpIHsKLSAgICBjYXNlIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpBbGxvd0FsbFN0
b3JhZ2U6CisgICAgY2FzZSBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkFsbG93QWxs
OgogICAgICAgICByZXR1cm4ga1dLQWxsb3dBbGxTdG9yYWdlOwotICAgIGNhc2UgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW46OkJsb2NrVGhpcmRQYXJ0eVN0b3JhZ2U6CisgICAgY2FzZSBXZWJDb3Jl
OjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkJsb2NrVGhpcmRQYXJ0eToKICAgICAgICAgcmV0dXJu
IGtXS0Jsb2NrVGhpcmRQYXJ0eVN0b3JhZ2U7Ci0gICAgY2FzZSBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbjo6QmxvY2tBbGxTdG9yYWdlOgorICAgIGNhc2UgV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5n
UG9saWN5OjpCbG9ja0FsbDoKICAgICAgICAgcmV0dXJuIGtXS0Jsb2NrQWxsU3RvcmFnZTsKICAg
ICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVy
ZW5jZXMuY3BwCShyZXZpc2lvbiAyNjk4NTYpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS1ByZWZlcmVuY2VzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzU4LDcgKzM1OCw3IEBA
IGJvb2wgV0tQcmVmZXJlbmNlc0dldENvb2tpZUVuYWJsZWQoV0tQcmUKIAogdm9pZCBXS1ByZWZl
cmVuY2VzU2V0RWRpdGFibGVMaW5rQmVoYXZpb3IoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNl
c1JlZiwgV0tFZGl0YWJsZUxpbmtCZWhhdmlvciB3a0JlaGF2aW9yKQogewotICAgIHRvSW1wbChw
cmVmZXJlbmNlc1JlZiktPnNldEVkaXRhYmxlTGlua0JlaGF2aW9yKHRvRWRpdGFibGVMaW5rQmVo
YXZpb3Iod2tCZWhhdmlvcikpOworICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldEVkaXRh
YmxlTGlua0JlaGF2aW9yKHN0YXRpY19jYXN0PHVpbnQzMl90Pih0b0VkaXRhYmxlTGlua0JlaGF2
aW9yKHdrQmVoYXZpb3IpKSk7CiB9CiAKIFdLRWRpdGFibGVMaW5rQmVoYXZpb3IgV0tQcmVmZXJl
bmNlc0dldEVkaXRhYmxlTGlua0JlaGF2aW9yKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNS
ZWYpCkBAIC05OTgsMTIgKzk5OCwxMiBAQCBib29sIFdLUHJlZmVyZW5jZXNHZXRSZXF1ZXN0QW5p
bWF0aW9uRnJhCiAKIHZvaWQgV0tQcmVmZXJlbmNlc1NldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShX
S1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBXS1N0b3JhZ2VCbG9ja2luZ1BvbGljeSBw
b2xpY3kpCiB7Ci0gICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0U3RvcmFnZUJsb2NraW5n
UG9saWN5KHRvU3RvcmFnZUJsb2NraW5nUG9saWN5KHBvbGljeSkpOworICAgIHRvSW1wbChwcmVm
ZXJlbmNlc1JlZiktPnNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShzdGF0aWNfY2FzdDx1aW50MzJf
dD4odG9TdG9yYWdlQmxvY2tpbmdQb2xpY3kocG9saWN5KSkpOwogfQogCiBXS1N0b3JhZ2VCbG9j
a2luZ1BvbGljeSBXS1ByZWZlcmVuY2VzR2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KFdLUHJlZmVy
ZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpCiB7Ci0gICAgcmV0dXJuIHRvQVBJKHN0YXRpY19jYXN0
PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k+KHRvSW1wbChw
cmVmZXJlbmNlc1JlZiktPnN0b3JhZ2VCbG9ja2luZ1BvbGljeSgpKSk7CisgICAgcmV0dXJuIHRv
QVBJKHN0YXRpY19jYXN0PFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeT4odG9JbXBsKHBy
ZWZlcmVuY2VzUmVmKS0+c3RvcmFnZUJsb2NraW5nUG9saWN5KCkpKTsKIH0KIAogdm9pZCBXS1By
ZWZlcmVuY2VzU2V0RGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJl
ZmVyZW5jZXNSZWYsIGJvb2wgZW5hYmxlZCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCShyZXZpc2lvbiAyNjk4NTYpCisr
KyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQkod29y
a2luZyBjb3B5KQpAQCAtMTc1LDI5ICsxNzUsMjkgQEAgLSAodm9pZClfc2V0VGVsZXBob25lTnVt
YmVyRGV0ZWN0aW9uSXNFbgogICAgIF9wcmVmZXJlbmNlcy0+c2V0VGVsZXBob25lTnVtYmVyUGFy
c2luZ0VuYWJsZWQodGVsZXBob25lTnVtYmVyRGV0ZWN0aW9uSXNFbmFibGVkKTsKIH0KIAotc3Rh
dGljIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgdG9TdG9y
YWdlQmxvY2tpbmdQb2xpY3koX1dLU3RvcmFnZUJsb2NraW5nUG9saWN5IHBvbGljeSkKK3N0YXRp
YyBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgdG9TdG9yYWdlQmxvY2tpbmdQb2xpY3ko
X1dLU3RvcmFnZUJsb2NraW5nUG9saWN5IHBvbGljeSkKIHsKICAgICBzd2l0Y2ggKHBvbGljeSkg
ewogICAgIGNhc2UgX1dLU3RvcmFnZUJsb2NraW5nUG9saWN5QWxsb3dBbGw6Ci0gICAgICAgIHJl
dHVybiBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6QWxsb3dBbGxTdG9yYWdlOworICAgICAgICBy
ZXR1cm4gV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5OjpBbGxvd0FsbDsKICAgICBjYXNl
IF9XS1N0b3JhZ2VCbG9ja2luZ1BvbGljeUJsb2NrVGhpcmRQYXJ0eToKLSAgICAgICAgcmV0dXJu
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpCbG9ja1RoaXJkUGFydHlTdG9yYWdlOworICAgICAg
ICByZXR1cm4gV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5OjpCbG9ja1RoaXJkUGFydHk7
CiAgICAgY2FzZSBfV0tTdG9yYWdlQmxvY2tpbmdQb2xpY3lCbG9ja0FsbDoKLSAgICAgICAgcmV0
dXJuIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpCbG9ja0FsbFN0b3JhZ2U7CisgICAgICAgIHJl
dHVybiBXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkJsb2NrQWxsOwogICAgIH0KIAog
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbjo6QWxsb3dBbGxTdG9yYWdlOworICAgIHJldHVybiBXZWJDb3JlOjpTdG9yYWdlQmxvY2tp
bmdQb2xpY3k6OkFsbG93QWxsOwogfQogCi1zdGF0aWMgX1dLU3RvcmFnZUJsb2NraW5nUG9saWN5
IHRvQVBJKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgcG9s
aWN5KQorc3RhdGljIF9XS1N0b3JhZ2VCbG9ja2luZ1BvbGljeSB0b0FQSShXZWJDb3JlOjpTdG9y
YWdlQmxvY2tpbmdQb2xpY3kgcG9saWN5KQogewogICAgIHN3aXRjaCAocG9saWN5KSB7Ci0gICAg
Y2FzZSBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6QWxsb3dBbGxTdG9yYWdlOgorICAgIGNhc2Ug
V2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5OjpBbGxvd0FsbDoKICAgICAgICAgcmV0dXJu
IF9XS1N0b3JhZ2VCbG9ja2luZ1BvbGljeUFsbG93QWxsOwotICAgIGNhc2UgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW46OkJsb2NrVGhpcmRQYXJ0eVN0b3JhZ2U6CisgICAgY2FzZSBXZWJDb3JlOjpT
dG9yYWdlQmxvY2tpbmdQb2xpY3k6OkJsb2NrVGhpcmRQYXJ0eToKICAgICAgICAgcmV0dXJuIF9X
S1N0b3JhZ2VCbG9ja2luZ1BvbGljeUJsb2NrVGhpcmRQYXJ0eTsKLSAgICBjYXNlIFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luOjpCbG9ja0FsbFN0b3JhZ2U6CisgICAgY2FzZSBXZWJDb3JlOjpTdG9y
YWdlQmxvY2tpbmdQb2xpY3k6OkJsb2NrQWxsOgogICAgICAgICByZXR1cm4gX1dLU3RvcmFnZUJs
b2NraW5nUG9saWN5QmxvY2tBbGw7CiAgICAgfQogCkBAIC0yMDcsMTIgKzIwNywxMiBAQCBzdGF0
aWMgX1dLU3RvcmFnZUJsb2NraW5nUG9saWN5IHRvQVBJKFdlCiAKIC0gKF9XS1N0b3JhZ2VCbG9j
a2luZ1BvbGljeSlfc3RvcmFnZUJsb2NraW5nUG9saWN5CiB7Ci0gICAgcmV0dXJuIHRvQVBJKHN0
YXRpY19jYXN0PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k+
KF9wcmVmZXJlbmNlcy0+c3RvcmFnZUJsb2NraW5nUG9saWN5KCkpKTsKKyAgICByZXR1cm4gdG9B
UEkoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9saWN5PihfcHJlZmVyZW5j
ZXMtPnN0b3JhZ2VCbG9ja2luZ1BvbGljeSgpKSk7CiB9CiAKIC0gKHZvaWQpX3NldFN0b3JhZ2VC
bG9ja2luZ1BvbGljeTooX1dLU3RvcmFnZUJsb2NraW5nUG9saWN5KXBvbGljeQogewotICAgIF9w
cmVmZXJlbmNlcy0+c2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KHRvU3RvcmFnZUJsb2NraW5nUG9s
aWN5KHBvbGljeSkpOworICAgIF9wcmVmZXJlbmNlcy0+c2V0U3RvcmFnZUJsb2NraW5nUG9saWN5
KHN0YXRpY19jYXN0PHVpbnQzMl90Pih0b1N0b3JhZ2VCbG9ja2luZ1BvbGljeShwb2xpY3kpKSk7
CiB9CiAKIC0gKEJPT0wpX29mZmxpbmVBcHBsaWNhdGlvbkNhY2hlSXNFbmFibGVkCkBAIC03MzMs
MTUgKzczMywxNSBAQCAtICh2b2lkKV9zZXRTaG91bGRBbGxvd0Rlc2lnblN5c3RlbVVJRm9uCiBz
dGF0aWMgX1dLRWRpdGFibGVMaW5rQmVoYXZpb3IgdG9BUEkoV2ViQ29yZTo6RWRpdGFibGVMaW5r
QmVoYXZpb3IgYmVoYXZpb3IpCiB7CiAgICAgc3dpdGNoIChiZWhhdmlvcikgewotICAgIGNhc2Ug
V2ViQ29yZTo6RWRpdGFibGVMaW5rRGVmYXVsdEJlaGF2aW9yOgorICAgIGNhc2UgV2ViQ29yZTo6
RWRpdGFibGVMaW5rQmVoYXZpb3I6OkRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBfV0tFZGl0YWJs
ZUxpbmtCZWhhdmlvckRlZmF1bHQ7Ci0gICAgY2FzZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtBbHdh
eXNMaXZlOgorICAgIGNhc2UgV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6OkFsd2F5c0xp
dmU6CiAgICAgICAgIHJldHVybiBfV0tFZGl0YWJsZUxpbmtCZWhhdmlvckFsd2F5c0xpdmU7Ci0g
ICAgY2FzZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtPbmx5TGl2ZVdpdGhTaGlmdEtleToKKyAgICBj
YXNlIFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpPbmx5TGl2ZVdpdGhTaGlmdEtleToK
ICAgICAgICAgcmV0dXJuIF9XS0VkaXRhYmxlTGlua0JlaGF2aW9yT25seUxpdmVXaXRoU2hpZnRL
ZXk7Ci0gICAgY2FzZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtMaXZlV2hlbk5vdEZvY3VzZWQ6Cisg
ICAgY2FzZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvcjo6TGl2ZVdoZW5Ob3RGb2N1c2Vk
OgogICAgICAgICByZXR1cm4gX1dLRWRpdGFibGVMaW5rQmVoYXZpb3JMaXZlV2hlbk5vdEZvY3Vz
ZWQ7Ci0gICAgY2FzZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtOZXZlckxpdmU6CisgICAgY2FzZSBX
ZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvcjo6TmV2ZXJMaXZlOgogICAgICAgICByZXR1cm4g
X1dLRWRpdGFibGVMaW5rQmVoYXZpb3JOZXZlckxpdmU7CiAgICAgfQogICAgIApAQCAtNzUzLDE5
ICs3NTMsMTkgQEAgc3RhdGljIFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yIHRvRQogewog
ICAgIHN3aXRjaCAod2tCZWhhdmlvcikgewogICAgIGNhc2UgX1dLRWRpdGFibGVMaW5rQmVoYXZp
b3JEZWZhdWx0OgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5rRGVmYXVsdEJl
aGF2aW9yOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6OkRl
ZmF1bHQ7CiAgICAgY2FzZSBfV0tFZGl0YWJsZUxpbmtCZWhhdmlvckFsd2F5c0xpdmU6Ci0gICAg
ICAgIHJldHVybiBXZWJDb3JlOjpFZGl0YWJsZUxpbmtBbHdheXNMaXZlOworICAgICAgICByZXR1
cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I6OkFsd2F5c0xpdmU7CiAgICAgY2FzZSBf
V0tFZGl0YWJsZUxpbmtCZWhhdmlvck9ubHlMaXZlV2l0aFNoaWZ0S2V5OgotICAgICAgICByZXR1
cm4gV2ViQ29yZTo6RWRpdGFibGVMaW5rT25seUxpdmVXaXRoU2hpZnRLZXk7CisgICAgICAgIHJl
dHVybiBXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvcjo6T25seUxpdmVXaXRoU2hpZnRLZXk7
CiAgICAgY2FzZSBfV0tFZGl0YWJsZUxpbmtCZWhhdmlvckxpdmVXaGVuTm90Rm9jdXNlZDoKLSAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRhYmxlTGlua0xpdmVXaGVuTm90Rm9jdXNlZDsKKyAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpMaXZlV2hlbk5vdEZv
Y3VzZWQ7CiAgICAgY2FzZSBfV0tFZGl0YWJsZUxpbmtCZWhhdmlvck5ldmVyTGl2ZToKLSAgICAg
ICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRhYmxlTGlua05ldmVyTGl2ZTsKKyAgICAgICAgcmV0dXJu
IFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpOZXZlckxpdmU7CiAgICAgfQogICAgIAog
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBXZWJDb3JlOjpFZGl0YWJsZUxp
bmtOZXZlckxpdmU7CisgICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpO
ZXZlckxpdmU7CiB9CiAKIC0gKF9XS0VkaXRhYmxlTGlua0JlaGF2aW9yKV9lZGl0YWJsZUxpbmtC
ZWhhdmlvcgpAQCAtNzc1LDcgKzc3NSw3IEBAIC0gKF9XS0VkaXRhYmxlTGlua0JlaGF2aW9yKV9l
ZGl0YWJsZUxpbmsKIAogLSAodm9pZClfc2V0RWRpdGFibGVMaW5rQmVoYXZpb3I6KF9XS0VkaXRh
YmxlTGlua0JlaGF2aW9yKWVkaXRhYmxlTGlua0JlaGF2aW9yCiB7Ci0gICAgX3ByZWZlcmVuY2Vz
LT5zZXRFZGl0YWJsZUxpbmtCZWhhdmlvcih0b0VkaXRhYmxlTGlua0JlaGF2aW9yKGVkaXRhYmxl
TGlua0JlaGF2aW9yKSk7CisgICAgX3ByZWZlcmVuY2VzLT5zZXRFZGl0YWJsZUxpbmtCZWhhdmlv
cihzdGF0aWNfY2FzdDx1aW50MzJfdD4odG9FZGl0YWJsZUxpbmtCZWhhdmlvcihlZGl0YWJsZUxp
bmtCZWhhdmlvcikpKTsKIH0KIAogLSAodm9pZClfc2V0QVZGb3VuZGF0aW9uRW5hYmxlZDooQk9P
TCllbmFibGVkCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCShyZXZp
c2lvbiAyNjk4NTYpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMiw3ICsxMjIs
NyBAQCB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjp1cGRhCiB7CiAgICAgV2Vi
UGFnZTo6dXBkYXRlUHJlZmVyZW5jZXNHZW5lcmF0ZWQoc3RvcmUpOwogCi0gICAgbV9zdG9yYWdl
QmxvY2tpbmdQb2xpY3kgPSBzdGF0aWNfY2FzdDxTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2Nr
aW5nUG9saWN5PihzdG9yZS5nZXRVSW50MzJWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6
c3RvcmFnZUJsb2NraW5nUG9saWN5S2V5KCkpKTsKKyAgICBtX3N0b3JhZ2VCbG9ja2luZ1BvbGlj
eSA9IHN0YXRpY19jYXN0PFN0b3JhZ2VCbG9ja2luZ1BvbGljeT4oc3RvcmUuZ2V0VUludDMyVmFs
dWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnN0b3JhZ2VCbG9ja2luZ1BvbGljeUtleSgpKSk7
CiAgICAgc2V0U2hvdWxkVXNlU2hvcnRUaW1lb3V0KHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShX
ZWJQcmVmZXJlbmNlc0tleTo6c2hvdWxkVXNlU2VydmljZVdvcmtlclNob3J0VGltZW91dEtleSgp
KSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaAkocmV2aXNpb24g
MjY5ODU2KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMTAyLDcgKzEwMiw3IEBAIHBy
aXZhdGU6CiAgICAgV2ViUGFnZVByb3h5SWRlbnRpZmllciBtX3dlYlBhZ2VQcm94eUlEOwogICAg
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIG1fcGFnZUlEOwogCi0gICAgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeSB7
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkFsbG93QWxs
U3RvcmFnZSB9OworICAgIFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBtX3N0b3JhZ2VC
bG9ja2luZ1BvbGljeSB7IFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QWxsb3dBbGwg
fTsKIAogICAgIEhhc2hTZXQ8c3RkOjp1bmlxdWVfcHRyPFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRl
ckNsaWVudD4+IG1fbG9hZGVyczsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBGaW5kQ2xpZW50QnlJ
ZGVudGlmaWVyQ2FsbGJhY2s+IG1fZmluZENsaWVudEJ5SWRlbnRpZmllclJlcXVlc3RzOwpJbmRl
eDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHJldmlz
aW9uIDI2OTg1NikKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNzM1LDcgKzM3MzUsNyBAQCB2b2lkIFdlYlBhZ2U6OnVw
ZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlCiAgICAgc2V0dGluZ3Muc2V0VXNlckludGVyZmFjZURp
cmVjdGlvblBvbGljeShzdGF0aWNfY2FzdDxXZWJDb3JlOjpVc2VySW50ZXJmYWNlRGlyZWN0aW9u
UG9saWN5PihzdG9yZS5nZXRVSW50MzJWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6dXNl
ckludGVyZmFjZURpcmVjdGlvblBvbGljeUtleSgpKSkpOwogICAgIHNldHRpbmdzLnNldFN5c3Rl
bUxheW91dERpcmVjdGlvbihzdGF0aWNfY2FzdDxUZXh0RGlyZWN0aW9uPihzdG9yZS5nZXRVSW50
MzJWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6c3lzdGVtTGF5b3V0RGlyZWN0aW9uS2V5
KCkpKSk7CiAgICAgc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFJ1bnRpbWVGbGFncyhzdGF0aWNfY2Fz
dDxSdW50aW1lRmxhZ3M+KHN0b3JlLmdldFVJbnQzMlZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2Vz
S2V5OjpqYXZhU2NyaXB0UnVudGltZUZsYWdzS2V5KCkpKSk7Ci0gICAgc2V0dGluZ3Muc2V0U3Rv
cmFnZUJsb2NraW5nUG9saWN5KHN0YXRpY19jYXN0PFNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxv
Y2tpbmdQb2xpY3k+KHN0b3JlLmdldFVJbnQzMlZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5
OjpzdG9yYWdlQmxvY2tpbmdQb2xpY3lLZXkoKSkpKTsKKyAgICBzZXR0aW5ncy5zZXRTdG9yYWdl
QmxvY2tpbmdQb2xpY3koc3RhdGljX2Nhc3Q8U3RvcmFnZUJsb2NraW5nUG9saWN5PihzdG9yZS5n
ZXRVSW50MzJWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6c3RvcmFnZUJsb2NraW5nUG9s
aWN5S2V5KCkpKSk7CiAgICAgc2V0dGluZ3Muc2V0RnJhbWVGbGF0dGVuaW5nKHN0b3JlLmdldEJv
b2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6ZnJhbWVGbGF0dGVuaW5nRW5hYmxlZEtl
eSgpKSA/IFdlYkNvcmU6OkZyYW1lRmxhdHRlbmluZzo6RnVsbHlFbmFibGVkIDogV2ViQ29yZTo6
RnJhbWVGbGF0dGVuaW5nOjpEaXNhYmxlZCk7CiAgICAgc2V0dGluZ3Muc2V0RWRpdGFibGVMaW5r
QmVoYXZpb3Ioc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I+KHN0b3Jl
LmdldFVJbnQzMlZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjplZGl0YWJsZUxpbmtCZWhh
dmlvcktleSgpKSkpOwogI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKQEAgLTM4MzYsNyArMzgz
Niw3IEBAIHZvaWQgV2ViUGFnZTo6cmVtb3ZlRGF0YURldGVjdGVkTGlua3MoQ28KIAogdm9pZCBX
ZWJQYWdlOjpkZXRlY3REYXRhSW5BbGxGcmFtZXModWludDY0X3QgdHlwZXMsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoY29uc3QgRGF0YURldGVjdGlvblJlc3VsdCYpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewotICAgIGF1dG8gZGF0YURldGVjdG9yVHlwZXMgPSBzdGF0aWNfY2FzdDxXZWJDb3Jl
OjpEYXRhRGV0ZWN0b3JUeXBlcz4odHlwZXMpOworICAgIGF1dG8gZGF0YURldGVjdG9yVHlwZXMg
PSBPcHRpb25TZXQ8RGF0YURldGVjdG9yVHlwZXM+Ojpmcm9tUmF3KHR5cGVzKTsKICAgICBmb3Ig
KGF1dG8gZnJhbWUgPSBtYWtlUmVmUHRyKCZtX3BhZ2UtPm1haW5GcmFtZSgpKTsgZnJhbWU7IGZy
YW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoKSkgewogICAgICAgICBhdXRvIGRvY3Vt
ZW50ID0gbWFrZVJlZlB0cihmcmFtZS0+ZG9jdW1lbnQoKSk7CiAgICAgICAgIGlmICghZG9jdW1l
bnQpCkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjk4NTYpCisr
KyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwxNSBAQAorMjAyMC0xMS0xNSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgU3RhbmRhcmRpemUgZW51bXMgdGhhdCBhcmUgdXNlZCBieSBTZXR0aW5ncyBpbiBw
cmVwZXJhdGlvbiBmb3IgYXV0b2dlbmVyYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODk2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBlbnVtIHVzZXMgZm9yIHJlbmFtZXMgYW5kIHNj
b3BlZCBzeW50YXggdXNlLgorCisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZS5tbToKKyAgICAg
ICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisKIDIwMjAtMTEtMTMgIFNhbSBXZWluaWcgIDx3ZWlu
aWdAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgc29tZSBtb3JlIFdlYktpdCBhbmQgV2ViS2l0
TGVnYWN5IHByZWZlcmVuY2VzIGJvdW5kIHRvIFNldHRpbmdzIHRvIFdlYlByZWZlcmVuY2VzLnlh
bWwKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQko
cmV2aXNpb24gMjY5ODU2KQorKysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJG
cmFtZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMjA3LDE4ICsyMDcsMTggQEAgV2ViQ29yZTo6RWRp
dGFibGVMaW5rQmVoYXZpb3IgY29yZShXZWJLaQogICAgIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogICAgIHN3aXRjaCAoZWRpdGFibGVMaW5rQmVoYXZpb3IpIHsKICAgICAgICAgY2FzZSBXZWJL
aXRFZGl0YWJsZUxpbmtEZWZhdWx0QmVoYXZpb3I6Ci0gICAgICAgICAgICByZXR1cm4gRWRpdGFi
bGVMaW5rRGVmYXVsdEJlaGF2aW9yOworICAgICAgICAgICAgcmV0dXJuIEVkaXRhYmxlTGlua0Jl
aGF2aW9yOjpEZWZhdWx0OwogICAgICAgICBjYXNlIFdlYktpdEVkaXRhYmxlTGlua0Fsd2F5c0xp
dmU6Ci0gICAgICAgICAgICByZXR1cm4gRWRpdGFibGVMaW5rQWx3YXlzTGl2ZTsKKyAgICAgICAg
ICAgIHJldHVybiBFZGl0YWJsZUxpbmtCZWhhdmlvcjo6QWx3YXlzTGl2ZTsKICAgICAgICAgY2Fz
ZSBXZWJLaXRFZGl0YWJsZUxpbmtPbmx5TGl2ZVdpdGhTaGlmdEtleToKLSAgICAgICAgICAgIHJl
dHVybiBFZGl0YWJsZUxpbmtPbmx5TGl2ZVdpdGhTaGlmdEtleTsKKyAgICAgICAgICAgIHJldHVy
biBFZGl0YWJsZUxpbmtCZWhhdmlvcjo6T25seUxpdmVXaXRoU2hpZnRLZXk7CiAgICAgICAgIGNh
c2UgV2ViS2l0RWRpdGFibGVMaW5rTGl2ZVdoZW5Ob3RGb2N1c2VkOgotICAgICAgICAgICAgcmV0
dXJuIEVkaXRhYmxlTGlua0xpdmVXaGVuTm90Rm9jdXNlZDsKKyAgICAgICAgICAgIHJldHVybiBF
ZGl0YWJsZUxpbmtCZWhhdmlvcjo6TGl2ZVdoZW5Ob3RGb2N1c2VkOwogICAgICAgICBjYXNlIFdl
YktpdEVkaXRhYmxlTGlua05ldmVyTGl2ZToKLSAgICAgICAgICAgIHJldHVybiBFZGl0YWJsZUxp
bmtOZXZlckxpdmU7CisgICAgICAgICAgICByZXR1cm4gRWRpdGFibGVMaW5rQmVoYXZpb3I6Ok5l
dmVyTGl2ZTsKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIEVk
aXRhYmxlTGlua0RlZmF1bHRCZWhhdmlvcjsKKyAgICByZXR1cm4gRWRpdGFibGVMaW5rQmVoYXZp
b3I6OkRlZmF1bHQ7CiB9CiAKIFdlYkNvcmU6OlRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9u
QmVoYXZpb3IgY29yZShXZWJUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yIGJl
aGF2aW9yKQpAQCAtMjI2LDE0ICsyMjYsMTQgQEAgV2ViQ29yZTo6VGV4dERpcmVjdGlvblN1Ym1l
bnVJbmNsdXNpb25CZQogICAgIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogICAgIHN3aXRjaCAo
YmVoYXZpb3IpIHsKICAgICAgICAgY2FzZSBXZWJUZXh0RGlyZWN0aW9uU3VibWVudU5ldmVySW5j
bHVkZWQ6Ci0gICAgICAgICAgICByZXR1cm4gVGV4dERpcmVjdGlvblN1Ym1lbnVOZXZlckluY2x1
ZGVkOworICAgICAgICAgICAgcmV0dXJuIFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVo
YXZpb3I6Ok5ldmVySW5jbHVkZWQ7CiAgICAgICAgIGNhc2UgV2ViVGV4dERpcmVjdGlvblN1Ym1l
bnVBdXRvbWF0aWNhbGx5SW5jbHVkZWQ6Ci0gICAgICAgICAgICByZXR1cm4gVGV4dERpcmVjdGlv
blN1Ym1lbnVBdXRvbWF0aWNhbGx5SW5jbHVkZWQ7CisgICAgICAgICAgICByZXR1cm4gVGV4dERp
cmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcjo6QXV0b21hdGljYWxseUluY2x1ZGVkOwog
ICAgICAgICBjYXNlIFdlYlRleHREaXJlY3Rpb25TdWJtZW51QWx3YXlzSW5jbHVkZWQ6Ci0gICAg
ICAgICAgICByZXR1cm4gVGV4dERpcmVjdGlvblN1Ym1lbnVBbHdheXNJbmNsdWRlZDsKKyAgICAg
ICAgICAgIHJldHVybiBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yOjpBbHdh
eXNJbmNsdWRlZDsKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJu
IFRleHREaXJlY3Rpb25TdWJtZW51TmV2ZXJJbmNsdWRlZDsKKyAgICByZXR1cm4gVGV4dERpcmVj
dGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcjo6TmV2ZXJJbmNsdWRlZDsKIH0KIAogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tCShyZXZpc2lvbiAyNjk4NTYpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTc1NSwxOSArNzU1LDE5IEBA
IHN0YXRpYyBXZWJQYWdlVmlzaWJpbGl0eVN0YXRlIGtpdChXZWJDb3IKICAgICByZXR1cm4gV2Vi
UGFnZVZpc2liaWxpdHlTdGF0ZVZpc2libGU7CiB9CiAKLXN0YXRpYyBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5IGNvcmUoV2ViU3RvcmFnZUJsb2NraW5nUG9s
aWN5IHN0b3JhZ2VCbG9ja2luZ1BvbGljeSkKK3N0YXRpYyBXZWJDb3JlOjpTdG9yYWdlQmxvY2tp
bmdQb2xpY3kgY29yZShXZWJTdG9yYWdlQmxvY2tpbmdQb2xpY3kgc3RvcmFnZUJsb2NraW5nUG9s
aWN5KQogewogICAgIHN3aXRjaCAoc3RvcmFnZUJsb2NraW5nUG9saWN5KSB7CiAgICAgY2FzZSBX
ZWJBbGxvd0FsbFN0b3JhZ2U6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bjo6QWxsb3dBbGxTdG9yYWdlOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6U3RvcmFnZUJsb2Nr
aW5nUG9saWN5OjpBbGxvd0FsbDsKICAgICBjYXNlIFdlYkJsb2NrVGhpcmRQYXJ0eVN0b3JhZ2U6
Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6QmxvY2tUaGlyZFBhcnR5
U3RvcmFnZTsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6
QmxvY2tUaGlyZFBhcnR5OwogICAgIGNhc2UgV2ViQmxvY2tBbGxTdG9yYWdlOgotICAgICAgICBy
ZXR1cm4gV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OkJsb2NrQWxsU3RvcmFnZTsKKyAgICAgICAg
cmV0dXJuIFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QmxvY2tBbGw7CiAgICAgZGVm
YXVsdDoKICAgICAgICAgLy8gSWYgYW4gaW52YWxpZCB2YWx1ZSB3YXMgc2V0IChhcyBjYW4gYmUg
ZG9uZSB2aWEgTlNVc2VyRGVmYXVsdHMpLCBmYWxsIGJhY2sgdG8KLSAgICAgICAgLy8gdGhlIGRl
ZmF1bHQgdmFsdWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpBbGxvd0FsbFN0b3JhZ2UuCi0g
ICAgICAgIHJldHVybiBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6QWxsb3dBbGxTdG9yYWdlOwor
ICAgICAgICAvLyB0aGUgZGVmYXVsdCB2YWx1ZSwgV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5nUG9s
aWN5OjpBbGxvd0FsbC4KKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1Bv
bGljeTo6QWxsb3dBbGw7CiAgICAgfQogfQogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjk4NTYpCisr
KyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw3MyBAQAor
MjAyMC0xMS0xNiAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAgU3Rh
bmRhcmRpemUgZW51bXMgdGhhdCBhcmUgdXNlZCBieSBTZXR0aW5ncyBpbiBwcmVwYXJhdGlvbiBm
b3IgYXV0b2dlbmVyYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxODk2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFVwZGF0ZSB0ZXN0cyBhbmQgcmVzdWx0cyBmb3IgY2hhbmdlIGluIEVkaXRpbmdC
YWhhdmlvciBlbnVtIHZhbHVlICJ3aW4iIC0+ICJ3aW5kb3dzIi4KKworICAgICAgICAqIGVkaXRp
bmcvZGVsZXRpbmcvZGVsZXRlLWxpZ2F0dXJlLTAwMy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
ZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1cmUtMDAzLmh0bWw6CisgICAgICAgICogZWRp
dGluZy9kZWxldGluZy9wYXJhZ3JhcGgtaW4tcHJlc2VydmVOZXdsaW5lLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBlZGl0aW5nL2RlbGV0aW5nL3BhcmFncmFwaC1pbi1wcmVzZXJ2ZU5ld2xpbmUu
aHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWVkaXRpbmctZGlzYWJsZWQt
d2luLmh0bWw6CisgICAgICAgICogZWRpdGluZy9kZWxldGluZy93aGl0ZXNwYWNlLXByZS0xLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBlZGl0aW5nL2RlbGV0aW5nL3doaXRlc3BhY2UtcHJlLTEu
aHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL3F1ZXJ5LWNvbW1hbmQtc3RhdGUt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvcXVlcnktY29tbWFu
ZC1zdGF0ZS5odG1sOgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvcXVlcnktdGV4dC1h
bGlnbm1lbnQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvcXVl
cnktdGV4dC1hbGlnbm1lbnQuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL3Jl
bW92ZS1mb3JtYXQtbXVsdGlwbGUtZWxlbWVudHMtd2luLmh0bWw6CisgICAgICAgICogZWRpdGlu
Zy9leGVjQ29tbWFuZC90b2dnbGUtY29tcG91bmQtc3R5bGVzLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL3RvZ2dsZS1jb21wb3VuZC1zdHlsZXMuaHRtbDoKKyAg
ICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL3RvZ2dsZS1saW5rLXdpbi5odG1sOgorICAgICAg
ICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvdG9nZ2xlLXVubGluay13aW4uaHRtbDoKKyAgICAgICAg
KiBlZGl0aW5nL3NlbGVjdGlvbi81MTk1MTY2LTEuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3Nl
bGVjdGlvbi81MzU0NDU1LTEuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9jbGlj
ay1pbi1tYXJnaW5zLWluc2lkZS1lZGl0YWJsZS1kaXYuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5n
L3NlbGVjdGlvbi9jbGljay1pbi1wYWRkaW5nLXdpdGgtbXVsdGlwbGUtbGluZS1ib3hlcy5odG1s
OgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2NvbnRleHQtbWVudS10ZXh0LXNlbGVjdGlv
bi1sb29rdXAuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9jb250ZXh0LW1lbnUt
dGV4dC1zZWxlY3Rpb24uaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQt
YWZ0ZXItbW91c2Utc2VsZWN0aW9uLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24v
ZXh0ZW5kLXNlbGVjdGlvbi1hZnRlci1kb3VibGUtY2xpY2suaHRtbDoKKyAgICAgICAgKiBlZGl0
aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWVuY2xvc2luZy1ibG9jay13aW4uaHRtbDoK
KyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gt
dGVzdC0xLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZp
c3VhbGx5LWNyYXNoLXRlc3QtMi5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL21v
dmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0LTMuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5n
L3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC00Lmh0bWw6CisgICAg
ICAgICogZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWNyYXNoLXRlc3Qt
NS5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxs
eS1jcmFzaC10ZXN0LWNzcy1nZW5lcmF0ZWQtY29udGVudC5odG1sOgorICAgICAgICAqIGVkaXRp
bmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0LXRleHRhcmVhLmh0
bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWlu
bGluZS1ibG9jay1wb3NpdGlvbmVkLWVsZW1lbnQuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3Nl
bGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktbXVsdGktbGluZS5odG1sOgorICAgICAgICAq
IGVkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1tdWx0aS1zcGFjZS5odG1s
OgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1udWxs
LWJveC5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1
YWxseS1zaW5nbGUtc3BhY2UtaW5saW5lLWVsZW1lbnQuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5n
L3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktc2luZ2xlLXNwYWNlLW9uZS1lbGVtZW50
Lmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5
LXRleHRhcmVhLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3Jk
LXZpc3VhbGx5LXdyb25nLWxlZnQtcmlnaHQuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVj
dGlvbi9wcm9ncmFtbWF0aWMtc2VsZWN0aW9uLW9uLW1hYy1pcy1kaXJlY3Rpb25sZXNzLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9wcm9ncmFtbWF0aWMtc2VsZWN0
aW9uLW9uLW1hYy1pcy1kaXJlY3Rpb25sZXNzLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxl
Y3Rpb24vcnRsLW1vdmUtc2VsZWN0aW9uLXJpZ2h0LWxlZnQuaHRtbDoKKyAgICAgICAgKiBlZGl0
aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tZXh0ZW5kLXNob3VsZC1ub3QtbW92ZS1hY3Jvc3MtY2Fy
ZXQtb24tbWFjLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9zZWxl
Y3Rpb24tZXh0ZW5kLXNob3VsZC1ub3QtbW92ZS1hY3Jvc3MtY2FyZXQtb24tbWFjLmh0bWw6Cisg
ICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vc2hpZnQtY2xpY2suaHRtbDoKKyAgICAgICAgKiBl
ZGl0aW5nL3NlbGVjdGlvbi91c2VyLXNlbGVjdC1hbGwtd2l0aC1zaGlmdC1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vdXNlci1zZWxlY3QtYWxsLXdpdGgtc2hpZnQu
aHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NwZWxsaW5nL2NvcHktcGFzdGUtY3Jhc2guaHRtbDoK
KyAgICAgICAgKiBlZGl0aW5nL3N0eWxlL2lmcmFtZS1vbmxvYWQtY3Jhc2gtd2luLmh0bWw6Cisg
ICAgICAgICogZWRpdGluZy9zdHlsZS9tYWtlLXRleHQtd3JpdGluZy1kaXJlY3Rpb24taW5saW5l
LXdpbi5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc3R5bGUvcHVzaC1kb3duLWZvbnQtc3R5bGVz
LXdpbi5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc3R5bGUvcHVzaC1kb3duLWltcGxpY2l0LXN0
eWxlcy1hcm91bmQtbGlzdC13aW4uaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3N0eWxlL3RvZ2ds
ZS1zdHlsZS1ib2xkLWl0YWxpYy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZWRpdGluZy9zdHls
ZS90b2dnbGUtc3R5bGUtYm9sZC1pdGFsaWMtbWl4ZWQtZWRpdGFiaWxpdHktZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGVkaXRpbmcvc3R5bGUvdG9nZ2xlLXN0eWxlLWJvbGQtaXRhbGljLW1peGVk
LWVkaXRhYmlsaXR5Lmh0bWw6CisgICAgICAgICogZWRpdGluZy9zdHlsZS90b2dnbGUtc3R5bGUt
Ym9sZC1pdGFsaWMuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9iYWNrc3BhY2UtbmF2aWdh
dGVzLWJhY2suaHRtbDoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL3NlbGVjdGlvbi1kaXJlY3Rpb24t
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZm9ybXMvc2VsZWN0aW9uLWRpcmVjdGlvbi5o
dG1sOgorCiAyMDIwLTExLTE2ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgYW5kIHJlLWFkZCBmYXN0L2Zvcm1zL3NlbGVjdGlvbi1kaXJlY3Rpb24uaHRt
bCB3aXRob3V0IENScwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUt
bGlnYXR1cmUtMDAzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0
aW5nL2RlbGV0aW5nL2RlbGV0ZS1saWdhdHVyZS0wMDMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAy
Njk4NTYpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1saWdhdHVyZS0w
MDMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zMSw1ICszMSw1IEBAIElmIHRoaXMg
dGVzdCBzdWNjZWVkcywgeW91IGNhbiBzZWUgIuC4p+AKIAog4Lin4LixCiBTdWNjZWVkZWQgZm9y
IG1hYwotU3VjY2VlZGVkIGZvciB3aW4KK1N1Y2NlZWRlZCBmb3Igd2luZG93cwogU3VjY2VlZGVk
IGZvciB1bml4CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1saWdh
dHVyZS0wMDMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5n
L2RlbGV0ZS1saWdhdHVyZS0wMDMuaHRtbAkocmV2aXNpb24gMjY5ODU2KQorKysgTGF5b3V0VGVz
dHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1cmUtMDAzLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTMxLDcgKzMxLDcgQEAKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
ICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgICAgIHJ1
blRlc3RPbigibWFjIik7Ci0gICAgICAgICAgICBydW5UZXN0T24oIndpbiIpOworICAgICAgICAg
ICAgcnVuVGVzdE9uKCJ3aW5kb3dzIik7CiAgICAgICAgICAgICBydW5UZXN0T24oInVuaXgiKTsK
ICAgICAgICAgfQogICAgICAgICA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcv
ZGVsZXRpbmcvcGFyYWdyYXBoLWluLXByZXNlcnZlTmV3bGluZS1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9wYXJhZ3JhcGgtaW4tcHJlc2Vy
dmVOZXdsaW5lLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjY5ODU2KQorKysgTGF5b3V0VGVzdHMv
ZWRpdGluZy9kZWxldGluZy9wYXJhZ3JhcGgtaW4tcHJlc2VydmVOZXdsaW5lLWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtNTIsMTIgKzUyLDEyIEBAIGFmdGVyIHVuZG8gb24gbWFjOgog
fCAgICI8I3NlbGVjdGlvbi1hbmNob3I+Zm9vPCNzZWxlY3Rpb24tZm9jdXM+CiBiYXIiCiAKLW9u
IHdpbjoKK29uIHdpbmRvd3M6CiB8IDxwcmU+CiB8ICAgIjwjc2VsZWN0aW9uLWNhcmV0PgogYmFy
IgogCi1hZnRlciB1bmRvIG9uIHdpbjoKK2FmdGVyIHVuZG8gb24gd2luZG93czoKIHwgPHByZT4K
IHwgICAiPCNzZWxlY3Rpb24tYW5jaG9yPmZvbzwjc2VsZWN0aW9uLWZvY3VzPgogYmFyIgpJbmRl
eDogTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9wYXJhZ3JhcGgtaW4tcHJlc2VydmVOZXds
aW5lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9wYXJh
Z3JhcGgtaW4tcHJlc2VydmVOZXdsaW5lLmh0bWwJKHJldmlzaW9uIDI2OTg1NikKKysrIExheW91
dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvcGFyYWdyYXBoLWluLXByZXNlcnZlTmV3bGluZS5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
IE1hcmt1cC5kZXNjcmlwdGlvbihkZXNjcmlwdGlvbi50ZXh0Q29udGVudCk7CiBNYXJrdXAuZHVt
cCgidGVzdCIsICJpbml0aWFsIHN0YXRlIik7CiBydW5UZXN0c09uKCJtYWMiKTsKLXJ1blRlc3Rz
T24oIndpbiIpOworcnVuVGVzdHNPbigid2luZG93cyIpOwogcnVuVGVzdHNPbigidW5peCIpOwog
PC9zY3JpcHQ+CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3Nt
YXJ0LWVkaXRpbmctZGlzYWJsZWQtd2luLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZWRpdGluZy9kZWxldGluZy9zbWFydC1lZGl0aW5nLWRpc2FibGVkLXdpbi5odG1sCShyZXZpc2lv
biAyNjk4NTYpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWVkaXRpbmct
ZGlzYWJsZWQtd2luLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTgsNyArOCw3IEBAIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgewogICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKHRydWUpOwogfQogaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luJyk7CisgICAgaW50ZXJu
YWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luZG93cycpOwogCiBmdW5jdGlvbiBl
ZGl0aW5nVGVzdCgpIHsKICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRp
diIpOwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy93aGl0ZXNwYWNlLXByZS0x
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5n
L3doaXRlc3BhY2UtcHJlLTEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNjk4NTYpCisrKyBMYXlv
dXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3doaXRlc3BhY2UtcHJlLTEtZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC00NiwxMiArNDYsMTIgQEAgYWZ0ZXIgdW5kbyBvbiBtYWM6CiBUaGVy
ZSBzaG91bGQgYmUgdGhyZWUgcGFyYWdyYXBocyBpbiB0aGlzIGVkaXRhYmxlIHJlZ2lvbi4KIFRo
ZSBmaXJzdCBvbmUgc2hvdWxkIGJlIGVtcHR5LiIKIAotb24gd2luOgorb24gd2luZG93czoKIHwg
Ijwjc2VsZWN0aW9uLWNhcmV0PgogVGhlcmUgc2hvdWxkIGJlIHRocmVlIHBhcmFncmFwaHMgaW4g
dGhpcyBlZGl0YWJsZSByZWdpb24uCiBUaGUgZmlyc3Qgb25lIHNob3VsZCBiZSBlbXB0eS4iCiAK
LWFmdGVyIHVuZG8gb24gd2luOgorYWZ0ZXIgdW5kbyBvbiB3aW5kb3dzOgogfCAiPCNzZWxlY3Rp
b24tYW5jaG9yPllvdSBzaG91bGQgbm90IHNlZSB0aGlzIHBhcmFncmFwaCB1bmxlc3MgdGhlIGNv
bW1hbmQgaGFzIGJlZW4gdW5kb25lLjwjc2VsZWN0aW9uLWZvY3VzPgogVGhlcmUgc2hvdWxkIGJl
IHRocmVlIHBhcmFncmFwaHMgaW4gdGhpcyBlZGl0YWJsZSByZWdpb24uCiBUaGUgZmlyc3Qgb25l
IHNob3VsZCBiZSBlbXB0eS4iCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3do
aXRlc3BhY2UtcHJlLTEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2Rl
bGV0aW5nL3doaXRlc3BhY2UtcHJlLTEuaHRtbAkocmV2aXNpb24gMjY5ODU2KQorKysgTGF5b3V0
VGVzdHMvZWRpdGluZy9kZWxldGluZy93aGl0ZXNwYWNlLXByZS0xLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTI2LDYgKzI2LDYgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogTWFya3VwLmRlc2Ny
aXB0aW9uKGRlc2NyaXB0aW9uLnRleHRDb250ZW50KTsKIE1hcmt1cC5kdW1wKCJ0ZXN0IiwgImlu
aXRpYWwgc3RhdGUiKTsKIHJ1blRlc3RzT24oIm1hYyIpOwotcnVuVGVzdHNPbigid2luIik7City
dW5UZXN0c09uKCJ3aW5kb3dzIik7CiBydW5UZXN0c09uKCJ1bml4Iik7CiA8L3NjcmlwdD4KSW5k
ZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvcXVlcnktY29tbWFuZC1zdGF0ZS1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFu
ZC9xdWVyeS1jb21tYW5kLXN0YXRlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjY5ODU2KQorKysg
TGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9xdWVyeS1jb21tYW5kLXN0YXRlLWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMyw3ICszLDcgQEAgVGVzdCB0byBtYWtlIHN1cmUg
cXVlcnlDb21tYW5kU3RhdGUgcmV0dQogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVRl
c3RzIGZvciB3aW4KK1Rlc3RzIGZvciB3aW5kb3dzCiBQQVNTIHF1ZXJ5Q29tbWFuZFN0YXRlKCJi
b2xkIikgcmV0dXJucyBmYWxzZSB3aGVuIHNlbGVjdGluZyBhbGwgb2YgImhlbGxvIgogUEFTUyBx
dWVyeUNvbW1hbmRTdGF0ZSgiYm9sZCIpIHJldHVybnMgZmFsc2Ugd2hlbiBzZWxlY3RpbmcgYWxs
IG9mICI8aT5oZWxsbzwvaT4iCiBQQVNTIHF1ZXJ5Q29tbWFuZFN0YXRlKCJib2xkIikgcmV0dXJu
cyB0cnVlIHdoZW4gc2VsZWN0aW5nIGFsbCBvZiAiPGI+aGVsbG88L2I+IgpJbmRleDogTGF5b3V0
VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9xdWVyeS1jb21tYW5kLXN0YXRlLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9xdWVyeS1jb21tYW5kLXN0
YXRlLmh0bWwJKHJldmlzaW9uIDI2OTg1NikKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0Nv
bW1hbmQvcXVlcnktY29tbWFuZC1zdGF0ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01NSw2OSAr
NTUsNjkgQEAgZnVuY3Rpb24gcnVuVGVzdHMoZWRpdGluZ0JlaGF2aW9yKSB7CiAgICAgICAgIGlu
dGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoZWRpdGluZ0JlaGF2aW9yKTsKICAg
ICBkZWJ1ZygnVGVzdHMgZm9yICcgKyBlZGl0aW5nQmVoYXZpb3IpCiAKLSAgICB0ZXN0UXVlcnlD
b21tYW5kU3RhdGUoImJvbGQiLCAnaGVsbG8nLCBzZWxlY3RBbGwsIHsnbWFjJzogZmFsc2UsICd3
aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRl
KCJib2xkIiwgJzxpPmhlbGxvPC9pPicsIHNlbGVjdEFsbCwgeydtYWMnOiBmYWxzZSwgJ3dpbic6
IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoImJv
bGQiLCAnPGI+aGVsbG88L2I+Jywgc2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW4nOiB0cnVl
fVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoImJvbGQiLCAn
aGVsbG8gPGI+d29ybGQ8L2I+Jywgc2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2luJzogZmFs
c2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiYm9sZCIs
ICc8Yj5oZWxsbzwvYj4gd29ybGQnLCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dpbic6IGZh
bHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoImJvbGQi
LCAnaGVsbG8gPGI+d29ybGQ8L2I+IFdlYktpdCcsIHNlbGVjdFNlY29uZFdvcmQsIHsnbWFjJzog
dHJ1ZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlDb21t
YW5kU3RhdGUoImJvbGQiLCAnPGI+aGVsbG88L2I+IHdvcmxkIDxiPldlYktpdDwvYj4nLCBzZWxl
Y3RTZWNvbmRXb3JkLCB7J21hYyc6IGZhbHNlLCAnd2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlv
cl0pOwotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiYm9sZCIsICc8aT5oZWxsbyA8Yj5oZWxs
bzwvYj4gV2ViS2l0PC9pPicsIHNlbGVjdFNlY29uZFdvcmQsIHsnbWFjJzogdHJ1ZSwgJ3dpbic6
IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoImJv
bGQiLCAnPGI+aGVsbG8gPGk+aGVsbG88L2k+IFdlYktpdDwvYj4nLCBzZWxlY3RTZWNvbmRXb3Jk
LCB7J21hYyc6IHRydWUsICd3aW4nOiB0cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0
UXVlcnlDb21tYW5kU3RhdGUoImJvbGQiLCAnPGI+PGRpdj5oZWxsbyA8aT5oZWxsbzwvaT4gV2Vi
S2l0PC9kaXY+PC9iPicsIHNlbGVjdFNlY29uZFdvcmQsIHsnbWFjJzogdHJ1ZSwgJ3dpbic6IHRy
dWV9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiYm9sZCIs
ICc8YiBzdHlsZT0iZm9udC13ZWlnaHQ6IG5vcm1hbDsiPmhlbGxvPC9iPicsIHNlbGVjdEFsbCwg
eydtYWMnOiBmYWxzZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0
UXVlcnlDb21tYW5kU3RhdGUoImJvbGQiLCAnPGkgc3R5bGU9ImZvbnQtd2VpZ2h0OiBib2xkOyI+
aGVsbG88L2k+Jywgc2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW4nOiB0cnVlfVtlZGl0aW5n
QmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoImJvbGQiLCAnPGI+aGVsbG88
L2I+IHdvcmxkIDxiPldlYktpdDwvYj4nLCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dpbic6
IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoImJv
bGQiLCAnPGI+aGVsbG88L2I+PGI+IHdvcmxkPC9iPicsIHNlbGVjdEFsbCwgeydtYWMnOiB0cnVl
LCAnd2luJzogdHJ1ZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0
YXRlKCJib2xkIiwgJzxkaXY+PGI+aGVsbG88L2I+PC9kaXY+PHA+PGI+IFdlYktpdDwvYj48L3A+
Jywgc2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW4nOiB0cnVlfVtlZGl0aW5nQmVoYXZpb3Jd
KTsKLQotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiaXRhbGljIiwgJ2hlbGxvJywgc2VsZWN0
QWxsLCB7J21hYyc6IGZhbHNlLCAnd2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAg
IHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiaXRhbGljIiwgJzxiPmhlbGxvPC9iPicsIHNlbGVjdEFs
bCwgeydtYWMnOiBmYWxzZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0
ZXN0UXVlcnlDb21tYW5kU3RhdGUoIml0YWxpYyIsICc8aT5oZWxsbzwvaT4nLCBzZWxlY3RBbGws
IHsnbWFjJzogdHJ1ZSwgJ3dpbic6IHRydWV9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RR
dWVyeUNvbW1hbmRTdGF0ZSgiaXRhbGljIiwgJzxpPmhlbGxvPC9pPiB3b3JsZCcsIHNlbGVjdEFs
bCwgeydtYWMnOiB0cnVlLCAnd2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRl
c3RRdWVyeUNvbW1hbmRTdGF0ZSgiaXRhbGljIiwgJ2hlbGxvIDxpPndvcmxkPC9pPicsIHNlbGVj
dEFsbCwgeydtYWMnOiBmYWxzZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAg
ICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoIml0YWxpYyIsICc8aT48ZGl2PmhlbGxvIHdvcmxkPC9k
aXY+PC9pPicsIHNlbGVjdEFsbCwgeydtYWMnOiB0cnVlLCAnd2luJzogdHJ1ZX1bZWRpdGluZ0Jl
aGF2aW9yXSk7Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJpdGFsaWMiLCAnPGRpdiBzdHls
ZT0iZm9udC1zdHlsZTogaXRhbGljIj5oZWxsbyA8c3BhbiBzdHlsZT0iZm9udC1zdHlsZTogbm9y
bWFsOyI+aGVsbG88L3NwYW4+PC9kaXY+Jywgc2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW4n
OiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0KLSAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUo
InN1YnNjcmlwdCIsICdoZWxsbycsIHNlbGVjdEFsbCwgeydtYWMnOiBmYWxzZSwgJ3dpbic6IGZh
bHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN1YnNj
cmlwdCIsICc8c3VwPmhlbGxvPC9zdXA+Jywgc2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2lu
JzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgi
c3Vic2NyaXB0IiwgJzxzdWI+aGVsbG88L3N1Yj4nLCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwg
J3dpbic6IHRydWV9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0
ZSgic3Vic2NyaXB0IiwgJzxzdWI+aGVsbG88L3N1Yj4gd29ybGQnLCBzZWxlY3RBbGwsIHsnbWFj
JzogdHJ1ZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlD
b21tYW5kU3RhdGUoInN1YnNjcmlwdCIsICdoZWxsbyA8c3ViPndvcmxkPC9zdWI+Jywgc2VsZWN0
QWxsLCB7J21hYyc6IGZhbHNlLCAnd2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAg
IHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3Vic2NyaXB0IiwgJ2hlbGxvIDxzcGFuIHN0eWxlPSJ2
ZXJ0aWNhbC1hbGlnbjogc3ViOyI+d29ybGQ8L3NwYW4+IFdlYktpdCcsIHNlbGVjdFNlY29uZFdv
cmQsIHsnbWFjJzogdHJ1ZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLQotICAg
IHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3VwZXJzY3JpcHQiLCAnaGVsbG8nLCBzZWxlY3RBbGws
IHsnbWFjJzogZmFsc2UsICd3aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAgdGVz
dFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdXBlcnNjcmlwdCIsICc8c3ViPmhlbGxvPC9zdWI+Jywgc2Vs
ZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwot
ICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3VwZXJzY3JpcHQiLCAnPHN1cD5oZWxsbzwvc3Vw
PicsIHNlbGVjdEFsbCwgeydtYWMnOiB0cnVlLCAnd2luJzogdHJ1ZX1bZWRpdGluZ0JlaGF2aW9y
XSk7Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdXBlcnNjcmlwdCIsICc8c3VwPmhlbGxv
PC9zdXA+IHdvcmxkJywgc2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW4nOiBmYWxzZX1bZWRp
dGluZ0JlaGF2aW9yXSk7Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdXBlcnNjcmlwdCIs
ICdoZWxsbyA8c3VwPndvcmxkPC9zdXA+Jywgc2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2lu
JzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgi
c3VwZXJzY3JpcHQiLCAnPHNwYW4gc3R5bGU9InZlcnRpY2FsLWFsaWduOiBzdXBlcjsiPmhlbGxv
PC9zcGFuPjxzcGFuIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogc3ViOyI+d29ybGQ8L3NwYW4+Jywg
c2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7
Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdXBlcnNjcmlwdCIsICdoZWxsbzxzcGFuIHN0
eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogc3VwZXI7Ij53b3JsZDwvc3Bhbj4nLCBzZWxlY3RBbGwsIHsn
bWFjJzogZmFsc2UsICd3aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0KLSAgICB0ZXN0
UXVlcnlDb21tYW5kU3RhdGUoInVuZGVybGluZSIsICdoZWxsbycsIHNlbGVjdEFsbCwgeydtYWMn
OiBmYWxzZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlD
b21tYW5kU3RhdGUoInVuZGVybGluZSIsICc8cz5oZWxsbzwvcz4nLCBzZWxlY3RBbGwsIHsnbWFj
JzogZmFsc2UsICd3aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAgdGVzdFF1ZXJ5
Q29tbWFuZFN0YXRlKCJ1bmRlcmxpbmUiLCAnPHU+aGVsbG88L3U+Jywgc2VsZWN0QWxsLCB7J21h
Yyc6IHRydWUsICd3aW4nOiB0cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlD
b21tYW5kU3RhdGUoInVuZGVybGluZSIsICc8dT5oZWxsbzwvdT4gd29ybGQnLCBzZWxlY3RBbGws
IHsnbWFjJzogdHJ1ZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0
UXVlcnlDb21tYW5kU3RhdGUoInVuZGVybGluZSIsICdoZWxsbyA8dT53b3JsZDwvdT4nLCBzZWxl
Y3RBbGwsIHsnbWFjJzogZmFsc2UsICd3aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0g
ICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJ1bmRlcmxpbmUiLCAnPHU+PGRpdj5oZWxsbyB3b3Js
ZDwvZGl2PjwvdT4nLCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dpbic6IHRydWV9W2VkaXRp
bmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgidW5kZXJsaW5lIiwgJzx1
PjxzPjxkaXY+aGVsbG8gd29ybGQgV2ViS2l0PC9kaXY+PC9zPjwvdT4nLCBzZWxlY3RTZWNvbmRX
b3JkLCB7J21hYyc6IHRydWUsICd3aW4nOiB0cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0
ZXN0UXVlcnlDb21tYW5kU3RhdGUoInVuZGVybGluZSIsICc8cz48dT5oZWxsbzwvdT4gd29ybGQ8
L3M+IFdlYktpdCcsIHNlbGVjdFNlY29uZFdvcmQsIHsnbWFjJzogZmFsc2UsICd3aW4nOiBmYWxz
ZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJ1bmRlcmxp
bmUiLCAnPHU+PHM+aGVsbG88L3M+IHdvcmxkPC91PiBXZWJLaXQnLCBzZWxlY3RTZWNvbmRXb3Jk
LCB7J21hYyc6IHRydWUsICd3aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAgdGVz
dFF1ZXJ5Q29tbWFuZFN0YXRlKCJ1bmRlcmxpbmUiLCAnPHM+aGVsbG8gPHU+d29ybGQ8L3M+IFdl
YktpdDwvdT4nLCBzZWxlY3RTZWNvbmRXb3JkLCB7J21hYyc6IHRydWUsICd3aW4nOiB0cnVlfVtl
ZGl0aW5nQmVoYXZpb3JdKTsKLQotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3RyaWtlVGhy
b3VnaCIsICdoZWxsbycsIHNlbGVjdEFsbCwgeydtYWMnOiBmYWxzZSwgJ3dpbic6IGZhbHNlfVtl
ZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN0cmlrZVRocm91
Z2giLCAnPHU+aGVsbG88L3U+Jywgc2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2luJzogZmFs
c2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3RyaWtl
VGhyb3VnaCIsICc8cz5oZWxsbzwvcz4nLCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dpbic6
IHRydWV9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3Ry
aWtlVGhyb3VnaCIsICc8cz5oZWxsbzwvcz4gd29ybGQnLCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1
ZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0ZXN0UXVlcnlDb21tYW5k
U3RhdGUoInN0cmlrZVRocm91Z2giLCAnaGVsbG8gPHM+d29ybGQ8L3M+Jywgc2VsZWN0QWxsLCB7
J21hYyc6IGZhbHNlLCAnd2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RR
dWVyeUNvbW1hbmRTdGF0ZSgic3RyaWtlVGhyb3VnaCIsICc8cz48ZGl2PmhlbGxvIHdvcmxkPC9k
aXY+PC9zPicsIHNlbGVjdEFsbCwgeydtYWMnOiB0cnVlLCAnd2luJzogdHJ1ZX1bZWRpdGluZ0Jl
aGF2aW9yXSk7Ci0gICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdHJpa2VUaHJvdWdoIiwgJzxz
Pjx1PjxkaXY+aGVsbG8gd29ybGQgV2ViS2l0PC9kaXY+PC91Pjwvcz4nLCBzZWxlY3RTZWNvbmRX
b3JkLCB7J21hYyc6IHRydWUsICd3aW4nOiB0cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICB0
ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN0cmlrZVRocm91Z2giLCAnPHU+PHM+aGVsbG88L3M+IHdv
cmxkPC91PiBXZWJLaXQnLCBzZWxlY3RTZWNvbmRXb3JkLCB7J21hYyc6IGZhbHNlLCAnd2luJzog
ZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwotICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3Ry
aWtlVGhyb3VnaCIsICdoZWxsbyA8cz53b3JsZCBXZWJLaXQ8L3M+Jywgc2VsZWN0U2Vjb25kV29y
ZCwgeydtYWMnOiB0cnVlLCAnd2luJzogdHJ1ZX1bZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAgdGVz
dFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdHJpa2VUaHJvdWdoIiwgJ2hlbGxvIDxzPndvcmxkIFdlYktp
dDwvcz4nLCBzZWxlY3RGaXJzdFR3b1dvcmRzLCB7J21hYyc6IGZhbHNlLCAnd2luJzogdHJ1ZX1b
ZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJib2xkIiwgJ2hl
bGxvJywgc2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2luZG93cyc6IGZhbHNlfVtlZGl0aW5n
QmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoImJvbGQiLCAnPGk+aGVsbG88
L2k+Jywgc2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2luZG93cyc6IGZhbHNlfVtlZGl0aW5n
QmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoImJvbGQiLCAnPGI+aGVsbG88
L2I+Jywgc2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW5kb3dzJzogdHJ1ZX1bZWRpdGluZ0Jl
aGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJib2xkIiwgJ2hlbGxvIDxiPndv
cmxkPC9iPicsIHNlbGVjdEFsbCwgeydtYWMnOiBmYWxzZSwgJ3dpbmRvd3MnOiBmYWxzZX1bZWRp
dGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJib2xkIiwgJzxiPmhl
bGxvPC9iPiB3b3JsZCcsIHNlbGVjdEFsbCwgeydtYWMnOiB0cnVlLCAnd2luZG93cyc6IGZhbHNl
fVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoImJvbGQiLCAn
aGVsbG8gPGI+d29ybGQ8L2I+IFdlYktpdCcsIHNlbGVjdFNlY29uZFdvcmQsIHsnbWFjJzogdHJ1
ZSwgJ3dpbmRvd3MnOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29t
bWFuZFN0YXRlKCJib2xkIiwgJzxiPmhlbGxvPC9iPiB3b3JsZCA8Yj5XZWJLaXQ8L2I+Jywgc2Vs
ZWN0U2Vjb25kV29yZCwgeydtYWMnOiBmYWxzZSwgJ3dpbmRvd3MnOiBmYWxzZX1bZWRpdGluZ0Jl
aGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJib2xkIiwgJzxpPmhlbGxvIDxi
PmhlbGxvPC9iPiBXZWJLaXQ8L2k+Jywgc2VsZWN0U2Vjb25kV29yZCwgeydtYWMnOiB0cnVlLCAn
d2luZG93cyc6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5k
U3RhdGUoImJvbGQiLCAnPGI+aGVsbG8gPGk+aGVsbG88L2k+IFdlYktpdDwvYj4nLCBzZWxlY3RT
ZWNvbmRXb3JkLCB7J21hYyc6IHRydWUsICd3aW5kb3dzJzogdHJ1ZX1bZWRpdGluZ0JlaGF2aW9y
XSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJib2xkIiwgJzxiPjxkaXY+aGVsbG8gPGk+
aGVsbG88L2k+IFdlYktpdDwvZGl2PjwvYj4nLCBzZWxlY3RTZWNvbmRXb3JkLCB7J21hYyc6IHRy
dWUsICd3aW5kb3dzJzogdHJ1ZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29t
bWFuZFN0YXRlKCJib2xkIiwgJzxiIHN0eWxlPSJmb250LXdlaWdodDogbm9ybWFsOyI+aGVsbG88
L2I+Jywgc2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2luZG93cyc6IGZhbHNlfVtlZGl0aW5n
QmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoImJvbGQiLCAnPGkgc3R5bGU9
ImZvbnQtd2VpZ2h0OiBib2xkOyI+aGVsbG88L2k+Jywgc2VsZWN0QWxsLCB7J21hYyc6IHRydWUs
ICd3aW5kb3dzJzogdHJ1ZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFu
ZFN0YXRlKCJib2xkIiwgJzxiPmhlbGxvPC9iPiB3b3JsZCA8Yj5XZWJLaXQ8L2I+Jywgc2VsZWN0
QWxsLCB7J21hYyc6IHRydWUsICd3aW5kb3dzJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOwor
ICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiYm9sZCIsICc8Yj5oZWxsbzwvYj48Yj4gd29ybGQ8
L2I+Jywgc2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW5kb3dzJzogdHJ1ZX1bZWRpdGluZ0Jl
aGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJib2xkIiwgJzxkaXY+PGI+aGVs
bG88L2I+PC9kaXY+PHA+PGI+IFdlYktpdDwvYj48L3A+Jywgc2VsZWN0QWxsLCB7J21hYyc6IHRy
dWUsICd3aW5kb3dzJzogdHJ1ZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisKKyAgICB0ZXN0UXVlcnlD
b21tYW5kU3RhdGUoIml0YWxpYyIsICdoZWxsbycsIHNlbGVjdEFsbCwgeydtYWMnOiBmYWxzZSwg
J3dpbmRvd3MnOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFu
ZFN0YXRlKCJpdGFsaWMiLCAnPGI+aGVsbG88L2I+Jywgc2VsZWN0QWxsLCB7J21hYyc6IGZhbHNl
LCAnd2luZG93cyc6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21t
YW5kU3RhdGUoIml0YWxpYyIsICc8aT5oZWxsbzwvaT4nLCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1
ZSwgJ3dpbmRvd3MnOiB0cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21t
YW5kU3RhdGUoIml0YWxpYyIsICc8aT5oZWxsbzwvaT4gd29ybGQnLCBzZWxlY3RBbGwsIHsnbWFj
JzogdHJ1ZSwgJ3dpbmRvd3MnOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1
ZXJ5Q29tbWFuZFN0YXRlKCJpdGFsaWMiLCAnaGVsbG8gPGk+d29ybGQ8L2k+Jywgc2VsZWN0QWxs
LCB7J21hYyc6IGZhbHNlLCAnd2luZG93cyc6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAg
ICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoIml0YWxpYyIsICc8aT48ZGl2PmhlbGxvIHdvcmxkPC9k
aXY+PC9pPicsIHNlbGVjdEFsbCwgeydtYWMnOiB0cnVlLCAnd2luZG93cyc6IHRydWV9W2VkaXRp
bmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiaXRhbGljIiwgJzxkaXYg
c3R5bGU9ImZvbnQtc3R5bGU6IGl0YWxpYyI+aGVsbG8gPHNwYW4gc3R5bGU9ImZvbnQtc3R5bGU6
IG5vcm1hbDsiPmhlbGxvPC9zcGFuPjwvZGl2PicsIHNlbGVjdEFsbCwgeydtYWMnOiB0cnVlLCAn
d2luZG93cyc6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKworICAgIHRlc3RRdWVyeUNvbW1h
bmRTdGF0ZSgic3Vic2NyaXB0IiwgJ2hlbGxvJywgc2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAn
d2luZG93cyc6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5k
U3RhdGUoInN1YnNjcmlwdCIsICc8c3VwPmhlbGxvPC9zdXA+Jywgc2VsZWN0QWxsLCB7J21hYyc6
IGZhbHNlLCAnd2luZG93cyc6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVl
cnlDb21tYW5kU3RhdGUoInN1YnNjcmlwdCIsICc8c3ViPmhlbGxvPC9zdWI+Jywgc2VsZWN0QWxs
LCB7J21hYyc6IHRydWUsICd3aW5kb3dzJzogdHJ1ZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAg
dGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdWJzY3JpcHQiLCAnPHN1Yj5oZWxsbzwvc3ViPiB3b3Js
ZCcsIHNlbGVjdEFsbCwgeydtYWMnOiB0cnVlLCAnd2luZG93cyc6IGZhbHNlfVtlZGl0aW5nQmVo
YXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN1YnNjcmlwdCIsICdoZWxsbyA8
c3ViPndvcmxkPC9zdWI+Jywgc2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2luZG93cyc6IGZh
bHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN1YnNj
cmlwdCIsICdoZWxsbyA8c3BhbiBzdHlsZT0idmVydGljYWwtYWxpZ246IHN1YjsiPndvcmxkPC9z
cGFuPiBXZWJLaXQnLCBzZWxlY3RTZWNvbmRXb3JkLCB7J21hYyc6IHRydWUsICd3aW5kb3dzJzog
ZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOworCisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJz
dXBlcnNjcmlwdCIsICdoZWxsbycsIHNlbGVjdEFsbCwgeydtYWMnOiBmYWxzZSwgJ3dpbmRvd3Mn
OiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJz
dXBlcnNjcmlwdCIsICc8c3ViPmhlbGxvPC9zdWI+Jywgc2VsZWN0QWxsLCB7J21hYyc6IGZhbHNl
LCAnd2luZG93cyc6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21t
YW5kU3RhdGUoInN1cGVyc2NyaXB0IiwgJzxzdXA+aGVsbG88L3N1cD4nLCBzZWxlY3RBbGwsIHsn
bWFjJzogdHJ1ZSwgJ3dpbmRvd3MnOiB0cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0
UXVlcnlDb21tYW5kU3RhdGUoInN1cGVyc2NyaXB0IiwgJzxzdXA+aGVsbG88L3N1cD4gd29ybGQn
LCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dpbmRvd3MnOiBmYWxzZX1bZWRpdGluZ0JlaGF2
aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdXBlcnNjcmlwdCIsICdoZWxsbyA8
c3VwPndvcmxkPC9zdXA+Jywgc2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2luZG93cyc6IGZh
bHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN1cGVy
c2NyaXB0IiwgJzxzcGFuIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogc3VwZXI7Ij5oZWxsbzwvc3Bh
bj48c3BhbiBzdHlsZT0idmVydGljYWwtYWxpZ246IHN1YjsiPndvcmxkPC9zcGFuPicsIHNlbGVj
dEFsbCwgeydtYWMnOiB0cnVlLCAnd2luZG93cyc6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsK
KyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN1cGVyc2NyaXB0IiwgJ2hlbGxvPHNwYW4gc3R5
bGU9InZlcnRpY2FsLWFsaWduOiBzdXBlcjsiPndvcmxkPC9zcGFuPicsIHNlbGVjdEFsbCwgeydt
YWMnOiBmYWxzZSwgJ3dpbmRvd3MnOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisKKyAgICB0
ZXN0UXVlcnlDb21tYW5kU3RhdGUoInVuZGVybGluZSIsICdoZWxsbycsIHNlbGVjdEFsbCwgeydt
YWMnOiBmYWxzZSwgJ3dpbmRvd3MnOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVz
dFF1ZXJ5Q29tbWFuZFN0YXRlKCJ1bmRlcmxpbmUiLCAnPHM+aGVsbG88L3M+Jywgc2VsZWN0QWxs
LCB7J21hYyc6IGZhbHNlLCAnd2luZG93cyc6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAg
ICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInVuZGVybGluZSIsICc8dT5oZWxsbzwvdT4nLCBzZWxl
Y3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dpbmRvd3MnOiB0cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsK
KyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInVuZGVybGluZSIsICc8dT5oZWxsbzwvdT4gd29y
bGQnLCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dpbmRvd3MnOiBmYWxzZX1bZWRpdGluZ0Jl
aGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJ1bmRlcmxpbmUiLCAnaGVsbG8g
PHU+d29ybGQ8L3U+Jywgc2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2luZG93cyc6IGZhbHNl
fVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInVuZGVybGlu
ZSIsICc8dT48ZGl2PmhlbGxvIHdvcmxkPC9kaXY+PC91PicsIHNlbGVjdEFsbCwgeydtYWMnOiB0
cnVlLCAnd2luZG93cyc6IHRydWV9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNv
bW1hbmRTdGF0ZSgidW5kZXJsaW5lIiwgJzx1PjxzPjxkaXY+aGVsbG8gd29ybGQgV2ViS2l0PC9k
aXY+PC9zPjwvdT4nLCBzZWxlY3RTZWNvbmRXb3JkLCB7J21hYyc6IHRydWUsICd3aW5kb3dzJzog
dHJ1ZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJ1bmRl
cmxpbmUiLCAnPHM+PHU+aGVsbG88L3U+IHdvcmxkPC9zPiBXZWJLaXQnLCBzZWxlY3RTZWNvbmRX
b3JkLCB7J21hYyc6IGZhbHNlLCAnd2luZG93cyc6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsK
KyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInVuZGVybGluZSIsICc8dT48cz5oZWxsbzwvcz4g
d29ybGQ8L3U+IFdlYktpdCcsIHNlbGVjdFNlY29uZFdvcmQsIHsnbWFjJzogdHJ1ZSwgJ3dpbmRv
d3MnOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRl
KCJ1bmRlcmxpbmUiLCAnPHM+aGVsbG8gPHU+d29ybGQ8L3M+IFdlYktpdDwvdT4nLCBzZWxlY3RT
ZWNvbmRXb3JkLCB7J21hYyc6IHRydWUsICd3aW5kb3dzJzogdHJ1ZX1bZWRpdGluZ0JlaGF2aW9y
XSk7CisKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN0cmlrZVRocm91Z2giLCAnaGVsbG8n
LCBzZWxlY3RBbGwsIHsnbWFjJzogZmFsc2UsICd3aW5kb3dzJzogZmFsc2V9W2VkaXRpbmdCZWhh
dmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3RyaWtlVGhyb3VnaCIsICc8dT5o
ZWxsbzwvdT4nLCBzZWxlY3RBbGwsIHsnbWFjJzogZmFsc2UsICd3aW5kb3dzJzogZmFsc2V9W2Vk
aXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3RyaWtlVGhyb3Vn
aCIsICc8cz5oZWxsbzwvcz4nLCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dpbmRvd3MnOiB0
cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN0cmlr
ZVRocm91Z2giLCAnPHM+aGVsbG88L3M+IHdvcmxkJywgc2VsZWN0QWxsLCB7J21hYyc6IHRydWUs
ICd3aW5kb3dzJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1h
bmRTdGF0ZSgic3RyaWtlVGhyb3VnaCIsICdoZWxsbyA8cz53b3JsZDwvcz4nLCBzZWxlY3RBbGws
IHsnbWFjJzogZmFsc2UsICd3aW5kb3dzJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOworICAg
IHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3RyaWtlVGhyb3VnaCIsICc8cz48ZGl2PmhlbGxvIHdv
cmxkPC9kaXY+PC9zPicsIHNlbGVjdEFsbCwgeydtYWMnOiB0cnVlLCAnd2luZG93cyc6IHRydWV9
W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3RyaWtlVGhy
b3VnaCIsICc8cz48dT48ZGl2PmhlbGxvIHdvcmxkIFdlYktpdDwvZGl2PjwvdT48L3M+Jywgc2Vs
ZWN0U2Vjb25kV29yZCwgeydtYWMnOiB0cnVlLCAnd2luZG93cyc6IHRydWV9W2VkaXRpbmdCZWhh
dmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3RyaWtlVGhyb3VnaCIsICc8dT48
cz5oZWxsbzwvcz4gd29ybGQ8L3U+IFdlYktpdCcsIHNlbGVjdFNlY29uZFdvcmQsIHsnbWFjJzog
ZmFsc2UsICd3aW5kb3dzJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVy
eUNvbW1hbmRTdGF0ZSgic3RyaWtlVGhyb3VnaCIsICdoZWxsbyA8cz53b3JsZCBXZWJLaXQ8L3M+
Jywgc2VsZWN0U2Vjb25kV29yZCwgeydtYWMnOiB0cnVlLCAnd2luZG93cyc6IHRydWV9W2VkaXRp
bmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3RyaWtlVGhyb3VnaCIs
ICdoZWxsbyA8cz53b3JsZCBXZWJLaXQ8L3M+Jywgc2VsZWN0Rmlyc3RUd29Xb3JkcywgeydtYWMn
OiBmYWxzZSwgJ3dpbmRvd3MnOiB0cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsKIH0KIAotcnVuVGVz
dHMoJ3dpbicpOworcnVuVGVzdHMoJ3dpbmRvd3MnKTsKIGRlYnVnKCcnKQogcnVuVGVzdHMoJ21h
YycpOwogCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3F1ZXJ5LXRleHQt
YWxpZ25tZW50LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5n
L2V4ZWNDb21tYW5kL3F1ZXJ5LXRleHQtYWxpZ25tZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MjY5ODU2KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9xdWVyeS10ZXh0LWFs
aWdubWVudC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAgUEFT
UyBxdWVyeUNvbW1hbmQoJ2Zvcm1hdCcpIHJldHVybnMgImNlbgogUEFTUyBxdWVyeUNvbW1hbmQo
J2Zvcm1hdCcpIHJldHVybnMgImxlZnQiIHdoZW4gc2VsZWN0aW5nIGZpcnN0IHBvc2l0aW9uIG9m
ICI8ZGl2IGFsaWduPSJsZWZ0Ij5oZWxsbzwvZGl2PiIKIFBBU1MgcXVlcnlDb21tYW5kKCdmb3Jt
YXQnKSByZXR1cm5zICJyaWdodCIgd2hlbiBzZWxlY3RpbmcgZmlyc3QgcG9zaXRpb24gb2YgIjxk
aXYgYWxpZ249InJpZ2h0Ij5oZWxsbzwvZGl2PiIKIAotVGVzdHMgZm9yIHdpbgorVGVzdHMgZm9y
IHdpbmRvd3MKIFBBU1MgcXVlcnlDb21tYW5kKCdmb3JtYXQnKSByZXR1cm5zICJsZWZ0IiB3aGVu
IHNlbGVjdGluZyBtaWRkbGUgb2YgIjxwPmhlbGxvPC9wPjxwPndvcmxkPC9wPiIKIFBBU1MgcXVl
cnlDb21tYW5kKCdmb3JtYXQnKSByZXR1cm5zICIiIHdoZW4gc2VsZWN0aW5nIG1pZGRsZSBvZiAi
PHAgYWxpZ249InJpZ2h0Ij5oZWxsbzwvcD48cD53b3JsZDwvcD4iCiBQQVNTIHF1ZXJ5Q29tbWFu
ZCgnZm9ybWF0JykgcmV0dXJucyAibGVmdCIgd2hlbiBzZWxlY3RpbmcgbWlkZGxlIG9mICI8cD5o
ZWxsbzwvcD48cCBhbGlnbj0ibGVmdCI+d29ybGQ8L3A+IgpJbmRleDogTGF5b3V0VGVzdHMvZWRp
dGluZy9leGVjQ29tbWFuZC9xdWVyeS10ZXh0LWFsaWdubWVudC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvcXVlcnktdGV4dC1hbGlnbm1lbnQuaHRt
bAkocmV2aXNpb24gMjY5ODU2KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9x
dWVyeS10ZXh0LWFsaWdubWVudC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC05NiwyMSArOTYsMjEg
QEAgZnVuY3Rpb24gcnVuUmFuZ2VUZXN0cyhlZGl0aW5nQmVoYXZpb3IpCiAgICAgZGVidWcoJ1Rl
c3RzIGZvciAnICsgZWRpdGluZ0JlaGF2aW9yKTsKIAogICAgIHF1ZXJ5VGV4dEFsaWdubWVudChz
ZWxlY3RNaWRkbGVPZkhlbGxvV29ybGQsICc8cD5oZWxsbzwvcD48cD53b3JsZDwvcD4nLCAnbGVm
dCcpOwotICAgIHF1ZXJ5VGV4dEFsaWdubWVudChzZWxlY3RNaWRkbGVPZkhlbGxvV29ybGQsICc8
cCBhbGlnbj0icmlnaHQiPmhlbGxvPC9wPjxwPndvcmxkPC9wPicsIHsnbWFjJzogJ3JpZ2h0Jywg
J3dpbic6ICcnfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICBxdWVyeVRleHRBbGlnbm1lbnQoc2Vs
ZWN0TWlkZGxlT2ZIZWxsb1dvcmxkLCAnPHAgYWxpZ249InJpZ2h0Ij5oZWxsbzwvcD48cD53b3Js
ZDwvcD4nLCB7J21hYyc6ICdyaWdodCcsICd3aW5kb3dzJzogJyd9W2VkaXRpbmdCZWhhdmlvcl0p
OwogICAgIHF1ZXJ5VGV4dEFsaWdubWVudChzZWxlY3RNaWRkbGVPZkhlbGxvV29ybGQsICc8cD5o
ZWxsbzwvcD48cCBhbGlnbj0ibGVmdCI+d29ybGQ8L3A+JywgJ2xlZnQnKTsKLSAgICBxdWVyeVRl
eHRBbGlnbm1lbnQoc2VsZWN0TWlkZGxlT2ZIZWxsb1dvcmxkLCAnPHAgYWxpZ249ImxlZnQiPmhl
bGxvPC9wPjxwIGFsaWduPSJyaWdodCI+d29ybGQ8L3A+JywgeydtYWMnOiAnbGVmdCcsICd3aW4n
OiAnJ31bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgcXVlcnlUZXh0QWxpZ25tZW50KHNlbGVjdE1p
ZGRsZU9mSGVsbG9Xb3JsZCwgJzxwIGFsaWduPSJsZWZ0Ij5oZWxsbzwvcD48cCBhbGlnbj0icmln
aHQiPndvcmxkPC9wPicsIHsnbWFjJzogJ2xlZnQnLCAnd2luZG93cyc6ICcnfVtlZGl0aW5nQmVo
YXZpb3JdKTsKICAgICBxdWVyeVRleHRBbGlnbm1lbnQoc2VsZWN0TWlkZGxlT2ZIZWxsb1dvcmxk
LCAnPHAgYWxpZ249ImNlbnRlciI+aGVsbG88L3A+PHAgYWxpZ249ImNlbnRlciI+d29ybGQ8L3A+
JywgJ2NlbnRlcicpOwogICAgIHF1ZXJ5VGV4dEFsaWdubWVudChzZWxlY3RNaWRkbGVPZkhlbGxv
V29ybGQsICc8cCBhbGlnbj0ianVzdGlmeSI+aGVsbG88L3A+PHAgYWxpZ249Imp1c3RpZnkiPndv
cmxkPC9wPicsICdmdWxsJyk7CiAgICAgcXVlcnlUZXh0QWxpZ25tZW50KHNlbGVjdE1pZGRsZU9m
SGVsbG9Xb3JsZCwgJzxwIGFsaWduPSJsZWZ0Ij5oZWxsbzwvcD48cCBhbGlnbj0ibGVmdCI+d29y
bGQ8L3A+JywgJ2xlZnQnKTsKICAgICBxdWVyeVRleHRBbGlnbm1lbnQoc2VsZWN0TWlkZGxlT2ZI
ZWxsb1dvcmxkLCAnPHAgYWxpZ249InJpZ2h0Ij5oZWxsbzwvcD48cCBhbGlnbj0icmlnaHQiPndv
cmxkPC9wPicsICdyaWdodCcpOwotICAgIHF1ZXJ5VGV4dEFsaWdubWVudChzZWxlY3RNaWRkbGVP
ZkhlbGxvV29ybGQsICc8ZGl2IGFsaWduPSJyaWdodCI+aGVsbG88cCBhbGlnbj0ibGVmdCI+d29y
bGQ8L3A+PC9kaXY+JywgeydtYWMnOiAncmlnaHQnLCAnd2luJzogJyd9W2VkaXRpbmdCZWhhdmlv
cl0pOwotICAgIHF1ZXJ5VGV4dEFsaWdubWVudChzZWxlY3RNaWRkbGVPZkhlbGxvV29ybGQsICc8
ZGl2IGFsaWduPSJsZWZ0Ij48cCBhbGlnbj0iY2VudGVyIj53b3JsZDwvcD5oZWxsbzwvZGl2Pics
IHsnbWFjJzogJ2NlbnRlcicsICd3aW4nOiAnJ31bZWRpdGluZ0JlaGF2aW9yXSk7Ci0gICAgcXVl
cnlUZXh0QWxpZ25tZW50KHNlbGVjdE1pZGRsZU9mSGVsbG9Xb3JsZCwgJzxwIGFsaWduPSJsZWZ0
Ij5oZWxsbzwvcD48cD53PC9wPjxwIGFsaWduPSJsZWZ0Ij5vcmxkPC9wPicsIHsnbWFjJzogJ2xl
ZnQnLCAnd2luJzogJ2xlZnQnfVtlZGl0aW5nQmVoYXZpb3JdKTsKLSAgICBxdWVyeVRleHRBbGln
bm1lbnQoc2VsZWN0TWlkZGxlT2ZIZWxsb1dvcmxkLCAnPHAgYWxpZ249Imp1c3RpZnkiPmhlbGxv
PC9wPjxwPnc8L3A+PHAgYWxpZ249ImNlbnRlciI+b3JsZDwvcD4nLCB7J21hYyc6ICdmdWxsJywg
J3dpbic6ICcnfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICBxdWVyeVRleHRBbGlnbm1lbnQoc2Vs
ZWN0TWlkZGxlT2ZIZWxsb1dvcmxkLCAnPGRpdiBhbGlnbj0icmlnaHQiPmhlbGxvPHAgYWxpZ249
ImxlZnQiPndvcmxkPC9wPjwvZGl2PicsIHsnbWFjJzogJ3JpZ2h0JywgJ3dpbmRvd3MnOiAnJ31b
ZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgcXVlcnlUZXh0QWxpZ25tZW50KHNlbGVjdE1pZGRsZU9m
SGVsbG9Xb3JsZCwgJzxkaXYgYWxpZ249ImxlZnQiPjxwIGFsaWduPSJjZW50ZXIiPndvcmxkPC9w
PmhlbGxvPC9kaXY+JywgeydtYWMnOiAnY2VudGVyJywgJ3dpbmRvd3MnOiAnJ31bZWRpdGluZ0Jl
aGF2aW9yXSk7CisgICAgcXVlcnlUZXh0QWxpZ25tZW50KHNlbGVjdE1pZGRsZU9mSGVsbG9Xb3Js
ZCwgJzxwIGFsaWduPSJsZWZ0Ij5oZWxsbzwvcD48cD53PC9wPjxwIGFsaWduPSJsZWZ0Ij5vcmxk
PC9wPicsIHsnbWFjJzogJ2xlZnQnLCAnd2luZG93cyc6ICdsZWZ0J31bZWRpdGluZ0JlaGF2aW9y
XSk7CisgICAgcXVlcnlUZXh0QWxpZ25tZW50KHNlbGVjdE1pZGRsZU9mSGVsbG9Xb3JsZCwgJzxw
IGFsaWduPSJqdXN0aWZ5Ij5oZWxsbzwvcD48cD53PC9wPjxwIGFsaWduPSJjZW50ZXIiPm9ybGQ8
L3A+JywgeydtYWMnOiAnZnVsbCcsICd3aW5kb3dzJzogJyd9W2VkaXRpbmdCZWhhdmlvcl0pOwog
fQogCiBkZWJ1ZygnJyk7Ci1ydW5SYW5nZVRlc3RzKCd3aW4nKTsKK3J1blJhbmdlVGVzdHMoJ3dp
bmRvd3MnKTsKIGRlYnVnKCcnKTsKIHJ1blJhbmdlVGVzdHMoJ21hYycpOwogCkluZGV4OiBMYXlv
dXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3JlbW92ZS1mb3JtYXQtbXVsdGlwbGUtZWxlbWVu
dHMtd2luLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFu
ZC9yZW1vdmUtZm9ybWF0LW11bHRpcGxlLWVsZW1lbnRzLXdpbi5odG1sCShyZXZpc2lvbiAyNjk4
NTYpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3JlbW92ZS1mb3JtYXQtbXVs
dGlwbGUtZWxlbWVudHMtd2luLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEzLDcgKzEzLDcgQEAg
dmFyIHRlc3RDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZQogdGVzdENvbnRhaW5lci5j
b250ZW50RWRpdGFibGUgPSB0cnVlOwogZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZXN0Q29u
dGFpbmVyKTsKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXR0aW5ncy5z
ZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbicpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0
aW5nQmVoYXZpb3IoJ3dpbmRvd3MnKTsKIAogZnVuY3Rpb24gdGVzdFJlbW92ZUZvcm1hdChpbml0
aWFsQ29udGVudHMsIHNlbGVjdG9yLCBleHBlY3RlZCkKIHsKSW5kZXg6IExheW91dFRlc3RzL2Vk
aXRpbmcvZXhlY0NvbW1hbmQvdG9nZ2xlLWNvbXBvdW5kLXN0eWxlcy1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC90b2dnbGUtY29tcG91
bmQtc3R5bGVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjY5ODU2KQorKysgTGF5b3V0VGVzdHMv
ZWRpdGluZy9leGVjQ29tbWFuZC90b2dnbGUtY29tcG91bmQtc3R5bGVzLWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMTcsNyArMTcsNyBAQCBQQVNTIG9uZSBpdGFsaWMgY29tbWFuZCBj
b252ZXJ0ZWQgIjxzcGFuCiBQQVNTIG9uZSBpdGFsaWMgY29tbWFuZCBjb252ZXJ0ZWQgIjxwPjxp
PmhlbGxvPC9pPjxzcGFuIHN0eWxlPSdmb250LXN0eWxlOml0YWxpYzsnPndvcmxkPC9zcGFuPjwv
cD4iIHRvICI8cD5oZWxsb3dvcmxkPC9wPgogUEFTUyBvbmUgaXRhbGljIGNvbW1hbmQgY29udmVy
dGVkICI8cz48Yj5oZWxsbzxpPiB3b3JsZDwvaT48L2I+PC9zPiIgdG8gIjxzPjxiPjxpPmhlbGxv
IHdvcmxkPC9pPjwvYj48L3M+CiAKLVBsYXRmb3JtOiB3aW4KK1BsYXRmb3JtOiB3aW5kb3dzCiBQ
QVNTIG9uZSBib2xkIGNvbW1hbmQgY29udmVydGVkICI8dT48Yj5oZWxsbzwvYj4gd29ybGQ8L3U+
IiB0byAiPHU+PGI+aGVsbG8gd29ybGQ8L2I+PC91PgogUEFTUyBvbmUgYm9sZCBjb21tYW5kIGNv
bnZlcnRlZCAiPGI+aGVsbG8gPC9iPndvcmxkIiB0byAiPGI+aGVsbG8gd29ybGQ8L2I+CiBQQVNT
IG9uZSBib2xkIGNvbW1hbmQgY29udmVydGVkICI8dT48Yj5oZWxsbyA8L2I+PC91PndvcmxkIiB0
byAiPGI+PHU+aGVsbG8gPC91PndvcmxkPC9iPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9l
eGVjQ29tbWFuZC90b2dnbGUtY29tcG91bmQtc3R5bGVzLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC90b2dnbGUtY29tcG91bmQtc3R5bGVzLmh0bWwJ
KHJldmlzaW9uIDI2OTg1NikKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvdG9n
Z2xlLWNvbXBvdW5kLXN0eWxlcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3ICsyNSw3IEBA
IGZ1bmN0aW9uIHRlc3RTaW5nbGVUb2dnbGUodG9nZ2xlQ29tbWFuZCwKICAgICAgICAgdGVzdEZh
aWxlZChhY3Rpb24gKyAnIiwgZXhwZWN0ZWQgIicgKyBleHBlY3RlZENvbnRlbnRzICsgJyInKTsK
IH0KIAotcGxhdGZvcm1zID0gWydtYWMnLCAnd2luJywgJ3VuaXgnXTsKK3BsYXRmb3JtcyA9IFsn
bWFjJywgJ3dpbmRvd3MnLCAndW5peCddOwogCiBmb3IgKHZhciBpID0gMDsgaSA8IHBsYXRmb3Jt
cy5sZW5ndGg7IGkrKykgewogICAgIHBsYXRmb3JtID0gcGxhdGZvcm1zW2ldOwpJbmRleDogTGF5
b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC90b2dnbGUtbGluay13aW4uaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3RvZ2dsZS1saW5rLXdpbi5o
dG1sCShyZXZpc2lvbiAyNjk4NTYpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5k
L3RvZ2dsZS1saW5rLXdpbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMyw3ICsxMyw3IEBAIHZh
ciB0ZXN0Q29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWUKIHRlc3RDb250YWluZXIuY29u
dGVudEVkaXRhYmxlID0gdHJ1ZTsKIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGVzdENvbnRh
aW5lcik7CiBpZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0
RWRpdGluZ0JlaGF2aW9yKCJ3aW4iKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGlu
Z0JlaGF2aW9yKCJ3aW5kb3dzIik7CiAKIGZ1bmN0aW9uIHRlc3RTaW5nbGVUb2dnbGUodG9nZ2xl
Q29tbWFuZCwgaW5pdGlhbENvbnRlbnRzLCBzZWxlY3RvciwgZXhwZWN0ZWRDb250ZW50cykKIHsK
SW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvdG9nZ2xlLXVubGluay13aW4u
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3RvZ2ds
ZS11bmxpbmstd2luLmh0bWwJKHJldmlzaW9uIDI2OTg1NikKKysrIExheW91dFRlc3RzL2VkaXRp
bmcvZXhlY0NvbW1hbmQvdG9nZ2xlLXVubGluay13aW4uaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
NTEsNyArNTEsNyBAQCBmdW5jdGlvbiBzZWxlY3RMYXN0V29yZChjb250YWluZXIpIHsKIH0KIAog
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0Jl
aGF2aW9yKCd3aW4nKTsKKyAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3Io
J3dpbmRvd3MnKTsKIAogdGVzdFNpbmdsZVRvZ2dsZSgidW5saW5rIiwgJ2hlbGxvIDxiPndvcmxk
PC9iPicsIHNlbGVjdEFsbCwgJ2hlbGxvIDxiPndvcmxkPC9iPicpOwogdGVzdFNpbmdsZVRvZ2ds
ZSgidW5saW5rIiwgJzxhIGhyZWY9Imh0dHA6Ly93ZWJraXQub3JnLyI+PHU+aGVsbG8gd29ybGQ8
L3U+PC9hPicsIHNlbGVjdEFsbCwgJzx1PmhlbGxvIHdvcmxkPC91PicpOwpJbmRleDogTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vNTE5NTE2Ni0xLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vNTE5NTE2Ni0xLmh0bWwJKHJldmlzaW9uIDI2OTg1
NikKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uLzUxOTUxNjYtMS5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QocGxhdGZvcm0sIGV4
cGVjdGVkVGV4dCkKIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7
CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCkKICAgICBydW5UZXN0KCdtYWMnLCAnc2hvdWxk
IGJlIHMnKTsKLSAgICBydW5UZXN0KCd3aW4nLCAnaG91bGQgYmUgJyk7CisgICAgcnVuVGVzdCgn
d2luZG93cycsICdob3VsZCBiZSAnKTsKIH0gZWxzZSB7CiAgICAgbG9nKCJGYWlsdXJlOiBUbyB0
ZXN0IG1hbnVhbGx5LCBzZWxlY3QgdGhlIGdyZWVuIHRleHQgIiArCiAgICAgICAgICJzdGFydGlu
ZyBhdCB0aGUgZW5kIHZpYSBkb3VibGUtY2xpY2sgKGkuZS4gd29yZCBncmFudWxhcml0eSksIHRo
ZW4gc2hpZnQrcmlnaHQtYXJyb3cuICIgKwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxl
Y3Rpb24vNTM1NDQ1NS0xLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vNTM1NDQ1NS0xLmh0bWwJKHJldmlzaW9uIDI2OTg1NikKKysrIExheW91dFRlc3Rz
L2VkaXRpbmcvc2VsZWN0aW9uLzUzNTQ0NTUtMS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3
ICsyNiw3IEBAIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIgJiYgd2luZG93LnRlc3RSdW4KICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAogICAgIHRlc3QoJ21hYycsICdyZXN1bHRtYWMnKTsK
LSAgICB0ZXN0KCd3aW4nLCAncmVzdWx0d2luJyk7CisgICAgdGVzdCgnd2luZG93cycsICdyZXN1
bHR3aW4nKTsKICAgICB0ZXN0KCd1bml4JywgJ3Jlc3VsdHVuaXgnKTsKIH0KIDwvc2NyaXB0PgpJ
bmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY2xpY2staW4tbWFyZ2lucy1pbnNp
ZGUtZWRpdGFibGUtZGl2Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vY2xpY2staW4tbWFyZ2lucy1pbnNpZGUtZWRpdGFibGUtZGl2Lmh0bWwJKHJldmlz
aW9uIDI2OTg1NikKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2NsaWNrLWluLW1h
cmdpbnMtaW5zaWRlLWVkaXRhYmxlLWRpdi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQsNyAr
MTA0LDcgQEAgZnVuY3Rpb24gZWRpdGluZ1Rlc3QoZWRpdGluZ0JlaGF2aW9yKQogfQogCiBlZGl0
aW5nVGVzdCgibWFjIik7Ci1lZGl0aW5nVGVzdCgid2luIik7CitlZGl0aW5nVGVzdCgid2luZG93
cyIpOwogCiAvLyBDbGVhbiB1cCBhZnRlciBvdXJzZWx2ZXMgaWYgd2UncmUgbm90IGJlaW5nIHJ1
biBpbiB0aGUgYnJvd3NlcgogaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewpJbmRleDogTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY2xpY2staW4tcGFkZGluZy13aXRoLW11bHRpcGxlLWxp
bmUtYm94ZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlv
bi9jbGljay1pbi1wYWRkaW5nLXdpdGgtbXVsdGlwbGUtbGluZS1ib3hlcy5odG1sCShyZXZpc2lv
biAyNjk4NTYpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9jbGljay1pbi1wYWRk
aW5nLXdpdGgtbXVsdGlwbGUtbGluZS1ib3hlcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03OCw3
ICs3OCw3IEBAIGZ1bmN0aW9uIGVkaXRpbmdUZXN0KGVkaXRpbmdCZWhhdmlvcikKIH0KIAogZWRp
dGluZ1Rlc3QoIm1hYyIpOwotZWRpdGluZ1Rlc3QoIndpbiIpOworZWRpdGluZ1Rlc3QoIndpbmRv
d3MiKTsKIAogLy8gQ2xlYW4gdXAgYWZ0ZXIgb3Vyc2VsdmVzIGlmIHdlJ3JlIG5vdCBiZWluZyBy
dW4gaW4gdGhlIGJyb3dzZXIKIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKSW5kZXg6IExheW91
dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2NvbnRleHQtbWVudS10ZXh0LXNlbGVjdGlvbi1sb29r
dXAuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9jb250
ZXh0LW1lbnUtdGV4dC1zZWxlY3Rpb24tbG9va3VwLmh0bWwJKHJldmlzaW9uIDI2OTg1NikKKysr
IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2NvbnRleHQtbWVudS10ZXh0LXNlbGVjdGlv
bi1sb29rdXAuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNTAsNyArNTAsNyBAQCBmdW5jdGlvbiBs
b2FkKCkKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAogICAgIHRlc3QoJ21hYycsIHRy
dWUsICdOZXcgWW9yaycsICdyZXN1bHRtYWMnKTsKLSAgICB0ZXN0KCd3aW4nLCBmYWxzZSwgJycs
ICdyZXN1bHR3aW4nKTsKKyAgICB0ZXN0KCd3aW5kb3dzJywgZmFsc2UsICcnLCAncmVzdWx0d2lu
Jyk7CiAgICAgdGVzdCgndW5peCcsIGZhbHNlLCAnJywgJ3Jlc3VsdHVuaXgnKTsKIH0KIDwvc2Ny
aXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY29udGV4dC1tZW51LXRl
eHQtc2VsZWN0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxl
Y3Rpb24vY29udGV4dC1tZW51LXRleHQtc2VsZWN0aW9uLmh0bWwJKHJldmlzaW9uIDI2OTg1NikK
KysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2NvbnRleHQtbWVudS10ZXh0LXNlbGVj
dGlvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00Niw3ICs0Niw3IEBAIGZ1bmN0aW9uIGxvYWQo
KQogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiAgICAgdGVzdCgnbWFjJywgdHJ1ZSwg
J3Jlc3VsdG1hYycpOwotICAgIHRlc3QoJ3dpbicsIGZhbHNlLCAncmVzdWx0d2luJyk7CisgICAg
dGVzdCgnd2luZG93cycsIGZhbHNlLCAncmVzdWx0d2luJyk7CiAgICAgdGVzdCgndW5peCcsIGZh
bHNlLCAncmVzdWx0dW5peCcpOwogfQogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9leHRlbmQtYWZ0ZXItbW91c2Utc2VsZWN0aW9uLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLWFmdGVyLW1vdXNlLXNl
bGVjdGlvbi5odG1sCShyZXZpc2lvbiAyNjk4NTYpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3Nl
bGVjdGlvbi9leHRlbmQtYWZ0ZXItbW91c2Utc2VsZWN0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTc1LDcgKzc1LDcgQEAgZnVuY3Rpb24gZWRpdGluZ1Rlc3QoZWRpdGluZ0JlaGF2aW9yKSB7
CiAKIDxzY3JpcHQ+CiBlZGl0aW5nVGVzdCgibWFjIik7Ci1lZGl0aW5nVGVzdCgid2luIik7Citl
ZGl0aW5nVGVzdCgid2luZG93cyIpOwogZWRpdGluZ1Rlc3QoInVuaXgiKTsKIDwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgpJ
bmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1hZnRl
ci1kb3VibGUtY2xpY2suaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Nl
bGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWFmdGVyLWRvdWJsZS1jbGljay5odG1sCShyZXZpc2lv
biAyNjk4NTYpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0
aW9uLWFmdGVyLWRvdWJsZS1jbGljay5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3
IEBACiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiAgICAgICAgIHJ1blRlc3Qo
Im1hYyIsICJhIHBhcmFncmFwaCIpOwotICAgICAgICBydW5UZXN0KCJ3aW4iLCAicGFyYWdyYSIp
OworICAgICAgICBydW5UZXN0KCJ3aW5kb3dzIiwgInBhcmFncmEiKTsKICAgICB9CiAKICAgICBm
dW5jdGlvbiBydW5UZXN0KGJlaGF2aW9yLCBleHBlY3RlZFRleHQpCkluZGV4OiBMYXlvdXRUZXN0
cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWVuY2xvc2luZy1ibG9jay13aW4u
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQt
c2VsZWN0aW9uLWVuY2xvc2luZy1ibG9jay13aW4uaHRtbAkocmV2aXNpb24gMjY5ODU2KQorKysg
TGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1lbmNsb3Npbmct
YmxvY2std2luLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIzLDcgKzIzLDcgQEAgZnVuY3Rpb24g
cnVuU2VsZWN0aW9uVGVzdHNXaXRoR3JhbnVsYXJpdAogfQogCiBpZiAod2luZG93LmludGVybmFs
cykKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCJ3aW4iKTsKKyAg
ICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCJ3aW5kb3dzIik7CiBsb2co
IlxuXG5cbkV4dGVuZGluZyBieSBjaGFyYWN0ZXJcbiIpOwogcnVuU2VsZWN0aW9uVGVzdHNXaXRo
R3JhbnVsYXJpdHlGb3JFbmNsb3NpbmdCbG9jayhjcmVhdGVFbmNsb3NpbmdCbG9ja05vZGVzKCks
ICJjaGFyYWN0ZXIiKTsKIApJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92
ZS1ieS13b3JkLXZpc3VhbGx5LWNyYXNoLXRlc3QtMS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0
LTEuaHRtbAkocmV2aXNpb24gMjY5ODU2KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWNyYXNoLXRlc3QtMS5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xMiw3ICsxMiw3IEBAIG9ubG9hZCA9IGZ1bmN0aW9uKCkgewogCiBpZiAod2luZG93LnRl
c3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbicpOwor
ICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbmRvd3MnKTsKIH0K
IDwvc2NyaXB0PgogPHRleHRhcmVhPjwvdGV4dGFyZWE+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC0yLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZp
c3VhbGx5LWNyYXNoLXRlc3QtMi5odG1sCShyZXZpc2lvbiAyNjk4NTYpCisrKyBMYXlvdXRUZXN0
cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC0yLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEyLDcgKzEyLDcgQEAgb25sb2FkID0gZnVuY3Rpb24oKSB7
CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdC
ZWhhdmlvcignd2luJyk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlv
cignd2luZG93cycpOwogfQogPC9zY3JpcHQ+CiA8dmtlcm4+PC92a2Vybj48bWFycXVlZT48ZGl2
IHRpdGxlPSIwfDAiIGNsYXNzPSJ0ZXN0X21vdmVfYnlfd29yZCI+YWJjIGRlZgpJbmRleDogTGF5
b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWNyYXNoLXRl
c3QtMy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21v
dmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0LTMuaHRtbAkocmV2aXNpb24gMjY5ODU2KQor
KysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWNy
YXNoLXRlc3QtMy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMiw3ICsxMiw3IEBAIG9ubG9hZCA9
IGZ1bmN0aW9uKCkgewogCiBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFs
cykgewogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIGludGVybmFscy5zZXR0aW5n
cy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbicpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRF
ZGl0aW5nQmVoYXZpb3IoJ3dpbmRvd3MnKTsKIH0KIDwvc2NyaXB0PgogPHZpZGVvPjwvdmlkZW8+
PG1ldGVyPjxpbWFnZSBjbGFzcz0idGVzdF9tb3ZlX2J5X3dvcmQiIHRpdGxlPSIwfDAiPgpJbmRl
eDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWNy
YXNoLXRlc3QtNC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0
aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0LTQuaHRtbAkocmV2aXNpb24gMjY5
ODU2KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3Vh
bGx5LWNyYXNoLXRlc3QtNC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMiw3ICsxMiw3IEBAIG9u
bG9hZCA9IGZ1bmN0aW9uKCkgewogCiBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93Lmlu
dGVybmFscykgewogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIGludGVybmFscy5z
ZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbicpOworICAgIGludGVybmFscy5zZXR0aW5n
cy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbmRvd3MnKTsKIH0KIDwvc2NyaXB0PgogPjxkaXYgdGl0
bGU9IjB8MCIgY2xhc3M9InRlc3RfbW92ZV9ieV93b3JkIiBkaXI9bHRyPjxrZXlnZW4+PGJhc2U+
CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFs
bHktY3Jhc2gtdGVzdC01Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWNyYXNoLXRlc3QtNS5odG1sCShyZXZpc2lv
biAyNjk4NTYpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQt
dmlzdWFsbHktY3Jhc2gtdGVzdC01Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTExLDcgKzExLDcg
QEAgb25sb2FkID0gZnVuY3Rpb24oKSB7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5k
b3cuaW50ZXJuYWxzKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgaW50ZXJu
YWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luJyk7CisgICAgaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luZG93cycpOwogfQogPC9zY3JpcHQ+CiAKSW5k
ZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1j
cmFzaC10ZXN0LWNzcy1nZW5lcmF0ZWQtY29udGVudC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0
LWNzcy1nZW5lcmF0ZWQtY29udGVudC5odG1sCShyZXZpc2lvbiAyNjk4NTYpCisrKyBMYXlvdXRU
ZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC1j
c3MtZ2VuZXJhdGVkLWNvbnRlbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTksNyArMTksNyBA
QCBvbmxvYWQgPSBmdW5jdGlvbigpIHsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRv
dy5pbnRlcm5hbHMpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICBpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiB9CiA8L3NjcmlwdD4KIDxkaXYg
Y29udGVudGVkaXRhYmxlIGRpcj1sdHI+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVj
dGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC10ZXh0YXJlYS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1
YWxseS1jcmFzaC10ZXN0LXRleHRhcmVhLmh0bWwJKHJldmlzaW9uIDI2OTg1NikKKysrIExheW91
dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1jcmFzaC10ZXN0
LXRleHRhcmVhLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE4LDcgKzE4LDcgQEAgb25sb2FkID0g
ZnVuY3Rpb24oKSB7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxz
KSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldEVkaXRpbmdCZWhhdmlvcignd2luJyk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVk
aXRpbmdCZWhhdmlvcignd2luZG93cycpOwogfQogPC9zY3JpcHQ+CiAKSW5kZXg6IExheW91dFRl
c3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1pbmxpbmUtYmxvY2st
cG9zaXRpb25lZC1lbGVtZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWlubGluZS1ibG9jay1wb3NpdGlvbmVk
LWVsZW1lbnQuaHRtbAkocmV2aXNpb24gMjY5ODU2KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LWlubGluZS1ibG9jay1wb3NpdGlvbmVkLWVs
ZW1lbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTIsNyArMTIsNyBAQCBvbmxvYWQgPSBmdW5j
dGlvbigpIHsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsK
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0
RWRpdGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGlu
Z0JlaGF2aW9yKCd3aW5kb3dzJyk7CiB9CiA8L3NjcmlwdD4KIApJbmRleDogTGF5b3V0VGVzdHMv
ZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LW11bHRpLWxpbmUuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQt
dmlzdWFsbHktbXVsdGktbGluZS5odG1sCShyZXZpc2lvbiAyNjk4NTYpCisrKyBMYXlvdXRUZXN0
cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktbXVsdGktbGluZS5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xOSw3ICsxOSw3IEBAIG9ubG9hZCA9IGZ1bmN0aW9uKCkgewog
CiBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewogICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVo
YXZpb3IoJ3dpbicpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3Io
J3dpbmRvd3MnKTsKIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpJbmRleDogTGF5b3V0VGVzdHMvZWRp
dGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LW11bHRpLXNwYWNlLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZp
c3VhbGx5LW11bHRpLXNwYWNlLmh0bWwJKHJldmlzaW9uIDI2OTg1NikKKysrIExheW91dFRlc3Rz
L2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1tdWx0aS1zcGFjZS5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xOSw3ICsxOSw3IEBAIG9ubG9hZCA9IGZ1bmN0aW9uKCkgewog
CiBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewogICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVo
YXZpb3IoJ3dpbicpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3Io
J3dpbmRvd3MnKTsKIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpJbmRleDogTGF5b3V0VGVzdHMvZWRp
dGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LW51bGwtYm94Lmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3Vh
bGx5LW51bGwtYm94Lmh0bWwJKHJldmlzaW9uIDI2OTg1NikKKysrIExheW91dFRlc3RzL2VkaXRp
bmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxseS1udWxsLWJveC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0xOCw3ICsxOCw3IEBAIG9ubG9hZCA9IGZ1bmN0aW9uKCkgewogCiBpZiAod2lu
ZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewogICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOwotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dp
bicpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbmRvd3Mn
KTsKIH0KIDwvc2NyaXB0PgogPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CkluZGV4OiBMYXlvdXRU
ZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktc2luZ2xlLXNwYWNl
LWlubGluZS1lbGVtZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LXNpbmdsZS1zcGFjZS1pbmxpbmUtZWxlbWVu
dC5odG1sCShyZXZpc2lvbiAyNjk4NTYpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlv
bi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktc2luZ2xlLXNwYWNlLWlubGluZS1lbGVtZW50Lmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTIyLDcgKzIyLDcgQEAgb25sb2FkID0gZnVuY3Rpb24oKSB7CiAK
IGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhh
dmlvcignd2luJyk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcign
d2luZG93cycpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktc2luZ2xlLXNwYWNlLW9uZS1lbGVt
ZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92
ZS1ieS13b3JkLXZpc3VhbGx5LXNpbmdsZS1zcGFjZS1vbmUtZWxlbWVudC5odG1sCShyZXZpc2lv
biAyNjk4NTYpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQt
dmlzdWFsbHktc2luZ2xlLXNwYWNlLW9uZS1lbGVtZW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTE5LDcgKzE5LDcgQEAgb25sb2FkID0gZnVuY3Rpb24oKSB7CiAKIGlmICh3aW5kb3cudGVzdFJ1
bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
Ci0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luJyk7CisgICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luZG93cycpOwogfQogPC9z
Y3JpcHQ+CiA8L2hlYWQ+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3Zl
LWJ5LXdvcmQtdmlzdWFsbHktdGV4dGFyZWEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktdGV4dGFyZWEuaHRtbAko
cmV2aXNpb24gMjY5ODU2KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1i
eS13b3JkLXZpc3VhbGx5LXRleHRhcmVhLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2
LDcgQEAgb25sb2FkID0gZnVuY3Rpb24oKSB7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3
aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgaW50
ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luJyk7CisgICAgaW50ZXJuYWxz
LnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luZG93cycpOwogfQogPC9zY3JpcHQ+CiAK
SW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktd29yZC12aXN1YWxs
eS13cm9uZy1sZWZ0LXJpZ2h0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZpc3VhbGx5LXdyb25nLWxlZnQtcmlnaHQuaHRtbAko
cmV2aXNpb24gMjY5ODU2KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1i
eS13b3JkLXZpc3VhbGx5LXdyb25nLWxlZnQtcmlnaHQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MjIsNyArMjIsNyBAQCBvbmxvYWQgPSBmdW5jdGlvbigpIHsKIAogaWYgKHdpbmRvdy50ZXN0UnVu
bmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
LSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiB9CiA8L3Nj
cmlwdD4KIDx0aXRsZT53cm9uZyByZXN1bHQgYmVjYXVzZSBWaXNpYmxlUG9zaXRpb24ubGVmdCgp
L3JpZ2h0KCkgcmV0dXJucyB3cm9uZyByZXN1bHQ8L3RpdGxlPgpJbmRleDogTGF5b3V0VGVzdHMv
ZWRpdGluZy9zZWxlY3Rpb24vcHJvZ3JhbW1hdGljLXNlbGVjdGlvbi1vbi1tYWMtaXMtZGlyZWN0
aW9ubGVzcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vcHJvZ3JhbW1hdGljLXNlbGVjdGlvbi1vbi1tYWMtaXMtZGlyZWN0aW9ubGVzcy1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDI2OTg1NikKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2Vs
ZWN0aW9uL3Byb2dyYW1tYXRpYy1zZWxlY3Rpb24tb24tbWFjLWlzLWRpcmVjdGlvbmxlc3MtZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMDAsNyArMTAwLDcgQEAgUEFTUyByaWdodCBi
eSBsaW5lIGluIHRleHQtaW5wdXQsIGFmdGVyIAogUEFTUyByaWdodCBieSBsaW5lIGluIHRleHQt
aW5wdXQsIGFmdGVyIHVuZG9pbmcgY3V0CiBQQVNTIHJpZ2h0IGJ5IGxpbmUgaW4gdGV4dC1pbnB1
dCwgYWZ0ZXIgdW5kb2luZyBib2xkCiBQQVNTIHJpZ2h0IGJ5IGxpbmUgaW4gdGV4dC1pbnB1dCwg
YWZ0ZXIgdW5kb2luZyBpbnNlcnRUZXh0Ci13aW46Cit3aW5kb3dzOgogUEFTUyBsZWZ0IGJ5IGNo
YXJhY3RlciBpbiByZWd1bGFyLWRpdgogUEFTUyBsZWZ0IGJ5IGNoYXJhY3RlciBpbiByZWd1bGFy
LWRpdiwgYWZ0ZXIgdW5kb2luZyBkZWxldGUKIFBBU1MgbGVmdCBieSBjaGFyYWN0ZXIgaW4gcmVn
dWxhci1kaXYsIGFmdGVyIHVuZG9pbmcgZm9yd2FyZERlbGV0ZQpJbmRleDogTGF5b3V0VGVzdHMv
ZWRpdGluZy9zZWxlY3Rpb24vcHJvZ3JhbW1hdGljLXNlbGVjdGlvbi1vbi1tYWMtaXMtZGlyZWN0
aW9ubGVzcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
L3Byb2dyYW1tYXRpYy1zZWxlY3Rpb24tb24tbWFjLWlzLWRpcmVjdGlvbmxlc3MuaHRtbAkocmV2
aXNpb24gMjY5ODU2KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vcHJvZ3JhbW1h
dGljLXNlbGVjdGlvbi1vbi1tYWMtaXMtZGlyZWN0aW9ubGVzcy5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xMzYsNyArMTM2LDcgQEAgZnVuY3Rpb24gcnVuVGVzdHNGb3IocGxhdGZvcm0pIHsKIAog
aWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICBydW5UZXN0c0ZvcignbWFjJyk7Ci0gICAgcnVu
VGVzdHNGb3IoJ3dpbicpOworICAgIHJ1blRlc3RzRm9yKCd3aW5kb3dzJyk7CiAgICAgcnVuVGVz
dHNGb3IoJ3VuaXgnKTsKIAogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0JykuaW5u
ZXJIVE1MID0gJyc7CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9ydGwtbW92
ZS1zZWxlY3Rpb24tcmlnaHQtbGVmdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Vk
aXRpbmcvc2VsZWN0aW9uL3J0bC1tb3ZlLXNlbGVjdGlvbi1yaWdodC1sZWZ0Lmh0bWwJKHJldmlz
aW9uIDI2OTg1NikKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3J0bC1tb3ZlLXNl
bGVjdGlvbi1yaWdodC1sZWZ0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTczLDcgKzczLDcgQEAg
ZnVuY3Rpb24gcnVuVGVzdHMoKQogICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGlu
Z0JlaGF2aW9yKCJtYWMiKTsKICAgICAgICAgdGVzdFNlbGVjdGlvbkNoYW5nZShkcmFnU2VsZWN0
aW9uLCAiZXh0ZW5kIiwgInJpZ2h0IiwgMCwgMCwgIkV4dGVuZCBkcmFnZ2VkIHNlbGVjdGlvbiBy
aWdodCAoTWFjKSIpOwogICAgICAgICB0ZXN0U2VsZWN0aW9uQ2hhbmdlKGRyYWdTZWxlY3Rpb24s
ICJleHRlbmQiLCAibGVmdCIsIDAsIDAsICJFeHRlbmQgZHJhZ2dlZCBzZWxlY3Rpb24gbGVmdCAo
TWFjKSIpOwotICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCJ3
aW4iKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcigid2lu
ZG93cyIpOwogICAgICAgICB0ZXN0U2VsZWN0aW9uQ2hhbmdlKGRyYWdTZWxlY3Rpb24sICJleHRl
bmQiLCAicmlnaHQiLCAwLCAwLCAiRXh0ZW5kIGRyYWdnZWQgc2VsZWN0aW9uIHJpZ2h0IChXaW4p
Iik7CiAgICAgICAgIHRlc3RTZWxlY3Rpb25DaGFuZ2UoZHJhZ1NlbGVjdGlvbiwgImV4dGVuZCIs
ICJsZWZ0IiwgMSwgMCwgIkV4dGVuZCBkcmFnZ2VkIHNlbGVjdGlvbiBsZWZ0IChXaW4pIik7CiAg
ICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoInVuaXgiKTsKSW5k
ZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1leHRlbmQtc2hvdWxk
LW5vdC1tb3ZlLWFjcm9zcy1jYXJldC1vbi1tYWMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1leHRlbmQtc2hvdWxkLW5v
dC1tb3ZlLWFjcm9zcy1jYXJldC1vbi1tYWMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNjk4NTYp
CisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tZXh0ZW5kLXNob3Vs
ZC1ub3QtbW92ZS1hY3Jvc3MtY2FyZXQtb24tbWFjLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtNyw3ICs3LDcgQEAgRXh0ZW5kIGJhY2t3YXJkIGFuZCB0aGVuIGZvcndhcmQgYnkgbGlu
ZQogRXh0ZW5kIGZvcndhcmQgYW5kIHRoZW4gYmFja3dhcmQgYnkgbGluZTogUEFTUwogRXh0ZW5k
IGJhY2t3YXJkIGFuZCB0aGVuIGZvcndhcmQgYnkgcGFyYWdyYXBoOiBQQVNTCiBFeHRlbmQgZm9y
d2FyZCBhbmQgdGhlbiBiYWNrd2FyZCBieSBwYXJhZ3JhcGg6IFBBU1MKLXdpbjoKK3dpbmRvd3M6
CiBFeHRlbmQgYmFja3dhcmQgYW5kIHRoZW4gZm9yd2FyZCBieSB3b3JkOiBQQVNTCiBFeHRlbmQg
Zm9yd2FyZCBhbmQgdGhlbiBiYWNrd2FyZCBieSB3b3JkOiBQQVNTCiBFeHRlbmQgYmFja3dhcmQg
YW5kIHRoZW4gZm9yd2FyZCBieSBsaW5lOiBQQVNTCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi9zZWxlY3Rpb24tZXh0ZW5kLXNob3VsZC1ub3QtbW92ZS1hY3Jvc3MtY2FyZXQt
b24tbWFjLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24v
c2VsZWN0aW9uLWV4dGVuZC1zaG91bGQtbm90LW1vdmUtYWNyb3NzLWNhcmV0LW9uLW1hYy5odG1s
CShyZXZpc2lvbiAyNjk4NTYpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zZWxl
Y3Rpb24tZXh0ZW5kLXNob3VsZC1ub3QtbW92ZS1hY3Jvc3MtY2FyZXQtb24tbWFjLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTQ4LDcgKzQ4LDcgQEAgZnVuY3Rpb24gZWRpdGluZ1Rlc3QoYmVoYXZp
b3IpIHsKICAgICB2YXIgd29yZENhcmV0RnVuY3Rpb24gPSBnZXRTZXRDYXJldEZ1bmN0aW9uKG5v
ZGUsIGNoaWxkcmVuWzJdLCBjaGlsZHJlblsyXS5kYXRhLnNlYXJjaCgibmUgMiIpKTsKIAogICAg
IGRvY3VtZW50LndyaXRlKGJlaGF2aW9yICsgIjo8YnI+Iik7Ci0gICAgcnVuVGVzdCgiYmFja3dh
cmQiLCAiZm9yd2FyZCIsICJ3b3JkIiwgYmVoYXZpb3IgPT0gIm1hYyIgPyAiIiA6IGJlaGF2aW9y
ID09ICJ3aW4iID8gIm5lICIgOiAibmUiLCBnZXRTZXRDYXJldEZ1bmN0aW9uKG5vZGUsIGNoaWxk
cmVuWzJdLCBjaGlsZHJlblsyXS5kYXRhLnNlYXJjaCgibmUgMiIpKSk7CisgICAgcnVuVGVzdCgi
YmFja3dhcmQiLCAiZm9yd2FyZCIsICJ3b3JkIiwgYmVoYXZpb3IgPT0gIm1hYyIgPyAiIiA6IGJl
aGF2aW9yID09ICJ3aW5kb3dzIiA/ICJuZSAiIDogIm5lIiwgZ2V0U2V0Q2FyZXRGdW5jdGlvbihu
b2RlLCBjaGlsZHJlblsyXSwgY2hpbGRyZW5bMl0uZGF0YS5zZWFyY2goIm5lIDIiKSkpOwogICAg
IHJ1blRlc3QoImZvcndhcmQiLCAiYmFja3dhcmQiLCAid29yZCIsIGJlaGF2aW9yID09ICJtYWMi
ID8gIiIgOiAibGkiLCBnZXRTZXRDYXJldEZ1bmN0aW9uKG5vZGUsIGNoaWxkcmVuWzJdLCBjaGls
ZHJlblsyXS5kYXRhLnNlYXJjaCgibmUgMiIpKSk7CiAgICAgcnVuVGVzdCgiYmFja3dhcmQiLCAi
Zm9yd2FyZCIsICJsaW5lIiwgYmVoYXZpb3IgPT0gIm1hYyIgPyAiIiA6ICIxXG5saW5lICIsIGdl
dFNldENhcmV0RnVuY3Rpb24obm9kZSwgY2hpbGRyZW5bMF0sIGNoaWxkcmVuWzBdLmRhdGEuc2Vh
cmNoKCIxIikpKTsKICAgICBydW5UZXN0KCJmb3J3YXJkIiwgImJhY2t3YXJkIiwgImxpbmUiLCBi
ZWhhdmlvciA9PSAibWFjIiA/ICIiIDogIjJcbmxpbmUgIiwgZ2V0U2V0Q2FyZXRGdW5jdGlvbihu
b2RlLCBjaGlsZHJlbls0XSwgY2hpbGRyZW5bNF0uZGF0YS5zZWFyY2goIjMiKSkpOwpAQCAtNTcs
NyArNTcsNyBAQCBmdW5jdGlvbiBlZGl0aW5nVGVzdChiZWhhdmlvcikgewogfQogCiBlZGl0aW5n
VGVzdCgibWFjIik7Ci1lZGl0aW5nVGVzdCgid2luIik7CitlZGl0aW5nVGVzdCgid2luZG93cyIp
OwogZWRpdGluZ1Rlc3QoInVuaXgiKTsKIAogdmFyIG5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGVzdC1kaXYiKTsKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3No
aWZ0LWNsaWNrLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vc2hpZnQtY2xpY2suaHRtbAkocmV2aXNpb24gMjY5ODU2KQorKysgTGF5b3V0VGVzdHMvZWRp
dGluZy9zZWxlY3Rpb24vc2hpZnQtY2xpY2suaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOTUsNyAr
OTUsNyBAQCBmdW5jdGlvbiBydW5TaGlmdENsaWNrVGVzdChlZGl0aW5nQmVoYXZpCiAKIGlmICh3
aW5kb3cuZXZlbnRTZW5kZXIgJiYgd2luZG93LmludGVybmFscykgewogICAgIHJ1blNoaWZ0Q2xp
Y2tUZXN0KCJtYWMiKTsKLSAgICBydW5TaGlmdENsaWNrVGVzdCgid2luIik7CisgICAgcnVuU2hp
ZnRDbGlja1Rlc3QoIndpbmRvd3MiKTsKIH0KIAogdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRy
dWU7CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi91c2VyLXNlbGVjdC1hbGwt
d2l0aC1zaGlmdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zZWxlY3Rpb24vdXNlci1zZWxlY3QtYWxsLXdpdGgtc2hpZnQtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAyNjk4NTYpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi91c2VyLXNlbGVj
dC1hbGwtd2l0aC1zaGlmdC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTY5LDcgKzY5
LDcgQEAgU29tZSBvdGhlciB0ZXh0LgogfCAiCiAiCiAKLUFmdGVyIGNsaWNraW5nIG9uIHRoZSBm
aXJzdCBlbGVtZW50ICh3aW4pOgorQWZ0ZXIgY2xpY2tpbmcgb24gdGhlIGZpcnN0IGVsZW1lbnQg
KHdpbmRvd3MpOgogfCAiCiAiCiB8IDxkaXY+CkBAIC04Niw3ICs4Niw3IEBAIFNvbWUgb3RoZXIg
dGV4dC4KIHwgIgogIgogCi1BZnRlciBzaGlmdCBjbGlja2luZyBvbiB0aGUgc2Vjb25kIGVsZW1l
bnQgKHdpbik6CitBZnRlciBzaGlmdCBjbGlja2luZyBvbiB0aGUgc2Vjb25kIGVsZW1lbnQgKHdp
bmRvd3MpOgogfCAiCiAiCiB8IDxkaXY+CkBAIC0xMDMsNyArMTAzLDcgQEAgU29tZSBvdGhlciB0
ZXh0LgogfCAiCiAiCiAKLUFmdGVyIGNsaWNraW5nIG9uIHRoZSBzZWNvbmQgZWxlbWVudCAod2lu
KToKK0FmdGVyIGNsaWNraW5nIG9uIHRoZSBzZWNvbmQgZWxlbWVudCAod2luZG93cyk6CiB8ICIK
ICIKIHwgPGRpdj4KQEAgLTEyMCw3ICsxMjAsNyBAQCBTb21lIG90aGVyIHRleHQuCiB8ICIKICIK
IAotQWZ0ZXIgc2hpZnQgY2xpY2tpbmcgb24gdGhlIGZpcnN0IGVsZW1lbnQgKHdpbik6CitBZnRl
ciBzaGlmdCBjbGlja2luZyBvbiB0aGUgZmlyc3QgZWxlbWVudCAod2luZG93cyk6CiB8ICIKICIK
IHwgPGRpdj4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3VzZXItc2VsZWN0
LWFsbC13aXRoLXNoaWZ0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vdXNlci1zZWxlY3QtYWxsLXdpdGgtc2hpZnQuaHRtbAkocmV2aXNpb24gMjY5ODU2
KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vdXNlci1zZWxlY3QtYWxsLXdpdGgt
c2hpZnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNTAsNyArNTAsNyBAQCBmdW5jdGlvbiBydW5U
ZXN0KGVkaXRpbmdCZWhhdmlvcikgewogCiBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CiAgICAg
cnVuVGVzdCgnbWFjJyk7Ci0gICAgcnVuVGVzdCgnd2luJyk7CisgICAgcnVuVGVzdCgnd2luZG93
cycpOwogICAgIHJ1blRlc3QoJ3VuaXgnKTsKIAogfSBlbHNlCkluZGV4OiBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3NwZWxsaW5nL2NvcHktcGFzdGUtY3Jhc2guaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL2NvcHktcGFzdGUtY3Jhc2guaHRtbAkocmV2aXNpb24g
MjY5ODU2KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9jb3B5LXBhc3RlLWNyYXNo
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE0LDcgKzE0LDcgQEAKIDxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgogPHNjcmlwdD4KIG9ubG9hZCA9IGluaXRTcGVsbFRlc3QoImRlc3RpbmF0aW9uIiwg
IlNwZWxsIHdlbGxjb21lLiBJcyBpdCBicm9rZW4/IiwgZnVuY3Rpb24odGV4dE5vZGUpIHsKLSAg
ICB2YXIgYmVoYXZpb3JzID0gWyJ3aW4iLCAibWFjIl07CisgICAgdmFyIGJlaGF2aW9ycyA9IFsi
d2luZG93cyIsICJtYWMiXTsKICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJlaGF2aW9ycy5sZW5n
dGg7IGkrKykgewogICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9y
KGJlaGF2aW9yc1tpXSk7CiAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJTZWxlY3RBbGwi
KTsKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvaWZyYW1lLW9ubG9hZC1jcmFzaC13
aW4uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL2lmcmFtZS1v
bmxvYWQtY3Jhc2gtd2luLmh0bWwJKHJldmlzaW9uIDI2OTg1NikKKysrIExheW91dFRlc3RzL2Vk
aXRpbmcvc3R5bGUvaWZyYW1lLW9ubG9hZC1jcmFzaC13aW4uaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMSw3ICsxLDcgQEAKIDxtZXRhPjxpbnB1dD48aDY+PG5vYnI+PC9ub2JyPjxkYXRhZ3JpZD48
aW5zPjxidXR0b24+PGVtPjxpZnJhbWUgb25sb2FkPSIKIGlmICh3aW5kb3cudGVzdFJ1bm5lciAm
JiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luJyk7CisgICAgaW50ZXJu
YWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2luZG93cycpOwogfQogCiBpZiAoZG9j
dW1lbnQuY291bnRlcikKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvbWFrZS10ZXh0
LXdyaXRpbmctZGlyZWN0aW9uLWlubGluZS13aW4uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9lZGl0aW5nL3N0eWxlL21ha2UtdGV4dC13cml0aW5nLWRpcmVjdGlvbi1pbmxpbmUtd2lu
Lmh0bWwJKHJldmlzaW9uIDI2OTg1NikKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvbWFr
ZS10ZXh0LXdyaXRpbmctZGlyZWN0aW9uLWlubGluZS13aW4uaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMTQsNyArMTQsNyBAQCBkZXNjcmlwdGlvbignVGVzdHMgdG8gZW5zdXJlIE1ha2VUZXh0V3Jp
CiBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RGYWlsZWQoJ1RoaXMgdGVzdCByZXF1
aXJlcyB0ZXN0UnVubmVyJyk7CiBpZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW4nKTsKKyAgICBpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW5kb3dzJyk7CiAKIHZhciB0ZXN0Q29udGFpbmVyID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiB0ZXN0Q29udGFpbmVyLmNvbnRlbnRFZGl0
YWJsZSA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3B1c2gtZG93bi1m
b250LXN0eWxlcy13aW4uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0
eWxlL3B1c2gtZG93bi1mb250LXN0eWxlcy13aW4uaHRtbAkocmV2aXNpb24gMjY5ODU2KQorKysg
TGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9wdXNoLWRvd24tZm9udC1zdHlsZXMtd2luLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAKIGRlc2NyaXB0aW9uKCdUZXN0IHRvIG1h
a2Ugc3VyZSB3ZSBwdXNoIGRvd24gaW5saW5lIHN0eWxlcyBwcm9wZXJseS4nKTsKIAogaWYgKHdp
bmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlv
cignd2luJyk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcignd2lu
ZG93cycpOwogdmFyIHRlc3RDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKIHRlc3RDb250YWluZXIuY29udGVudEVkaXRhYmxlID0gdHJ1ZTsKIGRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQodGVzdENvbnRhaW5lcik7CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0
eWxlL3B1c2gtZG93bi1pbXBsaWNpdC1zdHlsZXMtYXJvdW5kLWxpc3Qtd2luLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9wdXNoLWRvd24taW1wbGljaXQtc3R5
bGVzLWFyb3VuZC1saXN0LXdpbi5odG1sCShyZXZpc2lvbiAyNjk4NTYpCisrKyBMYXlvdXRUZXN0
cy9lZGl0aW5nL3N0eWxlL3B1c2gtZG93bi1pbXBsaWNpdC1zdHlsZXMtYXJvdW5kLWxpc3Qtd2lu
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAKIGRlc2NyaXB0aW9uKCdUZXN0
IHRvIG1ha2Ugc3VyZSB3ZSBwdXNoIGRvd24gaW5saW5lIHN0eWxlcyBwcm9wZXJseS4nKTsKIAog
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdC
ZWhhdmlvcignd2luJyk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlv
cignd2luZG93cycpOwogdmFyIHRlc3RDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJkaXYiKTsKIHRlc3RDb250YWluZXIuY29udGVudEVkaXRhYmxlID0gdHJ1ZTsKIGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQodGVzdENvbnRhaW5lcik7CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0
aW5nL3N0eWxlL3RvZ2dsZS1zdHlsZS1ib2xkLWl0YWxpYy1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS90b2dnbGUtc3R5bGUtYm9sZC1pdGFsaWMt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNjk4NTYpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0
eWxlL3RvZ2dsZS1zdHlsZS1ib2xkLWl0YWxpYy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTU3LDcgKzU3LDcgQEAgZXhlY0l0YWxpY0NvbW1hbmQ6IDxkaXYgaWQ9InRlc3QiPiA8ZGl2
PgogZXhlY0JvbGRDb21tYW5kOiA8ZGl2IGlkPSJ0ZXN0Ij4gPGRpdj48aT5Tb21lIHRleHQ8L2k+
PC9kaXY+IDxwPjxpPlNvbWUgbW9yZSB0ZXh0PC9pPjwvcD4gPC9kaXY+CiBleGVjSXRhbGljQ29t
bWFuZDogPGRpdiBpZD0idGVzdCI+IDxkaXY+U29tZSB0ZXh0PC9kaXY+IDxwPlNvbWUgbW9yZSB0
ZXh0PC9wPiA8L2Rpdj4KIAotVGVzdCBmb3Igd2luCitUZXN0IGZvciB3aW5kb3dzCiBleGVjQm9s
ZENvbW1hbmQ6IDxkaXYgaWQ9InRlc3QiPiA8ZGl2PjxiPlNvbWUgdGV4dDwvYj48L2Rpdj4gPHA+
PGI+U29tZSBtb3JlIHRleHQ8L2I+PC9wPiA8L2Rpdj4KIGV4ZWNJdGFsaWNDb21tYW5kOiA8ZGl2
IGlkPSJ0ZXN0Ij4gPGRpdj48Yj48aT5Tb21lIHRleHQ8L2k+PC9iPjwvZGl2PiA8cD48Yj48aT5T
b21lIG1vcmUgdGV4dDwvaT48L2I+PC9wPiA8L2Rpdj4KIGV4ZWNCb2xkQ29tbWFuZDogPGRpdiBp
ZD0idGVzdCI+IDxkaXY+PGk+U29tZSB0ZXh0PC9pPjwvZGl2PiA8cD48aT5Tb21lIG1vcmUgdGV4
dDwvaT48L3A+IDwvZGl2PgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS90b2dnbGUt
c3R5bGUtYm9sZC1pdGFsaWMtbWl4ZWQtZWRpdGFiaWxpdHktZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvdG9nZ2xlLXN0eWxlLWJvbGQtaXRhbGlj
LW1peGVkLWVkaXRhYmlsaXR5LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjY5ODU2KQorKysgTGF5
b3V0VGVzdHMvZWRpdGluZy9zdHlsZS90b2dnbGUtc3R5bGUtYm9sZC1pdGFsaWMtbWl4ZWQtZWRp
dGFiaWxpdHktZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01NSw3ICs1NSw3IEBAIGV4
ZWNJdGFsaWNDb21tYW5kOiA8ZGl2IGlkPSJ0ZXN0Ij48Yj48aT4KIGV4ZWNCb2xkQ29tbWFuZDog
PGRpdiBpZD0idGVzdCI+PGk+IEVkaXRhYmxlIDwvaT48c3BhbiBjb250ZW50ZWRpdGFibGU9ImZh
bHNlIj5Ob24tZWRpdGFibGU8L3NwYW4+PGk+IEVkaXRhYmxlIDwvaT48L2Rpdj4KIGV4ZWNJdGFs
aWNDb21tYW5kOiA8ZGl2IGlkPSJ0ZXN0Ij4gRWRpdGFibGUgPHNwYW4gY29udGVudGVkaXRhYmxl
PSJmYWxzZSI+Tm9uLWVkaXRhYmxlPC9zcGFuPiBFZGl0YWJsZSA8L2Rpdj4KIAotVGVzdCBmb3Ig
d2luCitUZXN0IGZvciB3aW5kb3dzCiBleGVjQm9sZENvbW1hbmQ6IDxkaXYgaWQ9InRlc3QiPjxi
PiBFZGl0YWJsZSA8L2I+PHNwYW4gY29udGVudGVkaXRhYmxlPSJmYWxzZSI+Tm9uLWVkaXRhYmxl
PC9zcGFuPjxiPiBFZGl0YWJsZSA8L2I+PC9kaXY+CiBleGVjSXRhbGljQ29tbWFuZDogPGRpdiBp
ZD0idGVzdCI+PGI+PGk+IEVkaXRhYmxlIDwvaT48L2I+PHNwYW4gY29udGVudGVkaXRhYmxlPSJm
YWxzZSI+Tm9uLWVkaXRhYmxlPC9zcGFuPjxiPjxpPiBFZGl0YWJsZSA8L2k+PC9iPjwvZGl2Pgog
ZXhlY0JvbGRDb21tYW5kOiA8ZGl2IGlkPSJ0ZXN0Ij48aT4gRWRpdGFibGUgPC9pPjxzcGFuIGNv
bnRlbnRlZGl0YWJsZT0iZmFsc2UiPk5vbi1lZGl0YWJsZTwvc3Bhbj48aT4gRWRpdGFibGUgPC9p
PjwvZGl2PgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS90b2dnbGUtc3R5bGUtYm9s
ZC1pdGFsaWMtbWl4ZWQtZWRpdGFiaWxpdHkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9lZGl0aW5nL3N0eWxlL3RvZ2dsZS1zdHlsZS1ib2xkLWl0YWxpYy1taXhlZC1lZGl0YWJpbGl0
eS5odG1sCShyZXZpc2lvbiAyNjk4NTYpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3Rv
Z2dsZS1zdHlsZS1ib2xkLWl0YWxpYy1taXhlZC1lZGl0YWJpbGl0eS5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xMCw3ICsxMCw3IEBAIEVkaXRhYmxlIDxzcGFuIGNvbnRlbnRlZGl0YWJsZT1mYWxz
ZT5Ob24KIDxzY3JpcHQgc3JjPS4uL2VkaXRpbmcuanMgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5
cGU9InRleHQvSmF2YVNjcmlwdCIgPjwvc2NyaXB0PgogPHNjcmlwdD4KIHRlc3QoJ21hYycpOwot
dGVzdCgnd2luJyk7Cit0ZXN0KCd3aW5kb3dzJyk7CiB0ZXN0KCd1bml4Jyk7CiBmdW5jdGlvbiB0
ZXN0KHBsYXRmb3JtKSB7CiAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCkluZGV4OiBMYXlvdXRU
ZXN0cy9lZGl0aW5nL3N0eWxlL3RvZ2dsZS1zdHlsZS1ib2xkLWl0YWxpYy5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvdG9nZ2xlLXN0eWxlLWJvbGQtaXRhbGlj
Lmh0bWwJKHJldmlzaW9uIDI2OTg1NikKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvdG9n
Z2xlLXN0eWxlLWJvbGQtaXRhbGljLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTExLDcgKzExLDcg
QEAKIDxzY3JpcHQgc3JjPS4uL2VkaXRpbmcuanMgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9
InRleHQvSmF2YVNjcmlwdCIgPjwvc2NyaXB0PgogPHNjcmlwdD4KIHRlc3QoJ21hYycpOwotdGVz
dCgnd2luJyk7Cit0ZXN0KCd3aW5kb3dzJyk7CiB0ZXN0KCd1bml4Jyk7CiBmdW5jdGlvbiB0ZXN0
KHBsYXRmb3JtKSB7CiAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9iYWNrc3BhY2UtbmF2aWdhdGVzLWJhY2suaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9iYWNrc3BhY2UtbmF2aWdhdGVzLWJhY2suaHRtbAko
cmV2aXNpb24gMjY5ODU2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvYmFja3NwYWNlLW5h
dmlnYXRlcy1iYWNrLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTUwLDcgKzUwLDcgQEAgZnVuY3Rp
b24gZG9TdGVwKHN0ZXAsIGxvY2F0aW9uKSB7CiAgICAgICAgIGlmICghZXhwZWN0KGxvY2F0aW9u
ID09ICd0ZXN0LXdpbicsICduYXZpZ2F0aW9uIHRvIHRlc3Qtd2luJykpCiAgICAgICAgICAgICBy
ZXR1cm47CiAKLSAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcign
d2luJyk7CisgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ3dp
bmRvd3MnKTsKICAgICAgICAgdGVzdEJhY2tzcGFjZU5hdmlnYXRlc0JhY2soKTsKIAogICAgICAg
ICBicmVhazsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0aW9uLWRpcmVjdGlv
bi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxl
Y3Rpb24tZGlyZWN0aW9uLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjY5ODU2KQorKysgTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3Rpb24tZGlyZWN0aW9uLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtNTUsNyArNTUsNyBAQCBQQVNTIHNlbGVjdGlvbkRpcmVjdGlvbiB3YXMgImJh
Y2t3YXJkIiBhCiBQQVNTIHNlbGVjdGlvbkRpcmVjdGlvbiB3YXMgImJhY2t3YXJkIiBhZnRlciBm
b2N1c2luZyBvbiBhbm90aGVyIGVsZW1lbnQKIFBBU1Mgc2VsZWN0aW9uRGlyZWN0aW9uIHdhcyAi
YmFja3dhcmQiIGFmdGVyIGhpZGluZyB0aGUgZWxlbWVudAogCi1pbnB1dCBvbiBXaW4KK2lucHV0
IG9uIFdpbmRvd3MKIFBBU1Mgc2VsZWN0aW9uRGlyZWN0aW9uIHdhcyAiZm9yd2FyZCIgYWZ0ZXIg
Zm9jdXNpbmcgYW5kIHNldHRpbmcgc2VsZWN0aW9uIGJ5IHNldFNlbGVjdGlvblJhbmdlKDEsIDIp
CiBQQVNTIHNlbGVjdGlvbkRpcmVjdGlvbiB3YXMgImZvcndhcmQiIGFmdGVyIGZvY3VzaW5nIG9u
IGFub3RoZXIgZWxlbWVudAogUEFTUyBzZWxlY3Rpb25EaXJlY3Rpb24gd2FzICJmb3J3YXJkIiBh
ZnRlciBoaWRpbmcgdGhlIGVsZW1lbnQKQEAgLTgxLDcgKzgxLDcgQEAgUEFTUyBzZWxlY3Rpb25E
aXJlY3Rpb24gd2FzICJiYWNrd2FyZCIgYQogUEFTUyBzZWxlY3Rpb25EaXJlY3Rpb24gd2FzICJi
YWNrd2FyZCIgYWZ0ZXIgZm9jdXNpbmcgb24gYW5vdGhlciBlbGVtZW50CiBQQVNTIHNlbGVjdGlv
bkRpcmVjdGlvbiB3YXMgImJhY2t3YXJkIiBhZnRlciBoaWRpbmcgdGhlIGVsZW1lbnQKIAotdGV4
dGFyZWEgb24gV2luCit0ZXh0YXJlYSBvbiBXaW5kb3dzCiBQQVNTIHNlbGVjdGlvbkRpcmVjdGlv
biB3YXMgImZvcndhcmQiIGFmdGVyIGZvY3VzaW5nIGFuZCBzZXR0aW5nIHNlbGVjdGlvbiBieSBz
ZXRTZWxlY3Rpb25SYW5nZSgxLCAyKQogUEFTUyBzZWxlY3Rpb25EaXJlY3Rpb24gd2FzICJmb3J3
YXJkIiBhZnRlciBmb2N1c2luZyBvbiBhbm90aGVyIGVsZW1lbnQKIFBBU1Mgc2VsZWN0aW9uRGly
ZWN0aW9uIHdhcyAiZm9yd2FyZCIgYWZ0ZXIgaGlkaW5nIHRoZSBlbGVtZW50CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdGlvbi1kaXJlY3Rpb24uaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdGlvbi1kaXJlY3Rpb24uaHRtbAkocmV2aXNp
b24gMjY5ODU2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3Rpb24tZGlyZWN0aW9u
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTkxLDcgKzkxLDcgQEAgZnVuY3Rpb24gcnVuVGVzdEZv
cihwbGF0Zm9ybSkgewogCiBpZiAod2luZG93LmludGVybmFscykgewogICAgIHJ1blRlc3RGb3Io
J01hYycpOwotICAgIHJ1blRlc3RGb3IoJ1dpbicpOworICAgIHJ1blRlc3RGb3IoJ1dpbmRvd3Mn
KTsKICAgICBydW5UZXN0Rm9yKCdVbml4Jyk7CiB9IGVsc2UKICAgICBydW5UZXN0Rm9yKG5hdmln
YXRvci5wbGF0Zm9ybS5pbmRleE9mKCdNYWMnKSA+PSAwID8gJ01hYycgOiAnV2luJyk7CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9jYWNoZWQtY2xpcHBlZC1wZGYtZXhwZWN0ZWQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9jYWNoZWQtY2xpcHBlZC1w
ZGYtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMjY5ODU2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvY2FjaGVkLWNsaXBwZWQtcGRmLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTcsNSArNyw1IEBACiA8aW1nIHNyYz0icmVzb3VyY2VzL2dyZWVuX3JlY3RhbmdsZS5wZGYiPgog
PHNjcmlwdD4KICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykK
LSAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQREZJbWFnZUNhY2hpbmdQb2xp
Y3koImVuYWJsZWQiKTsKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQREZJ
bWFnZUNhY2hpbmdQb2xpY3koIkVuYWJsZWQiKTsKIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvY2FjaGVkLWNsaXBwZWQtcGRmLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvY2FjaGVkLWNsaXBwZWQtcGRmLmh0bWwJKHJldmlzaW9uIDI2
OTg1NikKKysrIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2NhY2hlZC1jbGlwcGVkLXBkZi5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC03LDUgKzcsNSBAQAogPGltZyBzcmM9InJlc291cmNlcy9ncmVl
bl9yZWN0YW5nbGUucGRmIj4KIDxzY3JpcHQ+CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYm
IHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0
UERGSW1hZ2VDYWNoaW5nUG9saWN5KCJjbGlwQm91bmRzT25seSIpOworICAgICAgICB3aW5kb3cu
aW50ZXJuYWxzLnNldHRpbmdzLnNldFBERkltYWdlQ2FjaGluZ1BvbGljeSgiQ2xpcEJvdW5kc09u
bHkiKTsKIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZGlzcGxhY2Vk
LW5vbi1jYWNoZWQtcGRmLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvZGlzcGxhY2VkLW5vbi1jYWNoZWQtcGRmLmh0bWwJKHJldmlzaW9uIDI2OTg1NikKKysrIExh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2Rpc3BsYWNlZC1ub24tY2FjaGVkLXBkZi5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zLDcgKzMsNyBAQAogPGJvZHk+CiAgICAgPHNjcmlwdD4KICAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAgICAgICB3
aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFBERkltYWdlQ2FjaGluZ1BvbGljeSgiZGlzYWJs
ZWQiKTsKKyAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UERGSW1hZ2VD
YWNoaW5nUG9saWN5KCJEaXNhYmxlZCIpOwogICAgIDwvc2NyaXB0PgogICAgIDxpbWcgc3JjPSJy
ZXNvdXJjZXMvZ3JlZW5fcmVjdGFuZ2xlLnBkZiI+CiAgICAgPGltZyBzcmM9InJlc291cmNlcy9n
cmVlbl9yZWN0YW5nbGUucGRmIj4K
</data>

          </attachment>
      

    </bug>

</bugzilla>