<?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>110454</bug_id>
          
          <creation_ts>2013-02-21 03:41:22 -0800</creation_ts>
          <short_desc>Add methods to date types for new calendar picker</short_desc>
          <delta_ts>2013-02-24 08:44:33 -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>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>109439</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Keishi Hattori">keishi</reporter>
          <assigned_to name="Keishi Hattori">keishi</assigned_to>
          <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>838299</commentid>
    <comment_count>0</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2013-02-21 03:41:22 -0800</bug_when>
    <thetext>Add methods to date types for new calendar picker</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838312</commentid>
    <comment_count>1</comment_count>
      <attachid>189505</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2013-02-21 03:58:48 -0800</bug_when>
    <thetext>Created attachment 189505
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838388</commentid>
    <comment_count>2</comment_count>
      <attachid>189505</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2013-02-21 06:49:16 -0800</bug_when>
    <thetext>Comment on attachment 189505
Patch

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

&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:224
&gt;      this.year = dateObject.getUTCFullYear();    
&gt;      this.month = dateObject.getUTCMonth();
&gt;      this.date = dateObject.getUTCDate();

Data members should have JsDoc comments in the constructor.

&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:249
&gt; + * @param {!number} value
&gt; + * @return {!Day}
&gt; + */
&gt; +Day.createFromValue = function(value) {

&apos;value&apos; has almost no information.   It should be &apos;milliseconds&apos; or something.

&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:268
&gt; +    return day.copy();

Can we just return this?
AFAIK, Day objects are immutable, right?

&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:332
&gt; +    return this.copy();

Ditto.

&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:339
&gt; +    return this.copy();

Ditto.

&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:346
&gt; +    return this.copy();

Ditto.

&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:389
&gt; +    this.year = year;
&gt; +    this.week = week;

Data members should have JsDoc comments in the constructor.

&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:487
&gt; +        return Day.Minimum.copy();

Do we need to copy?

&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:616
&gt; +    this.year = year + Math.floor(month / MonthsPerYear);
&gt; +    this.month = month % MonthsPerYear &lt; 0 ? month % MonthsPerYear + MonthsPerYear : month % MonthsPerYear;

Data members should have JsDoc comments in the constructor.

&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:642
&gt; + * @param {!number} value

Need more meaningful name.  monthsSinceEpoch?

&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:752
&gt; +        return Day.Maximum.copy();

Do we need to copy?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839177</commentid>
    <comment_count>3</comment_count>
      <attachid>189667</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2013-02-21 20:32:59 -0800</bug_when>
    <thetext>Created attachment 189667
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839266</commentid>
    <comment_count>4</comment_count>
      <attachid>189667</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2013-02-21 23:03:05 -0800</bug_when>
    <thetext>Comment on attachment 189667
Patch

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839431</commentid>
    <comment_count>5</comment_count>
      <attachid>189735</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2013-02-22 03:34:40 -0800</bug_when>
    <thetext>Created attachment 189735
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839482</commentid>
    <comment_count>6</comment_count>
      <attachid>189735</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-22 05:23:10 -0800</bug_when>
    <thetext>Comment on attachment 189735
Patch

Rejecting attachment 189735 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=gce-cq-02&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 189735, &apos;--port=chromium-xvfb&apos;]&quot; exit_code: 2 cwd: /mnt/git/webkit-commit-queue

Last 500 characters of output:

fatal: read error: Connection reset by peer
Died at Tools/Scripts/update-webkit line 151.

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;, &apos;--chromium&apos;, &apos;--force-update&apos;]&quot; exit_code: 2

Updating OpenSource
fatal: read error: Connection reset by peer
Died at Tools/Scripts/update-webkit line 151.

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;, &apos;--chromium&apos;, &apos;--force-update&apos;]&quot; exit_code: 2
Updating OpenSource
fatal: read error: Connection reset by peer
Died at Tools/Scripts/update-webkit line 151.

Full output: http://queues.webkit.org/results/16700795</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840612</commentid>
    <comment_count>7</comment_count>
      <attachid>189735</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-24 08:44:30 -0800</bug_when>
    <thetext>Comment on attachment 189735
Patch

Clearing flags on attachment: 189735

Committed r143867: &lt;http://trac.webkit.org/changeset/143867&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840613</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-24 08:44:33 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189505</attachid>
            <date>2013-02-21 03:58:48 -0800</date>
            <delta_ts>2013-02-21 20:32:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110454-20130221205508.patch</filename>
            <type>text/plain</type>
            <size>54342</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzBiYzA4ODM5Yjk0YTQ2
YTVkM2FmNjJlNDQ4MjA5YjkyMGVkMmI1NS4uNjI5ZGNjYTY5MGMwMzZlMDdjNWQ2YTYxMDRiYTRl
MTQ2MTFhOTI3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDEzLTAyLTIyICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBtZXRob2RzIHRv
IGRhdGUgdHlwZXMgZm9yIG5ldyBjYWxlbmRhciBwaWNrZXIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDQ1NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGluZyBzb21lIG1ldGhvZHMgdG8gZGF0ZSB0
eXBlcyBhcyBwYXJ0IG9mIHRoZSBjYWxlbmRhciBwaWNrZXIgcmVkZXNpZ24gKEJ1ZyAxMDk0Mzkp
LgorCisgICAgICAgIFRlc3Q6IHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZm9ybXMvY2FsZW5kYXIt
cGlja2VyL2NhbGVuZGFyLXBpY2tlci1kYXRlLXR5cGVzLmh0bWwKKworICAgICAgICAqIFJlc291
cmNlcy9wYWdlcG9wdXBzL2NhbGVuZGFyUGlja2VyLmpzOgorICAgICAgICAoY3JlYXRlVVRDRGF0
ZSk6CisgICAgICAgIChEYXRlVHlwZSk6IEJhc2UgY2xhc3MgZm9yIERheSwgV2VlayBhbmQgTW9u
dGguCisgICAgICAgIChEYXkpOiBTaW1wbGlmaWVkIGNvbnN0cnVjdG9yIHRvIG9ubHkgYWNjZXB0
IHllYXIsIG1vbnRoLCBkYXRlLgorICAgICAgICAoRGF5LmNyZWF0ZUZyb21WYWx1ZSk6IENyZWF0
ZXMgYSBuZXcgRGF5IGZyb20gYSB2YWx1ZS4KKyAgICAgICAgKERheS5jcmVhdGVGcm9tRGF0ZSk6
IFRocm93IGFuIGVycm9yIGlmIHRoZSBnaXZlbiBkYXRlIGlzIGludmFsaWQuCisgICAgICAgIChE
YXkuY3JlYXRlRnJvbURheSk6CisgICAgICAgIChEYXkucHJvdG90eXBlLmNvcHkpOiBDcmVhdGVz
IGEgY29weS4KKyAgICAgICAgKERheS5wcm90b3R5cGUuZXF1YWxzKTogQWNjZXB0IG5vbiBEYXkg
b2JqZWN0cy4KKyAgICAgICAgKERheS5wcm90b3R5cGUucHJldmlvdXMpOiBNb2RpZmllZCB0byB0
YWtlIGFuIG9mZnNldCB2YWx1ZS4KKyAgICAgICAgKERheS5wcm90b3R5cGUubmV4dCk6IERpdHRv
LgorICAgICAgICAoRGF5LnByb3RvdHlwZS5maXJzdERheSk6IFJldHVybnMgdGhlIGZpcnN0IGRh
eSBpbiB0aGUgcmFuZ2UuIEZvciBEYXkncyBjYXNlLCByZXR1cm5zIGEgY29weS4KKyAgICAgICAg
KERheS5wcm90b3R5cGUubWlkZGxlRGF5KTogUmV0dXJucyB0aGUgbWlkZGxlIGRheSBpbiB0aGUg
cmFuZ2UuIEZvciBEYXkncyBjYXNlLCByZXR1cm5zIGEgY29weS4KKyAgICAgICAgKERheS5wcm90
b3R5cGUubGFzdERheSk6IFJldHVybnMgdGhlIG1pZGRsZSBkYXkgaW4gdGhlIHJhbmdlLiBGb3Ig
RGF5J3MgY2FzZSwgcmV0dXJucyBhIGNvcHkuCisgICAgICAgIChEYXkucHJvdG90eXBlLnZhbHVl
T2YpOgorICAgICAgICAoRGF5LnByb3RvdHlwZS53ZWVrRGF5KTogUmV0dXJucyB0aGUgd2VlayBk
YXkuCisgICAgICAgIChXZWVrKTogU2ltcGxpZmllZCBjb25zdHJ1Y3RvciB0byBvbmx5IGFjY2Vw
dCB5ZWFyLCBtb250aCwgZGF0ZS4KKyAgICAgICAgKFdlZWsuY3JlYXRlRnJvbVZhbHVlKToKKyAg
ICAgICAgKFdlZWsuY3JlYXRlRnJvbURhdGUpOgorICAgICAgICAoV2Vlay5jcmVhdGVGcm9tRGF5
KToKKyAgICAgICAgKFdlZWsud2Vla09uZVN0YXJ0RGF0ZUZvclllYXIpOgorICAgICAgICAoV2Vl
ay53ZWVrT25lU3RhcnREYXlGb3JZZWFyKToKKyAgICAgICAgKFdlZWsuX251bWJlck9mV2Vla3NT
aW5jZURhdGUpOgorICAgICAgICAoV2Vlay5wcm90b3R5cGUuY29weSk6CisgICAgICAgIChXZWVr
LnByb3RvdHlwZS5lcXVhbHMpOgorICAgICAgICAoV2Vlay5wcm90b3R5cGUucHJldmlvdXMpOgor
ICAgICAgICAoV2Vlay5wcm90b3R5cGUubmV4dCk6CisgICAgICAgIChXZWVrLnByb3RvdHlwZS5m
aXJzdERheSk6IFJldHVybnMgdGhlIGZpcnN0IGRheSBpbiB0aGUgd2Vlay4KKyAgICAgICAgKFdl
ZWsucHJvdG90eXBlLm1pZGRsZURheSk6IFJldHVybnMgdGhlIHRoZSBkYXkgZm9yIFRodXJzZGF5
LgorICAgICAgICAoV2Vlay5wcm90b3R5cGUubGFzdERheSk6IFJldHVybnMgdGhlIGxhc3QgZGF5
IGluIHRoZSB3ZWVrLgorICAgICAgICAoV2Vlay5wcm90b3R5cGUudmFsdWVPZik6CisgICAgICAg
IChNb250aCk6CisgICAgICAgIChNb250aC5jcmVhdGVGcm9tVmFsdWUpOgorICAgICAgICAoTW9u
dGguY3JlYXRlRnJvbURhdGUpOgorICAgICAgICAoTW9udGguY3JlYXRlRnJvbURheSk6CisgICAg
ICAgIChNb250aC5wcm90b3R5cGUuY29udGFpbnNEYXkpOgorICAgICAgICAoTW9udGgucHJvdG90
eXBlLmNvcHkpOgorICAgICAgICAoTW9udGgucHJvdG90eXBlLmVxdWFscyk6CisgICAgICAgIChN
b250aC5wcm90b3R5cGUucHJldmlvdXMpOgorICAgICAgICAoTW9udGgucHJvdG90eXBlLm5leHQp
OgorICAgICAgICAoTW9udGgucHJvdG90eXBlLmZpcnN0RGF5KTogUmV0dXJucyB0aGUgZmlyc3Qg
ZGF5IGluIHRoZSBtb250aC4KKyAgICAgICAgKE1vbnRoLnByb3RvdHlwZS5taWRkbGVEYXkpOiBS
ZXR1cm5zIHRoZSBtaWRkbGUgZGF5IGluIHRoZSBtb250aC4KKyAgICAgICAgKE1vbnRoLnByb3Rv
dHlwZS5sYXN0RGF5KTogUmV0dXJucyB0aGUgbGFzdCBkYXkgaW4gdGhlIG1vbnRoLgorICAgICAg
ICAoTW9udGgucHJvdG90eXBlLnZhbHVlT2YpOgorICAgICAgICAoTW9udGgucHJvdG90eXBlLnRv
TG9jYWxlU3RyaW5nKTogTW92ZWQgbG9jYXRpb24uCisgICAgICAgIChNb250aC5wcm90b3R5cGUu
dG9TaG9ydExvY2FsZVN0cmluZyk6IFJldHVybnMgdGhlIG1vbnRoIHN0cmluZyBpbiBzaG9ydCBm
b3JtYXQuCisgICAgICAgIChDYWxlbmRhclBpY2tlcik6IFVzZSBjcmVhdGVGcm9tVmFsdWUuCisg
ICAgICAgIChZZWFyTW9udGhDb250cm9sbGVyLnByb3RvdHlwZS5zZXRNb250aCk6IERpdHRvLgor
ICAgICAgICAoWWVhck1vbnRoQ29udHJvbGxlci5wcm90b3R5cGUubW92ZVJlbGF0aXZlbHkpOiBE
aXR0by4KKwogMjAxMy0wMi0yMSAgS2Vpc2hpIEhhdHRvcmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4K
IAogICAgICAgICBBZGQgZXZlbnQgZGlzcGF0Y2ggY2xhc3MgZm9yIHRoZSBuZXcgY2FsZW5kYXIg
cGlja2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvcGFnZXBvcHVwcy9j
YWxlbmRhclBpY2tlci5qcyBiL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9wdXBzL2Nh
bGVuZGFyUGlja2VyLmpzCmluZGV4IDAxZWI3M2I5NTRhNTg0ZGMxZTc5MmFmMDJkYmUwNGI5NWUz
NGQ1MWUuLjdkMTU1Y2Y2NjQ5MmU5MzY2Mzk1MWE4OGU1OWM4YzcxMTg2Y2U0MDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9wdXBzL2NhbGVuZGFyUGlja2VyLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9wdXBzL2NhbGVuZGFyUGlja2Vy
LmpzCkBAIC0xMTIsNiArMTEyLDE5IEBAIGZ1bmN0aW9uIGxvY2FsaXplTnVtYmVyKG51bWJlcikg
ewogCiAvKioKICAqIEBjb25zdAorICovCit2YXIgV2Vla0RheSA9IHsKKyAgICBTdW5kYXk6IDAs
CisgICAgTW9uZGF5OiAxLAorICAgIFR1ZXNkYXk6IDIsCisgICAgV2VkbmVzZGF5OiAzLAorICAg
IFRodXJzZGF5OiA0LAorICAgIEZyaWRheTogNSwKKyAgICBTYXR1cmRheTogNgorfTsKKworLyoq
CisgKiBAY29uc3QKICAqIEB0eXBlIHtudW1iZXJ9CiAgKi8KIHZhciBJbXBlcmlhbEVyYUxpbWl0
ID0gMjA4NzsKQEAgLTE0MywyNCArMTU2LDEzIEBAIGZ1bmN0aW9uIGZvcm1hdEphcGFuZXNlSW1w
ZXJpYWxFcmEoeWVhciwgbW9udGgpIHsKICAgICByZXR1cm4gIiI7CiB9CiAKLS8qKgotICogQHJl
dHVybiB7IXN0cmluZ30KLSAqLwotTW9udGgucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nID0gZnVu
Y3Rpb24oKSB7Ci0gICAgaWYgKGlzTmFOKHRoaXMueWVhcikgfHwgaXNOYU4odGhpcy55ZWFyKSkK
LSAgICAgICAgcmV0dXJuICJJbnZhbGlkIE1vbnRoIjsKLSAgICBpZiAoZ2V0TGFuZ3VhZ2UoKSA9
PSAiamEiKQotICAgICAgICByZXR1cm4gIiIgKyB0aGlzLnllYXIgKyAi5bm0IiArIGZvcm1hdEph
cGFuZXNlSW1wZXJpYWxFcmEodGhpcy55ZWFyLCB0aGlzLm1vbnRoKSArICIgIiArICh0aGlzLm1v
bnRoICsgMSkgKyAi5pyIIjsKLSAgICByZXR1cm4gd2luZG93LnBhZ2VQb3B1cENvbnRyb2xsZXIu
Zm9ybWF0TW9udGgodGhpcy55ZWFyLCB0aGlzLm1vbnRoKTsKLX07Ci0KIGZ1bmN0aW9uIGNyZWF0
ZVVUQ0RhdGUoeWVhciwgbW9udGgsIGRhdGUpIHsKICAgICB2YXIgbmV3RGF0ZSA9IG5ldyBEYXRl
KDApOwogICAgIG5ld0RhdGUuc2V0VVRDRnVsbFllYXIoeWVhcik7CiAgICAgbmV3RGF0ZS5zZXRV
VENNb250aChtb250aCk7CiAgICAgbmV3RGF0ZS5zZXRVVENEYXRlKGRhdGUpOwogICAgIHJldHVy
biBuZXdEYXRlOwotfTsKK30KIAogLyoqCiAgKiBAcGFyYW0ge3N0cmluZ30gZGF0ZVN0cmluZwpA
QCAtMTc3LDI5ICsxNzksNTggQEAgZnVuY3Rpb24gcGFyc2VEYXRlU3RyaW5nKGRhdGVTdHJpbmcp
IHsKIH0KIAogLyoqCisgKiBAY29uc3QKKyAqIEB0eXBlIHtudW1iZXJ9CisgKi8KK3ZhciBEYXlz
UGVyV2VlayA9IDc7CisKKy8qKgorICogQGNvbnN0CisgKiBAdHlwZSB7bnVtYmVyfQorICovCit2
YXIgTW9udGhzUGVyWWVhciA9IDEyOworCisvKioKKyAqIEBjb25zdAorICogQHR5cGUge251bWJl
cn0KKyAqLwordmFyIE1pbGxpc2Vjb25kc1BlckRheSA9IDI0ICogNjAgKiA2MCAqIDEwMDA7CisK
Ky8qKgorICogQGNvbnN0CisgKiBAdHlwZSB7bnVtYmVyfQorICovCit2YXIgTWlsbGlzZWNvbmRz
UGVyV2VlayA9IERheXNQZXJXZWVrICogTWlsbGlzZWNvbmRzUGVyRGF5OworCisvKioKKyAqIEBj
b25zdHJ1Y3RvcgorICovCitmdW5jdGlvbiBEYXRlVHlwZSgpIHsKK30KKworLyoqCiAgKiBAY29u
c3RydWN0b3IKLSAqIEBwYXJhbSB7IW51bWJlcnxEYXl9IHZhbHVlT3JEYXlPclllYXIKLSAqIEBw
YXJhbSB7IW51bWJlcj19IG1vbnRoCi0gKiBAcGFyYW0geyFudW1iZXI9fSBkYXRlCi0gKi8KLWZ1
bmN0aW9uIERheSh2YWx1ZU9yRGF5T3JZZWFyLCBtb250aCwgZGF0ZSkgewotICAgIHZhciBkYXRl
T2JqZWN0OwotICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDMpCi0gICAgICAgIGRhdGVPYmpl
Y3QgPSBjcmVhdGVVVENEYXRlKHZhbHVlT3JEYXlPclllYXIsIG1vbnRoLCBkYXRlKTsKLSAgICBl
bHNlIGlmICh2YWx1ZU9yRGF5T3JZZWFyIGluc3RhbmNlb2YgRGF5KQotICAgICAgICBkYXRlT2Jq
ZWN0ID0gY3JlYXRlVVRDRGF0ZSh2YWx1ZU9yRGF5T3JZZWFyLnllYXIsIHZhbHVlT3JEYXlPclll
YXIubW9udGgsIHZhbHVlT3JEYXlPclllYXIuZGF0ZSk7Ci0gICAgZWxzZQotICAgICAgICBkYXRl
T2JqZWN0ID0gbmV3IERhdGUodmFsdWVPckRheU9yWWVhcik7CisgKiBAZXh0ZW5kcyBEYXRlVHlw
ZQorICogQHBhcmFtIHshbnVtYmVyfSB5ZWFyCisgKiBAcGFyYW0geyFudW1iZXJ9IG1vbnRoCisg
KiBAcGFyYW0geyFudW1iZXJ9IGRhdGUKKyAqLworZnVuY3Rpb24gRGF5KHllYXIsIG1vbnRoLCBk
YXRlKSB7CisgICAgdmFyIGRhdGVPYmplY3QgPSBjcmVhdGVVVENEYXRlKHllYXIsIG1vbnRoLCBk
YXRlKTsKKyAgICBpZiAoaXNOYU4oZGF0ZU9iamVjdC52YWx1ZU9mKCkpKQorICAgICAgICB0aHJv
dyAiSW52YWxpZCBkYXRlIjsKICAgICB0aGlzLnllYXIgPSBkYXRlT2JqZWN0LmdldFVUQ0Z1bGxZ
ZWFyKCk7ICAgIAogICAgIHRoaXMubW9udGggPSBkYXRlT2JqZWN0LmdldFVUQ01vbnRoKCk7CiAg
ICAgdGhpcy5kYXRlID0gZGF0ZU9iamVjdC5nZXRVVENEYXRlKCk7CiB9OwogCitEYXkucHJvdG90
eXBlID0gT2JqZWN0LmNyZWF0ZShEYXRlVHlwZS5wcm90b3R5cGUpOworCiBEYXkuSVNPU3RyaW5n
UmVnRXhwID0gL14oXGQrKS0oXGQrKS0oXGQrKS87CiAKIC8qKgogICogQHBhcmFtIHshc3RyaW5n
fSBzdHIKLSAqIEByZXR1cm4gez9Nb250aH0KKyAqIEByZXR1cm4gez9EYXl9CiAgKi8KIERheS5w
YXJzZSA9IGZ1bmN0aW9uKHN0cikgewogICAgIHZhciBtYXRjaCA9IERheS5JU09TdHJpbmdSZWdF
eHAuZXhlYyhzdHIpOwpAQCAtMjEyLDE0ICsyNDMsMzIgQEAgRGF5LnBhcnNlID0gZnVuY3Rpb24o
c3RyKSB7CiB9OwogCiAvKioKKyAqIEBwYXJhbSB7IW51bWJlcn0gdmFsdWUKKyAqIEByZXR1cm4g
eyFEYXl9CisgKi8KK0RheS5jcmVhdGVGcm9tVmFsdWUgPSBmdW5jdGlvbih2YWx1ZSkgeworICAg
IHJldHVybiBEYXkuY3JlYXRlRnJvbURhdGUobmV3IERhdGUodmFsdWUpKQorfTsKKworLyoqCiAg
KiBAcGFyYW0geyFEYXRlfSBkYXRlCiAgKiBAcmV0dXJuIHshRGF5fQogICovCiBEYXkuY3JlYXRl
RnJvbURhdGUgPSBmdW5jdGlvbihkYXRlKSB7CisgICAgaWYgKGlzTmFOKGRhdGUudmFsdWVPZigp
KSkKKyAgICAgICAgdGhyb3cgIkludmFsaWQgZGF0ZSI7CiAgICAgcmV0dXJuIG5ldyBEYXkoZGF0
ZS5nZXRVVENGdWxsWWVhcigpLCBkYXRlLmdldFVUQ01vbnRoKCksIGRhdGUuZ2V0VVRDRGF0ZSgp
KTsKIH07CiAKIC8qKgorICogQHBhcmFtIHshRGF5fSBkYXkKKyAqIEByZXR1cm4geyFEYXl9Cisg
Ki8KK0RheS5jcmVhdGVGcm9tRGF5ID0gZnVuY3Rpb24oZGF5KSB7CisgICAgcmV0dXJuIGRheS5j
b3B5KCk7Cit9OworCisvKioKICAqIEByZXR1cm4geyFEYXl9CiAgKi8KIERheS5jcmVhdGVGcm9t
VG9kYXkgPSBmdW5jdGlvbigpIHsKQEAgLTIyOCwyNSArMjc3LDM4IEBAIERheS5jcmVhdGVGcm9t
VG9kYXkgPSBmdW5jdGlvbigpIHsKIH07CiAKIC8qKgotICogQHBhcmFtIHshRGF5fSBvdGhlcgot
ICogQHJldHVybiB7IWJvb2x9CisgKiBAcmV0dXJuIHshRGF5fQorICovCitEYXkucHJvdG90eXBl
LmNvcHkgPSBmdW5jdGlvbigpIHsKKyAgICByZXR1cm4gbmV3IERheSh0aGlzLnllYXIsIHRoaXMu
bW9udGgsIHRoaXMuZGF0ZSk7Cit9OworCisvKioKKyAqIEBwYXJhbSB7IURhdGVUeXBlfSBvdGhl
cgorICogQHJldHVybiB7IWJvb2xlYW59CiAgKi8KIERheS5wcm90b3R5cGUuZXF1YWxzID0gZnVu
Y3Rpb24ob3RoZXIpIHsKLSAgICByZXR1cm4gdGhpcy55ZWFyID09PSBvdGhlci55ZWFyICYmIHRo
aXMubW9udGggPT09IG90aGVyLm1vbnRoICYmIHRoaXMuZGF0ZSA9PT0gb3RoZXIuZGF0ZTsKKyAg
ICByZXR1cm4gb3RoZXIgaW5zdGFuY2VvZiBEYXkgJiYgdGhpcy55ZWFyID09PSBvdGhlci55ZWFy
ICYmIHRoaXMubW9udGggPT09IG90aGVyLm1vbnRoICYmIHRoaXMuZGF0ZSA9PT0gb3RoZXIuZGF0
ZTsKIH07CiAKIC8qKgorICogQHBhcmFtIHshbnVtYmVyPX0gb2Zmc2V0CiAgKiBAcmV0dXJuIHsh
RGF5fQogICovCi1EYXkucHJvdG90eXBlLnByZXZpb3VzID0gZnVuY3Rpb24oKSB7Ci0gICAgcmV0
dXJuIG5ldyBEYXkodGhpcy55ZWFyLCB0aGlzLm1vbnRoLCB0aGlzLmRhdGUgLSAxKTsKK0RheS5w
cm90b3R5cGUucHJldmlvdXMgPSBmdW5jdGlvbihvZmZzZXQpIHsKKyAgICBpZiAodHlwZW9mIG9m
ZnNldCA9PT0gInVuZGVmaW5lZCIpCisgICAgICAgIG9mZnNldCA9IDE7CisgICAgcmV0dXJuIG5l
dyBEYXkodGhpcy55ZWFyLCB0aGlzLm1vbnRoLCB0aGlzLmRhdGUgLSBvZmZzZXQpOwogfTsKIAog
LyoqCisgKiBAcGFyYW0geyFudW1iZXI9fSBvZmZzZXQKICAqIEByZXR1cm4geyFEYXl9CiAgKi8K
LURheS5wcm90b3R5cGUubmV4dCA9IGZ1bmN0aW9uKCkgewotICAgIHJldHVybiBuZXcgRGF5KHRo
aXMueWVhciwgdGhpcy5tb250aCwgdGhpcy5kYXRlICsgMSk7CitEYXkucHJvdG90eXBlLm5leHQg
PSBmdW5jdGlvbihvZmZzZXQpIHsKKyBpZiAodHlwZW9mIG9mZnNldCA9PT0gInVuZGVmaW5lZCIp
CisgICAgIG9mZnNldCA9IDE7CisgICAgcmV0dXJuIG5ldyBEYXkodGhpcy55ZWFyLCB0aGlzLm1v
bnRoLCB0aGlzLmRhdGUgKyBvZmZzZXQpOwogfTsKIAogLyoqCkBAIC0yNjQsMTAgKzMyNiwzOCBA
QCBEYXkucHJvdG90eXBlLmVuZERhdGUgPSBmdW5jdGlvbigpIHsKIH07CiAKIC8qKgorICogQHJl
dHVybiB7IURheX0KKyAqLworRGF5LnByb3RvdHlwZS5maXJzdERheSA9IGZ1bmN0aW9uKCkgewor
ICAgIHJldHVybiB0aGlzLmNvcHkoKTsKK307CisKKy8qKgorICogQHJldHVybiB7IURheX0KKyAq
LworRGF5LnByb3RvdHlwZS5taWRkbGVEYXkgPSBmdW5jdGlvbigpIHsKKyAgICByZXR1cm4gdGhp
cy5jb3B5KCk7Cit9OworCisvKioKKyAqIEByZXR1cm4geyFEYXl9CisgKi8KK0RheS5wcm90b3R5
cGUubGFzdERheSA9IGZ1bmN0aW9uKCkgeworICAgIHJldHVybiB0aGlzLmNvcHkoKTsKK307CisK
Ky8qKgogICogQHJldHVybiB7IW51bWJlcn0KICAqLwogRGF5LnByb3RvdHlwZS52YWx1ZU9mID0g
ZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIHRoaXMuc3RhcnREYXRlKCkuZ2V0VGltZSgpOworICAg
IHJldHVybiBjcmVhdGVVVENEYXRlKHRoaXMueWVhciwgdGhpcy5tb250aCwgdGhpcy5kYXRlKS5n
ZXRUaW1lKCk7Cit9OworCisvKioKKyAqIEByZXR1cm4geyFXZWVrRGF5fQorICovCitEYXkucHJv
dG90eXBlLndlZWtEYXkgPSBmdW5jdGlvbigpIHsKKyAgICByZXR1cm4gY3JlYXRlVVRDRGF0ZSh0
aGlzLnllYXIsIHRoaXMubW9udGgsIHRoaXMuZGF0ZSkuZ2V0VVRDRGF5KCk7CiB9OwogCiAvKioK
QEAgLTI4MSw0NiArMzcxLDQyIEBAIERheS5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbigp
IHsKIH07CiAKIC8vIFNlZSBXZWJDb3JlL3BsYXRmb3JtL0RhdGVDb21wb25lbnRzLmguCi1EYXku
TWluaW11bSA9IG5ldyBEYXkoLTYyMTM1NTk2ODAwMDAwLjApOwotRGF5Lk1heGltdW0gPSBuZXcg
RGF5KDg2NDAwMDAwMDAwMDAwMDAuMCk7CitEYXkuTWluaW11bSA9IERheS5jcmVhdGVGcm9tVmFs
dWUoLTYyMTM1NTk2ODAwMDAwLjApOworRGF5Lk1heGltdW0gPSBEYXkuY3JlYXRlRnJvbVZhbHVl
KDg2NDAwMDAwMDAwMDAwMDAuMCk7CisKIC8vIFNlZSBXZWJDb3JlL2h0bWwvRGF5SW5wdXRUeXBl
LmNwcC4KIERheS5EZWZhdWx0U3RlcCA9IDg2NDAwMDAwOwogRGF5LkRlZmF1bHRTdGVwQmFzZSA9
IDA7CiAKIC8qKgogICogQGNvbnN0cnVjdG9yCi0gKiBAcGFyYW0geyFudW1iZXJ8V2Vla30gdmFs
dWVPcldlZWtPclllYXIKLSAqIEBwYXJhbSB7IW51bWJlcj19IHdlZWsKLSAqLwotZnVuY3Rpb24g
V2Vlayh2YWx1ZU9yV2Vla09yWWVhciwgd2VlaykgewotICAgIGlmIChhcmd1bWVudHMubGVuZ3Ro
ID09PSAyKSB7Ci0gICAgICAgIHRoaXMueWVhciA9IHZhbHVlT3JXZWVrT3JZZWFyOwotICAgICAg
ICB0aGlzLndlZWsgPSB3ZWVrOwotICAgICAgICAvLyBOdW1iZXIgb2YgeWVhcnMgcGVyIHllYXIg
aXMgZWl0aGVyIDUyIG9yIDUzLgotICAgICAgICBpZiAodGhpcy53ZWVrIDwgMSB8fCAodGhpcy53
ZWVrID4gNTIgJiYgdGhpcy53ZWVrID4gV2Vlay5udW1iZXJPZldlZWtzSW5ZZWFyKHRoaXMueWVh
cikpKSB7Ci0gICAgICAgICAgICB2YXIgbm9ybWFsaXplZFdlZWsgPSBXZWVrLmNyZWF0ZUZyb21E
YXRlKHRoaXMuc3RhcnREYXRlKCkpOwotICAgICAgICAgICAgdGhpcy55ZWFyID0gbm9ybWFsaXpl
ZFdlZWsueWVhcjsKLSAgICAgICAgICAgIHRoaXMud2VlayA9IG5vcm1hbGl6ZWRXZWVrLndlZWs7
Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgaWYgKHZhbHVlT3JXZWVrT3JZZWFyIGluc3RhbmNlb2Yg
V2VlaykgewotICAgICAgICB0aGlzLnllYXIgPSB2YWx1ZU9yV2Vla09yWWVhci55ZWFyOwotICAg
ICAgICB0aGlzLndlZWsgPSB2YWx1ZU9yV2Vla09yWWVhci53ZWVrOwotICAgIH0gZWxzZSB7Ci0g
ICAgICAgIHZhciB3ZWVrID0gV2Vlay5jcmVhdGVGcm9tRGF0ZShuZXcgRGF0ZSh2YWx1ZU9yV2Vl
a09yWWVhcikpOwotICAgICAgICB0aGlzLnllYXIgPSB3ZWVrLnllYXI7Ci0gICAgICAgIHRoaXMu
d2VlayA9IHdlZWsud2VlazsKKyAqIEBleHRlbmRzIERhdGVUeXBlCisgKiBAcGFyYW0geyFudW1i
ZXJ9IHllYXIKKyAqIEBwYXJhbSB7IW51bWJlcn0gd2VlaworICovCitmdW5jdGlvbiBXZWVrKHll
YXIsIHdlZWspIHsKKyAgICB0aGlzLnllYXIgPSB5ZWFyOworICAgIHRoaXMud2VlayA9IHdlZWs7
CisgICAgLy8gTnVtYmVyIG9mIHllYXJzIHBlciB5ZWFyIGlzIGVpdGhlciA1MiBvciA1My4KKyAg
ICBpZiAodGhpcy53ZWVrIDwgMSB8fCAodGhpcy53ZWVrID4gNTIgJiYgdGhpcy53ZWVrID4gV2Vl
ay5udW1iZXJPZldlZWtzSW5ZZWFyKHRoaXMueWVhcikpKSB7CisgICAgICAgIHZhciBub3JtYWxp
emVkV2VlayA9IFdlZWsuY3JlYXRlRnJvbURheSh0aGlzLmZpcnN0RGF5KCkpOworICAgICAgICB0
aGlzLnllYXIgPSBub3JtYWxpemVkV2Vlay55ZWFyOworICAgICAgICB0aGlzLndlZWsgPSBub3Jt
YWxpemVkV2Vlay53ZWVrOwogICAgIH0KIH0KIAotV2Vlay5NaWxsaXNlY29uZHNQZXJXZWVrID0g
NyAqIDI0ICogNjAgKiA2MCAqIDEwMDA7CiBXZWVrLklTT1N0cmluZ1JlZ0V4cCA9IC9eKFxkKykt
W3dXXShcZCspJC87CisKIC8vIFNlZSBXZWJDb3JlL3BsYXRmb3JtL0RhdGVDb21wb25lbnRzLmgu
CiBXZWVrLk1pbmltdW0gPSBuZXcgV2VlaygxLCAxKTsKIFdlZWsuTWF4aW11bSA9IG5ldyBXZWVr
KDI3NTc2MCwgMzcpOworCiAvLyBTZWUgV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuY3BwLgog
V2Vlay5EZWZhdWx0U3RlcCA9IDYwNDgwMDAwMDsKIFdlZWsuRGVmYXVsdFN0ZXBCYXNlID0gLTI1
OTIwMDAwMDsKIAorV2Vlay5FcG9jaFdlZWtEYXkgPSBjcmVhdGVVVENEYXRlKDE5NzAsIDAsIDAp
LmdldFVUQ0RheSgpOworCiAvKioKICAqIEBwYXJhbSB7IXN0cmluZ30gc3RyCiAgKiBAcmV0dXJu
IHs/V2Vla30KQEAgLTMzNSwxMCArNDIxLDIwIEBAIFdlZWsucGFyc2UgPSBmdW5jdGlvbihzdHIp
IHsKIH07CiAKIC8qKgorICogQHBhcmFtIHshbnVtYmVyfSB2YWx1ZQorICogQHJldHVybiB7IVdl
ZWt9CisgKi8KK1dlZWsuY3JlYXRlRnJvbVZhbHVlID0gZnVuY3Rpb24odmFsdWUpIHsKKyAgICBy
ZXR1cm4gV2Vlay5jcmVhdGVGcm9tRGF0ZShuZXcgRGF0ZSh2YWx1ZSkpCit9OworCisvKioKICAq
IEBwYXJhbSB7IURhdGV9IGRhdGUKICAqIEByZXR1cm4geyFXZWVrfQogICovCiBXZWVrLmNyZWF0
ZUZyb21EYXRlID0gZnVuY3Rpb24oZGF0ZSkgeworICAgIGlmIChpc05hTihkYXRlLnZhbHVlT2Yo
KSkpCisgICAgICAgIHRocm93ICJJbnZhbGlkIGRhdGUiOwogICAgIHZhciB5ZWFyID0gZGF0ZS5n
ZXRVVENGdWxsWWVhcigpOwogICAgIGlmICh5ZWFyIDw9IFdlZWsuTWF4aW11bS55ZWFyICYmIFdl
ZWsud2Vla09uZVN0YXJ0RGF0ZUZvclllYXIoeWVhciArIDEpLmdldFRpbWUoKSA8PSBkYXRlLmdl
dFRpbWUoKSkKICAgICAgICAgeWVhcisrOwpAQCAtMzQ5LDYgKzQ0NSwyMCBAQCBXZWVrLmNyZWF0
ZUZyb21EYXRlID0gZnVuY3Rpb24oZGF0ZSkgewogfTsKIAogLyoqCisgKiBAcGFyYW0geyFEYXl9
IGRheQorICogQHJldHVybiB7IVdlZWt9CisgKi8KK1dlZWsuY3JlYXRlRnJvbURheSA9IGZ1bmN0
aW9uKGRheSkgeworICAgIHZhciB5ZWFyID0gZGF5LnllYXI7CisgICAgaWYgKHllYXIgPD0gV2Vl
ay5NYXhpbXVtLnllYXIgJiYgV2Vlay53ZWVrT25lU3RhcnREYXlGb3JZZWFyKHllYXIgKyAxKSA8
PSBkYXkpCisgICAgICAgIHllYXIrKzsKKyAgICBlbHNlIGlmICh5ZWFyID4gMSAmJiBXZWVrLndl
ZWtPbmVTdGFydERheUZvclllYXIoeWVhcikgPiBkYXkpCisgICAgICAgIHllYXItLTsKKyAgICB2
YXIgd2VlayA9IE1hdGguZmxvb3IoMSArIChkYXkudmFsdWVPZigpIC0gV2Vlay53ZWVrT25lU3Rh
cnREYXlGb3JZZWFyKHllYXIpLnZhbHVlT2YoKSkgLyBNaWxsaXNlY29uZHNQZXJXZWVrKTsKKyAg
ICByZXR1cm4gbmV3IFdlZWsoeWVhciwgd2Vlayk7Cit9OworCisvKioKICAqIEByZXR1cm4geyFX
ZWVrfQogICovCiBXZWVrLmNyZWF0ZUZyb21Ub2RheSA9IGZ1bmN0aW9uKCkgewpAQCAtMzY1LDcg
KzQ3NSwxOSBAQCBXZWVrLndlZWtPbmVTdGFydERhdGVGb3JZZWFyID0gZnVuY3Rpb24oeWVhcikg
ewogICAgICAgICByZXR1cm4gY3JlYXRlVVRDRGF0ZSgxLCAwLCAxKTsKICAgICAvLyBUaGUgd2Vl
ayBjb250YWluaW5nIEphbnVhcnkgNHRoIGlzIHdlZWsgb25lLgogICAgIHZhciB5ZWFyU3RhcnRE
YXkgPSBjcmVhdGVVVENEYXRlKHllYXIsIDAsIDQpLmdldFVUQ0RheSgpOwotICAgIHJldHVybiBj
cmVhdGVVVENEYXRlKHllYXIsIDAsIDQgLSAoeWVhclN0YXJ0RGF5ICsgNikgJSA3KTsKKyAgICBy
ZXR1cm4gY3JlYXRlVVRDRGF0ZSh5ZWFyLCAwLCA0IC0gKHllYXJTdGFydERheSArIDYpICUgRGF5
c1BlcldlZWspOworfTsKKworLyoqCisgKiBAcGFyYW0geyFudW1iZXJ9IHllYXIKKyAqIEByZXR1
cm4geyFEYXl9CisgKi8KK1dlZWsud2Vla09uZVN0YXJ0RGF5Rm9yWWVhciA9IGZ1bmN0aW9uKHll
YXIpIHsKKyAgICBpZiAoeWVhciA8IDEpCisgICAgICAgIHJldHVybiBEYXkuTWluaW11bS5jb3B5
KCk7CisgICAgLy8gVGhlIHdlZWsgY29udGFpbmluZyBKYW51YXJ5IDR0aCBpcyB3ZWVrIG9uZS4K
KyAgICB2YXIgeWVhclN0YXJ0RGF5ID0gY3JlYXRlVVRDRGF0ZSh5ZWFyLCAwLCA0KS5nZXRVVENE
YXkoKTsKKyAgICByZXR1cm4gbmV3IERheSh5ZWFyLCAwLCA0IC0gKHllYXJTdGFydERheSArIDYp
ICUgRGF5c1BlcldlZWspOwogfTsKIAogLyoqCkBAIC0zODYsMjkgKzUwOCw0MiBAQCBXZWVrLm51
bWJlck9mV2Vla3NJblllYXIgPSBmdW5jdGlvbih5ZWFyKSB7CiAgKiBAcmV0dXJuIHshbnVtYmVy
fQogICovCiBXZWVrLl9udW1iZXJPZldlZWtzU2luY2VEYXRlID0gZnVuY3Rpb24oYmFzZURhdGUs
IGRhdGUpIHsKLSAgICByZXR1cm4gTWF0aC5mbG9vcigoZGF0ZS5nZXRUaW1lKCkgLSBiYXNlRGF0
ZS5nZXRUaW1lKCkpIC8gV2Vlay5NaWxsaXNlY29uZHNQZXJXZWVrKTsKKyAgICByZXR1cm4gTWF0
aC5mbG9vcigoZGF0ZS5nZXRUaW1lKCkgLSBiYXNlRGF0ZS5nZXRUaW1lKCkpIC8gTWlsbGlzZWNv
bmRzUGVyV2Vlayk7CiB9OwogCiAvKioKLSAqIEBwYXJhbSB7IVdlZWt9IG90aGVyCi0gKiBAcmV0
dXJuIHshYm9vbH0KKyAqIEByZXR1cm4geyFXZWVrfQorICovCitXZWVrLnByb3RvdHlwZS5jb3B5
ID0gZnVuY3Rpb24oKSB7CisgICAgcmV0dXJuIG5ldyBXZWVrKHRoaXMueWVhciwgdGhpcy53ZWVr
KTsKK307CisKKy8qKgorICogQHBhcmFtIHshRGF0ZVR5cGV9IG90aGVyCisgKiBAcmV0dXJuIHsh
Ym9vbGVhbn0KICAqLwogV2Vlay5wcm90b3R5cGUuZXF1YWxzID0gZnVuY3Rpb24ob3RoZXIpIHsK
LSAgICByZXR1cm4gdGhpcy55ZWFyID09PSBvdGhlci55ZWFyICYmIHRoaXMud2VlayA9PT0gb3Ro
ZXIud2VlazsKKyAgICByZXR1cm4gb3RoZXIgaW5zdGFuY2VvZiBXZWVrICYmIHRoaXMueWVhciA9
PT0gb3RoZXIueWVhciAmJiB0aGlzLndlZWsgPT09IG90aGVyLndlZWs7CiB9OwogCiAvKioKKyAq
IEBwYXJhbSB7IW51bWJlcj19IG9mZnNldAogICogQHJldHVybiB7IVdlZWt9CiAgKi8KLVdlZWsu
cHJvdG90eXBlLnByZXZpb3VzID0gZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIG5ldyBXZWVrKHRo
aXMueWVhciwgdGhpcy53ZWVrIC0gMSk7CitXZWVrLnByb3RvdHlwZS5wcmV2aW91cyA9IGZ1bmN0
aW9uKG9mZnNldCkgeworICAgIGlmICh0eXBlb2Ygb2Zmc2V0ID09PSAidW5kZWZpbmVkIikKKyAg
ICAgICAgb2Zmc2V0ID0gMTsKKyAgICByZXR1cm4gbmV3IFdlZWsodGhpcy55ZWFyLCB0aGlzLndl
ZWsgLSBvZmZzZXQpOwogfTsKIAogLyoqCisgKiBAcGFyYW0geyFudW1iZXI9fSBvZmZzZXQKICAq
IEByZXR1cm4geyFXZWVrfQogICovCi1XZWVrLnByb3RvdHlwZS5uZXh0ID0gZnVuY3Rpb24oKSB7
Ci0gICAgcmV0dXJuIG5ldyBXZWVrKHRoaXMueWVhciwgdGhpcy53ZWVrICsgMSk7CitXZWVrLnBy
b3RvdHlwZS5uZXh0ID0gZnVuY3Rpb24ob2Zmc2V0KSB7CisgICAgaWYgKHR5cGVvZiBvZmZzZXQg
PT09ICJ1bmRlZmluZWQiKQorICAgICAgICBvZmZzZXQgPSAxOworICAgIHJldHVybiBuZXcgV2Vl
ayh0aGlzLnllYXIsIHRoaXMud2VlayArIG9mZnNldCk7CiB9OwogCiAvKioKQEAgLTQzMCwxMCAr
NTY1LDM0IEBAIFdlZWsucHJvdG90eXBlLmVuZERhdGUgPSBmdW5jdGlvbigpIHsKIH07CiAKIC8q
KgorICogQHJldHVybiB7IURheX0KKyAqLworV2Vlay5wcm90b3R5cGUuZmlyc3REYXkgPSBmdW5j
dGlvbigpIHsKKyAgICB2YXIgd2Vla09uZVN0YXJ0RGF5ID0gV2Vlay53ZWVrT25lU3RhcnREYXlG
b3JZZWFyKHRoaXMueWVhcik7CisgICAgcmV0dXJuIHdlZWtPbmVTdGFydERheS5uZXh0KCh0aGlz
LndlZWsgLSAxKSAqIERheXNQZXJXZWVrKTsKK307CisKKy8qKgorICogQHJldHVybiB7IURheX0K
KyAqLworV2Vlay5wcm90b3R5cGUubWlkZGxlRGF5ID0gZnVuY3Rpb24oKSB7CisgICAgcmV0dXJu
IHRoaXMuZmlyc3REYXkoKS5uZXh0KDMpOworfTsKKworLyoqCisgKiBAcmV0dXJuIHshRGF5fQor
ICovCitXZWVrLnByb3RvdHlwZS5sYXN0RGF5ID0gZnVuY3Rpb24oKSB7CisgICAgaWYgKHRoaXMu
ZXF1YWxzKFdlZWsuTWF4aW11bSkpCisgICAgICAgIHJldHVybiBEYXkuTWF4aW11bS5jb3B5KCk7
CisgICAgcmV0dXJuIHRoaXMubmV4dCgpLmZpcnN0RGF5KCkucHJldmlvdXMoKTsKK307CisKKy8q
KgogICogQHJldHVybiB7IW51bWJlcn0KICAqLwogV2Vlay5wcm90b3R5cGUudmFsdWVPZiA9IGZ1
bmN0aW9uKCkgewotICAgIHJldHVybiB0aGlzLnN0YXJ0RGF0ZSgpLmdldFRpbWUoKSAtIGNyZWF0
ZVVUQ0RhdGUoMTk3MCwgMCwgMSkuZ2V0VGltZSgpOworICAgIHJldHVybiB0aGlzLmZpcnN0RGF5
KCkudmFsdWVPZigpIC0gY3JlYXRlVVRDRGF0ZSgxOTcwLCAwLCAxKS5nZXRUaW1lKCk7CiB9Owog
CiAvKioKQEAgLTQ0OCwyNiArNjA3LDEzIEBAIFdlZWsucHJvdG90eXBlLnRvU3RyaW5nID0gZnVu
Y3Rpb24oKSB7CiAKIC8qKgogICogQGNvbnN0cnVjdG9yCi0gKiBAcGFyYW0geyFudW1iZXJ8TW9u
dGh9IHZhbHVlT3JNb250aE9yWWVhcgotICogQHBhcmFtIHshbnVtYmVyPX0gbW9udGgKLSAqLwot
ZnVuY3Rpb24gTW9udGgodmFsdWVPck1vbnRoT3JZZWFyLCBtb250aCkgewotICAgIGlmIChhcmd1
bWVudHMubGVuZ3RoID09IDIpIHsKLSAgICAgICAgdGhpcy55ZWFyID0gdmFsdWVPck1vbnRoT3JZ
ZWFyOwotICAgICAgICB0aGlzLm1vbnRoID0gbW9udGg7Ci0gICAgfSBlbHNlIGlmICh2YWx1ZU9y
TW9udGhPclllYXIgaW5zdGFuY2VvZiBNb250aCkgewotICAgICAgICB0aGlzLnllYXIgPSB2YWx1
ZU9yTW9udGhPclllYXIueWVhcjsKLSAgICAgICAgdGhpcy5tb250aCA9IHZhbHVlT3JNb250aE9y
WWVhci5tb250aDsKLSAgICB9IGVsc2UgewotICAgICAgICB0aGlzLnllYXIgPSAxOTcwOwotICAg
ICAgICB0aGlzLm1vbnRoID0gdmFsdWVPck1vbnRoT3JZZWFyOwotICAgIH0KLSAgICB0aGlzLnll
YXIgPSB0aGlzLnllYXIgKyBNYXRoLmZsb29yKHRoaXMubW9udGggLyAxMik7Ci0gICAgdGhpcy5t
b250aCA9IHRoaXMubW9udGggPCAwID8gdGhpcy5tb250aCAlIDEyICsgMTIgOiB0aGlzLm1vbnRo
ICUgMTI7Ci0gICAgaWYgKHRoaXMueWVhciA8PSAwIHx8IE1vbnRoLk1heGltdW0gPCB0aGlzKSB7
Ci0gICAgICAgIHRoaXMueWVhciA9IE5hTjsKLSAgICAgICAgdGhpcy5tb250aCA9IE5hTjsKLSAg
ICB9CisgKiBAZXh0ZW5kcyBEYXRlVHlwZQorICogQHBhcmFtIHshbnVtYmVyfSB5ZWFyCisgKiBA
cGFyYW0geyFudW1iZXJ9IG1vbnRoCisgKi8KK2Z1bmN0aW9uIE1vbnRoKHllYXIsIG1vbnRoKSB7
CisgICAgdGhpcy55ZWFyID0geWVhciArIE1hdGguZmxvb3IobW9udGggLyBNb250aHNQZXJZZWFy
KTsKKyAgICB0aGlzLm1vbnRoID0gbW9udGggJSBNb250aHNQZXJZZWFyIDwgMCA/IG1vbnRoICUg
TW9udGhzUGVyWWVhciArIE1vbnRoc1BlclllYXIgOiBtb250aCAlIE1vbnRoc1BlclllYXI7CiB9
OwogCiBNb250aC5JU09TdHJpbmdSZWdFeHAgPSAvXihcZCspLShcZCspJC87CkBAIC00OTMsMTQg
KzYzOSwzMiBAQCBNb250aC5wYXJzZSA9IGZ1bmN0aW9uKHN0cikgewogfTsKIAogLyoqCisgKiBA
cGFyYW0geyFudW1iZXJ9IHZhbHVlCisgKiBAcmV0dXJuIHshTW9udGh9CisgKi8KK01vbnRoLmNy
ZWF0ZUZyb21WYWx1ZSA9IGZ1bmN0aW9uKHZhbHVlKSB7CisgICAgcmV0dXJuIG5ldyBNb250aCgx
OTcwLCB2YWx1ZSkKK307CisKKy8qKgogICogQHBhcmFtIHshRGF0ZX0gZGF0ZQogICogQHJldHVy
biB7IU1vbnRofQogICovCiBNb250aC5jcmVhdGVGcm9tRGF0ZSA9IGZ1bmN0aW9uKGRhdGUpIHsK
KyAgICBpZiAoaXNOYU4oZGF0ZS52YWx1ZU9mKCkpKQorICAgICAgICB0aHJvdyAiSW52YWxpZCBk
YXRlIjsKICAgICByZXR1cm4gbmV3IE1vbnRoKGRhdGUuZ2V0VVRDRnVsbFllYXIoKSwgZGF0ZS5n
ZXRVVENNb250aCgpKTsKIH07CiAKIC8qKgorICogQHBhcmFtIHshRGF5fSBkYXkKKyAqIEByZXR1
cm4geyFNb250aH0KKyAqLworTW9udGguY3JlYXRlRnJvbURheSA9IGZ1bmN0aW9uKGRheSkgewor
ICAgIHJldHVybiBuZXcgTW9udGgoZGF5LnllYXIsIGRheS5tb250aCk7Cit9OworCisvKioKICAq
IEByZXR1cm4geyFNb250aH0KICAqLwogTW9udGguY3JlYXRlRnJvbVRvZGF5ID0gZnVuY3Rpb24o
KSB7CkBAIC01MDksMjUgKzY3Myw0NSBAQCBNb250aC5jcmVhdGVGcm9tVG9kYXkgPSBmdW5jdGlv
bigpIHsKIH07CiAKIC8qKgorICogQHJldHVybiB7IWJvb2xlYW59CisgKi8KK01vbnRoLnByb3Rv
dHlwZS5jb250YWluc0RheSA9IGZ1bmN0aW9uKGRheSkgeworICAgIHJldHVybiB0aGlzLnllYXIg
PT09IGRheS55ZWFyICYmIHRoaXMubW9udGggPT09IGRheS5tb250aDsKK307CisKKy8qKgorICog
QHJldHVybiB7IU1vbnRofQorICovCitNb250aC5wcm90b3R5cGUuY29weSA9IGZ1bmN0aW9uKCkg
eworICAgIHJldHVybiBuZXcgTW9udGgodGhpcy55ZWFyLCB0aGlzLm1vbnRoKTsKK307CisKKy8q
KgogICogQHBhcmFtIHshTW9udGh9IG90aGVyCi0gKiBAcmV0dXJuIHshYm9vbH0KKyAqIEByZXR1
cm4geyFib29sZWFufQogICovCiBNb250aC5wcm90b3R5cGUuZXF1YWxzID0gZnVuY3Rpb24ob3Ro
ZXIpIHsKLSAgICByZXR1cm4gdGhpcy55ZWFyID09PSBvdGhlci55ZWFyICYmIHRoaXMubW9udGgg
PT09IG90aGVyLm1vbnRoOworICAgIHJldHVybiBvdGhlciBpbnN0YW5jZW9mIE1vbnRoICYmIHRo
aXMueWVhciA9PT0gb3RoZXIueWVhciAmJiB0aGlzLm1vbnRoID09PSBvdGhlci5tb250aDsKIH07
CiAKIC8qKgorICogQHBhcmFtIHshbnVtYmVyPX0gb2Zmc2V0CiAgKiBAcmV0dXJuIHshTW9udGh9
CiAgKi8KLU1vbnRoLnByb3RvdHlwZS5wcmV2aW91cyA9IGZ1bmN0aW9uKCkgewotICAgIHJldHVy
biBuZXcgTW9udGgodGhpcy55ZWFyLCB0aGlzLm1vbnRoIC0gMSk7CitNb250aC5wcm90b3R5cGUu
cHJldmlvdXMgPSBmdW5jdGlvbihvZmZzZXQpIHsKKyAgICBpZiAodHlwZW9mIG9mZnNldCA9PT0g
InVuZGVmaW5lZCIpCisgICAgICAgIG9mZnNldCA9IDE7CisgICAgcmV0dXJuIG5ldyBNb250aCh0
aGlzLnllYXIsIHRoaXMubW9udGggLSBvZmZzZXQpOwogfTsKIAogLyoqCisgKiBAcGFyYW0geyFu
dW1iZXI9fSBvZmZzZXQKICAqIEByZXR1cm4geyFNb250aH0KICAqLwotTW9udGgucHJvdG90eXBl
Lm5leHQgPSBmdW5jdGlvbigpIHsKLSAgICByZXR1cm4gbmV3IE1vbnRoKHRoaXMueWVhciwgdGhp
cy5tb250aCArIDEpOworTW9udGgucHJvdG90eXBlLm5leHQgPSBmdW5jdGlvbihvZmZzZXQpIHsK
KyAgICBpZiAodHlwZW9mIG9mZnNldCA9PT0gInVuZGVmaW5lZCIpCisgICAgICAgIG9mZnNldCA9
IDE7CisgICAgcmV0dXJuIG5ldyBNb250aCh0aGlzLnllYXIsIHRoaXMubW9udGggKyBvZmZzZXQp
OwogfTsKIAogLyoqCkBAIC01NDcsMTAgKzczMSwzMyBAQCBNb250aC5wcm90b3R5cGUuZW5kRGF0
ZSA9IGZ1bmN0aW9uKCkgewogfTsKIAogLyoqCisgKiBAcmV0dXJuIHshRGF5fQorICovCitNb250
aC5wcm90b3R5cGUuZmlyc3REYXkgPSBmdW5jdGlvbigpIHsKKyAgICByZXR1cm4gbmV3IERheSh0
aGlzLnllYXIsIHRoaXMubW9udGgsIDEpOworfTsKKworLyoqCisgKiBAcmV0dXJuIHshRGF5fQor
ICovCitNb250aC5wcm90b3R5cGUubWlkZGxlRGF5ID0gZnVuY3Rpb24oKSB7CisgICAgcmV0dXJu
IG5ldyBEYXkodGhpcy55ZWFyLCB0aGlzLm1vbnRoLCB0aGlzLm1vbnRoID09PSAyID8gMTQgOiAx
NSk7Cit9OworCisvKioKKyAqIEByZXR1cm4geyFEYXl9CisgKi8KK01vbnRoLnByb3RvdHlwZS5s
YXN0RGF5ID0gZnVuY3Rpb24oKSB7CisgICAgaWYgKHRoaXMuZXF1YWxzKE1vbnRoLk1heGltdW0p
KQorICAgICAgICByZXR1cm4gRGF5Lk1heGltdW0uY29weSgpOworICAgIHJldHVybiB0aGlzLm5l
eHQoKS5maXJzdERheSgpLnByZXZpb3VzKCk7Cit9OworCisvKioKICAqIEByZXR1cm4geyFudW1i
ZXJ9CiAgKi8KIE1vbnRoLnByb3RvdHlwZS52YWx1ZU9mID0gZnVuY3Rpb24oKSB7Ci0gICAgcmV0
dXJuICh0aGlzLnllYXIgLSAxOTcwKSAqIDEyICsgdGhpcy5tb250aDsKKyAgICByZXR1cm4gKHRo
aXMueWVhciAtIDE5NzApICogTW9udGhzUGVyWWVhciArIHRoaXMubW9udGg7CiB9OwogCiAvKioK
QEAgLTU2Myw2ICs3NzAsMjIgQEAgTW9udGgucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24o
KSB7CiAgICAgcmV0dXJuIHllYXJTdHJpbmcgKyAiLSIgKyAoIjAiICsgKHRoaXMubW9udGggKyAx
KSkuc3Vic3RyKC0yLCAyKTsKIH07CiAKKy8qKgorICogQHJldHVybiB7IXN0cmluZ30KKyAqLwor
TW9udGgucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nID0gZnVuY3Rpb24oKSB7CisgICAgaWYgKGds
b2JhbC5wYXJhbXMubG9jYWxlID09PSAiamEiKQorICAgICAgICByZXR1cm4gIiIgKyB0aGlzLnll
YXIgKyAi5bm0IiArIGZvcm1hdEphcGFuZXNlSW1wZXJpYWxFcmEodGhpcy55ZWFyLCB0aGlzLm1v
bnRoKSArICIgIiArICh0aGlzLm1vbnRoICsgMSkgKyAi5pyIIjsKKyAgICByZXR1cm4gd2luZG93
LnBhZ2VQb3B1cENvbnRyb2xsZXIuZm9ybWF0TW9udGgodGhpcy55ZWFyLCB0aGlzLm1vbnRoKTsK
K307CisKKy8qKgorICogQHJldHVybiB7IXN0cmluZ30KKyAqLworTW9udGgucHJvdG90eXBlLnRv
U2hvcnRMb2NhbGVTdHJpbmcgPSBmdW5jdGlvbigpIHsKKyAgICByZXR1cm4gd2luZG93LnBhZ2VQ
b3B1cENvbnRyb2xsZXIuZm9ybWF0U2hvcnRNb250aCh0aGlzLnllYXIsIHRoaXMubW9udGgpOwor
fTsKKwogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQogLy8gSW5pdGlhbGl6YXRpb24KIApAQCAtNzQ5LDkgKzk3Miw5IEBA
IGZ1bmN0aW9uIENhbGVuZGFyUGlja2VyKGVsZW1lbnQsIGNvbmZpZykgewogICAgIGlmICghaW5p
dGlhbFNlbGVjdGlvbikKICAgICAgICAgaW5pdGlhbFNlbGVjdGlvbiA9IHRoaXMuc2VsZWN0aW9u
Q29uc3RydWN0b3IuY3JlYXRlRnJvbVRvZGF5KCk7CiAgICAgaWYgKGluaXRpYWxTZWxlY3Rpb24u
dmFsdWVPZigpIDwgdGhpcy5fbWluaW11bVZhbHVlKQotICAgICAgICBpbml0aWFsU2VsZWN0aW9u
ID0gbmV3IHRoaXMuc2VsZWN0aW9uQ29uc3RydWN0b3IodGhpcy5fbWluaW11bVZhbHVlKTsKKyAg
ICAgICAgaW5pdGlhbFNlbGVjdGlvbiA9IG5ldyB0aGlzLnNlbGVjdGlvbkNvbnN0cnVjdG9yLmNy
ZWF0ZUZyb21WYWx1ZSh0aGlzLl9taW5pbXVtVmFsdWUpOwogICAgIGVsc2UgaWYgKGluaXRpYWxT
ZWxlY3Rpb24udmFsdWVPZigpID4gdGhpcy5fbWF4aW11bVZhbHVlKQotICAgICAgICBpbml0aWFs
U2VsZWN0aW9uID0gbmV3IHRoaXMuc2VsZWN0aW9uQ29uc3RydWN0b3IodGhpcy5fbWF4aW11bVZh
bHVlKTsKKyAgICAgICAgaW5pdGlhbFNlbGVjdGlvbiA9IG5ldyB0aGlzLnNlbGVjdGlvbkNvbnN0
cnVjdG9yLmNyZWF0ZUZyb21WYWx1ZSh0aGlzLl9tYXhpbXVtVmFsdWUpOwogICAgIHRoaXMuc2hv
d01vbnRoKE1vbnRoLmNyZWF0ZUZyb21EYXRlKGluaXRpYWxTZWxlY3Rpb24uc3RhcnREYXRlKCkp
KTsKICAgICB0aGlzLl9kYXlzVGFibGUuc2VsZWN0UmFuZ2VBbmRTaG93RW50aXJlUmFuZ2UoaW5p
dGlhbFNlbGVjdGlvbik7CiAgICAgdGhpcy5maXhXaW5kb3dTaXplKCk7CkBAIC0xMDM5LDE5ICsx
MjYyLDE5IEBAIFllYXJNb250aENvbnRyb2xsZXIucHJvdG90eXBlLl9hdHRhY2hSaWdodEJ1dHRv
bnNUbyA9IGZ1bmN0aW9uKHBhcmVudCkgewogWWVhck1vbnRoQ29udHJvbGxlci5wcm90b3R5cGUu
c2V0TW9udGggPSBmdW5jdGlvbihtb250aCkgewogICAgIHZhciBtb250aFZhbHVlID0gbW9udGgu
dmFsdWVPZigpOwogICAgIGlmICh0aGlzLl9sZWZ0MykKLSAgICAgICAgdGhpcy5fbGVmdDMuZGlz
YWJsZWQgPSAhdGhpcy5waWNrZXIuc2hvdWxkU2hvd01vbnRoKG5ldyBNb250aChtb250aFZhbHVl
IC0gMTMpKTsKLSAgICB0aGlzLl9sZWZ0Mi5kaXNhYmxlZCA9ICF0aGlzLnBpY2tlci5zaG91bGRT
aG93TW9udGgobmV3IE1vbnRoKG1vbnRoVmFsdWUgLSAyKSk7Ci0gICAgdGhpcy5fbGVmdDEuZGlz
YWJsZWQgPSAhdGhpcy5waWNrZXIuc2hvdWxkU2hvd01vbnRoKG5ldyBNb250aChtb250aFZhbHVl
IC0gMSkpOwotICAgIHRoaXMuX3JpZ2h0MS5kaXNhYmxlZCA9ICF0aGlzLnBpY2tlci5zaG91bGRT
aG93TW9udGgobmV3IE1vbnRoKG1vbnRoVmFsdWUgKyAxKSk7Ci0gICAgdGhpcy5fcmlnaHQyLmRp
c2FibGVkID0gIXRoaXMucGlja2VyLnNob3VsZFNob3dNb250aChuZXcgTW9udGgobW9udGhWYWx1
ZSArIDIpKTsKKyAgICAgICAgdGhpcy5fbGVmdDMuZGlzYWJsZWQgPSAhdGhpcy5waWNrZXIuc2hv
dWxkU2hvd01vbnRoKE1vbnRoLmNyZWF0ZUZyb21WYWx1ZShtb250aFZhbHVlIC0gMTMpKTsKKyAg
ICB0aGlzLl9sZWZ0Mi5kaXNhYmxlZCA9ICF0aGlzLnBpY2tlci5zaG91bGRTaG93TW9udGgoTW9u
dGguY3JlYXRlRnJvbVZhbHVlKG1vbnRoVmFsdWUgLSAyKSk7CisgICAgdGhpcy5fbGVmdDEuZGlz
YWJsZWQgPSAhdGhpcy5waWNrZXIuc2hvdWxkU2hvd01vbnRoKE1vbnRoLmNyZWF0ZUZyb21WYWx1
ZShtb250aFZhbHVlIC0gMSkpOworICAgIHRoaXMuX3JpZ2h0MS5kaXNhYmxlZCA9ICF0aGlzLnBp
Y2tlci5zaG91bGRTaG93TW9udGgoTW9udGguY3JlYXRlRnJvbVZhbHVlKG1vbnRoVmFsdWUgKyAx
KSk7CisgICAgdGhpcy5fcmlnaHQyLmRpc2FibGVkID0gIXRoaXMucGlja2VyLnNob3VsZFNob3dN
b250aChNb250aC5jcmVhdGVGcm9tVmFsdWUobW9udGhWYWx1ZSArIDIpKTsKICAgICBpZiAodGhp
cy5fcmlnaHQzKQotICAgICAgICB0aGlzLl9sZWZ0My5kaXNhYmxlZCA9ICF0aGlzLnBpY2tlci5z
aG91bGRTaG93TW9udGgobmV3IE1vbnRoKG1vbnRoVmFsdWUgKyAxMykpOworICAgICAgICB0aGlz
Ll9sZWZ0My5kaXNhYmxlZCA9ICF0aGlzLnBpY2tlci5zaG91bGRTaG93TW9udGgoTW9udGguY3Jl
YXRlRnJvbVZhbHVlKG1vbnRoVmFsdWUgKyAxMykpOwogICAgIHRoaXMuX21vbnRoTGFiZWwuaW5u
ZXJUZXh0ID0gbW9udGgudG9Mb2NhbGVTdHJpbmcoKTsKICAgICB3aGlsZSAodGhpcy5fbW9udGhQ
b3B1cENvbnRlbnRzLmhhc0NoaWxkTm9kZXMoKSkKICAgICAgICAgdGhpcy5fbW9udGhQb3B1cENv
bnRlbnRzLnJlbW92ZUNoaWxkKHRoaXMuX21vbnRoUG9wdXBDb250ZW50cy5maXJzdENoaWxkKTsK
IAogICAgIGZvciAodmFyIG0gPSBtb250aFZhbHVlIC0gNjsgbSA8PSBtb250aFZhbHVlICsgNjsg
bSsrKSB7Ci0gICAgICAgIHZhciBtb250aCA9IG5ldyBNb250aChtKTsKKyAgICAgICAgdmFyIG1v
bnRoID0gTW9udGguY3JlYXRlRnJvbVZhbHVlKG0pOwogICAgICAgICBpZiAoIXRoaXMucGlja2Vy
LnNob3VsZFNob3dNb250aChtb250aCkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
dmFyIG9wdGlvbiA9IGNyZWF0ZUVsZW1lbnQoImRpdiIsIENsYXNzTmFtZXMuTW9udGhTZWxlY3Rv
clBvcHVwRW50cnksIG1vbnRoLnRvTG9jYWxlU3RyaW5nKCkpOwpAQCAtMTI0Miw3ICsxNDY1LDcg
QEAgWWVhck1vbnRoQ29udHJvbGxlci5wcm90b3R5cGUuX2hhbmRsZUJ1dHRvbkNsaWNrID0gZnVu
Y3Rpb24oZXZlbnQpIHsKICAqLwogWWVhck1vbnRoQ29udHJvbGxlci5wcm90b3R5cGUubW92ZVJl
bGF0aXZlbHkgPSBmdW5jdGlvbihhbW91bnQpIHsKICAgICB2YXIgY3VycmVudCA9IHRoaXMucGlj
a2VyLmN1cnJlbnRNb250aCgpLnZhbHVlT2YoKTsKLSAgICB2YXIgdXBkYXRlZCA9IG5ldyBNb250
aChjdXJyZW50ICsgYW1vdW50KTsKKyAgICB2YXIgdXBkYXRlZCA9IE1vbnRoLmNyZWF0ZUZyb21W
YWx1ZShjdXJyZW50ICsgYW1vdW50KTsKICAgICB0aGlzLnBpY2tlci5zaG93TW9udGgodXBkYXRl
ZCwgQ2FsZW5kYXJQaWNrZXIuTmF2aWdhdGlvbkJlaGF2aW91ci5BbmltYXRlIHwgQ2FsZW5kYXJQ
aWNrZXIuTmF2aWdhdGlvbkJlaGF2aW91ci5LZWVwU2VsZWN0aW9uUG9zaXRpb24pOwogfTsKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGFlODdjNTNlOWIzYjU2MGFlM2Q2YWY2OTMwNGFmZjAwOWUzOWRiNWQuLjk3MDAyMWYx
N2QxZGI5ZWVhYjM3YzliOGY1ZmZlMzFhODUxNzQwMjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAxMy0wMi0yMiAgS2Vpc2hpIEhhdHRvcmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4KKworICAgICAg
ICBBZGQgbWV0aG9kcyB0byBkYXRlIHR5cGVzIGZvciBuZXcgY2FsZW5kYXIgcGlja2VyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA0NTQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtL2Zhc3QvZm9ybXMvY2FsZW5kYXItcGlja2VyL2NhbGVuZGFyLXBpY2tlci1kYXRlLXR5
cGVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFz
dC9mb3Jtcy9jYWxlbmRhci1waWNrZXIvY2FsZW5kYXItcGlja2VyLWRhdGUtdHlwZXMuaHRtbDog
QWRkZWQuIFVuaXQgdGVzdHMgZm9yIGRhdGUgdHlwZXMuCisKIDIwMTMtMDItMjEgIMOBZMOhbSBL
YWxsYWkgIDxrYWRhbUBpbmYudS1zemVnZWQuaHU+CiAKICAgICAgICAgW1F0XSBVbnJldmlld2Vk
IGdhcmRlbmluZy4gU2tpcHBlZCBmYWlsaW5nIGlucGVjdG9yIHRlc3RzIGFmdGVyIHIxNDMzMDAu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zvcm1zL2Nh
bGVuZGFyLXBpY2tlci9jYWxlbmRhci1waWNrZXItZGF0ZS10eXBlcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zvcm1zL2NhbGVuZGFyLXBpY2tlci9j
YWxlbmRhci1waWNrZXItZGF0ZS10eXBlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzVkYmFi
ZDQ0MDIxMGI0MDgzYmNlMjdjYTk1YTk2NmE4NDU5NmIyYQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZm9ybXMvY2FsZW5kYXItcGlja2VyL2Nh
bGVuZGFyLXBpY2tlci1kYXRlLXR5cGVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI0OCBAQAor
VGVzdCBpZiBzdGVwIGxpbWl0cyBhdmFpbGFibGUgZGF0ZXMgaW4gY2FsZW5kYXIgcGlja2VyLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworVGVzdCBEYXkgY29uc3RydWN0b3IKK1BB
U1MgbmV3IHB3LkRheSgyMDAwLCAxLCAyKS55ZWFyIGlzIDIwMDAKK1BBU1MgbmV3IHB3LkRheSgy
MDAwLCAxLCAyKS5tb250aCBpcyAxCitQQVNTIG5ldyBwdy5EYXkoMjAwMCwgMSwgMikuZGF0ZSBp
cyAyCitQQVNTIG5ldyBwdy5EYXkoMjAwMCwgLTEsIDIpLnllYXIgaXMgMTk5OQorUEFTUyBuZXcg
cHcuRGF5KDIwMDAsIC0xLCAyKS5tb250aCBpcyAxMQorUEFTUyBuZXcgcHcuRGF5KDIwMDAsIC0x
LCAyKS5kYXRlIGlzIDIKK1BBU1MgbmV3IHB3LkRheSgyMDAwLCAxLCAtMikueWVhciBpcyAyMDAw
CitQQVNTIG5ldyBwdy5EYXkoMjAwMCwgMSwgLTIpLm1vbnRoIGlzIDAKK1BBU1MgbmV3IHB3LkRh
eSgyMDAwLCAxLCAtMikuZGF0ZSBpcyAyOQorUEFTUyBuZXcgcHcuRGF5KC0yMDAwLCAxLCAyKS55
ZWFyIGlzIC0yMDAwCitQQVNTIG5ldyBwdy5EYXkoLTIwMDAsIDEsIDIpLm1vbnRoIGlzIDEKK1BB
U1MgbmV3IHB3LkRheSgtMjAwMCwgMSwgMikuZGF0ZSBpcyAyCitQQVNTIG5ldyBwdy5EYXkoMjAw
MCwgMSwgMzMpLnllYXIgaXMgMjAwMAorUEFTUyBuZXcgcHcuRGF5KDIwMDAsIDEsIDMzKS5tb250
aCBpcyAyCitQQVNTIG5ldyBwdy5EYXkoMjAwMCwgMSwgMzMpLmRhdGUgaXMgNAorUEFTUyBuZXcg
cHcuRGF5KDIwMDAwMCwgMSwgMikueWVhciBpcyAyMDAwMDAKK1BBU1MgbmV3IHB3LkRheSgyMDAw
MDAsIDEsIDIpLm1vbnRoIGlzIDEKK1BBU1MgbmV3IHB3LkRheSgyMDAwMDAsIDEsIDIpLmRhdGUg
aXMgMgorVGVzdCBEYXkuZXF1YWxzCitQQVNTIG5ldyBwdy5EYXkoMjAwMCwgMSwgMikuZXF1YWxz
KG5ldyBwdy5EYXkoMjAwMCwgMSwgMikpIGlzIHRydWUKK1BBU1MgbmV3IHB3LkRheSgyMDAwLCAx
LCAyKS5lcXVhbHMobmV3IHB3LkRheSgyMDAwLCAyLCAtMjcpKSBpcyB0cnVlCitQQVNTIG5ldyBw
dy5EYXkoMjAwMCwgMSwgMikuZXF1YWxzKG5ldyBwdy5EYXkoMjAwMSwgMSwgLTM2NCkpIGlzIHRy
dWUKK1BBU1MgbmV3IHB3LkRheSgyMDAwLCAxLCAyKS5lcXVhbHMobmV3IHB3LkRheSgyMDAwLCAx
LCAzKSkgaXMgZmFsc2UKK1BBU1MgbmV3IHB3LkRheSgyMDAwLCAxLCAyKS5lcXVhbHMobmV3IHB3
LkRheSgyMDAwLCAyLCAyKSkgaXMgZmFsc2UKK1BBU1MgbmV3IHB3LkRheSgyMDAwLCAxLCAyKS5l
cXVhbHMobmV3IHB3LkRheSgyMDAxLCAxLCAyKSkgaXMgZmFsc2UKK1BBU1MgbmV3IHB3LkRheSgy
MDAwLCAxLCAyKS5lcXVhbHMobmV3IHB3LkRheSgyMDAxLCAyLCAzKSkgaXMgZmFsc2UKK1Rlc3Qg
RGF5LmNvcHkKK1BBU1MgdmFyIGQgPSBuZXcgcHcuRGF5KDIwMDAsIDEsIDIpOyBkLmNvcHkoKSAh
PT0gZCBpcyB0cnVlCitQQVNTIHZhciBkID0gbmV3IHB3LkRheSgyMDAwLCAxLCAyKTsgZC5jb3B5
KCkgIT09IGQuY29weSgpIGlzIHRydWUKK1BBU1MgdmFyIGQgPSBuZXcgcHcuRGF5KDIwMDAsIDEs
IDIpOyBkLmNvcHkoKS5lcXVhbHMoZCkgaXMgdHJ1ZQorUEFTUyB2YXIgZCA9IG5ldyBwdy5EYXko
MjAwMCwgMSwgMik7IGQuY29weSgpLmVxdWFscyhkLmNvcHkoKSkgaXMgdHJ1ZQorVGVzdCBEYXku
cHJldmlvdXMKK1BBU1MgbmV3IHB3LkRheSgyMDAwLCAyLCAxKS5wcmV2aW91cygpLnRvU3RyaW5n
KCkgaXMgIjIwMDAtMDItMjkiCitQQVNTIG5ldyBwdy5EYXkoMjAwMCwgMiwgMSkucHJldmlvdXMo
MSkudG9TdHJpbmcoKSBpcyAiMjAwMC0wMi0yOSIKK1BBU1MgbmV3IHB3LkRheSgyMDAwLCAyLCAx
KS5wcmV2aW91cygyKS50b1N0cmluZygpIGlzICIyMDAwLTAyLTI4IgorUEFTUyBuZXcgcHcuRGF5
KDIwMDAsIDIsIDEpLnByZXZpb3VzKDMpLnRvU3RyaW5nKCkgaXMgIjIwMDAtMDItMjciCitQQVNT
IG5ldyBwdy5EYXkoMjAwMCwgMiwgMSkucHJldmlvdXMoMzApLnRvU3RyaW5nKCkgaXMgIjIwMDAt
MDEtMzEiCitUZXN0IERheS5uZXh0CitQQVNTIG5ldyBwdy5EYXkoMjAwMCwgMiwgMSkubmV4dCgp
LnRvU3RyaW5nKCkgaXMgIjIwMDAtMDMtMDIiCitQQVNTIG5ldyBwdy5EYXkoMjAwMCwgMiwgMSku
bmV4dCgxKS50b1N0cmluZygpIGlzICIyMDAwLTAzLTAyIgorUEFTUyBuZXcgcHcuRGF5KDIwMDAs
IDIsIDEpLm5leHQoMikudG9TdHJpbmcoKSBpcyAiMjAwMC0wMy0wMyIKK1BBU1MgbmV3IHB3LkRh
eSgyMDAwLCAyLCAxKS5uZXh0KDMpLnRvU3RyaW5nKCkgaXMgIjIwMDAtMDMtMDQiCitQQVNTIG5l
dyBwdy5EYXkoMjAwMCwgMiwgMSkubmV4dCgzMCkudG9TdHJpbmcoKSBpcyAiMjAwMC0wMy0zMSIK
K1Rlc3QgRGF5LmZpcnN0RGF5CitQQVNTIG5ldyBwdy5EYXkoMjAwMCwgMiwgMSkuZmlyc3REYXko
KS50b1N0cmluZygpIGlzICIyMDAwLTAzLTAxIgorVGVzdCBEYXkubWlkZGxlRGF5CitQQVNTIG5l
dyBwdy5EYXkoMjAwMCwgMiwgMSkubWlkZGxlRGF5KCkudG9TdHJpbmcoKSBpcyAiMjAwMC0wMy0w
MSIKK1Rlc3QgRGF5Lmxhc3REYXkKK1BBU1MgbmV3IHB3LkRheSgyMDAwLCAyLCAxKS5sYXN0RGF5
KCkudG9TdHJpbmcoKSBpcyAiMjAwMC0wMy0wMSIKK1Rlc3QgRGF5LnZhbHVlT2YKK1BBU1MgbmV3
IHB3LkRheSgxOTcwLCAwLCAxKS52YWx1ZU9mKCkgaXMgMAorUEFTUyBuZXcgcHcuRGF5KDE5NzAs
IDAsIDIpLnZhbHVlT2YoKSBpcyA4NjQwMDAwMAorUEFTUyBuZXcgcHcuRGF5KDIwMDAsIDIsIDEp
LnZhbHVlT2YoKSBpcyA5NTE4Njg4MDAwMDAKK1BBU1MgbmV3IHB3LkRheSgxLCAyLCAxKS52YWx1
ZU9mKCkgaXMgLTYyMTMwNDk5MjAwMDAwCitQQVNTIG5ldyBwdy5EYXkoMjAwMDAsIDIsIDEpLnZh
bHVlT2YoKSBpcyA1Njg5NzcwMDQ4MDAwMDAKK1Rlc3QgRGF5LnRvU3RyaW5nCitQQVNTIG5ldyBw
dy5EYXkoMjAwMCwgMiwgMSkudG9TdHJpbmcoKSBpcyAiMjAwMC0wMy0wMSIKK1BBU1MgbmV3IHB3
LkRheSgxLCAyLCAxKS50b1N0cmluZygpIGlzICIwMDAxLTAzLTAxIgorUEFTUyBuZXcgcHcuRGF5
KDIwMDAwLCAyLCAxKS50b1N0cmluZygpIGlzICIyMDAwMC0wMy0wMSIKK1Rlc3QgRGF5LnBhcnNl
CitQQVNTIHB3LkRheS5wYXJzZSgiMjAwMC0wMi0wMiIpLnRvU3RyaW5nKCkgaXMgIjIwMDAtMDIt
MDIiCitQQVNTIHB3LkRheS5wYXJzZSgiMTk5OS0wMi0wMiIpLnRvU3RyaW5nKCkgaXMgIjE5OTkt
MDItMDIiCitQQVNTIHB3LkRheS5wYXJzZSgiMjAwMC0wMS0wMiIpLnRvU3RyaW5nKCkgaXMgIjIw
MDAtMDEtMDIiCitQQVNTIHB3LkRheS5wYXJzZSgiMjAwMC0wMi0wMSIpLnRvU3RyaW5nKCkgaXMg
IjIwMDAtMDItMDEiCitQQVNTIHB3LkRheS5wYXJzZSgiMDIwMDAtMDItMDIiKS50b1N0cmluZygp
IGlzICIyMDAwLTAyLTAyIgorUEFTUyBwdy5EYXkucGFyc2UoIjIwMDAtMDAyLTAyIikudG9TdHJp
bmcoKSBpcyAiMjAwMC0wMi0wMiIKK1BBU1MgcHcuRGF5LnBhcnNlKCIyMDAwLTAyLTAwMiIpLnRv
U3RyaW5nKCkgaXMgIjIwMDAtMDItMDIiCitQQVNTIHB3LkRheS5wYXJzZSgiMjAwMC0yLTAyIiku
dG9TdHJpbmcoKSBpcyAiMjAwMC0wMi0wMiIKK1BBU1MgcHcuRGF5LnBhcnNlKCIyMDAwLTAyLTIi
KS50b1N0cmluZygpIGlzICIyMDAwLTAyLTAyIgorUEFTUyBwdy5EYXkucGFyc2UoIjEtMDItMDIi
KS50b1N0cmluZygpIGlzICIwMDAxLTAyLTAyIgorUEFTUyBwdy5EYXkucGFyc2UoIjIwMDAtMDIi
KSBpcyBudWxsCitQQVNTIHB3LkRheS5wYXJzZSgiMjAwMC1XMDIiKSBpcyBudWxsCitQQVNTIHB3
LkRheS5wYXJzZSgieCIpIGlzIG51bGwKK1BBU1MgcHcuRGF5LnBhcnNlKCIiKSBpcyBudWxsCitU
ZXN0IFdlZWsgY29uc3RydWN0b3IKK1BBU1MgbmV3IHB3LldlZWsoMjAwMCwgMSkueWVhciBpcyAy
MDAwCitQQVNTIG5ldyBwdy5XZWVrKDIwMDAsIDEpLndlZWsgaXMgMQorUEFTUyBuZXcgcHcuV2Vl
aygyMDAwLCAtMSkueWVhciBpcyAxOTk5CitQQVNTIG5ldyBwdy5XZWVrKDIwMDAsIC0xKS53ZWVr
IGlzIDUxCitQQVNTIG5ldyBwdy5XZWVrKC0yMDAwLCAxKS55ZWFyIGlzIC0yMDAwCitQQVNTIG5l
dyBwdy5XZWVrKC0yMDAwLCAxKS53ZWVrIGlzIDEKK1BBU1MgbmV3IHB3LldlZWsoMjAwMCwgNTUp
LnllYXIgaXMgMjAwMQorUEFTUyBuZXcgcHcuV2VlaygyMDAwLCA1NSkud2VlayBpcyAzCitQQVNT
IG5ldyBwdy5XZWVrKDIwMDAwMCwgMSkueWVhciBpcyAyMDAwMDAKK1BBU1MgbmV3IHB3LldlZWso
MjAwMDAwLCAxKS53ZWVrIGlzIDEKK1Rlc3QgV2Vlay5lcXVhbHMKK1BBU1MgbmV3IHB3LldlZWso
MjAwMCwgMSkuZXF1YWxzKG5ldyBwdy5XZWVrKDIwMDAsIDEpKSBpcyB0cnVlCitQQVNTIG5ldyBw
dy5XZWVrKDIwMDAsIDEpLmVxdWFscyhuZXcgcHcuV2VlaygyMDAxLCAtNTEpKSBpcyB0cnVlCitQ
QVNTIG5ldyBwdy5XZWVrKDIwMDAsIDEpLmVxdWFscyhuZXcgcHcuV2VlaygxOTk5LCA1MykpIGlz
IHRydWUKK1BBU1MgbmV3IHB3LldlZWsoMjAwMCwgMSkuZXF1YWxzKG5ldyBwdy5XZWVrKDIwMDAs
IDIpKSBpcyBmYWxzZQorUEFTUyBuZXcgcHcuV2VlaygyMDAwLCAxKS5lcXVhbHMobmV3IHB3Lldl
ZWsoMjAwMSwgMSkpIGlzIGZhbHNlCitQQVNTIG5ldyBwdy5XZWVrKDIwMDAsIDEpLmVxdWFscyhu
ZXcgcHcuV2VlaygyMDAxLCAyKSkgaXMgZmFsc2UKK1Rlc3QgV2Vlay5jb3B5CitQQVNTIHZhciB3
ID0gbmV3IHB3LldlZWsoMjAwMCwgMSk7IHcuY29weSgpICE9PSB3IGlzIHRydWUKK1BBU1MgdmFy
IHcgPSBuZXcgcHcuV2VlaygyMDAwLCAxKTsgdy5jb3B5KCkgIT09IHcuY29weSgpIGlzIHRydWUK
K1BBU1MgdmFyIHcgPSBuZXcgcHcuV2VlaygyMDAwLCAxKTsgdy5jb3B5KCkuZXF1YWxzKHcpIGlz
IHRydWUKK1BBU1MgdmFyIHcgPSBuZXcgcHcuV2VlaygyMDAwLCAxKTsgdy5jb3B5KCkuZXF1YWxz
KHcuY29weSgpKSBpcyB0cnVlCitUZXN0IFdlZWsucHJldmlvdXMKK1BBU1MgbmV3IHB3LldlZWso
MjAwMCwgMikucHJldmlvdXMoKS50b1N0cmluZygpIGlzICIyMDAwLVcwMSIKK1BBU1MgbmV3IHB3
LldlZWsoMjAwMCwgMikucHJldmlvdXMoMSkudG9TdHJpbmcoKSBpcyAiMjAwMC1XMDEiCitQQVNT
IG5ldyBwdy5XZWVrKDIwMDAsIDIpLnByZXZpb3VzKDIpLnRvU3RyaW5nKCkgaXMgIjE5OTktVzUy
IgorUEFTUyBuZXcgcHcuV2VlaygyMDAwLCAyKS5wcmV2aW91cygzKS50b1N0cmluZygpIGlzICIx
OTk5LVc1MSIKK1BBU1MgbmV3IHB3LldlZWsoMjAwMCwgMikucHJldmlvdXMoMTAwKS50b1N0cmlu
ZygpIGlzICIxOTk4LVcwNyIKK1Rlc3QgV2Vlay5uZXh0CitQQVNTIG5ldyBwdy5XZWVrKDIwMDAs
IDIpLm5leHQoKS50b1N0cmluZygpIGlzICIyMDAwLVcwMyIKK1BBU1MgbmV3IHB3LldlZWsoMjAw
MCwgMikubmV4dCgxKS50b1N0cmluZygpIGlzICIyMDAwLVcwMyIKK1BBU1MgbmV3IHB3LldlZWso
MjAwMCwgMikubmV4dCgyKS50b1N0cmluZygpIGlzICIyMDAwLVcwNCIKK1BBU1MgbmV3IHB3Lldl
ZWsoMjAwMCwgMikubmV4dCgzKS50b1N0cmluZygpIGlzICIyMDAwLVcwNSIKK1BBU1MgbmV3IHB3
LldlZWsoMjAwMCwgMikubmV4dCgxMDApLnRvU3RyaW5nKCkgaXMgIjIwMDEtVzUwIgorVGVzdCBX
ZWVrLmZpcnN0RGF5CitQQVNTIG5ldyBwdy5XZWVrKDIwMDAsIDIpLmZpcnN0RGF5KCkudG9TdHJp
bmcoKSBpcyAiMjAwMC0wMS0xMCIKK1BBU1MgbmV3IHB3LldlZWsoMjAwMCwgNTApLmZpcnN0RGF5
KCkudG9TdHJpbmcoKSBpcyAiMjAwMC0xMi0xMSIKK1BBU1MgbmV3IHB3LldlZWsoMSwgMSkuZmly
c3REYXkoKS50b1N0cmluZygpIGlzICIwMDAxLTAxLTAxIgorUEFTUyBuZXcgcHcuV2VlaygxLCA1
MCkuZmlyc3REYXkoKS50b1N0cmluZygpIGlzICIwMDAxLTEyLTEwIgorUEFTUyBuZXcgcHcuV2Vl
aygyMDAwMCwgMSkuZmlyc3REYXkoKS50b1N0cmluZygpIGlzICIyMDAwMC0wMS0wMyIKK1BBU1Mg
bmV3IHB3LldlZWsoMjAwMDAsIDUwKS5maXJzdERheSgpLnRvU3RyaW5nKCkgaXMgIjIwMDAwLTEy
LTExIgorVGVzdCBXZWVrLm1pZGRsZURheQorUEFTUyBuZXcgcHcuV2VlaygyMDAwLCAyKS5taWRk
bGVEYXkoKS50b1N0cmluZygpIGlzICIyMDAwLTAxLTEzIgorUEFTUyBuZXcgcHcuV2VlaygyMDAw
LCA1MCkubWlkZGxlRGF5KCkudG9TdHJpbmcoKSBpcyAiMjAwMC0xMi0xNCIKK1BBU1MgbmV3IHB3
LldlZWsoMSwgMSkubWlkZGxlRGF5KCkudG9TdHJpbmcoKSBpcyAiMDAwMS0wMS0wNCIKK1BBU1Mg
bmV3IHB3LldlZWsoMSwgNTApLm1pZGRsZURheSgpLnRvU3RyaW5nKCkgaXMgIjAwMDEtMTItMTMi
CitQQVNTIG5ldyBwdy5XZWVrKDIwMDAwLCAxKS5taWRkbGVEYXkoKS50b1N0cmluZygpIGlzICIy
MDAwMC0wMS0wNiIKK1BBU1MgbmV3IHB3LldlZWsoMjAwMDAsIDUwKS5taWRkbGVEYXkoKS50b1N0
cmluZygpIGlzICIyMDAwMC0xMi0xNCIKK1Rlc3QgV2Vlay5sYXN0RGF5CitQQVNTIG5ldyBwdy5X
ZWVrKDIwMDAsIDIpLmxhc3REYXkoKS50b1N0cmluZygpIGlzICIyMDAwLTAxLTE2IgorUEFTUyBu
ZXcgcHcuV2VlaygyMDAwLCA1MCkubGFzdERheSgpLnRvU3RyaW5nKCkgaXMgIjIwMDAtMTItMTci
CitQQVNTIG5ldyBwdy5XZWVrKDEsIDEpLmxhc3REYXkoKS50b1N0cmluZygpIGlzICIwMDAxLTAx
LTA3IgorUEFTUyBuZXcgcHcuV2VlaygxLCA1MCkubGFzdERheSgpLnRvU3RyaW5nKCkgaXMgIjAw
MDEtMTItMTYiCitQQVNTIG5ldyBwdy5XZWVrKDIwMDAwLCAxKS5sYXN0RGF5KCkudG9TdHJpbmco
KSBpcyAiMjAwMDAtMDEtMDkiCitQQVNTIG5ldyBwdy5XZWVrKDIwMDAwLCA1MCkubGFzdERheSgp
LnRvU3RyaW5nKCkgaXMgIjIwMDAwLTEyLTE3IgorVGVzdCBXZWVrLnZhbHVlT2YKK1BBU1MgbmV3
IHB3LldlZWsoMTk3MCwgMSkudmFsdWVPZigpIGlzIC0yNTkyMDAwMDAKK1BBU1MgbmV3IHB3Lldl
ZWsoMTk3MCwgMikudmFsdWVPZigpIGlzIDM0NTYwMDAwMAorUEFTUyBuZXcgcHcuV2VlaygyMDAw
LCAxKS52YWx1ZU9mKCkgaXMgOTQ2ODU3NjAwMDAwCitQQVNTIG5ldyBwdy5XZWVrKDEsIDEpLnZh
bHVlT2YoKSBpcyAtNjIxMzU1OTY4MDAwMDAKK1BBU1MgbmV3IHB3LldlZWsoMjAwMDAsIDIpLnZh
bHVlT2YoKSBpcyA1Njg5NzI1OTg0MDAwMDAKK1Rlc3QgV2Vlay50b1N0cmluZworUEFTUyBuZXcg
cHcuV2VlaygyMDAwLCAyKS50b1N0cmluZygpIGlzICIyMDAwLVcwMiIKK1BBU1MgbmV3IHB3Lldl
ZWsoMSwgNTApLnRvU3RyaW5nKCkgaXMgIjAwMDEtVzUwIgorUEFTUyBuZXcgcHcuV2VlaygyMDAw
MCwgMikudG9TdHJpbmcoKSBpcyAiMjAwMDAtVzAyIgorVGVzdCBXZWVrLnBhcnNlCitQQVNTIHB3
LldlZWsucGFyc2UoIjIwMDAtVzAyIikudG9TdHJpbmcoKSBpcyAiMjAwMC1XMDIiCitQQVNTIHB3
LldlZWsucGFyc2UoIjE5OTktVzEwIikudG9TdHJpbmcoKSBpcyAiMTk5OS1XMTAiCitQQVNTIHB3
LldlZWsucGFyc2UoIjAwMDEtVzIzIikudG9TdHJpbmcoKSBpcyAiMDAwMS1XMjMiCitQQVNTIHB3
LldlZWsucGFyc2UoIjEyMzQ1LVczMiIpLnRvU3RyaW5nKCkgaXMgIjEyMzQ1LVczMiIKK1BBU1Mg
cHcuV2Vlay5wYXJzZSgiMDIwMDAtVzAyIikudG9TdHJpbmcoKSBpcyAiMjAwMC1XMDIiCitQQVNT
IHB3LldlZWsucGFyc2UoIjIwMDAtVzAwMiIpLnRvU3RyaW5nKCkgaXMgIjIwMDAtVzAyIgorUEFT
UyBwdy5XZWVrLnBhcnNlKCIyMDAwLVcyIikudG9TdHJpbmcoKSBpcyAiMjAwMC1XMDIiCitQQVNT
IHB3LldlZWsucGFyc2UoIjEtVzAyIikudG9TdHJpbmcoKSBpcyAiMDAwMS1XMDIiCitQQVNTIHB3
LldlZWsucGFyc2UoIjIwMDAtMDItMDMiKSBpcyBudWxsCitQQVNTIHB3LldlZWsucGFyc2UoIjIw
MDAtMDIiKSBpcyBudWxsCitQQVNTIHB3LldlZWsucGFyc2UoIngiKSBpcyBudWxsCitQQVNTIHB3
LldlZWsucGFyc2UoIiIpIGlzIG51bGwKK1Rlc3QgTW9udGggY29uc3RydWN0b3IKK1BBU1MgbmV3
IHB3Lk1vbnRoKDIwMDAsIDEpLnllYXIgaXMgMjAwMAorUEFTUyBuZXcgcHcuTW9udGgoMjAwMCwg
MSkubW9udGggaXMgMQorUEFTUyBuZXcgcHcuTW9udGgoMjAwMCwgLTEpLnllYXIgaXMgMTk5OQor
UEFTUyBuZXcgcHcuTW9udGgoMjAwMCwgLTEpLm1vbnRoIGlzIDExCitQQVNTIG5ldyBwdy5Nb250
aCgtMjAwMCwgMSkueWVhciBpcyAtMjAwMAorUEFTUyBuZXcgcHcuTW9udGgoLTIwMDAsIDEpLm1v
bnRoIGlzIDEKK1BBU1MgbmV3IHB3Lk1vbnRoKDIwMDAsIDEzKS55ZWFyIGlzIDIwMDEKK1BBU1Mg
bmV3IHB3Lk1vbnRoKDIwMDAsIDEzKS5tb250aCBpcyAxCitQQVNTIG5ldyBwdy5Nb250aCgyMDAw
MDAsIDEpLnllYXIgaXMgMjAwMDAwCitQQVNTIG5ldyBwdy5Nb250aCgyMDAwMDAsIDEpLm1vbnRo
IGlzIDEKK1Rlc3QgTW9udGguZXF1YWxzCitQQVNTIG5ldyBwdy5Nb250aCgyMDAwLCAxKS5lcXVh
bHMobmV3IHB3Lk1vbnRoKDIwMDAsIDEpKSBpcyB0cnVlCitQQVNTIG5ldyBwdy5Nb250aCgyMDAw
LCAxKS5lcXVhbHMobmV3IHB3Lk1vbnRoKDIwMDEsIC0xMSkpIGlzIHRydWUKK1BBU1MgbmV3IHB3
Lk1vbnRoKDIwMDAsIDEpLmVxdWFscyhuZXcgcHcuTW9udGgoMTk5OSwgMTMpKSBpcyB0cnVlCitQ
QVNTIG5ldyBwdy5Nb250aCgyMDAwLCAxKS5lcXVhbHMobmV3IHB3Lk1vbnRoKDIwMDAsIDIpKSBp
cyBmYWxzZQorUEFTUyBuZXcgcHcuTW9udGgoMjAwMCwgMSkuZXF1YWxzKG5ldyBwdy5Nb250aCgy
MDAxLCAxKSkgaXMgZmFsc2UKK1BBU1MgbmV3IHB3Lk1vbnRoKDIwMDAsIDEpLmVxdWFscyhuZXcg
cHcuTW9udGgoMjAwMSwgMikpIGlzIGZhbHNlCitUZXN0IE1vbnRoLmNvcHkKK1BBU1MgdmFyIHcg
PSBuZXcgcHcuTW9udGgoMjAwMCwgMSk7IHcuY29weSgpICE9PSB3IGlzIHRydWUKK1BBU1MgdmFy
IHcgPSBuZXcgcHcuTW9udGgoMjAwMCwgMSk7IHcuY29weSgpICE9PSB3LmNvcHkoKSBpcyB0cnVl
CitQQVNTIHZhciB3ID0gbmV3IHB3Lk1vbnRoKDIwMDAsIDEpOyB3LmNvcHkoKS5lcXVhbHModykg
aXMgdHJ1ZQorUEFTUyB2YXIgdyA9IG5ldyBwdy5Nb250aCgyMDAwLCAxKTsgdy5jb3B5KCkuZXF1
YWxzKHcuY29weSgpKSBpcyB0cnVlCitUZXN0IE1vbnRoLnByZXZpb3VzCitQQVNTIG5ldyBwdy5N
b250aCgyMDAwLCAyKS5wcmV2aW91cygpLnRvU3RyaW5nKCkgaXMgIjIwMDAtMDIiCitQQVNTIG5l
dyBwdy5Nb250aCgyMDAwLCAyKS5wcmV2aW91cygxKS50b1N0cmluZygpIGlzICIyMDAwLTAyIgor
UEFTUyBuZXcgcHcuTW9udGgoMjAwMCwgMikucHJldmlvdXMoMikudG9TdHJpbmcoKSBpcyAiMjAw
MC0wMSIKK1BBU1MgbmV3IHB3Lk1vbnRoKDIwMDAsIDIpLnByZXZpb3VzKDMpLnRvU3RyaW5nKCkg
aXMgIjE5OTktMTIiCitQQVNTIG5ldyBwdy5Nb250aCgyMDAwLCAyKS5wcmV2aW91cygxMDApLnRv
U3RyaW5nKCkgaXMgIjE5OTEtMTEiCitUZXN0IE1vbnRoLm5leHQKK1BBU1MgbmV3IHB3Lk1vbnRo
KDIwMDAsIDIpLm5leHQoKS50b1N0cmluZygpIGlzICIyMDAwLTA0IgorUEFTUyBuZXcgcHcuTW9u
dGgoMjAwMCwgMikubmV4dCgxKS50b1N0cmluZygpIGlzICIyMDAwLTA0IgorUEFTUyBuZXcgcHcu
TW9udGgoMjAwMCwgMikubmV4dCgyKS50b1N0cmluZygpIGlzICIyMDAwLTA1IgorUEFTUyBuZXcg
cHcuTW9udGgoMjAwMCwgMikubmV4dCgzKS50b1N0cmluZygpIGlzICIyMDAwLTA2IgorUEFTUyBu
ZXcgcHcuTW9udGgoMjAwMCwgMikubmV4dCgxMDApLnRvU3RyaW5nKCkgaXMgIjIwMDgtMDciCitU
ZXN0IE1vbnRoLmZpcnN0RGF5CitQQVNTIG5ldyBwdy5Nb250aCgyMDAwLCAxKS5maXJzdERheSgp
LnRvU3RyaW5nKCkgaXMgIjIwMDAtMDItMDEiCitQQVNTIG5ldyBwdy5Nb250aCgyMDAwLCAxMSku
Zmlyc3REYXkoKS50b1N0cmluZygpIGlzICIyMDAwLTEyLTAxIgorUEFTUyBuZXcgcHcuTW9udGgo
MSwgMCkuZmlyc3REYXkoKS50b1N0cmluZygpIGlzICIwMDAxLTAxLTAxIgorUEFTUyBuZXcgcHcu
TW9udGgoMSwgMSkuZmlyc3REYXkoKS50b1N0cmluZygpIGlzICIwMDAxLTAyLTAxIgorUEFTUyBu
ZXcgcHcuTW9udGgoMSwgMTEpLmZpcnN0RGF5KCkudG9TdHJpbmcoKSBpcyAiMDAwMS0xMi0wMSIK
K1BBU1MgbmV3IHB3Lk1vbnRoKDIwMDAwLCAwKS5maXJzdERheSgpLnRvU3RyaW5nKCkgaXMgIjIw
MDAwLTAxLTAxIgorUEFTUyBuZXcgcHcuTW9udGgoMjAwMDAsIDEpLmZpcnN0RGF5KCkudG9TdHJp
bmcoKSBpcyAiMjAwMDAtMDItMDEiCitQQVNTIG5ldyBwdy5Nb250aCgyMDAwMCwgMTEpLmZpcnN0
RGF5KCkudG9TdHJpbmcoKSBpcyAiMjAwMDAtMTItMDEiCitUZXN0IE1vbnRoLm1pZGRsZURheQor
UEFTUyBuZXcgcHcuTW9udGgoMjAwMCwgMSkubWlkZGxlRGF5KCkudG9TdHJpbmcoKSBpcyAiMjAw
MC0wMi0xNSIKK1BBU1MgbmV3IHB3Lk1vbnRoKDIwMDAsIDExKS5taWRkbGVEYXkoKS50b1N0cmlu
ZygpIGlzICIyMDAwLTEyLTE1IgorUEFTUyBuZXcgcHcuTW9udGgoMSwgMCkubWlkZGxlRGF5KCku
dG9TdHJpbmcoKSBpcyAiMDAwMS0wMS0xNSIKK1BBU1MgbmV3IHB3Lk1vbnRoKDEsIDEpLm1pZGRs
ZURheSgpLnRvU3RyaW5nKCkgaXMgIjAwMDEtMDItMTUiCitQQVNTIG5ldyBwdy5Nb250aCgxLCAx
MSkubWlkZGxlRGF5KCkudG9TdHJpbmcoKSBpcyAiMDAwMS0xMi0xNSIKK1BBU1MgbmV3IHB3Lk1v
bnRoKDIwMDAwLCAwKS5taWRkbGVEYXkoKS50b1N0cmluZygpIGlzICIyMDAwMC0wMS0xNSIKK1BB
U1MgbmV3IHB3Lk1vbnRoKDIwMDAwLCAxKS5taWRkbGVEYXkoKS50b1N0cmluZygpIGlzICIyMDAw
MC0wMi0xNSIKK1BBU1MgbmV3IHB3Lk1vbnRoKDIwMDAwLCAxMSkubWlkZGxlRGF5KCkudG9TdHJp
bmcoKSBpcyAiMjAwMDAtMTItMTUiCitUZXN0IE1vbnRoLmxhc3REYXkKK1BBU1MgbmV3IHB3Lk1v
bnRoKDIwMDAsIDEpLmxhc3REYXkoKS50b1N0cmluZygpIGlzICIyMDAwLTAyLTI5IgorUEFTUyBu
ZXcgcHcuTW9udGgoMjAwMCwgMTEpLmxhc3REYXkoKS50b1N0cmluZygpIGlzICIyMDAwLTEyLTMx
IgorUEFTUyBuZXcgcHcuTW9udGgoMSwgMCkubGFzdERheSgpLnRvU3RyaW5nKCkgaXMgIjAwMDEt
MDEtMzEiCitQQVNTIG5ldyBwdy5Nb250aCgxLCAxKS5sYXN0RGF5KCkudG9TdHJpbmcoKSBpcyAi
MDAwMS0wMi0yOCIKK1BBU1MgbmV3IHB3Lk1vbnRoKDEsIDExKS5sYXN0RGF5KCkudG9TdHJpbmco
KSBpcyAiMDAwMS0xMi0zMSIKK1BBU1MgbmV3IHB3Lk1vbnRoKDIwMDAwLCAwKS5sYXN0RGF5KCku
dG9TdHJpbmcoKSBpcyAiMjAwMDAtMDEtMzEiCitQQVNTIG5ldyBwdy5Nb250aCgyMDAwMCwgMSku
bGFzdERheSgpLnRvU3RyaW5nKCkgaXMgIjIwMDAwLTAyLTI5IgorUEFTUyBuZXcgcHcuTW9udGgo
MjAwMDAsIDExKS5sYXN0RGF5KCkudG9TdHJpbmcoKSBpcyAiMjAwMDAtMTItMzEiCitUZXN0IE1v
bnRoLnZhbHVlT2YKK1BBU1MgbmV3IHB3Lk1vbnRoKDE5NzAsIDApLnZhbHVlT2YoKSBpcyAwCitQ
QVNTIG5ldyBwdy5Nb250aCgxOTcwLCAxKS52YWx1ZU9mKCkgaXMgMQorUEFTUyBuZXcgcHcuTW9u
dGgoMjAwMCwgMCkudmFsdWVPZigpIGlzIDM2MAorUEFTUyBuZXcgcHcuTW9udGgoMSwgMCkudmFs
dWVPZigpIGlzIC0yMzYyOAorUEFTUyBuZXcgcHcuTW9udGgoMjAwMDAsIDExKS52YWx1ZU9mKCkg
aXMgMjE2MzcxCitUZXN0IE1vbnRoLnRvU3RyaW5nCitQQVNTIG5ldyBwdy5Nb250aCgyMDAwLCAw
KS50b1N0cmluZygpIGlzICIyMDAwLTAxIgorUEFTUyBuZXcgcHcuTW9udGgoMSwgMTEpLnRvU3Ry
aW5nKCkgaXMgIjAwMDEtMTIiCitQQVNTIG5ldyBwdy5Nb250aCgyMDAwMCwgNSkudG9TdHJpbmco
KSBpcyAiMjAwMDAtMDYiCitUZXN0IE1vbnRoLnBhcnNlCitQQVNTIHB3Lk1vbnRoLnBhcnNlKCIy
MDAwLTAxIikudG9TdHJpbmcoKSBpcyAiMjAwMC0wMSIKK1BBU1MgcHcuTW9udGgucGFyc2UoIjE5
OTktMTAiKS50b1N0cmluZygpIGlzICIxOTk5LTEwIgorUEFTUyBwdy5Nb250aC5wYXJzZSgiMDAw
MS0xMSIpLnRvU3RyaW5nKCkgaXMgIjAwMDEtMTEiCitQQVNTIHB3Lk1vbnRoLnBhcnNlKCIxMjM0
NS0wMyIpLnRvU3RyaW5nKCkgaXMgIjEyMzQ1LTAzIgorUEFTUyBwdy5Nb250aC5wYXJzZSgiMDIw
MDAtMDIiKS50b1N0cmluZygpIGlzICIyMDAwLTAyIgorUEFTUyBwdy5Nb250aC5wYXJzZSgiMjAw
MC0wMDIiKS50b1N0cmluZygpIGlzICIyMDAwLTAyIgorUEFTUyBwdy5Nb250aC5wYXJzZSgiMjAw
MC0yIikudG9TdHJpbmcoKSBpcyAiMjAwMC0wMiIKK1BBU1MgcHcuTW9udGgucGFyc2UoIjEtMDIi
KS50b1N0cmluZygpIGlzICIwMDAxLTAyIgorUEFTUyBwdy5Nb250aC5wYXJzZSgiMjAwMC0wMi0w
MyIpIGlzIG51bGwKK1BBU1MgcHcuTW9udGgucGFyc2UoIjIwMDAtVzAyIikgaXMgbnVsbAorUEFT
UyBwdy5Nb250aC5wYXJzZSgieCIpIGlzIG51bGwKK1BBU1MgcHcuTW9udGgucGFyc2UoIiIpIGlz
IG51bGwKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9mb3Jtcy9j
YWxlbmRhci1waWNrZXIvY2FsZW5kYXItcGlja2VyLWRhdGUtdHlwZXMuaHRtbCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZm9ybXMvY2FsZW5kYXItcGlja2VyL2NhbGVuZGFy
LXBpY2tlci1kYXRlLXR5cGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWFmODZhMzdkMjI4NjQ3MDJkYTI3
NTU3NDllNWQwMzI4ZDlhNjI3MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2Zhc3QvZm9ybXMvY2FsZW5kYXItcGlja2VyL2NhbGVuZGFyLXBpY2tlci1k
YXRlLXR5cGVzLmh0bWwKQEAgLTAsMCArMSwzNjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vLi4vZmFz
dC9mb3Jtcy9yZXNvdXJjZXMvcGlja2VyLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL2NhbGVuZGFyLXBpY2tlci1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorCis8aW5wdXQgdHlwZT1kYXRlIGlkPWRhdGUgdmFsdWU9IjIwMTEtMDUtMDEiPgorCis8
c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgaWYgc3RlcCBsaW1pdHMgYXZhaWxhYmxlIGRhdGVz
IGluIGNhbGVuZGFyIHBpY2tlci4nKTsKKworb3BlblBpY2tlcihkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnZGF0ZScpLCB0ZXN0MSk7CisKK3ZhciBwdyA9IG51bGw7CitmdW5jdGlvbiB0ZXN0MSgp
IHsKKyAgICBwdyA9IHBvcHVwV2luZG93OworCisgICAgdGVzdERheSgpOworICAgIHRlc3RXZWVr
KCk7CisgICAgdGVzdE1vbnRoKCk7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rp
b24gdGVzdERheSgpIHsKKyAgICBkZWJ1ZygnVGVzdCBEYXkgY29uc3RydWN0b3InKTsKKworICAg
IHNob3VsZEJlKCduZXcgcHcuRGF5KDIwMDAsIDEsIDIpLnllYXInLCAnMjAwMCcpOworICAgIHNo
b3VsZEJlKCduZXcgcHcuRGF5KDIwMDAsIDEsIDIpLm1vbnRoJywgJzEnKTsKKyAgICBzaG91bGRC
ZSgnbmV3IHB3LkRheSgyMDAwLCAxLCAyKS5kYXRlJywgJzInKTsKKworICAgIHNob3VsZEJlKCdu
ZXcgcHcuRGF5KDIwMDAsIC0xLCAyKS55ZWFyJywgJzE5OTknKTsKKyAgICBzaG91bGRCZSgnbmV3
IHB3LkRheSgyMDAwLCAtMSwgMikubW9udGgnLCAnMTEnKTsKKyAgICBzaG91bGRCZSgnbmV3IHB3
LkRheSgyMDAwLCAtMSwgMikuZGF0ZScsICcyJyk7CisKKyAgICBzaG91bGRCZSgnbmV3IHB3LkRh
eSgyMDAwLCAxLCAtMikueWVhcicsICcyMDAwJyk7CisgICAgc2hvdWxkQmUoJ25ldyBwdy5EYXko
MjAwMCwgMSwgLTIpLm1vbnRoJywgJzAnKTsKKyAgICBzaG91bGRCZSgnbmV3IHB3LkRheSgyMDAw
LCAxLCAtMikuZGF0ZScsICcyOScpOworCisgICAgc2hvdWxkQmUoJ25ldyBwdy5EYXkoLTIwMDAs
IDEsIDIpLnllYXInLCAnLTIwMDAnKTsKKyAgICBzaG91bGRCZSgnbmV3IHB3LkRheSgtMjAwMCwg
MSwgMikubW9udGgnLCAnMScpOworICAgIHNob3VsZEJlKCduZXcgcHcuRGF5KC0yMDAwLCAxLCAy
KS5kYXRlJywgJzInKTsKKworICAgIHNob3VsZEJlKCduZXcgcHcuRGF5KDIwMDAsIDEsIDMzKS55
ZWFyJywgJzIwMDAnKTsKKyAgICBzaG91bGRCZSgnbmV3IHB3LkRheSgyMDAwLCAxLCAzMykubW9u
dGgnLCAnMicpOworICAgIHNob3VsZEJlKCduZXcgcHcuRGF5KDIwMDAsIDEsIDMzKS5kYXRlJywg
JzQnKTsKKworICAgIHNob3VsZEJlKCduZXcgcHcuRGF5KDIwMDAwMCwgMSwgMikueWVhcicsICcy
MDAwMDAnKTsKKyAgICBzaG91bGRCZSgnbmV3IHB3LkRheSgyMDAwMDAsIDEsIDIpLm1vbnRoJywg
JzEnKTsKKyAgICBzaG91bGRCZSgnbmV3IHB3LkRheSgyMDAwMDAsIDEsIDIpLmRhdGUnLCAnMicp
OworCisgICAgZGVidWcoJ1Rlc3QgRGF5LmVxdWFscycpOworCisgICAgc2hvdWxkQmVUcnVlKCdu
ZXcgcHcuRGF5KDIwMDAsIDEsIDIpLmVxdWFscyhuZXcgcHcuRGF5KDIwMDAsIDEsIDIpKScpOwor
ICAgIHNob3VsZEJlVHJ1ZSgnbmV3IHB3LkRheSgyMDAwLCAxLCAyKS5lcXVhbHMobmV3IHB3LkRh
eSgyMDAwLCAyLCAtMjcpKScpOworICAgIHNob3VsZEJlVHJ1ZSgnbmV3IHB3LkRheSgyMDAwLCAx
LCAyKS5lcXVhbHMobmV3IHB3LkRheSgyMDAxLCAxLCAtMzY0KSknKTsKKyAgICAKKyAgICBzaG91
bGRCZUZhbHNlKCduZXcgcHcuRGF5KDIwMDAsIDEsIDIpLmVxdWFscyhuZXcgcHcuRGF5KDIwMDAs
IDEsIDMpKScpOworICAgIHNob3VsZEJlRmFsc2UoJ25ldyBwdy5EYXkoMjAwMCwgMSwgMikuZXF1
YWxzKG5ldyBwdy5EYXkoMjAwMCwgMiwgMikpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgnbmV3IHB3
LkRheSgyMDAwLCAxLCAyKS5lcXVhbHMobmV3IHB3LkRheSgyMDAxLCAxLCAyKSknKTsKKyAgICBz
aG91bGRCZUZhbHNlKCduZXcgcHcuRGF5KDIwMDAsIDEsIDIpLmVxdWFscyhuZXcgcHcuRGF5KDIw
MDEsIDIsIDMpKScpOworICAgIAorICAgIGRlYnVnKCdUZXN0IERheS5jb3B5Jyk7CisKKyAgICBz
aG91bGRCZVRydWUoJ3ZhciBkID0gbmV3IHB3LkRheSgyMDAwLCAxLCAyKTsgZC5jb3B5KCkgIT09
IGQnKTsKKyAgICBzaG91bGRCZVRydWUoJ3ZhciBkID0gbmV3IHB3LkRheSgyMDAwLCAxLCAyKTsg
ZC5jb3B5KCkgIT09IGQuY29weSgpJyk7CisgICAgc2hvdWxkQmVUcnVlKCd2YXIgZCA9IG5ldyBw
dy5EYXkoMjAwMCwgMSwgMik7IGQuY29weSgpLmVxdWFscyhkKScpOworICAgIHNob3VsZEJlVHJ1
ZSgndmFyIGQgPSBuZXcgcHcuRGF5KDIwMDAsIDEsIDIpOyBkLmNvcHkoKS5lcXVhbHMoZC5jb3B5
KCkpJyk7CisKKyAgICBkZWJ1ZygnVGVzdCBEYXkucHJldmlvdXMnKTsKKworICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygnbmV3IHB3LkRheSgyMDAwLCAyLCAxKS5wcmV2aW91cygpLnRvU3RyaW5n
KCknLCAnMjAwMC0wMi0yOScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3LkRh
eSgyMDAwLCAyLCAxKS5wcmV2aW91cygxKS50b1N0cmluZygpJywgJzIwMDAtMDItMjknKTsKKyAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5EYXkoMjAwMCwgMiwgMSkucHJldmlvdXMo
MikudG9TdHJpbmcoKScsICcyMDAwLTAyLTI4Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCduZXcgcHcuRGF5KDIwMDAsIDIsIDEpLnByZXZpb3VzKDMpLnRvU3RyaW5nKCknLCAnMjAwMC0w
Mi0yNycpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3LkRheSgyMDAwLCAyLCAx
KS5wcmV2aW91cygzMCkudG9TdHJpbmcoKScsICcyMDAwLTAxLTMxJyk7CisKKyAgICBkZWJ1Zygn
VGVzdCBEYXkubmV4dCcpOworCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuRGF5
KDIwMDAsIDIsIDEpLm5leHQoKS50b1N0cmluZygpJywgJzIwMDAtMDMtMDInKTsKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5EYXkoMjAwMCwgMiwgMSkubmV4dCgxKS50b1N0cmlu
ZygpJywgJzIwMDAtMDMtMDInKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5E
YXkoMjAwMCwgMiwgMSkubmV4dCgyKS50b1N0cmluZygpJywgJzIwMDAtMDMtMDMnKTsKKyAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5EYXkoMjAwMCwgMiwgMSkubmV4dCgzKS50b1N0
cmluZygpJywgJzIwMDAtMDMtMDQnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBw
dy5EYXkoMjAwMCwgMiwgMSkubmV4dCgzMCkudG9TdHJpbmcoKScsICcyMDAwLTAzLTMxJyk7CisK
KyAgICBkZWJ1ZygnVGVzdCBEYXkuZmlyc3REYXknKTsKKworICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygnbmV3IHB3LkRheSgyMDAwLCAyLCAxKS5maXJzdERheSgpLnRvU3RyaW5nKCknLCAnMjAw
MC0wMy0wMScpOworCisgICAgZGVidWcoJ1Rlc3QgRGF5Lm1pZGRsZURheScpOworCisgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuRGF5KDIwMDAsIDIsIDEpLm1pZGRsZURheSgpLnRv
U3RyaW5nKCknLCAnMjAwMC0wMy0wMScpOworCisgICAgZGVidWcoJ1Rlc3QgRGF5Lmxhc3REYXkn
KTsKKworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3LkRheSgyMDAwLCAyLCAxKS5s
YXN0RGF5KCkudG9TdHJpbmcoKScsICcyMDAwLTAzLTAxJyk7CisKKyAgICBkZWJ1ZygnVGVzdCBE
YXkudmFsdWVPZicpOworCisgICAgc2hvdWxkQmUoJ25ldyBwdy5EYXkoMTk3MCwgMCwgMSkudmFs
dWVPZigpJywgJzAnKTsKKyAgICBzaG91bGRCZSgnbmV3IHB3LkRheSgxOTcwLCAwLCAyKS52YWx1
ZU9mKCknLCAnODY0MDAwMDAnKTsKKyAgICBzaG91bGRCZSgnbmV3IHB3LkRheSgyMDAwLCAyLCAx
KS52YWx1ZU9mKCknLCAnOTUxODY4ODAwMDAwJyk7CisgICAgc2hvdWxkQmUoJ25ldyBwdy5EYXko
MSwgMiwgMSkudmFsdWVPZigpJywgJy02MjEzMDQ5OTIwMDAwMCcpOworICAgIHNob3VsZEJlKCdu
ZXcgcHcuRGF5KDIwMDAwLCAyLCAxKS52YWx1ZU9mKCknLCAnNTY4OTc3MDA0ODAwMDAwJyk7Cisg
ICAgCisgICAgZGVidWcoJ1Rlc3QgRGF5LnRvU3RyaW5nJyk7CisgICAgCisgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCduZXcgcHcuRGF5KDIwMDAsIDIsIDEpLnRvU3RyaW5nKCknLCAnMjAwMC0w
My0wMScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3LkRheSgxLCAyLCAxKS50
b1N0cmluZygpJywgJzAwMDEtMDMtMDEnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25l
dyBwdy5EYXkoMjAwMDAsIDIsIDEpLnRvU3RyaW5nKCknLCAnMjAwMDAtMDMtMDEnKTsKKworICAg
IGRlYnVnKCdUZXN0IERheS5wYXJzZScpOworICAgIAorICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygncHcuRGF5LnBhcnNlKCIyMDAwLTAyLTAyIikudG9TdHJpbmcoKScsICcyMDAwLTAyLTAyJyk7
CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwdy5EYXkucGFyc2UoIjE5OTktMDItMDIiKS50
b1N0cmluZygpJywgJzE5OTktMDItMDInKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3B3
LkRheS5wYXJzZSgiMjAwMC0wMS0wMiIpLnRvU3RyaW5nKCknLCAnMjAwMC0wMS0wMicpOworICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygncHcuRGF5LnBhcnNlKCIyMDAwLTAyLTAxIikudG9TdHJp
bmcoKScsICcyMDAwLTAyLTAxJyk7CisgICAgLy8gSW5jb3JyZWN0IG51bWJlciBvZiBsZWFkaW5n
IHplcm9zCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwdy5EYXkucGFyc2UoIjAyMDAwLTAy
LTAyIikudG9TdHJpbmcoKScsICcyMDAwLTAyLTAyJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCdwdy5EYXkucGFyc2UoIjIwMDAtMDAyLTAyIikudG9TdHJpbmcoKScsICcyMDAwLTAyLTAy
Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwdy5EYXkucGFyc2UoIjIwMDAtMDItMDAy
IikudG9TdHJpbmcoKScsICcyMDAwLTAyLTAyJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCdwdy5EYXkucGFyc2UoIjIwMDAtMi0wMiIpLnRvU3RyaW5nKCknLCAnMjAwMC0wMi0wMicpOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncHcuRGF5LnBhcnNlKCIyMDAwLTAyLTIiKS50b1N0
cmluZygpJywgJzIwMDAtMDItMDInKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3B3LkRh
eS5wYXJzZSgiMS0wMi0wMiIpLnRvU3RyaW5nKCknLCAnMDAwMS0wMi0wMicpOworICAgIC8vIElu
dmFsaWQKKyAgICBzaG91bGRCZU51bGwoJ3B3LkRheS5wYXJzZSgiMjAwMC0wMiIpJyk7CisgICAg
c2hvdWxkQmVOdWxsKCdwdy5EYXkucGFyc2UoIjIwMDAtVzAyIiknKTsKKyAgICBzaG91bGRCZU51
bGwoJ3B3LkRheS5wYXJzZSgieCIpJyk7CisgICAgc2hvdWxkQmVOdWxsKCdwdy5EYXkucGFyc2Uo
IiIpJyk7Cit9CisKK2Z1bmN0aW9uIHRlc3RXZWVrKCkgeworICAgIGRlYnVnKCdUZXN0IFdlZWsg
Y29uc3RydWN0b3InKTsKKworICAgIHNob3VsZEJlKCduZXcgcHcuV2VlaygyMDAwLCAxKS55ZWFy
JywgJzIwMDAnKTsKKyAgICBzaG91bGRCZSgnbmV3IHB3LldlZWsoMjAwMCwgMSkud2VlaycsICcx
Jyk7CisKKyAgICBzaG91bGRCZSgnbmV3IHB3LldlZWsoMjAwMCwgLTEpLnllYXInLCAnMTk5OScp
OworICAgIHNob3VsZEJlKCduZXcgcHcuV2VlaygyMDAwLCAtMSkud2VlaycsICc1MScpOworCisg
ICAgc2hvdWxkQmUoJ25ldyBwdy5XZWVrKC0yMDAwLCAxKS55ZWFyJywgJy0yMDAwJyk7CisgICAg
c2hvdWxkQmUoJ25ldyBwdy5XZWVrKC0yMDAwLCAxKS53ZWVrJywgJzEnKTsKKworICAgIHNob3Vs
ZEJlKCduZXcgcHcuV2VlaygyMDAwLCA1NSkueWVhcicsICcyMDAxJyk7CisgICAgc2hvdWxkQmUo
J25ldyBwdy5XZWVrKDIwMDAsIDU1KS53ZWVrJywgJzMnKTsKKworICAgIHNob3VsZEJlKCduZXcg
cHcuV2VlaygyMDAwMDAsIDEpLnllYXInLCAnMjAwMDAwJyk7CisgICAgc2hvdWxkQmUoJ25ldyBw
dy5XZWVrKDIwMDAwMCwgMSkud2VlaycsICcxJyk7CisKKyAgICBkZWJ1ZygnVGVzdCBXZWVrLmVx
dWFscycpOworCisgICAgc2hvdWxkQmVUcnVlKCduZXcgcHcuV2VlaygyMDAwLCAxKS5lcXVhbHMo
bmV3IHB3LldlZWsoMjAwMCwgMSkpJyk7CisgICAgc2hvdWxkQmVUcnVlKCduZXcgcHcuV2Vlaygy
MDAwLCAxKS5lcXVhbHMobmV3IHB3LldlZWsoMjAwMSwgLTUxKSknKTsKKyAgICBzaG91bGRCZVRy
dWUoJ25ldyBwdy5XZWVrKDIwMDAsIDEpLmVxdWFscyhuZXcgcHcuV2VlaygxOTk5LCA1MykpJyk7
CisgICAgCisgICAgc2hvdWxkQmVGYWxzZSgnbmV3IHB3LldlZWsoMjAwMCwgMSkuZXF1YWxzKG5l
dyBwdy5XZWVrKDIwMDAsIDIpKScpOworICAgIHNob3VsZEJlRmFsc2UoJ25ldyBwdy5XZWVrKDIw
MDAsIDEpLmVxdWFscyhuZXcgcHcuV2VlaygyMDAxLCAxKSknKTsKKyAgICBzaG91bGRCZUZhbHNl
KCduZXcgcHcuV2VlaygyMDAwLCAxKS5lcXVhbHMobmV3IHB3LldlZWsoMjAwMSwgMikpJyk7Cisg
ICAgCisgICAgZGVidWcoJ1Rlc3QgV2Vlay5jb3B5Jyk7CisKKyAgICBzaG91bGRCZVRydWUoJ3Zh
ciB3ID0gbmV3IHB3LldlZWsoMjAwMCwgMSk7IHcuY29weSgpICE9PSB3Jyk7CisgICAgc2hvdWxk
QmVUcnVlKCd2YXIgdyA9IG5ldyBwdy5XZWVrKDIwMDAsIDEpOyB3LmNvcHkoKSAhPT0gdy5jb3B5
KCknKTsKKyAgICBzaG91bGRCZVRydWUoJ3ZhciB3ID0gbmV3IHB3LldlZWsoMjAwMCwgMSk7IHcu
Y29weSgpLmVxdWFscyh3KScpOworICAgIHNob3VsZEJlVHJ1ZSgndmFyIHcgPSBuZXcgcHcuV2Vl
aygyMDAwLCAxKTsgdy5jb3B5KCkuZXF1YWxzKHcuY29weSgpKScpOworCisgICAgZGVidWcoJ1Rl
c3QgV2Vlay5wcmV2aW91cycpOworCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcu
V2VlaygyMDAwLCAyKS5wcmV2aW91cygpLnRvU3RyaW5nKCknLCAnMjAwMC1XMDEnKTsKKyAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5XZWVrKDIwMDAsIDIpLnByZXZpb3VzKDEpLnRv
U3RyaW5nKCknLCAnMjAwMC1XMDEnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBw
dy5XZWVrKDIwMDAsIDIpLnByZXZpb3VzKDIpLnRvU3RyaW5nKCknLCAnMTk5OS1XNTInKTsKKyAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5XZWVrKDIwMDAsIDIpLnByZXZpb3VzKDMp
LnRvU3RyaW5nKCknLCAnMTk5OS1XNTEnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25l
dyBwdy5XZWVrKDIwMDAsIDIpLnByZXZpb3VzKDEwMCkudG9TdHJpbmcoKScsICcxOTk4LVcwNycp
OworCisgICAgZGVidWcoJ1Rlc3QgV2Vlay5uZXh0Jyk7CisKKyAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoJ25ldyBwdy5XZWVrKDIwMDAsIDIpLm5leHQoKS50b1N0cmluZygpJywgJzIwMDAtVzAz
Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuV2VlaygyMDAwLCAyKS5uZXh0
KDEpLnRvU3RyaW5nKCknLCAnMjAwMC1XMDMnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
J25ldyBwdy5XZWVrKDIwMDAsIDIpLm5leHQoMikudG9TdHJpbmcoKScsICcyMDAwLVcwNCcpOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3LldlZWsoMjAwMCwgMikubmV4dCgzKS50
b1N0cmluZygpJywgJzIwMDAtVzA1Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcg
cHcuV2VlaygyMDAwLCAyKS5uZXh0KDEwMCkudG9TdHJpbmcoKScsICcyMDAxLVc1MCcpOworCisg
ICAgZGVidWcoJ1Rlc3QgV2Vlay5maXJzdERheScpOworCisgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCduZXcgcHcuV2VlaygyMDAwLCAyKS5maXJzdERheSgpLnRvU3RyaW5nKCknLCAnMjAwMC0w
MS0xMCcpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3LldlZWsoMjAwMCwgNTAp
LmZpcnN0RGF5KCkudG9TdHJpbmcoKScsICcyMDAwLTEyLTExJyk7CisgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCduZXcgcHcuV2VlaygxLCAxKS5maXJzdERheSgpLnRvU3RyaW5nKCknLCAnMDAw
MS0wMS0wMScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3LldlZWsoMSwgNTAp
LmZpcnN0RGF5KCkudG9TdHJpbmcoKScsICcwMDAxLTEyLTEwJyk7CisgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCduZXcgcHcuV2VlaygyMDAwMCwgMSkuZmlyc3REYXkoKS50b1N0cmluZygpJywg
JzIwMDAwLTAxLTAzJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuV2Vlaygy
MDAwMCwgNTApLmZpcnN0RGF5KCkudG9TdHJpbmcoKScsICcyMDAwMC0xMi0xMScpOworCisgICAg
ZGVidWcoJ1Rlc3QgV2Vlay5taWRkbGVEYXknKTsKKworICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygnbmV3IHB3LldlZWsoMjAwMCwgMikubWlkZGxlRGF5KCkudG9TdHJpbmcoKScsICcyMDAwLTAx
LTEzJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuV2VlaygyMDAwLCA1MCku
bWlkZGxlRGF5KCkudG9TdHJpbmcoKScsICcyMDAwLTEyLTE0Jyk7CisgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCduZXcgcHcuV2VlaygxLCAxKS5taWRkbGVEYXkoKS50b1N0cmluZygpJywgJzAw
MDEtMDEtMDQnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5XZWVrKDEsIDUw
KS5taWRkbGVEYXkoKS50b1N0cmluZygpJywgJzAwMDEtMTItMTMnKTsKKyAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ25ldyBwdy5XZWVrKDIwMDAwLCAxKS5taWRkbGVEYXkoKS50b1N0cmluZygp
JywgJzIwMDAwLTAxLTA2Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuV2Vl
aygyMDAwMCwgNTApLm1pZGRsZURheSgpLnRvU3RyaW5nKCknLCAnMjAwMDAtMTItMTQnKTsKKwor
CisgICAgZGVidWcoJ1Rlc3QgV2Vlay5sYXN0RGF5Jyk7CisKKyAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoJ25ldyBwdy5XZWVrKDIwMDAsIDIpLmxhc3REYXkoKS50b1N0cmluZygpJywgJzIwMDAt
MDEtMTYnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5XZWVrKDIwMDAsIDUw
KS5sYXN0RGF5KCkudG9TdHJpbmcoKScsICcyMDAwLTEyLTE3Jyk7CisgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCduZXcgcHcuV2VlaygxLCAxKS5sYXN0RGF5KCkudG9TdHJpbmcoKScsICcwMDAx
LTAxLTA3Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuV2VlaygxLCA1MCku
bGFzdERheSgpLnRvU3RyaW5nKCknLCAnMDAwMS0xMi0xNicpOworICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygnbmV3IHB3LldlZWsoMjAwMDAsIDEpLmxhc3REYXkoKS50b1N0cmluZygpJywgJzIw
MDAwLTAxLTA5Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuV2VlaygyMDAw
MCwgNTApLmxhc3REYXkoKS50b1N0cmluZygpJywgJzIwMDAwLTEyLTE3Jyk7CisKKyAgICBkZWJ1
ZygnVGVzdCBXZWVrLnZhbHVlT2YnKTsKKworICAgIHNob3VsZEJlKCduZXcgcHcuV2VlaygxOTcw
LCAxKS52YWx1ZU9mKCknLCAnLTI1OTIwMDAwMCcpOworICAgIHNob3VsZEJlKCduZXcgcHcuV2Vl
aygxOTcwLCAyKS52YWx1ZU9mKCknLCAnMzQ1NjAwMDAwJyk7CisgICAgc2hvdWxkQmUoJ25ldyBw
dy5XZWVrKDIwMDAsIDEpLnZhbHVlT2YoKScsICc5NDY4NTc2MDAwMDAnKTsKKyAgICBzaG91bGRC
ZSgnbmV3IHB3LldlZWsoMSwgMSkudmFsdWVPZigpJywgJy02MjEzNTU5NjgwMDAwMCcpOworICAg
IHNob3VsZEJlKCduZXcgcHcuV2VlaygyMDAwMCwgMikudmFsdWVPZigpJywgJzU2ODk3MjU5ODQw
MDAwMCcpOworCisgICAgZGVidWcoJ1Rlc3QgV2Vlay50b1N0cmluZycpOworICAgIAorICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3LldlZWsoMjAwMCwgMikudG9TdHJpbmcoKScsICcy
MDAwLVcwMicpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3LldlZWsoMSwgNTAp
LnRvU3RyaW5nKCknLCAnMDAwMS1XNTAnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25l
dyBwdy5XZWVrKDIwMDAwLCAyKS50b1N0cmluZygpJywgJzIwMDAwLVcwMicpOworCisgICAgZGVi
dWcoJ1Rlc3QgV2Vlay5wYXJzZScpOworICAgIAorICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygn
cHcuV2Vlay5wYXJzZSgiMjAwMC1XMDIiKS50b1N0cmluZygpJywgJzIwMDAtVzAyJyk7CisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwdy5XZWVrLnBhcnNlKCIxOTk5LVcxMCIpLnRvU3RyaW5n
KCknLCAnMTk5OS1XMTAnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3B3LldlZWsucGFy
c2UoIjAwMDEtVzIzIikudG9TdHJpbmcoKScsICcwMDAxLVcyMycpOworICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygncHcuV2Vlay5wYXJzZSgiMTIzNDUtVzMyIikudG9TdHJpbmcoKScsICcxMjM0
NS1XMzInKTsKKyAgICAvLyBJbmNvcnJlY3QgbnVtYmVyIG9mIGxlYWRpbmcgemVyb3MKKyAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ3B3LldlZWsucGFyc2UoIjAyMDAwLVcwMiIpLnRvU3RyaW5n
KCknLCAnMjAwMC1XMDInKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3B3LldlZWsucGFy
c2UoIjIwMDAtVzAwMiIpLnRvU3RyaW5nKCknLCAnMjAwMC1XMDInKTsKKyAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ3B3LldlZWsucGFyc2UoIjIwMDAtVzIiKS50b1N0cmluZygpJywgJzIwMDAt
VzAyJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwdy5XZWVrLnBhcnNlKCIxLVcwMiIp
LnRvU3RyaW5nKCknLCAnMDAwMS1XMDInKTsKKyAgICAvLyBJbnZhbGlkCisgICAgc2hvdWxkQmVO
dWxsKCdwdy5XZWVrLnBhcnNlKCIyMDAwLTAyLTAzIiknKTsKKyAgICBzaG91bGRCZU51bGwoJ3B3
LldlZWsucGFyc2UoIjIwMDAtMDIiKScpOworICAgIHNob3VsZEJlTnVsbCgncHcuV2Vlay5wYXJz
ZSgieCIpJyk7CisgICAgc2hvdWxkQmVOdWxsKCdwdy5XZWVrLnBhcnNlKCIiKScpOworfQorCitm
dW5jdGlvbiB0ZXN0TW9udGgoKSB7CisgICAgCisgICAgCisgICAgZGVidWcoJ1Rlc3QgTW9udGgg
Y29uc3RydWN0b3InKTsKKworICAgIHNob3VsZEJlKCduZXcgcHcuTW9udGgoMjAwMCwgMSkueWVh
cicsICcyMDAwJyk7CisgICAgc2hvdWxkQmUoJ25ldyBwdy5Nb250aCgyMDAwLCAxKS5tb250aCcs
ICcxJyk7CisKKyAgICBzaG91bGRCZSgnbmV3IHB3Lk1vbnRoKDIwMDAsIC0xKS55ZWFyJywgJzE5
OTknKTsKKyAgICBzaG91bGRCZSgnbmV3IHB3Lk1vbnRoKDIwMDAsIC0xKS5tb250aCcsICcxMScp
OworCisgICAgc2hvdWxkQmUoJ25ldyBwdy5Nb250aCgtMjAwMCwgMSkueWVhcicsICctMjAwMCcp
OworICAgIHNob3VsZEJlKCduZXcgcHcuTW9udGgoLTIwMDAsIDEpLm1vbnRoJywgJzEnKTsKKwor
ICAgIHNob3VsZEJlKCduZXcgcHcuTW9udGgoMjAwMCwgMTMpLnllYXInLCAnMjAwMScpOworICAg
IHNob3VsZEJlKCduZXcgcHcuTW9udGgoMjAwMCwgMTMpLm1vbnRoJywgJzEnKTsKKworICAgIHNo
b3VsZEJlKCduZXcgcHcuTW9udGgoMjAwMDAwLCAxKS55ZWFyJywgJzIwMDAwMCcpOworICAgIHNo
b3VsZEJlKCduZXcgcHcuTW9udGgoMjAwMDAwLCAxKS5tb250aCcsICcxJyk7CisKKyAgICBkZWJ1
ZygnVGVzdCBNb250aC5lcXVhbHMnKTsKKworICAgIHNob3VsZEJlVHJ1ZSgnbmV3IHB3Lk1vbnRo
KDIwMDAsIDEpLmVxdWFscyhuZXcgcHcuTW9udGgoMjAwMCwgMSkpJyk7CisgICAgc2hvdWxkQmVU
cnVlKCduZXcgcHcuTW9udGgoMjAwMCwgMSkuZXF1YWxzKG5ldyBwdy5Nb250aCgyMDAxLCAtMTEp
KScpOworICAgIHNob3VsZEJlVHJ1ZSgnbmV3IHB3Lk1vbnRoKDIwMDAsIDEpLmVxdWFscyhuZXcg
cHcuTW9udGgoMTk5OSwgMTMpKScpOworICAgIAorICAgIHNob3VsZEJlRmFsc2UoJ25ldyBwdy5N
b250aCgyMDAwLCAxKS5lcXVhbHMobmV3IHB3Lk1vbnRoKDIwMDAsIDIpKScpOworICAgIHNob3Vs
ZEJlRmFsc2UoJ25ldyBwdy5Nb250aCgyMDAwLCAxKS5lcXVhbHMobmV3IHB3Lk1vbnRoKDIwMDEs
IDEpKScpOworICAgIHNob3VsZEJlRmFsc2UoJ25ldyBwdy5Nb250aCgyMDAwLCAxKS5lcXVhbHMo
bmV3IHB3Lk1vbnRoKDIwMDEsIDIpKScpOworICAgIAorICAgIGRlYnVnKCdUZXN0IE1vbnRoLmNv
cHknKTsKKworICAgIHNob3VsZEJlVHJ1ZSgndmFyIHcgPSBuZXcgcHcuTW9udGgoMjAwMCwgMSk7
IHcuY29weSgpICE9PSB3Jyk7CisgICAgc2hvdWxkQmVUcnVlKCd2YXIgdyA9IG5ldyBwdy5Nb250
aCgyMDAwLCAxKTsgdy5jb3B5KCkgIT09IHcuY29weSgpJyk7CisgICAgc2hvdWxkQmVUcnVlKCd2
YXIgdyA9IG5ldyBwdy5Nb250aCgyMDAwLCAxKTsgdy5jb3B5KCkuZXF1YWxzKHcpJyk7CisgICAg
c2hvdWxkQmVUcnVlKCd2YXIgdyA9IG5ldyBwdy5Nb250aCgyMDAwLCAxKTsgdy5jb3B5KCkuZXF1
YWxzKHcuY29weSgpKScpOworCisgICAgZGVidWcoJ1Rlc3QgTW9udGgucHJldmlvdXMnKTsKKwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3Lk1vbnRoKDIwMDAsIDIpLnByZXZpb3Vz
KCkudG9TdHJpbmcoKScsICcyMDAwLTAyJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdu
ZXcgcHcuTW9udGgoMjAwMCwgMikucHJldmlvdXMoMSkudG9TdHJpbmcoKScsICcyMDAwLTAyJyk7
CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuTW9udGgoMjAwMCwgMikucHJldmlv
dXMoMikudG9TdHJpbmcoKScsICcyMDAwLTAxJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCduZXcgcHcuTW9udGgoMjAwMCwgMikucHJldmlvdXMoMykudG9TdHJpbmcoKScsICcxOTk5LTEy
Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuTW9udGgoMjAwMCwgMikucHJl
dmlvdXMoMTAwKS50b1N0cmluZygpJywgJzE5OTEtMTEnKTsKKworICAgIGRlYnVnKCdUZXN0IE1v
bnRoLm5leHQnKTsKKworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3Lk1vbnRoKDIw
MDAsIDIpLm5leHQoKS50b1N0cmluZygpJywgJzIwMDAtMDQnKTsKKyAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoJ25ldyBwdy5Nb250aCgyMDAwLCAyKS5uZXh0KDEpLnRvU3RyaW5nKCknLCAnMjAw
MC0wNCcpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3Lk1vbnRoKDIwMDAsIDIp
Lm5leHQoMikudG9TdHJpbmcoKScsICcyMDAwLTA1Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCduZXcgcHcuTW9udGgoMjAwMCwgMikubmV4dCgzKS50b1N0cmluZygpJywgJzIwMDAtMDYn
KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5Nb250aCgyMDAwLCAyKS5uZXh0
KDEwMCkudG9TdHJpbmcoKScsICcyMDA4LTA3Jyk7CisKKyAgICBkZWJ1ZygnVGVzdCBNb250aC5m
aXJzdERheScpOworCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuTW9udGgoMjAw
MCwgMSkuZmlyc3REYXkoKS50b1N0cmluZygpJywgJzIwMDAtMDItMDEnKTsKKyAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5Nb250aCgyMDAwLCAxMSkuZmlyc3REYXkoKS50b1N0cmlu
ZygpJywgJzIwMDAtMTItMDEnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5N
b250aCgxLCAwKS5maXJzdERheSgpLnRvU3RyaW5nKCknLCAnMDAwMS0wMS0wMScpOworICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3Lk1vbnRoKDEsIDEpLmZpcnN0RGF5KCkudG9TdHJp
bmcoKScsICcwMDAxLTAyLTAxJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcu
TW9udGgoMSwgMTEpLmZpcnN0RGF5KCkudG9TdHJpbmcoKScsICcwMDAxLTEyLTAxJyk7CisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuTW9udGgoMjAwMDAsIDApLmZpcnN0RGF5KCku
dG9TdHJpbmcoKScsICcyMDAwMC0wMS0wMScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygn
bmV3IHB3Lk1vbnRoKDIwMDAwLCAxKS5maXJzdERheSgpLnRvU3RyaW5nKCknLCAnMjAwMDAtMDIt
MDEnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5Nb250aCgyMDAwMCwgMTEp
LmZpcnN0RGF5KCkudG9TdHJpbmcoKScsICcyMDAwMC0xMi0wMScpOworCisgICAgZGVidWcoJ1Rl
c3QgTW9udGgubWlkZGxlRGF5Jyk7CisKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBw
dy5Nb250aCgyMDAwLCAxKS5taWRkbGVEYXkoKS50b1N0cmluZygpJywgJzIwMDAtMDItMTUnKTsK
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5Nb250aCgyMDAwLCAxMSkubWlkZGxl
RGF5KCkudG9TdHJpbmcoKScsICcyMDAwLTEyLTE1Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCduZXcgcHcuTW9udGgoMSwgMCkubWlkZGxlRGF5KCkudG9TdHJpbmcoKScsICcwMDAxLTAx
LTE1Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuTW9udGgoMSwgMSkubWlk
ZGxlRGF5KCkudG9TdHJpbmcoKScsICcwMDAxLTAyLTE1Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCduZXcgcHcuTW9udGgoMSwgMTEpLm1pZGRsZURheSgpLnRvU3RyaW5nKCknLCAnMDAw
MS0xMi0xNScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3Lk1vbnRoKDIwMDAw
LCAwKS5taWRkbGVEYXkoKS50b1N0cmluZygpJywgJzIwMDAwLTAxLTE1Jyk7CisgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuTW9udGgoMjAwMDAsIDEpLm1pZGRsZURheSgpLnRvU3Ry
aW5nKCknLCAnMjAwMDAtMDItMTUnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBw
dy5Nb250aCgyMDAwMCwgMTEpLm1pZGRsZURheSgpLnRvU3RyaW5nKCknLCAnMjAwMDAtMTItMTUn
KTsKKworCisgICAgZGVidWcoJ1Rlc3QgTW9udGgubGFzdERheScpOworCisgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCduZXcgcHcuTW9udGgoMjAwMCwgMSkubGFzdERheSgpLnRvU3RyaW5nKCkn
LCAnMjAwMC0wMi0yOScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3Lk1vbnRo
KDIwMDAsIDExKS5sYXN0RGF5KCkudG9TdHJpbmcoKScsICcyMDAwLTEyLTMxJyk7CisgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuTW9udGgoMSwgMCkubGFzdERheSgpLnRvU3RyaW5n
KCknLCAnMDAwMS0wMS0zMScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3Lk1v
bnRoKDEsIDEpLmxhc3REYXkoKS50b1N0cmluZygpJywgJzAwMDEtMDItMjgnKTsKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5Nb250aCgxLCAxMSkubGFzdERheSgpLnRvU3RyaW5n
KCknLCAnMDAwMS0xMi0zMScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3Lk1v
bnRoKDIwMDAwLCAwKS5sYXN0RGF5KCkudG9TdHJpbmcoKScsICcyMDAwMC0wMS0zMScpOworICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3Lk1vbnRoKDIwMDAwLCAxKS5sYXN0RGF5KCku
dG9TdHJpbmcoKScsICcyMDAwMC0wMi0yOScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygn
bmV3IHB3Lk1vbnRoKDIwMDAwLCAxMSkubGFzdERheSgpLnRvU3RyaW5nKCknLCAnMjAwMDAtMTIt
MzEnKTsKKworICAgIGRlYnVnKCdUZXN0IE1vbnRoLnZhbHVlT2YnKTsKKworICAgIHNob3VsZEJl
KCduZXcgcHcuTW9udGgoMTk3MCwgMCkudmFsdWVPZigpJywgJzAnKTsKKyAgICBzaG91bGRCZSgn
bmV3IHB3Lk1vbnRoKDE5NzAsIDEpLnZhbHVlT2YoKScsICcxJyk7CisgICAgc2hvdWxkQmUoJ25l
dyBwdy5Nb250aCgyMDAwLCAwKS52YWx1ZU9mKCknLCAnMzYwJyk7CisgICAgc2hvdWxkQmUoJ25l
dyBwdy5Nb250aCgxLCAwKS52YWx1ZU9mKCknLCAnLTIzNjI4Jyk7CisgICAgc2hvdWxkQmUoJ25l
dyBwdy5Nb250aCgyMDAwMCwgMTEpLnZhbHVlT2YoKScsICcyMTYzNzEnKTsKKworICAgIGRlYnVn
KCdUZXN0IE1vbnRoLnRvU3RyaW5nJyk7CisgICAgCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCduZXcgcHcuTW9udGgoMjAwMCwgMCkudG9TdHJpbmcoKScsICcyMDAwLTAxJyk7CisgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuTW9udGgoMSwgMTEpLnRvU3RyaW5nKCknLCAnMDAw
MS0xMicpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3Lk1vbnRoKDIwMDAwLCA1
KS50b1N0cmluZygpJywgJzIwMDAwLTA2Jyk7CisKKyAgICBkZWJ1ZygnVGVzdCBNb250aC5wYXJz
ZScpOworICAgIAorICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncHcuTW9udGgucGFyc2UoIjIw
MDAtMDEiKS50b1N0cmluZygpJywgJzIwMDAtMDEnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ3B3Lk1vbnRoLnBhcnNlKCIxOTk5LTEwIikudG9TdHJpbmcoKScsICcxOTk5LTEwJyk7Cisg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwdy5Nb250aC5wYXJzZSgiMDAwMS0xMSIpLnRvU3Ry
aW5nKCknLCAnMDAwMS0xMScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncHcuTW9udGgu
cGFyc2UoIjEyMzQ1LTAzIikudG9TdHJpbmcoKScsICcxMjM0NS0wMycpOworICAgIC8vIEluY29y
cmVjdCBudW1iZXIgb2YgbGVhZGluZyB6ZXJvcworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygn
cHcuTW9udGgucGFyc2UoIjAyMDAwLTAyIikudG9TdHJpbmcoKScsICcyMDAwLTAyJyk7CisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwdy5Nb250aC5wYXJzZSgiMjAwMC0wMDIiKS50b1N0cmlu
ZygpJywgJzIwMDAtMDInKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3B3Lk1vbnRoLnBh
cnNlKCIyMDAwLTIiKS50b1N0cmluZygpJywgJzIwMDAtMDInKTsKKyAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoJ3B3Lk1vbnRoLnBhcnNlKCIxLTAyIikudG9TdHJpbmcoKScsICcwMDAxLTAyJyk7
CisgICAgLy8gSW52YWxpZAorICAgIHNob3VsZEJlTnVsbCgncHcuTW9udGgucGFyc2UoIjIwMDAt
MDItMDMiKScpOworICAgIHNob3VsZEJlTnVsbCgncHcuTW9udGgucGFyc2UoIjIwMDAtVzAyIikn
KTsKKyAgICBzaG91bGRCZU51bGwoJ3B3Lk1vbnRoLnBhcnNlKCJ4IiknKTsKKyAgICBzaG91bGRC
ZU51bGwoJ3B3Lk1vbnRoLnBhcnNlKCIiKScpOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189667</attachid>
            <date>2013-02-21 20:32:59 -0800</date>
            <delta_ts>2013-02-22 03:34:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110454-20130222132918.patch</filename>
            <type>text/plain</type>
            <size>52856</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNjg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjg5NmNlNDNiODI0NmIy
YTE5MDI0NDBiMzhlZWVkMjE2MzA1NWRjYS4uODc0MjQ3Y2IzYjc1OTMzZjRiMzAxNjNmMDc2MTJh
NzAxMTg4MTg1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEzLTAyLTIyICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBtZXRob2RzIHRv
IGRhdGUgdHlwZXMgZm9yIG5ldyBjYWxlbmRhciBwaWNrZXIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDQ1NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGluZyBzb21lIG1ldGhvZHMgdG8gZGF0ZSB0
eXBlcyBhcyBwYXJ0IG9mIHRoZSBjYWxlbmRhciBwaWNrZXIgcmVkZXNpZ24gKEJ1ZyAxMDk0Mzkp
LgorCisgICAgICAgIFRlc3Q6IHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZm9ybXMvY2FsZW5kYXIt
cGlja2VyL2NhbGVuZGFyLXBpY2tlci1kYXRlLXR5cGVzLmh0bWwKKworICAgICAgICAqIFJlc291
cmNlcy9wYWdlcG9wdXBzL2NhbGVuZGFyUGlja2VyLmpzOgorICAgICAgICAoY3JlYXRlVVRDRGF0
ZSk6CisgICAgICAgIChEYXRlVHlwZSk6IEJhc2UgY2xhc3MgZm9yIERheSwgV2VlayBhbmQgTW9u
dGguCisgICAgICAgIChEYXkpOiBTaW1wbGlmaWVkIGNvbnN0cnVjdG9yIHRvIG9ubHkgYWNjZXB0
IHllYXIsIG1vbnRoLCBkYXRlLgorICAgICAgICAoRGF5LmNyZWF0ZUZyb21WYWx1ZSk6IENyZWF0
ZXMgYSBuZXcgRGF5IGZyb20gYSB2YWx1ZS4KKyAgICAgICAgKERheS5jcmVhdGVGcm9tRGF0ZSk6
IFRocm93IGFuIGVycm9yIGlmIHRoZSBnaXZlbiBkYXRlIGlzIGludmFsaWQuCisgICAgICAgIChE
YXkuY3JlYXRlRnJvbURheSk6CisgICAgICAgIChEYXkucHJvdG90eXBlLmVxdWFscyk6IEFjY2Vw
dCBub24gRGF5IG9iamVjdHMuCisgICAgICAgIChEYXkucHJvdG90eXBlLnByZXZpb3VzKTogTW9k
aWZpZWQgdG8gdGFrZSBhbiBvZmZzZXQgdmFsdWUuCisgICAgICAgIChEYXkucHJvdG90eXBlLm5l
eHQpOiBEaXR0by4KKyAgICAgICAgKERheS5wcm90b3R5cGUuZmlyc3REYXkpOiBSZXR1cm5zIHRo
ZSBmaXJzdCBkYXkgaW4gdGhlIHJhbmdlLiBGb3IgRGF5J3MgY2FzZSwgcmV0dXJucyBpdHNlbGYu
CisgICAgICAgIChEYXkucHJvdG90eXBlLm1pZGRsZURheSk6IFJldHVybnMgdGhlIG1pZGRsZSBk
YXkgaW4gdGhlIHJhbmdlLiBGb3IgRGF5J3MgY2FzZSwgcmV0dXJucyBpdHNlbGYuCisgICAgICAg
IChEYXkucHJvdG90eXBlLmxhc3REYXkpOiBSZXR1cm5zIHRoZSBtaWRkbGUgZGF5IGluIHRoZSBy
YW5nZS4gRm9yIERheSdzIGNhc2UsIHJldHVybnMgaXRzZWxmLgorICAgICAgICAoRGF5LnByb3Rv
dHlwZS52YWx1ZU9mKToKKyAgICAgICAgKERheS5wcm90b3R5cGUud2Vla0RheSk6IFJldHVybnMg
dGhlIHdlZWsgZGF5LgorICAgICAgICAoV2Vlayk6IFNpbXBsaWZpZWQgY29uc3RydWN0b3IgdG8g
b25seSBhY2NlcHQgeWVhciwgbW9udGgsIGRhdGUuCisgICAgICAgIChXZWVrLmNyZWF0ZUZyb21W
YWx1ZSk6CisgICAgICAgIChXZWVrLmNyZWF0ZUZyb21EYXRlKToKKyAgICAgICAgKFdlZWsuY3Jl
YXRlRnJvbURheSk6CisgICAgICAgIChXZWVrLndlZWtPbmVTdGFydERhdGVGb3JZZWFyKToKKyAg
ICAgICAgKFdlZWsud2Vla09uZVN0YXJ0RGF5Rm9yWWVhcik6CisgICAgICAgIChXZWVrLl9udW1i
ZXJPZldlZWtzU2luY2VEYXRlKToKKyAgICAgICAgKFdlZWsucHJvdG90eXBlLmVxdWFscyk6Cisg
ICAgICAgIChXZWVrLnByb3RvdHlwZS5wcmV2aW91cyk6CisgICAgICAgIChXZWVrLnByb3RvdHlw
ZS5uZXh0KToKKyAgICAgICAgKFdlZWsucHJvdG90eXBlLmZpcnN0RGF5KTogUmV0dXJucyB0aGUg
Zmlyc3QgZGF5IGluIHRoZSB3ZWVrLgorICAgICAgICAoV2Vlay5wcm90b3R5cGUubWlkZGxlRGF5
KTogUmV0dXJucyB0aGUgdGhlIGRheSBmb3IgVGh1cnNkYXkuCisgICAgICAgIChXZWVrLnByb3Rv
dHlwZS5sYXN0RGF5KTogUmV0dXJucyB0aGUgbGFzdCBkYXkgaW4gdGhlIHdlZWsuCisgICAgICAg
IChXZWVrLnByb3RvdHlwZS52YWx1ZU9mKToKKyAgICAgICAgKE1vbnRoKToKKyAgICAgICAgKE1v
bnRoLmNyZWF0ZUZyb21WYWx1ZSk6CisgICAgICAgIChNb250aC5jcmVhdGVGcm9tRGF0ZSk6Cisg
ICAgICAgIChNb250aC5jcmVhdGVGcm9tRGF5KToKKyAgICAgICAgKE1vbnRoLnByb3RvdHlwZS5j
b250YWluc0RheSk6CisgICAgICAgIChNb250aC5wcm90b3R5cGUuZXF1YWxzKToKKyAgICAgICAg
KE1vbnRoLnByb3RvdHlwZS5wcmV2aW91cyk6CisgICAgICAgIChNb250aC5wcm90b3R5cGUubmV4
dCk6CisgICAgICAgIChNb250aC5wcm90b3R5cGUuZmlyc3REYXkpOiBSZXR1cm5zIHRoZSBmaXJz
dCBkYXkgaW4gdGhlIG1vbnRoLgorICAgICAgICAoTW9udGgucHJvdG90eXBlLm1pZGRsZURheSk6
IFJldHVybnMgdGhlIG1pZGRsZSBkYXkgaW4gdGhlIG1vbnRoLgorICAgICAgICAoTW9udGgucHJv
dG90eXBlLmxhc3REYXkpOiBSZXR1cm5zIHRoZSBsYXN0IGRheSBpbiB0aGUgbW9udGguCisgICAg
ICAgIChNb250aC5wcm90b3R5cGUudmFsdWVPZik6CisgICAgICAgIChNb250aC5wcm90b3R5cGUu
dG9Mb2NhbGVTdHJpbmcpOiBNb3ZlZCBsb2NhdGlvbi4KKyAgICAgICAgKE1vbnRoLnByb3RvdHlw
ZS50b1Nob3J0TG9jYWxlU3RyaW5nKTogUmV0dXJucyB0aGUgbW9udGggc3RyaW5nIGluIHNob3J0
IGZvcm1hdC4KKyAgICAgICAgKENhbGVuZGFyUGlja2VyKTogVXNlIGNyZWF0ZUZyb21WYWx1ZS4K
KyAgICAgICAgKFllYXJNb250aENvbnRyb2xsZXIucHJvdG90eXBlLnNldE1vbnRoKTogRGl0dG8u
CisgICAgICAgIChZZWFyTW9udGhDb250cm9sbGVyLnByb3RvdHlwZS5tb3ZlUmVsYXRpdmVseSk6
IERpdHRvLgorCiAyMDEzLTAyLTIxICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAog
ICAgICAgICBGb2xsb3d1cCBjb21taXQgZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMTA1NDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9w
YWdlcG9wdXBzL2NhbGVuZGFyUGlja2VyLmpzIGIvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3Bh
Z2Vwb3B1cHMvY2FsZW5kYXJQaWNrZXIuanMKaW5kZXggYzEyMjk1Y2YzMWJiODlmZGFlZDdiOGE1
MTc3ODVkZmQ2MjY4MGY5Ny4uY2UxNTNlYWIzZjg3NDU0ZTdlM2JhYzczYmNlMTE4ZGE2OTkwNGM1
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvY2FsZW5k
YXJQaWNrZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvY2Fs
ZW5kYXJQaWNrZXIuanMKQEAgLTExMiw2ICsxMTIsMTkgQEAgZnVuY3Rpb24gbG9jYWxpemVOdW1i
ZXIobnVtYmVyKSB7CiAKIC8qKgogICogQGNvbnN0CisgKi8KK3ZhciBXZWVrRGF5ID0geworICAg
IFN1bmRheTogMCwKKyAgICBNb25kYXk6IDEsCisgICAgVHVlc2RheTogMiwKKyAgICBXZWRuZXNk
YXk6IDMsCisgICAgVGh1cnNkYXk6IDQsCisgICAgRnJpZGF5OiA1LAorICAgIFNhdHVyZGF5OiA2
Cit9OworCisvKioKKyAqIEBjb25zdAogICogQHR5cGUge251bWJlcn0KICAqLwogdmFyIEltcGVy
aWFsRXJhTGltaXQgPSAyMDg3OwpAQCAtMTQzLDI0ICsxNTYsMTMgQEAgZnVuY3Rpb24gZm9ybWF0
SmFwYW5lc2VJbXBlcmlhbEVyYSh5ZWFyLCBtb250aCkgewogICAgIHJldHVybiAiIjsKIH0KIAot
LyoqCi0gKiBAcmV0dXJuIHshc3RyaW5nfQotICovCi1Nb250aC5wcm90b3R5cGUudG9Mb2NhbGVT
dHJpbmcgPSBmdW5jdGlvbigpIHsKLSAgICBpZiAoaXNOYU4odGhpcy55ZWFyKSB8fCBpc05hTih0
aGlzLnllYXIpKQotICAgICAgICByZXR1cm4gIkludmFsaWQgTW9udGgiOwotICAgIGlmIChnZXRM
YW5ndWFnZSgpID09ICJqYSIpCi0gICAgICAgIHJldHVybiAiIiArIHRoaXMueWVhciArICLlubQi
ICsgZm9ybWF0SmFwYW5lc2VJbXBlcmlhbEVyYSh0aGlzLnllYXIsIHRoaXMubW9udGgpICsgIiAi
ICsgKHRoaXMubW9udGggKyAxKSArICLmnIgiOwotICAgIHJldHVybiB3aW5kb3cucGFnZVBvcHVw
Q29udHJvbGxlci5mb3JtYXRNb250aCh0aGlzLnllYXIsIHRoaXMubW9udGgpOwotfTsKLQogZnVu
Y3Rpb24gY3JlYXRlVVRDRGF0ZSh5ZWFyLCBtb250aCwgZGF0ZSkgewogICAgIHZhciBuZXdEYXRl
ID0gbmV3IERhdGUoMCk7CiAgICAgbmV3RGF0ZS5zZXRVVENGdWxsWWVhcih5ZWFyKTsKICAgICBu
ZXdEYXRlLnNldFVUQ01vbnRoKG1vbnRoKTsKICAgICBuZXdEYXRlLnNldFVUQ0RhdGUoZGF0ZSk7
CiAgICAgcmV0dXJuIG5ld0RhdGU7Ci19OworfQogCiAvKioKICAqIEBwYXJhbSB7c3RyaW5nfSBk
YXRlU3RyaW5nCkBAIC0xNzcsMjkgKzE3OSw3MCBAQCBmdW5jdGlvbiBwYXJzZURhdGVTdHJpbmco
ZGF0ZVN0cmluZykgewogfQogCiAvKioKKyAqIEBjb25zdAorICogQHR5cGUge251bWJlcn0KKyAq
LwordmFyIERheXNQZXJXZWVrID0gNzsKKworLyoqCisgKiBAY29uc3QKKyAqIEB0eXBlIHtudW1i
ZXJ9CisgKi8KK3ZhciBNb250aHNQZXJZZWFyID0gMTI7CisKKy8qKgorICogQGNvbnN0CisgKiBA
dHlwZSB7bnVtYmVyfQorICovCit2YXIgTWlsbGlzZWNvbmRzUGVyRGF5ID0gMjQgKiA2MCAqIDYw
ICogMTAwMDsKKworLyoqCisgKiBAY29uc3QKKyAqIEB0eXBlIHtudW1iZXJ9CisgKi8KK3ZhciBN
aWxsaXNlY29uZHNQZXJXZWVrID0gRGF5c1BlcldlZWsgKiBNaWxsaXNlY29uZHNQZXJEYXk7CisK
Ky8qKgorICogQGNvbnN0cnVjdG9yCisgKi8KK2Z1bmN0aW9uIERhdGVUeXBlKCkgeworfQorCisv
KioKICAqIEBjb25zdHJ1Y3RvcgotICogQHBhcmFtIHshbnVtYmVyfERheX0gdmFsdWVPckRheU9y
WWVhcgotICogQHBhcmFtIHshbnVtYmVyPX0gbW9udGgKLSAqIEBwYXJhbSB7IW51bWJlcj19IGRh
dGUKLSAqLwotZnVuY3Rpb24gRGF5KHZhbHVlT3JEYXlPclllYXIsIG1vbnRoLCBkYXRlKSB7Ci0g
ICAgdmFyIGRhdGVPYmplY3Q7Ci0gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMykKLSAgICAg
ICAgZGF0ZU9iamVjdCA9IGNyZWF0ZVVUQ0RhdGUodmFsdWVPckRheU9yWWVhciwgbW9udGgsIGRh
dGUpOwotICAgIGVsc2UgaWYgKHZhbHVlT3JEYXlPclllYXIgaW5zdGFuY2VvZiBEYXkpCi0gICAg
ICAgIGRhdGVPYmplY3QgPSBjcmVhdGVVVENEYXRlKHZhbHVlT3JEYXlPclllYXIueWVhciwgdmFs
dWVPckRheU9yWWVhci5tb250aCwgdmFsdWVPckRheU9yWWVhci5kYXRlKTsKLSAgICBlbHNlCi0g
ICAgICAgIGRhdGVPYmplY3QgPSBuZXcgRGF0ZSh2YWx1ZU9yRGF5T3JZZWFyKTsKLSAgICB0aGlz
LnllYXIgPSBkYXRlT2JqZWN0LmdldFVUQ0Z1bGxZZWFyKCk7ICAgIAorICogQGV4dGVuZHMgRGF0
ZVR5cGUKKyAqIEBwYXJhbSB7IW51bWJlcn0geWVhcgorICogQHBhcmFtIHshbnVtYmVyfSBtb250
aAorICogQHBhcmFtIHshbnVtYmVyfSBkYXRlCisgKi8KK2Z1bmN0aW9uIERheSh5ZWFyLCBtb250
aCwgZGF0ZSkgeworICAgIHZhciBkYXRlT2JqZWN0ID0gY3JlYXRlVVRDRGF0ZSh5ZWFyLCBtb250
aCwgZGF0ZSk7CisgICAgaWYgKGlzTmFOKGRhdGVPYmplY3QudmFsdWVPZigpKSkKKyAgICAgICAg
dGhyb3cgIkludmFsaWQgZGF0ZSI7CisgICAgLyoqCisgICAgICogQHR5cGUge251bWJlcn0KKyAg
ICAgKiBAY29uc3QKKyAgICAgKi8KKyAgICB0aGlzLnllYXIgPSBkYXRlT2JqZWN0LmdldFVUQ0Z1
bGxZZWFyKCk7ICAgCisgICAgIC8qKgorICAgICAqIEB0eXBlIHtudW1iZXJ9CisgICAgICogQGNv
bnN0CisgICAgICovICAKICAgICB0aGlzLm1vbnRoID0gZGF0ZU9iamVjdC5nZXRVVENNb250aCgp
OworICAgIC8qKgorICAgICAqIEB0eXBlIHtudW1iZXJ9CisgICAgICogQGNvbnN0CisgICAgICov
CiAgICAgdGhpcy5kYXRlID0gZGF0ZU9iamVjdC5nZXRVVENEYXRlKCk7CiB9OwogCitEYXkucHJv
dG90eXBlID0gT2JqZWN0LmNyZWF0ZShEYXRlVHlwZS5wcm90b3R5cGUpOworCiBEYXkuSVNPU3Ry
aW5nUmVnRXhwID0gL14oXGQrKS0oXGQrKS0oXGQrKS87CiAKIC8qKgogICogQHBhcmFtIHshc3Ry
aW5nfSBzdHIKLSAqIEByZXR1cm4gez9Nb250aH0KKyAqIEByZXR1cm4gez9EYXl9CiAgKi8KIERh
eS5wYXJzZSA9IGZ1bmN0aW9uKHN0cikgewogICAgIHZhciBtYXRjaCA9IERheS5JU09TdHJpbmdS
ZWdFeHAuZXhlYyhzdHIpOwpAQCAtMjEyLDE0ICsyNTUsMzIgQEAgRGF5LnBhcnNlID0gZnVuY3Rp
b24oc3RyKSB7CiB9OwogCiAvKioKKyAqIEBwYXJhbSB7IW51bWJlcn0gdmFsdWUKKyAqIEByZXR1
cm4geyFEYXl9CisgKi8KK0RheS5jcmVhdGVGcm9tVmFsdWUgPSBmdW5jdGlvbihtaWxsaXNlY29u
ZHNTaW5jZUVwb2NoKSB7CisgICAgcmV0dXJuIERheS5jcmVhdGVGcm9tRGF0ZShuZXcgRGF0ZSht
aWxsaXNlY29uZHNTaW5jZUVwb2NoKSkKK307CisKKy8qKgogICogQHBhcmFtIHshRGF0ZX0gZGF0
ZQogICogQHJldHVybiB7IURheX0KICAqLwogRGF5LmNyZWF0ZUZyb21EYXRlID0gZnVuY3Rpb24o
ZGF0ZSkgeworICAgIGlmIChpc05hTihkYXRlLnZhbHVlT2YoKSkpCisgICAgICAgIHRocm93ICJJ
bnZhbGlkIGRhdGUiOwogICAgIHJldHVybiBuZXcgRGF5KGRhdGUuZ2V0VVRDRnVsbFllYXIoKSwg
ZGF0ZS5nZXRVVENNb250aCgpLCBkYXRlLmdldFVUQ0RhdGUoKSk7CiB9OwogCiAvKioKKyAqIEBw
YXJhbSB7IURheX0gZGF5CisgKiBAcmV0dXJuIHshRGF5fQorICovCitEYXkuY3JlYXRlRnJvbURh
eSA9IGZ1bmN0aW9uKGRheSkgeworICAgIHJldHVybiBkYXk7Cit9OworCisvKioKICAqIEByZXR1
cm4geyFEYXl9CiAgKi8KIERheS5jcmVhdGVGcm9tVG9kYXkgPSBmdW5jdGlvbigpIHsKQEAgLTIy
OCwyNSArMjg5LDMxIEBAIERheS5jcmVhdGVGcm9tVG9kYXkgPSBmdW5jdGlvbigpIHsKIH07CiAK
IC8qKgotICogQHBhcmFtIHshRGF5fSBvdGhlcgotICogQHJldHVybiB7IWJvb2x9CisgKiBAcGFy
YW0geyFEYXRlVHlwZX0gb3RoZXIKKyAqIEByZXR1cm4geyFib29sZWFufQogICovCiBEYXkucHJv
dG90eXBlLmVxdWFscyA9IGZ1bmN0aW9uKG90aGVyKSB7Ci0gICAgcmV0dXJuIHRoaXMueWVhciA9
PT0gb3RoZXIueWVhciAmJiB0aGlzLm1vbnRoID09PSBvdGhlci5tb250aCAmJiB0aGlzLmRhdGUg
PT09IG90aGVyLmRhdGU7CisgICAgcmV0dXJuIG90aGVyIGluc3RhbmNlb2YgRGF5ICYmIHRoaXMu
eWVhciA9PT0gb3RoZXIueWVhciAmJiB0aGlzLm1vbnRoID09PSBvdGhlci5tb250aCAmJiB0aGlz
LmRhdGUgPT09IG90aGVyLmRhdGU7CiB9OwogCiAvKioKKyAqIEBwYXJhbSB7IW51bWJlcj19IG9m
ZnNldAogICogQHJldHVybiB7IURheX0KICAqLwotRGF5LnByb3RvdHlwZS5wcmV2aW91cyA9IGZ1
bmN0aW9uKCkgewotICAgIHJldHVybiBuZXcgRGF5KHRoaXMueWVhciwgdGhpcy5tb250aCwgdGhp
cy5kYXRlIC0gMSk7CitEYXkucHJvdG90eXBlLnByZXZpb3VzID0gZnVuY3Rpb24ob2Zmc2V0KSB7
CisgICAgaWYgKHR5cGVvZiBvZmZzZXQgPT09ICJ1bmRlZmluZWQiKQorICAgICAgICBvZmZzZXQg
PSAxOworICAgIHJldHVybiBuZXcgRGF5KHRoaXMueWVhciwgdGhpcy5tb250aCwgdGhpcy5kYXRl
IC0gb2Zmc2V0KTsKIH07CiAKIC8qKgorICogQHBhcmFtIHshbnVtYmVyPX0gb2Zmc2V0CiAgKiBA
cmV0dXJuIHshRGF5fQogICovCi1EYXkucHJvdG90eXBlLm5leHQgPSBmdW5jdGlvbigpIHsKLSAg
ICByZXR1cm4gbmV3IERheSh0aGlzLnllYXIsIHRoaXMubW9udGgsIHRoaXMuZGF0ZSArIDEpOwor
RGF5LnByb3RvdHlwZS5uZXh0ID0gZnVuY3Rpb24ob2Zmc2V0KSB7CisgaWYgKHR5cGVvZiBvZmZz
ZXQgPT09ICJ1bmRlZmluZWQiKQorICAgICBvZmZzZXQgPSAxOworICAgIHJldHVybiBuZXcgRGF5
KHRoaXMueWVhciwgdGhpcy5tb250aCwgdGhpcy5kYXRlICsgb2Zmc2V0KTsKIH07CiAKIC8qKgpA
QCAtMjY0LDEwICszMzEsMzggQEAgRGF5LnByb3RvdHlwZS5lbmREYXRlID0gZnVuY3Rpb24oKSB7
CiB9OwogCiAvKioKKyAqIEByZXR1cm4geyFEYXl9CisgKi8KK0RheS5wcm90b3R5cGUuZmlyc3RE
YXkgPSBmdW5jdGlvbigpIHsKKyAgICByZXR1cm4gdGhpczsKK307CisKKy8qKgorICogQHJldHVy
biB7IURheX0KKyAqLworRGF5LnByb3RvdHlwZS5taWRkbGVEYXkgPSBmdW5jdGlvbigpIHsKKyAg
ICByZXR1cm4gdGhpczsKK307CisKKy8qKgorICogQHJldHVybiB7IURheX0KKyAqLworRGF5LnBy
b3RvdHlwZS5sYXN0RGF5ID0gZnVuY3Rpb24oKSB7CisgICAgcmV0dXJuIHRoaXM7Cit9OworCisv
KioKICAqIEByZXR1cm4geyFudW1iZXJ9CiAgKi8KIERheS5wcm90b3R5cGUudmFsdWVPZiA9IGZ1
bmN0aW9uKCkgewotICAgIHJldHVybiB0aGlzLnN0YXJ0RGF0ZSgpLmdldFRpbWUoKTsKKyAgICBy
ZXR1cm4gY3JlYXRlVVRDRGF0ZSh0aGlzLnllYXIsIHRoaXMubW9udGgsIHRoaXMuZGF0ZSkuZ2V0
VGltZSgpOworfTsKKworLyoqCisgKiBAcmV0dXJuIHshV2Vla0RheX0KKyAqLworRGF5LnByb3Rv
dHlwZS53ZWVrRGF5ID0gZnVuY3Rpb24oKSB7CisgICAgcmV0dXJuIGNyZWF0ZVVUQ0RhdGUodGhp
cy55ZWFyLCB0aGlzLm1vbnRoLCB0aGlzLmRhdGUpLmdldFVUQ0RheSgpOwogfTsKIAogLyoqCkBA
IC0yODEsNDYgKzM3Niw1MCBAQCBEYXkucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7
CiB9OwogCiAvLyBTZWUgV2ViQ29yZS9wbGF0Zm9ybS9EYXRlQ29tcG9uZW50cy5oLgotRGF5Lk1p
bmltdW0gPSBuZXcgRGF5KC02MjEzNTU5NjgwMDAwMC4wKTsKLURheS5NYXhpbXVtID0gbmV3IERh
eSg4NjQwMDAwMDAwMDAwMDAwLjApOworRGF5Lk1pbmltdW0gPSBEYXkuY3JlYXRlRnJvbVZhbHVl
KC02MjEzNTU5NjgwMDAwMC4wKTsKK0RheS5NYXhpbXVtID0gRGF5LmNyZWF0ZUZyb21WYWx1ZSg4
NjQwMDAwMDAwMDAwMDAwLjApOworCiAvLyBTZWUgV2ViQ29yZS9odG1sL0RheUlucHV0VHlwZS5j
cHAuCiBEYXkuRGVmYXVsdFN0ZXAgPSA4NjQwMDAwMDsKIERheS5EZWZhdWx0U3RlcEJhc2UgPSAw
OwogCiAvKioKICAqIEBjb25zdHJ1Y3RvcgotICogQHBhcmFtIHshbnVtYmVyfFdlZWt9IHZhbHVl
T3JXZWVrT3JZZWFyCi0gKiBAcGFyYW0geyFudW1iZXI9fSB3ZWVrCi0gKi8KLWZ1bmN0aW9uIFdl
ZWsodmFsdWVPcldlZWtPclllYXIsIHdlZWspIHsKLSAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9
PT0gMikgewotICAgICAgICB0aGlzLnllYXIgPSB2YWx1ZU9yV2Vla09yWWVhcjsKLSAgICAgICAg
dGhpcy53ZWVrID0gd2VlazsKLSAgICAgICAgLy8gTnVtYmVyIG9mIHllYXJzIHBlciB5ZWFyIGlz
IGVpdGhlciA1MiBvciA1My4KLSAgICAgICAgaWYgKHRoaXMud2VlayA8IDEgfHwgKHRoaXMud2Vl
ayA+IDUyICYmIHRoaXMud2VlayA+IFdlZWsubnVtYmVyT2ZXZWVrc0luWWVhcih0aGlzLnllYXIp
KSkgewotICAgICAgICAgICAgdmFyIG5vcm1hbGl6ZWRXZWVrID0gV2Vlay5jcmVhdGVGcm9tRGF0
ZSh0aGlzLnN0YXJ0RGF0ZSgpKTsKLSAgICAgICAgICAgIHRoaXMueWVhciA9IG5vcm1hbGl6ZWRX
ZWVrLnllYXI7Ci0gICAgICAgICAgICB0aGlzLndlZWsgPSBub3JtYWxpemVkV2Vlay53ZWVrOwot
ICAgICAgICB9Ci0gICAgfSBlbHNlIGlmICh2YWx1ZU9yV2Vla09yWWVhciBpbnN0YW5jZW9mIFdl
ZWspIHsKLSAgICAgICAgdGhpcy55ZWFyID0gdmFsdWVPcldlZWtPclllYXIueWVhcjsKLSAgICAg
ICAgdGhpcy53ZWVrID0gdmFsdWVPcldlZWtPclllYXIud2VlazsKLSAgICB9IGVsc2UgewotICAg
ICAgICB2YXIgd2VlayA9IFdlZWsuY3JlYXRlRnJvbURhdGUobmV3IERhdGUodmFsdWVPcldlZWtP
clllYXIpKTsKLSAgICAgICAgdGhpcy55ZWFyID0gd2Vlay55ZWFyOwotICAgICAgICB0aGlzLndl
ZWsgPSB3ZWVrLndlZWs7CisgKiBAZXh0ZW5kcyBEYXRlVHlwZQorICogQHBhcmFtIHshbnVtYmVy
fSB5ZWFyCisgKiBAcGFyYW0geyFudW1iZXJ9IHdlZWsKKyAqLworZnVuY3Rpb24gV2Vlayh5ZWFy
LCB3ZWVrKSB7IAorICAgIC8qKgorICAgICAqIEB0eXBlIHtudW1iZXJ9CisgICAgICogQGNvbnN0
CisgICAgICovCisgICAgdGhpcy55ZWFyID0geWVhcjsKKyAgICAvKioKKyAgICAgKiBAdHlwZSB7
bnVtYmVyfQorICAgICAqIEBjb25zdAorICAgICAqLworICAgIHRoaXMud2VlayA9IHdlZWs7Cisg
ICAgLy8gTnVtYmVyIG9mIHllYXJzIHBlciB5ZWFyIGlzIGVpdGhlciA1MiBvciA1My4KKyAgICBp
ZiAodGhpcy53ZWVrIDwgMSB8fCAodGhpcy53ZWVrID4gNTIgJiYgdGhpcy53ZWVrID4gV2Vlay5u
dW1iZXJPZldlZWtzSW5ZZWFyKHRoaXMueWVhcikpKSB7CisgICAgICAgIHZhciBub3JtYWxpemVk
V2VlayA9IFdlZWsuY3JlYXRlRnJvbURheSh0aGlzLmZpcnN0RGF5KCkpOworICAgICAgICB0aGlz
LnllYXIgPSBub3JtYWxpemVkV2Vlay55ZWFyOworICAgICAgICB0aGlzLndlZWsgPSBub3JtYWxp
emVkV2Vlay53ZWVrOwogICAgIH0KIH0KIAotV2Vlay5NaWxsaXNlY29uZHNQZXJXZWVrID0gNyAq
IDI0ICogNjAgKiA2MCAqIDEwMDA7CiBXZWVrLklTT1N0cmluZ1JlZ0V4cCA9IC9eKFxkKyktW3dX
XShcZCspJC87CisKIC8vIFNlZSBXZWJDb3JlL3BsYXRmb3JtL0RhdGVDb21wb25lbnRzLmguCiBX
ZWVrLk1pbmltdW0gPSBuZXcgV2VlaygxLCAxKTsKIFdlZWsuTWF4aW11bSA9IG5ldyBXZWVrKDI3
NTc2MCwgMzcpOworCiAvLyBTZWUgV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuY3BwLgogV2Vl
ay5EZWZhdWx0U3RlcCA9IDYwNDgwMDAwMDsKIFdlZWsuRGVmYXVsdFN0ZXBCYXNlID0gLTI1OTIw
MDAwMDsKIAorV2Vlay5FcG9jaFdlZWtEYXkgPSBjcmVhdGVVVENEYXRlKDE5NzAsIDAsIDApLmdl
dFVUQ0RheSgpOworCiAvKioKICAqIEBwYXJhbSB7IXN0cmluZ30gc3RyCiAgKiBAcmV0dXJuIHs/
V2Vla30KQEAgLTMzNSwxMCArNDM0LDIwIEBAIFdlZWsucGFyc2UgPSBmdW5jdGlvbihzdHIpIHsK
IH07CiAKIC8qKgorICogQHBhcmFtIHshbnVtYmVyfSBtaWxsaXNlY29uZHNTaW5jZUVwb2NoCisg
KiBAcmV0dXJuIHshV2Vla30KKyAqLworV2Vlay5jcmVhdGVGcm9tVmFsdWUgPSBmdW5jdGlvbiht
aWxsaXNlY29uZHNTaW5jZUVwb2NoKSB7CisgICAgcmV0dXJuIFdlZWsuY3JlYXRlRnJvbURhdGUo
bmV3IERhdGUobWlsbGlzZWNvbmRzU2luY2VFcG9jaCkpCit9OworCisvKioKICAqIEBwYXJhbSB7
IURhdGV9IGRhdGUKICAqIEByZXR1cm4geyFXZWVrfQogICovCiBXZWVrLmNyZWF0ZUZyb21EYXRl
ID0gZnVuY3Rpb24oZGF0ZSkgeworICAgIGlmIChpc05hTihkYXRlLnZhbHVlT2YoKSkpCisgICAg
ICAgIHRocm93ICJJbnZhbGlkIGRhdGUiOwogICAgIHZhciB5ZWFyID0gZGF0ZS5nZXRVVENGdWxs
WWVhcigpOwogICAgIGlmICh5ZWFyIDw9IFdlZWsuTWF4aW11bS55ZWFyICYmIFdlZWsud2Vla09u
ZVN0YXJ0RGF0ZUZvclllYXIoeWVhciArIDEpLmdldFRpbWUoKSA8PSBkYXRlLmdldFRpbWUoKSkK
ICAgICAgICAgeWVhcisrOwpAQCAtMzQ5LDYgKzQ1OCwyMCBAQCBXZWVrLmNyZWF0ZUZyb21EYXRl
ID0gZnVuY3Rpb24oZGF0ZSkgewogfTsKIAogLyoqCisgKiBAcGFyYW0geyFEYXl9IGRheQorICog
QHJldHVybiB7IVdlZWt9CisgKi8KK1dlZWsuY3JlYXRlRnJvbURheSA9IGZ1bmN0aW9uKGRheSkg
eworICAgIHZhciB5ZWFyID0gZGF5LnllYXI7CisgICAgaWYgKHllYXIgPD0gV2Vlay5NYXhpbXVt
LnllYXIgJiYgV2Vlay53ZWVrT25lU3RhcnREYXlGb3JZZWFyKHllYXIgKyAxKSA8PSBkYXkpCisg
ICAgICAgIHllYXIrKzsKKyAgICBlbHNlIGlmICh5ZWFyID4gMSAmJiBXZWVrLndlZWtPbmVTdGFy
dERheUZvclllYXIoeWVhcikgPiBkYXkpCisgICAgICAgIHllYXItLTsKKyAgICB2YXIgd2VlayA9
IE1hdGguZmxvb3IoMSArIChkYXkudmFsdWVPZigpIC0gV2Vlay53ZWVrT25lU3RhcnREYXlGb3JZ
ZWFyKHllYXIpLnZhbHVlT2YoKSkgLyBNaWxsaXNlY29uZHNQZXJXZWVrKTsKKyAgICByZXR1cm4g
bmV3IFdlZWsoeWVhciwgd2Vlayk7Cit9OworCisvKioKICAqIEByZXR1cm4geyFXZWVrfQogICov
CiBXZWVrLmNyZWF0ZUZyb21Ub2RheSA9IGZ1bmN0aW9uKCkgewpAQCAtMzY1LDcgKzQ4OCwxOSBA
QCBXZWVrLndlZWtPbmVTdGFydERhdGVGb3JZZWFyID0gZnVuY3Rpb24oeWVhcikgewogICAgICAg
ICByZXR1cm4gY3JlYXRlVVRDRGF0ZSgxLCAwLCAxKTsKICAgICAvLyBUaGUgd2VlayBjb250YWlu
aW5nIEphbnVhcnkgNHRoIGlzIHdlZWsgb25lLgogICAgIHZhciB5ZWFyU3RhcnREYXkgPSBjcmVh
dGVVVENEYXRlKHllYXIsIDAsIDQpLmdldFVUQ0RheSgpOwotICAgIHJldHVybiBjcmVhdGVVVENE
YXRlKHllYXIsIDAsIDQgLSAoeWVhclN0YXJ0RGF5ICsgNikgJSA3KTsKKyAgICByZXR1cm4gY3Jl
YXRlVVRDRGF0ZSh5ZWFyLCAwLCA0IC0gKHllYXJTdGFydERheSArIDYpICUgRGF5c1BlcldlZWsp
OworfTsKKworLyoqCisgKiBAcGFyYW0geyFudW1iZXJ9IHllYXIKKyAqIEByZXR1cm4geyFEYXl9
CisgKi8KK1dlZWsud2Vla09uZVN0YXJ0RGF5Rm9yWWVhciA9IGZ1bmN0aW9uKHllYXIpIHsKKyAg
ICBpZiAoeWVhciA8IDEpCisgICAgICAgIHJldHVybiBEYXkuTWluaW11bTsKKyAgICAvLyBUaGUg
d2VlayBjb250YWluaW5nIEphbnVhcnkgNHRoIGlzIHdlZWsgb25lLgorICAgIHZhciB5ZWFyU3Rh
cnREYXkgPSBjcmVhdGVVVENEYXRlKHllYXIsIDAsIDQpLmdldFVUQ0RheSgpOworICAgIHJldHVy
biBuZXcgRGF5KHllYXIsIDAsIDQgLSAoeWVhclN0YXJ0RGF5ICsgNikgJSBEYXlzUGVyV2Vlayk7
CiB9OwogCiAvKioKQEAgLTM4NiwyOSArNTIxLDM1IEBAIFdlZWsubnVtYmVyT2ZXZWVrc0luWWVh
ciA9IGZ1bmN0aW9uKHllYXIpIHsKICAqIEByZXR1cm4geyFudW1iZXJ9CiAgKi8KIFdlZWsuX251
bWJlck9mV2Vla3NTaW5jZURhdGUgPSBmdW5jdGlvbihiYXNlRGF0ZSwgZGF0ZSkgewotICAgIHJl
dHVybiBNYXRoLmZsb29yKChkYXRlLmdldFRpbWUoKSAtIGJhc2VEYXRlLmdldFRpbWUoKSkgLyBX
ZWVrLk1pbGxpc2Vjb25kc1BlcldlZWspOworICAgIHJldHVybiBNYXRoLmZsb29yKChkYXRlLmdl
dFRpbWUoKSAtIGJhc2VEYXRlLmdldFRpbWUoKSkgLyBNaWxsaXNlY29uZHNQZXJXZWVrKTsKIH07
CiAKIC8qKgotICogQHBhcmFtIHshV2Vla30gb3RoZXIKLSAqIEByZXR1cm4geyFib29sfQorICog
QHBhcmFtIHshRGF0ZVR5cGV9IG90aGVyCisgKiBAcmV0dXJuIHshYm9vbGVhbn0KICAqLwogV2Vl
ay5wcm90b3R5cGUuZXF1YWxzID0gZnVuY3Rpb24ob3RoZXIpIHsKLSAgICByZXR1cm4gdGhpcy55
ZWFyID09PSBvdGhlci55ZWFyICYmIHRoaXMud2VlayA9PT0gb3RoZXIud2VlazsKKyAgICByZXR1
cm4gb3RoZXIgaW5zdGFuY2VvZiBXZWVrICYmIHRoaXMueWVhciA9PT0gb3RoZXIueWVhciAmJiB0
aGlzLndlZWsgPT09IG90aGVyLndlZWs7CiB9OwogCiAvKioKKyAqIEBwYXJhbSB7IW51bWJlcj19
IG9mZnNldAogICogQHJldHVybiB7IVdlZWt9CiAgKi8KLVdlZWsucHJvdG90eXBlLnByZXZpb3Vz
ID0gZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIG5ldyBXZWVrKHRoaXMueWVhciwgdGhpcy53ZWVr
IC0gMSk7CitXZWVrLnByb3RvdHlwZS5wcmV2aW91cyA9IGZ1bmN0aW9uKG9mZnNldCkgeworICAg
IGlmICh0eXBlb2Ygb2Zmc2V0ID09PSAidW5kZWZpbmVkIikKKyAgICAgICAgb2Zmc2V0ID0gMTsK
KyAgICByZXR1cm4gbmV3IFdlZWsodGhpcy55ZWFyLCB0aGlzLndlZWsgLSBvZmZzZXQpOwogfTsK
IAogLyoqCisgKiBAcGFyYW0geyFudW1iZXI9fSBvZmZzZXQKICAqIEByZXR1cm4geyFXZWVrfQog
ICovCi1XZWVrLnByb3RvdHlwZS5uZXh0ID0gZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIG5ldyBX
ZWVrKHRoaXMueWVhciwgdGhpcy53ZWVrICsgMSk7CitXZWVrLnByb3RvdHlwZS5uZXh0ID0gZnVu
Y3Rpb24ob2Zmc2V0KSB7CisgICAgaWYgKHR5cGVvZiBvZmZzZXQgPT09ICJ1bmRlZmluZWQiKQor
ICAgICAgICBvZmZzZXQgPSAxOworICAgIHJldHVybiBuZXcgV2Vlayh0aGlzLnllYXIsIHRoaXMu
d2VlayArIG9mZnNldCk7CiB9OwogCiAvKioKQEAgLTQzMCwxMCArNTcxLDM0IEBAIFdlZWsucHJv
dG90eXBlLmVuZERhdGUgPSBmdW5jdGlvbigpIHsKIH07CiAKIC8qKgorICogQHJldHVybiB7IURh
eX0KKyAqLworV2Vlay5wcm90b3R5cGUuZmlyc3REYXkgPSBmdW5jdGlvbigpIHsKKyAgICB2YXIg
d2Vla09uZVN0YXJ0RGF5ID0gV2Vlay53ZWVrT25lU3RhcnREYXlGb3JZZWFyKHRoaXMueWVhcik7
CisgICAgcmV0dXJuIHdlZWtPbmVTdGFydERheS5uZXh0KCh0aGlzLndlZWsgLSAxKSAqIERheXNQ
ZXJXZWVrKTsKK307CisKKy8qKgorICogQHJldHVybiB7IURheX0KKyAqLworV2Vlay5wcm90b3R5
cGUubWlkZGxlRGF5ID0gZnVuY3Rpb24oKSB7CisgICAgcmV0dXJuIHRoaXMuZmlyc3REYXkoKS5u
ZXh0KDMpOworfTsKKworLyoqCisgKiBAcmV0dXJuIHshRGF5fQorICovCitXZWVrLnByb3RvdHlw
ZS5sYXN0RGF5ID0gZnVuY3Rpb24oKSB7CisgICAgaWYgKHRoaXMuZXF1YWxzKFdlZWsuTWF4aW11
bSkpCisgICAgICAgIHJldHVybiBEYXkuTWF4aW11bTsKKyAgICByZXR1cm4gdGhpcy5uZXh0KCku
Zmlyc3REYXkoKS5wcmV2aW91cygpOworfTsKKworLyoqCiAgKiBAcmV0dXJuIHshbnVtYmVyfQog
ICovCiBXZWVrLnByb3RvdHlwZS52YWx1ZU9mID0gZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIHRo
aXMuc3RhcnREYXRlKCkuZ2V0VGltZSgpIC0gY3JlYXRlVVRDRGF0ZSgxOTcwLCAwLCAxKS5nZXRU
aW1lKCk7CisgICAgcmV0dXJuIHRoaXMuZmlyc3REYXkoKS52YWx1ZU9mKCkgLSBjcmVhdGVVVENE
YXRlKDE5NzAsIDAsIDEpLmdldFRpbWUoKTsKIH07CiAKIC8qKgpAQCAtNDQ4LDI2ICs2MTMsMjEg
QEAgV2Vlay5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbigpIHsKIAogLyoqCiAgKiBAY29u
c3RydWN0b3IKLSAqIEBwYXJhbSB7IW51bWJlcnxNb250aH0gdmFsdWVPck1vbnRoT3JZZWFyCi0g
KiBAcGFyYW0geyFudW1iZXI9fSBtb250aAotICovCi1mdW5jdGlvbiBNb250aCh2YWx1ZU9yTW9u
dGhPclllYXIsIG1vbnRoKSB7Ci0gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMikgewotICAg
ICAgICB0aGlzLnllYXIgPSB2YWx1ZU9yTW9udGhPclllYXI7Ci0gICAgICAgIHRoaXMubW9udGgg
PSBtb250aDsKLSAgICB9IGVsc2UgaWYgKHZhbHVlT3JNb250aE9yWWVhciBpbnN0YW5jZW9mIE1v
bnRoKSB7Ci0gICAgICAgIHRoaXMueWVhciA9IHZhbHVlT3JNb250aE9yWWVhci55ZWFyOwotICAg
ICAgICB0aGlzLm1vbnRoID0gdmFsdWVPck1vbnRoT3JZZWFyLm1vbnRoOwotICAgIH0gZWxzZSB7
Ci0gICAgICAgIHRoaXMueWVhciA9IDE5NzA7Ci0gICAgICAgIHRoaXMubW9udGggPSB2YWx1ZU9y
TW9udGhPclllYXI7Ci0gICAgfQotICAgIHRoaXMueWVhciA9IHRoaXMueWVhciArIE1hdGguZmxv
b3IodGhpcy5tb250aCAvIDEyKTsKLSAgICB0aGlzLm1vbnRoID0gdGhpcy5tb250aCA8IDAgPyB0
aGlzLm1vbnRoICUgMTIgKyAxMiA6IHRoaXMubW9udGggJSAxMjsKLSAgICBpZiAodGhpcy55ZWFy
IDw9IDAgfHwgTW9udGguTWF4aW11bSA8IHRoaXMpIHsKLSAgICAgICAgdGhpcy55ZWFyID0gTmFO
OwotICAgICAgICB0aGlzLm1vbnRoID0gTmFOOwotICAgIH0KKyAqIEBleHRlbmRzIERhdGVUeXBl
CisgKiBAcGFyYW0geyFudW1iZXJ9IHllYXIKKyAqIEBwYXJhbSB7IW51bWJlcn0gbW9udGgKKyAq
LworZnVuY3Rpb24gTW9udGgoeWVhciwgbW9udGgpIHsgCisgICAgLyoqCisgICAgICogQHR5cGUg
e251bWJlcn0KKyAgICAgKiBAY29uc3QKKyAgICAgKi8KKyAgICB0aGlzLnllYXIgPSB5ZWFyICsg
TWF0aC5mbG9vcihtb250aCAvIE1vbnRoc1BlclllYXIpOworICAgIC8qKgorICAgICAqIEB0eXBl
IHtudW1iZXJ9CisgICAgICogQGNvbnN0CisgICAgICovCisgICAgdGhpcy5tb250aCA9IG1vbnRo
ICUgTW9udGhzUGVyWWVhciA8IDAgPyBtb250aCAlIE1vbnRoc1BlclllYXIgKyBNb250aHNQZXJZ
ZWFyIDogbW9udGggJSBNb250aHNQZXJZZWFyOwogfTsKIAogTW9udGguSVNPU3RyaW5nUmVnRXhw
ID0gL14oXGQrKS0oXGQrKSQvOwpAQCAtNDc1LDYgKzYzNSw3IEBAIE1vbnRoLklTT1N0cmluZ1Jl
Z0V4cCA9IC9eKFxkKyktKFxkKykkLzsKIC8vIFNlZSBXZWJDb3JlL3BsYXRmb3JtL0RhdGVDb21w
b25lbnRzLmguCiBNb250aC5NaW5pbXVtID0gbmV3IE1vbnRoKDEsIDApOwogTW9udGguTWF4aW11
bSA9IG5ldyBNb250aCgyNzU3NjAsIDgpOworCiAvLyBTZWUgV2ViQ29yZS9odG1sL01vbnRoSW5w
dXRUeXBlLmNwcC4KIE1vbnRoLkRlZmF1bHRTdGVwID0gMTsKIE1vbnRoLkRlZmF1bHRTdGVwQmFz
ZSA9IDA7CkBAIC00OTMsMTQgKzY1NCwzMiBAQCBNb250aC5wYXJzZSA9IGZ1bmN0aW9uKHN0cikg
ewogfTsKIAogLyoqCisgKiBAcGFyYW0geyFudW1iZXJ9IHZhbHVlCisgKiBAcmV0dXJuIHshTW9u
dGh9CisgKi8KK01vbnRoLmNyZWF0ZUZyb21WYWx1ZSA9IGZ1bmN0aW9uKG1vbnRoc1NpbmNlRXBv
Y2gpIHsKKyAgICByZXR1cm4gbmV3IE1vbnRoKDE5NzAsIG1vbnRoc1NpbmNlRXBvY2gpCit9Owor
CisvKioKICAqIEBwYXJhbSB7IURhdGV9IGRhdGUKICAqIEByZXR1cm4geyFNb250aH0KICAqLwog
TW9udGguY3JlYXRlRnJvbURhdGUgPSBmdW5jdGlvbihkYXRlKSB7CisgICAgaWYgKGlzTmFOKGRh
dGUudmFsdWVPZigpKSkKKyAgICAgICAgdGhyb3cgIkludmFsaWQgZGF0ZSI7CiAgICAgcmV0dXJu
IG5ldyBNb250aChkYXRlLmdldFVUQ0Z1bGxZZWFyKCksIGRhdGUuZ2V0VVRDTW9udGgoKSk7CiB9
OwogCiAvKioKKyAqIEBwYXJhbSB7IURheX0gZGF5CisgKiBAcmV0dXJuIHshTW9udGh9CisgKi8K
K01vbnRoLmNyZWF0ZUZyb21EYXkgPSBmdW5jdGlvbihkYXkpIHsKKyAgICByZXR1cm4gbmV3IE1v
bnRoKGRheS55ZWFyLCBkYXkubW9udGgpOworfTsKKworLyoqCiAgKiBAcmV0dXJuIHshTW9udGh9
CiAgKi8KIE1vbnRoLmNyZWF0ZUZyb21Ub2RheSA9IGZ1bmN0aW9uKCkgewpAQCAtNTA5LDI1ICs2
ODgsMzggQEAgTW9udGguY3JlYXRlRnJvbVRvZGF5ID0gZnVuY3Rpb24oKSB7CiB9OwogCiAvKioK
KyAqIEByZXR1cm4geyFib29sZWFufQorICovCitNb250aC5wcm90b3R5cGUuY29udGFpbnNEYXkg
PSBmdW5jdGlvbihkYXkpIHsKKyAgICByZXR1cm4gdGhpcy55ZWFyID09PSBkYXkueWVhciAmJiB0
aGlzLm1vbnRoID09PSBkYXkubW9udGg7Cit9OworCisvKioKICAqIEBwYXJhbSB7IU1vbnRofSBv
dGhlcgotICogQHJldHVybiB7IWJvb2x9CisgKiBAcmV0dXJuIHshYm9vbGVhbn0KICAqLwogTW9u
dGgucHJvdG90eXBlLmVxdWFscyA9IGZ1bmN0aW9uKG90aGVyKSB7Ci0gICAgcmV0dXJuIHRoaXMu
eWVhciA9PT0gb3RoZXIueWVhciAmJiB0aGlzLm1vbnRoID09PSBvdGhlci5tb250aDsKKyAgICBy
ZXR1cm4gb3RoZXIgaW5zdGFuY2VvZiBNb250aCAmJiB0aGlzLnllYXIgPT09IG90aGVyLnllYXIg
JiYgdGhpcy5tb250aCA9PT0gb3RoZXIubW9udGg7CiB9OwogCiAvKioKKyAqIEBwYXJhbSB7IW51
bWJlcj19IG9mZnNldAogICogQHJldHVybiB7IU1vbnRofQogICovCi1Nb250aC5wcm90b3R5cGUu
cHJldmlvdXMgPSBmdW5jdGlvbigpIHsKLSAgICByZXR1cm4gbmV3IE1vbnRoKHRoaXMueWVhciwg
dGhpcy5tb250aCAtIDEpOworTW9udGgucHJvdG90eXBlLnByZXZpb3VzID0gZnVuY3Rpb24ob2Zm
c2V0KSB7CisgICAgaWYgKHR5cGVvZiBvZmZzZXQgPT09ICJ1bmRlZmluZWQiKQorICAgICAgICBv
ZmZzZXQgPSAxOworICAgIHJldHVybiBuZXcgTW9udGgodGhpcy55ZWFyLCB0aGlzLm1vbnRoIC0g
b2Zmc2V0KTsKIH07CiAKIC8qKgorICogQHBhcmFtIHshbnVtYmVyPX0gb2Zmc2V0CiAgKiBAcmV0
dXJuIHshTW9udGh9CiAgKi8KLU1vbnRoLnByb3RvdHlwZS5uZXh0ID0gZnVuY3Rpb24oKSB7Ci0g
ICAgcmV0dXJuIG5ldyBNb250aCh0aGlzLnllYXIsIHRoaXMubW9udGggKyAxKTsKK01vbnRoLnBy
b3RvdHlwZS5uZXh0ID0gZnVuY3Rpb24ob2Zmc2V0KSB7CisgICAgaWYgKHR5cGVvZiBvZmZzZXQg
PT09ICJ1bmRlZmluZWQiKQorICAgICAgICBvZmZzZXQgPSAxOworICAgIHJldHVybiBuZXcgTW9u
dGgodGhpcy55ZWFyLCB0aGlzLm1vbnRoICsgb2Zmc2V0KTsKIH07CiAKIC8qKgpAQCAtNTQ3LDEw
ICs3MzksMzMgQEAgTW9udGgucHJvdG90eXBlLmVuZERhdGUgPSBmdW5jdGlvbigpIHsKIH07CiAK
IC8qKgorICogQHJldHVybiB7IURheX0KKyAqLworTW9udGgucHJvdG90eXBlLmZpcnN0RGF5ID0g
ZnVuY3Rpb24oKSB7CisgICAgcmV0dXJuIG5ldyBEYXkodGhpcy55ZWFyLCB0aGlzLm1vbnRoLCAx
KTsKK307CisKKy8qKgorICogQHJldHVybiB7IURheX0KKyAqLworTW9udGgucHJvdG90eXBlLm1p
ZGRsZURheSA9IGZ1bmN0aW9uKCkgeworICAgIHJldHVybiBuZXcgRGF5KHRoaXMueWVhciwgdGhp
cy5tb250aCwgdGhpcy5tb250aCA9PT0gMiA/IDE0IDogMTUpOworfTsKKworLyoqCisgKiBAcmV0
dXJuIHshRGF5fQorICovCitNb250aC5wcm90b3R5cGUubGFzdERheSA9IGZ1bmN0aW9uKCkgewor
ICAgIGlmICh0aGlzLmVxdWFscyhNb250aC5NYXhpbXVtKSkKKyAgICAgICAgcmV0dXJuIERheS5N
YXhpbXVtOworICAgIHJldHVybiB0aGlzLm5leHQoKS5maXJzdERheSgpLnByZXZpb3VzKCk7Cit9
OworCisvKioKICAqIEByZXR1cm4geyFudW1iZXJ9CiAgKi8KIE1vbnRoLnByb3RvdHlwZS52YWx1
ZU9mID0gZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuICh0aGlzLnllYXIgLSAxOTcwKSAqIDEyICsg
dGhpcy5tb250aDsKKyAgICByZXR1cm4gKHRoaXMueWVhciAtIDE5NzApICogTW9udGhzUGVyWWVh
ciArIHRoaXMubW9udGg7CiB9OwogCiAvKioKQEAgLTU2Myw2ICs3NzgsMjIgQEAgTW9udGgucHJv
dG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7CiAgICAgcmV0dXJuIHllYXJTdHJpbmcgKyAi
LSIgKyAoIjAiICsgKHRoaXMubW9udGggKyAxKSkuc3Vic3RyKC0yLCAyKTsKIH07CiAKKy8qKgor
ICogQHJldHVybiB7IXN0cmluZ30KKyAqLworTW9udGgucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5n
ID0gZnVuY3Rpb24oKSB7CisgICAgaWYgKGdsb2JhbC5wYXJhbXMubG9jYWxlID09PSAiamEiKQor
ICAgICAgICByZXR1cm4gIiIgKyB0aGlzLnllYXIgKyAi5bm0IiArIGZvcm1hdEphcGFuZXNlSW1w
ZXJpYWxFcmEodGhpcy55ZWFyLCB0aGlzLm1vbnRoKSArICIgIiArICh0aGlzLm1vbnRoICsgMSkg
KyAi5pyIIjsKKyAgICByZXR1cm4gd2luZG93LnBhZ2VQb3B1cENvbnRyb2xsZXIuZm9ybWF0TW9u
dGgodGhpcy55ZWFyLCB0aGlzLm1vbnRoKTsKK307CisKKy8qKgorICogQHJldHVybiB7IXN0cmlu
Z30KKyAqLworTW9udGgucHJvdG90eXBlLnRvU2hvcnRMb2NhbGVTdHJpbmcgPSBmdW5jdGlvbigp
IHsKKyAgICByZXR1cm4gd2luZG93LnBhZ2VQb3B1cENvbnRyb2xsZXIuZm9ybWF0U2hvcnRNb250
aCh0aGlzLnllYXIsIHRoaXMubW9udGgpOworfTsKKwogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogLy8gSW5pdGlhbGl6
YXRpb24KIApAQCAtOTMyLDkgKzExNjMsOSBAQCBmdW5jdGlvbiBDYWxlbmRhclBpY2tlcihlbGVt
ZW50LCBjb25maWcpIHsKICAgICBpZiAoIWluaXRpYWxTZWxlY3Rpb24pCiAgICAgICAgIGluaXRp
YWxTZWxlY3Rpb24gPSB0aGlzLnNlbGVjdGlvbkNvbnN0cnVjdG9yLmNyZWF0ZUZyb21Ub2RheSgp
OwogICAgIGlmIChpbml0aWFsU2VsZWN0aW9uLnZhbHVlT2YoKSA8IHRoaXMuX21pbmltdW1WYWx1
ZSkKLSAgICAgICAgaW5pdGlhbFNlbGVjdGlvbiA9IG5ldyB0aGlzLnNlbGVjdGlvbkNvbnN0cnVj
dG9yKHRoaXMuX21pbmltdW1WYWx1ZSk7CisgICAgICAgIGluaXRpYWxTZWxlY3Rpb24gPSBuZXcg
dGhpcy5zZWxlY3Rpb25Db25zdHJ1Y3Rvci5jcmVhdGVGcm9tVmFsdWUodGhpcy5fbWluaW11bVZh
bHVlKTsKICAgICBlbHNlIGlmIChpbml0aWFsU2VsZWN0aW9uLnZhbHVlT2YoKSA+IHRoaXMuX21h
eGltdW1WYWx1ZSkKLSAgICAgICAgaW5pdGlhbFNlbGVjdGlvbiA9IG5ldyB0aGlzLnNlbGVjdGlv
bkNvbnN0cnVjdG9yKHRoaXMuX21heGltdW1WYWx1ZSk7CisgICAgICAgIGluaXRpYWxTZWxlY3Rp
b24gPSBuZXcgdGhpcy5zZWxlY3Rpb25Db25zdHJ1Y3Rvci5jcmVhdGVGcm9tVmFsdWUodGhpcy5f
bWF4aW11bVZhbHVlKTsKICAgICB0aGlzLnNob3dNb250aChNb250aC5jcmVhdGVGcm9tRGF0ZShp
bml0aWFsU2VsZWN0aW9uLnN0YXJ0RGF0ZSgpKSk7CiAgICAgdGhpcy5fZGF5c1RhYmxlLnNlbGVj
dFJhbmdlQW5kU2hvd0VudGlyZVJhbmdlKGluaXRpYWxTZWxlY3Rpb24pOwogICAgIHRoaXMuZml4
V2luZG93U2l6ZSgpOwpAQCAtMTIyMiwxOSArMTQ1MywxOSBAQCBZZWFyTW9udGhDb250cm9sbGVy
LnByb3RvdHlwZS5fYXR0YWNoUmlnaHRCdXR0b25zVG8gPSBmdW5jdGlvbihwYXJlbnQpIHsKIFll
YXJNb250aENvbnRyb2xsZXIucHJvdG90eXBlLnNldE1vbnRoID0gZnVuY3Rpb24obW9udGgpIHsK
ICAgICB2YXIgbW9udGhWYWx1ZSA9IG1vbnRoLnZhbHVlT2YoKTsKICAgICBpZiAodGhpcy5fbGVm
dDMpCi0gICAgICAgIHRoaXMuX2xlZnQzLmRpc2FibGVkID0gIXRoaXMucGlja2VyLnNob3VsZFNo
b3dNb250aChuZXcgTW9udGgobW9udGhWYWx1ZSAtIDEzKSk7Ci0gICAgdGhpcy5fbGVmdDIuZGlz
YWJsZWQgPSAhdGhpcy5waWNrZXIuc2hvdWxkU2hvd01vbnRoKG5ldyBNb250aChtb250aFZhbHVl
IC0gMikpOwotICAgIHRoaXMuX2xlZnQxLmRpc2FibGVkID0gIXRoaXMucGlja2VyLnNob3VsZFNo
b3dNb250aChuZXcgTW9udGgobW9udGhWYWx1ZSAtIDEpKTsKLSAgICB0aGlzLl9yaWdodDEuZGlz
YWJsZWQgPSAhdGhpcy5waWNrZXIuc2hvdWxkU2hvd01vbnRoKG5ldyBNb250aChtb250aFZhbHVl
ICsgMSkpOwotICAgIHRoaXMuX3JpZ2h0Mi5kaXNhYmxlZCA9ICF0aGlzLnBpY2tlci5zaG91bGRT
aG93TW9udGgobmV3IE1vbnRoKG1vbnRoVmFsdWUgKyAyKSk7CisgICAgICAgIHRoaXMuX2xlZnQz
LmRpc2FibGVkID0gIXRoaXMucGlja2VyLnNob3VsZFNob3dNb250aChNb250aC5jcmVhdGVGcm9t
VmFsdWUobW9udGhWYWx1ZSAtIDEzKSk7CisgICAgdGhpcy5fbGVmdDIuZGlzYWJsZWQgPSAhdGhp
cy5waWNrZXIuc2hvdWxkU2hvd01vbnRoKE1vbnRoLmNyZWF0ZUZyb21WYWx1ZShtb250aFZhbHVl
IC0gMikpOworICAgIHRoaXMuX2xlZnQxLmRpc2FibGVkID0gIXRoaXMucGlja2VyLnNob3VsZFNo
b3dNb250aChNb250aC5jcmVhdGVGcm9tVmFsdWUobW9udGhWYWx1ZSAtIDEpKTsKKyAgICB0aGlz
Ll9yaWdodDEuZGlzYWJsZWQgPSAhdGhpcy5waWNrZXIuc2hvdWxkU2hvd01vbnRoKE1vbnRoLmNy
ZWF0ZUZyb21WYWx1ZShtb250aFZhbHVlICsgMSkpOworICAgIHRoaXMuX3JpZ2h0Mi5kaXNhYmxl
ZCA9ICF0aGlzLnBpY2tlci5zaG91bGRTaG93TW9udGgoTW9udGguY3JlYXRlRnJvbVZhbHVlKG1v
bnRoVmFsdWUgKyAyKSk7CiAgICAgaWYgKHRoaXMuX3JpZ2h0MykKLSAgICAgICAgdGhpcy5fbGVm
dDMuZGlzYWJsZWQgPSAhdGhpcy5waWNrZXIuc2hvdWxkU2hvd01vbnRoKG5ldyBNb250aChtb250
aFZhbHVlICsgMTMpKTsKKyAgICAgICAgdGhpcy5fbGVmdDMuZGlzYWJsZWQgPSAhdGhpcy5waWNr
ZXIuc2hvdWxkU2hvd01vbnRoKE1vbnRoLmNyZWF0ZUZyb21WYWx1ZShtb250aFZhbHVlICsgMTMp
KTsKICAgICB0aGlzLl9tb250aExhYmVsLmlubmVyVGV4dCA9IG1vbnRoLnRvTG9jYWxlU3RyaW5n
KCk7CiAgICAgd2hpbGUgKHRoaXMuX21vbnRoUG9wdXBDb250ZW50cy5oYXNDaGlsZE5vZGVzKCkp
CiAgICAgICAgIHRoaXMuX21vbnRoUG9wdXBDb250ZW50cy5yZW1vdmVDaGlsZCh0aGlzLl9tb250
aFBvcHVwQ29udGVudHMuZmlyc3RDaGlsZCk7CiAKICAgICBmb3IgKHZhciBtID0gbW9udGhWYWx1
ZSAtIDY7IG0gPD0gbW9udGhWYWx1ZSArIDY7IG0rKykgewotICAgICAgICB2YXIgbW9udGggPSBu
ZXcgTW9udGgobSk7CisgICAgICAgIHZhciBtb250aCA9IE1vbnRoLmNyZWF0ZUZyb21WYWx1ZSht
KTsKICAgICAgICAgaWYgKCF0aGlzLnBpY2tlci5zaG91bGRTaG93TW9udGgobW9udGgpKQogICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgIHZhciBvcHRpb24gPSBjcmVhdGVFbGVtZW50KCJk
aXYiLCBDbGFzc05hbWVzLk1vbnRoU2VsZWN0b3JQb3B1cEVudHJ5LCBtb250aC50b0xvY2FsZVN0
cmluZygpKTsKQEAgLTE0MjUsNyArMTY1Niw3IEBAIFllYXJNb250aENvbnRyb2xsZXIucHJvdG90
eXBlLl9oYW5kbGVCdXR0b25DbGljayA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgKi8KIFllYXJNb250
aENvbnRyb2xsZXIucHJvdG90eXBlLm1vdmVSZWxhdGl2ZWx5ID0gZnVuY3Rpb24oYW1vdW50KSB7
CiAgICAgdmFyIGN1cnJlbnQgPSB0aGlzLnBpY2tlci5jdXJyZW50TW9udGgoKS52YWx1ZU9mKCk7
Ci0gICAgdmFyIHVwZGF0ZWQgPSBuZXcgTW9udGgoY3VycmVudCArIGFtb3VudCk7CisgICAgdmFy
IHVwZGF0ZWQgPSBNb250aC5jcmVhdGVGcm9tVmFsdWUoY3VycmVudCArIGFtb3VudCk7CiAgICAg
dGhpcy5waWNrZXIuc2hvd01vbnRoKHVwZGF0ZWQsIENhbGVuZGFyUGlja2VyLk5hdmlnYXRpb25C
ZWhhdmlvdXIuQW5pbWF0ZSB8IENhbGVuZGFyUGlja2VyLk5hdmlnYXRpb25CZWhhdmlvdXIuS2Vl
cFNlbGVjdGlvblBvc2l0aW9uKTsKIH07CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjZDhlNWQzNTQxYzQ4N2NkZDU2YTUy
YTA1MGE4ZTk2ZGI3MzdlYTY4Li42YmI5YzI0ZGNkNTY1N2NjNmQ0ZmViODMyNTIxYmUyYjEzZDBi
YTg2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMDItMjIgIEtlaXNoaSBIYXR0b3JpICA8
a2Vpc2hpQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIG1ldGhvZHMgdG8gZGF0ZSB0eXBlcyBm
b3IgbmV3IGNhbGVuZGFyIHBpY2tlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTEwNDU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zvcm1zL2NhbGVuZGFyLXBp
Y2tlci9jYWxlbmRhci1waWNrZXItZGF0ZS10eXBlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZm9ybXMvY2FsZW5kYXItcGlja2VyL2NhbGVu
ZGFyLXBpY2tlci1kYXRlLXR5cGVzLmh0bWw6IEFkZGVkLiBVbml0IHRlc3RzIGZvciBkYXRlIHR5
cGVzLgorCiAyMDEzLTAyLTIxICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgdGVzdGluZyBzdGF0ZXMgY2hhbmdpbmcgYXN5
bmNocm9ub3VzbHkuIEFwcGx5IGl0IHRvIHN0YXRlLXVybC1zZXRzLWxpbmtzLXZpc2l0ZWQuaHRt
bC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZm9ybXMv
Y2FsZW5kYXItcGlja2VyL2NhbGVuZGFyLXBpY2tlci1kYXRlLXR5cGVzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZm9ybXMvY2FsZW5kYXItcGlja2Vy
L2NhbGVuZGFyLXBpY2tlci1kYXRlLXR5cGVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYjEw
ZWUxMjNjOTJhYzhjMmVmYzQ2ZDBkNTdmOWQyYjY1ZTA0NjQyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9mb3Jtcy9jYWxlbmRhci1waWNrZXIv
Y2FsZW5kYXItcGlja2VyLWRhdGUtdHlwZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjMzIEBA
CitUZXN0IGlmIHN0ZXAgbGltaXRzIGF2YWlsYWJsZSBkYXRlcyBpbiBjYWxlbmRhciBwaWNrZXIu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitUZXN0IERheSBjb25zdHJ1Y3Rvcgor
UEFTUyBuZXcgcHcuRGF5KDIwMDAsIDEsIDIpLnllYXIgaXMgMjAwMAorUEFTUyBuZXcgcHcuRGF5
KDIwMDAsIDEsIDIpLm1vbnRoIGlzIDEKK1BBU1MgbmV3IHB3LkRheSgyMDAwLCAxLCAyKS5kYXRl
IGlzIDIKK1BBU1MgbmV3IHB3LkRheSgyMDAwLCAtMSwgMikueWVhciBpcyAxOTk5CitQQVNTIG5l
dyBwdy5EYXkoMjAwMCwgLTEsIDIpLm1vbnRoIGlzIDExCitQQVNTIG5ldyBwdy5EYXkoMjAwMCwg
LTEsIDIpLmRhdGUgaXMgMgorUEFTUyBuZXcgcHcuRGF5KDIwMDAsIDEsIC0yKS55ZWFyIGlzIDIw
MDAKK1BBU1MgbmV3IHB3LkRheSgyMDAwLCAxLCAtMikubW9udGggaXMgMAorUEFTUyBuZXcgcHcu
RGF5KDIwMDAsIDEsIC0yKS5kYXRlIGlzIDI5CitQQVNTIG5ldyBwdy5EYXkoLTIwMDAsIDEsIDIp
LnllYXIgaXMgLTIwMDAKK1BBU1MgbmV3IHB3LkRheSgtMjAwMCwgMSwgMikubW9udGggaXMgMQor
UEFTUyBuZXcgcHcuRGF5KC0yMDAwLCAxLCAyKS5kYXRlIGlzIDIKK1BBU1MgbmV3IHB3LkRheSgy
MDAwLCAxLCAzMykueWVhciBpcyAyMDAwCitQQVNTIG5ldyBwdy5EYXkoMjAwMCwgMSwgMzMpLm1v
bnRoIGlzIDIKK1BBU1MgbmV3IHB3LkRheSgyMDAwLCAxLCAzMykuZGF0ZSBpcyA0CitQQVNTIG5l
dyBwdy5EYXkoMjAwMDAwLCAxLCAyKS55ZWFyIGlzIDIwMDAwMAorUEFTUyBuZXcgcHcuRGF5KDIw
MDAwMCwgMSwgMikubW9udGggaXMgMQorUEFTUyBuZXcgcHcuRGF5KDIwMDAwMCwgMSwgMikuZGF0
ZSBpcyAyCitUZXN0IERheS5lcXVhbHMKK1BBU1MgbmV3IHB3LkRheSgyMDAwLCAxLCAyKS5lcXVh
bHMobmV3IHB3LkRheSgyMDAwLCAxLCAyKSkgaXMgdHJ1ZQorUEFTUyBuZXcgcHcuRGF5KDIwMDAs
IDEsIDIpLmVxdWFscyhuZXcgcHcuRGF5KDIwMDAsIDIsIC0yNykpIGlzIHRydWUKK1BBU1MgbmV3
IHB3LkRheSgyMDAwLCAxLCAyKS5lcXVhbHMobmV3IHB3LkRheSgyMDAxLCAxLCAtMzY0KSkgaXMg
dHJ1ZQorUEFTUyBuZXcgcHcuRGF5KDIwMDAsIDEsIDIpLmVxdWFscyhuZXcgcHcuRGF5KDIwMDAs
IDEsIDMpKSBpcyBmYWxzZQorUEFTUyBuZXcgcHcuRGF5KDIwMDAsIDEsIDIpLmVxdWFscyhuZXcg
cHcuRGF5KDIwMDAsIDIsIDIpKSBpcyBmYWxzZQorUEFTUyBuZXcgcHcuRGF5KDIwMDAsIDEsIDIp
LmVxdWFscyhuZXcgcHcuRGF5KDIwMDEsIDEsIDIpKSBpcyBmYWxzZQorUEFTUyBuZXcgcHcuRGF5
KDIwMDAsIDEsIDIpLmVxdWFscyhuZXcgcHcuRGF5KDIwMDEsIDIsIDMpKSBpcyBmYWxzZQorVGVz
dCBEYXkucHJldmlvdXMKK1BBU1MgbmV3IHB3LkRheSgyMDAwLCAyLCAxKS5wcmV2aW91cygpLnRv
U3RyaW5nKCkgaXMgIjIwMDAtMDItMjkiCitQQVNTIG5ldyBwdy5EYXkoMjAwMCwgMiwgMSkucHJl
dmlvdXMoMSkudG9TdHJpbmcoKSBpcyAiMjAwMC0wMi0yOSIKK1BBU1MgbmV3IHB3LkRheSgyMDAw
LCAyLCAxKS5wcmV2aW91cygyKS50b1N0cmluZygpIGlzICIyMDAwLTAyLTI4IgorUEFTUyBuZXcg
cHcuRGF5KDIwMDAsIDIsIDEpLnByZXZpb3VzKDMpLnRvU3RyaW5nKCkgaXMgIjIwMDAtMDItMjci
CitQQVNTIG5ldyBwdy5EYXkoMjAwMCwgMiwgMSkucHJldmlvdXMoMzApLnRvU3RyaW5nKCkgaXMg
IjIwMDAtMDEtMzEiCitUZXN0IERheS5uZXh0CitQQVNTIG5ldyBwdy5EYXkoMjAwMCwgMiwgMSku
bmV4dCgpLnRvU3RyaW5nKCkgaXMgIjIwMDAtMDMtMDIiCitQQVNTIG5ldyBwdy5EYXkoMjAwMCwg
MiwgMSkubmV4dCgxKS50b1N0cmluZygpIGlzICIyMDAwLTAzLTAyIgorUEFTUyBuZXcgcHcuRGF5
KDIwMDAsIDIsIDEpLm5leHQoMikudG9TdHJpbmcoKSBpcyAiMjAwMC0wMy0wMyIKK1BBU1MgbmV3
IHB3LkRheSgyMDAwLCAyLCAxKS5uZXh0KDMpLnRvU3RyaW5nKCkgaXMgIjIwMDAtMDMtMDQiCitQ
QVNTIG5ldyBwdy5EYXkoMjAwMCwgMiwgMSkubmV4dCgzMCkudG9TdHJpbmcoKSBpcyAiMjAwMC0w
My0zMSIKK1Rlc3QgRGF5LmZpcnN0RGF5CitQQVNTIG5ldyBwdy5EYXkoMjAwMCwgMiwgMSkuZmly
c3REYXkoKS50b1N0cmluZygpIGlzICIyMDAwLTAzLTAxIgorVGVzdCBEYXkubWlkZGxlRGF5CitQ
QVNTIG5ldyBwdy5EYXkoMjAwMCwgMiwgMSkubWlkZGxlRGF5KCkudG9TdHJpbmcoKSBpcyAiMjAw
MC0wMy0wMSIKK1Rlc3QgRGF5Lmxhc3REYXkKK1BBU1MgbmV3IHB3LkRheSgyMDAwLCAyLCAxKS5s
YXN0RGF5KCkudG9TdHJpbmcoKSBpcyAiMjAwMC0wMy0wMSIKK1Rlc3QgRGF5LnZhbHVlT2YKK1BB
U1MgbmV3IHB3LkRheSgxOTcwLCAwLCAxKS52YWx1ZU9mKCkgaXMgMAorUEFTUyBuZXcgcHcuRGF5
KDE5NzAsIDAsIDIpLnZhbHVlT2YoKSBpcyA4NjQwMDAwMAorUEFTUyBuZXcgcHcuRGF5KDIwMDAs
IDIsIDEpLnZhbHVlT2YoKSBpcyA5NTE4Njg4MDAwMDAKK1BBU1MgbmV3IHB3LkRheSgxLCAyLCAx
KS52YWx1ZU9mKCkgaXMgLTYyMTMwNDk5MjAwMDAwCitQQVNTIG5ldyBwdy5EYXkoMjAwMDAsIDIs
IDEpLnZhbHVlT2YoKSBpcyA1Njg5NzcwMDQ4MDAwMDAKK1Rlc3QgRGF5LnRvU3RyaW5nCitQQVNT
IG5ldyBwdy5EYXkoMjAwMCwgMiwgMSkudG9TdHJpbmcoKSBpcyAiMjAwMC0wMy0wMSIKK1BBU1Mg
bmV3IHB3LkRheSgxLCAyLCAxKS50b1N0cmluZygpIGlzICIwMDAxLTAzLTAxIgorUEFTUyBuZXcg
cHcuRGF5KDIwMDAwLCAyLCAxKS50b1N0cmluZygpIGlzICIyMDAwMC0wMy0wMSIKK1Rlc3QgRGF5
LnBhcnNlCitQQVNTIHB3LkRheS5wYXJzZSgiMjAwMC0wMi0wMiIpLnRvU3RyaW5nKCkgaXMgIjIw
MDAtMDItMDIiCitQQVNTIHB3LkRheS5wYXJzZSgiMTk5OS0wMi0wMiIpLnRvU3RyaW5nKCkgaXMg
IjE5OTktMDItMDIiCitQQVNTIHB3LkRheS5wYXJzZSgiMjAwMC0wMS0wMiIpLnRvU3RyaW5nKCkg
aXMgIjIwMDAtMDEtMDIiCitQQVNTIHB3LkRheS5wYXJzZSgiMjAwMC0wMi0wMSIpLnRvU3RyaW5n
KCkgaXMgIjIwMDAtMDItMDEiCitQQVNTIHB3LkRheS5wYXJzZSgiMDIwMDAtMDItMDIiKS50b1N0
cmluZygpIGlzICIyMDAwLTAyLTAyIgorUEFTUyBwdy5EYXkucGFyc2UoIjIwMDAtMDAyLTAyIiku
dG9TdHJpbmcoKSBpcyAiMjAwMC0wMi0wMiIKK1BBU1MgcHcuRGF5LnBhcnNlKCIyMDAwLTAyLTAw
MiIpLnRvU3RyaW5nKCkgaXMgIjIwMDAtMDItMDIiCitQQVNTIHB3LkRheS5wYXJzZSgiMjAwMC0y
LTAyIikudG9TdHJpbmcoKSBpcyAiMjAwMC0wMi0wMiIKK1BBU1MgcHcuRGF5LnBhcnNlKCIyMDAw
LTAyLTIiKS50b1N0cmluZygpIGlzICIyMDAwLTAyLTAyIgorUEFTUyBwdy5EYXkucGFyc2UoIjEt
MDItMDIiKS50b1N0cmluZygpIGlzICIwMDAxLTAyLTAyIgorUEFTUyBwdy5EYXkucGFyc2UoIjIw
MDAtMDIiKSBpcyBudWxsCitQQVNTIHB3LkRheS5wYXJzZSgiMjAwMC1XMDIiKSBpcyBudWxsCitQ
QVNTIHB3LkRheS5wYXJzZSgieCIpIGlzIG51bGwKK1BBU1MgcHcuRGF5LnBhcnNlKCIiKSBpcyBu
dWxsCitUZXN0IFdlZWsgY29uc3RydWN0b3IKK1BBU1MgbmV3IHB3LldlZWsoMjAwMCwgMSkueWVh
ciBpcyAyMDAwCitQQVNTIG5ldyBwdy5XZWVrKDIwMDAsIDEpLndlZWsgaXMgMQorUEFTUyBuZXcg
cHcuV2VlaygyMDAwLCAtMSkueWVhciBpcyAxOTk5CitQQVNTIG5ldyBwdy5XZWVrKDIwMDAsIC0x
KS53ZWVrIGlzIDUxCitQQVNTIG5ldyBwdy5XZWVrKC0yMDAwLCAxKS55ZWFyIGlzIC0yMDAwCitQ
QVNTIG5ldyBwdy5XZWVrKC0yMDAwLCAxKS53ZWVrIGlzIDEKK1BBU1MgbmV3IHB3LldlZWsoMjAw
MCwgNTUpLnllYXIgaXMgMjAwMQorUEFTUyBuZXcgcHcuV2VlaygyMDAwLCA1NSkud2VlayBpcyAz
CitQQVNTIG5ldyBwdy5XZWVrKDIwMDAwMCwgMSkueWVhciBpcyAyMDAwMDAKK1BBU1MgbmV3IHB3
LldlZWsoMjAwMDAwLCAxKS53ZWVrIGlzIDEKK1Rlc3QgV2Vlay5lcXVhbHMKK1BBU1MgbmV3IHB3
LldlZWsoMjAwMCwgMSkuZXF1YWxzKG5ldyBwdy5XZWVrKDIwMDAsIDEpKSBpcyB0cnVlCitQQVNT
IG5ldyBwdy5XZWVrKDIwMDAsIDEpLmVxdWFscyhuZXcgcHcuV2VlaygyMDAxLCAtNTEpKSBpcyB0
cnVlCitQQVNTIG5ldyBwdy5XZWVrKDIwMDAsIDEpLmVxdWFscyhuZXcgcHcuV2VlaygxOTk5LCA1
MykpIGlzIHRydWUKK1BBU1MgbmV3IHB3LldlZWsoMjAwMCwgMSkuZXF1YWxzKG5ldyBwdy5XZWVr
KDIwMDAsIDIpKSBpcyBmYWxzZQorUEFTUyBuZXcgcHcuV2VlaygyMDAwLCAxKS5lcXVhbHMobmV3
IHB3LldlZWsoMjAwMSwgMSkpIGlzIGZhbHNlCitQQVNTIG5ldyBwdy5XZWVrKDIwMDAsIDEpLmVx
dWFscyhuZXcgcHcuV2VlaygyMDAxLCAyKSkgaXMgZmFsc2UKK1Rlc3QgV2Vlay5wcmV2aW91cwor
UEFTUyBuZXcgcHcuV2VlaygyMDAwLCAyKS5wcmV2aW91cygpLnRvU3RyaW5nKCkgaXMgIjIwMDAt
VzAxIgorUEFTUyBuZXcgcHcuV2VlaygyMDAwLCAyKS5wcmV2aW91cygxKS50b1N0cmluZygpIGlz
ICIyMDAwLVcwMSIKK1BBU1MgbmV3IHB3LldlZWsoMjAwMCwgMikucHJldmlvdXMoMikudG9TdHJp
bmcoKSBpcyAiMTk5OS1XNTIiCitQQVNTIG5ldyBwdy5XZWVrKDIwMDAsIDIpLnByZXZpb3VzKDMp
LnRvU3RyaW5nKCkgaXMgIjE5OTktVzUxIgorUEFTUyBuZXcgcHcuV2VlaygyMDAwLCAyKS5wcmV2
aW91cygxMDApLnRvU3RyaW5nKCkgaXMgIjE5OTgtVzA3IgorVGVzdCBXZWVrLm5leHQKK1BBU1Mg
bmV3IHB3LldlZWsoMjAwMCwgMikubmV4dCgpLnRvU3RyaW5nKCkgaXMgIjIwMDAtVzAzIgorUEFT
UyBuZXcgcHcuV2VlaygyMDAwLCAyKS5uZXh0KDEpLnRvU3RyaW5nKCkgaXMgIjIwMDAtVzAzIgor
UEFTUyBuZXcgcHcuV2VlaygyMDAwLCAyKS5uZXh0KDIpLnRvU3RyaW5nKCkgaXMgIjIwMDAtVzA0
IgorUEFTUyBuZXcgcHcuV2VlaygyMDAwLCAyKS5uZXh0KDMpLnRvU3RyaW5nKCkgaXMgIjIwMDAt
VzA1IgorUEFTUyBuZXcgcHcuV2VlaygyMDAwLCAyKS5uZXh0KDEwMCkudG9TdHJpbmcoKSBpcyAi
MjAwMS1XNTAiCitUZXN0IFdlZWsuZmlyc3REYXkKK1BBU1MgbmV3IHB3LldlZWsoMjAwMCwgMiku
Zmlyc3REYXkoKS50b1N0cmluZygpIGlzICIyMDAwLTAxLTEwIgorUEFTUyBuZXcgcHcuV2Vlaygy
MDAwLCA1MCkuZmlyc3REYXkoKS50b1N0cmluZygpIGlzICIyMDAwLTEyLTExIgorUEFTUyBuZXcg
cHcuV2VlaygxLCAxKS5maXJzdERheSgpLnRvU3RyaW5nKCkgaXMgIjAwMDEtMDEtMDEiCitQQVNT
IG5ldyBwdy5XZWVrKDEsIDUwKS5maXJzdERheSgpLnRvU3RyaW5nKCkgaXMgIjAwMDEtMTItMTAi
CitQQVNTIG5ldyBwdy5XZWVrKDIwMDAwLCAxKS5maXJzdERheSgpLnRvU3RyaW5nKCkgaXMgIjIw
MDAwLTAxLTAzIgorUEFTUyBuZXcgcHcuV2VlaygyMDAwMCwgNTApLmZpcnN0RGF5KCkudG9TdHJp
bmcoKSBpcyAiMjAwMDAtMTItMTEiCitUZXN0IFdlZWsubWlkZGxlRGF5CitQQVNTIG5ldyBwdy5X
ZWVrKDIwMDAsIDIpLm1pZGRsZURheSgpLnRvU3RyaW5nKCkgaXMgIjIwMDAtMDEtMTMiCitQQVNT
IG5ldyBwdy5XZWVrKDIwMDAsIDUwKS5taWRkbGVEYXkoKS50b1N0cmluZygpIGlzICIyMDAwLTEy
LTE0IgorUEFTUyBuZXcgcHcuV2VlaygxLCAxKS5taWRkbGVEYXkoKS50b1N0cmluZygpIGlzICIw
MDAxLTAxLTA0IgorUEFTUyBuZXcgcHcuV2VlaygxLCA1MCkubWlkZGxlRGF5KCkudG9TdHJpbmco
KSBpcyAiMDAwMS0xMi0xMyIKK1BBU1MgbmV3IHB3LldlZWsoMjAwMDAsIDEpLm1pZGRsZURheSgp
LnRvU3RyaW5nKCkgaXMgIjIwMDAwLTAxLTA2IgorUEFTUyBuZXcgcHcuV2VlaygyMDAwMCwgNTAp
Lm1pZGRsZURheSgpLnRvU3RyaW5nKCkgaXMgIjIwMDAwLTEyLTE0IgorVGVzdCBXZWVrLmxhc3RE
YXkKK1BBU1MgbmV3IHB3LldlZWsoMjAwMCwgMikubGFzdERheSgpLnRvU3RyaW5nKCkgaXMgIjIw
MDAtMDEtMTYiCitQQVNTIG5ldyBwdy5XZWVrKDIwMDAsIDUwKS5sYXN0RGF5KCkudG9TdHJpbmco
KSBpcyAiMjAwMC0xMi0xNyIKK1BBU1MgbmV3IHB3LldlZWsoMSwgMSkubGFzdERheSgpLnRvU3Ry
aW5nKCkgaXMgIjAwMDEtMDEtMDciCitQQVNTIG5ldyBwdy5XZWVrKDEsIDUwKS5sYXN0RGF5KCku
dG9TdHJpbmcoKSBpcyAiMDAwMS0xMi0xNiIKK1BBU1MgbmV3IHB3LldlZWsoMjAwMDAsIDEpLmxh
c3REYXkoKS50b1N0cmluZygpIGlzICIyMDAwMC0wMS0wOSIKK1BBU1MgbmV3IHB3LldlZWsoMjAw
MDAsIDUwKS5sYXN0RGF5KCkudG9TdHJpbmcoKSBpcyAiMjAwMDAtMTItMTciCitUZXN0IFdlZWsu
dmFsdWVPZgorUEFTUyBuZXcgcHcuV2VlaygxOTcwLCAxKS52YWx1ZU9mKCkgaXMgLTI1OTIwMDAw
MAorUEFTUyBuZXcgcHcuV2VlaygxOTcwLCAyKS52YWx1ZU9mKCkgaXMgMzQ1NjAwMDAwCitQQVNT
IG5ldyBwdy5XZWVrKDIwMDAsIDEpLnZhbHVlT2YoKSBpcyA5NDY4NTc2MDAwMDAKK1BBU1MgbmV3
IHB3LldlZWsoMSwgMSkudmFsdWVPZigpIGlzIC02MjEzNTU5NjgwMDAwMAorUEFTUyBuZXcgcHcu
V2VlaygyMDAwMCwgMikudmFsdWVPZigpIGlzIDU2ODk3MjU5ODQwMDAwMAorVGVzdCBXZWVrLnRv
U3RyaW5nCitQQVNTIG5ldyBwdy5XZWVrKDIwMDAsIDIpLnRvU3RyaW5nKCkgaXMgIjIwMDAtVzAy
IgorUEFTUyBuZXcgcHcuV2VlaygxLCA1MCkudG9TdHJpbmcoKSBpcyAiMDAwMS1XNTAiCitQQVNT
IG5ldyBwdy5XZWVrKDIwMDAwLCAyKS50b1N0cmluZygpIGlzICIyMDAwMC1XMDIiCitUZXN0IFdl
ZWsucGFyc2UKK1BBU1MgcHcuV2Vlay5wYXJzZSgiMjAwMC1XMDIiKS50b1N0cmluZygpIGlzICIy
MDAwLVcwMiIKK1BBU1MgcHcuV2Vlay5wYXJzZSgiMTk5OS1XMTAiKS50b1N0cmluZygpIGlzICIx
OTk5LVcxMCIKK1BBU1MgcHcuV2Vlay5wYXJzZSgiMDAwMS1XMjMiKS50b1N0cmluZygpIGlzICIw
MDAxLVcyMyIKK1BBU1MgcHcuV2Vlay5wYXJzZSgiMTIzNDUtVzMyIikudG9TdHJpbmcoKSBpcyAi
MTIzNDUtVzMyIgorUEFTUyBwdy5XZWVrLnBhcnNlKCIwMjAwMC1XMDIiKS50b1N0cmluZygpIGlz
ICIyMDAwLVcwMiIKK1BBU1MgcHcuV2Vlay5wYXJzZSgiMjAwMC1XMDAyIikudG9TdHJpbmcoKSBp
cyAiMjAwMC1XMDIiCitQQVNTIHB3LldlZWsucGFyc2UoIjIwMDAtVzIiKS50b1N0cmluZygpIGlz
ICIyMDAwLVcwMiIKK1BBU1MgcHcuV2Vlay5wYXJzZSgiMS1XMDIiKS50b1N0cmluZygpIGlzICIw
MDAxLVcwMiIKK1BBU1MgcHcuV2Vlay5wYXJzZSgiMjAwMC0wMi0wMyIpIGlzIG51bGwKK1BBU1Mg
cHcuV2Vlay5wYXJzZSgiMjAwMC0wMiIpIGlzIG51bGwKK1BBU1MgcHcuV2Vlay5wYXJzZSgieCIp
IGlzIG51bGwKK1BBU1MgcHcuV2Vlay5wYXJzZSgiIikgaXMgbnVsbAorVGVzdCBNb250aCBjb25z
dHJ1Y3RvcgorUEFTUyBuZXcgcHcuTW9udGgoMjAwMCwgMSkueWVhciBpcyAyMDAwCitQQVNTIG5l
dyBwdy5Nb250aCgyMDAwLCAxKS5tb250aCBpcyAxCitQQVNTIG5ldyBwdy5Nb250aCgyMDAwLCAt
MSkueWVhciBpcyAxOTk5CitQQVNTIG5ldyBwdy5Nb250aCgyMDAwLCAtMSkubW9udGggaXMgMTEK
K1BBU1MgbmV3IHB3Lk1vbnRoKC0yMDAwLCAxKS55ZWFyIGlzIC0yMDAwCitQQVNTIG5ldyBwdy5N
b250aCgtMjAwMCwgMSkubW9udGggaXMgMQorUEFTUyBuZXcgcHcuTW9udGgoMjAwMCwgMTMpLnll
YXIgaXMgMjAwMQorUEFTUyBuZXcgcHcuTW9udGgoMjAwMCwgMTMpLm1vbnRoIGlzIDEKK1BBU1Mg
bmV3IHB3Lk1vbnRoKDIwMDAwMCwgMSkueWVhciBpcyAyMDAwMDAKK1BBU1MgbmV3IHB3Lk1vbnRo
KDIwMDAwMCwgMSkubW9udGggaXMgMQorVGVzdCBNb250aC5lcXVhbHMKK1BBU1MgbmV3IHB3Lk1v
bnRoKDIwMDAsIDEpLmVxdWFscyhuZXcgcHcuTW9udGgoMjAwMCwgMSkpIGlzIHRydWUKK1BBU1Mg
bmV3IHB3Lk1vbnRoKDIwMDAsIDEpLmVxdWFscyhuZXcgcHcuTW9udGgoMjAwMSwgLTExKSkgaXMg
dHJ1ZQorUEFTUyBuZXcgcHcuTW9udGgoMjAwMCwgMSkuZXF1YWxzKG5ldyBwdy5Nb250aCgxOTk5
LCAxMykpIGlzIHRydWUKK1BBU1MgbmV3IHB3Lk1vbnRoKDIwMDAsIDEpLmVxdWFscyhuZXcgcHcu
TW9udGgoMjAwMCwgMikpIGlzIGZhbHNlCitQQVNTIG5ldyBwdy5Nb250aCgyMDAwLCAxKS5lcXVh
bHMobmV3IHB3Lk1vbnRoKDIwMDEsIDEpKSBpcyBmYWxzZQorUEFTUyBuZXcgcHcuTW9udGgoMjAw
MCwgMSkuZXF1YWxzKG5ldyBwdy5Nb250aCgyMDAxLCAyKSkgaXMgZmFsc2UKK1Rlc3QgTW9udGgu
cHJldmlvdXMKK1BBU1MgbmV3IHB3Lk1vbnRoKDIwMDAsIDIpLnByZXZpb3VzKCkudG9TdHJpbmco
KSBpcyAiMjAwMC0wMiIKK1BBU1MgbmV3IHB3Lk1vbnRoKDIwMDAsIDIpLnByZXZpb3VzKDEpLnRv
U3RyaW5nKCkgaXMgIjIwMDAtMDIiCitQQVNTIG5ldyBwdy5Nb250aCgyMDAwLCAyKS5wcmV2aW91
cygyKS50b1N0cmluZygpIGlzICIyMDAwLTAxIgorUEFTUyBuZXcgcHcuTW9udGgoMjAwMCwgMiku
cHJldmlvdXMoMykudG9TdHJpbmcoKSBpcyAiMTk5OS0xMiIKK1BBU1MgbmV3IHB3Lk1vbnRoKDIw
MDAsIDIpLnByZXZpb3VzKDEwMCkudG9TdHJpbmcoKSBpcyAiMTk5MS0xMSIKK1Rlc3QgTW9udGgu
bmV4dAorUEFTUyBuZXcgcHcuTW9udGgoMjAwMCwgMikubmV4dCgpLnRvU3RyaW5nKCkgaXMgIjIw
MDAtMDQiCitQQVNTIG5ldyBwdy5Nb250aCgyMDAwLCAyKS5uZXh0KDEpLnRvU3RyaW5nKCkgaXMg
IjIwMDAtMDQiCitQQVNTIG5ldyBwdy5Nb250aCgyMDAwLCAyKS5uZXh0KDIpLnRvU3RyaW5nKCkg
aXMgIjIwMDAtMDUiCitQQVNTIG5ldyBwdy5Nb250aCgyMDAwLCAyKS5uZXh0KDMpLnRvU3RyaW5n
KCkgaXMgIjIwMDAtMDYiCitQQVNTIG5ldyBwdy5Nb250aCgyMDAwLCAyKS5uZXh0KDEwMCkudG9T
dHJpbmcoKSBpcyAiMjAwOC0wNyIKK1Rlc3QgTW9udGguZmlyc3REYXkKK1BBU1MgbmV3IHB3Lk1v
bnRoKDIwMDAsIDEpLmZpcnN0RGF5KCkudG9TdHJpbmcoKSBpcyAiMjAwMC0wMi0wMSIKK1BBU1Mg
bmV3IHB3Lk1vbnRoKDIwMDAsIDExKS5maXJzdERheSgpLnRvU3RyaW5nKCkgaXMgIjIwMDAtMTIt
MDEiCitQQVNTIG5ldyBwdy5Nb250aCgxLCAwKS5maXJzdERheSgpLnRvU3RyaW5nKCkgaXMgIjAw
MDEtMDEtMDEiCitQQVNTIG5ldyBwdy5Nb250aCgxLCAxKS5maXJzdERheSgpLnRvU3RyaW5nKCkg
aXMgIjAwMDEtMDItMDEiCitQQVNTIG5ldyBwdy5Nb250aCgxLCAxMSkuZmlyc3REYXkoKS50b1N0
cmluZygpIGlzICIwMDAxLTEyLTAxIgorUEFTUyBuZXcgcHcuTW9udGgoMjAwMDAsIDApLmZpcnN0
RGF5KCkudG9TdHJpbmcoKSBpcyAiMjAwMDAtMDEtMDEiCitQQVNTIG5ldyBwdy5Nb250aCgyMDAw
MCwgMSkuZmlyc3REYXkoKS50b1N0cmluZygpIGlzICIyMDAwMC0wMi0wMSIKK1BBU1MgbmV3IHB3
Lk1vbnRoKDIwMDAwLCAxMSkuZmlyc3REYXkoKS50b1N0cmluZygpIGlzICIyMDAwMC0xMi0wMSIK
K1Rlc3QgTW9udGgubWlkZGxlRGF5CitQQVNTIG5ldyBwdy5Nb250aCgyMDAwLCAxKS5taWRkbGVE
YXkoKS50b1N0cmluZygpIGlzICIyMDAwLTAyLTE1IgorUEFTUyBuZXcgcHcuTW9udGgoMjAwMCwg
MTEpLm1pZGRsZURheSgpLnRvU3RyaW5nKCkgaXMgIjIwMDAtMTItMTUiCitQQVNTIG5ldyBwdy5N
b250aCgxLCAwKS5taWRkbGVEYXkoKS50b1N0cmluZygpIGlzICIwMDAxLTAxLTE1IgorUEFTUyBu
ZXcgcHcuTW9udGgoMSwgMSkubWlkZGxlRGF5KCkudG9TdHJpbmcoKSBpcyAiMDAwMS0wMi0xNSIK
K1BBU1MgbmV3IHB3Lk1vbnRoKDEsIDExKS5taWRkbGVEYXkoKS50b1N0cmluZygpIGlzICIwMDAx
LTEyLTE1IgorUEFTUyBuZXcgcHcuTW9udGgoMjAwMDAsIDApLm1pZGRsZURheSgpLnRvU3RyaW5n
KCkgaXMgIjIwMDAwLTAxLTE1IgorUEFTUyBuZXcgcHcuTW9udGgoMjAwMDAsIDEpLm1pZGRsZURh
eSgpLnRvU3RyaW5nKCkgaXMgIjIwMDAwLTAyLTE1IgorUEFTUyBuZXcgcHcuTW9udGgoMjAwMDAs
IDExKS5taWRkbGVEYXkoKS50b1N0cmluZygpIGlzICIyMDAwMC0xMi0xNSIKK1Rlc3QgTW9udGgu
bGFzdERheQorUEFTUyBuZXcgcHcuTW9udGgoMjAwMCwgMSkubGFzdERheSgpLnRvU3RyaW5nKCkg
aXMgIjIwMDAtMDItMjkiCitQQVNTIG5ldyBwdy5Nb250aCgyMDAwLCAxMSkubGFzdERheSgpLnRv
U3RyaW5nKCkgaXMgIjIwMDAtMTItMzEiCitQQVNTIG5ldyBwdy5Nb250aCgxLCAwKS5sYXN0RGF5
KCkudG9TdHJpbmcoKSBpcyAiMDAwMS0wMS0zMSIKK1BBU1MgbmV3IHB3Lk1vbnRoKDEsIDEpLmxh
c3REYXkoKS50b1N0cmluZygpIGlzICIwMDAxLTAyLTI4IgorUEFTUyBuZXcgcHcuTW9udGgoMSwg
MTEpLmxhc3REYXkoKS50b1N0cmluZygpIGlzICIwMDAxLTEyLTMxIgorUEFTUyBuZXcgcHcuTW9u
dGgoMjAwMDAsIDApLmxhc3REYXkoKS50b1N0cmluZygpIGlzICIyMDAwMC0wMS0zMSIKK1BBU1Mg
bmV3IHB3Lk1vbnRoKDIwMDAwLCAxKS5sYXN0RGF5KCkudG9TdHJpbmcoKSBpcyAiMjAwMDAtMDIt
MjkiCitQQVNTIG5ldyBwdy5Nb250aCgyMDAwMCwgMTEpLmxhc3REYXkoKS50b1N0cmluZygpIGlz
ICIyMDAwMC0xMi0zMSIKK1Rlc3QgTW9udGgudmFsdWVPZgorUEFTUyBuZXcgcHcuTW9udGgoMTk3
MCwgMCkudmFsdWVPZigpIGlzIDAKK1BBU1MgbmV3IHB3Lk1vbnRoKDE5NzAsIDEpLnZhbHVlT2Yo
KSBpcyAxCitQQVNTIG5ldyBwdy5Nb250aCgyMDAwLCAwKS52YWx1ZU9mKCkgaXMgMzYwCitQQVNT
IG5ldyBwdy5Nb250aCgxLCAwKS52YWx1ZU9mKCkgaXMgLTIzNjI4CitQQVNTIG5ldyBwdy5Nb250
aCgyMDAwMCwgMTEpLnZhbHVlT2YoKSBpcyAyMTYzNzEKK1Rlc3QgTW9udGgudG9TdHJpbmcKK1BB
U1MgbmV3IHB3Lk1vbnRoKDIwMDAsIDApLnRvU3RyaW5nKCkgaXMgIjIwMDAtMDEiCitQQVNTIG5l
dyBwdy5Nb250aCgxLCAxMSkudG9TdHJpbmcoKSBpcyAiMDAwMS0xMiIKK1BBU1MgbmV3IHB3Lk1v
bnRoKDIwMDAwLCA1KS50b1N0cmluZygpIGlzICIyMDAwMC0wNiIKK1Rlc3QgTW9udGgucGFyc2UK
K1BBU1MgcHcuTW9udGgucGFyc2UoIjIwMDAtMDEiKS50b1N0cmluZygpIGlzICIyMDAwLTAxIgor
UEFTUyBwdy5Nb250aC5wYXJzZSgiMTk5OS0xMCIpLnRvU3RyaW5nKCkgaXMgIjE5OTktMTAiCitQ
QVNTIHB3Lk1vbnRoLnBhcnNlKCIwMDAxLTExIikudG9TdHJpbmcoKSBpcyAiMDAwMS0xMSIKK1BB
U1MgcHcuTW9udGgucGFyc2UoIjEyMzQ1LTAzIikudG9TdHJpbmcoKSBpcyAiMTIzNDUtMDMiCitQ
QVNTIHB3Lk1vbnRoLnBhcnNlKCIwMjAwMC0wMiIpLnRvU3RyaW5nKCkgaXMgIjIwMDAtMDIiCitQ
QVNTIHB3Lk1vbnRoLnBhcnNlKCIyMDAwLTAwMiIpLnRvU3RyaW5nKCkgaXMgIjIwMDAtMDIiCitQ
QVNTIHB3Lk1vbnRoLnBhcnNlKCIyMDAwLTIiKS50b1N0cmluZygpIGlzICIyMDAwLTAyIgorUEFT
UyBwdy5Nb250aC5wYXJzZSgiMS0wMiIpLnRvU3RyaW5nKCkgaXMgIjAwMDEtMDIiCitQQVNTIHB3
Lk1vbnRoLnBhcnNlKCIyMDAwLTAyLTAzIikgaXMgbnVsbAorUEFTUyBwdy5Nb250aC5wYXJzZSgi
MjAwMC1XMDIiKSBpcyBudWxsCitQQVNTIHB3Lk1vbnRoLnBhcnNlKCJ4IikgaXMgbnVsbAorUEFT
UyBwdy5Nb250aC5wYXJzZSgiIikgaXMgbnVsbAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS9mYXN0L2Zvcm1zL2NhbGVuZGFyLXBpY2tlci9jYWxlbmRhci1waWNrZXItZGF0
ZS10eXBlcy5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9mb3Jtcy9j
YWxlbmRhci1waWNrZXIvY2FsZW5kYXItcGlja2VyLWRhdGUtdHlwZXMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iNGZhMzFjODdmMzVlODYzZWMxYThmOWVlNmY1ZWYyNTk5YzZmNmY4Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9mb3Jtcy9jYWxlbmRhci1w
aWNrZXIvY2FsZW5kYXItcGlja2VyLWRhdGUtdHlwZXMuaHRtbApAQCAtMCwwICsxLDM0OCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi8uLi8uLi9mYXN0L2Zvcm1zL3Jlc291cmNlcy9waWNrZXItY29tbW9uLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY2FsZW5kYXItcGlja2VyLWNvbW1v
bi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxpbnB1dCB0eXBlPWRhdGUgaWQ9ZGF0ZSB2
YWx1ZT0iMjAxMS0wNS0wMSI+CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBpZiBzdGVw
IGxpbWl0cyBhdmFpbGFibGUgZGF0ZXMgaW4gY2FsZW5kYXIgcGlja2VyLicpOworCitvcGVuUGlj
a2VyKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkYXRlJyksIHRlc3QxKTsKKwordmFyIHB3ID0g
bnVsbDsKK2Z1bmN0aW9uIHRlc3QxKCkgeworICAgIHB3ID0gcG9wdXBXaW5kb3c7CisKKyAgICB0
ZXN0RGF5KCk7CisgICAgdGVzdFdlZWsoKTsKKyAgICB0ZXN0TW9udGgoKTsKKworICAgIGZpbmlz
aEpTVGVzdCgpOworfQorCitmdW5jdGlvbiB0ZXN0RGF5KCkgeworICAgIGRlYnVnKCdUZXN0IERh
eSBjb25zdHJ1Y3RvcicpOworCisgICAgc2hvdWxkQmUoJ25ldyBwdy5EYXkoMjAwMCwgMSwgMiku
eWVhcicsICcyMDAwJyk7CisgICAgc2hvdWxkQmUoJ25ldyBwdy5EYXkoMjAwMCwgMSwgMikubW9u
dGgnLCAnMScpOworICAgIHNob3VsZEJlKCduZXcgcHcuRGF5KDIwMDAsIDEsIDIpLmRhdGUnLCAn
MicpOworCisgICAgc2hvdWxkQmUoJ25ldyBwdy5EYXkoMjAwMCwgLTEsIDIpLnllYXInLCAnMTk5
OScpOworICAgIHNob3VsZEJlKCduZXcgcHcuRGF5KDIwMDAsIC0xLCAyKS5tb250aCcsICcxMScp
OworICAgIHNob3VsZEJlKCduZXcgcHcuRGF5KDIwMDAsIC0xLCAyKS5kYXRlJywgJzInKTsKKwor
ICAgIHNob3VsZEJlKCduZXcgcHcuRGF5KDIwMDAsIDEsIC0yKS55ZWFyJywgJzIwMDAnKTsKKyAg
ICBzaG91bGRCZSgnbmV3IHB3LkRheSgyMDAwLCAxLCAtMikubW9udGgnLCAnMCcpOworICAgIHNo
b3VsZEJlKCduZXcgcHcuRGF5KDIwMDAsIDEsIC0yKS5kYXRlJywgJzI5Jyk7CisKKyAgICBzaG91
bGRCZSgnbmV3IHB3LkRheSgtMjAwMCwgMSwgMikueWVhcicsICctMjAwMCcpOworICAgIHNob3Vs
ZEJlKCduZXcgcHcuRGF5KC0yMDAwLCAxLCAyKS5tb250aCcsICcxJyk7CisgICAgc2hvdWxkQmUo
J25ldyBwdy5EYXkoLTIwMDAsIDEsIDIpLmRhdGUnLCAnMicpOworCisgICAgc2hvdWxkQmUoJ25l
dyBwdy5EYXkoMjAwMCwgMSwgMzMpLnllYXInLCAnMjAwMCcpOworICAgIHNob3VsZEJlKCduZXcg
cHcuRGF5KDIwMDAsIDEsIDMzKS5tb250aCcsICcyJyk7CisgICAgc2hvdWxkQmUoJ25ldyBwdy5E
YXkoMjAwMCwgMSwgMzMpLmRhdGUnLCAnNCcpOworCisgICAgc2hvdWxkQmUoJ25ldyBwdy5EYXko
MjAwMDAwLCAxLCAyKS55ZWFyJywgJzIwMDAwMCcpOworICAgIHNob3VsZEJlKCduZXcgcHcuRGF5
KDIwMDAwMCwgMSwgMikubW9udGgnLCAnMScpOworICAgIHNob3VsZEJlKCduZXcgcHcuRGF5KDIw
MDAwMCwgMSwgMikuZGF0ZScsICcyJyk7CisKKyAgICBkZWJ1ZygnVGVzdCBEYXkuZXF1YWxzJyk7
CisKKyAgICBzaG91bGRCZVRydWUoJ25ldyBwdy5EYXkoMjAwMCwgMSwgMikuZXF1YWxzKG5ldyBw
dy5EYXkoMjAwMCwgMSwgMikpJyk7CisgICAgc2hvdWxkQmVUcnVlKCduZXcgcHcuRGF5KDIwMDAs
IDEsIDIpLmVxdWFscyhuZXcgcHcuRGF5KDIwMDAsIDIsIC0yNykpJyk7CisgICAgc2hvdWxkQmVU
cnVlKCduZXcgcHcuRGF5KDIwMDAsIDEsIDIpLmVxdWFscyhuZXcgcHcuRGF5KDIwMDEsIDEsIC0z
NjQpKScpOworICAgIAorICAgIHNob3VsZEJlRmFsc2UoJ25ldyBwdy5EYXkoMjAwMCwgMSwgMiku
ZXF1YWxzKG5ldyBwdy5EYXkoMjAwMCwgMSwgMykpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgnbmV3
IHB3LkRheSgyMDAwLCAxLCAyKS5lcXVhbHMobmV3IHB3LkRheSgyMDAwLCAyLCAyKSknKTsKKyAg
ICBzaG91bGRCZUZhbHNlKCduZXcgcHcuRGF5KDIwMDAsIDEsIDIpLmVxdWFscyhuZXcgcHcuRGF5
KDIwMDEsIDEsIDIpKScpOworICAgIHNob3VsZEJlRmFsc2UoJ25ldyBwdy5EYXkoMjAwMCwgMSwg
MikuZXF1YWxzKG5ldyBwdy5EYXkoMjAwMSwgMiwgMykpJyk7CisKKyAgICBkZWJ1ZygnVGVzdCBE
YXkucHJldmlvdXMnKTsKKworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3LkRheSgy
MDAwLCAyLCAxKS5wcmV2aW91cygpLnRvU3RyaW5nKCknLCAnMjAwMC0wMi0yOScpOworICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3LkRheSgyMDAwLCAyLCAxKS5wcmV2aW91cygxKS50
b1N0cmluZygpJywgJzIwMDAtMDItMjknKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25l
dyBwdy5EYXkoMjAwMCwgMiwgMSkucHJldmlvdXMoMikudG9TdHJpbmcoKScsICcyMDAwLTAyLTI4
Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuRGF5KDIwMDAsIDIsIDEpLnBy
ZXZpb3VzKDMpLnRvU3RyaW5nKCknLCAnMjAwMC0wMi0yNycpOworICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygnbmV3IHB3LkRheSgyMDAwLCAyLCAxKS5wcmV2aW91cygzMCkudG9TdHJpbmcoKScs
ICcyMDAwLTAxLTMxJyk7CisKKyAgICBkZWJ1ZygnVGVzdCBEYXkubmV4dCcpOworCisgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuRGF5KDIwMDAsIDIsIDEpLm5leHQoKS50b1N0cmlu
ZygpJywgJzIwMDAtMDMtMDInKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5E
YXkoMjAwMCwgMiwgMSkubmV4dCgxKS50b1N0cmluZygpJywgJzIwMDAtMDMtMDInKTsKKyAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5EYXkoMjAwMCwgMiwgMSkubmV4dCgyKS50b1N0
cmluZygpJywgJzIwMDAtMDMtMDMnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBw
dy5EYXkoMjAwMCwgMiwgMSkubmV4dCgzKS50b1N0cmluZygpJywgJzIwMDAtMDMtMDQnKTsKKyAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5EYXkoMjAwMCwgMiwgMSkubmV4dCgzMCku
dG9TdHJpbmcoKScsICcyMDAwLTAzLTMxJyk7CisKKyAgICBkZWJ1ZygnVGVzdCBEYXkuZmlyc3RE
YXknKTsKKworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3LkRheSgyMDAwLCAyLCAx
KS5maXJzdERheSgpLnRvU3RyaW5nKCknLCAnMjAwMC0wMy0wMScpOworCisgICAgZGVidWcoJ1Rl
c3QgRGF5Lm1pZGRsZURheScpOworCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcu
RGF5KDIwMDAsIDIsIDEpLm1pZGRsZURheSgpLnRvU3RyaW5nKCknLCAnMjAwMC0wMy0wMScpOwor
CisgICAgZGVidWcoJ1Rlc3QgRGF5Lmxhc3REYXknKTsKKworICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygnbmV3IHB3LkRheSgyMDAwLCAyLCAxKS5sYXN0RGF5KCkudG9TdHJpbmcoKScsICcyMDAw
LTAzLTAxJyk7CisKKyAgICBkZWJ1ZygnVGVzdCBEYXkudmFsdWVPZicpOworCisgICAgc2hvdWxk
QmUoJ25ldyBwdy5EYXkoMTk3MCwgMCwgMSkudmFsdWVPZigpJywgJzAnKTsKKyAgICBzaG91bGRC
ZSgnbmV3IHB3LkRheSgxOTcwLCAwLCAyKS52YWx1ZU9mKCknLCAnODY0MDAwMDAnKTsKKyAgICBz
aG91bGRCZSgnbmV3IHB3LkRheSgyMDAwLCAyLCAxKS52YWx1ZU9mKCknLCAnOTUxODY4ODAwMDAw
Jyk7CisgICAgc2hvdWxkQmUoJ25ldyBwdy5EYXkoMSwgMiwgMSkudmFsdWVPZigpJywgJy02MjEz
MDQ5OTIwMDAwMCcpOworICAgIHNob3VsZEJlKCduZXcgcHcuRGF5KDIwMDAwLCAyLCAxKS52YWx1
ZU9mKCknLCAnNTY4OTc3MDA0ODAwMDAwJyk7CisgICAgCisgICAgZGVidWcoJ1Rlc3QgRGF5LnRv
U3RyaW5nJyk7CisgICAgCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuRGF5KDIw
MDAsIDIsIDEpLnRvU3RyaW5nKCknLCAnMjAwMC0wMy0wMScpOworICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygnbmV3IHB3LkRheSgxLCAyLCAxKS50b1N0cmluZygpJywgJzAwMDEtMDMtMDEnKTsK
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5EYXkoMjAwMDAsIDIsIDEpLnRvU3Ry
aW5nKCknLCAnMjAwMDAtMDMtMDEnKTsKKworICAgIGRlYnVnKCdUZXN0IERheS5wYXJzZScpOwor
ICAgIAorICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncHcuRGF5LnBhcnNlKCIyMDAwLTAyLTAy
IikudG9TdHJpbmcoKScsICcyMDAwLTAyLTAyJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCdwdy5EYXkucGFyc2UoIjE5OTktMDItMDIiKS50b1N0cmluZygpJywgJzE5OTktMDItMDInKTsK
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3B3LkRheS5wYXJzZSgiMjAwMC0wMS0wMiIpLnRv
U3RyaW5nKCknLCAnMjAwMC0wMS0wMicpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncHcu
RGF5LnBhcnNlKCIyMDAwLTAyLTAxIikudG9TdHJpbmcoKScsICcyMDAwLTAyLTAxJyk7CisgICAg
Ly8gSW5jb3JyZWN0IG51bWJlciBvZiBsZWFkaW5nIHplcm9zCisgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCdwdy5EYXkucGFyc2UoIjAyMDAwLTAyLTAyIikudG9TdHJpbmcoKScsICcyMDAwLTAy
LTAyJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwdy5EYXkucGFyc2UoIjIwMDAtMDAy
LTAyIikudG9TdHJpbmcoKScsICcyMDAwLTAyLTAyJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCdwdy5EYXkucGFyc2UoIjIwMDAtMDItMDAyIikudG9TdHJpbmcoKScsICcyMDAwLTAyLTAy
Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwdy5EYXkucGFyc2UoIjIwMDAtMi0wMiIp
LnRvU3RyaW5nKCknLCAnMjAwMC0wMi0wMicpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygn
cHcuRGF5LnBhcnNlKCIyMDAwLTAyLTIiKS50b1N0cmluZygpJywgJzIwMDAtMDItMDInKTsKKyAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3B3LkRheS5wYXJzZSgiMS0wMi0wMiIpLnRvU3RyaW5n
KCknLCAnMDAwMS0wMi0wMicpOworICAgIC8vIEludmFsaWQKKyAgICBzaG91bGRCZU51bGwoJ3B3
LkRheS5wYXJzZSgiMjAwMC0wMiIpJyk7CisgICAgc2hvdWxkQmVOdWxsKCdwdy5EYXkucGFyc2Uo
IjIwMDAtVzAyIiknKTsKKyAgICBzaG91bGRCZU51bGwoJ3B3LkRheS5wYXJzZSgieCIpJyk7Cisg
ICAgc2hvdWxkQmVOdWxsKCdwdy5EYXkucGFyc2UoIiIpJyk7Cit9CisKK2Z1bmN0aW9uIHRlc3RX
ZWVrKCkgeworICAgIGRlYnVnKCdUZXN0IFdlZWsgY29uc3RydWN0b3InKTsKKworICAgIHNob3Vs
ZEJlKCduZXcgcHcuV2VlaygyMDAwLCAxKS55ZWFyJywgJzIwMDAnKTsKKyAgICBzaG91bGRCZSgn
bmV3IHB3LldlZWsoMjAwMCwgMSkud2VlaycsICcxJyk7CisKKyAgICBzaG91bGRCZSgnbmV3IHB3
LldlZWsoMjAwMCwgLTEpLnllYXInLCAnMTk5OScpOworICAgIHNob3VsZEJlKCduZXcgcHcuV2Vl
aygyMDAwLCAtMSkud2VlaycsICc1MScpOworCisgICAgc2hvdWxkQmUoJ25ldyBwdy5XZWVrKC0y
MDAwLCAxKS55ZWFyJywgJy0yMDAwJyk7CisgICAgc2hvdWxkQmUoJ25ldyBwdy5XZWVrKC0yMDAw
LCAxKS53ZWVrJywgJzEnKTsKKworICAgIHNob3VsZEJlKCduZXcgcHcuV2VlaygyMDAwLCA1NSku
eWVhcicsICcyMDAxJyk7CisgICAgc2hvdWxkQmUoJ25ldyBwdy5XZWVrKDIwMDAsIDU1KS53ZWVr
JywgJzMnKTsKKworICAgIHNob3VsZEJlKCduZXcgcHcuV2VlaygyMDAwMDAsIDEpLnllYXInLCAn
MjAwMDAwJyk7CisgICAgc2hvdWxkQmUoJ25ldyBwdy5XZWVrKDIwMDAwMCwgMSkud2VlaycsICcx
Jyk7CisKKyAgICBkZWJ1ZygnVGVzdCBXZWVrLmVxdWFscycpOworCisgICAgc2hvdWxkQmVUcnVl
KCduZXcgcHcuV2VlaygyMDAwLCAxKS5lcXVhbHMobmV3IHB3LldlZWsoMjAwMCwgMSkpJyk7Cisg
ICAgc2hvdWxkQmVUcnVlKCduZXcgcHcuV2VlaygyMDAwLCAxKS5lcXVhbHMobmV3IHB3LldlZWso
MjAwMSwgLTUxKSknKTsKKyAgICBzaG91bGRCZVRydWUoJ25ldyBwdy5XZWVrKDIwMDAsIDEpLmVx
dWFscyhuZXcgcHcuV2VlaygxOTk5LCA1MykpJyk7CisgICAgCisgICAgc2hvdWxkQmVGYWxzZSgn
bmV3IHB3LldlZWsoMjAwMCwgMSkuZXF1YWxzKG5ldyBwdy5XZWVrKDIwMDAsIDIpKScpOworICAg
IHNob3VsZEJlRmFsc2UoJ25ldyBwdy5XZWVrKDIwMDAsIDEpLmVxdWFscyhuZXcgcHcuV2Vlaygy
MDAxLCAxKSknKTsKKyAgICBzaG91bGRCZUZhbHNlKCduZXcgcHcuV2VlaygyMDAwLCAxKS5lcXVh
bHMobmV3IHB3LldlZWsoMjAwMSwgMikpJyk7CisKKyAgICBkZWJ1ZygnVGVzdCBXZWVrLnByZXZp
b3VzJyk7CisKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5XZWVrKDIwMDAsIDIp
LnByZXZpb3VzKCkudG9TdHJpbmcoKScsICcyMDAwLVcwMScpOworICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygnbmV3IHB3LldlZWsoMjAwMCwgMikucHJldmlvdXMoMSkudG9TdHJpbmcoKScsICcy
MDAwLVcwMScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3LldlZWsoMjAwMCwg
MikucHJldmlvdXMoMikudG9TdHJpbmcoKScsICcxOTk5LVc1MicpOworICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygnbmV3IHB3LldlZWsoMjAwMCwgMikucHJldmlvdXMoMykudG9TdHJpbmcoKScs
ICcxOTk5LVc1MScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3LldlZWsoMjAw
MCwgMikucHJldmlvdXMoMTAwKS50b1N0cmluZygpJywgJzE5OTgtVzA3Jyk7CisKKyAgICBkZWJ1
ZygnVGVzdCBXZWVrLm5leHQnKTsKKworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3
LldlZWsoMjAwMCwgMikubmV4dCgpLnRvU3RyaW5nKCknLCAnMjAwMC1XMDMnKTsKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5XZWVrKDIwMDAsIDIpLm5leHQoMSkudG9TdHJpbmco
KScsICcyMDAwLVcwMycpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3LldlZWso
MjAwMCwgMikubmV4dCgyKS50b1N0cmluZygpJywgJzIwMDAtVzA0Jyk7CisgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCduZXcgcHcuV2VlaygyMDAwLCAyKS5uZXh0KDMpLnRvU3RyaW5nKCknLCAn
MjAwMC1XMDUnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5XZWVrKDIwMDAs
IDIpLm5leHQoMTAwKS50b1N0cmluZygpJywgJzIwMDEtVzUwJyk7CisKKyAgICBkZWJ1ZygnVGVz
dCBXZWVrLmZpcnN0RGF5Jyk7CisKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5X
ZWVrKDIwMDAsIDIpLmZpcnN0RGF5KCkudG9TdHJpbmcoKScsICcyMDAwLTAxLTEwJyk7CisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuV2VlaygyMDAwLCA1MCkuZmlyc3REYXkoKS50
b1N0cmluZygpJywgJzIwMDAtMTItMTEnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25l
dyBwdy5XZWVrKDEsIDEpLmZpcnN0RGF5KCkudG9TdHJpbmcoKScsICcwMDAxLTAxLTAxJyk7Cisg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuV2VlaygxLCA1MCkuZmlyc3REYXkoKS50
b1N0cmluZygpJywgJzAwMDEtMTItMTAnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25l
dyBwdy5XZWVrKDIwMDAwLCAxKS5maXJzdERheSgpLnRvU3RyaW5nKCknLCAnMjAwMDAtMDEtMDMn
KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5XZWVrKDIwMDAwLCA1MCkuZmly
c3REYXkoKS50b1N0cmluZygpJywgJzIwMDAwLTEyLTExJyk7CisKKyAgICBkZWJ1ZygnVGVzdCBX
ZWVrLm1pZGRsZURheScpOworCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuV2Vl
aygyMDAwLCAyKS5taWRkbGVEYXkoKS50b1N0cmluZygpJywgJzIwMDAtMDEtMTMnKTsKKyAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5XZWVrKDIwMDAsIDUwKS5taWRkbGVEYXkoKS50
b1N0cmluZygpJywgJzIwMDAtMTItMTQnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25l
dyBwdy5XZWVrKDEsIDEpLm1pZGRsZURheSgpLnRvU3RyaW5nKCknLCAnMDAwMS0wMS0wNCcpOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3LldlZWsoMSwgNTApLm1pZGRsZURheSgp
LnRvU3RyaW5nKCknLCAnMDAwMS0xMi0xMycpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygn
bmV3IHB3LldlZWsoMjAwMDAsIDEpLm1pZGRsZURheSgpLnRvU3RyaW5nKCknLCAnMjAwMDAtMDEt
MDYnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5XZWVrKDIwMDAwLCA1MCku
bWlkZGxlRGF5KCkudG9TdHJpbmcoKScsICcyMDAwMC0xMi0xNCcpOworCisKKyAgICBkZWJ1Zygn
VGVzdCBXZWVrLmxhc3REYXknKTsKKworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3
LldlZWsoMjAwMCwgMikubGFzdERheSgpLnRvU3RyaW5nKCknLCAnMjAwMC0wMS0xNicpOworICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3LldlZWsoMjAwMCwgNTApLmxhc3REYXkoKS50
b1N0cmluZygpJywgJzIwMDAtMTItMTcnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25l
dyBwdy5XZWVrKDEsIDEpLmxhc3REYXkoKS50b1N0cmluZygpJywgJzAwMDEtMDEtMDcnKTsKKyAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5XZWVrKDEsIDUwKS5sYXN0RGF5KCkudG9T
dHJpbmcoKScsICcwMDAxLTEyLTE2Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcg
cHcuV2VlaygyMDAwMCwgMSkubGFzdERheSgpLnRvU3RyaW5nKCknLCAnMjAwMDAtMDEtMDknKTsK
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5XZWVrKDIwMDAwLCA1MCkubGFzdERh
eSgpLnRvU3RyaW5nKCknLCAnMjAwMDAtMTItMTcnKTsKKworICAgIGRlYnVnKCdUZXN0IFdlZWsu
dmFsdWVPZicpOworCisgICAgc2hvdWxkQmUoJ25ldyBwdy5XZWVrKDE5NzAsIDEpLnZhbHVlT2Yo
KScsICctMjU5MjAwMDAwJyk7CisgICAgc2hvdWxkQmUoJ25ldyBwdy5XZWVrKDE5NzAsIDIpLnZh
bHVlT2YoKScsICczNDU2MDAwMDAnKTsKKyAgICBzaG91bGRCZSgnbmV3IHB3LldlZWsoMjAwMCwg
MSkudmFsdWVPZigpJywgJzk0Njg1NzYwMDAwMCcpOworICAgIHNob3VsZEJlKCduZXcgcHcuV2Vl
aygxLCAxKS52YWx1ZU9mKCknLCAnLTYyMTM1NTk2ODAwMDAwJyk7CisgICAgc2hvdWxkQmUoJ25l
dyBwdy5XZWVrKDIwMDAwLCAyKS52YWx1ZU9mKCknLCAnNTY4OTcyNTk4NDAwMDAwJyk7CisKKyAg
ICBkZWJ1ZygnVGVzdCBXZWVrLnRvU3RyaW5nJyk7CisgICAgCisgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCduZXcgcHcuV2VlaygyMDAwLCAyKS50b1N0cmluZygpJywgJzIwMDAtVzAyJyk7Cisg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuV2VlaygxLCA1MCkudG9TdHJpbmcoKScs
ICcwMDAxLVc1MCcpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3LldlZWsoMjAw
MDAsIDIpLnRvU3RyaW5nKCknLCAnMjAwMDAtVzAyJyk7CisKKyAgICBkZWJ1ZygnVGVzdCBXZWVr
LnBhcnNlJyk7CisgICAgCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwdy5XZWVrLnBhcnNl
KCIyMDAwLVcwMiIpLnRvU3RyaW5nKCknLCAnMjAwMC1XMDInKTsKKyAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoJ3B3LldlZWsucGFyc2UoIjE5OTktVzEwIikudG9TdHJpbmcoKScsICcxOTk5LVcx
MCcpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncHcuV2Vlay5wYXJzZSgiMDAwMS1XMjMi
KS50b1N0cmluZygpJywgJzAwMDEtVzIzJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdw
dy5XZWVrLnBhcnNlKCIxMjM0NS1XMzIiKS50b1N0cmluZygpJywgJzEyMzQ1LVczMicpOworICAg
IC8vIEluY29ycmVjdCBudW1iZXIgb2YgbGVhZGluZyB6ZXJvcworICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygncHcuV2Vlay5wYXJzZSgiMDIwMDAtVzAyIikudG9TdHJpbmcoKScsICcyMDAwLVcw
MicpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncHcuV2Vlay5wYXJzZSgiMjAwMC1XMDAy
IikudG9TdHJpbmcoKScsICcyMDAwLVcwMicpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygn
cHcuV2Vlay5wYXJzZSgiMjAwMC1XMiIpLnRvU3RyaW5nKCknLCAnMjAwMC1XMDInKTsKKyAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ3B3LldlZWsucGFyc2UoIjEtVzAyIikudG9TdHJpbmcoKScs
ICcwMDAxLVcwMicpOworICAgIC8vIEludmFsaWQKKyAgICBzaG91bGRCZU51bGwoJ3B3LldlZWsu
cGFyc2UoIjIwMDAtMDItMDMiKScpOworICAgIHNob3VsZEJlTnVsbCgncHcuV2Vlay5wYXJzZSgi
MjAwMC0wMiIpJyk7CisgICAgc2hvdWxkQmVOdWxsKCdwdy5XZWVrLnBhcnNlKCJ4IiknKTsKKyAg
ICBzaG91bGRCZU51bGwoJ3B3LldlZWsucGFyc2UoIiIpJyk7Cit9CisKK2Z1bmN0aW9uIHRlc3RN
b250aCgpIHsKKyAgICAKKyAgICAKKyAgICBkZWJ1ZygnVGVzdCBNb250aCBjb25zdHJ1Y3Rvcicp
OworCisgICAgc2hvdWxkQmUoJ25ldyBwdy5Nb250aCgyMDAwLCAxKS55ZWFyJywgJzIwMDAnKTsK
KyAgICBzaG91bGRCZSgnbmV3IHB3Lk1vbnRoKDIwMDAsIDEpLm1vbnRoJywgJzEnKTsKKworICAg
IHNob3VsZEJlKCduZXcgcHcuTW9udGgoMjAwMCwgLTEpLnllYXInLCAnMTk5OScpOworICAgIHNo
b3VsZEJlKCduZXcgcHcuTW9udGgoMjAwMCwgLTEpLm1vbnRoJywgJzExJyk7CisKKyAgICBzaG91
bGRCZSgnbmV3IHB3Lk1vbnRoKC0yMDAwLCAxKS55ZWFyJywgJy0yMDAwJyk7CisgICAgc2hvdWxk
QmUoJ25ldyBwdy5Nb250aCgtMjAwMCwgMSkubW9udGgnLCAnMScpOworCisgICAgc2hvdWxkQmUo
J25ldyBwdy5Nb250aCgyMDAwLCAxMykueWVhcicsICcyMDAxJyk7CisgICAgc2hvdWxkQmUoJ25l
dyBwdy5Nb250aCgyMDAwLCAxMykubW9udGgnLCAnMScpOworCisgICAgc2hvdWxkQmUoJ25ldyBw
dy5Nb250aCgyMDAwMDAsIDEpLnllYXInLCAnMjAwMDAwJyk7CisgICAgc2hvdWxkQmUoJ25ldyBw
dy5Nb250aCgyMDAwMDAsIDEpLm1vbnRoJywgJzEnKTsKKworICAgIGRlYnVnKCdUZXN0IE1vbnRo
LmVxdWFscycpOworCisgICAgc2hvdWxkQmVUcnVlKCduZXcgcHcuTW9udGgoMjAwMCwgMSkuZXF1
YWxzKG5ldyBwdy5Nb250aCgyMDAwLCAxKSknKTsKKyAgICBzaG91bGRCZVRydWUoJ25ldyBwdy5N
b250aCgyMDAwLCAxKS5lcXVhbHMobmV3IHB3Lk1vbnRoKDIwMDEsIC0xMSkpJyk7CisgICAgc2hv
dWxkQmVUcnVlKCduZXcgcHcuTW9udGgoMjAwMCwgMSkuZXF1YWxzKG5ldyBwdy5Nb250aCgxOTk5
LCAxMykpJyk7CisgICAgCisgICAgc2hvdWxkQmVGYWxzZSgnbmV3IHB3Lk1vbnRoKDIwMDAsIDEp
LmVxdWFscyhuZXcgcHcuTW9udGgoMjAwMCwgMikpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgnbmV3
IHB3Lk1vbnRoKDIwMDAsIDEpLmVxdWFscyhuZXcgcHcuTW9udGgoMjAwMSwgMSkpJyk7CisgICAg
c2hvdWxkQmVGYWxzZSgnbmV3IHB3Lk1vbnRoKDIwMDAsIDEpLmVxdWFscyhuZXcgcHcuTW9udGgo
MjAwMSwgMikpJyk7CisKKyAgICBkZWJ1ZygnVGVzdCBNb250aC5wcmV2aW91cycpOworCisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuTW9udGgoMjAwMCwgMikucHJldmlvdXMoKS50
b1N0cmluZygpJywgJzIwMDAtMDInKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBw
dy5Nb250aCgyMDAwLCAyKS5wcmV2aW91cygxKS50b1N0cmluZygpJywgJzIwMDAtMDInKTsKKyAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5Nb250aCgyMDAwLCAyKS5wcmV2aW91cygy
KS50b1N0cmluZygpJywgJzIwMDAtMDEnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25l
dyBwdy5Nb250aCgyMDAwLCAyKS5wcmV2aW91cygzKS50b1N0cmluZygpJywgJzE5OTktMTInKTsK
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5Nb250aCgyMDAwLCAyKS5wcmV2aW91
cygxMDApLnRvU3RyaW5nKCknLCAnMTk5MS0xMScpOworCisgICAgZGVidWcoJ1Rlc3QgTW9udGgu
bmV4dCcpOworCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuTW9udGgoMjAwMCwg
MikubmV4dCgpLnRvU3RyaW5nKCknLCAnMjAwMC0wNCcpOworICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygnbmV3IHB3Lk1vbnRoKDIwMDAsIDIpLm5leHQoMSkudG9TdHJpbmcoKScsICcyMDAwLTA0
Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuTW9udGgoMjAwMCwgMikubmV4
dCgyKS50b1N0cmluZygpJywgJzIwMDAtMDUnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
J25ldyBwdy5Nb250aCgyMDAwLCAyKS5uZXh0KDMpLnRvU3RyaW5nKCknLCAnMjAwMC0wNicpOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3Lk1vbnRoKDIwMDAsIDIpLm5leHQoMTAw
KS50b1N0cmluZygpJywgJzIwMDgtMDcnKTsKKworICAgIGRlYnVnKCdUZXN0IE1vbnRoLmZpcnN0
RGF5Jyk7CisKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5Nb250aCgyMDAwLCAx
KS5maXJzdERheSgpLnRvU3RyaW5nKCknLCAnMjAwMC0wMi0wMScpOworICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygnbmV3IHB3Lk1vbnRoKDIwMDAsIDExKS5maXJzdERheSgpLnRvU3RyaW5nKCkn
LCAnMjAwMC0xMi0wMScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3Lk1vbnRo
KDEsIDApLmZpcnN0RGF5KCkudG9TdHJpbmcoKScsICcwMDAxLTAxLTAxJyk7CisgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuTW9udGgoMSwgMSkuZmlyc3REYXkoKS50b1N0cmluZygp
JywgJzAwMDEtMDItMDEnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5Nb250
aCgxLCAxMSkuZmlyc3REYXkoKS50b1N0cmluZygpJywgJzAwMDEtMTItMDEnKTsKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5Nb250aCgyMDAwMCwgMCkuZmlyc3REYXkoKS50b1N0
cmluZygpJywgJzIwMDAwLTAxLTAxJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcg
cHcuTW9udGgoMjAwMDAsIDEpLmZpcnN0RGF5KCkudG9TdHJpbmcoKScsICcyMDAwMC0wMi0wMScp
OworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3Lk1vbnRoKDIwMDAwLCAxMSkuZmly
c3REYXkoKS50b1N0cmluZygpJywgJzIwMDAwLTEyLTAxJyk7CisKKyAgICBkZWJ1ZygnVGVzdCBN
b250aC5taWRkbGVEYXknKTsKKworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3Lk1v
bnRoKDIwMDAsIDEpLm1pZGRsZURheSgpLnRvU3RyaW5nKCknLCAnMjAwMC0wMi0xNScpOworICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3Lk1vbnRoKDIwMDAsIDExKS5taWRkbGVEYXko
KS50b1N0cmluZygpJywgJzIwMDAtMTItMTUnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
J25ldyBwdy5Nb250aCgxLCAwKS5taWRkbGVEYXkoKS50b1N0cmluZygpJywgJzAwMDEtMDEtMTUn
KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5Nb250aCgxLCAxKS5taWRkbGVE
YXkoKS50b1N0cmluZygpJywgJzAwMDEtMDItMTUnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ25ldyBwdy5Nb250aCgxLCAxMSkubWlkZGxlRGF5KCkudG9TdHJpbmcoKScsICcwMDAxLTEy
LTE1Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuTW9udGgoMjAwMDAsIDAp
Lm1pZGRsZURheSgpLnRvU3RyaW5nKCknLCAnMjAwMDAtMDEtMTUnKTsKKyAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ25ldyBwdy5Nb250aCgyMDAwMCwgMSkubWlkZGxlRGF5KCkudG9TdHJpbmco
KScsICcyMDAwMC0wMi0xNScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3Lk1v
bnRoKDIwMDAwLCAxMSkubWlkZGxlRGF5KCkudG9TdHJpbmcoKScsICcyMDAwMC0xMi0xNScpOwor
CisKKyAgICBkZWJ1ZygnVGVzdCBNb250aC5sYXN0RGF5Jyk7CisKKyAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoJ25ldyBwdy5Nb250aCgyMDAwLCAxKS5sYXN0RGF5KCkudG9TdHJpbmcoKScsICcy
MDAwLTAyLTI5Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuTW9udGgoMjAw
MCwgMTEpLmxhc3REYXkoKS50b1N0cmluZygpJywgJzIwMDAtMTItMzEnKTsKKyAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5Nb250aCgxLCAwKS5sYXN0RGF5KCkudG9TdHJpbmcoKScs
ICcwMDAxLTAxLTMxJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuTW9udGgo
MSwgMSkubGFzdERheSgpLnRvU3RyaW5nKCknLCAnMDAwMS0wMi0yOCcpOworICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygnbmV3IHB3Lk1vbnRoKDEsIDExKS5sYXN0RGF5KCkudG9TdHJpbmcoKScs
ICcwMDAxLTEyLTMxJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuTW9udGgo
MjAwMDAsIDApLmxhc3REYXkoKS50b1N0cmluZygpJywgJzIwMDAwLTAxLTMxJyk7CisgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuTW9udGgoMjAwMDAsIDEpLmxhc3REYXkoKS50b1N0
cmluZygpJywgJzIwMDAwLTAyLTI5Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcg
cHcuTW9udGgoMjAwMDAsIDExKS5sYXN0RGF5KCkudG9TdHJpbmcoKScsICcyMDAwMC0xMi0zMScp
OworCisgICAgZGVidWcoJ1Rlc3QgTW9udGgudmFsdWVPZicpOworCisgICAgc2hvdWxkQmUoJ25l
dyBwdy5Nb250aCgxOTcwLCAwKS52YWx1ZU9mKCknLCAnMCcpOworICAgIHNob3VsZEJlKCduZXcg
cHcuTW9udGgoMTk3MCwgMSkudmFsdWVPZigpJywgJzEnKTsKKyAgICBzaG91bGRCZSgnbmV3IHB3
Lk1vbnRoKDIwMDAsIDApLnZhbHVlT2YoKScsICczNjAnKTsKKyAgICBzaG91bGRCZSgnbmV3IHB3
Lk1vbnRoKDEsIDApLnZhbHVlT2YoKScsICctMjM2MjgnKTsKKyAgICBzaG91bGRCZSgnbmV3IHB3
Lk1vbnRoKDIwMDAwLCAxMSkudmFsdWVPZigpJywgJzIxNjM3MScpOworCisgICAgZGVidWcoJ1Rl
c3QgTW9udGgudG9TdHJpbmcnKTsKKyAgICAKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25l
dyBwdy5Nb250aCgyMDAwLCAwKS50b1N0cmluZygpJywgJzIwMDAtMDEnKTsKKyAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5Nb250aCgxLCAxMSkudG9TdHJpbmcoKScsICcwMDAxLTEy
Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuTW9udGgoMjAwMDAsIDUpLnRv
U3RyaW5nKCknLCAnMjAwMDAtMDYnKTsKKworICAgIGRlYnVnKCdUZXN0IE1vbnRoLnBhcnNlJyk7
CisgICAgCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwdy5Nb250aC5wYXJzZSgiMjAwMC0w
MSIpLnRvU3RyaW5nKCknLCAnMjAwMC0wMScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygn
cHcuTW9udGgucGFyc2UoIjE5OTktMTAiKS50b1N0cmluZygpJywgJzE5OTktMTAnKTsKKyAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ3B3Lk1vbnRoLnBhcnNlKCIwMDAxLTExIikudG9TdHJpbmco
KScsICcwMDAxLTExJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwdy5Nb250aC5wYXJz
ZSgiMTIzNDUtMDMiKS50b1N0cmluZygpJywgJzEyMzQ1LTAzJyk7CisgICAgLy8gSW5jb3JyZWN0
IG51bWJlciBvZiBsZWFkaW5nIHplcm9zCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwdy5N
b250aC5wYXJzZSgiMDIwMDAtMDIiKS50b1N0cmluZygpJywgJzIwMDAtMDInKTsKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ3B3Lk1vbnRoLnBhcnNlKCIyMDAwLTAwMiIpLnRvU3RyaW5nKCkn
LCAnMjAwMC0wMicpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncHcuTW9udGgucGFyc2Uo
IjIwMDAtMiIpLnRvU3RyaW5nKCknLCAnMjAwMC0wMicpOworICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygncHcuTW9udGgucGFyc2UoIjEtMDIiKS50b1N0cmluZygpJywgJzAwMDEtMDInKTsKKyAg
ICAvLyBJbnZhbGlkCisgICAgc2hvdWxkQmVOdWxsKCdwdy5Nb250aC5wYXJzZSgiMjAwMC0wMi0w
MyIpJyk7CisgICAgc2hvdWxkQmVOdWxsKCdwdy5Nb250aC5wYXJzZSgiMjAwMC1XMDIiKScpOwor
ICAgIHNob3VsZEJlTnVsbCgncHcuTW9udGgucGFyc2UoIngiKScpOworICAgIHNob3VsZEJlTnVs
bCgncHcuTW9udGgucGFyc2UoIiIpJyk7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189735</attachid>
            <date>2013-02-22 03:34:40 -0800</date>
            <delta_ts>2013-02-24 08:44:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110454-20130222203059.patch</filename>
            <type>text/plain</type>
            <size>52831</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNjg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjg5NmNlNDNiODI0NmIy
YTE5MDI0NDBiMzhlZWVkMjE2MzA1NWRjYS4uZWExMzRhYWRhYTBhZDRjMzVlMDNjZTEzMTA3NGE2
MzFiMGJlMGMyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEzLTAyLTIyICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBtZXRob2RzIHRv
IGRhdGUgdHlwZXMgZm9yIG5ldyBjYWxlbmRhciBwaWNrZXIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDQ1NAorCisgICAgICAgIFJldmlld2VkIGJ5
IEtlbnQgVGFtdXJhLgorCisgICAgICAgIEFkZGluZyBzb21lIG1ldGhvZHMgdG8gZGF0ZSB0eXBl
cyBhcyBwYXJ0IG9mIHRoZSBjYWxlbmRhciBwaWNrZXIgcmVkZXNpZ24gKEJ1ZyAxMDk0MzkpLgor
CisgICAgICAgIFRlc3Q6IHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZm9ybXMvY2FsZW5kYXItcGlj
a2VyL2NhbGVuZGFyLXBpY2tlci1kYXRlLXR5cGVzLmh0bWwKKworICAgICAgICAqIFJlc291cmNl
cy9wYWdlcG9wdXBzL2NhbGVuZGFyUGlja2VyLmpzOgorICAgICAgICAoY3JlYXRlVVRDRGF0ZSk6
CisgICAgICAgIChEYXRlVHlwZSk6IEJhc2UgY2xhc3MgZm9yIERheSwgV2VlayBhbmQgTW9udGgu
CisgICAgICAgIChEYXkpOiBTaW1wbGlmaWVkIGNvbnN0cnVjdG9yIHRvIG9ubHkgYWNjZXB0IHll
YXIsIG1vbnRoLCBkYXRlLgorICAgICAgICAoRGF5LmNyZWF0ZUZyb21WYWx1ZSk6IENyZWF0ZXMg
YSBuZXcgRGF5IGZyb20gYSB2YWx1ZS4KKyAgICAgICAgKERheS5jcmVhdGVGcm9tRGF0ZSk6IFRo
cm93IGFuIGVycm9yIGlmIHRoZSBnaXZlbiBkYXRlIGlzIGludmFsaWQuCisgICAgICAgIChEYXku
Y3JlYXRlRnJvbURheSk6CisgICAgICAgIChEYXkucHJvdG90eXBlLmVxdWFscyk6IEFjY2VwdCBu
b24gRGF5IG9iamVjdHMuCisgICAgICAgIChEYXkucHJvdG90eXBlLnByZXZpb3VzKTogTW9kaWZp
ZWQgdG8gdGFrZSBhbiBvZmZzZXQgdmFsdWUuCisgICAgICAgIChEYXkucHJvdG90eXBlLm5leHQp
OiBEaXR0by4KKyAgICAgICAgKERheS5wcm90b3R5cGUuZmlyc3REYXkpOiBSZXR1cm5zIHRoZSBm
aXJzdCBkYXkgaW4gdGhlIHJhbmdlLiBGb3IgRGF5J3MgY2FzZSwgcmV0dXJucyBpdHNlbGYuCisg
ICAgICAgIChEYXkucHJvdG90eXBlLm1pZGRsZURheSk6IFJldHVybnMgdGhlIG1pZGRsZSBkYXkg
aW4gdGhlIHJhbmdlLiBGb3IgRGF5J3MgY2FzZSwgcmV0dXJucyBpdHNlbGYuCisgICAgICAgIChE
YXkucHJvdG90eXBlLmxhc3REYXkpOiBSZXR1cm5zIHRoZSBtaWRkbGUgZGF5IGluIHRoZSByYW5n
ZS4gRm9yIERheSdzIGNhc2UsIHJldHVybnMgaXRzZWxmLgorICAgICAgICAoRGF5LnByb3RvdHlw
ZS52YWx1ZU9mKToKKyAgICAgICAgKERheS5wcm90b3R5cGUud2Vla0RheSk6IFJldHVybnMgdGhl
IHdlZWsgZGF5LgorICAgICAgICAoV2Vlayk6IFNpbXBsaWZpZWQgY29uc3RydWN0b3IgdG8gb25s
eSBhY2NlcHQgeWVhciwgbW9udGgsIGRhdGUuCisgICAgICAgIChXZWVrLmNyZWF0ZUZyb21WYWx1
ZSk6CisgICAgICAgIChXZWVrLmNyZWF0ZUZyb21EYXRlKToKKyAgICAgICAgKFdlZWsuY3JlYXRl
RnJvbURheSk6CisgICAgICAgIChXZWVrLndlZWtPbmVTdGFydERhdGVGb3JZZWFyKToKKyAgICAg
ICAgKFdlZWsud2Vla09uZVN0YXJ0RGF5Rm9yWWVhcik6CisgICAgICAgIChXZWVrLl9udW1iZXJP
ZldlZWtzU2luY2VEYXRlKToKKyAgICAgICAgKFdlZWsucHJvdG90eXBlLmVxdWFscyk6CisgICAg
ICAgIChXZWVrLnByb3RvdHlwZS5wcmV2aW91cyk6CisgICAgICAgIChXZWVrLnByb3RvdHlwZS5u
ZXh0KToKKyAgICAgICAgKFdlZWsucHJvdG90eXBlLmZpcnN0RGF5KTogUmV0dXJucyB0aGUgZmly
c3QgZGF5IGluIHRoZSB3ZWVrLgorICAgICAgICAoV2Vlay5wcm90b3R5cGUubWlkZGxlRGF5KTog
UmV0dXJucyB0aGUgdGhlIGRheSBmb3IgVGh1cnNkYXkuCisgICAgICAgIChXZWVrLnByb3RvdHlw
ZS5sYXN0RGF5KTogUmV0dXJucyB0aGUgbGFzdCBkYXkgaW4gdGhlIHdlZWsuCisgICAgICAgIChX
ZWVrLnByb3RvdHlwZS52YWx1ZU9mKToKKyAgICAgICAgKE1vbnRoKToKKyAgICAgICAgKE1vbnRo
LmNyZWF0ZUZyb21WYWx1ZSk6CisgICAgICAgIChNb250aC5jcmVhdGVGcm9tRGF0ZSk6CisgICAg
ICAgIChNb250aC5jcmVhdGVGcm9tRGF5KToKKyAgICAgICAgKE1vbnRoLnByb3RvdHlwZS5jb250
YWluc0RheSk6CisgICAgICAgIChNb250aC5wcm90b3R5cGUuZXF1YWxzKToKKyAgICAgICAgKE1v
bnRoLnByb3RvdHlwZS5wcmV2aW91cyk6CisgICAgICAgIChNb250aC5wcm90b3R5cGUubmV4dCk6
CisgICAgICAgIChNb250aC5wcm90b3R5cGUuZmlyc3REYXkpOiBSZXR1cm5zIHRoZSBmaXJzdCBk
YXkgaW4gdGhlIG1vbnRoLgorICAgICAgICAoTW9udGgucHJvdG90eXBlLm1pZGRsZURheSk6IFJl
dHVybnMgdGhlIG1pZGRsZSBkYXkgaW4gdGhlIG1vbnRoLgorICAgICAgICAoTW9udGgucHJvdG90
eXBlLmxhc3REYXkpOiBSZXR1cm5zIHRoZSBsYXN0IGRheSBpbiB0aGUgbW9udGguCisgICAgICAg
IChNb250aC5wcm90b3R5cGUudmFsdWVPZik6CisgICAgICAgIChNb250aC5wcm90b3R5cGUudG9M
b2NhbGVTdHJpbmcpOiBNb3ZlZCBsb2NhdGlvbi4KKyAgICAgICAgKE1vbnRoLnByb3RvdHlwZS50
b1Nob3J0TG9jYWxlU3RyaW5nKTogUmV0dXJucyB0aGUgbW9udGggc3RyaW5nIGluIHNob3J0IGZv
cm1hdC4KKyAgICAgICAgKENhbGVuZGFyUGlja2VyKTogVXNlIGNyZWF0ZUZyb21WYWx1ZS4KKyAg
ICAgICAgKFllYXJNb250aENvbnRyb2xsZXIucHJvdG90eXBlLnNldE1vbnRoKTogRGl0dG8uCisg
ICAgICAgIChZZWFyTW9udGhDb250cm9sbGVyLnByb3RvdHlwZS5tb3ZlUmVsYXRpdmVseSk6IERp
dHRvLgorCiAyMDEzLTAyLTIxICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAg
ICAgICBGb2xsb3d1cCBjb21taXQgZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMTA1NDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdl
cG9wdXBzL2NhbGVuZGFyUGlja2VyLmpzIGIvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vw
b3B1cHMvY2FsZW5kYXJQaWNrZXIuanMKaW5kZXggYzEyMjk1Y2YzMWJiODlmZGFlZDdiOGE1MTc3
ODVkZmQ2MjY4MGY5Ny4uOWU1NjI2ZWVmY2Y4YzFlYWMzNjk4NDZiYjNkZjBlZjRkM2YzOGIyYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvY2FsZW5kYXJQ
aWNrZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvY2FsZW5k
YXJQaWNrZXIuanMKQEAgLTExMSw2ICsxMTEsMTkgQEAgZnVuY3Rpb24gbG9jYWxpemVOdW1iZXIo
bnVtYmVyKSB7CiB9CiAKIC8qKgorICogQGVudW0ge251bWJlcn0KKyAqLwordmFyIFdlZWtEYXkg
PSB7CisgICAgU3VuZGF5OiAwLAorICAgIE1vbmRheTogMSwKKyAgICBUdWVzZGF5OiAyLAorICAg
IFdlZG5lc2RheTogMywKKyAgICBUaHVyc2RheTogNCwKKyAgICBGcmlkYXk6IDUsCisgICAgU2F0
dXJkYXk6IDYKK307CisKKy8qKgogICogQGNvbnN0CiAgKiBAdHlwZSB7bnVtYmVyfQogICovCkBA
IC0xNDMsMjQgKzE1NiwxMyBAQCBmdW5jdGlvbiBmb3JtYXRKYXBhbmVzZUltcGVyaWFsRXJhKHll
YXIsIG1vbnRoKSB7CiAgICAgcmV0dXJuICIiOwogfQogCi0vKioKLSAqIEByZXR1cm4geyFzdHJp
bmd9Ci0gKi8KLU1vbnRoLnByb3RvdHlwZS50b0xvY2FsZVN0cmluZyA9IGZ1bmN0aW9uKCkgewot
ICAgIGlmIChpc05hTih0aGlzLnllYXIpIHx8IGlzTmFOKHRoaXMueWVhcikpCi0gICAgICAgIHJl
dHVybiAiSW52YWxpZCBNb250aCI7Ci0gICAgaWYgKGdldExhbmd1YWdlKCkgPT0gImphIikKLSAg
ICAgICAgcmV0dXJuICIiICsgdGhpcy55ZWFyICsgIuW5tCIgKyBmb3JtYXRKYXBhbmVzZUltcGVy
aWFsRXJhKHRoaXMueWVhciwgdGhpcy5tb250aCkgKyAiICIgKyAodGhpcy5tb250aCArIDEpICsg
IuaciCI7Ci0gICAgcmV0dXJuIHdpbmRvdy5wYWdlUG9wdXBDb250cm9sbGVyLmZvcm1hdE1vbnRo
KHRoaXMueWVhciwgdGhpcy5tb250aCk7Ci19OwotCiBmdW5jdGlvbiBjcmVhdGVVVENEYXRlKHll
YXIsIG1vbnRoLCBkYXRlKSB7CiAgICAgdmFyIG5ld0RhdGUgPSBuZXcgRGF0ZSgwKTsKICAgICBu
ZXdEYXRlLnNldFVUQ0Z1bGxZZWFyKHllYXIpOwogICAgIG5ld0RhdGUuc2V0VVRDTW9udGgobW9u
dGgpOwogICAgIG5ld0RhdGUuc2V0VVRDRGF0ZShkYXRlKTsKICAgICByZXR1cm4gbmV3RGF0ZTsK
LX07Cit9CiAKIC8qKgogICogQHBhcmFtIHtzdHJpbmd9IGRhdGVTdHJpbmcKQEAgLTE3NywyOSAr
MTc5LDcwIEBAIGZ1bmN0aW9uIHBhcnNlRGF0ZVN0cmluZyhkYXRlU3RyaW5nKSB7CiB9CiAKIC8q
KgorICogQGNvbnN0CisgKiBAdHlwZSB7bnVtYmVyfQorICovCit2YXIgRGF5c1BlcldlZWsgPSA3
OworCisvKioKKyAqIEBjb25zdAorICogQHR5cGUge251bWJlcn0KKyAqLwordmFyIE1vbnRoc1Bl
clllYXIgPSAxMjsKKworLyoqCisgKiBAY29uc3QKKyAqIEB0eXBlIHtudW1iZXJ9CisgKi8KK3Zh
ciBNaWxsaXNlY29uZHNQZXJEYXkgPSAyNCAqIDYwICogNjAgKiAxMDAwOworCisvKioKKyAqIEBj
b25zdAorICogQHR5cGUge251bWJlcn0KKyAqLwordmFyIE1pbGxpc2Vjb25kc1BlcldlZWsgPSBE
YXlzUGVyV2VlayAqIE1pbGxpc2Vjb25kc1BlckRheTsKKworLyoqCisgKiBAY29uc3RydWN0b3IK
KyAqLworZnVuY3Rpb24gRGF0ZVR5cGUoKSB7Cit9CisKKy8qKgogICogQGNvbnN0cnVjdG9yCi0g
KiBAcGFyYW0geyFudW1iZXJ8RGF5fSB2YWx1ZU9yRGF5T3JZZWFyCi0gKiBAcGFyYW0geyFudW1i
ZXI9fSBtb250aAotICogQHBhcmFtIHshbnVtYmVyPX0gZGF0ZQotICovCi1mdW5jdGlvbiBEYXko
dmFsdWVPckRheU9yWWVhciwgbW9udGgsIGRhdGUpIHsKLSAgICB2YXIgZGF0ZU9iamVjdDsKLSAg
ICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PSAzKQotICAgICAgICBkYXRlT2JqZWN0ID0gY3JlYXRl
VVRDRGF0ZSh2YWx1ZU9yRGF5T3JZZWFyLCBtb250aCwgZGF0ZSk7Ci0gICAgZWxzZSBpZiAodmFs
dWVPckRheU9yWWVhciBpbnN0YW5jZW9mIERheSkKLSAgICAgICAgZGF0ZU9iamVjdCA9IGNyZWF0
ZVVUQ0RhdGUodmFsdWVPckRheU9yWWVhci55ZWFyLCB2YWx1ZU9yRGF5T3JZZWFyLm1vbnRoLCB2
YWx1ZU9yRGF5T3JZZWFyLmRhdGUpOwotICAgIGVsc2UKLSAgICAgICAgZGF0ZU9iamVjdCA9IG5l
dyBEYXRlKHZhbHVlT3JEYXlPclllYXIpOwotICAgIHRoaXMueWVhciA9IGRhdGVPYmplY3QuZ2V0
VVRDRnVsbFllYXIoKTsgICAgCisgKiBAZXh0ZW5kcyBEYXRlVHlwZQorICogQHBhcmFtIHshbnVt
YmVyfSB5ZWFyCisgKiBAcGFyYW0geyFudW1iZXJ9IG1vbnRoCisgKiBAcGFyYW0geyFudW1iZXJ9
IGRhdGUKKyAqLworZnVuY3Rpb24gRGF5KHllYXIsIG1vbnRoLCBkYXRlKSB7CisgICAgdmFyIGRh
dGVPYmplY3QgPSBjcmVhdGVVVENEYXRlKHllYXIsIG1vbnRoLCBkYXRlKTsKKyAgICBpZiAoaXNO
YU4oZGF0ZU9iamVjdC52YWx1ZU9mKCkpKQorICAgICAgICB0aHJvdyAiSW52YWxpZCBkYXRlIjsK
KyAgICAvKioKKyAgICAgKiBAdHlwZSB7bnVtYmVyfQorICAgICAqIEBjb25zdAorICAgICAqLwor
ICAgIHRoaXMueWVhciA9IGRhdGVPYmplY3QuZ2V0VVRDRnVsbFllYXIoKTsgICAKKyAgICAgLyoq
CisgICAgICogQHR5cGUge251bWJlcn0KKyAgICAgKiBAY29uc3QKKyAgICAgKi8gIAogICAgIHRo
aXMubW9udGggPSBkYXRlT2JqZWN0LmdldFVUQ01vbnRoKCk7CisgICAgLyoqCisgICAgICogQHR5
cGUge251bWJlcn0KKyAgICAgKiBAY29uc3QKKyAgICAgKi8KICAgICB0aGlzLmRhdGUgPSBkYXRl
T2JqZWN0LmdldFVUQ0RhdGUoKTsKIH07CiAKK0RheS5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRl
KERhdGVUeXBlLnByb3RvdHlwZSk7CisKIERheS5JU09TdHJpbmdSZWdFeHAgPSAvXihcZCspLShc
ZCspLShcZCspLzsKIAogLyoqCiAgKiBAcGFyYW0geyFzdHJpbmd9IHN0cgotICogQHJldHVybiB7
P01vbnRofQorICogQHJldHVybiB7P0RheX0KICAqLwogRGF5LnBhcnNlID0gZnVuY3Rpb24oc3Ry
KSB7CiAgICAgdmFyIG1hdGNoID0gRGF5LklTT1N0cmluZ1JlZ0V4cC5leGVjKHN0cik7CkBAIC0y
MTIsMTQgKzI1NSwzMiBAQCBEYXkucGFyc2UgPSBmdW5jdGlvbihzdHIpIHsKIH07CiAKIC8qKgor
ICogQHBhcmFtIHshbnVtYmVyfSB2YWx1ZQorICogQHJldHVybiB7IURheX0KKyAqLworRGF5LmNy
ZWF0ZUZyb21WYWx1ZSA9IGZ1bmN0aW9uKG1pbGxpc2Vjb25kc1NpbmNlRXBvY2gpIHsKKyAgICBy
ZXR1cm4gRGF5LmNyZWF0ZUZyb21EYXRlKG5ldyBEYXRlKG1pbGxpc2Vjb25kc1NpbmNlRXBvY2gp
KQorfTsKKworLyoqCiAgKiBAcGFyYW0geyFEYXRlfSBkYXRlCiAgKiBAcmV0dXJuIHshRGF5fQog
ICovCiBEYXkuY3JlYXRlRnJvbURhdGUgPSBmdW5jdGlvbihkYXRlKSB7CisgICAgaWYgKGlzTmFO
KGRhdGUudmFsdWVPZigpKSkKKyAgICAgICAgdGhyb3cgIkludmFsaWQgZGF0ZSI7CiAgICAgcmV0
dXJuIG5ldyBEYXkoZGF0ZS5nZXRVVENGdWxsWWVhcigpLCBkYXRlLmdldFVUQ01vbnRoKCksIGRh
dGUuZ2V0VVRDRGF0ZSgpKTsKIH07CiAKIC8qKgorICogQHBhcmFtIHshRGF5fSBkYXkKKyAqIEBy
ZXR1cm4geyFEYXl9CisgKi8KK0RheS5jcmVhdGVGcm9tRGF5ID0gZnVuY3Rpb24oZGF5KSB7Cisg
ICAgcmV0dXJuIGRheTsKK307CisKKy8qKgogICogQHJldHVybiB7IURheX0KICAqLwogRGF5LmNy
ZWF0ZUZyb21Ub2RheSA9IGZ1bmN0aW9uKCkgewpAQCAtMjI4LDI1ICsyODksMzEgQEAgRGF5LmNy
ZWF0ZUZyb21Ub2RheSA9IGZ1bmN0aW9uKCkgewogfTsKIAogLyoqCi0gKiBAcGFyYW0geyFEYXl9
IG90aGVyCi0gKiBAcmV0dXJuIHshYm9vbH0KKyAqIEBwYXJhbSB7IURhdGVUeXBlfSBvdGhlcgor
ICogQHJldHVybiB7IWJvb2xlYW59CiAgKi8KIERheS5wcm90b3R5cGUuZXF1YWxzID0gZnVuY3Rp
b24ob3RoZXIpIHsKLSAgICByZXR1cm4gdGhpcy55ZWFyID09PSBvdGhlci55ZWFyICYmIHRoaXMu
bW9udGggPT09IG90aGVyLm1vbnRoICYmIHRoaXMuZGF0ZSA9PT0gb3RoZXIuZGF0ZTsKKyAgICBy
ZXR1cm4gb3RoZXIgaW5zdGFuY2VvZiBEYXkgJiYgdGhpcy55ZWFyID09PSBvdGhlci55ZWFyICYm
IHRoaXMubW9udGggPT09IG90aGVyLm1vbnRoICYmIHRoaXMuZGF0ZSA9PT0gb3RoZXIuZGF0ZTsK
IH07CiAKIC8qKgorICogQHBhcmFtIHshbnVtYmVyPX0gb2Zmc2V0CiAgKiBAcmV0dXJuIHshRGF5
fQogICovCi1EYXkucHJvdG90eXBlLnByZXZpb3VzID0gZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJu
IG5ldyBEYXkodGhpcy55ZWFyLCB0aGlzLm1vbnRoLCB0aGlzLmRhdGUgLSAxKTsKK0RheS5wcm90
b3R5cGUucHJldmlvdXMgPSBmdW5jdGlvbihvZmZzZXQpIHsKKyAgICBpZiAodHlwZW9mIG9mZnNl
dCA9PT0gInVuZGVmaW5lZCIpCisgICAgICAgIG9mZnNldCA9IDE7CisgICAgcmV0dXJuIG5ldyBE
YXkodGhpcy55ZWFyLCB0aGlzLm1vbnRoLCB0aGlzLmRhdGUgLSBvZmZzZXQpOwogfTsKIAogLyoq
CisgKiBAcGFyYW0geyFudW1iZXI9fSBvZmZzZXQKICAqIEByZXR1cm4geyFEYXl9CiAgKi8KLURh
eS5wcm90b3R5cGUubmV4dCA9IGZ1bmN0aW9uKCkgewotICAgIHJldHVybiBuZXcgRGF5KHRoaXMu
eWVhciwgdGhpcy5tb250aCwgdGhpcy5kYXRlICsgMSk7CitEYXkucHJvdG90eXBlLm5leHQgPSBm
dW5jdGlvbihvZmZzZXQpIHsKKyBpZiAodHlwZW9mIG9mZnNldCA9PT0gInVuZGVmaW5lZCIpCisg
ICAgIG9mZnNldCA9IDE7CisgICAgcmV0dXJuIG5ldyBEYXkodGhpcy55ZWFyLCB0aGlzLm1vbnRo
LCB0aGlzLmRhdGUgKyBvZmZzZXQpOwogfTsKIAogLyoqCkBAIC0yNjQsMTAgKzMzMSwzOCBAQCBE
YXkucHJvdG90eXBlLmVuZERhdGUgPSBmdW5jdGlvbigpIHsKIH07CiAKIC8qKgorICogQHJldHVy
biB7IURheX0KKyAqLworRGF5LnByb3RvdHlwZS5maXJzdERheSA9IGZ1bmN0aW9uKCkgeworICAg
IHJldHVybiB0aGlzOworfTsKKworLyoqCisgKiBAcmV0dXJuIHshRGF5fQorICovCitEYXkucHJv
dG90eXBlLm1pZGRsZURheSA9IGZ1bmN0aW9uKCkgeworICAgIHJldHVybiB0aGlzOworfTsKKwor
LyoqCisgKiBAcmV0dXJuIHshRGF5fQorICovCitEYXkucHJvdG90eXBlLmxhc3REYXkgPSBmdW5j
dGlvbigpIHsKKyAgICByZXR1cm4gdGhpczsKK307CisKKy8qKgogICogQHJldHVybiB7IW51bWJl
cn0KICAqLwogRGF5LnByb3RvdHlwZS52YWx1ZU9mID0gZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJu
IHRoaXMuc3RhcnREYXRlKCkuZ2V0VGltZSgpOworICAgIHJldHVybiBjcmVhdGVVVENEYXRlKHRo
aXMueWVhciwgdGhpcy5tb250aCwgdGhpcy5kYXRlKS5nZXRUaW1lKCk7Cit9OworCisvKioKKyAq
IEByZXR1cm4geyFXZWVrRGF5fQorICovCitEYXkucHJvdG90eXBlLndlZWtEYXkgPSBmdW5jdGlv
bigpIHsKKyAgICByZXR1cm4gY3JlYXRlVVRDRGF0ZSh0aGlzLnllYXIsIHRoaXMubW9udGgsIHRo
aXMuZGF0ZSkuZ2V0VVRDRGF5KCk7CiB9OwogCiAvKioKQEAgLTI4MSw0NiArMzc2LDUwIEBAIERh
eS5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbigpIHsKIH07CiAKIC8vIFNlZSBXZWJDb3Jl
L3BsYXRmb3JtL0RhdGVDb21wb25lbnRzLmguCi1EYXkuTWluaW11bSA9IG5ldyBEYXkoLTYyMTM1
NTk2ODAwMDAwLjApOwotRGF5Lk1heGltdW0gPSBuZXcgRGF5KDg2NDAwMDAwMDAwMDAwMDAuMCk7
CitEYXkuTWluaW11bSA9IERheS5jcmVhdGVGcm9tVmFsdWUoLTYyMTM1NTk2ODAwMDAwLjApOwor
RGF5Lk1heGltdW0gPSBEYXkuY3JlYXRlRnJvbVZhbHVlKDg2NDAwMDAwMDAwMDAwMDAuMCk7CisK
IC8vIFNlZSBXZWJDb3JlL2h0bWwvRGF5SW5wdXRUeXBlLmNwcC4KIERheS5EZWZhdWx0U3RlcCA9
IDg2NDAwMDAwOwogRGF5LkRlZmF1bHRTdGVwQmFzZSA9IDA7CiAKIC8qKgogICogQGNvbnN0cnVj
dG9yCi0gKiBAcGFyYW0geyFudW1iZXJ8V2Vla30gdmFsdWVPcldlZWtPclllYXIKLSAqIEBwYXJh
bSB7IW51bWJlcj19IHdlZWsKLSAqLwotZnVuY3Rpb24gV2Vlayh2YWx1ZU9yV2Vla09yWWVhciwg
d2VlaykgewotICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAyKSB7Ci0gICAgICAgIHRoaXMu
eWVhciA9IHZhbHVlT3JXZWVrT3JZZWFyOwotICAgICAgICB0aGlzLndlZWsgPSB3ZWVrOwotICAg
ICAgICAvLyBOdW1iZXIgb2YgeWVhcnMgcGVyIHllYXIgaXMgZWl0aGVyIDUyIG9yIDUzLgotICAg
ICAgICBpZiAodGhpcy53ZWVrIDwgMSB8fCAodGhpcy53ZWVrID4gNTIgJiYgdGhpcy53ZWVrID4g
V2Vlay5udW1iZXJPZldlZWtzSW5ZZWFyKHRoaXMueWVhcikpKSB7Ci0gICAgICAgICAgICB2YXIg
bm9ybWFsaXplZFdlZWsgPSBXZWVrLmNyZWF0ZUZyb21EYXRlKHRoaXMuc3RhcnREYXRlKCkpOwot
ICAgICAgICAgICAgdGhpcy55ZWFyID0gbm9ybWFsaXplZFdlZWsueWVhcjsKLSAgICAgICAgICAg
IHRoaXMud2VlayA9IG5vcm1hbGl6ZWRXZWVrLndlZWs7Ci0gICAgICAgIH0KLSAgICB9IGVsc2Ug
aWYgKHZhbHVlT3JXZWVrT3JZZWFyIGluc3RhbmNlb2YgV2VlaykgewotICAgICAgICB0aGlzLnll
YXIgPSB2YWx1ZU9yV2Vla09yWWVhci55ZWFyOwotICAgICAgICB0aGlzLndlZWsgPSB2YWx1ZU9y
V2Vla09yWWVhci53ZWVrOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHZhciB3ZWVrID0gV2Vlay5j
cmVhdGVGcm9tRGF0ZShuZXcgRGF0ZSh2YWx1ZU9yV2Vla09yWWVhcikpOwotICAgICAgICB0aGlz
LnllYXIgPSB3ZWVrLnllYXI7Ci0gICAgICAgIHRoaXMud2VlayA9IHdlZWsud2VlazsKKyAqIEBl
eHRlbmRzIERhdGVUeXBlCisgKiBAcGFyYW0geyFudW1iZXJ9IHllYXIKKyAqIEBwYXJhbSB7IW51
bWJlcn0gd2VlaworICovCitmdW5jdGlvbiBXZWVrKHllYXIsIHdlZWspIHsgCisgICAgLyoqCisg
ICAgICogQHR5cGUge251bWJlcn0KKyAgICAgKiBAY29uc3QKKyAgICAgKi8KKyAgICB0aGlzLnll
YXIgPSB5ZWFyOworICAgIC8qKgorICAgICAqIEB0eXBlIHtudW1iZXJ9CisgICAgICogQGNvbnN0
CisgICAgICovCisgICAgdGhpcy53ZWVrID0gd2VlazsKKyAgICAvLyBOdW1iZXIgb2YgeWVhcnMg
cGVyIHllYXIgaXMgZWl0aGVyIDUyIG9yIDUzLgorICAgIGlmICh0aGlzLndlZWsgPCAxIHx8ICh0
aGlzLndlZWsgPiA1MiAmJiB0aGlzLndlZWsgPiBXZWVrLm51bWJlck9mV2Vla3NJblllYXIodGhp
cy55ZWFyKSkpIHsKKyAgICAgICAgdmFyIG5vcm1hbGl6ZWRXZWVrID0gV2Vlay5jcmVhdGVGcm9t
RGF5KHRoaXMuZmlyc3REYXkoKSk7CisgICAgICAgIHRoaXMueWVhciA9IG5vcm1hbGl6ZWRXZWVr
LnllYXI7CisgICAgICAgIHRoaXMud2VlayA9IG5vcm1hbGl6ZWRXZWVrLndlZWs7CiAgICAgfQog
fQogCi1XZWVrLk1pbGxpc2Vjb25kc1BlcldlZWsgPSA3ICogMjQgKiA2MCAqIDYwICogMTAwMDsK
IFdlZWsuSVNPU3RyaW5nUmVnRXhwID0gL14oXGQrKS1bd1ddKFxkKykkLzsKKwogLy8gU2VlIFdl
YkNvcmUvcGxhdGZvcm0vRGF0ZUNvbXBvbmVudHMuaC4KIFdlZWsuTWluaW11bSA9IG5ldyBXZWVr
KDEsIDEpOwogV2Vlay5NYXhpbXVtID0gbmV3IFdlZWsoMjc1NzYwLCAzNyk7CisKIC8vIFNlZSBX
ZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5jcHAuCiBXZWVrLkRlZmF1bHRTdGVwID0gNjA0ODAw
MDAwOwogV2Vlay5EZWZhdWx0U3RlcEJhc2UgPSAtMjU5MjAwMDAwOwogCitXZWVrLkVwb2NoV2Vl
a0RheSA9IGNyZWF0ZVVUQ0RhdGUoMTk3MCwgMCwgMCkuZ2V0VVRDRGF5KCk7CisKIC8qKgogICog
QHBhcmFtIHshc3RyaW5nfSBzdHIKICAqIEByZXR1cm4gez9XZWVrfQpAQCAtMzM1LDEwICs0MzQs
MjAgQEAgV2Vlay5wYXJzZSA9IGZ1bmN0aW9uKHN0cikgewogfTsKIAogLyoqCisgKiBAcGFyYW0g
eyFudW1iZXJ9IG1pbGxpc2Vjb25kc1NpbmNlRXBvY2gKKyAqIEByZXR1cm4geyFXZWVrfQorICov
CitXZWVrLmNyZWF0ZUZyb21WYWx1ZSA9IGZ1bmN0aW9uKG1pbGxpc2Vjb25kc1NpbmNlRXBvY2gp
IHsKKyAgICByZXR1cm4gV2Vlay5jcmVhdGVGcm9tRGF0ZShuZXcgRGF0ZShtaWxsaXNlY29uZHNT
aW5jZUVwb2NoKSkKK307CisKKy8qKgogICogQHBhcmFtIHshRGF0ZX0gZGF0ZQogICogQHJldHVy
biB7IVdlZWt9CiAgKi8KIFdlZWsuY3JlYXRlRnJvbURhdGUgPSBmdW5jdGlvbihkYXRlKSB7Cisg
ICAgaWYgKGlzTmFOKGRhdGUudmFsdWVPZigpKSkKKyAgICAgICAgdGhyb3cgIkludmFsaWQgZGF0
ZSI7CiAgICAgdmFyIHllYXIgPSBkYXRlLmdldFVUQ0Z1bGxZZWFyKCk7CiAgICAgaWYgKHllYXIg
PD0gV2Vlay5NYXhpbXVtLnllYXIgJiYgV2Vlay53ZWVrT25lU3RhcnREYXRlRm9yWWVhcih5ZWFy
ICsgMSkuZ2V0VGltZSgpIDw9IGRhdGUuZ2V0VGltZSgpKQogICAgICAgICB5ZWFyKys7CkBAIC0z
NDksNiArNDU4LDIwIEBAIFdlZWsuY3JlYXRlRnJvbURhdGUgPSBmdW5jdGlvbihkYXRlKSB7CiB9
OwogCiAvKioKKyAqIEBwYXJhbSB7IURheX0gZGF5CisgKiBAcmV0dXJuIHshV2Vla30KKyAqLwor
V2Vlay5jcmVhdGVGcm9tRGF5ID0gZnVuY3Rpb24oZGF5KSB7CisgICAgdmFyIHllYXIgPSBkYXku
eWVhcjsKKyAgICBpZiAoeWVhciA8PSBXZWVrLk1heGltdW0ueWVhciAmJiBXZWVrLndlZWtPbmVT
dGFydERheUZvclllYXIoeWVhciArIDEpIDw9IGRheSkKKyAgICAgICAgeWVhcisrOworICAgIGVs
c2UgaWYgKHllYXIgPiAxICYmIFdlZWsud2Vla09uZVN0YXJ0RGF5Rm9yWWVhcih5ZWFyKSA+IGRh
eSkKKyAgICAgICAgeWVhci0tOworICAgIHZhciB3ZWVrID0gTWF0aC5mbG9vcigxICsgKGRheS52
YWx1ZU9mKCkgLSBXZWVrLndlZWtPbmVTdGFydERheUZvclllYXIoeWVhcikudmFsdWVPZigpKSAv
IE1pbGxpc2Vjb25kc1BlcldlZWspOworICAgIHJldHVybiBuZXcgV2Vlayh5ZWFyLCB3ZWVrKTsK
K307CisKKy8qKgogICogQHJldHVybiB7IVdlZWt9CiAgKi8KIFdlZWsuY3JlYXRlRnJvbVRvZGF5
ID0gZnVuY3Rpb24oKSB7CkBAIC0zNjUsNyArNDg4LDE5IEBAIFdlZWsud2Vla09uZVN0YXJ0RGF0
ZUZvclllYXIgPSBmdW5jdGlvbih5ZWFyKSB7CiAgICAgICAgIHJldHVybiBjcmVhdGVVVENEYXRl
KDEsIDAsIDEpOwogICAgIC8vIFRoZSB3ZWVrIGNvbnRhaW5pbmcgSmFudWFyeSA0dGggaXMgd2Vl
ayBvbmUuCiAgICAgdmFyIHllYXJTdGFydERheSA9IGNyZWF0ZVVUQ0RhdGUoeWVhciwgMCwgNCku
Z2V0VVRDRGF5KCk7Ci0gICAgcmV0dXJuIGNyZWF0ZVVUQ0RhdGUoeWVhciwgMCwgNCAtICh5ZWFy
U3RhcnREYXkgKyA2KSAlIDcpOworICAgIHJldHVybiBjcmVhdGVVVENEYXRlKHllYXIsIDAsIDQg
LSAoeWVhclN0YXJ0RGF5ICsgNikgJSBEYXlzUGVyV2Vlayk7Cit9OworCisvKioKKyAqIEBwYXJh
bSB7IW51bWJlcn0geWVhcgorICogQHJldHVybiB7IURheX0KKyAqLworV2Vlay53ZWVrT25lU3Rh
cnREYXlGb3JZZWFyID0gZnVuY3Rpb24oeWVhcikgeworICAgIGlmICh5ZWFyIDwgMSkKKyAgICAg
ICAgcmV0dXJuIERheS5NaW5pbXVtOworICAgIC8vIFRoZSB3ZWVrIGNvbnRhaW5pbmcgSmFudWFy
eSA0dGggaXMgd2VlayBvbmUuCisgICAgdmFyIHllYXJTdGFydERheSA9IGNyZWF0ZVVUQ0RhdGUo
eWVhciwgMCwgNCkuZ2V0VVRDRGF5KCk7CisgICAgcmV0dXJuIG5ldyBEYXkoeWVhciwgMCwgNCAt
ICh5ZWFyU3RhcnREYXkgKyA2KSAlIERheXNQZXJXZWVrKTsKIH07CiAKIC8qKgpAQCAtMzg2LDI5
ICs1MjEsMzUgQEAgV2Vlay5udW1iZXJPZldlZWtzSW5ZZWFyID0gZnVuY3Rpb24oeWVhcikgewog
ICogQHJldHVybiB7IW51bWJlcn0KICAqLwogV2Vlay5fbnVtYmVyT2ZXZWVrc1NpbmNlRGF0ZSA9
IGZ1bmN0aW9uKGJhc2VEYXRlLCBkYXRlKSB7Ci0gICAgcmV0dXJuIE1hdGguZmxvb3IoKGRhdGUu
Z2V0VGltZSgpIC0gYmFzZURhdGUuZ2V0VGltZSgpKSAvIFdlZWsuTWlsbGlzZWNvbmRzUGVyV2Vl
ayk7CisgICAgcmV0dXJuIE1hdGguZmxvb3IoKGRhdGUuZ2V0VGltZSgpIC0gYmFzZURhdGUuZ2V0
VGltZSgpKSAvIE1pbGxpc2Vjb25kc1BlcldlZWspOwogfTsKIAogLyoqCi0gKiBAcGFyYW0geyFX
ZWVrfSBvdGhlcgotICogQHJldHVybiB7IWJvb2x9CisgKiBAcGFyYW0geyFEYXRlVHlwZX0gb3Ro
ZXIKKyAqIEByZXR1cm4geyFib29sZWFufQogICovCiBXZWVrLnByb3RvdHlwZS5lcXVhbHMgPSBm
dW5jdGlvbihvdGhlcikgewotICAgIHJldHVybiB0aGlzLnllYXIgPT09IG90aGVyLnllYXIgJiYg
dGhpcy53ZWVrID09PSBvdGhlci53ZWVrOworICAgIHJldHVybiBvdGhlciBpbnN0YW5jZW9mIFdl
ZWsgJiYgdGhpcy55ZWFyID09PSBvdGhlci55ZWFyICYmIHRoaXMud2VlayA9PT0gb3RoZXIud2Vl
azsKIH07CiAKIC8qKgorICogQHBhcmFtIHshbnVtYmVyPX0gb2Zmc2V0CiAgKiBAcmV0dXJuIHsh
V2Vla30KICAqLwotV2Vlay5wcm90b3R5cGUucHJldmlvdXMgPSBmdW5jdGlvbigpIHsKLSAgICBy
ZXR1cm4gbmV3IFdlZWsodGhpcy55ZWFyLCB0aGlzLndlZWsgLSAxKTsKK1dlZWsucHJvdG90eXBl
LnByZXZpb3VzID0gZnVuY3Rpb24ob2Zmc2V0KSB7CisgICAgaWYgKHR5cGVvZiBvZmZzZXQgPT09
ICJ1bmRlZmluZWQiKQorICAgICAgICBvZmZzZXQgPSAxOworICAgIHJldHVybiBuZXcgV2Vlayh0
aGlzLnllYXIsIHRoaXMud2VlayAtIG9mZnNldCk7CiB9OwogCiAvKioKKyAqIEBwYXJhbSB7IW51
bWJlcj19IG9mZnNldAogICogQHJldHVybiB7IVdlZWt9CiAgKi8KLVdlZWsucHJvdG90eXBlLm5l
eHQgPSBmdW5jdGlvbigpIHsKLSAgICByZXR1cm4gbmV3IFdlZWsodGhpcy55ZWFyLCB0aGlzLndl
ZWsgKyAxKTsKK1dlZWsucHJvdG90eXBlLm5leHQgPSBmdW5jdGlvbihvZmZzZXQpIHsKKyAgICBp
ZiAodHlwZW9mIG9mZnNldCA9PT0gInVuZGVmaW5lZCIpCisgICAgICAgIG9mZnNldCA9IDE7Cisg
ICAgcmV0dXJuIG5ldyBXZWVrKHRoaXMueWVhciwgdGhpcy53ZWVrICsgb2Zmc2V0KTsKIH07CiAK
IC8qKgpAQCAtNDMwLDEwICs1NzEsMzQgQEAgV2Vlay5wcm90b3R5cGUuZW5kRGF0ZSA9IGZ1bmN0
aW9uKCkgewogfTsKIAogLyoqCisgKiBAcmV0dXJuIHshRGF5fQorICovCitXZWVrLnByb3RvdHlw
ZS5maXJzdERheSA9IGZ1bmN0aW9uKCkgeworICAgIHZhciB3ZWVrT25lU3RhcnREYXkgPSBXZWVr
LndlZWtPbmVTdGFydERheUZvclllYXIodGhpcy55ZWFyKTsKKyAgICByZXR1cm4gd2Vla09uZVN0
YXJ0RGF5Lm5leHQoKHRoaXMud2VlayAtIDEpICogRGF5c1BlcldlZWspOworfTsKKworLyoqCisg
KiBAcmV0dXJuIHshRGF5fQorICovCitXZWVrLnByb3RvdHlwZS5taWRkbGVEYXkgPSBmdW5jdGlv
bigpIHsKKyAgICByZXR1cm4gdGhpcy5maXJzdERheSgpLm5leHQoMyk7Cit9OworCisvKioKKyAq
IEByZXR1cm4geyFEYXl9CisgKi8KK1dlZWsucHJvdG90eXBlLmxhc3REYXkgPSBmdW5jdGlvbigp
IHsKKyAgICBpZiAodGhpcy5lcXVhbHMoV2Vlay5NYXhpbXVtKSkKKyAgICAgICAgcmV0dXJuIERh
eS5NYXhpbXVtOworICAgIHJldHVybiB0aGlzLm5leHQoKS5maXJzdERheSgpLnByZXZpb3VzKCk7
Cit9OworCisvKioKICAqIEByZXR1cm4geyFudW1iZXJ9CiAgKi8KIFdlZWsucHJvdG90eXBlLnZh
bHVlT2YgPSBmdW5jdGlvbigpIHsKLSAgICByZXR1cm4gdGhpcy5zdGFydERhdGUoKS5nZXRUaW1l
KCkgLSBjcmVhdGVVVENEYXRlKDE5NzAsIDAsIDEpLmdldFRpbWUoKTsKKyAgICByZXR1cm4gdGhp
cy5maXJzdERheSgpLnZhbHVlT2YoKSAtIGNyZWF0ZVVUQ0RhdGUoMTk3MCwgMCwgMSkuZ2V0VGlt
ZSgpOwogfTsKIAogLyoqCkBAIC00NDgsMjYgKzYxMywyMSBAQCBXZWVrLnByb3RvdHlwZS50b1N0
cmluZyA9IGZ1bmN0aW9uKCkgewogCiAvKioKICAqIEBjb25zdHJ1Y3RvcgotICogQHBhcmFtIHsh
bnVtYmVyfE1vbnRofSB2YWx1ZU9yTW9udGhPclllYXIKLSAqIEBwYXJhbSB7IW51bWJlcj19IG1v
bnRoCi0gKi8KLWZ1bmN0aW9uIE1vbnRoKHZhbHVlT3JNb250aE9yWWVhciwgbW9udGgpIHsKLSAg
ICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PSAyKSB7Ci0gICAgICAgIHRoaXMueWVhciA9IHZhbHVl
T3JNb250aE9yWWVhcjsKLSAgICAgICAgdGhpcy5tb250aCA9IG1vbnRoOwotICAgIH0gZWxzZSBp
ZiAodmFsdWVPck1vbnRoT3JZZWFyIGluc3RhbmNlb2YgTW9udGgpIHsKLSAgICAgICAgdGhpcy55
ZWFyID0gdmFsdWVPck1vbnRoT3JZZWFyLnllYXI7Ci0gICAgICAgIHRoaXMubW9udGggPSB2YWx1
ZU9yTW9udGhPclllYXIubW9udGg7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgdGhpcy55ZWFyID0g
MTk3MDsKLSAgICAgICAgdGhpcy5tb250aCA9IHZhbHVlT3JNb250aE9yWWVhcjsKLSAgICB9Ci0g
ICAgdGhpcy55ZWFyID0gdGhpcy55ZWFyICsgTWF0aC5mbG9vcih0aGlzLm1vbnRoIC8gMTIpOwot
ICAgIHRoaXMubW9udGggPSB0aGlzLm1vbnRoIDwgMCA/IHRoaXMubW9udGggJSAxMiArIDEyIDog
dGhpcy5tb250aCAlIDEyOwotICAgIGlmICh0aGlzLnllYXIgPD0gMCB8fCBNb250aC5NYXhpbXVt
IDwgdGhpcykgewotICAgICAgICB0aGlzLnllYXIgPSBOYU47Ci0gICAgICAgIHRoaXMubW9udGgg
PSBOYU47Ci0gICAgfQorICogQGV4dGVuZHMgRGF0ZVR5cGUKKyAqIEBwYXJhbSB7IW51bWJlcn0g
eWVhcgorICogQHBhcmFtIHshbnVtYmVyfSBtb250aAorICovCitmdW5jdGlvbiBNb250aCh5ZWFy
LCBtb250aCkgeyAKKyAgICAvKioKKyAgICAgKiBAdHlwZSB7bnVtYmVyfQorICAgICAqIEBjb25z
dAorICAgICAqLworICAgIHRoaXMueWVhciA9IHllYXIgKyBNYXRoLmZsb29yKG1vbnRoIC8gTW9u
dGhzUGVyWWVhcik7CisgICAgLyoqCisgICAgICogQHR5cGUge251bWJlcn0KKyAgICAgKiBAY29u
c3QKKyAgICAgKi8KKyAgICB0aGlzLm1vbnRoID0gbW9udGggJSBNb250aHNQZXJZZWFyIDwgMCA/
IG1vbnRoICUgTW9udGhzUGVyWWVhciArIE1vbnRoc1BlclllYXIgOiBtb250aCAlIE1vbnRoc1Bl
clllYXI7CiB9OwogCiBNb250aC5JU09TdHJpbmdSZWdFeHAgPSAvXihcZCspLShcZCspJC87CkBA
IC00NzUsNiArNjM1LDcgQEAgTW9udGguSVNPU3RyaW5nUmVnRXhwID0gL14oXGQrKS0oXGQrKSQv
OwogLy8gU2VlIFdlYkNvcmUvcGxhdGZvcm0vRGF0ZUNvbXBvbmVudHMuaC4KIE1vbnRoLk1pbmlt
dW0gPSBuZXcgTW9udGgoMSwgMCk7CiBNb250aC5NYXhpbXVtID0gbmV3IE1vbnRoKDI3NTc2MCwg
OCk7CisKIC8vIFNlZSBXZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwLgogTW9udGguRGVm
YXVsdFN0ZXAgPSAxOwogTW9udGguRGVmYXVsdFN0ZXBCYXNlID0gMDsKQEAgLTQ5MywxNCArNjU0
LDMyIEBAIE1vbnRoLnBhcnNlID0gZnVuY3Rpb24oc3RyKSB7CiB9OwogCiAvKioKKyAqIEBwYXJh
bSB7IW51bWJlcn0gdmFsdWUKKyAqIEByZXR1cm4geyFNb250aH0KKyAqLworTW9udGguY3JlYXRl
RnJvbVZhbHVlID0gZnVuY3Rpb24obW9udGhzU2luY2VFcG9jaCkgeworICAgIHJldHVybiBuZXcg
TW9udGgoMTk3MCwgbW9udGhzU2luY2VFcG9jaCkKK307CisKKy8qKgogICogQHBhcmFtIHshRGF0
ZX0gZGF0ZQogICogQHJldHVybiB7IU1vbnRofQogICovCiBNb250aC5jcmVhdGVGcm9tRGF0ZSA9
IGZ1bmN0aW9uKGRhdGUpIHsKKyAgICBpZiAoaXNOYU4oZGF0ZS52YWx1ZU9mKCkpKQorICAgICAg
ICB0aHJvdyAiSW52YWxpZCBkYXRlIjsKICAgICByZXR1cm4gbmV3IE1vbnRoKGRhdGUuZ2V0VVRD
RnVsbFllYXIoKSwgZGF0ZS5nZXRVVENNb250aCgpKTsKIH07CiAKIC8qKgorICogQHBhcmFtIHsh
RGF5fSBkYXkKKyAqIEByZXR1cm4geyFNb250aH0KKyAqLworTW9udGguY3JlYXRlRnJvbURheSA9
IGZ1bmN0aW9uKGRheSkgeworICAgIHJldHVybiBuZXcgTW9udGgoZGF5LnllYXIsIGRheS5tb250
aCk7Cit9OworCisvKioKICAqIEByZXR1cm4geyFNb250aH0KICAqLwogTW9udGguY3JlYXRlRnJv
bVRvZGF5ID0gZnVuY3Rpb24oKSB7CkBAIC01MDksMjUgKzY4OCwzOCBAQCBNb250aC5jcmVhdGVG
cm9tVG9kYXkgPSBmdW5jdGlvbigpIHsKIH07CiAKIC8qKgorICogQHJldHVybiB7IWJvb2xlYW59
CisgKi8KK01vbnRoLnByb3RvdHlwZS5jb250YWluc0RheSA9IGZ1bmN0aW9uKGRheSkgeworICAg
IHJldHVybiB0aGlzLnllYXIgPT09IGRheS55ZWFyICYmIHRoaXMubW9udGggPT09IGRheS5tb250
aDsKK307CisKKy8qKgogICogQHBhcmFtIHshTW9udGh9IG90aGVyCi0gKiBAcmV0dXJuIHshYm9v
bH0KKyAqIEByZXR1cm4geyFib29sZWFufQogICovCiBNb250aC5wcm90b3R5cGUuZXF1YWxzID0g
ZnVuY3Rpb24ob3RoZXIpIHsKLSAgICByZXR1cm4gdGhpcy55ZWFyID09PSBvdGhlci55ZWFyICYm
IHRoaXMubW9udGggPT09IG90aGVyLm1vbnRoOworICAgIHJldHVybiBvdGhlciBpbnN0YW5jZW9m
IE1vbnRoICYmIHRoaXMueWVhciA9PT0gb3RoZXIueWVhciAmJiB0aGlzLm1vbnRoID09PSBvdGhl
ci5tb250aDsKIH07CiAKIC8qKgorICogQHBhcmFtIHshbnVtYmVyPX0gb2Zmc2V0CiAgKiBAcmV0
dXJuIHshTW9udGh9CiAgKi8KLU1vbnRoLnByb3RvdHlwZS5wcmV2aW91cyA9IGZ1bmN0aW9uKCkg
ewotICAgIHJldHVybiBuZXcgTW9udGgodGhpcy55ZWFyLCB0aGlzLm1vbnRoIC0gMSk7CitNb250
aC5wcm90b3R5cGUucHJldmlvdXMgPSBmdW5jdGlvbihvZmZzZXQpIHsKKyAgICBpZiAodHlwZW9m
IG9mZnNldCA9PT0gInVuZGVmaW5lZCIpCisgICAgICAgIG9mZnNldCA9IDE7CisgICAgcmV0dXJu
IG5ldyBNb250aCh0aGlzLnllYXIsIHRoaXMubW9udGggLSBvZmZzZXQpOwogfTsKIAogLyoqCisg
KiBAcGFyYW0geyFudW1iZXI9fSBvZmZzZXQKICAqIEByZXR1cm4geyFNb250aH0KICAqLwotTW9u
dGgucHJvdG90eXBlLm5leHQgPSBmdW5jdGlvbigpIHsKLSAgICByZXR1cm4gbmV3IE1vbnRoKHRo
aXMueWVhciwgdGhpcy5tb250aCArIDEpOworTW9udGgucHJvdG90eXBlLm5leHQgPSBmdW5jdGlv
bihvZmZzZXQpIHsKKyAgICBpZiAodHlwZW9mIG9mZnNldCA9PT0gInVuZGVmaW5lZCIpCisgICAg
ICAgIG9mZnNldCA9IDE7CisgICAgcmV0dXJuIG5ldyBNb250aCh0aGlzLnllYXIsIHRoaXMubW9u
dGggKyBvZmZzZXQpOwogfTsKIAogLyoqCkBAIC01NDcsMTAgKzczOSwzMyBAQCBNb250aC5wcm90
b3R5cGUuZW5kRGF0ZSA9IGZ1bmN0aW9uKCkgewogfTsKIAogLyoqCisgKiBAcmV0dXJuIHshRGF5
fQorICovCitNb250aC5wcm90b3R5cGUuZmlyc3REYXkgPSBmdW5jdGlvbigpIHsKKyAgICByZXR1
cm4gbmV3IERheSh0aGlzLnllYXIsIHRoaXMubW9udGgsIDEpOworfTsKKworLyoqCisgKiBAcmV0
dXJuIHshRGF5fQorICovCitNb250aC5wcm90b3R5cGUubWlkZGxlRGF5ID0gZnVuY3Rpb24oKSB7
CisgICAgcmV0dXJuIG5ldyBEYXkodGhpcy55ZWFyLCB0aGlzLm1vbnRoLCB0aGlzLm1vbnRoID09
PSAyID8gMTQgOiAxNSk7Cit9OworCisvKioKKyAqIEByZXR1cm4geyFEYXl9CisgKi8KK01vbnRo
LnByb3RvdHlwZS5sYXN0RGF5ID0gZnVuY3Rpb24oKSB7CisgICAgaWYgKHRoaXMuZXF1YWxzKE1v
bnRoLk1heGltdW0pKQorICAgICAgICByZXR1cm4gRGF5Lk1heGltdW07CisgICAgcmV0dXJuIHRo
aXMubmV4dCgpLmZpcnN0RGF5KCkucHJldmlvdXMoKTsKK307CisKKy8qKgogICogQHJldHVybiB7
IW51bWJlcn0KICAqLwogTW9udGgucHJvdG90eXBlLnZhbHVlT2YgPSBmdW5jdGlvbigpIHsKLSAg
ICByZXR1cm4gKHRoaXMueWVhciAtIDE5NzApICogMTIgKyB0aGlzLm1vbnRoOworICAgIHJldHVy
biAodGhpcy55ZWFyIC0gMTk3MCkgKiBNb250aHNQZXJZZWFyICsgdGhpcy5tb250aDsKIH07CiAK
IC8qKgpAQCAtNTYzLDYgKzc3OCwyMiBAQCBNb250aC5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5j
dGlvbigpIHsKICAgICByZXR1cm4geWVhclN0cmluZyArICItIiArICgiMCIgKyAodGhpcy5tb250
aCArIDEpKS5zdWJzdHIoLTIsIDIpOwogfTsKIAorLyoqCisgKiBAcmV0dXJuIHshc3RyaW5nfQor
ICovCitNb250aC5wcm90b3R5cGUudG9Mb2NhbGVTdHJpbmcgPSBmdW5jdGlvbigpIHsKKyAgICBp
ZiAoZ2xvYmFsLnBhcmFtcy5sb2NhbGUgPT09ICJqYSIpCisgICAgICAgIHJldHVybiAiIiArIHRo
aXMueWVhciArICLlubQiICsgZm9ybWF0SmFwYW5lc2VJbXBlcmlhbEVyYSh0aGlzLnllYXIsIHRo
aXMubW9udGgpICsgIiAiICsgKHRoaXMubW9udGggKyAxKSArICLmnIgiOworICAgIHJldHVybiB3
aW5kb3cucGFnZVBvcHVwQ29udHJvbGxlci5mb3JtYXRNb250aCh0aGlzLnllYXIsIHRoaXMubW9u
dGgpOworfTsKKworLyoqCisgKiBAcmV0dXJuIHshc3RyaW5nfQorICovCitNb250aC5wcm90b3R5
cGUudG9TaG9ydExvY2FsZVN0cmluZyA9IGZ1bmN0aW9uKCkgeworICAgIHJldHVybiB3aW5kb3cu
cGFnZVBvcHVwQ29udHJvbGxlci5mb3JtYXRTaG9ydE1vbnRoKHRoaXMueWVhciwgdGhpcy5tb250
aCk7Cit9OworCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBJbml0aWFsaXphdGlvbgogCkBAIC05MzIsOSArMTE2
Myw5IEBAIGZ1bmN0aW9uIENhbGVuZGFyUGlja2VyKGVsZW1lbnQsIGNvbmZpZykgewogICAgIGlm
ICghaW5pdGlhbFNlbGVjdGlvbikKICAgICAgICAgaW5pdGlhbFNlbGVjdGlvbiA9IHRoaXMuc2Vs
ZWN0aW9uQ29uc3RydWN0b3IuY3JlYXRlRnJvbVRvZGF5KCk7CiAgICAgaWYgKGluaXRpYWxTZWxl
Y3Rpb24udmFsdWVPZigpIDwgdGhpcy5fbWluaW11bVZhbHVlKQotICAgICAgICBpbml0aWFsU2Vs
ZWN0aW9uID0gbmV3IHRoaXMuc2VsZWN0aW9uQ29uc3RydWN0b3IodGhpcy5fbWluaW11bVZhbHVl
KTsKKyAgICAgICAgaW5pdGlhbFNlbGVjdGlvbiA9IG5ldyB0aGlzLnNlbGVjdGlvbkNvbnN0cnVj
dG9yLmNyZWF0ZUZyb21WYWx1ZSh0aGlzLl9taW5pbXVtVmFsdWUpOwogICAgIGVsc2UgaWYgKGlu
aXRpYWxTZWxlY3Rpb24udmFsdWVPZigpID4gdGhpcy5fbWF4aW11bVZhbHVlKQotICAgICAgICBp
bml0aWFsU2VsZWN0aW9uID0gbmV3IHRoaXMuc2VsZWN0aW9uQ29uc3RydWN0b3IodGhpcy5fbWF4
aW11bVZhbHVlKTsKKyAgICAgICAgaW5pdGlhbFNlbGVjdGlvbiA9IG5ldyB0aGlzLnNlbGVjdGlv
bkNvbnN0cnVjdG9yLmNyZWF0ZUZyb21WYWx1ZSh0aGlzLl9tYXhpbXVtVmFsdWUpOwogICAgIHRo
aXMuc2hvd01vbnRoKE1vbnRoLmNyZWF0ZUZyb21EYXRlKGluaXRpYWxTZWxlY3Rpb24uc3RhcnRE
YXRlKCkpKTsKICAgICB0aGlzLl9kYXlzVGFibGUuc2VsZWN0UmFuZ2VBbmRTaG93RW50aXJlUmFu
Z2UoaW5pdGlhbFNlbGVjdGlvbik7CiAgICAgdGhpcy5maXhXaW5kb3dTaXplKCk7CkBAIC0xMjIy
LDE5ICsxNDUzLDE5IEBAIFllYXJNb250aENvbnRyb2xsZXIucHJvdG90eXBlLl9hdHRhY2hSaWdo
dEJ1dHRvbnNUbyA9IGZ1bmN0aW9uKHBhcmVudCkgewogWWVhck1vbnRoQ29udHJvbGxlci5wcm90
b3R5cGUuc2V0TW9udGggPSBmdW5jdGlvbihtb250aCkgewogICAgIHZhciBtb250aFZhbHVlID0g
bW9udGgudmFsdWVPZigpOwogICAgIGlmICh0aGlzLl9sZWZ0MykKLSAgICAgICAgdGhpcy5fbGVm
dDMuZGlzYWJsZWQgPSAhdGhpcy5waWNrZXIuc2hvdWxkU2hvd01vbnRoKG5ldyBNb250aChtb250
aFZhbHVlIC0gMTMpKTsKLSAgICB0aGlzLl9sZWZ0Mi5kaXNhYmxlZCA9ICF0aGlzLnBpY2tlci5z
aG91bGRTaG93TW9udGgobmV3IE1vbnRoKG1vbnRoVmFsdWUgLSAyKSk7Ci0gICAgdGhpcy5fbGVm
dDEuZGlzYWJsZWQgPSAhdGhpcy5waWNrZXIuc2hvdWxkU2hvd01vbnRoKG5ldyBNb250aChtb250
aFZhbHVlIC0gMSkpOwotICAgIHRoaXMuX3JpZ2h0MS5kaXNhYmxlZCA9ICF0aGlzLnBpY2tlci5z
aG91bGRTaG93TW9udGgobmV3IE1vbnRoKG1vbnRoVmFsdWUgKyAxKSk7Ci0gICAgdGhpcy5fcmln
aHQyLmRpc2FibGVkID0gIXRoaXMucGlja2VyLnNob3VsZFNob3dNb250aChuZXcgTW9udGgobW9u
dGhWYWx1ZSArIDIpKTsKKyAgICAgICAgdGhpcy5fbGVmdDMuZGlzYWJsZWQgPSAhdGhpcy5waWNr
ZXIuc2hvdWxkU2hvd01vbnRoKE1vbnRoLmNyZWF0ZUZyb21WYWx1ZShtb250aFZhbHVlIC0gMTMp
KTsKKyAgICB0aGlzLl9sZWZ0Mi5kaXNhYmxlZCA9ICF0aGlzLnBpY2tlci5zaG91bGRTaG93TW9u
dGgoTW9udGguY3JlYXRlRnJvbVZhbHVlKG1vbnRoVmFsdWUgLSAyKSk7CisgICAgdGhpcy5fbGVm
dDEuZGlzYWJsZWQgPSAhdGhpcy5waWNrZXIuc2hvdWxkU2hvd01vbnRoKE1vbnRoLmNyZWF0ZUZy
b21WYWx1ZShtb250aFZhbHVlIC0gMSkpOworICAgIHRoaXMuX3JpZ2h0MS5kaXNhYmxlZCA9ICF0
aGlzLnBpY2tlci5zaG91bGRTaG93TW9udGgoTW9udGguY3JlYXRlRnJvbVZhbHVlKG1vbnRoVmFs
dWUgKyAxKSk7CisgICAgdGhpcy5fcmlnaHQyLmRpc2FibGVkID0gIXRoaXMucGlja2VyLnNob3Vs
ZFNob3dNb250aChNb250aC5jcmVhdGVGcm9tVmFsdWUobW9udGhWYWx1ZSArIDIpKTsKICAgICBp
ZiAodGhpcy5fcmlnaHQzKQotICAgICAgICB0aGlzLl9sZWZ0My5kaXNhYmxlZCA9ICF0aGlzLnBp
Y2tlci5zaG91bGRTaG93TW9udGgobmV3IE1vbnRoKG1vbnRoVmFsdWUgKyAxMykpOworICAgICAg
ICB0aGlzLl9sZWZ0My5kaXNhYmxlZCA9ICF0aGlzLnBpY2tlci5zaG91bGRTaG93TW9udGgoTW9u
dGguY3JlYXRlRnJvbVZhbHVlKG1vbnRoVmFsdWUgKyAxMykpOwogICAgIHRoaXMuX21vbnRoTGFi
ZWwuaW5uZXJUZXh0ID0gbW9udGgudG9Mb2NhbGVTdHJpbmcoKTsKICAgICB3aGlsZSAodGhpcy5f
bW9udGhQb3B1cENvbnRlbnRzLmhhc0NoaWxkTm9kZXMoKSkKICAgICAgICAgdGhpcy5fbW9udGhQ
b3B1cENvbnRlbnRzLnJlbW92ZUNoaWxkKHRoaXMuX21vbnRoUG9wdXBDb250ZW50cy5maXJzdENo
aWxkKTsKIAogICAgIGZvciAodmFyIG0gPSBtb250aFZhbHVlIC0gNjsgbSA8PSBtb250aFZhbHVl
ICsgNjsgbSsrKSB7Ci0gICAgICAgIHZhciBtb250aCA9IG5ldyBNb250aChtKTsKKyAgICAgICAg
dmFyIG1vbnRoID0gTW9udGguY3JlYXRlRnJvbVZhbHVlKG0pOwogICAgICAgICBpZiAoIXRoaXMu
cGlja2VyLnNob3VsZFNob3dNb250aChtb250aCkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgdmFyIG9wdGlvbiA9IGNyZWF0ZUVsZW1lbnQoImRpdiIsIENsYXNzTmFtZXMuTW9udGhT
ZWxlY3RvclBvcHVwRW50cnksIG1vbnRoLnRvTG9jYWxlU3RyaW5nKCkpOwpAQCAtMTQyNSw3ICsx
NjU2LDcgQEAgWWVhck1vbnRoQ29udHJvbGxlci5wcm90b3R5cGUuX2hhbmRsZUJ1dHRvbkNsaWNr
ID0gZnVuY3Rpb24oZXZlbnQpIHsKICAqLwogWWVhck1vbnRoQ29udHJvbGxlci5wcm90b3R5cGUu
bW92ZVJlbGF0aXZlbHkgPSBmdW5jdGlvbihhbW91bnQpIHsKICAgICB2YXIgY3VycmVudCA9IHRo
aXMucGlja2VyLmN1cnJlbnRNb250aCgpLnZhbHVlT2YoKTsKLSAgICB2YXIgdXBkYXRlZCA9IG5l
dyBNb250aChjdXJyZW50ICsgYW1vdW50KTsKKyAgICB2YXIgdXBkYXRlZCA9IE1vbnRoLmNyZWF0
ZUZyb21WYWx1ZShjdXJyZW50ICsgYW1vdW50KTsKICAgICB0aGlzLnBpY2tlci5zaG93TW9udGgo
dXBkYXRlZCwgQ2FsZW5kYXJQaWNrZXIuTmF2aWdhdGlvbkJlaGF2aW91ci5BbmltYXRlIHwgQ2Fs
ZW5kYXJQaWNrZXIuTmF2aWdhdGlvbkJlaGF2aW91ci5LZWVwU2VsZWN0aW9uUG9zaXRpb24pOwog
fTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IGNkOGU1ZDM1NDFjNDg3Y2RkNTZhNTJhMDUwYThlOTZkYjczN2VhNjguLjQy
ZDk4YmJiMDQ4YjA3YzVhMDhjZWM0ZGE5ZWNjYmUwZjE0YWYwY2QgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAxMy0wMi0yMiAgS2Vpc2hpIEhhdHRvcmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBBZGQgbWV0aG9kcyB0byBkYXRlIHR5cGVzIGZvciBuZXcgY2FsZW5kYXIgcGlja2Vy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA0NTQK
KworICAgICAgICBSZXZpZXdlZCBieSBLZW50IFRhbXVyYS4KKworICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtL2Zhc3QvZm9ybXMvY2FsZW5kYXItcGlja2VyL2NhbGVuZGFyLXBpY2tlci1kYXRl
LXR5cGVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0v
ZmFzdC9mb3Jtcy9jYWxlbmRhci1waWNrZXIvY2FsZW5kYXItcGlja2VyLWRhdGUtdHlwZXMuaHRt
bDogQWRkZWQuIFVuaXQgdGVzdHMgZm9yIGRhdGUgdHlwZXMuCisKIDIwMTMtMDItMjEgIEJlbmph
bWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBzdXBwb3J0
IGZvciB0ZXN0aW5nIHN0YXRlcyBjaGFuZ2luZyBhc3luY2hyb25vdXNseS4gQXBwbHkgaXQgdG8g
c3RhdGUtdXJsLXNldHMtbGlua3MtdmlzaXRlZC5odG1sLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9mb3Jtcy9jYWxlbmRhci1waWNrZXIvY2FsZW5kYXIt
cGlja2VyLWRhdGUtdHlwZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vZmFzdC9mb3Jtcy9jYWxlbmRhci1waWNrZXIvY2FsZW5kYXItcGlja2VyLWRhdGUtdHlw
ZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiMTBlZTEyM2M5MmFjOGMyZWZjNDZkMGQ1N2Y5
ZDJiNjVlMDQ2NDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9mYXN0L2Zvcm1zL2NhbGVuZGFyLXBpY2tlci9jYWxlbmRhci1waWNrZXItZGF0ZS10eXBl
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMzMgQEAKK1Rlc3QgaWYgc3RlcCBsaW1pdHMgYXZh
aWxhYmxlIGRhdGVzIGluIGNhbGVuZGFyIHBpY2tlci4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1Rlc3QgRGF5IGNvbnN0cnVjdG9yCitQQVNTIG5ldyBwdy5EYXkoMjAwMCwgMSwg
MikueWVhciBpcyAyMDAwCitQQVNTIG5ldyBwdy5EYXkoMjAwMCwgMSwgMikubW9udGggaXMgMQor
UEFTUyBuZXcgcHcuRGF5KDIwMDAsIDEsIDIpLmRhdGUgaXMgMgorUEFTUyBuZXcgcHcuRGF5KDIw
MDAsIC0xLCAyKS55ZWFyIGlzIDE5OTkKK1BBU1MgbmV3IHB3LkRheSgyMDAwLCAtMSwgMikubW9u
dGggaXMgMTEKK1BBU1MgbmV3IHB3LkRheSgyMDAwLCAtMSwgMikuZGF0ZSBpcyAyCitQQVNTIG5l
dyBwdy5EYXkoMjAwMCwgMSwgLTIpLnllYXIgaXMgMjAwMAorUEFTUyBuZXcgcHcuRGF5KDIwMDAs
IDEsIC0yKS5tb250aCBpcyAwCitQQVNTIG5ldyBwdy5EYXkoMjAwMCwgMSwgLTIpLmRhdGUgaXMg
MjkKK1BBU1MgbmV3IHB3LkRheSgtMjAwMCwgMSwgMikueWVhciBpcyAtMjAwMAorUEFTUyBuZXcg
cHcuRGF5KC0yMDAwLCAxLCAyKS5tb250aCBpcyAxCitQQVNTIG5ldyBwdy5EYXkoLTIwMDAsIDEs
IDIpLmRhdGUgaXMgMgorUEFTUyBuZXcgcHcuRGF5KDIwMDAsIDEsIDMzKS55ZWFyIGlzIDIwMDAK
K1BBU1MgbmV3IHB3LkRheSgyMDAwLCAxLCAzMykubW9udGggaXMgMgorUEFTUyBuZXcgcHcuRGF5
KDIwMDAsIDEsIDMzKS5kYXRlIGlzIDQKK1BBU1MgbmV3IHB3LkRheSgyMDAwMDAsIDEsIDIpLnll
YXIgaXMgMjAwMDAwCitQQVNTIG5ldyBwdy5EYXkoMjAwMDAwLCAxLCAyKS5tb250aCBpcyAxCitQ
QVNTIG5ldyBwdy5EYXkoMjAwMDAwLCAxLCAyKS5kYXRlIGlzIDIKK1Rlc3QgRGF5LmVxdWFscwor
UEFTUyBuZXcgcHcuRGF5KDIwMDAsIDEsIDIpLmVxdWFscyhuZXcgcHcuRGF5KDIwMDAsIDEsIDIp
KSBpcyB0cnVlCitQQVNTIG5ldyBwdy5EYXkoMjAwMCwgMSwgMikuZXF1YWxzKG5ldyBwdy5EYXko
MjAwMCwgMiwgLTI3KSkgaXMgdHJ1ZQorUEFTUyBuZXcgcHcuRGF5KDIwMDAsIDEsIDIpLmVxdWFs
cyhuZXcgcHcuRGF5KDIwMDEsIDEsIC0zNjQpKSBpcyB0cnVlCitQQVNTIG5ldyBwdy5EYXkoMjAw
MCwgMSwgMikuZXF1YWxzKG5ldyBwdy5EYXkoMjAwMCwgMSwgMykpIGlzIGZhbHNlCitQQVNTIG5l
dyBwdy5EYXkoMjAwMCwgMSwgMikuZXF1YWxzKG5ldyBwdy5EYXkoMjAwMCwgMiwgMikpIGlzIGZh
bHNlCitQQVNTIG5ldyBwdy5EYXkoMjAwMCwgMSwgMikuZXF1YWxzKG5ldyBwdy5EYXkoMjAwMSwg
MSwgMikpIGlzIGZhbHNlCitQQVNTIG5ldyBwdy5EYXkoMjAwMCwgMSwgMikuZXF1YWxzKG5ldyBw
dy5EYXkoMjAwMSwgMiwgMykpIGlzIGZhbHNlCitUZXN0IERheS5wcmV2aW91cworUEFTUyBuZXcg
cHcuRGF5KDIwMDAsIDIsIDEpLnByZXZpb3VzKCkudG9TdHJpbmcoKSBpcyAiMjAwMC0wMi0yOSIK
K1BBU1MgbmV3IHB3LkRheSgyMDAwLCAyLCAxKS5wcmV2aW91cygxKS50b1N0cmluZygpIGlzICIy
MDAwLTAyLTI5IgorUEFTUyBuZXcgcHcuRGF5KDIwMDAsIDIsIDEpLnByZXZpb3VzKDIpLnRvU3Ry
aW5nKCkgaXMgIjIwMDAtMDItMjgiCitQQVNTIG5ldyBwdy5EYXkoMjAwMCwgMiwgMSkucHJldmlv
dXMoMykudG9TdHJpbmcoKSBpcyAiMjAwMC0wMi0yNyIKK1BBU1MgbmV3IHB3LkRheSgyMDAwLCAy
LCAxKS5wcmV2aW91cygzMCkudG9TdHJpbmcoKSBpcyAiMjAwMC0wMS0zMSIKK1Rlc3QgRGF5Lm5l
eHQKK1BBU1MgbmV3IHB3LkRheSgyMDAwLCAyLCAxKS5uZXh0KCkudG9TdHJpbmcoKSBpcyAiMjAw
MC0wMy0wMiIKK1BBU1MgbmV3IHB3LkRheSgyMDAwLCAyLCAxKS5uZXh0KDEpLnRvU3RyaW5nKCkg
aXMgIjIwMDAtMDMtMDIiCitQQVNTIG5ldyBwdy5EYXkoMjAwMCwgMiwgMSkubmV4dCgyKS50b1N0
cmluZygpIGlzICIyMDAwLTAzLTAzIgorUEFTUyBuZXcgcHcuRGF5KDIwMDAsIDIsIDEpLm5leHQo
MykudG9TdHJpbmcoKSBpcyAiMjAwMC0wMy0wNCIKK1BBU1MgbmV3IHB3LkRheSgyMDAwLCAyLCAx
KS5uZXh0KDMwKS50b1N0cmluZygpIGlzICIyMDAwLTAzLTMxIgorVGVzdCBEYXkuZmlyc3REYXkK
K1BBU1MgbmV3IHB3LkRheSgyMDAwLCAyLCAxKS5maXJzdERheSgpLnRvU3RyaW5nKCkgaXMgIjIw
MDAtMDMtMDEiCitUZXN0IERheS5taWRkbGVEYXkKK1BBU1MgbmV3IHB3LkRheSgyMDAwLCAyLCAx
KS5taWRkbGVEYXkoKS50b1N0cmluZygpIGlzICIyMDAwLTAzLTAxIgorVGVzdCBEYXkubGFzdERh
eQorUEFTUyBuZXcgcHcuRGF5KDIwMDAsIDIsIDEpLmxhc3REYXkoKS50b1N0cmluZygpIGlzICIy
MDAwLTAzLTAxIgorVGVzdCBEYXkudmFsdWVPZgorUEFTUyBuZXcgcHcuRGF5KDE5NzAsIDAsIDEp
LnZhbHVlT2YoKSBpcyAwCitQQVNTIG5ldyBwdy5EYXkoMTk3MCwgMCwgMikudmFsdWVPZigpIGlz
IDg2NDAwMDAwCitQQVNTIG5ldyBwdy5EYXkoMjAwMCwgMiwgMSkudmFsdWVPZigpIGlzIDk1MTg2
ODgwMDAwMAorUEFTUyBuZXcgcHcuRGF5KDEsIDIsIDEpLnZhbHVlT2YoKSBpcyAtNjIxMzA0OTky
MDAwMDAKK1BBU1MgbmV3IHB3LkRheSgyMDAwMCwgMiwgMSkudmFsdWVPZigpIGlzIDU2ODk3NzAw
NDgwMDAwMAorVGVzdCBEYXkudG9TdHJpbmcKK1BBU1MgbmV3IHB3LkRheSgyMDAwLCAyLCAxKS50
b1N0cmluZygpIGlzICIyMDAwLTAzLTAxIgorUEFTUyBuZXcgcHcuRGF5KDEsIDIsIDEpLnRvU3Ry
aW5nKCkgaXMgIjAwMDEtMDMtMDEiCitQQVNTIG5ldyBwdy5EYXkoMjAwMDAsIDIsIDEpLnRvU3Ry
aW5nKCkgaXMgIjIwMDAwLTAzLTAxIgorVGVzdCBEYXkucGFyc2UKK1BBU1MgcHcuRGF5LnBhcnNl
KCIyMDAwLTAyLTAyIikudG9TdHJpbmcoKSBpcyAiMjAwMC0wMi0wMiIKK1BBU1MgcHcuRGF5LnBh
cnNlKCIxOTk5LTAyLTAyIikudG9TdHJpbmcoKSBpcyAiMTk5OS0wMi0wMiIKK1BBU1MgcHcuRGF5
LnBhcnNlKCIyMDAwLTAxLTAyIikudG9TdHJpbmcoKSBpcyAiMjAwMC0wMS0wMiIKK1BBU1MgcHcu
RGF5LnBhcnNlKCIyMDAwLTAyLTAxIikudG9TdHJpbmcoKSBpcyAiMjAwMC0wMi0wMSIKK1BBU1Mg
cHcuRGF5LnBhcnNlKCIwMjAwMC0wMi0wMiIpLnRvU3RyaW5nKCkgaXMgIjIwMDAtMDItMDIiCitQ
QVNTIHB3LkRheS5wYXJzZSgiMjAwMC0wMDItMDIiKS50b1N0cmluZygpIGlzICIyMDAwLTAyLTAy
IgorUEFTUyBwdy5EYXkucGFyc2UoIjIwMDAtMDItMDAyIikudG9TdHJpbmcoKSBpcyAiMjAwMC0w
Mi0wMiIKK1BBU1MgcHcuRGF5LnBhcnNlKCIyMDAwLTItMDIiKS50b1N0cmluZygpIGlzICIyMDAw
LTAyLTAyIgorUEFTUyBwdy5EYXkucGFyc2UoIjIwMDAtMDItMiIpLnRvU3RyaW5nKCkgaXMgIjIw
MDAtMDItMDIiCitQQVNTIHB3LkRheS5wYXJzZSgiMS0wMi0wMiIpLnRvU3RyaW5nKCkgaXMgIjAw
MDEtMDItMDIiCitQQVNTIHB3LkRheS5wYXJzZSgiMjAwMC0wMiIpIGlzIG51bGwKK1BBU1MgcHcu
RGF5LnBhcnNlKCIyMDAwLVcwMiIpIGlzIG51bGwKK1BBU1MgcHcuRGF5LnBhcnNlKCJ4IikgaXMg
bnVsbAorUEFTUyBwdy5EYXkucGFyc2UoIiIpIGlzIG51bGwKK1Rlc3QgV2VlayBjb25zdHJ1Y3Rv
cgorUEFTUyBuZXcgcHcuV2VlaygyMDAwLCAxKS55ZWFyIGlzIDIwMDAKK1BBU1MgbmV3IHB3Lldl
ZWsoMjAwMCwgMSkud2VlayBpcyAxCitQQVNTIG5ldyBwdy5XZWVrKDIwMDAsIC0xKS55ZWFyIGlz
IDE5OTkKK1BBU1MgbmV3IHB3LldlZWsoMjAwMCwgLTEpLndlZWsgaXMgNTEKK1BBU1MgbmV3IHB3
LldlZWsoLTIwMDAsIDEpLnllYXIgaXMgLTIwMDAKK1BBU1MgbmV3IHB3LldlZWsoLTIwMDAsIDEp
LndlZWsgaXMgMQorUEFTUyBuZXcgcHcuV2VlaygyMDAwLCA1NSkueWVhciBpcyAyMDAxCitQQVNT
IG5ldyBwdy5XZWVrKDIwMDAsIDU1KS53ZWVrIGlzIDMKK1BBU1MgbmV3IHB3LldlZWsoMjAwMDAw
LCAxKS55ZWFyIGlzIDIwMDAwMAorUEFTUyBuZXcgcHcuV2VlaygyMDAwMDAsIDEpLndlZWsgaXMg
MQorVGVzdCBXZWVrLmVxdWFscworUEFTUyBuZXcgcHcuV2VlaygyMDAwLCAxKS5lcXVhbHMobmV3
IHB3LldlZWsoMjAwMCwgMSkpIGlzIHRydWUKK1BBU1MgbmV3IHB3LldlZWsoMjAwMCwgMSkuZXF1
YWxzKG5ldyBwdy5XZWVrKDIwMDEsIC01MSkpIGlzIHRydWUKK1BBU1MgbmV3IHB3LldlZWsoMjAw
MCwgMSkuZXF1YWxzKG5ldyBwdy5XZWVrKDE5OTksIDUzKSkgaXMgdHJ1ZQorUEFTUyBuZXcgcHcu
V2VlaygyMDAwLCAxKS5lcXVhbHMobmV3IHB3LldlZWsoMjAwMCwgMikpIGlzIGZhbHNlCitQQVNT
IG5ldyBwdy5XZWVrKDIwMDAsIDEpLmVxdWFscyhuZXcgcHcuV2VlaygyMDAxLCAxKSkgaXMgZmFs
c2UKK1BBU1MgbmV3IHB3LldlZWsoMjAwMCwgMSkuZXF1YWxzKG5ldyBwdy5XZWVrKDIwMDEsIDIp
KSBpcyBmYWxzZQorVGVzdCBXZWVrLnByZXZpb3VzCitQQVNTIG5ldyBwdy5XZWVrKDIwMDAsIDIp
LnByZXZpb3VzKCkudG9TdHJpbmcoKSBpcyAiMjAwMC1XMDEiCitQQVNTIG5ldyBwdy5XZWVrKDIw
MDAsIDIpLnByZXZpb3VzKDEpLnRvU3RyaW5nKCkgaXMgIjIwMDAtVzAxIgorUEFTUyBuZXcgcHcu
V2VlaygyMDAwLCAyKS5wcmV2aW91cygyKS50b1N0cmluZygpIGlzICIxOTk5LVc1MiIKK1BBU1Mg
bmV3IHB3LldlZWsoMjAwMCwgMikucHJldmlvdXMoMykudG9TdHJpbmcoKSBpcyAiMTk5OS1XNTEi
CitQQVNTIG5ldyBwdy5XZWVrKDIwMDAsIDIpLnByZXZpb3VzKDEwMCkudG9TdHJpbmcoKSBpcyAi
MTk5OC1XMDciCitUZXN0IFdlZWsubmV4dAorUEFTUyBuZXcgcHcuV2VlaygyMDAwLCAyKS5uZXh0
KCkudG9TdHJpbmcoKSBpcyAiMjAwMC1XMDMiCitQQVNTIG5ldyBwdy5XZWVrKDIwMDAsIDIpLm5l
eHQoMSkudG9TdHJpbmcoKSBpcyAiMjAwMC1XMDMiCitQQVNTIG5ldyBwdy5XZWVrKDIwMDAsIDIp
Lm5leHQoMikudG9TdHJpbmcoKSBpcyAiMjAwMC1XMDQiCitQQVNTIG5ldyBwdy5XZWVrKDIwMDAs
IDIpLm5leHQoMykudG9TdHJpbmcoKSBpcyAiMjAwMC1XMDUiCitQQVNTIG5ldyBwdy5XZWVrKDIw
MDAsIDIpLm5leHQoMTAwKS50b1N0cmluZygpIGlzICIyMDAxLVc1MCIKK1Rlc3QgV2Vlay5maXJz
dERheQorUEFTUyBuZXcgcHcuV2VlaygyMDAwLCAyKS5maXJzdERheSgpLnRvU3RyaW5nKCkgaXMg
IjIwMDAtMDEtMTAiCitQQVNTIG5ldyBwdy5XZWVrKDIwMDAsIDUwKS5maXJzdERheSgpLnRvU3Ry
aW5nKCkgaXMgIjIwMDAtMTItMTEiCitQQVNTIG5ldyBwdy5XZWVrKDEsIDEpLmZpcnN0RGF5KCku
dG9TdHJpbmcoKSBpcyAiMDAwMS0wMS0wMSIKK1BBU1MgbmV3IHB3LldlZWsoMSwgNTApLmZpcnN0
RGF5KCkudG9TdHJpbmcoKSBpcyAiMDAwMS0xMi0xMCIKK1BBU1MgbmV3IHB3LldlZWsoMjAwMDAs
IDEpLmZpcnN0RGF5KCkudG9TdHJpbmcoKSBpcyAiMjAwMDAtMDEtMDMiCitQQVNTIG5ldyBwdy5X
ZWVrKDIwMDAwLCA1MCkuZmlyc3REYXkoKS50b1N0cmluZygpIGlzICIyMDAwMC0xMi0xMSIKK1Rl
c3QgV2Vlay5taWRkbGVEYXkKK1BBU1MgbmV3IHB3LldlZWsoMjAwMCwgMikubWlkZGxlRGF5KCku
dG9TdHJpbmcoKSBpcyAiMjAwMC0wMS0xMyIKK1BBU1MgbmV3IHB3LldlZWsoMjAwMCwgNTApLm1p
ZGRsZURheSgpLnRvU3RyaW5nKCkgaXMgIjIwMDAtMTItMTQiCitQQVNTIG5ldyBwdy5XZWVrKDEs
IDEpLm1pZGRsZURheSgpLnRvU3RyaW5nKCkgaXMgIjAwMDEtMDEtMDQiCitQQVNTIG5ldyBwdy5X
ZWVrKDEsIDUwKS5taWRkbGVEYXkoKS50b1N0cmluZygpIGlzICIwMDAxLTEyLTEzIgorUEFTUyBu
ZXcgcHcuV2VlaygyMDAwMCwgMSkubWlkZGxlRGF5KCkudG9TdHJpbmcoKSBpcyAiMjAwMDAtMDEt
MDYiCitQQVNTIG5ldyBwdy5XZWVrKDIwMDAwLCA1MCkubWlkZGxlRGF5KCkudG9TdHJpbmcoKSBp
cyAiMjAwMDAtMTItMTQiCitUZXN0IFdlZWsubGFzdERheQorUEFTUyBuZXcgcHcuV2VlaygyMDAw
LCAyKS5sYXN0RGF5KCkudG9TdHJpbmcoKSBpcyAiMjAwMC0wMS0xNiIKK1BBU1MgbmV3IHB3Lldl
ZWsoMjAwMCwgNTApLmxhc3REYXkoKS50b1N0cmluZygpIGlzICIyMDAwLTEyLTE3IgorUEFTUyBu
ZXcgcHcuV2VlaygxLCAxKS5sYXN0RGF5KCkudG9TdHJpbmcoKSBpcyAiMDAwMS0wMS0wNyIKK1BB
U1MgbmV3IHB3LldlZWsoMSwgNTApLmxhc3REYXkoKS50b1N0cmluZygpIGlzICIwMDAxLTEyLTE2
IgorUEFTUyBuZXcgcHcuV2VlaygyMDAwMCwgMSkubGFzdERheSgpLnRvU3RyaW5nKCkgaXMgIjIw
MDAwLTAxLTA5IgorUEFTUyBuZXcgcHcuV2VlaygyMDAwMCwgNTApLmxhc3REYXkoKS50b1N0cmlu
ZygpIGlzICIyMDAwMC0xMi0xNyIKK1Rlc3QgV2Vlay52YWx1ZU9mCitQQVNTIG5ldyBwdy5XZWVr
KDE5NzAsIDEpLnZhbHVlT2YoKSBpcyAtMjU5MjAwMDAwCitQQVNTIG5ldyBwdy5XZWVrKDE5NzAs
IDIpLnZhbHVlT2YoKSBpcyAzNDU2MDAwMDAKK1BBU1MgbmV3IHB3LldlZWsoMjAwMCwgMSkudmFs
dWVPZigpIGlzIDk0Njg1NzYwMDAwMAorUEFTUyBuZXcgcHcuV2VlaygxLCAxKS52YWx1ZU9mKCkg
aXMgLTYyMTM1NTk2ODAwMDAwCitQQVNTIG5ldyBwdy5XZWVrKDIwMDAwLCAyKS52YWx1ZU9mKCkg
aXMgNTY4OTcyNTk4NDAwMDAwCitUZXN0IFdlZWsudG9TdHJpbmcKK1BBU1MgbmV3IHB3LldlZWso
MjAwMCwgMikudG9TdHJpbmcoKSBpcyAiMjAwMC1XMDIiCitQQVNTIG5ldyBwdy5XZWVrKDEsIDUw
KS50b1N0cmluZygpIGlzICIwMDAxLVc1MCIKK1BBU1MgbmV3IHB3LldlZWsoMjAwMDAsIDIpLnRv
U3RyaW5nKCkgaXMgIjIwMDAwLVcwMiIKK1Rlc3QgV2Vlay5wYXJzZQorUEFTUyBwdy5XZWVrLnBh
cnNlKCIyMDAwLVcwMiIpLnRvU3RyaW5nKCkgaXMgIjIwMDAtVzAyIgorUEFTUyBwdy5XZWVrLnBh
cnNlKCIxOTk5LVcxMCIpLnRvU3RyaW5nKCkgaXMgIjE5OTktVzEwIgorUEFTUyBwdy5XZWVrLnBh
cnNlKCIwMDAxLVcyMyIpLnRvU3RyaW5nKCkgaXMgIjAwMDEtVzIzIgorUEFTUyBwdy5XZWVrLnBh
cnNlKCIxMjM0NS1XMzIiKS50b1N0cmluZygpIGlzICIxMjM0NS1XMzIiCitQQVNTIHB3LldlZWsu
cGFyc2UoIjAyMDAwLVcwMiIpLnRvU3RyaW5nKCkgaXMgIjIwMDAtVzAyIgorUEFTUyBwdy5XZWVr
LnBhcnNlKCIyMDAwLVcwMDIiKS50b1N0cmluZygpIGlzICIyMDAwLVcwMiIKK1BBU1MgcHcuV2Vl
ay5wYXJzZSgiMjAwMC1XMiIpLnRvU3RyaW5nKCkgaXMgIjIwMDAtVzAyIgorUEFTUyBwdy5XZWVr
LnBhcnNlKCIxLVcwMiIpLnRvU3RyaW5nKCkgaXMgIjAwMDEtVzAyIgorUEFTUyBwdy5XZWVrLnBh
cnNlKCIyMDAwLTAyLTAzIikgaXMgbnVsbAorUEFTUyBwdy5XZWVrLnBhcnNlKCIyMDAwLTAyIikg
aXMgbnVsbAorUEFTUyBwdy5XZWVrLnBhcnNlKCJ4IikgaXMgbnVsbAorUEFTUyBwdy5XZWVrLnBh
cnNlKCIiKSBpcyBudWxsCitUZXN0IE1vbnRoIGNvbnN0cnVjdG9yCitQQVNTIG5ldyBwdy5Nb250
aCgyMDAwLCAxKS55ZWFyIGlzIDIwMDAKK1BBU1MgbmV3IHB3Lk1vbnRoKDIwMDAsIDEpLm1vbnRo
IGlzIDEKK1BBU1MgbmV3IHB3Lk1vbnRoKDIwMDAsIC0xKS55ZWFyIGlzIDE5OTkKK1BBU1MgbmV3
IHB3Lk1vbnRoKDIwMDAsIC0xKS5tb250aCBpcyAxMQorUEFTUyBuZXcgcHcuTW9udGgoLTIwMDAs
IDEpLnllYXIgaXMgLTIwMDAKK1BBU1MgbmV3IHB3Lk1vbnRoKC0yMDAwLCAxKS5tb250aCBpcyAx
CitQQVNTIG5ldyBwdy5Nb250aCgyMDAwLCAxMykueWVhciBpcyAyMDAxCitQQVNTIG5ldyBwdy5N
b250aCgyMDAwLCAxMykubW9udGggaXMgMQorUEFTUyBuZXcgcHcuTW9udGgoMjAwMDAwLCAxKS55
ZWFyIGlzIDIwMDAwMAorUEFTUyBuZXcgcHcuTW9udGgoMjAwMDAwLCAxKS5tb250aCBpcyAxCitU
ZXN0IE1vbnRoLmVxdWFscworUEFTUyBuZXcgcHcuTW9udGgoMjAwMCwgMSkuZXF1YWxzKG5ldyBw
dy5Nb250aCgyMDAwLCAxKSkgaXMgdHJ1ZQorUEFTUyBuZXcgcHcuTW9udGgoMjAwMCwgMSkuZXF1
YWxzKG5ldyBwdy5Nb250aCgyMDAxLCAtMTEpKSBpcyB0cnVlCitQQVNTIG5ldyBwdy5Nb250aCgy
MDAwLCAxKS5lcXVhbHMobmV3IHB3Lk1vbnRoKDE5OTksIDEzKSkgaXMgdHJ1ZQorUEFTUyBuZXcg
cHcuTW9udGgoMjAwMCwgMSkuZXF1YWxzKG5ldyBwdy5Nb250aCgyMDAwLCAyKSkgaXMgZmFsc2UK
K1BBU1MgbmV3IHB3Lk1vbnRoKDIwMDAsIDEpLmVxdWFscyhuZXcgcHcuTW9udGgoMjAwMSwgMSkp
IGlzIGZhbHNlCitQQVNTIG5ldyBwdy5Nb250aCgyMDAwLCAxKS5lcXVhbHMobmV3IHB3Lk1vbnRo
KDIwMDEsIDIpKSBpcyBmYWxzZQorVGVzdCBNb250aC5wcmV2aW91cworUEFTUyBuZXcgcHcuTW9u
dGgoMjAwMCwgMikucHJldmlvdXMoKS50b1N0cmluZygpIGlzICIyMDAwLTAyIgorUEFTUyBuZXcg
cHcuTW9udGgoMjAwMCwgMikucHJldmlvdXMoMSkudG9TdHJpbmcoKSBpcyAiMjAwMC0wMiIKK1BB
U1MgbmV3IHB3Lk1vbnRoKDIwMDAsIDIpLnByZXZpb3VzKDIpLnRvU3RyaW5nKCkgaXMgIjIwMDAt
MDEiCitQQVNTIG5ldyBwdy5Nb250aCgyMDAwLCAyKS5wcmV2aW91cygzKS50b1N0cmluZygpIGlz
ICIxOTk5LTEyIgorUEFTUyBuZXcgcHcuTW9udGgoMjAwMCwgMikucHJldmlvdXMoMTAwKS50b1N0
cmluZygpIGlzICIxOTkxLTExIgorVGVzdCBNb250aC5uZXh0CitQQVNTIG5ldyBwdy5Nb250aCgy
MDAwLCAyKS5uZXh0KCkudG9TdHJpbmcoKSBpcyAiMjAwMC0wNCIKK1BBU1MgbmV3IHB3Lk1vbnRo
KDIwMDAsIDIpLm5leHQoMSkudG9TdHJpbmcoKSBpcyAiMjAwMC0wNCIKK1BBU1MgbmV3IHB3Lk1v
bnRoKDIwMDAsIDIpLm5leHQoMikudG9TdHJpbmcoKSBpcyAiMjAwMC0wNSIKK1BBU1MgbmV3IHB3
Lk1vbnRoKDIwMDAsIDIpLm5leHQoMykudG9TdHJpbmcoKSBpcyAiMjAwMC0wNiIKK1BBU1MgbmV3
IHB3Lk1vbnRoKDIwMDAsIDIpLm5leHQoMTAwKS50b1N0cmluZygpIGlzICIyMDA4LTA3IgorVGVz
dCBNb250aC5maXJzdERheQorUEFTUyBuZXcgcHcuTW9udGgoMjAwMCwgMSkuZmlyc3REYXkoKS50
b1N0cmluZygpIGlzICIyMDAwLTAyLTAxIgorUEFTUyBuZXcgcHcuTW9udGgoMjAwMCwgMTEpLmZp
cnN0RGF5KCkudG9TdHJpbmcoKSBpcyAiMjAwMC0xMi0wMSIKK1BBU1MgbmV3IHB3Lk1vbnRoKDEs
IDApLmZpcnN0RGF5KCkudG9TdHJpbmcoKSBpcyAiMDAwMS0wMS0wMSIKK1BBU1MgbmV3IHB3Lk1v
bnRoKDEsIDEpLmZpcnN0RGF5KCkudG9TdHJpbmcoKSBpcyAiMDAwMS0wMi0wMSIKK1BBU1MgbmV3
IHB3Lk1vbnRoKDEsIDExKS5maXJzdERheSgpLnRvU3RyaW5nKCkgaXMgIjAwMDEtMTItMDEiCitQ
QVNTIG5ldyBwdy5Nb250aCgyMDAwMCwgMCkuZmlyc3REYXkoKS50b1N0cmluZygpIGlzICIyMDAw
MC0wMS0wMSIKK1BBU1MgbmV3IHB3Lk1vbnRoKDIwMDAwLCAxKS5maXJzdERheSgpLnRvU3RyaW5n
KCkgaXMgIjIwMDAwLTAyLTAxIgorUEFTUyBuZXcgcHcuTW9udGgoMjAwMDAsIDExKS5maXJzdERh
eSgpLnRvU3RyaW5nKCkgaXMgIjIwMDAwLTEyLTAxIgorVGVzdCBNb250aC5taWRkbGVEYXkKK1BB
U1MgbmV3IHB3Lk1vbnRoKDIwMDAsIDEpLm1pZGRsZURheSgpLnRvU3RyaW5nKCkgaXMgIjIwMDAt
MDItMTUiCitQQVNTIG5ldyBwdy5Nb250aCgyMDAwLCAxMSkubWlkZGxlRGF5KCkudG9TdHJpbmco
KSBpcyAiMjAwMC0xMi0xNSIKK1BBU1MgbmV3IHB3Lk1vbnRoKDEsIDApLm1pZGRsZURheSgpLnRv
U3RyaW5nKCkgaXMgIjAwMDEtMDEtMTUiCitQQVNTIG5ldyBwdy5Nb250aCgxLCAxKS5taWRkbGVE
YXkoKS50b1N0cmluZygpIGlzICIwMDAxLTAyLTE1IgorUEFTUyBuZXcgcHcuTW9udGgoMSwgMTEp
Lm1pZGRsZURheSgpLnRvU3RyaW5nKCkgaXMgIjAwMDEtMTItMTUiCitQQVNTIG5ldyBwdy5Nb250
aCgyMDAwMCwgMCkubWlkZGxlRGF5KCkudG9TdHJpbmcoKSBpcyAiMjAwMDAtMDEtMTUiCitQQVNT
IG5ldyBwdy5Nb250aCgyMDAwMCwgMSkubWlkZGxlRGF5KCkudG9TdHJpbmcoKSBpcyAiMjAwMDAt
MDItMTUiCitQQVNTIG5ldyBwdy5Nb250aCgyMDAwMCwgMTEpLm1pZGRsZURheSgpLnRvU3RyaW5n
KCkgaXMgIjIwMDAwLTEyLTE1IgorVGVzdCBNb250aC5sYXN0RGF5CitQQVNTIG5ldyBwdy5Nb250
aCgyMDAwLCAxKS5sYXN0RGF5KCkudG9TdHJpbmcoKSBpcyAiMjAwMC0wMi0yOSIKK1BBU1MgbmV3
IHB3Lk1vbnRoKDIwMDAsIDExKS5sYXN0RGF5KCkudG9TdHJpbmcoKSBpcyAiMjAwMC0xMi0zMSIK
K1BBU1MgbmV3IHB3Lk1vbnRoKDEsIDApLmxhc3REYXkoKS50b1N0cmluZygpIGlzICIwMDAxLTAx
LTMxIgorUEFTUyBuZXcgcHcuTW9udGgoMSwgMSkubGFzdERheSgpLnRvU3RyaW5nKCkgaXMgIjAw
MDEtMDItMjgiCitQQVNTIG5ldyBwdy5Nb250aCgxLCAxMSkubGFzdERheSgpLnRvU3RyaW5nKCkg
aXMgIjAwMDEtMTItMzEiCitQQVNTIG5ldyBwdy5Nb250aCgyMDAwMCwgMCkubGFzdERheSgpLnRv
U3RyaW5nKCkgaXMgIjIwMDAwLTAxLTMxIgorUEFTUyBuZXcgcHcuTW9udGgoMjAwMDAsIDEpLmxh
c3REYXkoKS50b1N0cmluZygpIGlzICIyMDAwMC0wMi0yOSIKK1BBU1MgbmV3IHB3Lk1vbnRoKDIw
MDAwLCAxMSkubGFzdERheSgpLnRvU3RyaW5nKCkgaXMgIjIwMDAwLTEyLTMxIgorVGVzdCBNb250
aC52YWx1ZU9mCitQQVNTIG5ldyBwdy5Nb250aCgxOTcwLCAwKS52YWx1ZU9mKCkgaXMgMAorUEFT
UyBuZXcgcHcuTW9udGgoMTk3MCwgMSkudmFsdWVPZigpIGlzIDEKK1BBU1MgbmV3IHB3Lk1vbnRo
KDIwMDAsIDApLnZhbHVlT2YoKSBpcyAzNjAKK1BBU1MgbmV3IHB3Lk1vbnRoKDEsIDApLnZhbHVl
T2YoKSBpcyAtMjM2MjgKK1BBU1MgbmV3IHB3Lk1vbnRoKDIwMDAwLCAxMSkudmFsdWVPZigpIGlz
IDIxNjM3MQorVGVzdCBNb250aC50b1N0cmluZworUEFTUyBuZXcgcHcuTW9udGgoMjAwMCwgMCku
dG9TdHJpbmcoKSBpcyAiMjAwMC0wMSIKK1BBU1MgbmV3IHB3Lk1vbnRoKDEsIDExKS50b1N0cmlu
ZygpIGlzICIwMDAxLTEyIgorUEFTUyBuZXcgcHcuTW9udGgoMjAwMDAsIDUpLnRvU3RyaW5nKCkg
aXMgIjIwMDAwLTA2IgorVGVzdCBNb250aC5wYXJzZQorUEFTUyBwdy5Nb250aC5wYXJzZSgiMjAw
MC0wMSIpLnRvU3RyaW5nKCkgaXMgIjIwMDAtMDEiCitQQVNTIHB3Lk1vbnRoLnBhcnNlKCIxOTk5
LTEwIikudG9TdHJpbmcoKSBpcyAiMTk5OS0xMCIKK1BBU1MgcHcuTW9udGgucGFyc2UoIjAwMDEt
MTEiKS50b1N0cmluZygpIGlzICIwMDAxLTExIgorUEFTUyBwdy5Nb250aC5wYXJzZSgiMTIzNDUt
MDMiKS50b1N0cmluZygpIGlzICIxMjM0NS0wMyIKK1BBU1MgcHcuTW9udGgucGFyc2UoIjAyMDAw
LTAyIikudG9TdHJpbmcoKSBpcyAiMjAwMC0wMiIKK1BBU1MgcHcuTW9udGgucGFyc2UoIjIwMDAt
MDAyIikudG9TdHJpbmcoKSBpcyAiMjAwMC0wMiIKK1BBU1MgcHcuTW9udGgucGFyc2UoIjIwMDAt
MiIpLnRvU3RyaW5nKCkgaXMgIjIwMDAtMDIiCitQQVNTIHB3Lk1vbnRoLnBhcnNlKCIxLTAyIiku
dG9TdHJpbmcoKSBpcyAiMDAwMS0wMiIKK1BBU1MgcHcuTW9udGgucGFyc2UoIjIwMDAtMDItMDMi
KSBpcyBudWxsCitQQVNTIHB3Lk1vbnRoLnBhcnNlKCIyMDAwLVcwMiIpIGlzIG51bGwKK1BBU1Mg
cHcuTW9udGgucGFyc2UoIngiKSBpcyBudWxsCitQQVNTIHB3Lk1vbnRoLnBhcnNlKCIiKSBpcyBu
dWxsCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKyAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZm9ybXMvY2Fs
ZW5kYXItcGlja2VyL2NhbGVuZGFyLXBpY2tlci1kYXRlLXR5cGVzLmh0bWwgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zvcm1zL2NhbGVuZGFyLXBpY2tlci9jYWxlbmRhci1w
aWNrZXItZGF0ZS10eXBlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0ZmEzMWM4N2YzNWU4NjNlYzFhOGY5
ZWU2ZjVlZjI1OTljNmY2ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS9mYXN0L2Zvcm1zL2NhbGVuZGFyLXBpY2tlci9jYWxlbmRhci1waWNrZXItZGF0
ZS10eXBlcy5odG1sCkBAIC0wLDAgKzEsMzQ4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4uL2Zhc3Qv
Zm9ybXMvcmVzb3VyY2VzL3BpY2tlci1jb21tb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9jYWxlbmRhci1waWNrZXItY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKworPGlucHV0IHR5cGU9ZGF0ZSBpZD1kYXRlIHZhbHVlPSIyMDExLTA1LTAxIj4KKworPHNj
cmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IGlmIHN0ZXAgbGltaXRzIGF2YWlsYWJsZSBkYXRlcyBp
biBjYWxlbmRhciBwaWNrZXIuJyk7CisKK29wZW5QaWNrZXIoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2RhdGUnKSwgdGVzdDEpOworCit2YXIgcHcgPSBudWxsOworZnVuY3Rpb24gdGVzdDEoKSB7
CisgICAgcHcgPSBwb3B1cFdpbmRvdzsKKworICAgIHRlc3REYXkoKTsKKyAgICB0ZXN0V2Vlaygp
OworICAgIHRlc3RNb250aCgpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Z1bmN0aW9u
IHRlc3REYXkoKSB7CisgICAgZGVidWcoJ1Rlc3QgRGF5IGNvbnN0cnVjdG9yJyk7CisKKyAgICBz
aG91bGRCZSgnbmV3IHB3LkRheSgyMDAwLCAxLCAyKS55ZWFyJywgJzIwMDAnKTsKKyAgICBzaG91
bGRCZSgnbmV3IHB3LkRheSgyMDAwLCAxLCAyKS5tb250aCcsICcxJyk7CisgICAgc2hvdWxkQmUo
J25ldyBwdy5EYXkoMjAwMCwgMSwgMikuZGF0ZScsICcyJyk7CisKKyAgICBzaG91bGRCZSgnbmV3
IHB3LkRheSgyMDAwLCAtMSwgMikueWVhcicsICcxOTk5Jyk7CisgICAgc2hvdWxkQmUoJ25ldyBw
dy5EYXkoMjAwMCwgLTEsIDIpLm1vbnRoJywgJzExJyk7CisgICAgc2hvdWxkQmUoJ25ldyBwdy5E
YXkoMjAwMCwgLTEsIDIpLmRhdGUnLCAnMicpOworCisgICAgc2hvdWxkQmUoJ25ldyBwdy5EYXko
MjAwMCwgMSwgLTIpLnllYXInLCAnMjAwMCcpOworICAgIHNob3VsZEJlKCduZXcgcHcuRGF5KDIw
MDAsIDEsIC0yKS5tb250aCcsICcwJyk7CisgICAgc2hvdWxkQmUoJ25ldyBwdy5EYXkoMjAwMCwg
MSwgLTIpLmRhdGUnLCAnMjknKTsKKworICAgIHNob3VsZEJlKCduZXcgcHcuRGF5KC0yMDAwLCAx
LCAyKS55ZWFyJywgJy0yMDAwJyk7CisgICAgc2hvdWxkQmUoJ25ldyBwdy5EYXkoLTIwMDAsIDEs
IDIpLm1vbnRoJywgJzEnKTsKKyAgICBzaG91bGRCZSgnbmV3IHB3LkRheSgtMjAwMCwgMSwgMiku
ZGF0ZScsICcyJyk7CisKKyAgICBzaG91bGRCZSgnbmV3IHB3LkRheSgyMDAwLCAxLCAzMykueWVh
cicsICcyMDAwJyk7CisgICAgc2hvdWxkQmUoJ25ldyBwdy5EYXkoMjAwMCwgMSwgMzMpLm1vbnRo
JywgJzInKTsKKyAgICBzaG91bGRCZSgnbmV3IHB3LkRheSgyMDAwLCAxLCAzMykuZGF0ZScsICc0
Jyk7CisKKyAgICBzaG91bGRCZSgnbmV3IHB3LkRheSgyMDAwMDAsIDEsIDIpLnllYXInLCAnMjAw
MDAwJyk7CisgICAgc2hvdWxkQmUoJ25ldyBwdy5EYXkoMjAwMDAwLCAxLCAyKS5tb250aCcsICcx
Jyk7CisgICAgc2hvdWxkQmUoJ25ldyBwdy5EYXkoMjAwMDAwLCAxLCAyKS5kYXRlJywgJzInKTsK
KworICAgIGRlYnVnKCdUZXN0IERheS5lcXVhbHMnKTsKKworICAgIHNob3VsZEJlVHJ1ZSgnbmV3
IHB3LkRheSgyMDAwLCAxLCAyKS5lcXVhbHMobmV3IHB3LkRheSgyMDAwLCAxLCAyKSknKTsKKyAg
ICBzaG91bGRCZVRydWUoJ25ldyBwdy5EYXkoMjAwMCwgMSwgMikuZXF1YWxzKG5ldyBwdy5EYXko
MjAwMCwgMiwgLTI3KSknKTsKKyAgICBzaG91bGRCZVRydWUoJ25ldyBwdy5EYXkoMjAwMCwgMSwg
MikuZXF1YWxzKG5ldyBwdy5EYXkoMjAwMSwgMSwgLTM2NCkpJyk7CisgICAgCisgICAgc2hvdWxk
QmVGYWxzZSgnbmV3IHB3LkRheSgyMDAwLCAxLCAyKS5lcXVhbHMobmV3IHB3LkRheSgyMDAwLCAx
LCAzKSknKTsKKyAgICBzaG91bGRCZUZhbHNlKCduZXcgcHcuRGF5KDIwMDAsIDEsIDIpLmVxdWFs
cyhuZXcgcHcuRGF5KDIwMDAsIDIsIDIpKScpOworICAgIHNob3VsZEJlRmFsc2UoJ25ldyBwdy5E
YXkoMjAwMCwgMSwgMikuZXF1YWxzKG5ldyBwdy5EYXkoMjAwMSwgMSwgMikpJyk7CisgICAgc2hv
dWxkQmVGYWxzZSgnbmV3IHB3LkRheSgyMDAwLCAxLCAyKS5lcXVhbHMobmV3IHB3LkRheSgyMDAx
LCAyLCAzKSknKTsKKworICAgIGRlYnVnKCdUZXN0IERheS5wcmV2aW91cycpOworCisgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuRGF5KDIwMDAsIDIsIDEpLnByZXZpb3VzKCkudG9T
dHJpbmcoKScsICcyMDAwLTAyLTI5Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcg
cHcuRGF5KDIwMDAsIDIsIDEpLnByZXZpb3VzKDEpLnRvU3RyaW5nKCknLCAnMjAwMC0wMi0yOScp
OworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3LkRheSgyMDAwLCAyLCAxKS5wcmV2
aW91cygyKS50b1N0cmluZygpJywgJzIwMDAtMDItMjgnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoJ25ldyBwdy5EYXkoMjAwMCwgMiwgMSkucHJldmlvdXMoMykudG9TdHJpbmcoKScsICcy
MDAwLTAyLTI3Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuRGF5KDIwMDAs
IDIsIDEpLnByZXZpb3VzKDMwKS50b1N0cmluZygpJywgJzIwMDAtMDEtMzEnKTsKKworICAgIGRl
YnVnKCdUZXN0IERheS5uZXh0Jyk7CisKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBw
dy5EYXkoMjAwMCwgMiwgMSkubmV4dCgpLnRvU3RyaW5nKCknLCAnMjAwMC0wMy0wMicpOworICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3LkRheSgyMDAwLCAyLCAxKS5uZXh0KDEpLnRv
U3RyaW5nKCknLCAnMjAwMC0wMy0wMicpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3
IHB3LkRheSgyMDAwLCAyLCAxKS5uZXh0KDIpLnRvU3RyaW5nKCknLCAnMjAwMC0wMy0wMycpOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3LkRheSgyMDAwLCAyLCAxKS5uZXh0KDMp
LnRvU3RyaW5nKCknLCAnMjAwMC0wMy0wNCcpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygn
bmV3IHB3LkRheSgyMDAwLCAyLCAxKS5uZXh0KDMwKS50b1N0cmluZygpJywgJzIwMDAtMDMtMzEn
KTsKKworICAgIGRlYnVnKCdUZXN0IERheS5maXJzdERheScpOworCisgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCduZXcgcHcuRGF5KDIwMDAsIDIsIDEpLmZpcnN0RGF5KCkudG9TdHJpbmcoKScs
ICcyMDAwLTAzLTAxJyk7CisKKyAgICBkZWJ1ZygnVGVzdCBEYXkubWlkZGxlRGF5Jyk7CisKKyAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5EYXkoMjAwMCwgMiwgMSkubWlkZGxlRGF5
KCkudG9TdHJpbmcoKScsICcyMDAwLTAzLTAxJyk7CisKKyAgICBkZWJ1ZygnVGVzdCBEYXkubGFz
dERheScpOworCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuRGF5KDIwMDAsIDIs
IDEpLmxhc3REYXkoKS50b1N0cmluZygpJywgJzIwMDAtMDMtMDEnKTsKKworICAgIGRlYnVnKCdU
ZXN0IERheS52YWx1ZU9mJyk7CisKKyAgICBzaG91bGRCZSgnbmV3IHB3LkRheSgxOTcwLCAwLCAx
KS52YWx1ZU9mKCknLCAnMCcpOworICAgIHNob3VsZEJlKCduZXcgcHcuRGF5KDE5NzAsIDAsIDIp
LnZhbHVlT2YoKScsICc4NjQwMDAwMCcpOworICAgIHNob3VsZEJlKCduZXcgcHcuRGF5KDIwMDAs
IDIsIDEpLnZhbHVlT2YoKScsICc5NTE4Njg4MDAwMDAnKTsKKyAgICBzaG91bGRCZSgnbmV3IHB3
LkRheSgxLCAyLCAxKS52YWx1ZU9mKCknLCAnLTYyMTMwNDk5MjAwMDAwJyk7CisgICAgc2hvdWxk
QmUoJ25ldyBwdy5EYXkoMjAwMDAsIDIsIDEpLnZhbHVlT2YoKScsICc1Njg5NzcwMDQ4MDAwMDAn
KTsKKyAgICAKKyAgICBkZWJ1ZygnVGVzdCBEYXkudG9TdHJpbmcnKTsKKyAgICAKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5EYXkoMjAwMCwgMiwgMSkudG9TdHJpbmcoKScsICcy
MDAwLTAzLTAxJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuRGF5KDEsIDIs
IDEpLnRvU3RyaW5nKCknLCAnMDAwMS0wMy0wMScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygnbmV3IHB3LkRheSgyMDAwMCwgMiwgMSkudG9TdHJpbmcoKScsICcyMDAwMC0wMy0wMScpOwor
CisgICAgZGVidWcoJ1Rlc3QgRGF5LnBhcnNlJyk7CisgICAgCisgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCdwdy5EYXkucGFyc2UoIjIwMDAtMDItMDIiKS50b1N0cmluZygpJywgJzIwMDAtMDIt
MDInKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3B3LkRheS5wYXJzZSgiMTk5OS0wMi0w
MiIpLnRvU3RyaW5nKCknLCAnMTk5OS0wMi0wMicpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygncHcuRGF5LnBhcnNlKCIyMDAwLTAxLTAyIikudG9TdHJpbmcoKScsICcyMDAwLTAxLTAyJyk7
CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwdy5EYXkucGFyc2UoIjIwMDAtMDItMDEiKS50
b1N0cmluZygpJywgJzIwMDAtMDItMDEnKTsKKyAgICAvLyBJbmNvcnJlY3QgbnVtYmVyIG9mIGxl
YWRpbmcgemVyb3MKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3B3LkRheS5wYXJzZSgiMDIw
MDAtMDItMDIiKS50b1N0cmluZygpJywgJzIwMDAtMDItMDInKTsKKyAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoJ3B3LkRheS5wYXJzZSgiMjAwMC0wMDItMDIiKS50b1N0cmluZygpJywgJzIwMDAt
MDItMDInKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3B3LkRheS5wYXJzZSgiMjAwMC0w
Mi0wMDIiKS50b1N0cmluZygpJywgJzIwMDAtMDItMDInKTsKKyAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoJ3B3LkRheS5wYXJzZSgiMjAwMC0yLTAyIikudG9TdHJpbmcoKScsICcyMDAwLTAyLTAy
Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwdy5EYXkucGFyc2UoIjIwMDAtMDItMiIp
LnRvU3RyaW5nKCknLCAnMjAwMC0wMi0wMicpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygn
cHcuRGF5LnBhcnNlKCIxLTAyLTAyIikudG9TdHJpbmcoKScsICcwMDAxLTAyLTAyJyk7CisgICAg
Ly8gSW52YWxpZAorICAgIHNob3VsZEJlTnVsbCgncHcuRGF5LnBhcnNlKCIyMDAwLTAyIiknKTsK
KyAgICBzaG91bGRCZU51bGwoJ3B3LkRheS5wYXJzZSgiMjAwMC1XMDIiKScpOworICAgIHNob3Vs
ZEJlTnVsbCgncHcuRGF5LnBhcnNlKCJ4IiknKTsKKyAgICBzaG91bGRCZU51bGwoJ3B3LkRheS5w
YXJzZSgiIiknKTsKK30KKworZnVuY3Rpb24gdGVzdFdlZWsoKSB7CisgICAgZGVidWcoJ1Rlc3Qg
V2VlayBjb25zdHJ1Y3RvcicpOworCisgICAgc2hvdWxkQmUoJ25ldyBwdy5XZWVrKDIwMDAsIDEp
LnllYXInLCAnMjAwMCcpOworICAgIHNob3VsZEJlKCduZXcgcHcuV2VlaygyMDAwLCAxKS53ZWVr
JywgJzEnKTsKKworICAgIHNob3VsZEJlKCduZXcgcHcuV2VlaygyMDAwLCAtMSkueWVhcicsICcx
OTk5Jyk7CisgICAgc2hvdWxkQmUoJ25ldyBwdy5XZWVrKDIwMDAsIC0xKS53ZWVrJywgJzUxJyk7
CisKKyAgICBzaG91bGRCZSgnbmV3IHB3LldlZWsoLTIwMDAsIDEpLnllYXInLCAnLTIwMDAnKTsK
KyAgICBzaG91bGRCZSgnbmV3IHB3LldlZWsoLTIwMDAsIDEpLndlZWsnLCAnMScpOworCisgICAg
c2hvdWxkQmUoJ25ldyBwdy5XZWVrKDIwMDAsIDU1KS55ZWFyJywgJzIwMDEnKTsKKyAgICBzaG91
bGRCZSgnbmV3IHB3LldlZWsoMjAwMCwgNTUpLndlZWsnLCAnMycpOworCisgICAgc2hvdWxkQmUo
J25ldyBwdy5XZWVrKDIwMDAwMCwgMSkueWVhcicsICcyMDAwMDAnKTsKKyAgICBzaG91bGRCZSgn
bmV3IHB3LldlZWsoMjAwMDAwLCAxKS53ZWVrJywgJzEnKTsKKworICAgIGRlYnVnKCdUZXN0IFdl
ZWsuZXF1YWxzJyk7CisKKyAgICBzaG91bGRCZVRydWUoJ25ldyBwdy5XZWVrKDIwMDAsIDEpLmVx
dWFscyhuZXcgcHcuV2VlaygyMDAwLCAxKSknKTsKKyAgICBzaG91bGRCZVRydWUoJ25ldyBwdy5X
ZWVrKDIwMDAsIDEpLmVxdWFscyhuZXcgcHcuV2VlaygyMDAxLCAtNTEpKScpOworICAgIHNob3Vs
ZEJlVHJ1ZSgnbmV3IHB3LldlZWsoMjAwMCwgMSkuZXF1YWxzKG5ldyBwdy5XZWVrKDE5OTksIDUz
KSknKTsKKyAgICAKKyAgICBzaG91bGRCZUZhbHNlKCduZXcgcHcuV2VlaygyMDAwLCAxKS5lcXVh
bHMobmV3IHB3LldlZWsoMjAwMCwgMikpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgnbmV3IHB3Lldl
ZWsoMjAwMCwgMSkuZXF1YWxzKG5ldyBwdy5XZWVrKDIwMDEsIDEpKScpOworICAgIHNob3VsZEJl
RmFsc2UoJ25ldyBwdy5XZWVrKDIwMDAsIDEpLmVxdWFscyhuZXcgcHcuV2VlaygyMDAxLCAyKSkn
KTsKKworICAgIGRlYnVnKCdUZXN0IFdlZWsucHJldmlvdXMnKTsKKworICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygnbmV3IHB3LldlZWsoMjAwMCwgMikucHJldmlvdXMoKS50b1N0cmluZygpJywg
JzIwMDAtVzAxJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuV2VlaygyMDAw
LCAyKS5wcmV2aW91cygxKS50b1N0cmluZygpJywgJzIwMDAtVzAxJyk7CisgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCduZXcgcHcuV2VlaygyMDAwLCAyKS5wcmV2aW91cygyKS50b1N0cmluZygp
JywgJzE5OTktVzUyJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuV2Vlaygy
MDAwLCAyKS5wcmV2aW91cygzKS50b1N0cmluZygpJywgJzE5OTktVzUxJyk7CisgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuV2VlaygyMDAwLCAyKS5wcmV2aW91cygxMDApLnRvU3Ry
aW5nKCknLCAnMTk5OC1XMDcnKTsKKworICAgIGRlYnVnKCdUZXN0IFdlZWsubmV4dCcpOworCisg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuV2VlaygyMDAwLCAyKS5uZXh0KCkudG9T
dHJpbmcoKScsICcyMDAwLVcwMycpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3
LldlZWsoMjAwMCwgMikubmV4dCgxKS50b1N0cmluZygpJywgJzIwMDAtVzAzJyk7CisgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuV2VlaygyMDAwLCAyKS5uZXh0KDIpLnRvU3RyaW5n
KCknLCAnMjAwMC1XMDQnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5XZWVr
KDIwMDAsIDIpLm5leHQoMykudG9TdHJpbmcoKScsICcyMDAwLVcwNScpOworICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygnbmV3IHB3LldlZWsoMjAwMCwgMikubmV4dCgxMDApLnRvU3RyaW5nKCkn
LCAnMjAwMS1XNTAnKTsKKworICAgIGRlYnVnKCdUZXN0IFdlZWsuZmlyc3REYXknKTsKKworICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3LldlZWsoMjAwMCwgMikuZmlyc3REYXkoKS50
b1N0cmluZygpJywgJzIwMDAtMDEtMTAnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25l
dyBwdy5XZWVrKDIwMDAsIDUwKS5maXJzdERheSgpLnRvU3RyaW5nKCknLCAnMjAwMC0xMi0xMScp
OworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3LldlZWsoMSwgMSkuZmlyc3REYXko
KS50b1N0cmluZygpJywgJzAwMDEtMDEtMDEnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
J25ldyBwdy5XZWVrKDEsIDUwKS5maXJzdERheSgpLnRvU3RyaW5nKCknLCAnMDAwMS0xMi0xMCcp
OworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3LldlZWsoMjAwMDAsIDEpLmZpcnN0
RGF5KCkudG9TdHJpbmcoKScsICcyMDAwMC0wMS0wMycpOworICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygnbmV3IHB3LldlZWsoMjAwMDAsIDUwKS5maXJzdERheSgpLnRvU3RyaW5nKCknLCAnMjAw
MDAtMTItMTEnKTsKKworICAgIGRlYnVnKCdUZXN0IFdlZWsubWlkZGxlRGF5Jyk7CisKKyAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5XZWVrKDIwMDAsIDIpLm1pZGRsZURheSgpLnRv
U3RyaW5nKCknLCAnMjAwMC0wMS0xMycpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3
IHB3LldlZWsoMjAwMCwgNTApLm1pZGRsZURheSgpLnRvU3RyaW5nKCknLCAnMjAwMC0xMi0xNCcp
OworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3LldlZWsoMSwgMSkubWlkZGxlRGF5
KCkudG9TdHJpbmcoKScsICcwMDAxLTAxLTA0Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCduZXcgcHcuV2VlaygxLCA1MCkubWlkZGxlRGF5KCkudG9TdHJpbmcoKScsICcwMDAxLTEyLTEz
Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuV2VlaygyMDAwMCwgMSkubWlk
ZGxlRGF5KCkudG9TdHJpbmcoKScsICcyMDAwMC0wMS0wNicpOworICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygnbmV3IHB3LldlZWsoMjAwMDAsIDUwKS5taWRkbGVEYXkoKS50b1N0cmluZygpJywg
JzIwMDAwLTEyLTE0Jyk7CisKKworICAgIGRlYnVnKCdUZXN0IFdlZWsubGFzdERheScpOworCisg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuV2VlaygyMDAwLCAyKS5sYXN0RGF5KCku
dG9TdHJpbmcoKScsICcyMDAwLTAxLTE2Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdu
ZXcgcHcuV2VlaygyMDAwLCA1MCkubGFzdERheSgpLnRvU3RyaW5nKCknLCAnMjAwMC0xMi0xNycp
OworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3LldlZWsoMSwgMSkubGFzdERheSgp
LnRvU3RyaW5nKCknLCAnMDAwMS0wMS0wNycpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygn
bmV3IHB3LldlZWsoMSwgNTApLmxhc3REYXkoKS50b1N0cmluZygpJywgJzAwMDEtMTItMTYnKTsK
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5XZWVrKDIwMDAwLCAxKS5sYXN0RGF5
KCkudG9TdHJpbmcoKScsICcyMDAwMC0wMS0wOScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygnbmV3IHB3LldlZWsoMjAwMDAsIDUwKS5sYXN0RGF5KCkudG9TdHJpbmcoKScsICcyMDAwMC0x
Mi0xNycpOworCisgICAgZGVidWcoJ1Rlc3QgV2Vlay52YWx1ZU9mJyk7CisKKyAgICBzaG91bGRC
ZSgnbmV3IHB3LldlZWsoMTk3MCwgMSkudmFsdWVPZigpJywgJy0yNTkyMDAwMDAnKTsKKyAgICBz
aG91bGRCZSgnbmV3IHB3LldlZWsoMTk3MCwgMikudmFsdWVPZigpJywgJzM0NTYwMDAwMCcpOwor
ICAgIHNob3VsZEJlKCduZXcgcHcuV2VlaygyMDAwLCAxKS52YWx1ZU9mKCknLCAnOTQ2ODU3NjAw
MDAwJyk7CisgICAgc2hvdWxkQmUoJ25ldyBwdy5XZWVrKDEsIDEpLnZhbHVlT2YoKScsICctNjIx
MzU1OTY4MDAwMDAnKTsKKyAgICBzaG91bGRCZSgnbmV3IHB3LldlZWsoMjAwMDAsIDIpLnZhbHVl
T2YoKScsICc1Njg5NzI1OTg0MDAwMDAnKTsKKworICAgIGRlYnVnKCdUZXN0IFdlZWsudG9TdHJp
bmcnKTsKKyAgICAKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5XZWVrKDIwMDAs
IDIpLnRvU3RyaW5nKCknLCAnMjAwMC1XMDInKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
J25ldyBwdy5XZWVrKDEsIDUwKS50b1N0cmluZygpJywgJzAwMDEtVzUwJyk7CisgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuV2VlaygyMDAwMCwgMikudG9TdHJpbmcoKScsICcyMDAw
MC1XMDInKTsKKworICAgIGRlYnVnKCdUZXN0IFdlZWsucGFyc2UnKTsKKyAgICAKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ3B3LldlZWsucGFyc2UoIjIwMDAtVzAyIikudG9TdHJpbmcoKScs
ICcyMDAwLVcwMicpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncHcuV2Vlay5wYXJzZSgi
MTk5OS1XMTAiKS50b1N0cmluZygpJywgJzE5OTktVzEwJyk7CisgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCdwdy5XZWVrLnBhcnNlKCIwMDAxLVcyMyIpLnRvU3RyaW5nKCknLCAnMDAwMS1XMjMn
KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3B3LldlZWsucGFyc2UoIjEyMzQ1LVczMiIp
LnRvU3RyaW5nKCknLCAnMTIzNDUtVzMyJyk7CisgICAgLy8gSW5jb3JyZWN0IG51bWJlciBvZiBs
ZWFkaW5nIHplcm9zCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwdy5XZWVrLnBhcnNlKCIw
MjAwMC1XMDIiKS50b1N0cmluZygpJywgJzIwMDAtVzAyJyk7CisgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCdwdy5XZWVrLnBhcnNlKCIyMDAwLVcwMDIiKS50b1N0cmluZygpJywgJzIwMDAtVzAy
Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwdy5XZWVrLnBhcnNlKCIyMDAwLVcyIiku
dG9TdHJpbmcoKScsICcyMDAwLVcwMicpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncHcu
V2Vlay5wYXJzZSgiMS1XMDIiKS50b1N0cmluZygpJywgJzAwMDEtVzAyJyk7CisgICAgLy8gSW52
YWxpZAorICAgIHNob3VsZEJlTnVsbCgncHcuV2Vlay5wYXJzZSgiMjAwMC0wMi0wMyIpJyk7Cisg
ICAgc2hvdWxkQmVOdWxsKCdwdy5XZWVrLnBhcnNlKCIyMDAwLTAyIiknKTsKKyAgICBzaG91bGRC
ZU51bGwoJ3B3LldlZWsucGFyc2UoIngiKScpOworICAgIHNob3VsZEJlTnVsbCgncHcuV2Vlay5w
YXJzZSgiIiknKTsKK30KKworZnVuY3Rpb24gdGVzdE1vbnRoKCkgeworICAgIAorICAgIAorICAg
IGRlYnVnKCdUZXN0IE1vbnRoIGNvbnN0cnVjdG9yJyk7CisKKyAgICBzaG91bGRCZSgnbmV3IHB3
Lk1vbnRoKDIwMDAsIDEpLnllYXInLCAnMjAwMCcpOworICAgIHNob3VsZEJlKCduZXcgcHcuTW9u
dGgoMjAwMCwgMSkubW9udGgnLCAnMScpOworCisgICAgc2hvdWxkQmUoJ25ldyBwdy5Nb250aCgy
MDAwLCAtMSkueWVhcicsICcxOTk5Jyk7CisgICAgc2hvdWxkQmUoJ25ldyBwdy5Nb250aCgyMDAw
LCAtMSkubW9udGgnLCAnMTEnKTsKKworICAgIHNob3VsZEJlKCduZXcgcHcuTW9udGgoLTIwMDAs
IDEpLnllYXInLCAnLTIwMDAnKTsKKyAgICBzaG91bGRCZSgnbmV3IHB3Lk1vbnRoKC0yMDAwLCAx
KS5tb250aCcsICcxJyk7CisKKyAgICBzaG91bGRCZSgnbmV3IHB3Lk1vbnRoKDIwMDAsIDEzKS55
ZWFyJywgJzIwMDEnKTsKKyAgICBzaG91bGRCZSgnbmV3IHB3Lk1vbnRoKDIwMDAsIDEzKS5tb250
aCcsICcxJyk7CisKKyAgICBzaG91bGRCZSgnbmV3IHB3Lk1vbnRoKDIwMDAwMCwgMSkueWVhcics
ICcyMDAwMDAnKTsKKyAgICBzaG91bGRCZSgnbmV3IHB3Lk1vbnRoKDIwMDAwMCwgMSkubW9udGgn
LCAnMScpOworCisgICAgZGVidWcoJ1Rlc3QgTW9udGguZXF1YWxzJyk7CisKKyAgICBzaG91bGRC
ZVRydWUoJ25ldyBwdy5Nb250aCgyMDAwLCAxKS5lcXVhbHMobmV3IHB3Lk1vbnRoKDIwMDAsIDEp
KScpOworICAgIHNob3VsZEJlVHJ1ZSgnbmV3IHB3Lk1vbnRoKDIwMDAsIDEpLmVxdWFscyhuZXcg
cHcuTW9udGgoMjAwMSwgLTExKSknKTsKKyAgICBzaG91bGRCZVRydWUoJ25ldyBwdy5Nb250aCgy
MDAwLCAxKS5lcXVhbHMobmV3IHB3Lk1vbnRoKDE5OTksIDEzKSknKTsKKyAgICAKKyAgICBzaG91
bGRCZUZhbHNlKCduZXcgcHcuTW9udGgoMjAwMCwgMSkuZXF1YWxzKG5ldyBwdy5Nb250aCgyMDAw
LCAyKSknKTsKKyAgICBzaG91bGRCZUZhbHNlKCduZXcgcHcuTW9udGgoMjAwMCwgMSkuZXF1YWxz
KG5ldyBwdy5Nb250aCgyMDAxLCAxKSknKTsKKyAgICBzaG91bGRCZUZhbHNlKCduZXcgcHcuTW9u
dGgoMjAwMCwgMSkuZXF1YWxzKG5ldyBwdy5Nb250aCgyMDAxLCAyKSknKTsKKworICAgIGRlYnVn
KCdUZXN0IE1vbnRoLnByZXZpb3VzJyk7CisKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25l
dyBwdy5Nb250aCgyMDAwLCAyKS5wcmV2aW91cygpLnRvU3RyaW5nKCknLCAnMjAwMC0wMicpOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3Lk1vbnRoKDIwMDAsIDIpLnByZXZpb3Vz
KDEpLnRvU3RyaW5nKCknLCAnMjAwMC0wMicpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygn
bmV3IHB3Lk1vbnRoKDIwMDAsIDIpLnByZXZpb3VzKDIpLnRvU3RyaW5nKCknLCAnMjAwMC0wMScp
OworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3Lk1vbnRoKDIwMDAsIDIpLnByZXZp
b3VzKDMpLnRvU3RyaW5nKCknLCAnMTk5OS0xMicpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygnbmV3IHB3Lk1vbnRoKDIwMDAsIDIpLnByZXZpb3VzKDEwMCkudG9TdHJpbmcoKScsICcxOTkx
LTExJyk7CisKKyAgICBkZWJ1ZygnVGVzdCBNb250aC5uZXh0Jyk7CisKKyAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ25ldyBwdy5Nb250aCgyMDAwLCAyKS5uZXh0KCkudG9TdHJpbmcoKScsICcy
MDAwLTA0Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuTW9udGgoMjAwMCwg
MikubmV4dCgxKS50b1N0cmluZygpJywgJzIwMDAtMDQnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoJ25ldyBwdy5Nb250aCgyMDAwLCAyKS5uZXh0KDIpLnRvU3RyaW5nKCknLCAnMjAwMC0w
NScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3Lk1vbnRoKDIwMDAsIDIpLm5l
eHQoMykudG9TdHJpbmcoKScsICcyMDAwLTA2Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCduZXcgcHcuTW9udGgoMjAwMCwgMikubmV4dCgxMDApLnRvU3RyaW5nKCknLCAnMjAwOC0wNycp
OworCisgICAgZGVidWcoJ1Rlc3QgTW9udGguZmlyc3REYXknKTsKKworICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygnbmV3IHB3Lk1vbnRoKDIwMDAsIDEpLmZpcnN0RGF5KCkudG9TdHJpbmcoKScs
ICcyMDAwLTAyLTAxJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuTW9udGgo
MjAwMCwgMTEpLmZpcnN0RGF5KCkudG9TdHJpbmcoKScsICcyMDAwLTEyLTAxJyk7CisgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuTW9udGgoMSwgMCkuZmlyc3REYXkoKS50b1N0cmlu
ZygpJywgJzAwMDEtMDEtMDEnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5N
b250aCgxLCAxKS5maXJzdERheSgpLnRvU3RyaW5nKCknLCAnMDAwMS0wMi0wMScpOworICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3Lk1vbnRoKDEsIDExKS5maXJzdERheSgpLnRvU3Ry
aW5nKCknLCAnMDAwMS0xMi0wMScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3
Lk1vbnRoKDIwMDAwLCAwKS5maXJzdERheSgpLnRvU3RyaW5nKCknLCAnMjAwMDAtMDEtMDEnKTsK
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5Nb250aCgyMDAwMCwgMSkuZmlyc3RE
YXkoKS50b1N0cmluZygpJywgJzIwMDAwLTAyLTAxJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCduZXcgcHcuTW9udGgoMjAwMDAsIDExKS5maXJzdERheSgpLnRvU3RyaW5nKCknLCAnMjAw
MDAtMTItMDEnKTsKKworICAgIGRlYnVnKCdUZXN0IE1vbnRoLm1pZGRsZURheScpOworCisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuTW9udGgoMjAwMCwgMSkubWlkZGxlRGF5KCku
dG9TdHJpbmcoKScsICcyMDAwLTAyLTE1Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdu
ZXcgcHcuTW9udGgoMjAwMCwgMTEpLm1pZGRsZURheSgpLnRvU3RyaW5nKCknLCAnMjAwMC0xMi0x
NScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3Lk1vbnRoKDEsIDApLm1pZGRs
ZURheSgpLnRvU3RyaW5nKCknLCAnMDAwMS0wMS0xNScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygnbmV3IHB3Lk1vbnRoKDEsIDEpLm1pZGRsZURheSgpLnRvU3RyaW5nKCknLCAnMDAwMS0w
Mi0xNScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3Lk1vbnRoKDEsIDExKS5t
aWRkbGVEYXkoKS50b1N0cmluZygpJywgJzAwMDEtMTItMTUnKTsKKyAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoJ25ldyBwdy5Nb250aCgyMDAwMCwgMCkubWlkZGxlRGF5KCkudG9TdHJpbmcoKScs
ICcyMDAwMC0wMS0xNScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3Lk1vbnRo
KDIwMDAwLCAxKS5taWRkbGVEYXkoKS50b1N0cmluZygpJywgJzIwMDAwLTAyLTE1Jyk7CisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuTW9udGgoMjAwMDAsIDExKS5taWRkbGVEYXko
KS50b1N0cmluZygpJywgJzIwMDAwLTEyLTE1Jyk7CisKKworICAgIGRlYnVnKCdUZXN0IE1vbnRo
Lmxhc3REYXknKTsKKworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3Lk1vbnRoKDIw
MDAsIDEpLmxhc3REYXkoKS50b1N0cmluZygpJywgJzIwMDAtMDItMjknKTsKKyAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5Nb250aCgyMDAwLCAxMSkubGFzdERheSgpLnRvU3RyaW5n
KCknLCAnMjAwMC0xMi0zMScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3Lk1v
bnRoKDEsIDApLmxhc3REYXkoKS50b1N0cmluZygpJywgJzAwMDEtMDEtMzEnKTsKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5Nb250aCgxLCAxKS5sYXN0RGF5KCkudG9TdHJpbmco
KScsICcwMDAxLTAyLTI4Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCduZXcgcHcuTW9u
dGgoMSwgMTEpLmxhc3REYXkoKS50b1N0cmluZygpJywgJzAwMDEtMTItMzEnKTsKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5Nb250aCgyMDAwMCwgMCkubGFzdERheSgpLnRvU3Ry
aW5nKCknLCAnMjAwMDAtMDEtMzEnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBw
dy5Nb250aCgyMDAwMCwgMSkubGFzdERheSgpLnRvU3RyaW5nKCknLCAnMjAwMDAtMDItMjknKTsK
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ25ldyBwdy5Nb250aCgyMDAwMCwgMTEpLmxhc3RE
YXkoKS50b1N0cmluZygpJywgJzIwMDAwLTEyLTMxJyk7CisKKyAgICBkZWJ1ZygnVGVzdCBNb250
aC52YWx1ZU9mJyk7CisKKyAgICBzaG91bGRCZSgnbmV3IHB3Lk1vbnRoKDE5NzAsIDApLnZhbHVl
T2YoKScsICcwJyk7CisgICAgc2hvdWxkQmUoJ25ldyBwdy5Nb250aCgxOTcwLCAxKS52YWx1ZU9m
KCknLCAnMScpOworICAgIHNob3VsZEJlKCduZXcgcHcuTW9udGgoMjAwMCwgMCkudmFsdWVPZigp
JywgJzM2MCcpOworICAgIHNob3VsZEJlKCduZXcgcHcuTW9udGgoMSwgMCkudmFsdWVPZigpJywg
Jy0yMzYyOCcpOworICAgIHNob3VsZEJlKCduZXcgcHcuTW9udGgoMjAwMDAsIDExKS52YWx1ZU9m
KCknLCAnMjE2MzcxJyk7CisKKyAgICBkZWJ1ZygnVGVzdCBNb250aC50b1N0cmluZycpOworICAg
IAorICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3Lk1vbnRoKDIwMDAsIDApLnRvU3Ry
aW5nKCknLCAnMjAwMC0wMScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbmV3IHB3Lk1v
bnRoKDEsIDExKS50b1N0cmluZygpJywgJzAwMDEtMTInKTsKKyAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoJ25ldyBwdy5Nb250aCgyMDAwMCwgNSkudG9TdHJpbmcoKScsICcyMDAwMC0wNicpOwor
CisgICAgZGVidWcoJ1Rlc3QgTW9udGgucGFyc2UnKTsKKyAgICAKKyAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoJ3B3Lk1vbnRoLnBhcnNlKCIyMDAwLTAxIikudG9TdHJpbmcoKScsICcyMDAwLTAx
Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwdy5Nb250aC5wYXJzZSgiMTk5OS0xMCIp
LnRvU3RyaW5nKCknLCAnMTk5OS0xMCcpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncHcu
TW9udGgucGFyc2UoIjAwMDEtMTEiKS50b1N0cmluZygpJywgJzAwMDEtMTEnKTsKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ3B3Lk1vbnRoLnBhcnNlKCIxMjM0NS0wMyIpLnRvU3RyaW5nKCkn
LCAnMTIzNDUtMDMnKTsKKyAgICAvLyBJbmNvcnJlY3QgbnVtYmVyIG9mIGxlYWRpbmcgemVyb3MK
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3B3Lk1vbnRoLnBhcnNlKCIwMjAwMC0wMiIpLnRv
U3RyaW5nKCknLCAnMjAwMC0wMicpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncHcuTW9u
dGgucGFyc2UoIjIwMDAtMDAyIikudG9TdHJpbmcoKScsICcyMDAwLTAyJyk7CisgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCdwdy5Nb250aC5wYXJzZSgiMjAwMC0yIikudG9TdHJpbmcoKScsICcy
MDAwLTAyJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwdy5Nb250aC5wYXJzZSgiMS0w
MiIpLnRvU3RyaW5nKCknLCAnMDAwMS0wMicpOworICAgIC8vIEludmFsaWQKKyAgICBzaG91bGRC
ZU51bGwoJ3B3Lk1vbnRoLnBhcnNlKCIyMDAwLTAyLTAzIiknKTsKKyAgICBzaG91bGRCZU51bGwo
J3B3Lk1vbnRoLnBhcnNlKCIyMDAwLVcwMiIpJyk7CisgICAgc2hvdWxkQmVOdWxsKCdwdy5Nb250
aC5wYXJzZSgieCIpJyk7CisgICAgc2hvdWxkQmVOdWxsKCdwdy5Nb250aC5wYXJzZSgiIiknKTsK
K30KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>