<?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>226361</bug_id>
          
          <creation_ts>2021-05-27 16:08:13 -0700</creation_ts>
          <short_desc>[Modern Media Controls] put the localized information for tracks first if the track is not in the user&apos;s preferred language</short_desc>
          <delta_ts>2021-11-02 15:17:33 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</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>
          
          <blocked>226742</blocked>
    
    <blocked>232642</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hi</cc>
    
    <cc>jer.noble</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1764564</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-05-27 16:08:13 -0700</bug_when>
    <thetext>this makes it clearer/easier for the user to understand what&apos;s going on when the track label is not in the user&apos;s preferred language</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764565</commentid>
    <comment_count>1</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-05-27 16:08:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/78497853&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764572</commentid>
    <comment_count>2</comment_count>
      <attachid>429951</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-05-27 16:33:34 -0700</bug_when>
    <thetext>Created attachment 429951
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764785</commentid>
    <comment_count>3</comment_count>
      <attachid>429951</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-05-28 09:23:30 -0700</bug_when>
    <thetext>Comment on attachment 429951
Patch

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

&gt; Source/WebCore/ChangeLog:31
&gt; +        This makes it clearer/easier for the user to understand what&apos;s going on when the track label
&gt; +        is not in the user&apos;s preferred language. For example, if a `&lt;video&gt;` has an &quot;English&quot; audio
&gt; +        track, it&apos;s not very helpful to show &quot;English (è±è¯­)&quot; for Chinese users instead of something
&gt; +        like &quot;è±è¯­ (English)&quot;.
&gt; +
&gt; +        If the track has a `label` and either matches the user&apos;s preferred language or its `label`
&gt; +        already contains the localized language name, combine the track&apos;s `label` with a localized
&gt; +        description of the track if that description isn&apos;t already in the `label`. Otherwise, add
&gt; +        the localized language name first, then the description of the track, and finally the `label`.
&gt; +
&gt; +        Here are some examples if the user&apos;s preferred language is English:
&gt; +         - `&lt;track kind=&quot;subtitles&quot; srclang=&quot;en&quot;&gt;`                  would show &quot;English&quot;
&gt; +         - `&lt;track kind=&quot;subtitles&quot; srclang=&quot;en&quot; label=&quot;Foo&quot;&gt;`      would show &quot;Foo&quot;
&gt; +         - `&lt;track kind=&quot;captions&quot;  srclang=&quot;en&quot;&gt;`                  would show &quot;English Captions&quot;
&gt; +         - `&lt;track kind=&quot;captions&quot;  srclang=&quot;en&quot; label=&quot;Foo&quot;&gt;`      would show &quot;Foo Captions&quot;
&gt; +         - `&lt;track kind=&quot;captions&quot;  srclang=&quot;en&quot; label=&quot;Captions&quot;&gt;` would show &quot;Captions&quot;
&gt; +         - `&lt;track kind=&quot;subtitles&quot; srclang=&quot;fr&quot;&gt;`                  would show &quot;French&quot;
&gt; +         - `&lt;track kind=&quot;subtitles&quot; srclang=&quot;fr&quot; label=&quot;Foo&quot;&gt;`      would show &quot;French (Foo)&quot;
&gt; +         - `&lt;track kind=&quot;captions&quot;  srclang=&quot;fr&quot;&gt;`                  would show &quot;French Captions&quot;
&gt; +         - `&lt;track kind=&quot;captions&quot;  srclang=&quot;fr&quot; label=&quot;Foo&quot;&gt;`      would show &quot;French Captions (Foo)&quot;
&gt; +         - `&lt;track kind=&quot;captions&quot;  srclang=&quot;fr&quot; label=&quot;Captions&quot;&gt;` would show &quot;French Captions&quot;

This is a fantastic explanation!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764799</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-28 09:39:49 -0700</bug_when>
    <thetext>Committed r278202 (238245@main): &lt;https://commits.webkit.org/238245@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 429951.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429951</attachid>
            <date>2021-05-27 16:33:34 -0700</date>
            <delta_ts>2021-05-28 09:39:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226361-20210527173333.patch</filename>
            <type>text/plain</type>
            <size>46858</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwNjkzMjQxYzcxNWI1MjlmOGRjZDk1NWU1NzViYTIzNmI4NTkyNDBiLi5m
N2ZhOWZkNTlkZTFhOTc3NTAyMTg0OTBhNGZmOTBmM2FkODhkZDg4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsOTcgQEAKKzIwMjEtMDUtMjcgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFtNb2Rlcm4gTWVkaWEgQ29udHJvbHNdIHB1dCB0aGUgbG9jYWxpemVkIGlu
Zm9ybWF0aW9uIGZvciB0cmFja3MgZmlyc3QgaWYgdGhlIHRyYWNrIGlzIG5vdCBpbiB0aGUgdXNl
cidzIHByZWZlcnJlZCBsYW5ndWFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI2MzYxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83ODQ5Nzg1Mz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBt
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvc29ydGVkLWJ5LXVzZXIt
cHJlZmVycmVkLWxhbmd1YWdlcy5odG1sCisKKyAgICAgICAgVGhpcyBtYWtlcyBpdCBjbGVhcmVy
L2Vhc2llciBmb3IgdGhlIHVzZXIgdG8gdW5kZXJzdGFuZCB3aGF0J3MgZ29pbmcgb24gd2hlbiB0
aGUgdHJhY2sgbGFiZWwKKyAgICAgICAgaXMgbm90IGluIHRoZSB1c2VyJ3MgcHJlZmVycmVkIGxh
bmd1YWdlLiBGb3IgZXhhbXBsZSwgaWYgYSBgPHZpZGVvPmAgaGFzIGFuICJFbmdsaXNoIiBhdWRp
bworICAgICAgICB0cmFjaywgaXQncyBub3QgdmVyeSBoZWxwZnVsIHRvIHNob3cgIkVuZ2xpc2gg
KOiLseivrSkiIGZvciBDaGluZXNlIHVzZXJzIGluc3RlYWQgb2Ygc29tZXRoaW5nCisgICAgICAg
IGxpa2UgIuiLseivrSAoRW5nbGlzaCkiLgorCisgICAgICAgIElmIHRoZSB0cmFjayBoYXMgYSBg
bGFiZWxgIGFuZCBlaXRoZXIgbWF0Y2hlcyB0aGUgdXNlcidzIHByZWZlcnJlZCBsYW5ndWFnZSBv
ciBpdHMgYGxhYmVsYAorICAgICAgICBhbHJlYWR5IGNvbnRhaW5zIHRoZSBsb2NhbGl6ZWQgbGFu
Z3VhZ2UgbmFtZSwgY29tYmluZSB0aGUgdHJhY2sncyBgbGFiZWxgIHdpdGggYSBsb2NhbGl6ZWQK
KyAgICAgICAgZGVzY3JpcHRpb24gb2YgdGhlIHRyYWNrIGlmIHRoYXQgZGVzY3JpcHRpb24gaXNu
J3QgYWxyZWFkeSBpbiB0aGUgYGxhYmVsYC4gT3RoZXJ3aXNlLCBhZGQKKyAgICAgICAgdGhlIGxv
Y2FsaXplZCBsYW5ndWFnZSBuYW1lIGZpcnN0LCB0aGVuIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUg
dHJhY2ssIGFuZCBmaW5hbGx5IHRoZSBgbGFiZWxgLgorCisgICAgICAgIEhlcmUgYXJlIHNvbWUg
ZXhhbXBsZXMgaWYgdGhlIHVzZXIncyBwcmVmZXJyZWQgbGFuZ3VhZ2UgaXMgRW5nbGlzaDoKKyAg
ICAgICAgIC0gYDx0cmFjayBraW5kPSJzdWJ0aXRsZXMiIHNyY2xhbmc9ImVuIj5gICAgICAgICAg
ICAgICAgICAgd291bGQgc2hvdyAiRW5nbGlzaCIKKyAgICAgICAgIC0gYDx0cmFjayBraW5kPSJz
dWJ0aXRsZXMiIHNyY2xhbmc9ImVuIiBsYWJlbD0iRm9vIj5gICAgICAgd291bGQgc2hvdyAiRm9v
IgorICAgICAgICAgLSBgPHRyYWNrIGtpbmQ9ImNhcHRpb25zIiAgc3JjbGFuZz0iZW4iPmAgICAg
ICAgICAgICAgICAgICB3b3VsZCBzaG93ICJFbmdsaXNoIENhcHRpb25zIgorICAgICAgICAgLSBg
PHRyYWNrIGtpbmQ9ImNhcHRpb25zIiAgc3JjbGFuZz0iZW4iIGxhYmVsPSJGb28iPmAgICAgICB3
b3VsZCBzaG93ICJGb28gQ2FwdGlvbnMiCisgICAgICAgICAtIGA8dHJhY2sga2luZD0iY2FwdGlv
bnMiICBzcmNsYW5nPSJlbiIgbGFiZWw9IkNhcHRpb25zIj5gIHdvdWxkIHNob3cgIkNhcHRpb25z
IgorICAgICAgICAgLSBgPHRyYWNrIGtpbmQ9InN1YnRpdGxlcyIgc3JjbGFuZz0iZnIiPmAgICAg
ICAgICAgICAgICAgICB3b3VsZCBzaG93ICJGcmVuY2giCisgICAgICAgICAtIGA8dHJhY2sga2lu
ZD0ic3VidGl0bGVzIiBzcmNsYW5nPSJmciIgbGFiZWw9IkZvbyI+YCAgICAgIHdvdWxkIHNob3cg
IkZyZW5jaCAoRm9vKSIKKyAgICAgICAgIC0gYDx0cmFjayBraW5kPSJjYXB0aW9ucyIgIHNyY2xh
bmc9ImZyIj5gICAgICAgICAgICAgICAgICAgd291bGQgc2hvdyAiRnJlbmNoIENhcHRpb25zIgor
ICAgICAgICAgLSBgPHRyYWNrIGtpbmQ9ImNhcHRpb25zIiAgc3JjbGFuZz0iZnIiIGxhYmVsPSJG
b28iPmAgICAgICB3b3VsZCBzaG93ICJGcmVuY2ggQ2FwdGlvbnMgKEZvbykiCisgICAgICAgICAt
IGA8dHJhY2sga2luZD0iY2FwdGlvbnMiICBzcmNsYW5nPSJmciIgbGFiZWw9IkNhcHRpb25zIj5g
IHdvdWxkIHNob3cgIkZyZW5jaCBDYXB0aW9ucyIKKworICAgICAgICAqIHBhZ2UvQ2FwdGlvblVz
ZXJQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0cmFja0Rpc3BsYXlOYW1lKToK
KyAgICAgICAgKiBwYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmFkZFRleHRUcmFja0tpbmREaXNwbGF5TmFtZUlmTmVlZGVkKTogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjphZGRBdWRpb1RyYWNrS2luZERpc3BsYXlOYW1lSWZOZWVkZWQp
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmFkZFRyYWNrS2luZERpc3BsYXlOYW1lSWZOZWVk
ZWQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnRyYWNrRGlzcGxheU5hbWUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmRpc3BsYXlOYW1lRm9y
VHJhY2sgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6dGV4dFRyYWNrQ29tcGFyZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6c29ydGVkVHJhY2tM
aXN0Rm9yTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpidWlsZERpc3BsYXlTdHJpbmdGb3JUcmFj
a0Jhc2UpOiBEZWxldGVkLgorCisgICAgICAgICogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5o
OgorICAgICAgICAqIHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6dHJhY2tOb0xhYmVsVGV4dCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6dGV4dFRy
YWNrT2ZmTWVudUl0ZW1UZXh0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjp0ZXh0VHJhY2tB
dXRvbWF0aWNNZW51SXRlbVRleHQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmFkZFRyYWNr
TGFiZWxBc1N1ZmZpeCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6dGV4dFRyYWNrS2luZENs
b3NlZENhcHRpb25zRGlzcGxheU5hbWUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmFkZFRl
eHRUcmFja0tpbmRDbG9zZWRDYXB0aW9uc1N1ZmZpeCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6dGV4dFRyYWNrS2luZENhcHRpb25zRGlzcGxheU5hbWUpOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmFkZFRleHRUcmFja0tpbmRDYXB0aW9uc1N1ZmZpeCk6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6dGV4dFRyYWNrS2luZERlc2NyaXB0aW9uc0Rpc3BsYXlOYW1lKTogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjphZGRUZXh0VHJhY2tLaW5kRGVzY3JpcHRpb25zU3VmZml4KTogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjp0ZXh0VHJhY2tLaW5kQ2hhcHRlcnNEaXNwbGF5TmFtZSk6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6YWRkVGV4dFRyYWNrS2luZENoYXB0ZXJzU3VmZml4
KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjp0ZXh0VHJhY2tLaW5kTWV0YWRhdGFEaXNwbGF5
TmFtZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6YWRkVGV4dFRyYWNrS2luZE1ldGFkYXRh
U3VmZml4KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjp0ZXh0VHJhY2tLaW5kU0RIRGlzcGxh
eU5hbWUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmFkZFRleHRUcmFja0tpbmRTREhTdWZm
aXgpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnRleHRUcmFja0tpbmRFYXN5UmVhZGVyRGlz
cGxheU5hbWUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmFkZFRleHRUcmFja0tpbmRFYXN5
UmVhZGVyU3VmZml4KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjp0ZXh0VHJhY2tLaW5kRm9y
Y2VkRGlzcGxheU5hbWUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmFkZFRleHRUcmFja0tp
bmRGb3JjZWRTdWZmaXgpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmF1ZGlvVHJhY2tLaW5k
RGVzY3JpcHRpb25zRGlzcGxheU5hbWUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmFkZEF1
ZGlvVHJhY2tLaW5kRGVzY3JpcHRpb25zU3VmZml4KTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjphdWRpb1RyYWNrS2luZENvbW1lbnRhcnlEaXNwbGF5TmFtZSk6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6YWRkQXVkaW9UcmFja0tpbmRDb21tZW50YXJ5U3VmZml4KTogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjp0ZXh0VHJhY2tOb0xhYmVsVGV4dCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjphdWRpb1RyYWNrTm9MYWJlbFRleHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Y2FwdGlvbnNUZXh0VHJhY2tLaW5kRGlzcGxheU5hbWUpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6Y2FwdGlvbnNUZXh0VHJhY2tXaXRob3V0TGFiZWxNZW51SXRlbVRleHQpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6ZGVzY3JpcHRpb25zVGV4dFRyYWNrS2luZERpc3BsYXlO
YW1lKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmRlc2NyaXB0aW9uc1RleHRUcmFja1dp
dGhvdXRMYWJlbE1lbnVJdGVtVGV4dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpjaGFw
dGVyc1RleHRUcmFja0tpbmREaXNwbGF5TmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpjaGFwdGVyc1RleHRUcmFja1dpdGhvdXRMYWJlbE1lbnVJdGVtVGV4dCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjptZXRhZGF0YVRleHRUcmFja0tpbmREaXNwbGF5TmFtZSk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjptZXRhZGF0YVRleHRUcmFja1dpdGhvdXRMYWJlbE1lbnVJ
dGVtVGV4dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjp0ZXh0VHJhY2tDb3VudHJ5QW5k
TGFuZ3VhZ2VNZW51SXRlbVRleHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6dGV4dFRy
YWNrTGFuZ3VhZ2VNZW51SXRlbVRleHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Y2xv
c2VkQ2FwdGlvbktpbmRUcmFja0Rpc3BsYXlOYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OmNsb3NlZENhcHRpb25UcmFja01lbnVJdGVtVGV4dCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpzZGhUcmFja0tpbmREaXNwbGF5TmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpzZGhUcmFja01lbnVJdGVtVGV4dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpl
YXN5UmVhZGVyS2luZERpc3BsYXlOYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmVh
c3lSZWFkZXJUcmFja01lbnVJdGVtVGV4dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpm
b3JjZWRUcmFja0tpbmREaXNwbGF5TmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpm
b3JjZWRUcmFja01lbnVJdGVtVGV4dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjphdWRp
b0Rlc2NyaXB0aW9uVHJhY2tTdWZmaXhUZXh0KTogRGVsZXRlZC4KKyAgICAgICAgKiBlbi5scHJv
ai9Mb2NhbGl6YWJsZS5zdHJpbmdzOgorICAgICAgICBDbGVhbiB1cCBsb2NhbGl6ZWQgc3RyaW5n
IGZ1bmN0aW9ucyByZWxhdGVkIHRvIG1lZGlhIGNvbnRyb2xzLgorCiAyMDIxLTA1LTI3ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhbmltYXRp
b25zIHRvIEdyYXBoaWNzTGF5ZXIgbG9nZ2luZyBvdXRwdXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MgYi9Tb3VyY2UvV2ViQ29yZS9lbi5s
cHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCmluZGV4IDNkNWFhNjI2NTE5Zjk2MTQyNjVlYTI5YmM1
OGY5YmJmZTYwZDMzYTcuLmI3NDg1ZGE5ZWNmYzdlYWE1ZTM5OTM2NjUzY2Q1ZDgwOTkyNGQ5N2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MK
KysrIGIvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwpAQCAtMTYs
NDQgKzE2LDQ0IEBACiAvKiB2aXNpYmxlIG5hbWUgb2YgdGhlIHBsdWctaW4gaG9zdCBwcm9jZXNz
LiBUaGUgZmlyc3QgYXJndW1lbnQgaXMgdGhlIHBsdWctaW4gbmFtZSBhbmQgdGhlIHNlY29uZCBh
cmd1bWVudCBpcyB0aGUgYXBwbGljYXRpb24gbmFtZS4gKi8KICIlQCAoJUAgSW50ZXJuZXQgcGx1
Zy1pbikiID0gIiVAICglQCBJbnRlcm5ldCBwbHVnLWluKSI7CiAKLS8qIFRleHQgdHJhY2sgZGlz
cGxheSBuYW1lIGZvcm1hdCB0aGF0IGluY2x1ZGVzIHRoZSBsYW5ndWFnZSBvZiB0aGUgc3VidGl0
bGUsIGluIHRoZSBmb3JtIG9mICdUaXRsZSAoTGFuZ3VhZ2UpJyAqLwotIiVAICglQCkiID0gIiVA
ICglQCkiOworLyogQXVkaW8vVGV4dCB0cmFjayBkaXNwbGF5IG5hbWUgZm9ybWF0IHRoYXQgaW5j
bHVkZXMgdGhlIGxhYmVsIGFuZCBsYW5ndWFnZSBvZiB0aGUgdHJhY2ssIGluIHRoZSBmb3JtIG9m
ICdMYW5ndWFnZSAoTGFiZWwpJy4gKi8KKyIlQCAoJUApIChhdWRpby90ZXh0IHRyYWNrKSIgPSAi
JUAgKCVAKSI7CiAKLS8qIFRleHQgdHJhY2sgZGlzcGxheSBuYW1lIGZvcm1hdCB0aGF0IGluY2x1
ZGVzIHRoZSBjb3VudHJ5IGFuZCBsYW5ndWFnZSBvZiB0aGUgc3VidGl0bGUsIGluIHRoZSBmb3Jt
IG9mICdUaXRsZSAoTGFuZ3VhZ2UtQ291bnRyeSknICovCi0iJUAgKCVALSVAKSIgPSAiJUAgKCVA
LSVAKSI7Ci0KLS8qIFRleHQgdHJhY2sgY29udGFpbnMgQXVkaW8gRGVzY3JpcHRpb25zICovCi0i
JUAgQUQiID0gIiVAIEFEIjsKLQotLyogVGV4dCB0cmFjayBjb250YWlucyBjbG9zZWQgY2FwdGlv
bnMgKi8KLSIlQCBDQyIgPSAiJUAgQ0MiOworLyogQ2xvc2VkIGNhcHRpb25zIHRleHQgdHJhY2sg
ZGlzcGxheSBuYW1lIGZvcm1hdCB0aGF0IGluY2x1ZGVzIHRoZSBsYW5ndWFnZSBhbmQvb3IgbG9j
YWxlIChlLmcuICdFbmdsaXNoIENDJykuICovCisiJUAgQ0MgKHRleHQgdHJhY2spIiA9ICIlQCBD
QyI7CiAKIC8qIENhcHRpb25zIHRleHQgdHJhY2sgZGlzcGxheSBuYW1lIGZvcm1hdCB0aGF0IGlu
Y2x1ZGVzIHRoZSBsYW5ndWFnZSBhbmQvb3IgbG9jYWxlIChlLmcuICdFbmdsaXNoIENhcHRpb25z
JykuICovCi0iJUAgQ2FwdGlvbnMiID0gIiVAIENhcHRpb25zIjsKKyIlQCBDYXB0aW9ucyAodGV4
dCB0cmFjaykiID0gIiVAIENhcHRpb25zIjsKIAogLyogQ2hhcHRlcnMgdGV4dCB0cmFjayBkaXNw
bGF5IG5hbWUgZm9ybWF0IHRoYXQgaW5jbHVkZXMgdGhlIGxhbmd1YWdlIGFuZC9vciBsb2NhbGUg
KGUuZy4gJ0VuZ2xpc2ggQ2hhcHRlcnMnKS4gKi8KLSIlQCBDaGFwdGVycyIgPSAiJUAgQ2hhcHRl
cnMiOworIiVAIENoYXB0ZXJzICh0ZXh0IHRyYWNrKSIgPSAiJUAgQ2hhcHRlcnMiOworCisvKiBD
b21tZW50YXJ5IGF1ZGlvIHRyYWNrIGRpc3BsYXkgbmFtZSBmb3JtYXQgdGhhdCBpbmNsdWRlcyB0
aGUgbGFuZ3VhZ2UgYW5kL29yIGxvY2FsZSAoZS5nLiAnRW5nbGlzaCBDb21tZW50YXJ5JykuICov
CisiJUAgQ29tbWVudGFyeSAoYXVkaW8gdHJhY2spIiA9ICIlQCBDb21tZW50YXJ5IjsKKworLyog
RGVzY3JpcHRpb25zIGF1ZGlvIHRyYWNrIGRpc3BsYXkgbmFtZSBmb3JtYXQgdGhhdCBpbmNsdWRl
cyB0aGUgbGFuZ3VhZ2UgYW5kL29yIGxvY2FsZSAoZS5nLiAnRW5nbGlzaCBEZXNjcmlwdGlvbnMn
KS4gKi8KKyIlQCBEZXNjcmlwdGlvbnMgKGF1ZGlvIHRyYWNrKSIgPSAiJUAgRGVzY3JpcHRpb25z
IjsKIAogLyogRGVzY3JpcHRpb25zIHRleHQgdHJhY2sgZGlzcGxheSBuYW1lIGZvcm1hdCB0aGF0
IGluY2x1ZGVzIHRoZSBsYW5ndWFnZSBhbmQvb3IgbG9jYWxlIChlLmcuICdFbmdsaXNoIERlc2Ny
aXB0aW9ucycpLiAqLwotIiVAIERlc2NyaXB0aW9ucyIgPSAiJUAgRGVzY3JpcHRpb25zIjsKKyIl
QCBEZXNjcmlwdGlvbnMgKHRleHQgdHJhY2spIiA9ICIlQCBEZXNjcmlwdGlvbnMiOwogCi0vKiBU
ZXh0IHRyYWNrIGNvbnRhaW5zIHNpbXBsaWZpZWQgKDNyZCBncmFkZSBsZXZlbCkgc3VidGl0bGVz
ICovCi0iJUAgRWFzeSBSZWFkZXIiID0gIiVAIEVhc3kgUmVhZGVyIjsKKy8qIEVhc3kgUmVhZGVy
IChpLmUuIDNyZC1ncmFkZSBsZXZlbCkgdGV4dCB0cmFjayBkaXNwbGF5IG5hbWUgZm9ybWF0IHRo
YXQgaW5jbHVkZXMgdGhlIGxhbmd1YWdlIGFuZC9vciBsb2NhbGUgKGUuZy4gJ0VuZ2xpc2ggRWFz
eSBSZWFkZXInKS4gKi8KKyIlQCBFYXN5IFJlYWRlciAodGV4dCB0cmFjaykiID0gIiVAIEVhc3kg
UmVhZGVyIjsKIAotLyogVGV4dCB0cmFjayBjb250YWlucyBmb3JjZWQgc3VidGl0bGVzICovCi0i
JUAgRm9yY2VkIiA9ICIlQCBGb3JjZWQiOworLyogRm9yY2VkIHRleHQgdHJhY2sgZGlzcGxheSBu
YW1lIGZvcm1hdCB0aGF0IGluY2x1ZGVzIHRoZSBsYW5ndWFnZSBhbmQvb3IgbG9jYWxlIChlLmcu
ICdFbmdsaXNoIEZvcmNlZCcpLiAqLworIiVAIEZvcmNlZCAodGV4dCB0cmFjaykiID0gIiVAIEZv
cmNlZCI7CiAKIC8qIHZpc2libGUgbmFtZSBvZiB0aGUgR1BVIHByb2Nlc3MuIFRoZSBhcmd1bWVu
dCBpcyB0aGUgYXBwbGljYXRpb24gbmFtZS4gKi8KICIlQCBHcmFwaGljcyBhbmQgTWVkaWEiID0g
IiVAIEdyYXBoaWNzIGFuZCBNZWRpYSI7CiAKLS8qIE1ldGFkYXRhIHRleHQgdHJhY2sgZGlzcGxh
eSBuYW1lIGZvcm1hdCB0aGF0IGluY2x1ZGVzIHRoZSBsYW5ndWFnZSBhbmQvb3IgbG9jYWxlIChl
LmcuICdFbmdsaXNoIE1ldGFkYXRzJykuICovCi0iJUAgTWV0YWRhdGEiID0gIiVAIE1ldGFkYXRh
IjsKKy8qIE1ldGFkYXRhIHRleHQgdHJhY2sgZGlzcGxheSBuYW1lIGZvcm1hdCB0aGF0IGluY2x1
ZGVzIHRoZSBsYW5ndWFnZSBhbmQvb3IgbG9jYWxlIChlLmcuICdFbmdsaXNoIE1ldGFkYXRhJyku
ICovCisiJUAgTWV0YWRhdGEgKHRleHQgdHJhY2spIiA9ICIlQCBNZXRhZGF0YSI7CiAKIC8qIHZp
c2libGUgbmFtZSBvZiB0aGUgbmV0d29yayBwcm9jZXNzLiBUaGUgYXJndW1lbnQgaXMgdGhlIGFw
cGxpY2F0aW9uIG5hbWUuICovCiAiJUAgTmV0d29ya2luZyIgPSAiJUAgTmV0d29ya2luZyI7CiAK
LS8qIFRleHQgdHJhY2sgY29udGFpbnMgc3VidGl0bGVzIGZvciB0aGUgZGVhZiBhbmQgaGFyZCBv
ZiBoZWFyaW5nICovCi0iJUAgU0RIIiA9ICIlQCBTREgiOworLyogU0RIIChpLmUuIGRlYWYgYW5k
L29yIGhhcmQgb2YgaGVhcmluZykgdGV4dCB0cmFjayBkaXNwbGF5IG5hbWUgZm9ybWF0IHRoYXQg
aW5jbHVkZXMgdGhlIGxhbmd1YWdlIGFuZC9vciBsb2NhbGUgKGUuZy4gJ0VuZ2xpc2ggU0RIJyku
ICAqLworIiVAIFNESCAodGV4dCB0cmFjaykiID0gIiVAIFNESCI7CiAKIC8qIFZpc2libGUgbmFt
ZSBvZiBTZXJ2aWNlIFdvcmtlciBwcm9jZXNzLiBUaGUgYXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0
aW9uIG5hbWUuICovCiAiJUAgU2VydmljZSBXb3JrZXIgKCVAKSIgPSAiJUAgU2VydmljZSBXb3Jr
ZXIgKCVAKSI7CkBAIC0xODEsOCArMTgxLDggQEAKIC8qIFdLRXJyb3JBdHRyaWJ1dGVkU3RyaW5n
Q29udGVudEZhaWxlZFRvTG9hZCBkZXNjcmlwdGlvbiAqLwogIkF0dHJpYnV0ZWQgc3RyaW5nIGNv
bnRlbnQgZmFpbGVkIHRvIGxvYWQiID0gIkF0dHJpYnV0ZWQgc3RyaW5nIGNvbnRlbnQgZmFpbGVk
IHRvIGxvYWQiOwogCi0vKiBNZW51IGl0ZW0gbGFiZWwgZm9yIGF1dG9tYXRpYyB0cmFjayBzZWxl
Y3Rpb24gYmVoYXZpb3IgKi8KLSJBdXRvIChSZWNvbW1lbmRlZCkiID0gIkF1dG8gKFJlY29tbWVu
ZGVkKSI7CisvKiBNZW51IGl0ZW0gbGFiZWwgZm9yIGF1dG9tYXRpYyB0cmFjayBzZWxlY3Rpb24g
YmVoYXZpb3IuICovCisiQXV0byAoUmVjb21tZW5kZWQpICh0ZXh0IHRyYWNrKSIgPSAiQXV0byAo
UmVjb21tZW5kZWQpIjsKIAogLyogQmFjayBjb250ZXh0IG1lbnUgaXRlbSAqLwogIkJhY2siID0g
IkJhY2siOwpAQCAtMjA4LDggKzIwOCw4IEBACiAvKiBMYWJlbCBmb3IgdGhlIGJ1eSB3aXRoIEFw
cGxlIFBheSBidXR0b24uICovCiAiQnV5IHdpdGggQXBwbGUgUGF5IiA9ICJCdXkgd2l0aCBBcHBs
ZSBQYXkiOwogCi0vKiBEaXNwbGF5IG5hbWUgZm9yIGNsb3NlZCBjYXB0aW9ucyB0ZXh0IHRyYWNr
cyB0aGF0IGlzIHVzZWQgdG8gc2VlIGlmIHRoZSBIVE1MICdsYWJlbCcgYWxyZWFkeSBjb250YWlu
cyAnQ0MnLiAqLwotIkNDIiA9ICJDQyI7CisvKiBEaXNwbGF5IG5hbWUgZm9yIGNsb3NlZCBjYXB0
aW9ucyB0ZXh0IHRyYWNrcy4gKi8KKyJDQyAodGV4dCB0cmFjaykiID0gIkNDIjsKIAogLyogQ2Fu
Y2VsICovCiAiQ2FuY2VsIiA9ICJDYW5jZWwiOwpAQCAtMjIzLDggKzIyMyw4IEBACiAvKiBDYXBp
dGFsaXplIGNvbnRleHQgbWVudSBpdGVtICovCiAiQ2FwaXRhbGl6ZSIgPSAiQ2FwaXRhbGl6ZSI7
CiAKLS8qIERpc3BsYXkgbmFtZSBmb3IgdGV4dCB0cmFjayBraW5kICdjYXB0aW9ucycgdGhhdCBp
cyB1c2VkIHRvIHNlZSBpZiB0aGUgSFRNTCAnbGFiZWwnIGFscmVhZHkgY29udGFpbnMgJ0NhcHRp
b25zJy4gKi8KLSJDYXB0aW9ucyIgPSAiQ2FwdGlvbnMiOworLyogRGlzcGxheSBuYW1lIGZvciB0
ZXh0IHRyYWNrIGtpbmQgJ2NhcHRpb25zJy4gKi8KKyJDYXB0aW9ucyAodGV4dCB0cmFjaykiID0g
IkNhcHRpb25zIjsKIAogLyogVW5kbyBhY3Rpb24gbmFtZSAqLwogIkNlbnRlciAoVW5kbyBhY3Rp
b24gbmFtZSkiID0gIkNlbnRlciI7CkBAIC0yMzIsOCArMjMyLDggQEAKIC8qIFVuZG8gYWN0aW9u
IG5hbWUgKi8KICJDaGFuZ2UgQXR0cmlidXRlcyAoVW5kbyBhY3Rpb24gbmFtZSkiID0gIkNoYW5n
ZSBBdHRyaWJ1dGVzIjsKIAotLyogRGlzcGxheSBuYW1lIGZvciB0ZXh0IHRyYWNrIGtpbmQgJ2No
YXB0ZXJzJyB0aGF0IGlzIHVzZWQgdG8gc2VlIGlmIHRoZSBIVE1MICdsYWJlbCcgYWxyZWFkeSBj
b250YWlucyAnQ2hhcHRlcnMnLiAqLwotIkNoYXB0ZXJzIiA9ICJDaGFwdGVycyI7CisvKiBEaXNw
bGF5IG5hbWUgZm9yIHRleHQgdHJhY2sga2luZCAnY2hhcHRlcnMnLiAqLworIkNoYXB0ZXJzICh0
ZXh0IHRyYWNrKSIgPSAiQ2hhcHRlcnMiOwogCiAvKiBDaGVjayBzcGVsbGluZyBjb250ZXh0IG1l
bnUgaXRlbSAqLwogIkNoZWNrIERvY3VtZW50IE5vdyIgPSAiQ2hlY2sgRG9jdW1lbnQgTm93IjsK
QEAgLTI2OCw2ICsyNjgsOSBAQAogLyogU3VidGl0bGUgb2YgdGhlIGxhYmVsIHRvIHNob3cgb24g
YSBzbmFwc2hvdHRlZCBwbHVnLWluICovCiAiQ2xpY2sgdG8gcmVzdGFydCIgPSAiQ2xpY2sgdG8g
cmVzdGFydCI7CiAKKy8qIERpc3BsYXkgbmFtZSBmb3IgYXVkaW8gdHJhY2sga2luZCAnY29tbWVu
dGFyeScuICovCisiQ29tbWVudGFyeSAoYXVkaW8gdHJhY2spIiA9ICIlQCBDb21tZW50YXJ5IjsK
KwogLyogV0tFcnJvckNvbnRlbnRSdWxlTGlzdFN0b3JlQ29tcGlsZUZhaWxlZCBkZXNjcmlwdGlv
biAqLwogIkNvbXBpbGluZyBhIFdLQ29udGVudFJ1bGVMaXN0IGZhaWxlZCIgPSAiQ29tcGlsaW5n
IGEgV0tDb250ZW50UnVsZUxpc3QgZmFpbGVkIjsKIApAQCAtMzM0LDggKzMzNywxMSBAQAogLyog
VW5kbyBhY3Rpb24gbmFtZSAqLwogIkRlbGV0ZSAoVW5kbyBhY3Rpb24gbmFtZSkiID0gIkRlbGV0
ZSI7CiAKLS8qIERpc3BsYXkgbmFtZSBmb3IgdGV4dCB0cmFjayBraW5kICdkZXNjcmlwdGlvbnMn
IHRoYXQgaXMgdXNlZCB0byBzZWUgaWYgdGhlIEhUTUwgJ2xhYmVsJyBhbHJlYWR5IGNvbnRhaW5z
ICdEZXNjcmlwdGlvbnMnLiAqLwotIkRlc2NyaXB0aW9ucyIgPSAiRGVzY3JpcHRpb25zIjsKKy8q
IERpc3BsYXkgbmFtZSBmb3IgYXVkaW8gdHJhY2sga2luZCAnZGVzY3JpcHRpb25zJy4gKi8KKyJE
ZXNjcmlwdGlvbnMgKGF1ZGlvIHRyYWNrKSIgPSAiRGVzY3JpcHRpb25zIjsKKworLyogRGlzcGxh
eSBuYW1lIGZvciB0ZXh0IHRyYWNrIGtpbmQgJ2Rlc2NyaXB0aW9ucycuICovCisiRGVzY3JpcHRp
b25zICh0ZXh0IHRyYWNrKSIgPSAiRGVzY3JpcHRpb25zIjsKIAogLyogdGV4dCB0byBkaXNwbGF5
IGluIDxkZXRhaWxzPiB0YWcgd2hlbiBpdCBoYXMgbm8gPHN1bW1hcnk+IGNoaWxkICovCiAiRGV0
YWlscyIgPSAiRGV0YWlscyI7CkBAIC0zODIsOCArMzg4LDggQEAKIC8qIFVuZG8gYWN0aW9uIG5h
bWUgKi8KICJEcmFnIChVbmRvIGFjdGlvbiBuYW1lKSIgPSAiRHJhZyI7CiAKLS8qIERpc3BsYXkg
bmFtZSBmb3IgZWFzeSByZWFkZXIgdGV4dCB0cmFja3MgdGhhdCBpcyB1c2VkIHRvIHNlZSBpZiB0
aGUgSFRNTCAnbGFiZWwnIGFscmVhZHkgY29udGFpbnMgJ0Vhc3kgUmVhZGVyJy4gKi8KLSJFYXN5
IFJlYWRlciIgPSAiRWFzeSBSZWFkZXIiOworLyogRGlzcGxheSBuYW1lIGZvciBlYXN5IHJlYWRl
ciAoaS5lLiAzcmQtZ3JhZGUgbGV2ZWwpIHRleHQgdHJhY2tzLiAqLworIkVhc3kgUmVhZGVyICh0
ZXh0IHRyYWNrKSIgPSAiRWFzeSBSZWFkZXIiOwogCiAvKiBWaWRlbyBFbnRlciBGdWxsIFNjcmVl
biBjb250ZXh0IG1lbnUgaXRlbSAqLwogIkVudGVyIEZ1bGwgU2NyZWVuIiA9ICJFbnRlciBGdWxs
IFNjcmVlbiI7CkBAIC00MzAsOCArNDM2LDggQEAKIC8qIEZvbnQgY29udGV4dCBzdWItbWVudSBp
dGVtICovCiAiRm9udCIgPSAiRm9udCI7CiAKLS8qIERpc3BsYXkgbmFtZSBmb3IgdGV4dCB0cmFj
ayBraW5kICdmb3JjZWQnIHRoYXQgaXMgdXNlZCB0byBzZWUgaWYgdGhlIEhUTUwgJ2xhYmVsJyBh
bHJlYWR5IGNvbnRhaW5zICdGb3JjZWQnLiAqLwotIkZvcmNlZCIgPSAiRm9yY2VkIjsKKy8qIERp
c3BsYXkgbmFtZSBmb3IgdGV4dCB0cmFjayBraW5kICdmb3JjZWQnLiAqLworIkZvcmNlZCAodGV4
dCB0cmFjaykiID0gIkZvcmNlZCI7CiAKIC8qIFVuZG8gYWN0aW9uIG5hbWUgKi8KICJGb3JtYXQg
QmxvY2sgKFVuZG8gYWN0aW9uIG5hbWUpIiA9ICJGb3JtYXR0aW5nIjsKQEAgLTU5Miw4ICs1OTgs
OCBAQAogLyogTWFsd2FyZSBjb25maXJtYXRpb24gZGlhbG9nICovCiAiTWVyZWx5IHZpc2l0aW5n
IGEgc2l0ZSBpcyBzdWZmaWNpZW50IGZvciBtYWx3YXJlIHRvIGluc3RhbGwgaXRzZWxmIGFuZCBo
YXJtIHlvdXIgY29tcHV0ZXIuIiA9ICJNZXJlbHkgdmlzaXRpbmcgYSBzaXRlIGlzIHN1ZmZpY2ll
bnQgZm9yIG1hbHdhcmUgdG8gaW5zdGFsbCBpdHNlbGYgYW5kIGhhcm0geW91ciBjb21wdXRlci4i
OwogCi0vKiBEaXNwbGF5IG5hbWUgZm9yIHRleHQgdHJhY2sga2luZCAnbWV0YWRhdGEnIHRoYXQg
aXMgdXNlZCB0byBzZWUgaWYgdGhlIEhUTUwgJ2xhYmVsJyBhbHJlYWR5IGNvbnRhaW5zICdNZXRh
ZGF0YScuICovCi0iTWV0YWRhdGEiID0gIk1ldGFkYXRhIjsKKy8qIERpc3BsYXkgbmFtZSBmb3Ig
dGV4dCB0cmFjayBraW5kICdtZXRhZGF0YScuICovCisiTWV0YWRhdGEgKHRleHQgdHJhY2spIiA9
ICJNZXRhZGF0YSI7CiAKIC8qIExhYmVsIHRleHQgdG8gYmUgdXNlZCB3aGVuIGEgcGx1Z2luIGlz
IG1pc3NpbmcgKi8KICJNaXNzaW5nIFBsdWctaW4iID0gIk1pc3NpbmcgUGx1Zy1pbiI7CkBAIC02
MjUsOCArNjMxLDggQEAKIC8qIE9LIGJ1dHRvbiBsYWJlbCBpbiBkb2N1bWVudCBwYXNzd29yZCBm
YWlsdXJlIGFsZXJ0ICovCiAiT0sgKGRvY3VtZW50IHBhc3N3b3JkIGZhaWx1cmUgYWxlcnQpIiA9
ICJPSyI7CiAKLS8qIE1lbnUgaXRlbSBsYWJlbCBmb3IgdGhlIHRyYWNrIHRoYXQgcmVwcmVzZW50
cyBkaXNhYmxpbmcgY2xvc2VkIGNhcHRpb25zICovCi0iT2ZmIiA9ICJPZmYiOworLyogTWVudSBp
dGVtIGxhYmVsIGZvciB0aGUgdHJhY2sgdGhhdCByZXByZXNlbnRzIGRpc2FibGluZyBjbG9zZWQg
Y2FwdGlvbnMuICovCisiT2ZmICh0ZXh0IHRyYWNrKSIgPSAiT2ZmIjsKIAogLyogVGl0bGUgZm9y
IE9wZW4gTGluayBhY3Rpb24gYnV0dG9uICovCiAiT3BlbiIgPSAiT3BlbiI7CkBAIC03NDUsOCAr
NzUxLDggQEAKIC8qIFJpZ2h0IHRvIExlZnQgY29udGV4dCBtZW51IGl0ZW0gKi8KICJSaWdodCB0
byBMZWZ0IiA9ICJSaWdodCB0byBMZWZ0IjsKIAotLyogRGlzcGxheSBuYW1lIGZvciBkZWFmIGFu
ZCBoYXJkIG9mIGhlYXJpbmcgc3VidGl0bGUgdGV4dCB0cmFja3MgdGhhdCBpcyB1c2VkIHRvIHNl
ZSBpZiB0aGUgSFRNTCAnbGFiZWwnIGFscmVhZHkgY29udGFpbnMgJ1NESCcuICovCi0iU0RIIiA9
ICJTREgiOworLyogRGlzcGxheSBuYW1lIGZvciBTREggKGkuZS4gZGVhZiBhbmQvb3IgaGFyZCBv
ZiBoZWFyaW5nKSB0ZXh0IHRyYWNrcy4gKi8KKyJTREggKHRleHQgdHJhY2spIiA9ICJTREgiOwog
CiAvKiBUaXRsZSBvZiB0aGUgU2VhcmNoIGJ1dHRvbiBmb3Igem9vbWVkIGZvcm0gY29udHJvbHMu
ICovCiAiU2VhcmNoIiA9ICJTZWFyY2giOwpAQCAtMTAzMywxNCArMTAzOSwxMSBAQAogLyogVW5k
byBhY3Rpb24gbmFtZSAqLwogIlVuZGVybGluZSAoVW5kbyBhY3Rpb24gbmFtZSkiID0gIlVuZGVy
bGluZSI7CiAKLS8qIE1lbnUgaXRlbSBsYWJlbCBmb3IgYW4gYXVkaW8gdHJhY2sgdGhhdCBoYXMg
bm8gb3RoZXIgbmFtZSAqLwotIlVua25vd24gKGF1ZGlvIHRyYWNrKSIgPSAiVW5rbm93biI7Ci0K
IC8qIFVua25vd24gZmlsZXNpemUgRlRQIGRpcmVjdG9yeSBsaXN0aW5nIGl0ZW0gKi8KICJVbmtu
b3duIChmaWxlc2l6ZSkiID0gIlVua25vd24iOwogCi0vKiBNZW51IGl0ZW0gbGFiZWwgZm9yIGEg
dGV4dCB0cmFjayB0aGF0IGhhcyBubyBvdGhlciBuYW1lICovCi0iVW5rbm93biAodGV4dCB0cmFj
aykiID0gIlVua25vd24iOworLyogTWVudSBpdGVtIGxhYmVsIGZvciBhIGF1ZGlvL3RleHQgdHJh
Y2sgdGhhdCBoYXMgbm8gb3RoZXIgbmFtZS4gKi8KKyJVbmtub3duIChhdWRpby90ZXh0IHRyYWNr
KSIgPSAiVW5rbm93biI7CiAKIC8qIFVuZG8gYWN0aW9uIG5hbWUgKi8KICJVbmxpbmsgKFVuZG8g
YWN0aW9uIG5hbWUpIiA9ICJVbmxpbmsiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlv
blVzZXJQcmVmZXJlbmNlcy5jcHAKaW5kZXggNTVmYTA5NjRjN2ZkOTg4NjM1ZWYzMzI1Y2JkYWJm
MGUyMTM0NDg0Yi4uYTBiNmIyZjI1NjQ1MWMwNzVlYzVlZGQwYmYzYmIwZDA5MDM4MGRjMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwCkBAIC0y
MDUsNyArMjA1LDcgQEAgc3RhdGljIFN0cmluZyB0cmFja0Rpc3BsYXlOYW1lKFRleHRUcmFjayog
dHJhY2spCiAgICAgICAgIHJldHVybiB0ZXh0VHJhY2tBdXRvbWF0aWNNZW51SXRlbVRleHQoKTsK
IAogICAgIGlmICh0cmFjay0+bGFiZWwoKS5pc0VtcHR5KCkgJiYgdHJhY2stPnZhbGlkQkNQNDdM
YW5ndWFnZSgpLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIHRleHRUcmFja05vTGFiZWxUZXh0
KCk7CisgICAgICAgIHJldHVybiB0cmFja05vTGFiZWxUZXh0KCk7CiAgICAgaWYgKCF0cmFjay0+
bGFiZWwoKS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB0cmFjay0+bGFiZWwoKTsKICAgICBy
ZXR1cm4gdHJhY2stPnZhbGlkQkNQNDdMYW5ndWFnZSgpOwpAQCAtMjU1LDcgKzI1NSw3IEBAIFZl
Y3RvcjxSZWZQdHI8VGV4dFRyYWNrPj4gQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6c29ydGVkVHJh
Y2tMaXN0Rm9yTWVudShUZXh0VHJhCiBzdGF0aWMgU3RyaW5nIHRyYWNrRGlzcGxheU5hbWUoQXVk
aW9UcmFjayogdHJhY2spCiB7CiAgICAgaWYgKHRyYWNrLT5sYWJlbCgpLmlzRW1wdHkoKSAmJiB0
cmFjay0+dmFsaWRCQ1A0N0xhbmd1YWdlKCkuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gYXVk
aW9UcmFja05vTGFiZWxUZXh0KCk7CisgICAgICAgIHJldHVybiB0cmFja05vTGFiZWxUZXh0KCk7
CiAgICAgaWYgKCF0cmFjay0+bGFiZWwoKS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB0cmFj
ay0+bGFiZWwoKTsKICAgICByZXR1cm4gdHJhY2stPnZhbGlkQkNQNDdMYW5ndWFnZSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFB
Ri5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFG
LmNwcAppbmRleCBmY2E2YWNjODI3ODUzYjQ1NmE5YmEwYzQwMDY4NzIyOTcwMzMwYjkzLi41MjYw
ZTJjNzhlODQxYjMzMDc4OTYxZTZmNmE1MThiMTMxNDdiOThmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcApAQCAtNTU5
LDE0MiArNTU5LDE0NiBAQCBzdGF0aWMgU3RyaW5nIGxhbmd1YWdlSWRlbnRpZmllcihjb25zdCBT
dHJpbmcmIGxhbmd1YWdlQ29kZSkKICAgICByZXR1cm4gbG93ZXJjYXNlTGFuZ3VhZ2VDb2RlOwog
fQogCi1zdGF0aWMgdm9pZCBidWlsZERpc3BsYXlTdHJpbmdGb3JUcmFja0Jhc2UoU3RyaW5nQnVp
bGRlciYgZGlzcGxheU5hbWUsIGNvbnN0IFRyYWNrQmFzZSYgdHJhY2spCitzdGF0aWMgU3RyaW5n
IGFkZFRleHRUcmFja0tpbmREaXNwbGF5TmFtZUlmTmVlZGVkKGNvbnN0IFRleHRUcmFjayYgdHJh
Y2ssIGNvbnN0IFN0cmluZyYgdGV4dCkKIHsKKyAgICBTdHJpbmcgcmVzdWx0OworCisgICAgaWYg
KHRyYWNrLmlzQ2xvc2VkQ2FwdGlvbnMoKSkgeworICAgICAgICBpZiAoIXRleHQuY29udGFpbnMo
dGV4dFRyYWNrS2luZENsb3NlZENhcHRpb25zRGlzcGxheU5hbWUoKSkpCisgICAgICAgICAgICBy
ZXN1bHQgPSBhZGRUZXh0VHJhY2tLaW5kQ2xvc2VkQ2FwdGlvbnNTdWZmaXgodGV4dCk7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgc3dpdGNoICh0cmFjay5raW5kKCkpIHsKKyAgICAgICAgY2FzZSBU
ZXh0VHJhY2s6OktpbmQ6OlN1YnRpdGxlczoKKyAgICAgICAgICAgIC8vIFN1YnRpdGxlIHRleHQg
dHJhY2tzIGFyZSBvbmx5IHNob3duIGluIGEgZGVkaWNhdGVkICJTdWJ0aXRsZSIgZ3JvdXBpbmcs
IG1lYW5pbmcgaXQKKyAgICAgICAgICAgIC8vIHdvdWxkIGxvb2sgb2RkIHRvIGFkZCBpdCBhcyBh
IHN1ZmZpeCAoZS5nLiAiU3VidGl0bGVzID4gRW5nbGlzaCBTdWJ0aXRsZXMiKS4KKyAgICAgICAg
ICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgVGV4dFRyYWNrOjpLaW5kOjpDYXB0aW9uczoKKyAg
ICAgICAgICAgIGlmICghdGV4dC5jb250YWlucyh0ZXh0VHJhY2tLaW5kQ2FwdGlvbnNEaXNwbGF5
TmFtZSgpKSkKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBhZGRUZXh0VHJhY2tLaW5kQ2FwdGlv
bnNTdWZmaXgodGV4dCk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFRleHRU
cmFjazo6S2luZDo6RGVzY3JpcHRpb25zOgorICAgICAgICAgICAgaWYgKCF0ZXh0LmNvbnRhaW5z
KHRleHRUcmFja0tpbmREZXNjcmlwdGlvbnNEaXNwbGF5TmFtZSgpKSkKKyAgICAgICAgICAgICAg
ICByZXN1bHQgPSBhZGRUZXh0VHJhY2tLaW5kRGVzY3JpcHRpb25zU3VmZml4KHRleHQpOworICAg
ICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBUZXh0VHJhY2s6OktpbmQ6OkNoYXB0ZXJz
OgorICAgICAgICAgICAgaWYgKCF0ZXh0LmNvbnRhaW5zKHRleHRUcmFja0tpbmRDaGFwdGVyc0Rp
c3BsYXlOYW1lKCkpKQorICAgICAgICAgICAgICAgIHJlc3VsdCA9IGFkZFRleHRUcmFja0tpbmRD
aGFwdGVyc1N1ZmZpeCh0ZXh0KTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2Ug
VGV4dFRyYWNrOjpLaW5kOjpNZXRhZGF0YToKKyAgICAgICAgICAgIGlmICghdGV4dC5jb250YWlu
cyh0ZXh0VHJhY2tLaW5kTWV0YWRhdGFEaXNwbGF5TmFtZSgpKSkKKyAgICAgICAgICAgICAgICBy
ZXN1bHQgPSBhZGRUZXh0VHJhY2tLaW5kTWV0YWRhdGFTdWZmaXgodGV4dCk7CisgICAgICAgICAg
ICBicmVhazsKKworICAgICAgICBjYXNlIFRleHRUcmFjazo6S2luZDo6Rm9yY2VkOgorICAgICAg
ICAgICAgLy8gSGFuZGxlZCBiZWxvdy4KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9Cisg
ICAgfQorCisgICAgaWYgKHJlc3VsdC5pc0VtcHR5KCkpCisgICAgICAgIHJlc3VsdCA9IHRleHQ7
CisKKyAgICBpZiAodHJhY2suaXNTREgoKSAmJiAhdGV4dC5jb250YWlucyh0ZXh0VHJhY2tLaW5k
U0RIRGlzcGxheU5hbWUoKSkpCisgICAgICAgIHJlc3VsdCA9IGFkZFRleHRUcmFja0tpbmRTREhT
dWZmaXgocmVzdWx0KTsKKworICAgIGlmICh0cmFjay5pc0Vhc3lUb1JlYWQoKSAmJiAhdGV4dC5j
b250YWlucyh0ZXh0VHJhY2tLaW5kRWFzeVJlYWRlckRpc3BsYXlOYW1lKCkpKQorICAgICAgICBy
ZXN1bHQgPSBhZGRUZXh0VHJhY2tLaW5kRWFzeVJlYWRlclN1ZmZpeChyZXN1bHQpOworCisgICAg
aWYgKCh0cmFjay5jb250YWluc09ubHlGb3JjZWRTdWJ0aXRsZXMoKSB8fCB0cmFjay5raW5kKCkg
PT0gVGV4dFRyYWNrOjpLaW5kOjpGb3JjZWQpICYmICF0ZXh0LmNvbnRhaW5zKHRleHRUcmFja0tp
bmRGb3JjZWREaXNwbGF5TmFtZSgpKSkKKyAgICAgICAgcmVzdWx0ID0gYWRkVGV4dFRyYWNrS2lu
ZEZvcmNlZFN1ZmZpeChyZXN1bHQpOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGlj
IFN0cmluZyBhZGRBdWRpb1RyYWNrS2luZERpc3BsYXlOYW1lSWZOZWVkZWQoY29uc3QgQXVkaW9U
cmFjayYgdHJhY2ssIGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICAvLyBBdWRpbyB0cmFja3Mg
YXJlIG9ubHkgc2hvd24gaW4gYSBkZWRpY2F0ZWQgIkxhbmd1YWdlcyIgZ3JvdXBpbmcsIG1lYW5p
bmcgaXQgd291bGQgbG9vayBvZGQgdG8KKyAgICAvLyBhZGQgaXQgYXMgYSBzdWZmaXggKGUuZy4g
Ikxhbmd1YWdlcyA+IEVuZ2xpc2ggTGFuZ3VhZ2UiKS4KKworICAgIGlmICgodHJhY2sua2luZCgp
ID09IEF1ZGlvVHJhY2s6OmRlc2NyaXB0aW9uS2V5d29yZCgpIHx8IHRyYWNrLmtpbmQoKSA9PSBB
dWRpb1RyYWNrOjptYWluRGVzY0tleXdvcmQoKSkgJiYgIXRleHQuY29udGFpbnMoYXVkaW9UcmFj
a0tpbmREZXNjcmlwdGlvbnNEaXNwbGF5TmFtZSgpKSkKKyAgICAgICAgcmV0dXJuIGFkZEF1ZGlv
VHJhY2tLaW5kRGVzY3JpcHRpb25zU3VmZml4KHRleHQpOworCisgICAgaWYgKHRyYWNrLmtpbmQo
KSA9PSBBdWRpb1RyYWNrOjpjb21tZW50YXJ5S2V5d29yZCgpICYmICF0ZXh0LmNvbnRhaW5zKGF1
ZGlvVHJhY2tLaW5kQ29tbWVudGFyeURpc3BsYXlOYW1lKCkpKQorICAgICAgICByZXR1cm4gYWRk
QXVkaW9UcmFja0tpbmRDb21tZW50YXJ5U3VmZml4KHRleHQpOworCisgICAgcmV0dXJuIHRleHQ7
Cit9CisKK3N0YXRpYyBTdHJpbmcgYWRkVHJhY2tLaW5kRGlzcGxheU5hbWVJZk5lZWRlZChjb25z
dCBUcmFja0Jhc2UmIHRyYWNrLCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgc3dpdGNoICh0
cmFjay50eXBlKCkpIHsKKyAgICBjYXNlIFRyYWNrQmFzZTo6VHlwZTo6VGV4dFRyYWNrOgorICAg
ICAgICByZXR1cm4gYWRkVGV4dFRyYWNrS2luZERpc3BsYXlOYW1lSWZOZWVkZWQoZG93bmNhc3Q8
VGV4dFRyYWNrPih0cmFjayksIHRleHQpOworCisgICAgY2FzZSBUcmFja0Jhc2U6OlR5cGU6OkF1
ZGlvVHJhY2s6CisgICAgICAgIHJldHVybiBhZGRBdWRpb1RyYWNrS2luZERpc3BsYXlOYW1lSWZO
ZWVkZWQoZG93bmNhc3Q8QXVkaW9UcmFjaz4odHJhY2spLCB0ZXh0KTsKKworICAgIGNhc2UgVHJh
Y2tCYXNlOjpUeXBlOjpWaWRlb1RyYWNrOgorICAgIGNhc2UgVHJhY2tCYXNlOjpUeXBlOjpCYXNl
VHJhY2s6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAg
ICB9CisKKyAgICByZXR1cm4gdGV4dDsKK30KKworc3RhdGljIFN0cmluZyB0cmFja0Rpc3BsYXlO
YW1lKGNvbnN0IFRyYWNrQmFzZSYgdHJhY2spCit7CisgICAgaWYgKCZ0cmFjayA9PSAmVGV4dFRy
YWNrOjpjYXB0aW9uTWVudU9mZkl0ZW0oKSkKKyAgICAgICAgcmV0dXJuIHRleHRUcmFja09mZk1l
bnVJdGVtVGV4dCgpOworICAgIGlmICgmdHJhY2sgPT0gJlRleHRUcmFjazo6Y2FwdGlvbk1lbnVB
dXRvbWF0aWNJdGVtKCkpCisgICAgICAgIHJldHVybiB0ZXh0VHJhY2tBdXRvbWF0aWNNZW51SXRl
bVRleHQoKTsKKworICAgIFN0cmluZyByZXN1bHQ7CisKICAgICBTdHJpbmcgbGFiZWwgPSB0cmFj
ay5sYWJlbCgpOwogICAgIFN0cmluZyB0cmFja0xhbmd1YWdlSWRlbnRpZmllciA9IHRyYWNrLnZh
bGlkQkNQNDdMYW5ndWFnZSgpOwogCiAgICAgYXV0byBwcmVmZXJyZWRMYW5ndWFnZXMgPSB1c2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpObyk7CiAgICAgYXV0
byBkZWZhdWx0TGFuZ3VhZ2UgPSAhcHJlZmVycmVkTGFuZ3VhZ2VzLmlzRW1wdHkoKSA/IHByZWZl
cnJlZExhbmd1YWdlc1swXSA6IGVtcHR5U3RyaW5nKCk7IC8vIFRoaXMgbWF0Y2hlcyBgV1RGOjpk
ZWZhdWx0TGFuZ3VhZ2VgLgotICAgIFJldGFpblB0cjxDRkxvY2FsZVJlZj4gY3VycmVudExvY2Fs
ZSA9IGFkb3B0Q0YoQ0ZMb2NhbGVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZGVmYXVsdExh
bmd1YWdlLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpKTsKLSAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdS
ZWY+IGxvY2FsZUlkZW50aWZpZXIgPSBhZG9wdENGKENGTG9jYWxlQ3JlYXRlQ2Fub25pY2FsTG9j
YWxlSWRlbnRpZmllckZyb21TdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgdHJhY2tMYW5ndWFn
ZUlkZW50aWZpZXIuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSkpOwotICAgIFJldGFpblB0cjxDRlN0
cmluZ1JlZj4gbGFuZ3VhZ2VDRiA9IGFkb3B0Q0YoQ0ZMb2NhbGVDb3B5RGlzcGxheU5hbWVGb3JQ
cm9wZXJ0eVZhbHVlKGN1cnJlbnRMb2NhbGUuZ2V0KCksIGtDRkxvY2FsZUxhbmd1YWdlQ29kZSwg
bG9jYWxlSWRlbnRpZmllci5nZXQoKSkpOwotICAgIFN0cmluZyBsYW5ndWFnZSA9IGxhbmd1YWdl
Q0YuZ2V0KCk7CisgICAgYXV0byBjdXJyZW50TG9jYWxlID0gYWRvcHRDRihDRkxvY2FsZUNyZWF0
ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBkZWZhdWx0TGFuZ3VhZ2UuY3JlYXRlQ0ZTdHJpbmcoKS5n
ZXQoKSkpOworICAgIGF1dG8gbG9jYWxlSWRlbnRpZmllciA9IGFkb3B0Q0YoQ0ZMb2NhbGVDcmVh
dGVDYW5vbmljYWxMb2NhbGVJZGVudGlmaWVyRnJvbVN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCB0cmFja0xhbmd1YWdlSWRlbnRpZmllci5jcmVhdGVDRlN0cmluZygpLmdldCgpKSk7CisgICAg
U3RyaW5nIGxhbmd1YWdlRGlzcGxheU5hbWUgPSBhZG9wdENGKENGTG9jYWxlQ29weURpc3BsYXlO
YW1lRm9yUHJvcGVydHlWYWx1ZShjdXJyZW50TG9jYWxlLmdldCgpLCBrQ0ZMb2NhbGVMYW5ndWFn
ZUNvZGUsIGxvY2FsZUlkZW50aWZpZXIuZ2V0KCkpKS5nZXQoKTsKIAotICAgIGlmICghbGFiZWwu
aXNFbXB0eSgpKSB7Ci0gICAgICAgIC8vIEFkZCB0aGUgbGFuZ3VhZ2UgbmFtZSBhbmQvb3IgY291
bnRyeSBuYW1lIGlmIHRoZSB0aGUgdHJhY2sgaXNuJ3QgaW4gdGhlIGRlZmF1bHQgbGFuZ3VhZ2Ug
b3IgdGhlIGV4aXN0aW5nIGxhYmVsIGRvZXNuJ3QgYWxyZWFkeSBjb250YWluIHRoZSBsYW5ndWFn
ZSBuYW1lLgotICAgICAgICBib29sIGV4YWN0TWF0Y2g7Ci0gICAgICAgIGJvb2wgbWF0Y2hlc0Rl
ZmF1bHRMYW5ndWFnZSA9ICFpbmRleE9mQmVzdE1hdGNoaW5nTGFuZ3VhZ2VJbkxpc3QodHJhY2tM
YW5ndWFnZUlkZW50aWZpZXIsIHsgZGVmYXVsdExhbmd1YWdlIH0sIGV4YWN0TWF0Y2gpOwotICAg
ICAgICBpZiAobWF0Y2hlc0RlZmF1bHRMYW5ndWFnZSB8fCBsYW5ndWFnZS5pc0VtcHR5KCkgfHwg
bGFiZWwuY29udGFpbnMobGFuZ3VhZ2UpKQotICAgICAgICAgICAgZGlzcGxheU5hbWUuYXBwZW5k
KGxhYmVsKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBSZXRhaW5QdHI8Q0ZEaWN0aW9u
YXJ5UmVmPiBsb2NhbGVEaWN0ID0gYWRvcHRDRihDRkxvY2FsZUNyZWF0ZUNvbXBvbmVudHNGcm9t
TG9jYWxlSWRlbnRpZmllcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBsb2NhbGVJZGVudGlmaWVyLmdl
dCgpKSk7Ci0gICAgICAgICAgICBpZiAobG9jYWxlRGljdCkgewotICAgICAgICAgICAgICAgIENG
U3RyaW5nUmVmIGNvdW50cnlDb2RlID0gMDsKLSAgICAgICAgICAgICAgICBTdHJpbmcgY291bnRy
eU5hbWU7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgQ0ZEaWN0aW9uYXJ5R2V0
VmFsdWVJZlByZXNlbnQobG9jYWxlRGljdC5nZXQoKSwga0NGTG9jYWxlQ291bnRyeUNvZGUsIChj
b25zdCB2b2lkICoqKSZjb3VudHJ5Q29kZSk7Ci0gICAgICAgICAgICAgICAgaWYgKGNvdW50cnlD
b2RlKSB7Ci0gICAgICAgICAgICAgICAgICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gY291bnRy
eU5hbWVDRiA9IGFkb3B0Q0YoQ0ZMb2NhbGVDb3B5RGlzcGxheU5hbWVGb3JQcm9wZXJ0eVZhbHVl
KGN1cnJlbnRMb2NhbGUuZ2V0KCksIGtDRkxvY2FsZUNvdW50cnlDb2RlLCBjb3VudHJ5Q29kZSkp
OwotICAgICAgICAgICAgICAgICAgICBjb3VudHJ5TmFtZSA9IGNvdW50cnlOYW1lQ0YuZ2V0KCk7
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGlm
ICghY291bnRyeU5hbWUuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFt
ZS5hcHBlbmQodGV4dFRyYWNrQ291bnRyeUFuZExhbmd1YWdlTWVudUl0ZW1UZXh0KGxhYmVsLCBj
b3VudHJ5TmFtZSwgbGFuZ3VhZ2UpKTsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAg
ICAgICAgICAgIGRpc3BsYXlOYW1lLmFwcGVuZCh0ZXh0VHJhY2tMYW5ndWFnZU1lbnVJdGVtVGV4
dChsYWJlbCwgbGFuZ3VhZ2UpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0gZWxz
ZSB7CisgICAgYm9vbCBleGFjdE1hdGNoOworICAgIGJvb2wgbWF0Y2hlc0RlZmF1bHRMYW5ndWFn
ZSA9ICFpbmRleE9mQmVzdE1hdGNoaW5nTGFuZ3VhZ2VJbkxpc3QodHJhY2tMYW5ndWFnZUlkZW50
aWZpZXIsIHsgZGVmYXVsdExhbmd1YWdlIH0sIGV4YWN0TWF0Y2gpOworCisgICAgLy8gT25seSBh
ZGQgdGhlIGxhbmd1YWdlIGlmIHRoZSB0cmFjayBpc24ndCBmb3IgdGhlIGRlZmF1bHQgbGFuZ3Vh
Z2Ugb3IgdGhlIHRyYWNrJ3MgbGFiZWwgZG9lc24ndCBhbHJlYWR5IGNvbnRhaW4gdGhlIGxhbmd1
YWdlLgorICAgIGlmICghbGFiZWwuaXNFbXB0eSgpICYmIChtYXRjaGVzRGVmYXVsdExhbmd1YWdl
IHx8ICghbGFuZ3VhZ2VEaXNwbGF5TmFtZS5pc0VtcHR5KCkgJiYgbGFiZWwuY29udGFpbnMobGFu
Z3VhZ2VEaXNwbGF5TmFtZSkpKSkKKyAgICAgICAgcmVzdWx0ID0gYWRkVHJhY2tLaW5kRGlzcGxh
eU5hbWVJZk5lZWRlZCh0cmFjaywgbGFiZWwpOworICAgIGVsc2UgewogICAgICAgICBTdHJpbmcg
bGFuZ3VhZ2VBbmRMb2NhbGUgPSBhZG9wdENGKENGTG9jYWxlQ29weURpc3BsYXlOYW1lRm9yUHJv
cGVydHlWYWx1ZShjdXJyZW50TG9jYWxlLmdldCgpLCBrQ0ZMb2NhbGVJZGVudGlmaWVyLCB0cmFj
a0xhbmd1YWdlSWRlbnRpZmllci5jcmVhdGVDRlN0cmluZygpLmdldCgpKSkuZ2V0KCk7CiAgICAg
ICAgIGlmICghbGFuZ3VhZ2VBbmRMb2NhbGUuaXNFbXB0eSgpKQotICAgICAgICAgICAgZGlzcGxh
eU5hbWUuYXBwZW5kKGxhbmd1YWdlQW5kTG9jYWxlKTsKLSAgICAgICAgZWxzZSBpZiAoIWxhbmd1
YWdlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIGRpc3BsYXlOYW1lLmFwcGVuZChsYW5ndWFnZSk7
CisgICAgICAgICAgICByZXN1bHQgPSBsYW5ndWFnZUFuZExvY2FsZTsKKyAgICAgICAgZWxzZSBp
ZiAoIWxhbmd1YWdlRGlzcGxheU5hbWUuaXNFbXB0eSgpKQorICAgICAgICAgICAgcmVzdWx0ID0g
bGFuZ3VhZ2VEaXNwbGF5TmFtZTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgZGlzcGxheU5h
bWUuYXBwZW5kKGxvY2FsZUlkZW50aWZpZXIuZ2V0KCkpOworICAgICAgICAgICAgcmVzdWx0ID0g
bG9jYWxlSWRlbnRpZmllci5nZXQoKTsKKworICAgICAgICByZXN1bHQgPSBhZGRUcmFja0tpbmRE
aXNwbGF5TmFtZUlmTmVlZGVkKHRyYWNrLCByZXN1bHQpOworCisgICAgICAgIGlmICghbGFiZWwu
aXNFbXB0eSgpICYmICFyZXN1bHQuY29udGFpbnMobGFiZWwpKQorICAgICAgICAgICAgcmVzdWx0
ID0gYWRkVHJhY2tMYWJlbEFzU3VmZml4KHJlc3VsdCwgbGFiZWwpOwogICAgIH0KLX0KIAotc3Rh
dGljIFN0cmluZyB0cmFja0Rpc3BsYXlOYW1lKEF1ZGlvVHJhY2sqIHRyYWNrKQotewotICAgIFN0
cmluZ0J1aWxkZXIgZGlzcGxheU5hbWU7Ci0gICAgYnVpbGREaXNwbGF5U3RyaW5nRm9yVHJhY2tC
YXNlKGRpc3BsYXlOYW1lLCAqdHJhY2spOwotICAgIAotICAgIGlmIChkaXNwbGF5TmFtZS5pc0Vt
cHR5KCkpCi0gICAgICAgIGRpc3BsYXlOYW1lLmFwcGVuZChhdWRpb1RyYWNrTm9MYWJlbFRleHQo
KSk7CisgICAgaWYgKHJlc3VsdC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiB0cmFja05vTGFi
ZWxUZXh0KCk7CiAKLSAgICBpZiAodHJhY2stPmtpbmQoKSAhPSBBdWRpb1RyYWNrOjpkZXNjcmlw
dGlvbktleXdvcmQoKSkKLSAgICAgICAgcmV0dXJuIGRpc3BsYXlOYW1lLnRvU3RyaW5nKCk7Ci0K
LSAgICByZXR1cm4gYXVkaW9EZXNjcmlwdGlvblRyYWNrU3VmZml4VGV4dChkaXNwbGF5TmFtZS50
b1N0cmluZygpKTsKKyAgICByZXR1cm4gcmVzdWx0OwogfQogCiBTdHJpbmcgQ2FwdGlvblVzZXJQ
cmVmZXJlbmNlc01lZGlhQUY6OmRpc3BsYXlOYW1lRm9yVHJhY2soQXVkaW9UcmFjayogdHJhY2sp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIHRyYWNrRGlzcGxheU5hbWUodHJhY2spOwotfQotCi1zdGF0
aWMgU3RyaW5nIHRyYWNrRGlzcGxheU5hbWUoVGV4dFRyYWNrKiB0cmFjaykKLXsKLSAgICBpZiAo
dHJhY2sgPT0gJlRleHRUcmFjazo6Y2FwdGlvbk1lbnVPZmZJdGVtKCkpCi0gICAgICAgIHJldHVy
biB0ZXh0VHJhY2tPZmZNZW51SXRlbVRleHQoKTsKLSAgICBpZiAodHJhY2sgPT0gJlRleHRUcmFj
azo6Y2FwdGlvbk1lbnVBdXRvbWF0aWNJdGVtKCkpCi0gICAgICAgIHJldHVybiB0ZXh0VHJhY2tB
dXRvbWF0aWNNZW51SXRlbVRleHQoKTsKLQotICAgIFN0cmluZ0J1aWxkZXIgZGlzcGxheU5hbWVC
dWlsZGVyOwotICAgIGJ1aWxkRGlzcGxheVN0cmluZ0ZvclRyYWNrQmFzZShkaXNwbGF5TmFtZUJ1
aWxkZXIsICp0cmFjayk7Ci0KLSAgICBpZiAoZGlzcGxheU5hbWVCdWlsZGVyLmlzRW1wdHkoKSkK
LSAgICAgICAgZGlzcGxheU5hbWVCdWlsZGVyLmFwcGVuZCh0ZXh0VHJhY2tOb0xhYmVsVGV4dCgp
KTsKLQotICAgIFN0cmluZyBkaXNwbGF5TmFtZSA9IGRpc3BsYXlOYW1lQnVpbGRlci50b1N0cmlu
ZygpOwotCi0gICAgaWYgKHRyYWNrLT5pc0Nsb3NlZENhcHRpb25zKCkpIHsKLSAgICAgICAgaWYg
KCFkaXNwbGF5TmFtZS5jb250YWlucyhjbG9zZWRDYXB0aW9uS2luZFRyYWNrRGlzcGxheU5hbWUo
KSkpCi0gICAgICAgICAgICBkaXNwbGF5TmFtZSA9IGNsb3NlZENhcHRpb25UcmFja01lbnVJdGVt
VGV4dChkaXNwbGF5TmFtZSk7Ci0gICAgICAgIGlmICh0cmFjay0+aXNFYXN5VG9SZWFkKCkgJiYg
IWRpc3BsYXlOYW1lLmNvbnRhaW5zKGVhc3lSZWFkZXJLaW5kRGlzcGxheU5hbWUoKSkpCi0gICAg
ICAgICAgICBkaXNwbGF5TmFtZSA9IGVhc3lSZWFkZXJUcmFja01lbnVJdGVtVGV4dChkaXNwbGF5
TmFtZSk7Ci0KLSAgICAgICAgcmV0dXJuIGRpc3BsYXlOYW1lOwotICAgIH0KLQotICAgIHN3aXRj
aCAodHJhY2stPmtpbmQoKSkgewotICAgIGNhc2UgVGV4dFRyYWNrOjpLaW5kOjpTdWJ0aXRsZXM6
Ci0gICAgICAgIC8vIFN1YnRpdGxlIHRleHQgdHJhY2tzIGFyZSBvbmx5IHNob3duIGluIGEgZGVk
aWNhdGVkICJTdWJ0aXRsZSIgZ3JvdXBpbmcsIG1lYW5pbmcKLSAgICAgICAgLy8gaXQgd291bGQg
bG9vayBvZGQgdG8gYWRkIHRoZSBzYW1lIHRpdGxlIGFzIGEgc3VmZml4IChlLmcuICJFbmdsaXNo
IFN1YnRpdGxlcyIpLgotICAgICAgICBicmVhazsKLQotICAgIGNhc2UgVGV4dFRyYWNrOjpLaW5k
OjpDYXB0aW9uczoKLSAgICAgICAgaWYgKCFkaXNwbGF5TmFtZS5jb250YWlucyhjYXB0aW9uc1Rl
eHRUcmFja0tpbmREaXNwbGF5TmFtZSgpKSkKLSAgICAgICAgICAgIGRpc3BsYXlOYW1lID0gY2Fw
dGlvbnNUZXh0VHJhY2tXaXRob3V0TGFiZWxNZW51SXRlbVRleHQoZGlzcGxheU5hbWUpOwotICAg
ICAgICBicmVhazsKLQotICAgIGNhc2UgVGV4dFRyYWNrOjpLaW5kOjpEZXNjcmlwdGlvbnM6Ci0g
ICAgICAgIGlmICghZGlzcGxheU5hbWUuY29udGFpbnMoZGVzY3JpcHRpb25zVGV4dFRyYWNrS2lu
ZERpc3BsYXlOYW1lKCkpKQotICAgICAgICAgICAgZGlzcGxheU5hbWUgPSBkZXNjcmlwdGlvbnNU
ZXh0VHJhY2tXaXRob3V0TGFiZWxNZW51SXRlbVRleHQoZGlzcGxheU5hbWUpOwotICAgICAgICBi
cmVhazsKLQotICAgIGNhc2UgVGV4dFRyYWNrOjpLaW5kOjpDaGFwdGVyczoKLSAgICAgICAgaWYg
KCFkaXNwbGF5TmFtZS5jb250YWlucyhjaGFwdGVyc1RleHRUcmFja0tpbmREaXNwbGF5TmFtZSgp
KSkKLSAgICAgICAgICAgIGRpc3BsYXlOYW1lID0gY2hhcHRlcnNUZXh0VHJhY2tXaXRob3V0TGFi
ZWxNZW51SXRlbVRleHQoZGlzcGxheU5hbWUpOwotICAgICAgICBicmVhazsKLQotICAgIGNhc2Ug
VGV4dFRyYWNrOjpLaW5kOjpNZXRhZGF0YToKLSAgICAgICAgaWYgKCFkaXNwbGF5TmFtZS5jb250
YWlucyhtZXRhZGF0YVRleHRUcmFja0tpbmREaXNwbGF5TmFtZSgpKSkKLSAgICAgICAgICAgIGRp
c3BsYXlOYW1lID0gbWV0YWRhdGFUZXh0VHJhY2tXaXRob3V0TGFiZWxNZW51SXRlbVRleHQoZGlz
cGxheU5hbWUpOwotICAgICAgICBicmVhazsKLQotICAgIGNhc2UgVGV4dFRyYWNrOjpLaW5kOjpG
b3JjZWQ6Ci0gICAgICAgIC8vIEhhbmRsZWQgYmVsb3cuCi0gICAgICAgIGJyZWFrOwotICAgIH0K
LQotICAgIGlmICh0cmFjay0+aXNTREgoKSAmJiAhZGlzcGxheU5hbWUuY29udGFpbnMoc2RoVHJh
Y2tLaW5kRGlzcGxheU5hbWUoKSkpCi0gICAgICAgIGRpc3BsYXlOYW1lID0gc2RoVHJhY2tNZW51
SXRlbVRleHQoZGlzcGxheU5hbWUpOwotCi0gICAgaWYgKHRyYWNrLT5pc0Vhc3lUb1JlYWQoKSAm
JiAhZGlzcGxheU5hbWUuY29udGFpbnMoZWFzeVJlYWRlcktpbmREaXNwbGF5TmFtZSgpKSkKLSAg
ICAgICAgZGlzcGxheU5hbWUgPSBlYXN5UmVhZGVyVHJhY2tNZW51SXRlbVRleHQoZGlzcGxheU5h
bWUpOwotCi0gICAgaWYgKCh0cmFjay0+Y29udGFpbnNPbmx5Rm9yY2VkU3VidGl0bGVzKCkgfHwg
dHJhY2stPmtpbmQoKSA9PSBUZXh0VHJhY2s6OktpbmQ6OkZvcmNlZCkgJiYgIWRpc3BsYXlOYW1l
LmNvbnRhaW5zKGZvcmNlZFRyYWNrS2luZERpc3BsYXlOYW1lKCkpKQotICAgICAgICBkaXNwbGF5
TmFtZSA9IGZvcmNlZFRyYWNrTWVudUl0ZW1UZXh0KGRpc3BsYXlOYW1lKTsKLQotICAgIHJldHVy
biBkaXNwbGF5TmFtZTsKKyAgICByZXR1cm4gdHJhY2tEaXNwbGF5TmFtZSgqdHJhY2spOwogfQog
CiBTdHJpbmcgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmRpc3BsYXlOYW1lRm9yVHJh
Y2soVGV4dFRyYWNrKiB0cmFjaykgY29uc3QKIHsKLSAgICByZXR1cm4gdHJhY2tEaXNwbGF5TmFt
ZSh0cmFjayk7CisgICAgcmV0dXJuIHRyYWNrRGlzcGxheU5hbWUoKnRyYWNrKTsKIH0KIAogc3Rh
dGljIGJvb2wgdGV4dFRyYWNrQ29tcGFyZShjb25zdCBSZWZQdHI8VGV4dFRyYWNrPiYgYSwgY29u
c3QgUmVmUHRyPFRleHRUcmFjaz4mIGIpCkBAIC03MzQsNyArNzM4LDcgQEAgc3RhdGljIGJvb2wg
dGV4dFRyYWNrQ29tcGFyZShjb25zdCBSZWZQdHI8VGV4dFRyYWNrPiYgYSwgY29uc3QgUmVmUHRy
PFRleHRUcmFjaz4KICAgICAgICAgcmV0dXJuIGFJc0NDOwogCiAgICAgLy8gLi4uIGFuZCB0cmFj
a3Mgb2YgdGhlIHNhbWUgdHlwZSBhbmQgbGFuZ3VhZ2Ugc29ydCBieSB0aGUgbWVudSBpdGVtIHRl
eHQuCi0gICAgaWYgKGF1dG8gdHJhY2tEaXNwbGF5Q29tcGFyaXNvbiA9IGNvbGxhdG9yLmNvbGxh
dGUodHJhY2tEaXNwbGF5TmFtZShhLmdldCgpKSwgdHJhY2tEaXNwbGF5TmFtZShiLmdldCgpKSkp
CisgICAgaWYgKGF1dG8gdHJhY2tEaXNwbGF5Q29tcGFyaXNvbiA9IGNvbGxhdG9yLmNvbGxhdGUo
dHJhY2tEaXNwbGF5TmFtZSgqYSksIHRyYWNrRGlzcGxheU5hbWUoKmIpKSkKICAgICAgICAgcmV0
dXJuIHRyYWNrRGlzcGxheUNvbXBhcmlzb24gPCAwOwogCiAgICAgLy8gLi4uIGFuZCBpZiB0aGUg
bWVudSBpdGVtIHRleHQgaXMgdGhlIHNhbWUsIGNvbXBhcmUgdGhlIHVuaXF1ZSBJRHMKQEAgLTc1
Niw3ICs3NjAsNyBAQCBWZWN0b3I8UmVmUHRyPEF1ZGlvVHJhY2s+PiBDYXB0aW9uVXNlclByZWZl
cmVuY2VzTWVkaWFBRjo6c29ydGVkVHJhY2tMaXN0Rm9yTWVudQogICAgIENvbGxhdG9yIGNvbGxh
dG9yOwogCiAgICAgc3RkOjpzb3J0KHRyYWNrc0Zvck1lbnUuYmVnaW4oKSwgdHJhY2tzRm9yTWVu
dS5lbmQoKSwgWyZdIChhdXRvJiBhLCBhdXRvJiBiKSB7Ci0gICAgICAgIGlmIChhdXRvIHRyYWNr
RGlzcGxheUNvbXBhcmlzb24gPSBjb2xsYXRvci5jb2xsYXRlKHRyYWNrRGlzcGxheU5hbWUoYS5n
ZXQoKSksIHRyYWNrRGlzcGxheU5hbWUoYi5nZXQoKSkpKQorICAgICAgICBpZiAoYXV0byB0cmFj
a0Rpc3BsYXlDb21wYXJpc29uID0gY29sbGF0b3IuY29sbGF0ZSh0cmFja0Rpc3BsYXlOYW1lKCph
KSwgdHJhY2tEaXNwbGF5TmFtZSgqYikpKQogICAgICAgICAgICAgcmV0dXJuIHRyYWNrRGlzcGxh
eUNvbXBhcmlzb24gPCAwOwogCiAgICAgICAgIHJldHVybiBhLT51bmlxdWVJZCgpIDwgYi0+dW5p
cXVlSWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0
cmluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAK
aW5kZXggZTlhNTIwMTQwZTE0NTlhNzgxOWVkMDUyOWNhYzQwNmVmZjFmM2EyYS4uMDhmM2JhM2M3
OGE1YWU5MWY4N2FhYWMwMGIxOWNhOWE3YWJmMmNiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKQEAgLTEwODgsMTI0ICsxMDg4LDE1MyBAQCBTdHJp
bmcgY2xpY2tUb0V4aXRGdWxsU2NyZWVuVGV4dCgpCiAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
IkNsaWNrIHRvIEV4aXQgRnVsbCBTY3JlZW4iLCAiTWVzc2FnZSB0byBkaXNwbGF5IGluIGJyb3dz
ZXIgd2luZG93IHdoZW4gaW4gd2Via2l0IGZ1bGwgc2NyZWVuIG1vZGUuIik7CiB9CiAKKyNpZiBF
TkFCTEUoVklERU8pCisKK1N0cmluZyB0cmFja05vTGFiZWxUZXh0KCkKK3sKKyAgICByZXR1cm4g
V0VCX1VJX1NUUklOR19LRVkoIlVua25vd24iLCAiVW5rbm93biAoYXVkaW8vdGV4dCB0cmFjayki
LCAiTWVudSBpdGVtIGxhYmVsIGZvciBhIGF1ZGlvL3RleHQgdHJhY2sgdGhhdCBoYXMgbm8gb3Ro
ZXIgbmFtZS4iKTsKK30KKwogU3RyaW5nIHRleHRUcmFja09mZk1lbnVJdGVtVGV4dCgpCiB7Ci0g
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk9mZiIsICJNZW51IGl0ZW0gbGFiZWwgZm9yIHRoZSB0
cmFjayB0aGF0IHJlcHJlc2VudHMgZGlzYWJsaW5nIGNsb3NlZCBjYXB0aW9ucyIpOworICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiT2ZmIiwgIk9mZiAodGV4dCB0cmFjaykiLCAiTWVudSBp
dGVtIGxhYmVsIGZvciB0aGUgdHJhY2sgdGhhdCByZXByZXNlbnRzIGRpc2FibGluZyBjbG9zZWQg
Y2FwdGlvbnMuIik7CiB9CiAKIFN0cmluZyB0ZXh0VHJhY2tBdXRvbWF0aWNNZW51SXRlbVRleHQo
KQogewotICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiQXV0
byAoUmVjb21tZW5kZWQpIiwgIk1lbnUgaXRlbSBsYWJlbCBmb3IgYXV0b21hdGljIHRyYWNrIHNl
bGVjdGlvbiBiZWhhdmlvciIpKTsKLX0KLQotU3RyaW5nIHRleHRUcmFja05vTGFiZWxUZXh0KCkK
LXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlVua25vd24iLCAiVW5rbm93biAodGV4
dCB0cmFjaykiLCAiTWVudSBpdGVtIGxhYmVsIGZvciBhIHRleHQgdHJhY2sgdGhhdCBoYXMgbm8g
b3RoZXIgbmFtZSIpOwotfQotCi1TdHJpbmcgYXVkaW9UcmFja05vTGFiZWxUZXh0KCkKLXsKLSAg
ICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlVua25vd24iLCAiVW5rbm93biAoYXVkaW8gdHJh
Y2spIiwgIk1lbnUgaXRlbSBsYWJlbCBmb3IgYW4gYXVkaW8gdHJhY2sgdGhhdCBoYXMgbm8gb3Ro
ZXIgbmFtZSIpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiQXV0byAoUmVjb21tZW5k
ZWQpIiwgIkF1dG8gKFJlY29tbWVuZGVkKSAodGV4dCB0cmFjaykiLCAiTWVudSBpdGVtIGxhYmVs
IGZvciBhdXRvbWF0aWMgdHJhY2sgc2VsZWN0aW9uIGJlaGF2aW9yLiIpOwogfQogCiAjaWYgVVNF
KENGKQogCi1TdHJpbmcgY2FwdGlvbnNUZXh0VHJhY2tLaW5kRGlzcGxheU5hbWUoKQorU3RyaW5n
IGFkZFRyYWNrTGFiZWxBc1N1ZmZpeChjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYg
bGFiZWwpCiB7Ci0gICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfQ0ZTVFJJ
TkcoIkNhcHRpb25zIiwgIkRpc3BsYXkgbmFtZSBmb3IgdGV4dCB0cmFjayBraW5kICdjYXB0aW9u
cycgdGhhdCBpcyB1c2VkIHRvIHNlZSBpZiB0aGUgSFRNTCAnbGFiZWwnIGFscmVhZHkgY29udGFp
bnMgJ0NhcHRpb25zJy4iKSk7CisgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJf
VUlfQ0ZTVFJJTkdfS0VZKCIlQCAoJUApIiwgIiVAICglQCkgKGF1ZGlvL3RleHQgdHJhY2spIiwg
IkF1ZGlvL1RleHQgdHJhY2sgZGlzcGxheSBuYW1lIGZvcm1hdCB0aGF0IGluY2x1ZGVzIHRoZSBs
YWJlbCBhbmQgbGFuZ3VhZ2Ugb2YgdGhlIHRyYWNrLCBpbiB0aGUgZm9ybSBvZiAnTGFuZ3VhZ2Ug
KExhYmVsKScuIiksIHRleHQuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgbGFiZWwuY3JlYXRlQ0ZT
dHJpbmcoKS5nZXQoKSk7CiB9CiAKLVN0cmluZyBjYXB0aW9uc1RleHRUcmFja1dpdGhvdXRMYWJl
bE1lbnVJdGVtVGV4dChjb25zdCBTdHJpbmcmIHRpdGxlKQorU3RyaW5nIHRleHRUcmFja0tpbmRD
bG9zZWRDYXB0aW9uc0Rpc3BsYXlOYW1lKCkKIHsKLSAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVk
U3RyaW5nKFdFQl9VSV9DRlNUUklORygiJUAgQ2FwdGlvbnMiLCAiQ2FwdGlvbnMgdGV4dCB0cmFj
ayBkaXNwbGF5IG5hbWUgZm9ybWF0IHRoYXQgaW5jbHVkZXMgdGhlIGxhbmd1YWdlIGFuZC9vciBs
b2NhbGUgKGUuZy4gJ0VuZ2xpc2ggQ2FwdGlvbnMnKS4iKSwgdGl0bGUuY3JlYXRlQ0ZTdHJpbmco
KS5nZXQoKSk7CisgICAgcmV0dXJuIFdFQl9VSV9DRlNUUklOR19LRVkoIkNDIiwgIkNDICh0ZXh0
IHRyYWNrKSIsICJEaXNwbGF5IG5hbWUgZm9yIGNsb3NlZCBjYXB0aW9ucyB0ZXh0IHRyYWNrcy4i
KTsKIH0KIAotU3RyaW5nIGRlc2NyaXB0aW9uc1RleHRUcmFja0tpbmREaXNwbGF5TmFtZSgpCitT
dHJpbmcgYWRkVGV4dFRyYWNrS2luZENsb3NlZENhcHRpb25zU3VmZml4KGNvbnN0IFN0cmluZyYg
dGV4dCkKIHsKLSAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9DRlNUUklO
RygiRGVzY3JpcHRpb25zIiwgIkRpc3BsYXkgbmFtZSBmb3IgdGV4dCB0cmFjayBraW5kICdkZXNj
cmlwdGlvbnMnIHRoYXQgaXMgdXNlZCB0byBzZWUgaWYgdGhlIEhUTUwgJ2xhYmVsJyBhbHJlYWR5
IGNvbnRhaW5zICdEZXNjcmlwdGlvbnMnLiIpKTsKKyAgICBpZiAodGV4dC5pc0VtcHR5KCkpCisg
ICAgICAgIHJldHVybiB0ZXh0VHJhY2tLaW5kQ2xvc2VkQ2FwdGlvbnNEaXNwbGF5TmFtZSgpOwor
ICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX0NGU1RSSU5HX0tFWSgiJUAg
Q0MiLCAiJUAgQ0MgKHRleHQgdHJhY2spIiwgIkNsb3NlZCBjYXB0aW9ucyB0ZXh0IHRyYWNrIGRp
c3BsYXkgbmFtZSBmb3JtYXQgdGhhdCBpbmNsdWRlcyB0aGUgbGFuZ3VhZ2UgYW5kL29yIGxvY2Fs
ZSAoZS5nLiAnRW5nbGlzaCBDQycpLiIpLCB0ZXh0LmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpOwog
fQogCi1TdHJpbmcgZGVzY3JpcHRpb25zVGV4dFRyYWNrV2l0aG91dExhYmVsTWVudUl0ZW1UZXh0
KGNvbnN0IFN0cmluZyYgdGl0bGUpCitTdHJpbmcgdGV4dFRyYWNrS2luZENhcHRpb25zRGlzcGxh
eU5hbWUoKQogewotICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX0NGU1RS
SU5HKCIlQCBEZXNjcmlwdGlvbnMiLCAiRGVzY3JpcHRpb25zIHRleHQgdHJhY2sgZGlzcGxheSBu
YW1lIGZvcm1hdCB0aGF0IGluY2x1ZGVzIHRoZSBsYW5ndWFnZSBhbmQvb3IgbG9jYWxlIChlLmcu
ICdFbmdsaXNoIERlc2NyaXB0aW9ucycpLiIpLCB0aXRsZS5jcmVhdGVDRlN0cmluZygpLmdldCgp
KTsKKyAgICByZXR1cm4gV0VCX1VJX0NGU1RSSU5HX0tFWSgiQ2FwdGlvbnMiLCAiQ2FwdGlvbnMg
KHRleHQgdHJhY2spIiwgIkRpc3BsYXkgbmFtZSBmb3IgdGV4dCB0cmFjayBraW5kICdjYXB0aW9u
cycuIik7CiB9CiAKLVN0cmluZyBjaGFwdGVyc1RleHRUcmFja0tpbmREaXNwbGF5TmFtZSgpCitT
dHJpbmcgYWRkVGV4dFRyYWNrS2luZENhcHRpb25zU3VmZml4KGNvbnN0IFN0cmluZyYgdGV4dCkK
IHsKLSAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9DRlNUUklORygiQ2hh
cHRlcnMiLCAiRGlzcGxheSBuYW1lIGZvciB0ZXh0IHRyYWNrIGtpbmQgJ2NoYXB0ZXJzJyB0aGF0
IGlzIHVzZWQgdG8gc2VlIGlmIHRoZSBIVE1MICdsYWJlbCcgYWxyZWFkeSBjb250YWlucyAnQ2hh
cHRlcnMnLiIpKTsKKyAgICBpZiAodGV4dC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiB0ZXh0
VHJhY2tLaW5kQ2FwdGlvbnNEaXNwbGF5TmFtZSgpOworICAgIHJldHVybiBmb3JtYXRMb2NhbGl6
ZWRTdHJpbmcoV0VCX1VJX0NGU1RSSU5HX0tFWSgiJUAgQ2FwdGlvbnMiLCAiJUAgQ2FwdGlvbnMg
KHRleHQgdHJhY2spIiwgIkNhcHRpb25zIHRleHQgdHJhY2sgZGlzcGxheSBuYW1lIGZvcm1hdCB0
aGF0IGluY2x1ZGVzIHRoZSBsYW5ndWFnZSBhbmQvb3IgbG9jYWxlIChlLmcuICdFbmdsaXNoIENh
cHRpb25zJykuIiksIHRleHQuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7CiB9CiAKLVN0cmluZyBj
aGFwdGVyc1RleHRUcmFja1dpdGhvdXRMYWJlbE1lbnVJdGVtVGV4dChjb25zdCBTdHJpbmcmIHRp
dGxlKQorU3RyaW5nIHRleHRUcmFja0tpbmREZXNjcmlwdGlvbnNEaXNwbGF5TmFtZSgpCiB7Ci0g
ICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfQ0ZTVFJJTkcoIiVAIENoYXB0
ZXJzIiwgIkNoYXB0ZXJzIHRleHQgdHJhY2sgZGlzcGxheSBuYW1lIGZvcm1hdCB0aGF0IGluY2x1
ZGVzIHRoZSBsYW5ndWFnZSBhbmQvb3IgbG9jYWxlIChlLmcuICdFbmdsaXNoIENoYXB0ZXJzJyku
IiksIHRpdGxlLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpOworICAgIHJldHVybiBXRUJfVUlfQ0ZT
VFJJTkdfS0VZKCJEZXNjcmlwdGlvbnMiLCAiRGVzY3JpcHRpb25zICh0ZXh0IHRyYWNrKSIsICJE
aXNwbGF5IG5hbWUgZm9yIHRleHQgdHJhY2sga2luZCAnZGVzY3JpcHRpb25zJy4iKTsKIH0KIAot
U3RyaW5nIG1ldGFkYXRhVGV4dFRyYWNrS2luZERpc3BsYXlOYW1lKCkKK1N0cmluZyBhZGRUZXh0
VHJhY2tLaW5kRGVzY3JpcHRpb25zU3VmZml4KGNvbnN0IFN0cmluZyYgdGV4dCkKIHsKLSAgICBy
ZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9DRlNUUklORygiTWV0YWRhdGEiLCAi
RGlzcGxheSBuYW1lIGZvciB0ZXh0IHRyYWNrIGtpbmQgJ21ldGFkYXRhJyB0aGF0IGlzIHVzZWQg
dG8gc2VlIGlmIHRoZSBIVE1MICdsYWJlbCcgYWxyZWFkeSBjb250YWlucyAnTWV0YWRhdGEnLiIp
KTsKKyAgICBpZiAodGV4dC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiB0ZXh0VHJhY2tLaW5k
RGVzY3JpcHRpb25zRGlzcGxheU5hbWUoKTsKKyAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3Ry
aW5nKFdFQl9VSV9DRlNUUklOR19LRVkoIiVAIERlc2NyaXB0aW9ucyIsICIlQCBEZXNjcmlwdGlv
bnMgKHRleHQgdHJhY2spIiwgIkRlc2NyaXB0aW9ucyB0ZXh0IHRyYWNrIGRpc3BsYXkgbmFtZSBm
b3JtYXQgdGhhdCBpbmNsdWRlcyB0aGUgbGFuZ3VhZ2UgYW5kL29yIGxvY2FsZSAoZS5nLiAnRW5n
bGlzaCBEZXNjcmlwdGlvbnMnKS4iKSwgdGV4dC5jcmVhdGVDRlN0cmluZygpLmdldCgpKTsKIH0K
IAotU3RyaW5nIG1ldGFkYXRhVGV4dFRyYWNrV2l0aG91dExhYmVsTWVudUl0ZW1UZXh0KGNvbnN0
IFN0cmluZyYgdGl0bGUpCitTdHJpbmcgdGV4dFRyYWNrS2luZENoYXB0ZXJzRGlzcGxheU5hbWUo
KQogewotICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX0NGU1RSSU5HKCIl
QCBNZXRhZGF0YSIsICJNZXRhZGF0YSB0ZXh0IHRyYWNrIGRpc3BsYXkgbmFtZSBmb3JtYXQgdGhh
dCBpbmNsdWRlcyB0aGUgbGFuZ3VhZ2UgYW5kL29yIGxvY2FsZSAoZS5nLiAnRW5nbGlzaCBNZXRh
ZGF0cycpLiIpLCB0aXRsZS5jcmVhdGVDRlN0cmluZygpLmdldCgpKTsKKyAgICByZXR1cm4gV0VC
X1VJX0NGU1RSSU5HX0tFWSgiQ2hhcHRlcnMiLCAiQ2hhcHRlcnMgKHRleHQgdHJhY2spIiwgIkRp
c3BsYXkgbmFtZSBmb3IgdGV4dCB0cmFjayBraW5kICdjaGFwdGVycycuIik7CiB9CiAKLVN0cmlu
ZyB0ZXh0VHJhY2tDb3VudHJ5QW5kTGFuZ3VhZ2VNZW51SXRlbVRleHQoY29uc3QgU3RyaW5nJiB0
aXRsZSwgY29uc3QgU3RyaW5nJiBjb3VudHJ5LCBjb25zdCBTdHJpbmcmIGxhbmd1YWdlKQorU3Ry
aW5nIGFkZFRleHRUcmFja0tpbmRDaGFwdGVyc1N1ZmZpeChjb25zdCBTdHJpbmcmIHRleHQpCiB7
Ci0gICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfQ0ZTVFJJTkcoIiVAICgl
QC0lQCkiLCAiVGV4dCB0cmFjayBkaXNwbGF5IG5hbWUgZm9ybWF0IHRoYXQgaW5jbHVkZXMgdGhl
IGNvdW50cnkgYW5kIGxhbmd1YWdlIG9mIHRoZSBzdWJ0aXRsZSwgaW4gdGhlIGZvcm0gb2YgJ1Rp
dGxlIChMYW5ndWFnZS1Db3VudHJ5KSciKSwgdGl0bGUuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwg
bGFuZ3VhZ2UuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgY291bnRyeS5jcmVhdGVDRlN0cmluZygp
LmdldCgpKTsKKyAgICBpZiAodGV4dC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiB0ZXh0VHJh
Y2tLaW5kQ2hhcHRlcnNEaXNwbGF5TmFtZSgpOworICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRT
dHJpbmcoV0VCX1VJX0NGU1RSSU5HX0tFWSgiJUAgQ2hhcHRlcnMiLCAiJUAgQ2hhcHRlcnMgKHRl
eHQgdHJhY2spIiwgIkNoYXB0ZXJzIHRleHQgdHJhY2sgZGlzcGxheSBuYW1lIGZvcm1hdCB0aGF0
IGluY2x1ZGVzIHRoZSBsYW5ndWFnZSBhbmQvb3IgbG9jYWxlIChlLmcuICdFbmdsaXNoIENoYXB0
ZXJzJykuIiksIHRleHQuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7CiB9CiAKLVN0cmluZyB0ZXh0
VHJhY2tMYW5ndWFnZU1lbnVJdGVtVGV4dChjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJp
bmcmIGxhbmd1YWdlKQorU3RyaW5nIHRleHRUcmFja0tpbmRNZXRhZGF0YURpc3BsYXlOYW1lKCkK
IHsKLSAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9DRlNUUklORygiJUAg
KCVAKSIsICJUZXh0IHRyYWNrIGRpc3BsYXkgbmFtZSBmb3JtYXQgdGhhdCBpbmNsdWRlcyB0aGUg
bGFuZ3VhZ2Ugb2YgdGhlIHN1YnRpdGxlLCBpbiB0aGUgZm9ybSBvZiAnVGl0bGUgKExhbmd1YWdl
KSciKSwgdGl0bGUuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgbGFuZ3VhZ2UuY3JlYXRlQ0ZTdHJp
bmcoKS5nZXQoKSk7CisgICAgcmV0dXJuIFdFQl9VSV9DRlNUUklOR19LRVkoIk1ldGFkYXRhIiwg
Ik1ldGFkYXRhICh0ZXh0IHRyYWNrKSIsICJEaXNwbGF5IG5hbWUgZm9yIHRleHQgdHJhY2sga2lu
ZCAnbWV0YWRhdGEnLiIpOwogfQogCi1TdHJpbmcgY2xvc2VkQ2FwdGlvbktpbmRUcmFja0Rpc3Bs
YXlOYW1lKCkKK1N0cmluZyBhZGRUZXh0VHJhY2tLaW5kTWV0YWRhdGFTdWZmaXgoY29uc3QgU3Ry
aW5nJiB0ZXh0KQogewotICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX0NG
U1RSSU5HKCJDQyIsICJEaXNwbGF5IG5hbWUgZm9yIGNsb3NlZCBjYXB0aW9ucyB0ZXh0IHRyYWNr
cyB0aGF0IGlzIHVzZWQgdG8gc2VlIGlmIHRoZSBIVE1MICdsYWJlbCcgYWxyZWFkeSBjb250YWlu
cyAnQ0MnLiIpKTsKKyAgICBpZiAodGV4dC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiB0ZXh0
VHJhY2tLaW5kTWV0YWRhdGFEaXNwbGF5TmFtZSgpOworICAgIHJldHVybiBmb3JtYXRMb2NhbGl6
ZWRTdHJpbmcoV0VCX1VJX0NGU1RSSU5HX0tFWSgiJUAgTWV0YWRhdGEiLCAiJUAgTWV0YWRhdGEg
KHRleHQgdHJhY2spIiwgIk1ldGFkYXRhIHRleHQgdHJhY2sgZGlzcGxheSBuYW1lIGZvcm1hdCB0
aGF0IGluY2x1ZGVzIHRoZSBsYW5ndWFnZSBhbmQvb3IgbG9jYWxlIChlLmcuICdFbmdsaXNoIE1l
dGFkYXRhJykuIiksIHRleHQuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7CiB9CiAKLVN0cmluZyBj
bG9zZWRDYXB0aW9uVHJhY2tNZW51SXRlbVRleHQoY29uc3QgU3RyaW5nJiB0aXRsZSkKK1N0cmlu
ZyB0ZXh0VHJhY2tLaW5kU0RIRGlzcGxheU5hbWUoKQogewotICAgIHJldHVybiBmb3JtYXRMb2Nh
bGl6ZWRTdHJpbmcoV0VCX1VJX0NGU1RSSU5HKCIlQCBDQyIsICJUZXh0IHRyYWNrIGNvbnRhaW5z
IGNsb3NlZCBjYXB0aW9ucyIpLCB0aXRsZS5jcmVhdGVDRlN0cmluZygpLmdldCgpKTsKKyAgICBy
ZXR1cm4gV0VCX1VJX0NGU1RSSU5HX0tFWSgiU0RIIiwgIlNESCAodGV4dCB0cmFjaykiLCAiRGlz
cGxheSBuYW1lIGZvciBTREggKGkuZS4gZGVhZiBhbmQvb3IgaGFyZCBvZiBoZWFyaW5nKSB0ZXh0
IHRyYWNrcy4iKTsKIH0KIAotU3RyaW5nIHNkaFRyYWNrS2luZERpc3BsYXlOYW1lKCkKK1N0cmlu
ZyBhZGRUZXh0VHJhY2tLaW5kU0RIU3VmZml4KGNvbnN0IFN0cmluZyYgdGV4dCkKIHsKLSAgICBy
ZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9DRlNUUklORygiU0RIIiwgIkRpc3Bs
YXkgbmFtZSBmb3IgZGVhZiBhbmQgaGFyZCBvZiBoZWFyaW5nIHN1YnRpdGxlIHRleHQgdHJhY2tz
IHRoYXQgaXMgdXNlZCB0byBzZWUgaWYgdGhlIEhUTUwgJ2xhYmVsJyBhbHJlYWR5IGNvbnRhaW5z
ICdTREgnLiIpKTsKKyAgICBpZiAodGV4dC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiB0ZXh0
VHJhY2tLaW5kU0RIRGlzcGxheU5hbWUoKTsKKyAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3Ry
aW5nKFdFQl9VSV9DRlNUUklOR19LRVkoIiVAIFNESCIsICIlQCBTREggKHRleHQgdHJhY2spIiwg
IlNESCAoaS5lLiBkZWFmIGFuZC9vciBoYXJkIG9mIGhlYXJpbmcpIHRleHQgdHJhY2sgZGlzcGxh
eSBuYW1lIGZvcm1hdCB0aGF0IGluY2x1ZGVzIHRoZSBsYW5ndWFnZSBhbmQvb3IgbG9jYWxlIChl
LmcuICdFbmdsaXNoIFNESCcpLiIpLCB0ZXh0LmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpOwogfQog
Ci1TdHJpbmcgc2RoVHJhY2tNZW51SXRlbVRleHQoY29uc3QgU3RyaW5nJiB0aXRsZSkKK1N0cmlu
ZyB0ZXh0VHJhY2tLaW5kRWFzeVJlYWRlckRpc3BsYXlOYW1lKCkKIHsKLSAgICByZXR1cm4gZm9y
bWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9DRlNUUklORygiJUAgU0RIIiwgIlRleHQgdHJhY2sg
Y29udGFpbnMgc3VidGl0bGVzIGZvciB0aGUgZGVhZiBhbmQgaGFyZCBvZiBoZWFyaW5nIiksIHRp
dGxlLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpOworICAgIHJldHVybiBXRUJfVUlfQ0ZTVFJJTkdf
S0VZKCJFYXN5IFJlYWRlciIsICJFYXN5IFJlYWRlciAodGV4dCB0cmFjaykiLCAiRGlzcGxheSBu
YW1lIGZvciBlYXN5IHJlYWRlciAoaS5lLiAzcmQtZ3JhZGUgbGV2ZWwpIHRleHQgdHJhY2tzLiIp
OwogfQogCi1TdHJpbmcgZWFzeVJlYWRlcktpbmREaXNwbGF5TmFtZSgpCitTdHJpbmcgYWRkVGV4
dFRyYWNrS2luZEVhc3lSZWFkZXJTdWZmaXgoY29uc3QgU3RyaW5nJiB0ZXh0KQogewotICAgIHJl
dHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX0NGU1RSSU5HKCJFYXN5IFJlYWRlciIs
ICJEaXNwbGF5IG5hbWUgZm9yIGVhc3kgcmVhZGVyIHRleHQgdHJhY2tzIHRoYXQgaXMgdXNlZCB0
byBzZWUgaWYgdGhlIEhUTUwgJ2xhYmVsJyBhbHJlYWR5IGNvbnRhaW5zICdFYXN5IFJlYWRlcicu
IikpOworICAgIGlmICh0ZXh0LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHRleHRUcmFja0tp
bmRFYXN5UmVhZGVyRGlzcGxheU5hbWUoKTsKKyAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3Ry
aW5nKFdFQl9VSV9DRlNUUklOR19LRVkoIiVAIEVhc3kgUmVhZGVyIiwgIiVAIEVhc3kgKHRleHQg
dHJhY2spIiwgIkVhc3kgUmVhZGVyIChpLmUuIDNyZC1ncmFkZSBsZXZlbCkgdGV4dCB0cmFjayBk
aXNwbGF5IG5hbWUgZm9ybWF0IHRoYXQgaW5jbHVkZXMgdGhlIGxhbmd1YWdlIGFuZC9vciBsb2Nh
bGUgKGUuZy4gJ0VuZ2xpc2ggRWFzeSBSZWFkZXInKS4iKSwgdGV4dC5jcmVhdGVDRlN0cmluZygp
LmdldCgpKTsKIH0KIAotU3RyaW5nIGVhc3lSZWFkZXJUcmFja01lbnVJdGVtVGV4dChjb25zdCBT
dHJpbmcmIHRpdGxlKQorU3RyaW5nIHRleHRUcmFja0tpbmRGb3JjZWREaXNwbGF5TmFtZSgpCiB7
Ci0gICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfQ0ZTVFJJTkcoIiVAIEVh
c3kgUmVhZGVyIiwgIlRleHQgdHJhY2sgY29udGFpbnMgc2ltcGxpZmllZCAoM3JkIGdyYWRlIGxl
dmVsKSBzdWJ0aXRsZXMiKSwgdGl0bGUuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7CisgICAgcmV0
dXJuIFdFQl9VSV9DRlNUUklOR19LRVkoIkZvcmNlZCIsICJGb3JjZWQgKHRleHQgdHJhY2spIiwg
IkRpc3BsYXkgbmFtZSBmb3IgdGV4dCB0cmFjayBraW5kICdmb3JjZWQnLiIpOwogfQogCi1TdHJp
bmcgZm9yY2VkVHJhY2tLaW5kRGlzcGxheU5hbWUoKQorU3RyaW5nIGFkZFRleHRUcmFja0tpbmRG
b3JjZWRTdWZmaXgoY29uc3QgU3RyaW5nJiB0ZXh0KQogewotICAgIHJldHVybiBmb3JtYXRMb2Nh
bGl6ZWRTdHJpbmcoV0VCX1VJX0NGU1RSSU5HKCJGb3JjZWQiLCAiRGlzcGxheSBuYW1lIGZvciB0
ZXh0IHRyYWNrIGtpbmQgJ2ZvcmNlZCcgdGhhdCBpcyB1c2VkIHRvIHNlZSBpZiB0aGUgSFRNTCAn
bGFiZWwnIGFscmVhZHkgY29udGFpbnMgJ0ZvcmNlZCcuIikpOworICAgIGlmICh0ZXh0LmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuIHRleHRUcmFja0tpbmRGb3JjZWREaXNwbGF5TmFtZSgpOwor
ICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX0NGU1RSSU5HX0tFWSgiJUAg
Rm9yY2VkIiwgIiVAIEZvcmNlZCAodGV4dCB0cmFjaykiLCAiRm9yY2VkIHRleHQgdHJhY2sgZGlz
cGxheSBuYW1lIGZvcm1hdCB0aGF0IGluY2x1ZGVzIHRoZSBsYW5ndWFnZSBhbmQvb3IgbG9jYWxl
IChlLmcuICdFbmdsaXNoIEZvcmNlZCcpLiIpLCB0ZXh0LmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkp
OwogfQogCi1TdHJpbmcgZm9yY2VkVHJhY2tNZW51SXRlbVRleHQoY29uc3QgU3RyaW5nJiB0aXRs
ZSkKK1N0cmluZyBhdWRpb1RyYWNrS2luZERlc2NyaXB0aW9uc0Rpc3BsYXlOYW1lKCkKIHsKLSAg
ICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9DRlNUUklORygiJUAgRm9yY2Vk
IiwgIlRleHQgdHJhY2sgY29udGFpbnMgZm9yY2VkIHN1YnRpdGxlcyIpLCB0aXRsZS5jcmVhdGVD
RlN0cmluZygpLmdldCgpKTsKKyAgICByZXR1cm4gV0VCX1VJX0NGU1RSSU5HX0tFWSgiRGVzY3Jp
cHRpb25zIiwgIkRlc2NyaXB0aW9ucyAoYXVkaW8gdHJhY2spIiwgIkRpc3BsYXkgbmFtZSBmb3Ig
YXVkaW8gdHJhY2sga2luZCAnZGVzY3JpcHRpb25zJy4iKTsKIH0KIAotU3RyaW5nIGF1ZGlvRGVz
Y3JpcHRpb25UcmFja1N1ZmZpeFRleHQoY29uc3QgU3RyaW5nJiB0aXRsZSkKK1N0cmluZyBhZGRB
dWRpb1RyYWNrS2luZERlc2NyaXB0aW9uc1N1ZmZpeChjb25zdCBTdHJpbmcmIHRleHQpCiB7Ci0g
ICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfQ0ZTVFJJTkcoIiVAIEFEIiwg
IlRleHQgdHJhY2sgY29udGFpbnMgQXVkaW8gRGVzY3JpcHRpb25zIiksIHRpdGxlLmNyZWF0ZUNG
U3RyaW5nKCkuZ2V0KCkpOworICAgIGlmICh0ZXh0LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJu
IGF1ZGlvVHJhY2tLaW5kRGVzY3JpcHRpb25zRGlzcGxheU5hbWUoKTsKKyAgICByZXR1cm4gZm9y
bWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9DRlNUUklOR19LRVkoIiVAIERlc2NyaXB0aW9ucyIs
ICIlQCBEZXNjcmlwdGlvbnMgKGF1ZGlvIHRyYWNrKSIsICJEZXNjcmlwdGlvbnMgYXVkaW8gdHJh
Y2sgZGlzcGxheSBuYW1lIGZvcm1hdCB0aGF0IGluY2x1ZGVzIHRoZSBsYW5ndWFnZSBhbmQvb3Ig
bG9jYWxlIChlLmcuICdFbmdsaXNoIERlc2NyaXB0aW9ucycpLiIpLCB0ZXh0LmNyZWF0ZUNGU3Ry
aW5nKCkuZ2V0KCkpOwogfQogCi0jZW5kaWYKK1N0cmluZyBhdWRpb1RyYWNrS2luZENvbW1lbnRh
cnlEaXNwbGF5TmFtZSgpCit7CisgICAgcmV0dXJuIFdFQl9VSV9DRlNUUklOR19LRVkoIkNvbW1l
bnRhcnkiLCAiQ29tbWVudGFyeSAoYXVkaW8gdHJhY2spIiwgIkRpc3BsYXkgbmFtZSBmb3IgYXVk
aW8gdHJhY2sga2luZCAnY29tbWVudGFyeScuIik7Cit9CisKK1N0cmluZyBhZGRBdWRpb1RyYWNr
S2luZENvbW1lbnRhcnlTdWZmaXgoY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAgIGlmICh0ZXh0
LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGF1ZGlvVHJhY2tLaW5kQ29tbWVudGFyeURpc3Bs
YXlOYW1lKCk7CisgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfQ0ZTVFJJ
TkdfS0VZKCIlQCBDb21tZW50YXJ5IiwgIiVAIENvbW1lbnRhcnkgKGF1ZGlvIHRyYWNrKSIsICJD
b21tZW50YXJ5IGF1ZGlvIHRyYWNrIGRpc3BsYXkgbmFtZSBmb3JtYXQgdGhhdCBpbmNsdWRlcyB0
aGUgbGFuZ3VhZ2UgYW5kL29yIGxvY2FsZSAoZS5nLiAnRW5nbGlzaCBDb21tZW50YXJ5JykuIiks
IHRleHQuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7Cit9CisKKyNlbmRpZiAvLyBVU0UoQ0YpCisK
KyNlbmRpZiAvLyBFTkFCTEUoVklERU8pCiAKIFN0cmluZyBzbmFwc2hvdHRlZFBsdWdJbkxhYmVs
VGl0bGUoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVk
U3RyaW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCmlu
ZGV4IGM3Yjg2ZWE1NzM2NmJiZDM4OWU4ZWZkYmQwY2MyOTQwNDkwYjBkMjEuLjRmMzk5NDI1YzRm
NDZkNDQ3YjA3NGUzY2IxZWMxODA1ZDYwNzZiMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Mb2NhbGl6ZWRTdHJpbmdzLmgKQEAgLTMwMCwzMSArMzAwLDM0IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogICAgIFN0cmluZyBjbGlja1RvRXhpdEZ1bGxTY3JlZW5UZXh0KCk7CiAKKyNpZiBF
TkFCTEUoVklERU8pCisgICAgU3RyaW5nIHRyYWNrTm9MYWJlbFRleHQoKTsKICAgICBTdHJpbmcg
dGV4dFRyYWNrT2ZmTWVudUl0ZW1UZXh0KCk7CiAgICAgU3RyaW5nIHRleHRUcmFja0F1dG9tYXRp
Y01lbnVJdGVtVGV4dCgpOwotICAgIFN0cmluZyB0ZXh0VHJhY2tOb0xhYmVsVGV4dCgpOwotICAg
IFN0cmluZyBhdWRpb1RyYWNrTm9MYWJlbFRleHQoKTsKLSNpZiBQTEFURk9STShDT0NPQSkgfHwg
UExBVEZPUk0oV0lOKQotICAgIFN0cmluZyBjYXB0aW9uc1RleHRUcmFja0tpbmREaXNwbGF5TmFt
ZSgpOwotICAgIFN0cmluZyBjYXB0aW9uc1RleHRUcmFja1dpdGhvdXRMYWJlbE1lbnVJdGVtVGV4
dChjb25zdCBTdHJpbmcmKTsKLSAgICBTdHJpbmcgZGVzY3JpcHRpb25zVGV4dFRyYWNrS2luZERp
c3BsYXlOYW1lKCk7Ci0gICAgU3RyaW5nIGRlc2NyaXB0aW9uc1RleHRUcmFja1dpdGhvdXRMYWJl
bE1lbnVJdGVtVGV4dChjb25zdCBTdHJpbmcmKTsKLSAgICBTdHJpbmcgY2hhcHRlcnNUZXh0VHJh
Y2tLaW5kRGlzcGxheU5hbWUoKTsKLSAgICBTdHJpbmcgY2hhcHRlcnNUZXh0VHJhY2tXaXRob3V0
TGFiZWxNZW51SXRlbVRleHQoY29uc3QgU3RyaW5nJik7Ci0gICAgU3RyaW5nIG1ldGFkYXRhVGV4
dFRyYWNrS2luZERpc3BsYXlOYW1lKCk7Ci0gICAgU3RyaW5nIG1ldGFkYXRhVGV4dFRyYWNrV2l0
aG91dExhYmVsTWVudUl0ZW1UZXh0KGNvbnN0IFN0cmluZyYpOwotICAgIFN0cmluZyB0ZXh0VHJh
Y2tDb3VudHJ5QW5kTGFuZ3VhZ2VNZW51SXRlbVRleHQoY29uc3QgU3RyaW5nJiB0aXRsZSwgY29u
c3QgU3RyaW5nJiBjb3VudHJ5LCBjb25zdCBTdHJpbmcmIGxhbmd1YWdlKTsKLSAgICBTdHJpbmcg
dGV4dFRyYWNrTGFuZ3VhZ2VNZW51SXRlbVRleHQoY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3Qg
U3RyaW5nJiBsYW5ndWFnZSk7Ci0gICAgU3RyaW5nIGNsb3NlZENhcHRpb25LaW5kVHJhY2tEaXNw
bGF5TmFtZSgpOwotICAgIFN0cmluZyBjbG9zZWRDYXB0aW9uVHJhY2tNZW51SXRlbVRleHQoY29u
c3QgU3RyaW5nJik7Ci0gICAgU3RyaW5nIHNkaFRyYWNrS2luZERpc3BsYXlOYW1lKCk7Ci0gICAg
U3RyaW5nIHNkaFRyYWNrTWVudUl0ZW1UZXh0KGNvbnN0IFN0cmluZyYpOwotICAgIFN0cmluZyBl
YXN5UmVhZGVyS2luZERpc3BsYXlOYW1lKCk7Ci0gICAgU3RyaW5nIGVhc3lSZWFkZXJUcmFja01l
bnVJdGVtVGV4dChjb25zdCBTdHJpbmcmKTsKLSAgICBTdHJpbmcgZm9yY2VkVHJhY2tLaW5kRGlz
cGxheU5hbWUoKTsKLSAgICBTdHJpbmcgZm9yY2VkVHJhY2tNZW51SXRlbVRleHQoY29uc3QgU3Ry
aW5nJik7Ci0gICAgU3RyaW5nIGF1ZGlvRGVzY3JpcHRpb25UcmFja1N1ZmZpeFRleHQoY29uc3Qg
U3RyaW5nJik7Ci0jZW5kaWYKKyNpZiBVU0UoQ0YpCisgICAgU3RyaW5nIGFkZFRyYWNrTGFiZWxB
c1N1ZmZpeChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKyAgICBTdHJpbmcgdGV4dFRy
YWNrS2luZENsb3NlZENhcHRpb25zRGlzcGxheU5hbWUoKTsKKyAgICBTdHJpbmcgYWRkVGV4dFRy
YWNrS2luZENsb3NlZENhcHRpb25zU3VmZml4KGNvbnN0IFN0cmluZyYpOworICAgIFN0cmluZyB0
ZXh0VHJhY2tLaW5kQ2FwdGlvbnNEaXNwbGF5TmFtZSgpOworICAgIFN0cmluZyBhZGRUZXh0VHJh
Y2tLaW5kQ2FwdGlvbnNTdWZmaXgoY29uc3QgU3RyaW5nJik7CisgICAgU3RyaW5nIHRleHRUcmFj
a0tpbmREZXNjcmlwdGlvbnNEaXNwbGF5TmFtZSgpOworICAgIFN0cmluZyBhZGRUZXh0VHJhY2tL
aW5kRGVzY3JpcHRpb25zU3VmZml4KGNvbnN0IFN0cmluZyYpOworICAgIFN0cmluZyB0ZXh0VHJh
Y2tLaW5kQ2hhcHRlcnNEaXNwbGF5TmFtZSgpOworICAgIFN0cmluZyBhZGRUZXh0VHJhY2tLaW5k
Q2hhcHRlcnNTdWZmaXgoY29uc3QgU3RyaW5nJik7CisgICAgU3RyaW5nIHRleHRUcmFja0tpbmRN
ZXRhZGF0YURpc3BsYXlOYW1lKCk7CisgICAgU3RyaW5nIGFkZFRleHRUcmFja0tpbmRNZXRhZGF0
YVN1ZmZpeChjb25zdCBTdHJpbmcmKTsKKyAgICBTdHJpbmcgdGV4dFRyYWNrS2luZFNESERpc3Bs
YXlOYW1lKCk7CisgICAgU3RyaW5nIGFkZFRleHRUcmFja0tpbmRTREhTdWZmaXgoY29uc3QgU3Ry
aW5nJik7CisgICAgU3RyaW5nIHRleHRUcmFja0tpbmRFYXN5UmVhZGVyRGlzcGxheU5hbWUoKTsK
KyAgICBTdHJpbmcgYWRkVGV4dFRyYWNrS2luZEVhc3lSZWFkZXJTdWZmaXgoY29uc3QgU3RyaW5n
Jik7CisgICAgU3RyaW5nIHRleHRUcmFja0tpbmRGb3JjZWREaXNwbGF5TmFtZSgpOworICAgIFN0
cmluZyBhZGRUZXh0VHJhY2tLaW5kRm9yY2VkU3VmZml4KGNvbnN0IFN0cmluZyYpOworICAgIFN0
cmluZyBhdWRpb1RyYWNrS2luZERlc2NyaXB0aW9uc0Rpc3BsYXlOYW1lKCk7CisgICAgU3RyaW5n
IGFkZEF1ZGlvVHJhY2tLaW5kRGVzY3JpcHRpb25zU3VmZml4KGNvbnN0IFN0cmluZyYpOworICAg
IFN0cmluZyBhdWRpb1RyYWNrS2luZENvbW1lbnRhcnlEaXNwbGF5TmFtZSgpOworICAgIFN0cmlu
ZyBhZGRBdWRpb1RyYWNrS2luZENvbW1lbnRhcnlTdWZmaXgoY29uc3QgU3RyaW5nJik7CisjZW5k
aWYgLy8gVVNFKENGKQorI2VuZGlmIC8vIEVOQUJMRShWSURFTykKIAogICAgIFN0cmluZyBzbmFw
c2hvdHRlZFBsdWdJbkxhYmVsVGl0bGUoKTsKICAgICBTdHJpbmcgc25hcHNob3R0ZWRQbHVnSW5M
YWJlbFN1YnRpdGxlKCk7CkBAIC0zODQsNiArMzg3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
I2lmIFVTRShDRikKIC8vIFRoaXMgaXMgZXhhY3RseSBhcyBXRUJfVUlfU1RSSU5HLCBidXQgcmVu
YW1lZCB0byBlbnN1cmUgdGhlIHN0cmluZyBpcyBub3Qgc2Nhbm5lZCBieSBub24tQ0YgcG9ydHMu
CiAjZGVmaW5lIFdFQl9VSV9DRlNUUklORyhzdHJpbmcsIGRlc2NyaXB0aW9uKSBXZWJDb3JlOjps
b2NhbGl6ZWRTdHJpbmcoc3RyaW5nKQorI2RlZmluZSBXRUJfVUlfQ0ZTVFJJTkdfS0VZKHN0cmlu
Zywga2V5LCBkZXNjcmlwdGlvbikgV2ViQ29yZTo6bG9jYWxpemVkU3RyaW5nKGtleSkKICNlbmRp
ZgogCiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGxvY2FsaXplZFN0cmluZyhjb25zdCBjaGFy
KiBrZXkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDFlOGU2NGE5NmJjOTI3NTA0ZjU1ZjRkMTk4M2ZhMTA2MjgxZGRjY2Eu
LjYzMTEyM2UzZDA2NDJlMzIyNTJhYTk1NWNkMTU5OGYwNjg0MzFhOTggMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMyBAQAorMjAyMS0wNS0yNyAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisK
KyAgICAgICAgW01vZGVybiBNZWRpYSBDb250cm9sc10gcHV0IHRoZSBsb2NhbGl6ZWQgaW5mb3Jt
YXRpb24gZm9yIHRyYWNrcyBmaXJzdCBpZiB0aGUgdHJhY2sgaXMgbm90IGluIHRoZSB1c2VyJ3Mg
cHJlZmVycmVkIGxhbmd1YWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjYzNjEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc4NDk3ODUzPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3NvcnRlZC1ieS11c2VyLXByZWZlcnJl
ZC1sYW5ndWFnZXMtZXhwZWN0ZWQudHh0OgorCiAyMDIxLTA1LTI3ICBEZXZpbiBSb3Vzc28gIDxk
cm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgYE5TTG9jYWxlYCBTUEkgZm9yIGNvbXBh
cmluZyBsYW5ndWFnZSBpZGVudGlmaWVycyBpbnN0ZWFkIG9mIHN0cmluZyBjb21wYXJpc29uCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tz
LXN1cHBvcnQvc29ydGVkLWJ5LXVzZXItcHJlZmVycmVkLWxhbmd1YWdlcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQv
c29ydGVkLWJ5LXVzZXItcHJlZmVycmVkLWxhbmd1YWdlcy1leHBlY3RlZC50eHQKaW5kZXggYzE0
MzUzMzM5MDQxMDg4N2MxZThhNTliZWYzODczOTQyZWRjZmY2My4uZDliMWQxZDIzNTM1YjIzZmVj
MTZlNzE1YmY2MzU2MGI3MDg2MzUxZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3NvcnRlZC1ieS11c2VyLXByZWZlcnJl
ZC1sYW5ndWFnZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9zb3J0ZWQtYnktdXNlci1wcmVmZXJyZWQtbGFu
Z3VhZ2VzLWV4cGVjdGVkLnR4dApAQCAtMTMsMTUgKzEzLDE1IEBAIFN1YnRpdGxlczogWwogICAi
RGVzY3JpcHRpb25zIiwKICAgImxhYmVsLWVuIiwKICAgIlNwYW5pc2ggQ2FwdGlvbnMiLAotICAi
RGVzY3JpcHRpb25zIChTcGFuaXNoKSIsCiAgICJTcGFuaXNoIiwKKyAgIlNwYW5pc2ggRGVzY3Jp
cHRpb25zIiwKICAgIkNoaW5lc2UgKENoaW5hIG1haW5sYW5kKSIsCi0gICJsYWJlbC1mciAoRnJl
bmNoKSBDYXB0aW9ucyIsCi0gICJEZXNjcmlwdGlvbnMgKEZyZW5jaCkiLAotICAibGFiZWwtZnIg
KEZyZW5jaCkiLAorICAiRnJlbmNoIENhcHRpb25zIChsYWJlbC1mcikiLAorICAiRnJlbmNoIChs
YWJlbC1mcikiLAorICAiRnJlbmNoIERlc2NyaXB0aW9ucyIsCiAgICJHZXJtYW4gQ2FwdGlvbnMi
LAotICAiRGVzY3JpcHRpb25zIChHZXJtYW4pIiwKLSAgIkdlcm1hbiIKKyAgIkdlcm1hbiIsCisg
ICJHZXJtYW4gRGVzY3JpcHRpb25zIgogXQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>