<?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>74826</bug_id>
          
          <creation_ts>2011-12-18 16:22:30 -0800</creation_ts>
          <short_desc>WebKit should support HTML entities that expand to more than one character</short_desc>
          <delta_ts>2015-11-23 03:47:26 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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>87465</blocked>
    
    <blocked>107459</blocked>
    
    <blocked>151562</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>eric</cc>
    
    <cc>mathias</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>523563</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-12-18 16:22:30 -0800</bug_when>
    <thetext>WebKit should support HTML entities that expand to more than one character</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523569</commentid>
    <comment_count>1</comment_count>
      <attachid>119787</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-12-18 16:30:15 -0800</bug_when>
    <thetext>Created attachment 119787
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523590</commentid>
    <comment_count>2</comment_count>
      <attachid>119787</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-12-18 17:49:13 -0800</bug_when>
    <thetext>Comment on attachment 119787
Patch

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

&gt; Source/WebCore/html/parser/HTMLEntityParser.cpp:160
&gt; +    if (U16_LENGTH(entityValue) != 1 || search.mostRecentMatch()-&gt;rightValue) {

It’s fine to have one of these checks here at runtime. But the other should be an assertion. There’s no need to check both.

Of course, you plan to delete this whole function eventually, I assume.

&gt; Source/WebCore/html/parser/HTMLEntityParser.h:37
&gt; +// FIXME: Move the XML parser to an entity decoding function that actually works!

The “that actually works” here is unnecessarily mysterious. You could say something specific like “that works for non-BMP characters”.

&gt; Source/WebCore/html/parser/HTMLEntityTable.h:39
&gt; +    UChar32 leftValue;
&gt; +    UChar32 rightValue;

Using left and right here is curious. I would have called these first and second or something that implies ordering rather than direction.

&gt; Source/WebCore/xml/parser/XMLTreeBuilder.cpp:382
&gt; +    UChar32 entityValue = search.mostRecentMatch()-&gt;leftValue;
&gt; +    // FIXME: We need to account for rightValue if any XML entities are longer
&gt; +    // than one unicode character.
&gt; +    ASSERT(!search.mostRecentMatch()-&gt;rightValue);

What prevents this assertion from firing? Is there a test case demonstrating that?

&gt; Source/WebCore/xml/parser/XMLTreeBuilder.cpp:385
&gt;      if (entityValue &lt;= 0xFFFF)
&gt;         appendToText(reinterpret_cast&lt;UChar*&gt;(&amp;entityValue), 1);
&gt;      else {

You can see given the code above that this else is dead code. This code is in a strange state.

And the reinterpret_cast to UChar* makes the code little-endian-specific. That is not good!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523593</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-12-18 17:55:00 -0800</bug_when>
    <thetext>Thanks for the review.  I&apos;ll go through your comments carefully before landing.  I can answer one of your questions quickly though:

(In reply to comment #2)
&gt; (From update of attachment 119787 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=119787&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/xml/parser/XMLTreeBuilder.cpp:382
&gt; &gt; +    UChar32 entityValue = search.mostRecentMatch()-&gt;leftValue;
&gt; &gt; +    // FIXME: We need to account for rightValue if any XML entities are longer
&gt; &gt; +    // than one unicode character.
&gt; &gt; +    ASSERT(!search.mostRecentMatch()-&gt;rightValue);
&gt; 
&gt; What prevents this assertion from firing? Is there a test case demonstrating that?

This code is part of ENABLE(NEWXML), which was an intern project this past summer.  Currently it&apos;s impossible to execute this code without enabling NEWXML.  It might be better to change this to an ASSERT_NOT_REACHED to remind whoever tries to enable this code in the future that this issue needs to be addressed (in addition to the other remaining issues with the new XML parser).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523743</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-12-18 22:52:43 -0800</bug_when>
    <thetext>&gt; Of course, you plan to delete this whole function eventually, I assume.

Yes.  The function is deeply broken and needs to be deleted.

&gt; &gt; Source/WebCore/html/parser/HTMLEntityParser.h:37
&gt; &gt; +// FIXME: Move the XML parser to an entity decoding function that actually works!
&gt; 
&gt; The “that actually works” here is unnecessarily mysterious. You could say something specific like “that works for non-BMP characters”.

Fixed.

&gt; &gt; Source/WebCore/html/parser/HTMLEntityTable.h:39
&gt; &gt; +    UChar32 leftValue;
&gt; &gt; +    UChar32 rightValue;
&gt; 
&gt; Using left and right here is curious. I would have called these first and second or something that implies ordering rather than direction.

Done.
 
&gt; &gt; Source/WebCore/xml/parser/XMLTreeBuilder.cpp:385
&gt; &gt;      if (entityValue &lt;= 0xFFFF)
&gt; &gt;         appendToText(reinterpret_cast&lt;UChar*&gt;(&amp;entityValue), 1);
&gt; &gt;      else {
&gt; 
&gt; You can see given the code above that this else is dead code. This code is in a strange state.
&gt; 
&gt; And the reinterpret_cast to UChar* makes the code little-endian-specific. That is not good!

I&apos;ve added an ASSERT_NOT_REACHED() to this function to ensure that future developers working on bringing up the XML parser read these comments.  I&apos;ve also added your notes as comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523744</commentid>
    <comment_count>5</comment_count>
      <attachid>119818</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-12-18 22:53:59 -0800</bug_when>
    <thetext>Created attachment 119818
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523787</commentid>
    <comment_count>6</comment_count>
      <attachid>119818</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-19 00:40:01 -0800</bug_when>
    <thetext>Comment on attachment 119818
Patch for landing

Rejecting attachment 119818 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;-...&quot; exit_code: 2

Last 500 characters of output:
git/webkit-commit-queue/Source/WebKit/chromium/ui --revision 114686 --non-interactive --force --accept theirs-conflict --ignore-externals&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
45&gt;At revision 114686.

________ running &apos;/usr/bin/python tools/clang/scripts/update.py --mac-only&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;

________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
Updating webkit projects from gyp files...

Full output: http://queues.webkit.org/results/10930530</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523933</commentid>
    <comment_count>7</comment_count>
      <attachid>119869</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-12-19 09:13:46 -0800</bug_when>
    <thetext>Created attachment 119869
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523977</commentid>
    <comment_count>8</comment_count>
      <attachid>119869</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-19 10:30:40 -0800</bug_when>
    <thetext>Comment on attachment 119869
Patch for landing

Clearing flags on attachment: 119869

Committed r103246: &lt;http://trac.webkit.org/changeset/103246&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523978</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-19 10:30:45 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633609</commentid>
    <comment_count>10</comment_count>
    <who name="Mathias Bynens">mathias</who>
    <bug_when>2012-05-24 23:32:06 -0700</bug_when>
    <thetext>With this change, http://mathias.html5.org/tests/named-character-references/ only lists a single error:

&gt; &amp;AElig doesn’t match Æ

(Even though the entry in Source/WebCore/html/parser/HTMLEntityNames.in looks alright: http://trac.webkit.org/browser/trunk/Source/WebCore/html/parser/HTMLEntityNames.in#L2)

See bug 87465 for that.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119787</attachid>
            <date>2011-12-18 16:30:15 -0800</date>
            <delta_ts>2011-12-18 22:53:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74826-20111218163014.patch</filename>
            <type>text/plain</type>
            <size>23581</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzMTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODU4ZTYxZjVlNDg4OWEy
MGUwMzE0MGYzMTk0NmFlYTFiZTdlNDgyZC4uOGFlZTI2YjdjZTJiYmMyOGM5ZjhhODllYzdmMjJj
ZDcxMGE2ZjcwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU3IEBACiAyMDExLTEyLTE4ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgV2ViS2l0IHNob3VsZCBzdXBw
b3J0IEhUTUwgZW50aXRpZXMgdGhhdCBleHBhbmQgdG8gbW9yZSB0aGFuIG9uZSBjaGFyYWN0ZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0ODI2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGh0
bWw1bGliL3J1bm5lci5odG1sCisKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MRW50aXR5TmFt
ZXMuaW46CisgICAgICAgICAgICAtIEFkZCBtaXNzaW5nIEhUTUwgZW50aXRpZXMgZnJvbSBIVE1M
NSBzcGVjLiAgSSdsbCBzb3J0IHRoaXMgZmlsZQorICAgICAgICAgICAgICBpbiBhIGZvbGxvd3Vw
IHBhdGNoLiAgKEl0J3Mgbm90IHF1aXRlIHNvcnRlZCBwZXJmZWN0bHkgYW5kCisgICAgICAgICAg
ICAgIHNvcnRpbmcgaW4gdGhpcyBwYXRjaCB3b3VsZCBpbnRyb2R1Y2Ugbm9pc2UgaW50byB0aGUg
cGF0Y2guKQorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxFbnRpdHlQYXJzZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6ZGVjb2RlTmFtZWRFbnRpdHkpOgorICAgICAgICAgICAgLSBjb252ZXJ0
VG9VVEYxNiBhbHdheXMgcmV0dXJucyB0cnVlLCBzbyBtYWtlIGl0IHJldHVybiB2b2lkIGluc3Rl
YWQuCisgICAgICAgICAgICAtIFRlYWNoIHRoZSBlbnRpdHkgcGFyc2UgdGhhdCBzb21lIGVudGl0
aWVzIGV4cGFuZCB0byB0d28gY2hhcmFjdGVycy4KKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1M
RW50aXR5UGFyc2VyLmg6CisgICAgICAgICAgICAtIEFkZCBhIHdhcm5pbmcgdGhhdCBkZWNvZGVO
YW1lZEVudGl0eSBpcyByZWFsbHkgYSBicm9rZW4gQVBJLgorICAgICAgICAgICAgLSBUaGlzIHBh
dGNoIGRvZXNuJ3QgYWN0dWFsbHkgY2hhbmdlIGFueSBiZWhhdmlvciBvZiB0aGlzIEFQSSwgYnV0
CisgICAgICAgICAgICAgIGl0IGRvZXMgaWxsdXN0cmF0ZSB0aGF0IHRoZSB0d28gY2FsbGVycyBv
ZiB0aGlzIEFQSSAodGhlIHR3byBYTUwKKyAgICAgICAgICAgICAgcGFyc2VycykgcmVhbGx5IG5l
ZWQgdG8gbW92ZSBhIG1vcmUgc2Vuc2libGUgQVBJLgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hU
TUxFbnRpdHlTZWFyY2guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVudGl0eVNlYXJjaDo6
SFRNTEVudGl0eVNlYXJjaCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRW50aXR5U2VhcmNoOjph
ZHZhbmNlKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MRW50aXR5U2VhcmNoLmg6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MRW50aXR5U2VhcmNoOjpmYWlsKToKKyAgICAgICAgICAgIC0gUmVt
b3ZlIHRoZSBjb25jZXB0IG9mIGN1cnJlbnRWYWx1ZS4gIFRoaXMgaXNuJ3QgcmVhbGx5IHVzZWQg
Zm9yCisgICAgICAgICAgICAgIGFueXRoaW5nIGFuZCBjb25mbGljdHMgd2l0aCB0aGUgaWRlYSB0
aGF0IGVudGl0aWVzIGNhbiBleHBhbmQKKyAgICAgICAgICAgICAgdG8gbW9yZSB0aGFuIG9uZSBj
aGFyYWN0ZXIuCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTEVudGl0eVRhYmxlLmg6CisgICAg
ICAgICAgICAtIEFkZCBzdG9yYWdlIGZvciB0d28gVUNoYXIzMiB2YWx1ZXMgcGVyIGVudGl0eS4K
KyAgICAgICAgKiBodG1sL3BhcnNlci9jcmVhdGUtaHRtbC1lbnRpdHktdGFibGU6CisgICAgICAg
IChjb252ZXJ0X3ZhbHVlX3RvX2ludCk6CisgICAgICAgICAgICAtIFRlYWNoIHRoaXMgc2NyaXB0
IHRvIGhhbmRsZSBlbnRpdGllcyB0aGF0IGV4cGFuZCB0byBtdWx0aXBsZQorICAgICAgICAgICAg
ICBVbmljb2RlIGNoYXJhY3RlcnMuCisgICAgICAgICogeG1sL3BhcnNlci9DaGFyYWN0ZXJSZWZl
cmVuY2VQYXJzZXJJbmxpbmVNZXRob2RzLmg6CisgICAgICAgIChXZWJDb3JlOjpjb25zdW1lQ2hh
cmFjdGVyUmVmZXJlbmNlKToKKyAgICAgICAgICAgIC0gVXBkYXRlIHRoaXMgZnVuY3Rpb24gbm93
IHRoYXQgY29udmVydFRvVVRGMTYgcmV0dXJucyB2b2lkLgorICAgICAgICAqIHhtbC9wYXJzZXIv
WE1MQ2hhcmFjdGVyUmVmZXJlbmNlUGFyc2VyLmNwcDoKKyAgICAgICAgICAgIC0gVGhlIFhNTCB2
ZXJzaW9uIG9mIGNvbnZlcnRUb1VURjE2IGFsc28gbmVlZHMgdG8gcmV0dXJuIHZvaWQgdG8KKyAg
ICAgICAgICAgICAgbWF0Y2ggdGhlIEhUTUwgc2lnbmF0dXJlLiAgKEl0IHVzZWQgdG8gcmV0dXJu
IHRydWUgYWxsIHRoZSB0aW1lCisgICAgICAgICAgICAgIGFzIHdlbGwuKQorICAgICAgICAqIHht
bC9wYXJzZXIvWE1MVHJlZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NIVE1MRW50aXR5KToKKyAgICAgICAgICAgIC0gVXBkYXRlIHRoaXMgY2Fs
bGVyIHVzZSBsZWZ0VmFsdWUgaW5zdGVhZCBvZiB2YWx1ZS4gIE15IHNlbnNlIGlzCisgICAgICAg
ICAgICAgIHRoYXQgdGhpcyBjb2RlIGlzIG1vZGVyYXRlbHkgYnJva2VuIHRvZGF5IGJlY2F1c2Ug
aXQncyB1c2luZyBIVE1MCisgICAgICAgICAgICAgIGVudGl0aWVzIGluIHBhcnNpbmcgWE1MLiAg
SSd2ZSBhZGRlZCBhIEZJWE1FLiAgVGhpcyBjb2RlIGlzCisgICAgICAgICAgICAgIGRpc2FibGVk
IGluIGFsbCBidWlsZHMsIHNvIEkgZG9uJ3QgZmVlbCBhIGJpZyBuZWVkIHRvIGZpeCB0aGlzCisg
ICAgICAgICAgICAgIGlzc3VlIGluIHRoaXMgcGF0Y2guICBXZSBzaG91bGQgZWl0aGVyIGZpbmlz
aCB0aGlzIHByb2plY3Qgb3IKKyAgICAgICAgICAgICAgZGVsZXRlIHRoaXMgY29tcGxleGl0eSBm
cm9tIHRoZSBwcm9qZWN0LgorCisyMDExLTEyLTE4ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtp
dC5vcmc+CisKICAgICAgICAgV2UgZG9uJ3QgcGFzcyBhbGwgb2YgdGhlIGh0bWw1bGliIHVuc2Fm
ZS10ZXh0LmRhdCB0ZXN0cwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzQ4MjUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTEVudGl0eU5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVudGl0
eU5hbWVzLmluCmluZGV4IDJkNDJhYjI5MjYyZTVjOWUxOTY4OGE4YTlhOWVmODFiNTIyZDY4ODYu
Ljk5NDBhNjI5YjIzYzY0YjE2YzFlYmJiNjI1ZDg0NjdiYmVjMTc1ODUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbnRpdHlOYW1lcy5pbgorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRW50aXR5TmFtZXMuaW4KQEAgLTE4MTQsOCArMTgxNCw4
IEBACiAic2hjeTsiLCJVKzAwNDQ4IgogInNob3J0bWlkOyIsIlUrMDIyMjMiCiAic2hvcnRwYXJh
bGxlbDsiLCJVKzAyMjI1IgotInNoeTsiLCJVKzAwMEFEICAiCi0ic2h5IiwiVSswMDBBRCAiCisi
c2h5OyIsIlUrMDAwQUQiCisic2h5IiwiVSswMDBBRCIKICJzaWdtYTsiLCJVKzAwM0MzIgogInNp
Z21hZjsiLCJVKzAwM0MyIgogInNpZ21hdjsiLCJVKzAwM0MyIgpAQCAtMjEzNiwzICsyMTM2LDk2
IEBACiAienNjcjsiLCJVKzFENENGIgogInp3ajsiLCJVKzAyMDBEIgogInp3bmo7IiwiVSswMjAw
QyIKKyJhY0U7IiwiVSswMjIzRSBVKzAwMzMzIgorImJuZTsiLCJVKzAwMDNEIFUrMDIwRTUiCisi
Ym5lcXVpdjsiLCJVKzAyMjYxIFUrMDIwRTUiCisiY2FwczsiLCJVKzAyMjI5IFUrMEZFMDAiCisi
Y3VwczsiLCJVKzAyMjJBIFUrMEZFMDAiCisiZmpsaWc7IiwiVSswMDA2NiBVKzAwMDZBIgorImdl
c2w7IiwiVSswMjJEQiBVKzBGRTAwIgorImd2ZXJ0bmVxcTsiLCJVKzAyMjY5IFUrMEZFMDAiCisi
Z3ZuRTsiLCJVKzAyMjY5IFUrMEZFMDAiCisibGF0ZXM7IiwiVSswMkFBRCBVKzBGRTAwIgorImxl
c2c7IiwiVSswMjJEQSBVKzBGRTAwIgorImx2ZXJ0bmVxcTsiLCJVKzAyMjY4IFUrMEZFMDAiCisi
bHZuRTsiLCJVKzAyMjY4IFUrMEZFMDAiCisibmFuZzsiLCJVKzAyMjIwIFUrMDIwRDIiCisibmFw
RTsiLCJVKzAyQTcwIFUrMDAzMzgiCisibmFwaWQ7IiwiVSswMjI0QiBVKzAwMzM4IgorIm5idW1w
OyIsIlUrMDIyNEUgVSswMDMzOCIKKyJuYnVtcGU7IiwiVSswMjI0RiBVKzAwMzM4IgorIm5jb25n
ZG90OyIsIlUrMDJBNkQgVSswMDMzOCIKKyJuZWRvdDsiLCJVKzAyMjUwIFUrMDAzMzgiCisibmVz
aW07IiwiVSswMjI0MiBVKzAwMzM4IgorIm5nRTsiLCJVKzAyMjY3IFUrMDAzMzgiCisibmdlcXE7
IiwiVSswMjI2NyBVKzAwMzM4IgorIm5nZXFzbGFudDsiLCJVKzAyQTdFIFUrMDAzMzgiCisibmdl
czsiLCJVKzAyQTdFIFUrMDAzMzgiCisibkdnOyIsIlUrMDIyRDkgVSswMDMzOCIKKyJuR3Q7Iiwi
VSswMjI2QiBVKzAyMEQyIgorIm5HdHY7IiwiVSswMjI2QiBVKzAwMzM4IgorIm5sRTsiLCJVKzAy
MjY2IFUrMDAzMzgiCisibmxlcXE7IiwiVSswMjI2NiBVKzAwMzM4IgorIm5sZXFzbGFudDsiLCJV
KzAyQTdEIFUrMDAzMzgiCisibmxlczsiLCJVKzAyQTdEIFUrMDAzMzgiCisibkxsOyIsIlUrMDIy
RDggVSswMDMzOCIKKyJuTHQ7IiwiVSswMjI2QSBVKzAyMEQyIgorIm5MdHY7IiwiVSswMjI2QSBV
KzAwMzM4IgorIk5vdEVxdWFsVGlsZGU7IiwiVSswMjI0MiBVKzAwMzM4IgorIk5vdEdyZWF0ZXJG
dWxsRXF1YWw7IiwiVSswMjI2NyBVKzAwMzM4IgorIk5vdEdyZWF0ZXJHcmVhdGVyOyIsIlUrMDIy
NkIgVSswMDMzOCIKKyJOb3RHcmVhdGVyU2xhbnRFcXVhbDsiLCJVKzAyQTdFIFUrMDAzMzgiCisi
Tm90SHVtcERvd25IdW1wOyIsIlUrMDIyNEUgVSswMDMzOCIKKyJOb3RIdW1wRXF1YWw7IiwiVSsw
MjI0RiBVKzAwMzM4IgorIm5vdGluZG90OyIsIlUrMDIyRjUgVSswMDMzOCIKKyJub3RpbkU7Iiwi
VSswMjJGOSBVKzAwMzM4IgorIk5vdExlZnRUcmlhbmdsZUJhcjsiLCJVKzAyOUNGIFUrMDAzMzgi
CisiTm90TGVzc0xlc3M7IiwiVSswMjI2QSBVKzAwMzM4IgorIk5vdExlc3NTbGFudEVxdWFsOyIs
IlUrMDJBN0QgVSswMDMzOCIKKyJOb3ROZXN0ZWRHcmVhdGVyR3JlYXRlcjsiLCJVKzAyQUEyIFUr
MDAzMzgiCisiTm90TmVzdGVkTGVzc0xlc3M7IiwiVSswMkFBMSBVKzAwMzM4IgorIk5vdFByZWNl
ZGVzRXF1YWw7IiwiVSswMkFBRiBVKzAwMzM4IgorIk5vdFJpZ2h0VHJpYW5nbGVCYXI7IiwiVSsw
MjlEMCBVKzAwMzM4IgorIk5vdFNxdWFyZVN1YnNldDsiLCJVKzAyMjhGIFUrMDAzMzgiCisiTm90
U3F1YXJlU3VwZXJzZXQ7IiwiVSswMjI5MCBVKzAwMzM4IgorIk5vdFN1YnNldDsiLCJVKzAyMjgy
IFUrMDIwRDIiCisiTm90U3VjY2VlZHNFcXVhbDsiLCJVKzAyQUIwIFUrMDAzMzgiCisiTm90U3Vj
Y2VlZHNUaWxkZTsiLCJVKzAyMjdGIFUrMDAzMzgiCisiTm90U3VwZXJzZXQ7IiwiVSswMjI4MyBV
KzAyMEQyIgorIm5wYXJzbDsiLCJVKzAyQUZEIFUrMDIwRTUiCisibnBhcnQ7IiwiVSswMjIwMiBV
KzAwMzM4IgorIm5wcmU7IiwiVSswMkFBRiBVKzAwMzM4IgorIm5wcmVjZXE7IiwiVSswMkFBRiBV
KzAwMzM4IgorIm5yYXJyYzsiLCJVKzAyOTMzIFUrMDAzMzgiCisibnJhcnJ3OyIsIlUrMDIxOUQg
VSswMDMzOCIKKyJuc2NlOyIsIlUrMDJBQjAgVSswMDMzOCIKKyJuc3ViRTsiLCJVKzAyQUM1IFUr
MDAzMzgiCisibnN1YnNldDsiLCJVKzAyMjgyIFUrMDIwRDIiCisibnN1YnNldGVxcTsiLCJVKzAy
QUM1IFUrMDAzMzgiCisibnN1Y2NlcTsiLCJVKzAyQUIwIFUrMDAzMzgiCisibnN1cEU7IiwiVSsw
MkFDNiBVKzAwMzM4IgorIm5zdXBzZXQ7IiwiVSswMjI4MyBVKzAyMEQyIgorIm5zdXBzZXRlcXE7
IiwiVSswMkFDNiBVKzAwMzM4IgorIm52YXA7IiwiVSswMjI0RCBVKzAyMEQyIgorIm52Z2U7Iiwi
VSswMjI2NSBVKzAyMEQyIgorIm52Z3Q7IiwiVSswMDAzRSBVKzAyMEQyIgorIm52bGU7IiwiVSsw
MjI2NCBVKzAyMEQyIgorIm52bHQ7IiwiVSswMDAzQyBVKzAyMEQyIgorIm52bHRyaWU7IiwiVSsw
MjJCNCBVKzAyMEQyIgorIm52cnRyaWU7IiwiVSswMjJCNSBVKzAyMEQyIgorIm52c2ltOyIsIlUr
MDIyM0MgVSswMjBEMiIKKyJyYWNlOyIsIlUrMDIyM0QgVSswMDMzMSIKKyJzbXRlczsiLCJVKzAy
QUFDIFUrMEZFMDAiCisic3FjYXBzOyIsIlUrMDIyOTMgVSswRkUwMCIKKyJzcWN1cHM7IiwiVSsw
MjI5NCBVKzBGRTAwIgorIlRoaWNrU3BhY2U7IiwiVSswMjA1RiBVKzAyMDBBIgorInZhcnN1YnNl
dG5lcTsiLCJVKzAyMjhBIFUrMEZFMDAiCisidmFyc3Vic2V0bmVxcTsiLCJVKzAyQUNCIFUrMEZF
MDAiCisidmFyc3Vwc2V0bmVxOyIsIlUrMDIyOEIgVSswRkUwMCIKKyJ2YXJzdXBzZXRuZXFxOyIs
IlUrMDJBQ0MgVSswRkUwMCIKKyJ2bnN1YjsiLCJVKzAyMjgyIFUrMDIwRDIiCisidm5zdXA7Iiwi
VSswMjI4MyBVKzAyMEQyIgorInZzdWJuRTsiLCJVKzAyQUNCIFUrMEZFMDAiCisidnN1Ym5lOyIs
IlUrMDIyOEEgVSswRkUwMCIKKyJ2c3VwbkU7IiwiVSswMkFDQyBVKzBGRTAwIgorInZzdXBuZTsi
LCJVKzAyMjhCIFUrMEZFMDAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MRW50aXR5UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxF
bnRpdHlQYXJzZXIuY3BwCmluZGV4IDg3ZTkxYjg3ZTNiYjc1ZjFmNDIyMzRkYzVmNjY5Nzc3MDhm
YjhmZWQuLjllNjViYjVlNDdlOTE0NjE0NTUwZDZiZmFlNTczOGYyNDY2NGJhZTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbnRpdHlQYXJzZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbnRpdHlQYXJzZXIuY3BwCkBAIC03MCwx
NyArNzAsMTYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgfQogCi0gICAg
aW5saW5lIHN0YXRpYyBib29sIGNvbnZlcnRUb1VURjE2KFVDaGFyMzIgdmFsdWUsIFN0cmluZ0J1
aWxkZXImIGRlY29kZWRFbnRpdHkpCisgICAgaW5saW5lIHN0YXRpYyB2b2lkIGNvbnZlcnRUb1VU
RjE2KFVDaGFyMzIgdmFsdWUsIFN0cmluZ0J1aWxkZXImIGRlY29kZWRFbnRpdHkpCiAgICAgewog
ICAgICAgICBpZiAoVV9JU19CTVAodmFsdWUpKSB7CiAgICAgICAgICAgICBVQ2hhciBjaGFyYWN0
ZXIgPSBzdGF0aWNfY2FzdDxVQ2hhcj4odmFsdWUpOwogICAgICAgICAgICAgQVNTRVJUKGNoYXJh
Y3RlciA9PSB2YWx1ZSk7CiAgICAgICAgICAgICBkZWNvZGVkRW50aXR5LmFwcGVuZChjaGFyYWN0
ZXIpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KICAgICAgICAgZGVjb2RlZEVudGl0eS5hcHBlbmQoVTE2X0xFQUQodmFsdWUpKTsKICAg
ICAgICAgZGVjb2RlZEVudGl0eS5hcHBlbmQoVTE2X1RSQUlMKHZhbHVlKSk7Ci0gICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KIAogICAgIGlubGluZSBzdGF0aWMgYm9vbCBhY2NlcHRNYWxmb3Jt
ZWQoKSB7IHJldHVybiB0cnVlOyB9CkBAIC0xMDUsNyArMTA0LDYgQEAgcHVibGljOgogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIGlmICghZW50aXR5U2VhcmNo
Lm1vc3RSZWNlbnRNYXRjaCgpKSB7Ci0gICAgICAgICAgICBBU1NFUlQoIWVudGl0eVNlYXJjaC5j
dXJyZW50VmFsdWUoKSk7CiAgICAgICAgICAgICB1bmNvbnN1bWVDaGFyYWN0ZXJzKHNvdXJjZSwg
Y29uc3VtZWRDaGFyYWN0ZXJzKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAg
fQpAQCAtMTI5LDcgKzEyNywxMCBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChlbnRpdHlTZWFyY2gu
bW9zdFJlY2VudE1hdGNoKCktPmxhc3RDaGFyYWN0ZXIoKSA9PSAnOycKICAgICAgICAgICAgIHx8
ICFhZGRpdGlvbmFsQWxsb3dlZENoYXJhY3RlcgogICAgICAgICAgICAgfHwgIShpc0FscGhhTnVt
ZXJpYyhjYykgfHwgY2MgPT0gJz0nKSkgewotICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRUb1VU
RjE2KGVudGl0eVNlYXJjaC5tb3N0UmVjZW50TWF0Y2goKS0+dmFsdWUsIGRlY29kZWRFbnRpdHkp
OworICAgICAgICAgICAgY29udmVydFRvVVRGMTYoZW50aXR5U2VhcmNoLm1vc3RSZWNlbnRNYXRj
aCgpLT5sZWZ0VmFsdWUsIGRlY29kZWRFbnRpdHkpOworICAgICAgICAgICAgaWYgKGVudGl0eVNl
YXJjaC5tb3N0UmVjZW50TWF0Y2goKS0+cmlnaHRWYWx1ZSkKKyAgICAgICAgICAgICAgICBjb252
ZXJ0VG9VVEYxNihlbnRpdHlTZWFyY2gubW9zdFJlY2VudE1hdGNoKCktPnJpZ2h0VmFsdWUsIGRl
Y29kZWRFbnRpdHkpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICAg
ICAgdW5jb25zdW1lQ2hhcmFjdGVycyhzb3VyY2UsIGNvbnN1bWVkQ2hhcmFjdGVycyk7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKQEAgLTEzOCw3ICsxMzksNiBAQCBwdWJsaWM6CiAKIH0KIAotCiBi
b29sIGNvbnN1bWVIVE1MRW50aXR5KFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBTdHJpbmdCdWls
ZGVyJiBkZWNvZGVkRW50aXR5LCBib29sJiBub3RFbm91Z2hDaGFyYWN0ZXJzLCBVQ2hhciBhZGRp
dGlvbmFsQWxsb3dlZENoYXJhY3RlcikKIHsKICAgICByZXR1cm4gY29uc3VtZUNoYXJhY3RlclJl
ZmVyZW5jZTxIVE1MRW50aXR5UGFyc2VyPihzb3VyY2UsIGRlY29kZWRFbnRpdHksIG5vdEVub3Vn
aENoYXJhY3RlcnMsIGFkZGl0aW9uYWxBbGxvd2VkQ2hhcmFjdGVyKTsKQEAgLTE1MywxMSArMTUz
LDEzIEBAIFVDaGFyIGRlY29kZU5hbWVkRW50aXR5KGNvbnN0IGNoYXIqIG5hbWUpCiAgICAgICAg
ICAgICByZXR1cm4gMDsKICAgICB9CiAgICAgc2VhcmNoLmFkdmFuY2UoJzsnKTsKLSAgICBVQ2hh
cjMyIGVudGl0eVZhbHVlID0gc2VhcmNoLmN1cnJlbnRWYWx1ZSgpOwotICAgIGlmIChVMTZfTEVO
R1RIKGVudGl0eVZhbHVlKSAhPSAxKSB7Ci0gICAgICAgIC8vIENhbGxlcnMgbmVlZCB0byBtb3Zl
IG9mZiB0aGlzIEFQSSBpZiB0aGUgZW50aXR5IHRhYmxlIGhhcyB2YWx1ZXMKLSAgICAgICAgLy8g
d2hpY2ggZG8gbm8gZml0IGluIGEgMTYgYml0IFVDaGFyIQotICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICBpZiAoIXNlYXJjaC5pc0VudGl0eVByZWZpeCgpKQorICAgICAgICByZXR1
cm4gMDsKKworICAgIFVDaGFyMzIgZW50aXR5VmFsdWUgPSBzZWFyY2gubW9zdFJlY2VudE1hdGNo
KCktPmxlZnRWYWx1ZTsKKyAgICBpZiAoVTE2X0xFTkdUSChlbnRpdHlWYWx1ZSkgIT0gMSB8fCBz
ZWFyY2gubW9zdFJlY2VudE1hdGNoKCktPnJpZ2h0VmFsdWUpIHsKKyAgICAgICAgLy8gRklYTUU6
IENhbGxlcnMgbmVlZCB0byBtb3ZlIG9mZiB0aGlzIEFQSS4gTm90IGFsbCBlbnRpdGllcyBjYW4g
YmUKKyAgICAgICAgLy8gcmVwcmVzZW50ZWQgaW4gYSBzaW5nbGUgVUNoYXIhCiAgICAgICAgIHJl
dHVybiAwOwogICAgIH0KICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VUNoYXI+KGVudGl0eVZhbHVl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbnRpdHlQYXJz
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbnRpdHlQYXJzZXIuaAppbmRl
eCA1OTUwY2JhYWI0MzAxNjExMDUzMGY3OWM5ODM5MGZhNzk3YTcxYzFhLi4yMGMwMDlhN2JlZjQ0
YmY3ZmUwNGI2NzZiZjcyYzFiODkyNzg0YjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MRW50aXR5UGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTEVudGl0eVBhcnNlci5oCkBAIC0zNCw2ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIGJvb2wgY29uc3VtZUhUTUxFbnRpdHkoU2VnbWVudGVkU3RyaW5nJiwgU3RyaW5nQnVp
bGRlciYgZGVjb2RlZEVudGl0eSwgYm9vbCYgbm90RW5vdWdoQ2hhcmFjdGVycywgVUNoYXIgYWRk
aXRpb25hbEFsbG93ZWRDaGFyYWN0ZXIgPSAnXDAnKTsKIAogLy8gVXNlZCBieSB0aGUgWE1MIHBh
cnNlci4gIE5vdCBzdWl0YWJsZSBmb3IgdXNlIGluIEhUTUwgcGFyc2luZy4gIFVzZSBjb25zdW1l
SFRNTEVudGl0eSBpbnN0ZWFkLgorLy8gRklYTUU6IE1vdmUgdGhlIFhNTCBwYXJzZXIgdG8gYW4g
ZW50aXR5IGRlY29kaW5nIGZ1bmN0aW9uIHRoYXQgYWN0dWFsbHkgd29ya3MhCiBVQ2hhciBkZWNv
ZGVOYW1lZEVudGl0eShjb25zdCBjaGFyKik7CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxFbnRpdHlTZWFyY2guY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTEVudGl0eVNlYXJjaC5jcHAKaW5kZXggNTZmYjkxYWQ1YzZlNDM0NjkyMDFl
YmNjZjE1YWVhNDg4YzFjMDA2My4uNTdiYzRlMjA1ZDZiODU4ZGViZTI3OTU1M2E2ZTNhZDJlMDA1
OTdiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVudGl0eVNl
YXJjaC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVudGl0eVNlYXJj
aC5jcHAKQEAgLTQxLDcgKzQxLDYgQEAgY29uc3QgSFRNTEVudGl0eVRhYmxlRW50cnkqIGhhbGZ3
YXkoY29uc3QgSFRNTEVudGl0eVRhYmxlRW50cnkqIGxlZnQsIGNvbnN0IEhUTUwKICAgICAKIEhU
TUxFbnRpdHlTZWFyY2g6OkhUTUxFbnRpdHlTZWFyY2goKQogICAgIDogbV9jdXJyZW50TGVuZ3Ro
KDApCi0gICAgLCBtX2N1cnJlbnRWYWx1ZSgwKQogICAgICwgbV9tb3N0UmVjZW50TWF0Y2goMCkK
ICAgICAsIG1fZmlyc3QoSFRNTEVudGl0eVRhYmxlOjpmaXJzdEVudHJ5KCkpCiAgICAgLCBtX2xh
c3QoSFRNTEVudGl0eVRhYmxlOjpsYXN0RW50cnkoKSkKQEAgLTEyNCwxMSArMTIzLDkgQEAgdm9p
ZCBIVE1MRW50aXR5U2VhcmNoOjphZHZhbmNlKFVDaGFyIG5leHRDaGFyYWN0ZXIpCiAgICAgfQog
ICAgICsrbV9jdXJyZW50TGVuZ3RoOwogICAgIGlmIChtX2ZpcnN0LT5sZW5ndGggIT0gbV9jdXJy
ZW50TGVuZ3RoKSB7Ci0gICAgICAgIG1fY3VycmVudFZhbHVlID0gMDsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KICAgICBtX21vc3RSZWNlbnRNYXRjaCA9IG1fZmlyc3Q7Ci0gICAgbV9jdXJyZW50
VmFsdWUgPSBtX21vc3RSZWNlbnRNYXRjaC0+dmFsdWU7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbnRpdHlTZWFyY2guaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxFbnRpdHlTZWFyY2guaAppbmRleCAwYzY2MzE4MTVjZDQ0MjFj
ZGI0MmZhMjRjZDM4N2Y4Njk1OWQwYmNhLi5mOTBkNDAxYjM2ZDFiNjZhNGE4MDgyMjkyMmNkNzIw
MTlmNjQxMTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRW50
aXR5U2VhcmNoLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVudGl0eVNl
YXJjaC5oCkBAIC0zOSw3ICszOSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkdmFuY2UoVUNoYXIp
OwogCiAgICAgYm9vbCBpc0VudGl0eVByZWZpeCgpIGNvbnN0IHsgcmV0dXJuICEhbV9maXJzdDsg
fQotICAgIFVDaGFyMzIgY3VycmVudFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50VmFs
dWU7IH0KICAgICBpbnQgY3VycmVudExlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudExl
bmd0aDsgfQogCiAgICAgY29uc3QgSFRNTEVudGl0eVRhYmxlRW50cnkqIG1vc3RSZWNlbnRNYXRj
aCgpIGNvbnN0IHsgcmV0dXJuIG1fbW9zdFJlY2VudE1hdGNoOyB9CkBAIC01NywxMyArNTYsMTEg
QEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZmFpbCgpCiAgICAgewotICAgICAgICBtX2N1cnJlbnRW
YWx1ZSA9IDA7CiAgICAgICAgIG1fZmlyc3QgPSAwOwogICAgICAgICBtX2xhc3QgPSAwOwogICAg
IH0KIAogICAgIGludCBtX2N1cnJlbnRMZW5ndGg7Ci0gICAgVUNoYXIzMiBtX2N1cnJlbnRWYWx1
ZTsKIAogICAgIGNvbnN0IEhUTUxFbnRpdHlUYWJsZUVudHJ5KiBtX21vc3RSZWNlbnRNYXRjaDsK
ICAgICBjb25zdCBIVE1MRW50aXR5VGFibGVFbnRyeSogbV9maXJzdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbnRpdHlUYWJsZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTEVudGl0eVRhYmxlLmgKaW5kZXggM2I5YWI0ZTkzOTdiYTQyNDgz
ZjMyNWIwMjM1MTQxYjUwMTgyMTI5OC4uYmZkNTgwNThmM2QzMjRkZWMyYzIxN2E5YmY5ZjY5NzBl
ZGI0MTIyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVudGl0
eVRhYmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVudGl0eVRhYmxl
LmgKQEAgLTM1LDcgKzM1LDggQEAgc3RydWN0IEhUTUxFbnRpdHlUYWJsZUVudHJ5IHsKIAogICAg
IGNvbnN0IFVDaGFyKiBlbnRpdHk7CiAgICAgaW50IGxlbmd0aDsKLSAgICBVQ2hhcjMyIHZhbHVl
OworICAgIFVDaGFyMzIgbGVmdFZhbHVlOworICAgIFVDaGFyMzIgcmlnaHRWYWx1ZTsKIH07CiAK
IGNsYXNzIEhUTUxFbnRpdHlUYWJsZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9jcmVhdGUtaHRtbC1lbnRpdHktdGFibGUgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9jcmVhdGUtaHRtbC1lbnRpdHktdGFibGUKaW5kZXggNzM2NzRhMmQ2ZTZjNzk2MjkyMTAx
NWM3NTc4YjQ4YmY5ZjMxMzY4OC4uYTk5YTM1YmFlNmMyMjQwZTEyYjIxNDQ0MTJjYTQwM2QwZTEz
MmJjMyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvY3JlYXRlLWh0bWwt
ZW50aXR5LXRhYmxlCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL2NyZWF0ZS1odG1s
LWVudGl0eS10YWJsZQpAQCAtNDcsNiArNDcsOCBAQCBkZWYgY29udmVydF9lbnRpdHlfdG9fdWNo
YXJfYXJyYXkoZW50aXR5KToKIAogCiBkZWYgY29udmVydF92YWx1ZV90b19pbnQodmFsdWUpOgor
ICAgIGlmIG5vdCB2YWx1ZToKKyAgICAgICAgcmV0dXJuICIwIjsKICAgICBhc3NlcnQodmFsdWVb
MF0gPT0gIlUiKQogICAgIGFzc2VydCh2YWx1ZVsxXSA9PSAiKyIpCiAgICAgcmV0dXJuICIweCIg
KyB2YWx1ZVsyOl0KQEAgLTEyNCwxMCArMTI2LDEzIEBAIGZvciBlbnRyeSBpbiBlbnRyaWVzOgog
ICAgIGxldHRlciA9IGVudHJ5W0VOVElUWV1bMF0KICAgICBpZiBub3QgaW5kZXguZ2V0KGxldHRl
cik6CiAgICAgICAgIGluZGV4W2xldHRlcl0gPSBvZmZzZXQKLSAgICBvdXRwdXRfZmlsZS53cml0
ZSgnICAgIHsgJXMsICVzLCAlcyB9LFxuJyAlICgKKyAgICB2YWx1ZXMgPSBlbnRyeVtWQUxVRV0u
c3BsaXQoJyAnKQorICAgIGFzc2VydCBsZW4odmFsdWVzKSA8PSAyLCB2YWx1ZXMKKyAgICBvdXRw
dXRfZmlsZS53cml0ZSgnICAgIHsgJXMsICVzLCAlcywgJXMgfSxcbicgJSAoCiAgICAgICAgIGNv
bnZlcnRfZW50aXR5X3RvX2NwcF9uYW1lKGVudHJ5W0VOVElUWV0pLAogICAgICAgICBsZW4oZW50
cnlbRU5USVRZXSksCi0gICAgICAgIGNvbnZlcnRfdmFsdWVfdG9faW50KGVudHJ5W1ZBTFVFXSkp
KQorICAgICAgICBjb252ZXJ0X3ZhbHVlX3RvX2ludCh2YWx1ZXNbMF0pLAorICAgICAgICBjb252
ZXJ0X3ZhbHVlX3RvX2ludCh2YWx1ZXNbMV0gaWYgbGVuKHZhbHVlcykgPj0gMiBlbHNlICIiKSkp
CiAgICAgb2Zmc2V0ICs9IDEKIAogb3V0cHV0X2ZpbGUud3JpdGUoIiIifTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvQ2hhcmFjdGVyUmVmZXJlbmNlUGFyc2VySW5saW5l
TWV0aG9kcy5oIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9DaGFyYWN0ZXJSZWZlcmVuY2VQ
YXJzZXJJbmxpbmVNZXRob2RzLmgKaW5kZXggNTk3OWQ4N2VjYTUwYzllOWU2NDAwNzlhYTBkODlh
YWE3NTRmZDc1ZS4uZDgzY2VjYjZlYzI3NmI4Yzk1YTFjYzg2ODczNWZhNjFjZTU4YmQ3ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9DaGFyYWN0ZXJSZWZlcmVuY2VQYXJz
ZXJJbmxpbmVNZXRob2RzLmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9DaGFyYWN0
ZXJSZWZlcmVuY2VQYXJzZXJJbmxpbmVNZXRob2RzLmgKQEAgLTEyOCwxMCArMTI4LDEyIEBAIGJv
b2wgY29uc3VtZUNoYXJhY3RlclJlZmVyZW5jZShTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgU3Ry
aW5nQnVpbGRlciYgZGVjb2RlZENoCiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICog
MTYgKyAxMCArIGNjIC0gJ0EnOwogICAgICAgICAgICAgZWxzZSBpZiAoY2MgPT0gJzsnKSB7CiAg
ICAgICAgICAgICAgICAgc291cmNlLmFkdmFuY2VBbmRBU1NFUlQoY2MpOwotICAgICAgICAgICAg
ICAgIHJldHVybiBQYXJzZXJGdW5jdGlvbnM6OmNvbnZlcnRUb1VURjE2KFBhcnNlckZ1bmN0aW9u
czo6bGVnYWxFbnRpdHlGb3IocmVzdWx0KSwgZGVjb2RlZENoYXJhY3Rlcik7Ci0gICAgICAgICAg
ICB9IGVsc2UgaWYgKFBhcnNlckZ1bmN0aW9uczo6YWNjZXB0TWFsZm9ybWVkKCkpCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIFBhcnNlckZ1bmN0aW9uczo6Y29udmVydFRvVVRGMTYoUGFyc2VyRnVu
Y3Rpb25zOjpsZWdhbEVudGl0eUZvcihyZXN1bHQpLCBkZWNvZGVkQ2hhcmFjdGVyKTsKLSAgICAg
ICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIFBhcnNlckZ1bmN0aW9uczo6Y29udmVydFRv
VVRGMTYoUGFyc2VyRnVuY3Rpb25zOjpsZWdhbEVudGl0eUZvcihyZXN1bHQpLCBkZWNvZGVkQ2hh
cmFjdGVyKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxz
ZSBpZiAoUGFyc2VyRnVuY3Rpb25zOjphY2NlcHRNYWxmb3JtZWQoKSkgeworICAgICAgICAgICAg
ICAgIFBhcnNlckZ1bmN0aW9uczo6Y29udmVydFRvVVRGMTYoUGFyc2VyRnVuY3Rpb25zOjpsZWdh
bEVudGl0eUZvcihyZXN1bHQpLCBkZWNvZGVkQ2hhcmFjdGVyKTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgdW5jb25z
dW1lQ2hhcmFjdGVycyhzb3VyY2UsIGNvbnN1bWVkQ2hhcmFjdGVycyk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgfQpAQCAtMTQyLDEwICsxNDQsMTIgQEAgYm9v
bCBjb25zdW1lQ2hhcmFjdGVyUmVmZXJlbmNlKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBTdHJp
bmdCdWlsZGVyJiBkZWNvZGVkQ2gKICAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKiAx
MCArIGNjIC0gJzAnOwogICAgICAgICAgICAgZWxzZSBpZiAoY2MgPT0gJzsnKSB7CiAgICAgICAg
ICAgICAgICAgc291cmNlLmFkdmFuY2VBbmRBU1NFUlQoY2MpOwotICAgICAgICAgICAgICAgIHJl
dHVybiBQYXJzZXJGdW5jdGlvbnM6OmNvbnZlcnRUb1VURjE2KFBhcnNlckZ1bmN0aW9uczo6bGVn
YWxFbnRpdHlGb3IocmVzdWx0KSwgZGVjb2RlZENoYXJhY3Rlcik7Ci0gICAgICAgICAgICB9IGVs
c2UgaWYgKFBhcnNlckZ1bmN0aW9uczo6YWNjZXB0TWFsZm9ybWVkKCkpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIFBhcnNlckZ1bmN0aW9uczo6Y29udmVydFRvVVRGMTYoUGFyc2VyRnVuY3Rpb25z
OjpsZWdhbEVudGl0eUZvcihyZXN1bHQpLCBkZWNvZGVkQ2hhcmFjdGVyKTsKLSAgICAgICAgICAg
IGVsc2UgeworICAgICAgICAgICAgICAgIFBhcnNlckZ1bmN0aW9uczo6Y29udmVydFRvVVRGMTYo
UGFyc2VyRnVuY3Rpb25zOjpsZWdhbEVudGl0eUZvcihyZXN1bHQpLCBkZWNvZGVkQ2hhcmFjdGVy
KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAo
UGFyc2VyRnVuY3Rpb25zOjphY2NlcHRNYWxmb3JtZWQoKSkgeworICAgICAgICAgICAgICAgIFBh
cnNlckZ1bmN0aW9uczo6Y29udmVydFRvVVRGMTYoUGFyc2VyRnVuY3Rpb25zOjpsZWdhbEVudGl0
eUZvcihyZXN1bHQpLCBkZWNvZGVkQ2hhcmFjdGVyKTsKKyAgICAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgdW5jb25zdW1lQ2hh
cmFjdGVycyhzb3VyY2UsIGNvbnN1bWVkQ2hhcmFjdGVycyk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1s
L3BhcnNlci9YTUxDaGFyYWN0ZXJSZWZlcmVuY2VQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
eG1sL3BhcnNlci9YTUxDaGFyYWN0ZXJSZWZlcmVuY2VQYXJzZXIuY3BwCmluZGV4IGI3ZmFlMzE0
OTc1ZDlhNDZjMzFlMTgzNmYyZDRjNTAwNGQ2M2U0YjYuLjk2MmNhMWQ0NGE1ODdmNDJmMDgzZDFk
N2JhZjBhYjIxNmQzZTdiZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIv
WE1MQ2hhcmFjdGVyUmVmZXJlbmNlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwv
cGFyc2VyL1hNTENoYXJhY3RlclJlZmVyZW5jZVBhcnNlci5jcHAKQEAgLTQ2LDE3ICs0NiwxNiBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICB9CiAKLSAgICBpbmxpbmUgc3Rh
dGljIGJvb2wgY29udmVydFRvVVRGMTYoVUNoYXIzMiB2YWx1ZSwgU3RyaW5nQnVpbGRlciYgZGVj
b2RlZENoYXJhY3RlcikKKyAgICBpbmxpbmUgc3RhdGljIHZvaWQgY29udmVydFRvVVRGMTYoVUNo
YXIzMiB2YWx1ZSwgU3RyaW5nQnVpbGRlciYgZGVjb2RlZENoYXJhY3RlcikKICAgICB7CiAgICAg
ICAgIGlmIChVX0lTX0JNUCh2YWx1ZSkpIHsKLSAgICAgICAgVUNoYXIgY2hhcmFjdGVyID0gc3Rh
dGljX2Nhc3Q8VUNoYXI+KHZhbHVlKTsKLSAgICAgICAgQVNTRVJUKGNoYXJhY3RlciA9PSB2YWx1
ZSk7Ci0gICAgICAgIGRlY29kZWRDaGFyYWN0ZXIuYXBwZW5kKGNoYXJhY3Rlcik7Ci0gICAgICAg
IHJldHVybiB0cnVlOworICAgICAgICAgICAgVUNoYXIgY2hhcmFjdGVyID0gc3RhdGljX2Nhc3Q8
VUNoYXI+KHZhbHVlKTsKKyAgICAgICAgICAgIEFTU0VSVChjaGFyYWN0ZXIgPT0gdmFsdWUpOwor
ICAgICAgICAgICAgZGVjb2RlZENoYXJhY3Rlci5hcHBlbmQoY2hhcmFjdGVyKTsKKyAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBkZWNvZGVkQ2hhcmFjdGVyLmFwcGVuZChV
MTZfTEVBRCh2YWx1ZSkpOwogICAgICAgICBkZWNvZGVkQ2hhcmFjdGVyLmFwcGVuZChVMTZfVFJB
SUwodmFsdWUpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCiAgICAgaW5saW5lIHN0
YXRpYyBib29sIGFjY2VwdE1hbGZvcm1lZCgpIHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTFRyZWVCdWlsZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3htbC9wYXJzZXIvWE1MVHJlZUJ1aWxkZXIuY3BwCmluZGV4IDE1Njk3ZTJiMDQ3Y2Jj
YWU0MWQ4YTMwYzQ5YTI5YmM1MjFkMjg2MzguLmZhYzhjOGZlZWQ5NTNjNTljN2IzYTZjYmE3MDY1
OTUzNTdmMDkxOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MVHJl
ZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MVHJlZUJ1aWxk
ZXIuY3BwCkBAIC0zMyw3ICszMyw5IEBACiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgog
I2luY2x1ZGUgIkRvY3VtZW50VHlwZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisvLyBGSVhNRTog
V2h5IGFyZSB3ZSBpbmNsdWRpbmcgSFRNTCBlbnRpdHkgaW5mb3JtYXRpb24gaW4gdGhlIFhNTCBw
YXJzZXI/CiAjaW5jbHVkZSAiSFRNTEVudGl0eVNlYXJjaC5oIgorI2luY2x1ZGUgIkhUTUxFbnRp
dHlUYWJsZS5oIgogI2luY2x1ZGUgIk5ld1hNTERvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVkZSAi
UHJvY2Vzc2luZ0luc3RydWN0aW9uLmgiCiAjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgpAQCAt
MzcwLDcgKzM3MiwxNCBAQCB2b2lkIFhNTFRyZWVCdWlsZGVyOjpwcm9jZXNzSFRNTEVudGl0eShj
b25zdCBBdG9taWNYTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgIH0KICAgICB9CiAgICAgc2VhcmNo
LmFkdmFuY2UoJzsnKTsKLSAgICBVQ2hhcjMyIGVudGl0eVZhbHVlID0gc2VhcmNoLmN1cnJlbnRW
YWx1ZSgpOworICAgIGlmICghc2VhcmNoLmlzRW50aXR5UHJlZml4KCkpIHsKKyAgICAgICAgbV9w
YXJzZXItPnN0b3BQYXJzaW5nKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgVUNoYXIz
MiBlbnRpdHlWYWx1ZSA9IHNlYXJjaC5tb3N0UmVjZW50TWF0Y2goKS0+bGVmdFZhbHVlOworICAg
IC8vIEZJWE1FOiBXZSBuZWVkIHRvIGFjY291bnQgZm9yIHJpZ2h0VmFsdWUgaWYgYW55IFhNTCBl
bnRpdGllcyBhcmUgbG9uZ2VyCisgICAgLy8gdGhhbiBvbmUgdW5pY29kZSBjaGFyYWN0ZXIuCisg
ICAgQVNTRVJUKCFzZWFyY2gubW9zdFJlY2VudE1hdGNoKCktPnJpZ2h0VmFsdWUpOwogICAgIGlm
IChlbnRpdHlWYWx1ZSA8PSAweEZGRkYpCiAgICAgICAgYXBwZW5kVG9UZXh0KHJlaW50ZXJwcmV0
X2Nhc3Q8VUNoYXIqPigmZW50aXR5VmFsdWUpLCAxKTsKICAgICBlbHNlIHsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3MGQ4
ZjUxZWFjMGIzYzQyNzg2MzYzNzRjZmE4MjI2Y2IyZjRjMjcwLi5hZmU3MmQ0NmVjZTYyYTU2MDdi
OWE5M2MzZThmMDJkYWFlYWMzNTUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTcgQEAKIDIwMTEtMTItMTgg
IEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAorICAgICAgICBXZWJLaXQgc2hvdWxk
IHN1cHBvcnQgSFRNTCBlbnRpdGllcyB0aGF0IGV4cGFuZCB0byBtb3JlIHRoYW4gb25lIGNoYXJh
Y3RlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ4
MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaG93
IHRlc3QgcHJvZ3Jlc3Npb24uCisKKyAgICAgICAgKiBodG1sNWxpYi9ydW5uZXItZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2h0bWw1bGliL3J1bm5lci1leHBlY3Rl
ZC50eHQ6CisKKzIwMTEtMTItMTggIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKwog
ICAgICAgICBXZSBkb24ndCBwYXNzIGFsbCBvZiB0aGUgaHRtbDVsaWIgdW5zYWZlLXRleHQuZGF0
IHRlc3RzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
NDgyNQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odG1sNWxpYi9ydW5uZXItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVubmVyLWV4cGVjdGVkLnR4dAppbmRleCA3MDc4
MTlhYjY5MGQ3OGI4NWMxNzliZmY2ZDc3OWQzOGYxYjdkY2Y4Li44NWM3OWYwZjM3OTdjNjA4NDFj
NmI3ODhhOGVkZTJhNzM3MmY4ZDg4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odG1sNWxpYi9y
dW5uZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bm5lci1leHBl
Y3RlZC50eHQKQEAgLTI0NSwxMDMgKzI0NSw4IEBAIEV4cGVjdGVkOgogfCAgICAgICAgICAgICA8
Zm9udD4KIHwgICAgICAgICAgICAgICBzaXplPSI0IgogfCAgICAgICAgICAgICAgICJYIgotcmVz
b3VyY2VzL3Rlc3RzMjQuZGF0OgotMQotMgotMwotNAotNQotNgotCi1UZXN0IDEgb2YgOCBpbiBy
ZXNvdXJjZXMvdGVzdHMyNC5kYXQgZmFpbGVkLiBJbnB1dDoKLTwhRE9DVFlQRSBodG1sPiZOb3RF
cXVhbFRpbGRlOwotR290OgotfCA8IURPQ1RZUEUgaHRtbD4KLXwgPGh0bWw+Ci18ICAgPGhlYWQ+
Ci18ICAgPGJvZHk+Ci18ICAgICAiJk5vdEVxdWFsVGlsZGU7IgotRXhwZWN0ZWQ6Ci18IDwhRE9D
VFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICLiiYLM
uCIKLQotVGVzdCAyIG9mIDggaW4gcmVzb3VyY2VzL3Rlc3RzMjQuZGF0IGZhaWxlZC4gSW5wdXQ6
Ci08IURPQ1RZUEUgaHRtbD4mTm90RXF1YWxUaWxkZTtBCi1Hb3Q6Ci18IDwhRE9DVFlQRSBodG1s
PgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICImTm90RXF1YWxUaWxk
ZTtBIgotRXhwZWN0ZWQ6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4K
LXwgICA8Ym9keT4KLXwgICAgICLiiYLMuEEiCi0KLVRlc3QgMyBvZiA4IGluIHJlc291cmNlcy90
ZXN0czI0LmRhdCBmYWlsZWQuIElucHV0OgotPCFET0NUWVBFIGh0bWw+JlRoaWNrU3BhY2U7Ci1H
b3Q6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4K
LXwgICAgICImVGhpY2tTcGFjZTsiCi1FeHBlY3RlZDoKLXwgPCFET0NUWVBFIGh0bWw+Ci18IDxo
dG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgIuKBn+KAiiIKLQotVGVzdCA0IG9m
IDggaW4gcmVzb3VyY2VzL3Rlc3RzMjQuZGF0IGZhaWxlZC4gSW5wdXQ6Ci08IURPQ1RZUEUgaHRt
bD4mVGhpY2tTcGFjZTtBCi1Hb3Q6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8
aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICImVGhpY2tTcGFjZTtBIgotRXhwZWN0ZWQ6Ci18IDwh
RE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICLi
gZ/igIpBIgotCi1UZXN0IDUgb2YgOCBpbiByZXNvdXJjZXMvdGVzdHMyNC5kYXQgZmFpbGVkLiBJ
bnB1dDoKLTwhRE9DVFlQRSBodG1sPiZOb3RTdWJzZXQ7Ci1Hb3Q6Ci18IDwhRE9DVFlQRSBodG1s
PgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICImTm90U3Vic2V0OyIK
LUV4cGVjdGVkOgotfCA8IURPQ1RZUEUgaHRtbD4KLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAg
PGJvZHk+Ci18ICAgICAi4oqC4oOSIgorcmVzb3VyY2VzL3Rlc3RzMjQuZGF0OiBQQVNTCiAKLVRl
c3QgNiBvZiA4IGluIHJlc291cmNlcy90ZXN0czI0LmRhdCBmYWlsZWQuIElucHV0OgotPCFET0NU
WVBFIGh0bWw+Jk5vdFN1YnNldDtBCi1Hb3Q6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4K
LXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICImTm90U3Vic2V0O0EiCi1FeHBlY3RlZDoK
LXwgPCFET0NUWVBFIGh0bWw+Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAg
ICAgIuKKguKDkkEiCiByZXNvdXJjZXMvdGVzdHMyNS5kYXQ6IFBBU1MKIAogcmVzb3VyY2VzL3Rl
c3RzMjYuZGF0OiBQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9odG1sNWxpYi9ydW5uZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vaHRtbDVsaWIvcnVubmVyLWV4cGVjdGVkLnR4dAppbmRleCAwZmY0OWFiNzJkNmMyNmI2
NjM5ZDJmZDlhZTJhZTA2Mjk4ZDZiMjUzLi4yMDVkZjAyNTI5YzM3YWI2ZjZmZTNkMDY3YzMyM2Mw
NTYzYzIxZTdkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odG1s
NWxpYi9ydW5uZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2h0bWw1bGliL3J1bm5lci1leHBlY3RlZC50eHQKQEAgLTI0NSwxMDMgKzI0NSw4IEBAIEV4
cGVjdGVkOgogfCAgICAgICAgICAgICA8Zm9udD4KIHwgICAgICAgICAgICAgICBzaXplPSI0Igog
fCAgICAgICAgICAgICAgICJYIgotcmVzb3VyY2VzL3Rlc3RzMjQuZGF0OgotMQotMgotMwotNAot
NQotNgotCi1UZXN0IDEgb2YgOCBpbiByZXNvdXJjZXMvdGVzdHMyNC5kYXQgZmFpbGVkLiBJbnB1
dDoKLTwhRE9DVFlQRSBodG1sPiZOb3RFcXVhbFRpbGRlOwotR290OgotfCA8IURPQ1RZUEUgaHRt
bD4KLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICAiJk5vdEVxdWFsVGls
ZGU7IgotRXhwZWN0ZWQ6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4K
LXwgICA8Ym9keT4KLXwgICAgICLiiYLMuCIKLQotVGVzdCAyIG9mIDggaW4gcmVzb3VyY2VzL3Rl
c3RzMjQuZGF0IGZhaWxlZC4gSW5wdXQ6Ci08IURPQ1RZUEUgaHRtbD4mTm90RXF1YWxUaWxkZTtB
Ci1Hb3Q6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9k
eT4KLXwgICAgICImTm90RXF1YWxUaWxkZTtBIgotRXhwZWN0ZWQ6Ci18IDwhRE9DVFlQRSBodG1s
PgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICLiiYLMuEEiCi0KLVRl
c3QgMyBvZiA4IGluIHJlc291cmNlcy90ZXN0czI0LmRhdCBmYWlsZWQuIElucHV0OgotPCFET0NU
WVBFIGh0bWw+JlRoaWNrU3BhY2U7Ci1Hb3Q6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4K
LXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICImVGhpY2tTcGFjZTsiCi1FeHBlY3RlZDoK
LXwgPCFET0NUWVBFIGh0bWw+Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAg
ICAgIuKBn+KAiiIKLQotVGVzdCA0IG9mIDggaW4gcmVzb3VyY2VzL3Rlc3RzMjQuZGF0IGZhaWxl
ZC4gSW5wdXQ6Ci08IURPQ1RZUEUgaHRtbD4mVGhpY2tTcGFjZTtBCi1Hb3Q6Ci18IDwhRE9DVFlQ
RSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICImVGhpY2tT
cGFjZTtBIgotRXhwZWN0ZWQ6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVh
ZD4KLXwgICA8Ym9keT4KLXwgICAgICLigZ/igIpBIgotCi1UZXN0IDUgb2YgOCBpbiByZXNvdXJj
ZXMvdGVzdHMyNC5kYXQgZmFpbGVkLiBJbnB1dDoKLTwhRE9DVFlQRSBodG1sPiZOb3RTdWJzZXQ7
Ci1Hb3Q6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9k
eT4KLXwgICAgICImTm90U3Vic2V0OyIKLUV4cGVjdGVkOgotfCA8IURPQ1RZUEUgaHRtbD4KLXwg
PGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICAi4oqC4oOSIgorcmVzb3VyY2Vz
L3Rlc3RzMjQuZGF0OiBQQVNTCiAKLVRlc3QgNiBvZiA4IGluIHJlc291cmNlcy90ZXN0czI0LmRh
dCBmYWlsZWQuIElucHV0OgotPCFET0NUWVBFIGh0bWw+Jk5vdFN1YnNldDtBCi1Hb3Q6Ci18IDwh
RE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICIm
Tm90U3Vic2V0O0EiCi1FeHBlY3RlZDoKLXwgPCFET0NUWVBFIGh0bWw+Ci18IDxodG1sPgotfCAg
IDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgIuKKguKDkkEiCiByZXNvdXJjZXMvdGVzdHMyNS5k
YXQ6IFBBU1MKIAogcmVzb3VyY2VzL3Rlc3RzMjYuZGF0OiBQQVNTCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119818</attachid>
            <date>2011-12-18 22:53:59 -0800</date>
            <delta_ts>2011-12-19 09:13:41 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-74826-20111218225358.patch</filename>
            <type>text/plain</type>
            <size>22987</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMzIxOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU1IEBACisyMDExLTEyLTE4ICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgV2ViS2l0IHNob3VsZCBzdXBwb3J0
IEhUTUwgZW50aXRpZXMgdGhhdCBleHBhbmQgdG8gbW9yZSB0aGFuIG9uZSBjaGFyYWN0ZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0ODI2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgVGVzdHM6IGh0bWw1bGli
L3J1bm5lci5odG1sCisKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MRW50aXR5TmFtZXMuaW46
CisgICAgICAgICAgICAtIEFkZCBtaXNzaW5nIEhUTUwgZW50aXRpZXMgZnJvbSBIVE1MNSBzcGVj
LiAgSSdsbCBzb3J0IHRoaXMgZmlsZQorICAgICAgICAgICAgICBpbiBhIGZvbGxvd3VwIHBhdGNo
LiAgKEl0J3Mgbm90IHF1aXRlIHNvcnRlZCBwZXJmZWN0bHkgYW5kCisgICAgICAgICAgICAgIHNv
cnRpbmcgaW4gdGhpcyBwYXRjaCB3b3VsZCBpbnRyb2R1Y2Ugbm9pc2UgaW50byB0aGUgcGF0Y2gu
KQorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxFbnRpdHlQYXJzZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6ZGVjb2RlTmFtZWRFbnRpdHkpOgorICAgICAgICAgICAgLSBjb252ZXJ0VG9VVEYx
NiBhbHdheXMgcmV0dXJucyB0cnVlLCBzbyBtYWtlIGl0IHJldHVybiB2b2lkIGluc3RlYWQuCisg
ICAgICAgICAgICAtIFRlYWNoIHRoZSBlbnRpdHkgcGFyc2UgdGhhdCBzb21lIGVudGl0aWVzIGV4
cGFuZCB0byB0d28gY2hhcmFjdGVycy4KKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MRW50aXR5
UGFyc2VyLmg6CisgICAgICAgICAgICAtIEFkZCBhIHdhcm5pbmcgdGhhdCBkZWNvZGVOYW1lZEVu
dGl0eSBpcyByZWFsbHkgYSBicm9rZW4gQVBJLgorICAgICAgICAgICAgLSBUaGlzIHBhdGNoIGRv
ZXNuJ3QgYWN0dWFsbHkgY2hhbmdlIGFueSBiZWhhdmlvciBvZiB0aGlzIEFQSSwgYnV0CisgICAg
ICAgICAgICAgIGl0IGRvZXMgaWxsdXN0cmF0ZSB0aGF0IHRoZSB0d28gY2FsbGVycyBvZiB0aGlz
IEFQSSAodGhlIHR3byBYTUwKKyAgICAgICAgICAgICAgcGFyc2VycykgcmVhbGx5IG5lZWQgdG8g
bW92ZSBhIG1vcmUgc2Vuc2libGUgQVBJLgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxFbnRp
dHlTZWFyY2guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVudGl0eVNlYXJjaDo6SFRNTEVu
dGl0eVNlYXJjaCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRW50aXR5U2VhcmNoOjphZHZhbmNl
KToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MRW50aXR5U2VhcmNoLmg6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRW50aXR5U2VhcmNoOjpmYWlsKToKKyAgICAgICAgICAgIC0gUmVtb3ZlIHRo
ZSBjb25jZXB0IG9mIGN1cnJlbnRWYWx1ZS4gIFRoaXMgaXNuJ3QgcmVhbGx5IHVzZWQgZm9yCisg
ICAgICAgICAgICAgIGFueXRoaW5nIGFuZCBjb25mbGljdHMgd2l0aCB0aGUgaWRlYSB0aGF0IGVu
dGl0aWVzIGNhbiBleHBhbmQKKyAgICAgICAgICAgICAgdG8gbW9yZSB0aGFuIG9uZSBjaGFyYWN0
ZXIuCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTEVudGl0eVRhYmxlLmg6CisgICAgICAgICAg
ICAtIEFkZCBzdG9yYWdlIGZvciB0d28gVUNoYXIzMiB2YWx1ZXMgcGVyIGVudGl0eS4KKyAgICAg
ICAgKiBodG1sL3BhcnNlci9jcmVhdGUtaHRtbC1lbnRpdHktdGFibGU6CisgICAgICAgIChjb252
ZXJ0X3ZhbHVlX3RvX2ludCk6CisgICAgICAgICAgICAtIFRlYWNoIHRoaXMgc2NyaXB0IHRvIGhh
bmRsZSBlbnRpdGllcyB0aGF0IGV4cGFuZCB0byBtdWx0aXBsZQorICAgICAgICAgICAgICBVbmlj
b2RlIGNoYXJhY3RlcnMuCisgICAgICAgICogeG1sL3BhcnNlci9DaGFyYWN0ZXJSZWZlcmVuY2VQ
YXJzZXJJbmxpbmVNZXRob2RzLmg6CisgICAgICAgIChXZWJDb3JlOjpjb25zdW1lQ2hhcmFjdGVy
UmVmZXJlbmNlKToKKyAgICAgICAgICAgIC0gVXBkYXRlIHRoaXMgZnVuY3Rpb24gbm93IHRoYXQg
Y29udmVydFRvVVRGMTYgcmV0dXJucyB2b2lkLgorICAgICAgICAqIHhtbC9wYXJzZXIvWE1MQ2hh
cmFjdGVyUmVmZXJlbmNlUGFyc2VyLmNwcDoKKyAgICAgICAgICAgIC0gVGhlIFhNTCB2ZXJzaW9u
IG9mIGNvbnZlcnRUb1VURjE2IGFsc28gbmVlZHMgdG8gcmV0dXJuIHZvaWQgdG8KKyAgICAgICAg
ICAgICAgbWF0Y2ggdGhlIEhUTUwgc2lnbmF0dXJlLiAgKEl0IHVzZWQgdG8gcmV0dXJuIHRydWUg
YWxsIHRoZSB0aW1lCisgICAgICAgICAgICAgIGFzIHdlbGwuKQorICAgICAgICAqIHhtbC9wYXJz
ZXIvWE1MVHJlZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MVHJlZUJ1aWxkZXI6
OnByb2Nlc3NIVE1MRW50aXR5KToKKyAgICAgICAgICAgIC0gVXBkYXRlIHRoaXMgY2FsbGVyIHVz
ZSBsZWZ0VmFsdWUgaW5zdGVhZCBvZiB2YWx1ZS4gIE15IHNlbnNlIGlzCisgICAgICAgICAgICAg
IHRoYXQgdGhpcyBjb2RlIGlzIG1vZGVyYXRlbHkgYnJva2VuIHRvZGF5IGJlY2F1c2UgaXQncyB1
c2luZyBIVE1MCisgICAgICAgICAgICAgIGVudGl0aWVzIGluIHBhcnNpbmcgWE1MLiAgSSd2ZSBh
ZGRlZCBhIEZJWE1FLiAgVGhpcyBjb2RlIGlzCisgICAgICAgICAgICAgIGRpc2FibGVkIGluIGFs
bCBidWlsZHMsIHNvIEkgZG9uJ3QgZmVlbCBhIGJpZyBuZWVkIHRvIGZpeCB0aGlzCisgICAgICAg
ICAgICAgIGlzc3VlIGluIHRoaXMgcGF0Y2guICBXZSBzaG91bGQgZWl0aGVyIGZpbmlzaCB0aGlz
IHByb2plY3Qgb3IKKyAgICAgICAgICAgICAgZGVsZXRlIHRoaXMgY29tcGxleGl0eSBmcm9tIHRo
ZSBwcm9qZWN0LgorCiAyMDExLTEyLTE4ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgRml4IHR5cG8gaW4gY29tbWVudC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0hUTUxFbnRpdHlOYW1lcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MRW50aXR5TmFtZXMuaW4JKHJldmlzaW9uIDEwMzIxOSkKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbnRpdHlOYW1lcy5pbgkod29ya2luZyBjb3B5
KQpAQCAtMTgxNCw4ICsxODE0LDggQEAKICJzaGN5OyIsIlUrMDA0NDgiCiAic2hvcnRtaWQ7Iiwi
VSswMjIyMyIKICJzaG9ydHBhcmFsbGVsOyIsIlUrMDIyMjUiCi0ic2h5OyIsIlUrMDAwQUQgICIK
LSJzaHkiLCJVKzAwMEFEICIKKyJzaHk7IiwiVSswMDBBRCIKKyJzaHkiLCJVKzAwMEFEIgogInNp
Z21hOyIsIlUrMDAzQzMiCiAic2lnbWFmOyIsIlUrMDAzQzIiCiAic2lnbWF2OyIsIlUrMDAzQzIi
CkBAIC0yMTM2LDMgKzIxMzYsOTYgQEAKICJ6c2NyOyIsIlUrMUQ0Q0YiCiAiendqOyIsIlUrMDIw
MEQiCiAienduajsiLCJVKzAyMDBDIgorImFjRTsiLCJVKzAyMjNFIFUrMDAzMzMiCisiYm5lOyIs
IlUrMDAwM0QgVSswMjBFNSIKKyJibmVxdWl2OyIsIlUrMDIyNjEgVSswMjBFNSIKKyJjYXBzOyIs
IlUrMDIyMjkgVSswRkUwMCIKKyJjdXBzOyIsIlUrMDIyMkEgVSswRkUwMCIKKyJmamxpZzsiLCJV
KzAwMDY2IFUrMDAwNkEiCisiZ2VzbDsiLCJVKzAyMkRCIFUrMEZFMDAiCisiZ3ZlcnRuZXFxOyIs
IlUrMDIyNjkgVSswRkUwMCIKKyJndm5FOyIsIlUrMDIyNjkgVSswRkUwMCIKKyJsYXRlczsiLCJV
KzAyQUFEIFUrMEZFMDAiCisibGVzZzsiLCJVKzAyMkRBIFUrMEZFMDAiCisibHZlcnRuZXFxOyIs
IlUrMDIyNjggVSswRkUwMCIKKyJsdm5FOyIsIlUrMDIyNjggVSswRkUwMCIKKyJuYW5nOyIsIlUr
MDIyMjAgVSswMjBEMiIKKyJuYXBFOyIsIlUrMDJBNzAgVSswMDMzOCIKKyJuYXBpZDsiLCJVKzAy
MjRCIFUrMDAzMzgiCisibmJ1bXA7IiwiVSswMjI0RSBVKzAwMzM4IgorIm5idW1wZTsiLCJVKzAy
MjRGIFUrMDAzMzgiCisibmNvbmdkb3Q7IiwiVSswMkE2RCBVKzAwMzM4IgorIm5lZG90OyIsIlUr
MDIyNTAgVSswMDMzOCIKKyJuZXNpbTsiLCJVKzAyMjQyIFUrMDAzMzgiCisibmdFOyIsIlUrMDIy
NjcgVSswMDMzOCIKKyJuZ2VxcTsiLCJVKzAyMjY3IFUrMDAzMzgiCisibmdlcXNsYW50OyIsIlUr
MDJBN0UgVSswMDMzOCIKKyJuZ2VzOyIsIlUrMDJBN0UgVSswMDMzOCIKKyJuR2c7IiwiVSswMjJE
OSBVKzAwMzM4IgorIm5HdDsiLCJVKzAyMjZCIFUrMDIwRDIiCisibkd0djsiLCJVKzAyMjZCIFUr
MDAzMzgiCisibmxFOyIsIlUrMDIyNjYgVSswMDMzOCIKKyJubGVxcTsiLCJVKzAyMjY2IFUrMDAz
MzgiCisibmxlcXNsYW50OyIsIlUrMDJBN0QgVSswMDMzOCIKKyJubGVzOyIsIlUrMDJBN0QgVSsw
MDMzOCIKKyJuTGw7IiwiVSswMjJEOCBVKzAwMzM4IgorIm5MdDsiLCJVKzAyMjZBIFUrMDIwRDIi
Cisibkx0djsiLCJVKzAyMjZBIFUrMDAzMzgiCisiTm90RXF1YWxUaWxkZTsiLCJVKzAyMjQyIFUr
MDAzMzgiCisiTm90R3JlYXRlckZ1bGxFcXVhbDsiLCJVKzAyMjY3IFUrMDAzMzgiCisiTm90R3Jl
YXRlckdyZWF0ZXI7IiwiVSswMjI2QiBVKzAwMzM4IgorIk5vdEdyZWF0ZXJTbGFudEVxdWFsOyIs
IlUrMDJBN0UgVSswMDMzOCIKKyJOb3RIdW1wRG93bkh1bXA7IiwiVSswMjI0RSBVKzAwMzM4Igor
Ik5vdEh1bXBFcXVhbDsiLCJVKzAyMjRGIFUrMDAzMzgiCisibm90aW5kb3Q7IiwiVSswMjJGNSBV
KzAwMzM4IgorIm5vdGluRTsiLCJVKzAyMkY5IFUrMDAzMzgiCisiTm90TGVmdFRyaWFuZ2xlQmFy
OyIsIlUrMDI5Q0YgVSswMDMzOCIKKyJOb3RMZXNzTGVzczsiLCJVKzAyMjZBIFUrMDAzMzgiCisi
Tm90TGVzc1NsYW50RXF1YWw7IiwiVSswMkE3RCBVKzAwMzM4IgorIk5vdE5lc3RlZEdyZWF0ZXJH
cmVhdGVyOyIsIlUrMDJBQTIgVSswMDMzOCIKKyJOb3ROZXN0ZWRMZXNzTGVzczsiLCJVKzAyQUEx
IFUrMDAzMzgiCisiTm90UHJlY2VkZXNFcXVhbDsiLCJVKzAyQUFGIFUrMDAzMzgiCisiTm90Umln
aHRUcmlhbmdsZUJhcjsiLCJVKzAyOUQwIFUrMDAzMzgiCisiTm90U3F1YXJlU3Vic2V0OyIsIlUr
MDIyOEYgVSswMDMzOCIKKyJOb3RTcXVhcmVTdXBlcnNldDsiLCJVKzAyMjkwIFUrMDAzMzgiCisi
Tm90U3Vic2V0OyIsIlUrMDIyODIgVSswMjBEMiIKKyJOb3RTdWNjZWVkc0VxdWFsOyIsIlUrMDJB
QjAgVSswMDMzOCIKKyJOb3RTdWNjZWVkc1RpbGRlOyIsIlUrMDIyN0YgVSswMDMzOCIKKyJOb3RT
dXBlcnNldDsiLCJVKzAyMjgzIFUrMDIwRDIiCisibnBhcnNsOyIsIlUrMDJBRkQgVSswMjBFNSIK
KyJucGFydDsiLCJVKzAyMjAyIFUrMDAzMzgiCisibnByZTsiLCJVKzAyQUFGIFUrMDAzMzgiCisi
bnByZWNlcTsiLCJVKzAyQUFGIFUrMDAzMzgiCisibnJhcnJjOyIsIlUrMDI5MzMgVSswMDMzOCIK
KyJucmFycnc7IiwiVSswMjE5RCBVKzAwMzM4IgorIm5zY2U7IiwiVSswMkFCMCBVKzAwMzM4Igor
Im5zdWJFOyIsIlUrMDJBQzUgVSswMDMzOCIKKyJuc3Vic2V0OyIsIlUrMDIyODIgVSswMjBEMiIK
KyJuc3Vic2V0ZXFxOyIsIlUrMDJBQzUgVSswMDMzOCIKKyJuc3VjY2VxOyIsIlUrMDJBQjAgVSsw
MDMzOCIKKyJuc3VwRTsiLCJVKzAyQUM2IFUrMDAzMzgiCisibnN1cHNldDsiLCJVKzAyMjgzIFUr
MDIwRDIiCisibnN1cHNldGVxcTsiLCJVKzAyQUM2IFUrMDAzMzgiCisibnZhcDsiLCJVKzAyMjRE
IFUrMDIwRDIiCisibnZnZTsiLCJVKzAyMjY1IFUrMDIwRDIiCisibnZndDsiLCJVKzAwMDNFIFUr
MDIwRDIiCisibnZsZTsiLCJVKzAyMjY0IFUrMDIwRDIiCisibnZsdDsiLCJVKzAwMDNDIFUrMDIw
RDIiCisibnZsdHJpZTsiLCJVKzAyMkI0IFUrMDIwRDIiCisibnZydHJpZTsiLCJVKzAyMkI1IFUr
MDIwRDIiCisibnZzaW07IiwiVSswMjIzQyBVKzAyMEQyIgorInJhY2U7IiwiVSswMjIzRCBVKzAw
MzMxIgorInNtdGVzOyIsIlUrMDJBQUMgVSswRkUwMCIKKyJzcWNhcHM7IiwiVSswMjI5MyBVKzBG
RTAwIgorInNxY3VwczsiLCJVKzAyMjk0IFUrMEZFMDAiCisiVGhpY2tTcGFjZTsiLCJVKzAyMDVG
IFUrMDIwMEEiCisidmFyc3Vic2V0bmVxOyIsIlUrMDIyOEEgVSswRkUwMCIKKyJ2YXJzdWJzZXRu
ZXFxOyIsIlUrMDJBQ0IgVSswRkUwMCIKKyJ2YXJzdXBzZXRuZXE7IiwiVSswMjI4QiBVKzBGRTAw
IgorInZhcnN1cHNldG5lcXE7IiwiVSswMkFDQyBVKzBGRTAwIgorInZuc3ViOyIsIlUrMDIyODIg
VSswMjBEMiIKKyJ2bnN1cDsiLCJVKzAyMjgzIFUrMDIwRDIiCisidnN1Ym5FOyIsIlUrMDJBQ0Ig
VSswRkUwMCIKKyJ2c3VibmU7IiwiVSswMjI4QSBVKzBGRTAwIgorInZzdXBuRTsiLCJVKzAyQUND
IFUrMEZFMDAiCisidnN1cG5lOyIsIlUrMDIyOEIgVSswRkUwMCIKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxFbnRpdHlQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbnRpdHlQYXJzZXIuY3BwCShyZXZpc2lvbiAxMDMy
MTkpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRW50aXR5UGFyc2VyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNzAsMTcgKzcwLDE2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJu
IHZhbHVlOwogICAgIH0KIAotICAgIGlubGluZSBzdGF0aWMgYm9vbCBjb252ZXJ0VG9VVEYxNihV
Q2hhcjMyIHZhbHVlLCBTdHJpbmdCdWlsZGVyJiBkZWNvZGVkRW50aXR5KQorICAgIGlubGluZSBz
dGF0aWMgdm9pZCBjb252ZXJ0VG9VVEYxNihVQ2hhcjMyIHZhbHVlLCBTdHJpbmdCdWlsZGVyJiBk
ZWNvZGVkRW50aXR5KQogICAgIHsKICAgICAgICAgaWYgKFVfSVNfQk1QKHZhbHVlKSkgewogICAg
ICAgICAgICAgVUNoYXIgY2hhcmFjdGVyID0gc3RhdGljX2Nhc3Q8VUNoYXI+KHZhbHVlKTsKICAg
ICAgICAgICAgIEFTU0VSVChjaGFyYWN0ZXIgPT0gdmFsdWUpOwogICAgICAgICAgICAgZGVjb2Rl
ZEVudGl0eS5hcHBlbmQoY2hhcmFjdGVyKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGRlY29kZWRFbnRpdHkuYXBwZW5k
KFUxNl9MRUFEKHZhbHVlKSk7CiAgICAgICAgIGRlY29kZWRFbnRpdHkuYXBwZW5kKFUxNl9UUkFJ
TCh2YWx1ZSkpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKICAgICBpbmxpbmUgc3Rh
dGljIGJvb2wgYWNjZXB0TWFsZm9ybWVkKCkgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtMTA1LDcgKzEw
NCw2IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAg
ICAgICBpZiAoIWVudGl0eVNlYXJjaC5tb3N0UmVjZW50TWF0Y2goKSkgewotICAgICAgICAgICAg
QVNTRVJUKCFlbnRpdHlTZWFyY2guY3VycmVudFZhbHVlKCkpOwogICAgICAgICAgICAgdW5jb25z
dW1lQ2hhcmFjdGVycyhzb3VyY2UsIGNvbnN1bWVkQ2hhcmFjdGVycyk7CiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KQEAgLTEyOSw3ICsxMjcsMTAgQEAgcHVibGljOgogICAg
ICAgICBpZiAoZW50aXR5U2VhcmNoLm1vc3RSZWNlbnRNYXRjaCgpLT5sYXN0Q2hhcmFjdGVyKCkg
PT0gJzsnCiAgICAgICAgICAgICB8fCAhYWRkaXRpb25hbEFsbG93ZWRDaGFyYWN0ZXIKICAgICAg
ICAgICAgIHx8ICEoaXNBbHBoYU51bWVyaWMoY2MpIHx8IGNjID09ICc9JykpIHsKLSAgICAgICAg
ICAgIHJldHVybiBjb252ZXJ0VG9VVEYxNihlbnRpdHlTZWFyY2gubW9zdFJlY2VudE1hdGNoKCkt
PnZhbHVlLCBkZWNvZGVkRW50aXR5KTsKKyAgICAgICAgICAgIGNvbnZlcnRUb1VURjE2KGVudGl0
eVNlYXJjaC5tb3N0UmVjZW50TWF0Y2goKS0+Zmlyc3RWYWx1ZSwgZGVjb2RlZEVudGl0eSk7Cisg
ICAgICAgICAgICBpZiAoZW50aXR5U2VhcmNoLm1vc3RSZWNlbnRNYXRjaCgpLT5zZWNvbmRWYWx1
ZSkKKyAgICAgICAgICAgICAgICBjb252ZXJ0VG9VVEYxNihlbnRpdHlTZWFyY2gubW9zdFJlY2Vu
dE1hdGNoKCktPnNlY29uZFZhbHVlLCBkZWNvZGVkRW50aXR5KTsKKyAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICB9CiAgICAgICAgIHVuY29uc3VtZUNoYXJhY3RlcnMoc291cmNlLCBj
b25zdW1lZENoYXJhY3RlcnMpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMzgsNyArMTM5
LDYgQEAgcHVibGljOgogCiB9CiAKLQogYm9vbCBjb25zdW1lSFRNTEVudGl0eShTZWdtZW50ZWRT
dHJpbmcmIHNvdXJjZSwgU3RyaW5nQnVpbGRlciYgZGVjb2RlZEVudGl0eSwgYm9vbCYgbm90RW5v
dWdoQ2hhcmFjdGVycywgVUNoYXIgYWRkaXRpb25hbEFsbG93ZWRDaGFyYWN0ZXIpCiB7CiAgICAg
cmV0dXJuIGNvbnN1bWVDaGFyYWN0ZXJSZWZlcmVuY2U8SFRNTEVudGl0eVBhcnNlcj4oc291cmNl
LCBkZWNvZGVkRW50aXR5LCBub3RFbm91Z2hDaGFyYWN0ZXJzLCBhZGRpdGlvbmFsQWxsb3dlZENo
YXJhY3Rlcik7CkBAIC0xNTMsMTQgKzE1MywxNiBAQCBVQ2hhciBkZWNvZGVOYW1lZEVudGl0eShj
b25zdCBjaGFyKiBuYW1lCiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICB9CiAgICAgc2VhcmNo
LmFkdmFuY2UoJzsnKTsKLSAgICBVQ2hhcjMyIGVudGl0eVZhbHVlID0gc2VhcmNoLmN1cnJlbnRW
YWx1ZSgpOwotICAgIGlmIChVMTZfTEVOR1RIKGVudGl0eVZhbHVlKSAhPSAxKSB7Ci0gICAgICAg
IC8vIENhbGxlcnMgbmVlZCB0byBtb3ZlIG9mZiB0aGlzIEFQSSBpZiB0aGUgZW50aXR5IHRhYmxl
IGhhcyB2YWx1ZXMKLSAgICAgICAgLy8gd2hpY2ggZG8gbm8gZml0IGluIGEgMTYgYml0IFVDaGFy
IQotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBpZiAoIXNlYXJjaC5pc0VudGl0
eVByZWZpeCgpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIFVDaGFyMzIgZmlyc3RWYWx1ZSA9
IHNlYXJjaC5tb3N0UmVjZW50TWF0Y2goKS0+Zmlyc3RWYWx1ZTsKKyAgICBpZiAoVTE2X0xFTkdU
SChmaXJzdFZhbHVlKSAhPSAxIHx8IHNlYXJjaC5tb3N0UmVjZW50TWF0Y2goKS0+c2Vjb25kVmFs
dWUpIHsKKyAgICAgICAgLy8gRklYTUU6IENhbGxlcnMgbmVlZCB0byBtb3ZlIG9mZiB0aGlzIEFQ
SS4gTm90IGFsbCBlbnRpdGllcyBjYW4gYmUKKyAgICAgICAgLy8gcmVwcmVzZW50ZWQgaW4gYSBz
aW5nbGUgVUNoYXIhCiAgICAgICAgIHJldHVybiAwOwogICAgIH0KLSAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8VUNoYXI+KGVudGl0eVZhbHVlKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VUNoYXI+
KGZpcnN0VmFsdWUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRW50aXR5UGFyc2VyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVudGl0eVBhcnNlci5oCShyZXZpc2lvbiAxMDMy
MTkpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRW50aXR5UGFyc2VyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogYm9vbCBj
b25zdW1lSFRNTEVudGl0eShTZWdtZW50ZWRTdHJpbmcmLCBTdHJpbmdCdWlsZGVyJiBkZWNvZGVk
RW50aXR5LCBib29sJiBub3RFbm91Z2hDaGFyYWN0ZXJzLCBVQ2hhciBhZGRpdGlvbmFsQWxsb3dl
ZENoYXJhY3RlciA9ICdcMCcpOwogCiAvLyBVc2VkIGJ5IHRoZSBYTUwgcGFyc2VyLiAgTm90IHN1
aXRhYmxlIGZvciB1c2UgaW4gSFRNTCBwYXJzaW5nLiAgVXNlIGNvbnN1bWVIVE1MRW50aXR5IGlu
c3RlYWQuCisvLyBGSVhNRTogTW92ZSB0aGUgWE1MIHBhcnNlciB0byBhbiBlbnRpdHkgZGVjb2Rp
bmcgZnVuY3Rpb24gd29ya3MgZm9yIG5vbi1CTVAgY2hhcmFjdGVycyEKIFVDaGFyIGRlY29kZU5h
bWVkRW50aXR5KGNvbnN0IGNoYXIqKTsKIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTEVudGl0eVNlYXJjaC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTEVudGl0eVNlYXJjaC5jcHAJKHJldmlzaW9uIDEwMzIxOSkKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbnRpdHlTZWFyY2guY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00MSw3ICs0MSw2IEBAIGNvbnN0IEhUTUxFbnRpdHlUYWJsZUVudHJ5KiBoYWxmd2F5
KGNvbnMKICAgICAKIEhUTUxFbnRpdHlTZWFyY2g6OkhUTUxFbnRpdHlTZWFyY2goKQogICAgIDog
bV9jdXJyZW50TGVuZ3RoKDApCi0gICAgLCBtX2N1cnJlbnRWYWx1ZSgwKQogICAgICwgbV9tb3N0
UmVjZW50TWF0Y2goMCkKICAgICAsIG1fZmlyc3QoSFRNTEVudGl0eVRhYmxlOjpmaXJzdEVudHJ5
KCkpCiAgICAgLCBtX2xhc3QoSFRNTEVudGl0eVRhYmxlOjpsYXN0RW50cnkoKSkKQEAgLTEyNCwx
MSArMTIzLDkgQEAgdm9pZCBIVE1MRW50aXR5U2VhcmNoOjphZHZhbmNlKFVDaGFyIG5leAogICAg
IH0KICAgICArK21fY3VycmVudExlbmd0aDsKICAgICBpZiAobV9maXJzdC0+bGVuZ3RoICE9IG1f
Y3VycmVudExlbmd0aCkgewotICAgICAgICBtX2N1cnJlbnRWYWx1ZSA9IDA7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAgICAgbV9tb3N0UmVjZW50TWF0Y2ggPSBtX2ZpcnN0OwotICAgIG1fY3Vy
cmVudFZhbHVlID0gbV9tb3N0UmVjZW50TWF0Y2gtPnZhbHVlOwogfQogCiB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRW50aXR5U2VhcmNoLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVudGl0eVNlYXJjaC5oCShyZXZpc2lvbiAx
MDMyMTkpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRW50aXR5U2VhcmNoLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDYgQEAgcHVibGljOgogICAgIHZvaWQgYWR2YW5j
ZShVQ2hhcik7CiAKICAgICBib29sIGlzRW50aXR5UHJlZml4KCkgY29uc3QgeyByZXR1cm4gISFt
X2ZpcnN0OyB9Ci0gICAgVUNoYXIzMiBjdXJyZW50VmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2N1
cnJlbnRWYWx1ZTsgfQogICAgIGludCBjdXJyZW50TGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9j
dXJyZW50TGVuZ3RoOyB9CiAKICAgICBjb25zdCBIVE1MRW50aXR5VGFibGVFbnRyeSogbW9zdFJl
Y2VudE1hdGNoKCkgY29uc3QgeyByZXR1cm4gbV9tb3N0UmVjZW50TWF0Y2g7IH0KQEAgLTU3LDEz
ICs1NiwxMSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBmYWlsKCkKICAgICB7Ci0gICAgICAgIG1f
Y3VycmVudFZhbHVlID0gMDsKICAgICAgICAgbV9maXJzdCA9IDA7CiAgICAgICAgIG1fbGFzdCA9
IDA7CiAgICAgfQogCiAgICAgaW50IG1fY3VycmVudExlbmd0aDsKLSAgICBVQ2hhcjMyIG1fY3Vy
cmVudFZhbHVlOwogCiAgICAgY29uc3QgSFRNTEVudGl0eVRhYmxlRW50cnkqIG1fbW9zdFJlY2Vu
dE1hdGNoOwogICAgIGNvbnN0IEhUTUxFbnRpdHlUYWJsZUVudHJ5KiBtX2ZpcnN0OwpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVudGl0eVRhYmxlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVudGl0eVRhYmxlLmgJKHJldmlzaW9u
IDEwMzIxOSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbnRpdHlUYWJsZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw4IEBAIHN0cnVjdCBIVE1MRW50aXR5VGFibGVF
bnRyeSB7CiAKICAgICBjb25zdCBVQ2hhciogZW50aXR5OwogICAgIGludCBsZW5ndGg7Ci0gICAg
VUNoYXIzMiB2YWx1ZTsKKyAgICBVQ2hhcjMyIGZpcnN0VmFsdWU7CisgICAgVUNoYXIzMiBzZWNv
bmRWYWx1ZTsKIH07CiAKIGNsYXNzIEhUTUxFbnRpdHlUYWJsZSB7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9jcmVhdGUtaHRtbC1lbnRpdHktdGFibGUKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvY3JlYXRlLWh0bWwtZW50aXR5LXRhYmxlCShyZXZp
c2lvbiAxMDMyMTkpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9jcmVhdGUtaHRtbC1l
bnRpdHktdGFibGUJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYgKzQ3LDggQEAgZGVmIGNvbnZlcnRf
ZW50aXR5X3RvX3VjaGFyX2FycmF5KGVudGl0eQogCiAKIGRlZiBjb252ZXJ0X3ZhbHVlX3RvX2lu
dCh2YWx1ZSk6CisgICAgaWYgbm90IHZhbHVlOgorICAgICAgICByZXR1cm4gIjAiOwogICAgIGFz
c2VydCh2YWx1ZVswXSA9PSAiVSIpCiAgICAgYXNzZXJ0KHZhbHVlWzFdID09ICIrIikKICAgICBy
ZXR1cm4gIjB4IiArIHZhbHVlWzI6XQpAQCAtMTI0LDEwICsxMjYsMTMgQEAgZm9yIGVudHJ5IGlu
IGVudHJpZXM6CiAgICAgbGV0dGVyID0gZW50cnlbRU5USVRZXVswXQogICAgIGlmIG5vdCBpbmRl
eC5nZXQobGV0dGVyKToKICAgICAgICAgaW5kZXhbbGV0dGVyXSA9IG9mZnNldAotICAgIG91dHB1
dF9maWxlLndyaXRlKCcgICAgeyAlcywgJXMsICVzIH0sXG4nICUgKAorICAgIHZhbHVlcyA9IGVu
dHJ5W1ZBTFVFXS5zcGxpdCgnICcpCisgICAgYXNzZXJ0IGxlbih2YWx1ZXMpIDw9IDIsIHZhbHVl
cworICAgIG91dHB1dF9maWxlLndyaXRlKCcgICAgeyAlcywgJXMsICVzLCAlcyB9LFxuJyAlICgK
ICAgICAgICAgY29udmVydF9lbnRpdHlfdG9fY3BwX25hbWUoZW50cnlbRU5USVRZXSksCiAgICAg
ICAgIGxlbihlbnRyeVtFTlRJVFldKSwKLSAgICAgICAgY29udmVydF92YWx1ZV90b19pbnQoZW50
cnlbVkFMVUVdKSkpCisgICAgICAgIGNvbnZlcnRfdmFsdWVfdG9faW50KHZhbHVlc1swXSksCisg
ICAgICAgIGNvbnZlcnRfdmFsdWVfdG9faW50KHZhbHVlc1sxXSBpZiBsZW4odmFsdWVzKSA+PSAy
IGVsc2UgIiIpKSkKICAgICBvZmZzZXQgKz0gMQogCiBvdXRwdXRfZmlsZS53cml0ZSgiIiJ9OwpJ
bmRleDogU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9DaGFyYWN0ZXJSZWZlcmVuY2VQYXJzZXJJ
bmxpbmVNZXRob2RzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9D
aGFyYWN0ZXJSZWZlcmVuY2VQYXJzZXJJbmxpbmVNZXRob2RzLmgJKHJldmlzaW9uIDEwMzIxOSkK
KysrIFNvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvQ2hhcmFjdGVyUmVmZXJlbmNlUGFyc2VySW5s
aW5lTWV0aG9kcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjgsMTAgKzEyOCwxMiBAQCBib29sIGNv
bnN1bWVDaGFyYWN0ZXJSZWZlcmVuY2UoU2VnbWVudGVkCiAgICAgICAgICAgICAgICAgcmVzdWx0
ID0gcmVzdWx0ICogMTYgKyAxMCArIGNjIC0gJ0EnOwogICAgICAgICAgICAgZWxzZSBpZiAoY2Mg
PT0gJzsnKSB7CiAgICAgICAgICAgICAgICAgc291cmNlLmFkdmFuY2VBbmRBU1NFUlQoY2MpOwot
ICAgICAgICAgICAgICAgIHJldHVybiBQYXJzZXJGdW5jdGlvbnM6OmNvbnZlcnRUb1VURjE2KFBh
cnNlckZ1bmN0aW9uczo6bGVnYWxFbnRpdHlGb3IocmVzdWx0KSwgZGVjb2RlZENoYXJhY3Rlcik7
Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKFBhcnNlckZ1bmN0aW9uczo6YWNjZXB0TWFsZm9ybWVk
KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIFBhcnNlckZ1bmN0aW9uczo6Y29udmVydFRvVVRG
MTYoUGFyc2VyRnVuY3Rpb25zOjpsZWdhbEVudGl0eUZvcihyZXN1bHQpLCBkZWNvZGVkQ2hhcmFj
dGVyKTsKLSAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIFBhcnNlckZ1bmN0aW9u
czo6Y29udmVydFRvVVRGMTYoUGFyc2VyRnVuY3Rpb25zOjpsZWdhbEVudGl0eUZvcihyZXN1bHQp
LCBkZWNvZGVkQ2hhcmFjdGVyKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgICAgIH0gZWxzZSBpZiAoUGFyc2VyRnVuY3Rpb25zOjphY2NlcHRNYWxmb3JtZWQoKSkgewor
ICAgICAgICAgICAgICAgIFBhcnNlckZ1bmN0aW9uczo6Y29udmVydFRvVVRGMTYoUGFyc2VyRnVu
Y3Rpb25zOjpsZWdhbEVudGl0eUZvcihyZXN1bHQpLCBkZWNvZGVkQ2hhcmFjdGVyKTsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
ICAgICAgdW5jb25zdW1lQ2hhcmFjdGVycyhzb3VyY2UsIGNvbnN1bWVkQ2hhcmFjdGVycyk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgfQpAQCAtMTQyLDEwICsx
NDQsMTIgQEAgYm9vbCBjb25zdW1lQ2hhcmFjdGVyUmVmZXJlbmNlKFNlZ21lbnRlZAogICAgICAg
ICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAqIDEwICsgY2MgLSAnMCc7CiAgICAgICAgICAgICBl
bHNlIGlmIChjYyA9PSAnOycpIHsKICAgICAgICAgICAgICAgICBzb3VyY2UuYWR2YW5jZUFuZEFT
U0VSVChjYyk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFBhcnNlckZ1bmN0aW9uczo6Y29udmVy
dFRvVVRGMTYoUGFyc2VyRnVuY3Rpb25zOjpsZWdhbEVudGl0eUZvcihyZXN1bHQpLCBkZWNvZGVk
Q2hhcmFjdGVyKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoUGFyc2VyRnVuY3Rpb25zOjphY2Nl
cHRNYWxmb3JtZWQoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gUGFyc2VyRnVuY3Rpb25zOjpj
b252ZXJ0VG9VVEYxNihQYXJzZXJGdW5jdGlvbnM6OmxlZ2FsRW50aXR5Rm9yKHJlc3VsdCksIGRl
Y29kZWRDaGFyYWN0ZXIpOwotICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgUGFy
c2VyRnVuY3Rpb25zOjpjb252ZXJ0VG9VVEYxNihQYXJzZXJGdW5jdGlvbnM6OmxlZ2FsRW50aXR5
Rm9yKHJlc3VsdCksIGRlY29kZWRDaGFyYWN0ZXIpOworICAgICAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICAgICAgfSBlbHNlIGlmIChQYXJzZXJGdW5jdGlvbnM6OmFjY2VwdE1hbGZv
cm1lZCgpKSB7CisgICAgICAgICAgICAgICAgUGFyc2VyRnVuY3Rpb25zOjpjb252ZXJ0VG9VVEYx
NihQYXJzZXJGdW5jdGlvbnM6OmxlZ2FsRW50aXR5Rm9yKHJlc3VsdCksIGRlY29kZWRDaGFyYWN0
ZXIpOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfSBlbHNlIHsK
ICAgICAgICAgICAgICAgICB1bmNvbnN1bWVDaGFyYWN0ZXJzKHNvdXJjZSwgY29uc3VtZWRDaGFy
YWN0ZXJzKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICB9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTENoYXJhY3RlclJlZmVyZW5jZVBhcnNl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxDaGFyYWN0
ZXJSZWZlcmVuY2VQYXJzZXIuY3BwCShyZXZpc2lvbiAxMDMyMTkpCisrKyBTb3VyY2UvV2ViQ29y
ZS94bWwvcGFyc2VyL1hNTENoYXJhY3RlclJlZmVyZW5jZVBhcnNlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ2LDE3ICs0NiwxNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiB2YWx1ZTsKICAg
ICB9CiAKLSAgICBpbmxpbmUgc3RhdGljIGJvb2wgY29udmVydFRvVVRGMTYoVUNoYXIzMiB2YWx1
ZSwgU3RyaW5nQnVpbGRlciYgZGVjb2RlZENoYXJhY3RlcikKKyAgICBpbmxpbmUgc3RhdGljIHZv
aWQgY29udmVydFRvVVRGMTYoVUNoYXIzMiB2YWx1ZSwgU3RyaW5nQnVpbGRlciYgZGVjb2RlZENo
YXJhY3RlcikKICAgICB7CiAgICAgICAgIGlmIChVX0lTX0JNUCh2YWx1ZSkpIHsKLSAgICAgICAg
VUNoYXIgY2hhcmFjdGVyID0gc3RhdGljX2Nhc3Q8VUNoYXI+KHZhbHVlKTsKLSAgICAgICAgQVNT
RVJUKGNoYXJhY3RlciA9PSB2YWx1ZSk7Ci0gICAgICAgIGRlY29kZWRDaGFyYWN0ZXIuYXBwZW5k
KGNoYXJhY3Rlcik7Ci0gICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgVUNoYXIgY2hh
cmFjdGVyID0gc3RhdGljX2Nhc3Q8VUNoYXI+KHZhbHVlKTsKKyAgICAgICAgICAgIEFTU0VSVChj
aGFyYWN0ZXIgPT0gdmFsdWUpOworICAgICAgICAgICAgZGVjb2RlZENoYXJhY3Rlci5hcHBlbmQo
Y2hhcmFjdGVyKTsKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBkZWNv
ZGVkQ2hhcmFjdGVyLmFwcGVuZChVMTZfTEVBRCh2YWx1ZSkpOwogICAgICAgICBkZWNvZGVkQ2hh
cmFjdGVyLmFwcGVuZChVMTZfVFJBSUwodmFsdWUpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQogCiAgICAgaW5saW5lIHN0YXRpYyBib29sIGFjY2VwdE1hbGZvcm1lZCgpIHsgcmV0dXJu
IGZhbHNlOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTFRyZWVCdWlsZGVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTFRyZWVCdWls
ZGVyLmNwcAkocmV2aXNpb24gMTAzMjE5KQorKysgU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9Y
TUxUcmVlQnVpbGRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDkgQEAKICNpbmNs
dWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgiCiAjaW5j
bHVkZSAiRnJhbWUuaCIKKy8vIEZJWE1FOiBXaHkgYXJlIHdlIGluY2x1ZGluZyBIVE1MIGVudGl0
eSBpbmZvcm1hdGlvbiBpbiB0aGUgWE1MIHBhcnNlcj8KICNpbmNsdWRlICJIVE1MRW50aXR5U2Vh
cmNoLmgiCisjaW5jbHVkZSAiSFRNTEVudGl0eVRhYmxlLmgiCiAjaW5jbHVkZSAiTmV3WE1MRG9j
dW1lbnRQYXJzZXIuaCIKICNpbmNsdWRlICJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCIKICNpbmNs
dWRlICJTY3JpcHRFbGVtZW50LmgiCkBAIC0zNzAsOSArMzcyLDE5IEBAIHZvaWQgWE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NIVE1MRW50aXR5KGMKICAgICAgICAgfQogICAgIH0KICAgICBzZWFyY2gu
YWR2YW5jZSgnOycpOwotICAgIFVDaGFyMzIgZW50aXR5VmFsdWUgPSBzZWFyY2guY3VycmVudFZh
bHVlKCk7CisgICAgaWYgKCFzZWFyY2guaXNFbnRpdHlQcmVmaXgoKSkgeworICAgICAgICBtX3Bh
cnNlci0+c3RvcFBhcnNpbmcoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBVQ2hhcjMy
IGVudGl0eVZhbHVlID0gc2VhcmNoLm1vc3RSZWNlbnRNYXRjaCgpLT5maXJzdFZhbHVlOworICAg
IC8vIEZJWE1FOiBXZSBuZWVkIHRvIGFjY291bnQgZm9yIHNlY29uZFZhbHVlIGlmIGFueSBYTUwg
ZW50aXRpZXMgYXJlIGxvbmdlcgorICAgIC8vIHRoYW4gb25lIHVuaWNvZGUgY2hhcmFjdGVyLgor
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIC8vIERhcmluIEFkbGVyIHdyaXRlczoKKyAg
ICAvLyAgIFlvdSBjYW4gc2VlIGdpdmVuIHRoZSBjb2RlIGFib3ZlIHRoYXQgdGhpcyBlbHNlIGlz
IGRlYWQgY29kZS4gVGhpcyBjb2RlIGlzIGluIGEgc3RyYW5nZSBzdGF0ZS4KKyAgICAvLyAgIEFu
ZCB0aGUgcmVpbnRlcnByZXRfY2FzdCB0byBVQ2hhciogbWFrZXMgdGhlIGNvZGUgbGl0dGxlLWVu
ZGlhbi1zcGVjaWZpYy4gVGhhdCBpcyBub3QgZ29vZCEKICAgICBpZiAoZW50aXR5VmFsdWUgPD0g
MHhGRkZGKQotICAgICAgIGFwcGVuZFRvVGV4dChyZWludGVycHJldF9jYXN0PFVDaGFyKj4oJmVu
dGl0eVZhbHVlKSwgMSk7CisgICAgICAgIGFwcGVuZFRvVGV4dChyZWludGVycHJldF9jYXN0PFVD
aGFyKj4oJmVudGl0eVZhbHVlKSwgMSk7CiAgICAgZWxzZSB7CiAgICAgICAgIFVDaGFyIHV0ZjE2
UGFpclsyXSA9IHsgVTE2X0xFQUQoZW50aXR5VmFsdWUpLCBVMTZfVFJBSUwoZW50aXR5VmFsdWUp
IH07CiAgICAgICAgIGFwcGVuZFRvVGV4dCh1dGYxNlBhaXIsIDIpOwpJbmRleDogTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNp
b24gMTAzMjE5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMTEtMTItMTggIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4K
KworICAgICAgICBXZWJLaXQgc2hvdWxkIHN1cHBvcnQgSFRNTCBlbnRpdGllcyB0aGF0IGV4cGFu
ZCB0byBtb3JlIHRoYW4gb25lIGNoYXJhY3RlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ4MjYKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBB
ZGxlci4KKworICAgICAgICBTaG93IHRlc3QgcHJvZ3Jlc3Npb24uCisKKyAgICAgICAgKiBodG1s
NWxpYi9ydW5uZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2h0
bWw1bGliL3J1bm5lci1leHBlY3RlZC50eHQ6CisKIDIwMTEtMTItMTggIERhcmluIEFkbGVyICA8
ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeGVkIHNvbWUgdGVzdCBleHBlY3RhdGlvbnMg
dGhlIGJlc3QgSSBjb3VsZCB1c2luZyBteSBMaW9uIG1hY2hpbmUuCkluZGV4OiBMYXlvdXRUZXN0
cy9odG1sNWxpYi9ydW5uZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2h0bWw1bGliL3J1bm5lci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDEwMzIxOSkKKysrIExheW91
dFRlc3RzL2h0bWw1bGliL3J1bm5lci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTM0
NSwxMDMgKzM0NSw4IEBAIEV4cGVjdGVkOgogfCAgICAgICAgICAgICA8Zm9udD4KIHwgICAgICAg
ICAgICAgICBzaXplPSI0IgogfCAgICAgICAgICAgICAgICJYIgotcmVzb3VyY2VzL3Rlc3RzMjQu
ZGF0OgotMQotMgotMwotNAotNQotNgotCi1UZXN0IDEgb2YgOCBpbiByZXNvdXJjZXMvdGVzdHMy
NC5kYXQgZmFpbGVkLiBJbnB1dDoKLTwhRE9DVFlQRSBodG1sPiZOb3RFcXVhbFRpbGRlOwotR290
OgotfCA8IURPQ1RZUEUgaHRtbD4KLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18
ICAgICAiJk5vdEVxdWFsVGlsZGU7IgotRXhwZWN0ZWQ6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8
aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICLiiYLMuCIKLQotVGVzdCAyIG9m
IDggaW4gcmVzb3VyY2VzL3Rlc3RzMjQuZGF0IGZhaWxlZC4gSW5wdXQ6Ci08IURPQ1RZUEUgaHRt
bD4mTm90RXF1YWxUaWxkZTtBCi1Hb3Q6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwg
ICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICImTm90RXF1YWxUaWxkZTtBIgotRXhwZWN0ZWQ6
Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwg
ICAgICLiiYLMuEEiCi0KLVRlc3QgMyBvZiA4IGluIHJlc291cmNlcy90ZXN0czI0LmRhdCBmYWls
ZWQuIElucHV0OgotPCFET0NUWVBFIGh0bWw+JlRoaWNrU3BhY2U7Ci1Hb3Q6Ci18IDwhRE9DVFlQ
RSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICImVGhpY2tT
cGFjZTsiCi1FeHBlY3RlZDoKLXwgPCFET0NUWVBFIGh0bWw+Ci18IDxodG1sPgotfCAgIDxoZWFk
PgotfCAgIDxib2R5PgotfCAgICAgIuKBn+KAiiIKLQotVGVzdCA0IG9mIDggaW4gcmVzb3VyY2Vz
L3Rlc3RzMjQuZGF0IGZhaWxlZC4gSW5wdXQ6Ci08IURPQ1RZUEUgaHRtbD4mVGhpY2tTcGFjZTtB
Ci1Hb3Q6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9k
eT4KLXwgICAgICImVGhpY2tTcGFjZTtBIgotRXhwZWN0ZWQ6Ci18IDwhRE9DVFlQRSBodG1sPgot
fCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICLigZ/igIpBIgorcmVzb3Vy
Y2VzL3Rlc3RzMjQuZGF0OiBQQVNTCiAKLVRlc3QgNSBvZiA4IGluIHJlc291cmNlcy90ZXN0czI0
LmRhdCBmYWlsZWQuIElucHV0OgotPCFET0NUWVBFIGh0bWw+Jk5vdFN1YnNldDsKLUdvdDoKLXwg
PCFET0NUWVBFIGh0bWw+Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAg
IiZOb3RTdWJzZXQ7IgotRXhwZWN0ZWQ6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwg
ICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICLiioLig5IiCi0KLVRlc3QgNiBvZiA4IGluIHJl
c291cmNlcy90ZXN0czI0LmRhdCBmYWlsZWQuIElucHV0OgotPCFET0NUWVBFIGh0bWw+Jk5vdFN1
YnNldDtBCi1Hb3Q6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwg
ICA8Ym9keT4KLXwgICAgICImTm90U3Vic2V0O0EiCi1FeHBlY3RlZDoKLXwgPCFET0NUWVBFIGh0
bWw+Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgIuKKguKDkkEiCiBy
ZXNvdXJjZXMvdGVzdHMyNS5kYXQ6IFBBU1MKIAogcmVzb3VyY2VzL3Rlc3RzMjYuZGF0OiBQQVNT
CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odG1sNWxpYi9ydW5uZXItZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0
bWw1bGliL3J1bm5lci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDEwMzIxOSkKKysrIExheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0bWw1bGliL3J1bm5lci1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTM0NSwxMDMgKzM0NSw4IEBAIEV4cGVjdGVkOgogfCAgICAgICAgICAgICA8
Zm9udD4KIHwgICAgICAgICAgICAgICBzaXplPSI0IgogfCAgICAgICAgICAgICAgICJYIgotcmVz
b3VyY2VzL3Rlc3RzMjQuZGF0OgotMQotMgotMwotNAotNQotNgotCi1UZXN0IDEgb2YgOCBpbiBy
ZXNvdXJjZXMvdGVzdHMyNC5kYXQgZmFpbGVkLiBJbnB1dDoKLTwhRE9DVFlQRSBodG1sPiZOb3RF
cXVhbFRpbGRlOwotR290OgotfCA8IURPQ1RZUEUgaHRtbD4KLXwgPGh0bWw+Ci18ICAgPGhlYWQ+
Ci18ICAgPGJvZHk+Ci18ICAgICAiJk5vdEVxdWFsVGlsZGU7IgotRXhwZWN0ZWQ6Ci18IDwhRE9D
VFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICLiiYLM
uCIKLQotVGVzdCAyIG9mIDggaW4gcmVzb3VyY2VzL3Rlc3RzMjQuZGF0IGZhaWxlZC4gSW5wdXQ6
Ci08IURPQ1RZUEUgaHRtbD4mTm90RXF1YWxUaWxkZTtBCi1Hb3Q6Ci18IDwhRE9DVFlQRSBodG1s
PgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICImTm90RXF1YWxUaWxk
ZTtBIgotRXhwZWN0ZWQ6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4K
LXwgICA8Ym9keT4KLXwgICAgICLiiYLMuEEiCi0KLVRlc3QgMyBvZiA4IGluIHJlc291cmNlcy90
ZXN0czI0LmRhdCBmYWlsZWQuIElucHV0OgotPCFET0NUWVBFIGh0bWw+JlRoaWNrU3BhY2U7Ci1H
b3Q6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4K
LXwgICAgICImVGhpY2tTcGFjZTsiCi1FeHBlY3RlZDoKLXwgPCFET0NUWVBFIGh0bWw+Ci18IDxo
dG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgIuKBn+KAiiIKLQotVGVzdCA0IG9m
IDggaW4gcmVzb3VyY2VzL3Rlc3RzMjQuZGF0IGZhaWxlZC4gSW5wdXQ6Ci08IURPQ1RZUEUgaHRt
bD4mVGhpY2tTcGFjZTtBCi1Hb3Q6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8
aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICImVGhpY2tTcGFjZTtBIgotRXhwZWN0ZWQ6Ci18IDwh
RE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICLi
gZ/igIpBIgorcmVzb3VyY2VzL3Rlc3RzMjQuZGF0OiBQQVNTCiAKLVRlc3QgNSBvZiA4IGluIHJl
c291cmNlcy90ZXN0czI0LmRhdCBmYWlsZWQuIElucHV0OgotPCFET0NUWVBFIGh0bWw+Jk5vdFN1
YnNldDsKLUdvdDoKLXwgPCFET0NUWVBFIGh0bWw+Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAg
IDxib2R5PgotfCAgICAgIiZOb3RTdWJzZXQ7IgotRXhwZWN0ZWQ6Ci18IDwhRE9DVFlQRSBodG1s
PgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICLiioLig5IiCi0KLVRl
c3QgNiBvZiA4IGluIHJlc291cmNlcy90ZXN0czI0LmRhdCBmYWlsZWQuIElucHV0OgotPCFET0NU
WVBFIGh0bWw+Jk5vdFN1YnNldDtBCi1Hb3Q6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4K
LXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICImTm90U3Vic2V0O0EiCi1FeHBlY3RlZDoK
LXwgPCFET0NUWVBFIGh0bWw+Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAg
ICAgIuKKguKDkkEiCiByZXNvdXJjZXMvdGVzdHMyNS5kYXQ6IFBBU1MKIAogcmVzb3VyY2VzL3Rl
c3RzMjYuZGF0OiBQQVNTCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119869</attachid>
            <date>2011-12-19 09:13:46 -0800</date>
            <delta_ts>2011-12-19 10:30:40 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-74826-20111219091345.patch</filename>
            <type>text/plain</type>
            <size>22942</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMzI0MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU1IEBACisyMDExLTEyLTE5ICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgV2ViS2l0IHNob3VsZCBzdXBwb3J0
IEhUTUwgZW50aXRpZXMgdGhhdCBleHBhbmQgdG8gbW9yZSB0aGFuIG9uZSBjaGFyYWN0ZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0ODI2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgVGVzdHM6IGh0bWw1bGli
L3J1bm5lci5odG1sCisKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MRW50aXR5TmFtZXMuaW46
CisgICAgICAgICAgICAtIEFkZCBtaXNzaW5nIEhUTUwgZW50aXRpZXMgZnJvbSBIVE1MNSBzcGVj
LiAgSSdsbCBzb3J0IHRoaXMgZmlsZQorICAgICAgICAgICAgICBpbiBhIGZvbGxvd3VwIHBhdGNo
LiAgKEl0J3Mgbm90IHF1aXRlIHNvcnRlZCBwZXJmZWN0bHkgYW5kCisgICAgICAgICAgICAgIHNv
cnRpbmcgaW4gdGhpcyBwYXRjaCB3b3VsZCBpbnRyb2R1Y2Ugbm9pc2UgaW50byB0aGUgcGF0Y2gu
KQorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxFbnRpdHlQYXJzZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6ZGVjb2RlTmFtZWRFbnRpdHkpOgorICAgICAgICAgICAgLSBjb252ZXJ0VG9VVEYx
NiBhbHdheXMgcmV0dXJucyB0cnVlLCBzbyBtYWtlIGl0IHJldHVybiB2b2lkIGluc3RlYWQuCisg
ICAgICAgICAgICAtIFRlYWNoIHRoZSBlbnRpdHkgcGFyc2UgdGhhdCBzb21lIGVudGl0aWVzIGV4
cGFuZCB0byB0d28gY2hhcmFjdGVycy4KKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MRW50aXR5
UGFyc2VyLmg6CisgICAgICAgICAgICAtIEFkZCBhIHdhcm5pbmcgdGhhdCBkZWNvZGVOYW1lZEVu
dGl0eSBpcyByZWFsbHkgYSBicm9rZW4gQVBJLgorICAgICAgICAgICAgLSBUaGlzIHBhdGNoIGRv
ZXNuJ3QgYWN0dWFsbHkgY2hhbmdlIGFueSBiZWhhdmlvciBvZiB0aGlzIEFQSSwgYnV0CisgICAg
ICAgICAgICAgIGl0IGRvZXMgaWxsdXN0cmF0ZSB0aGF0IHRoZSB0d28gY2FsbGVycyBvZiB0aGlz
IEFQSSAodGhlIHR3byBYTUwKKyAgICAgICAgICAgICAgcGFyc2VycykgcmVhbGx5IG5lZWQgdG8g
bW92ZSBhIG1vcmUgc2Vuc2libGUgQVBJLgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxFbnRp
dHlTZWFyY2guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVudGl0eVNlYXJjaDo6SFRNTEVu
dGl0eVNlYXJjaCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRW50aXR5U2VhcmNoOjphZHZhbmNl
KToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MRW50aXR5U2VhcmNoLmg6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRW50aXR5U2VhcmNoOjpmYWlsKToKKyAgICAgICAgICAgIC0gUmVtb3ZlIHRo
ZSBjb25jZXB0IG9mIGN1cnJlbnRWYWx1ZS4gIFRoaXMgaXNuJ3QgcmVhbGx5IHVzZWQgZm9yCisg
ICAgICAgICAgICAgIGFueXRoaW5nIGFuZCBjb25mbGljdHMgd2l0aCB0aGUgaWRlYSB0aGF0IGVu
dGl0aWVzIGNhbiBleHBhbmQKKyAgICAgICAgICAgICAgdG8gbW9yZSB0aGFuIG9uZSBjaGFyYWN0
ZXIuCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTEVudGl0eVRhYmxlLmg6CisgICAgICAgICAg
ICAtIEFkZCBzdG9yYWdlIGZvciB0d28gVUNoYXIzMiB2YWx1ZXMgcGVyIGVudGl0eS4KKyAgICAg
ICAgKiBodG1sL3BhcnNlci9jcmVhdGUtaHRtbC1lbnRpdHktdGFibGU6CisgICAgICAgIChjb252
ZXJ0X3ZhbHVlX3RvX2ludCk6CisgICAgICAgICAgICAtIFRlYWNoIHRoaXMgc2NyaXB0IHRvIGhh
bmRsZSBlbnRpdGllcyB0aGF0IGV4cGFuZCB0byBtdWx0aXBsZQorICAgICAgICAgICAgICBVbmlj
b2RlIGNoYXJhY3RlcnMuCisgICAgICAgICogeG1sL3BhcnNlci9DaGFyYWN0ZXJSZWZlcmVuY2VQ
YXJzZXJJbmxpbmVNZXRob2RzLmg6CisgICAgICAgIChXZWJDb3JlOjpjb25zdW1lQ2hhcmFjdGVy
UmVmZXJlbmNlKToKKyAgICAgICAgICAgIC0gVXBkYXRlIHRoaXMgZnVuY3Rpb24gbm93IHRoYXQg
Y29udmVydFRvVVRGMTYgcmV0dXJucyB2b2lkLgorICAgICAgICAqIHhtbC9wYXJzZXIvWE1MQ2hh
cmFjdGVyUmVmZXJlbmNlUGFyc2VyLmNwcDoKKyAgICAgICAgICAgIC0gVGhlIFhNTCB2ZXJzaW9u
IG9mIGNvbnZlcnRUb1VURjE2IGFsc28gbmVlZHMgdG8gcmV0dXJuIHZvaWQgdG8KKyAgICAgICAg
ICAgICAgbWF0Y2ggdGhlIEhUTUwgc2lnbmF0dXJlLiAgKEl0IHVzZWQgdG8gcmV0dXJuIHRydWUg
YWxsIHRoZSB0aW1lCisgICAgICAgICAgICAgIGFzIHdlbGwuKQorICAgICAgICAqIHhtbC9wYXJz
ZXIvWE1MVHJlZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MVHJlZUJ1aWxkZXI6
OnByb2Nlc3NIVE1MRW50aXR5KToKKyAgICAgICAgICAgIC0gVXBkYXRlIHRoaXMgY2FsbGVyIHVz
ZSBsZWZ0VmFsdWUgaW5zdGVhZCBvZiB2YWx1ZS4gIE15IHNlbnNlIGlzCisgICAgICAgICAgICAg
IHRoYXQgdGhpcyBjb2RlIGlzIG1vZGVyYXRlbHkgYnJva2VuIHRvZGF5IGJlY2F1c2UgaXQncyB1
c2luZyBIVE1MCisgICAgICAgICAgICAgIGVudGl0aWVzIGluIHBhcnNpbmcgWE1MLiAgSSd2ZSBh
ZGRlZCBhIEZJWE1FLiAgVGhpcyBjb2RlIGlzCisgICAgICAgICAgICAgIGRpc2FibGVkIGluIGFs
bCBidWlsZHMsIHNvIEkgZG9uJ3QgZmVlbCBhIGJpZyBuZWVkIHRvIGZpeCB0aGlzCisgICAgICAg
ICAgICAgIGlzc3VlIGluIHRoaXMgcGF0Y2guICBXZSBzaG91bGQgZWl0aGVyIGZpbmlzaCB0aGlz
IHByb2plY3Qgb3IKKyAgICAgICAgICAgICAgZGVsZXRlIHRoaXMgY29tcGxleGl0eSBmcm9tIHRo
ZSBwcm9qZWN0LgorCiAyMDExLTEyLTE5ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBw
bGUuY29tPgogCiAgICAgICAgIEVuYWJsZSA8dHJhY2s+IGZvciBNYWMgYnVpbGQKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbnRpdHlOYW1lcy5pbgo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRW50aXR5TmFtZXMuaW4JKHJldmlzaW9u
IDEwMzI0MCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbnRpdHlOYW1lcy5p
bgkod29ya2luZyBjb3B5KQpAQCAtMTgxNCw4ICsxODE0LDggQEAKICJzaGN5OyIsIlUrMDA0NDgi
CiAic2hvcnRtaWQ7IiwiVSswMjIyMyIKICJzaG9ydHBhcmFsbGVsOyIsIlUrMDIyMjUiCi0ic2h5
OyIsIlUrMDAwQUQgICIKLSJzaHkiLCJVKzAwMEFEICIKKyJzaHk7IiwiVSswMDBBRCIKKyJzaHki
LCJVKzAwMEFEIgogInNpZ21hOyIsIlUrMDAzQzMiCiAic2lnbWFmOyIsIlUrMDAzQzIiCiAic2ln
bWF2OyIsIlUrMDAzQzIiCkBAIC0yMTM2LDMgKzIxMzYsOTYgQEAKICJ6c2NyOyIsIlUrMUQ0Q0Yi
CiAiendqOyIsIlUrMDIwMEQiCiAienduajsiLCJVKzAyMDBDIgorImFjRTsiLCJVKzAyMjNFIFUr
MDAzMzMiCisiYm5lOyIsIlUrMDAwM0QgVSswMjBFNSIKKyJibmVxdWl2OyIsIlUrMDIyNjEgVSsw
MjBFNSIKKyJjYXBzOyIsIlUrMDIyMjkgVSswRkUwMCIKKyJjdXBzOyIsIlUrMDIyMkEgVSswRkUw
MCIKKyJmamxpZzsiLCJVKzAwMDY2IFUrMDAwNkEiCisiZ2VzbDsiLCJVKzAyMkRCIFUrMEZFMDAi
CisiZ3ZlcnRuZXFxOyIsIlUrMDIyNjkgVSswRkUwMCIKKyJndm5FOyIsIlUrMDIyNjkgVSswRkUw
MCIKKyJsYXRlczsiLCJVKzAyQUFEIFUrMEZFMDAiCisibGVzZzsiLCJVKzAyMkRBIFUrMEZFMDAi
CisibHZlcnRuZXFxOyIsIlUrMDIyNjggVSswRkUwMCIKKyJsdm5FOyIsIlUrMDIyNjggVSswRkUw
MCIKKyJuYW5nOyIsIlUrMDIyMjAgVSswMjBEMiIKKyJuYXBFOyIsIlUrMDJBNzAgVSswMDMzOCIK
KyJuYXBpZDsiLCJVKzAyMjRCIFUrMDAzMzgiCisibmJ1bXA7IiwiVSswMjI0RSBVKzAwMzM4Igor
Im5idW1wZTsiLCJVKzAyMjRGIFUrMDAzMzgiCisibmNvbmdkb3Q7IiwiVSswMkE2RCBVKzAwMzM4
IgorIm5lZG90OyIsIlUrMDIyNTAgVSswMDMzOCIKKyJuZXNpbTsiLCJVKzAyMjQyIFUrMDAzMzgi
CisibmdFOyIsIlUrMDIyNjcgVSswMDMzOCIKKyJuZ2VxcTsiLCJVKzAyMjY3IFUrMDAzMzgiCisi
bmdlcXNsYW50OyIsIlUrMDJBN0UgVSswMDMzOCIKKyJuZ2VzOyIsIlUrMDJBN0UgVSswMDMzOCIK
KyJuR2c7IiwiVSswMjJEOSBVKzAwMzM4IgorIm5HdDsiLCJVKzAyMjZCIFUrMDIwRDIiCisibkd0
djsiLCJVKzAyMjZCIFUrMDAzMzgiCisibmxFOyIsIlUrMDIyNjYgVSswMDMzOCIKKyJubGVxcTsi
LCJVKzAyMjY2IFUrMDAzMzgiCisibmxlcXNsYW50OyIsIlUrMDJBN0QgVSswMDMzOCIKKyJubGVz
OyIsIlUrMDJBN0QgVSswMDMzOCIKKyJuTGw7IiwiVSswMjJEOCBVKzAwMzM4IgorIm5MdDsiLCJV
KzAyMjZBIFUrMDIwRDIiCisibkx0djsiLCJVKzAyMjZBIFUrMDAzMzgiCisiTm90RXF1YWxUaWxk
ZTsiLCJVKzAyMjQyIFUrMDAzMzgiCisiTm90R3JlYXRlckZ1bGxFcXVhbDsiLCJVKzAyMjY3IFUr
MDAzMzgiCisiTm90R3JlYXRlckdyZWF0ZXI7IiwiVSswMjI2QiBVKzAwMzM4IgorIk5vdEdyZWF0
ZXJTbGFudEVxdWFsOyIsIlUrMDJBN0UgVSswMDMzOCIKKyJOb3RIdW1wRG93bkh1bXA7IiwiVSsw
MjI0RSBVKzAwMzM4IgorIk5vdEh1bXBFcXVhbDsiLCJVKzAyMjRGIFUrMDAzMzgiCisibm90aW5k
b3Q7IiwiVSswMjJGNSBVKzAwMzM4IgorIm5vdGluRTsiLCJVKzAyMkY5IFUrMDAzMzgiCisiTm90
TGVmdFRyaWFuZ2xlQmFyOyIsIlUrMDI5Q0YgVSswMDMzOCIKKyJOb3RMZXNzTGVzczsiLCJVKzAy
MjZBIFUrMDAzMzgiCisiTm90TGVzc1NsYW50RXF1YWw7IiwiVSswMkE3RCBVKzAwMzM4IgorIk5v
dE5lc3RlZEdyZWF0ZXJHcmVhdGVyOyIsIlUrMDJBQTIgVSswMDMzOCIKKyJOb3ROZXN0ZWRMZXNz
TGVzczsiLCJVKzAyQUExIFUrMDAzMzgiCisiTm90UHJlY2VkZXNFcXVhbDsiLCJVKzAyQUFGIFUr
MDAzMzgiCisiTm90UmlnaHRUcmlhbmdsZUJhcjsiLCJVKzAyOUQwIFUrMDAzMzgiCisiTm90U3F1
YXJlU3Vic2V0OyIsIlUrMDIyOEYgVSswMDMzOCIKKyJOb3RTcXVhcmVTdXBlcnNldDsiLCJVKzAy
MjkwIFUrMDAzMzgiCisiTm90U3Vic2V0OyIsIlUrMDIyODIgVSswMjBEMiIKKyJOb3RTdWNjZWVk
c0VxdWFsOyIsIlUrMDJBQjAgVSswMDMzOCIKKyJOb3RTdWNjZWVkc1RpbGRlOyIsIlUrMDIyN0Yg
VSswMDMzOCIKKyJOb3RTdXBlcnNldDsiLCJVKzAyMjgzIFUrMDIwRDIiCisibnBhcnNsOyIsIlUr
MDJBRkQgVSswMjBFNSIKKyJucGFydDsiLCJVKzAyMjAyIFUrMDAzMzgiCisibnByZTsiLCJVKzAy
QUFGIFUrMDAzMzgiCisibnByZWNlcTsiLCJVKzAyQUFGIFUrMDAzMzgiCisibnJhcnJjOyIsIlUr
MDI5MzMgVSswMDMzOCIKKyJucmFycnc7IiwiVSswMjE5RCBVKzAwMzM4IgorIm5zY2U7IiwiVSsw
MkFCMCBVKzAwMzM4IgorIm5zdWJFOyIsIlUrMDJBQzUgVSswMDMzOCIKKyJuc3Vic2V0OyIsIlUr
MDIyODIgVSswMjBEMiIKKyJuc3Vic2V0ZXFxOyIsIlUrMDJBQzUgVSswMDMzOCIKKyJuc3VjY2Vx
OyIsIlUrMDJBQjAgVSswMDMzOCIKKyJuc3VwRTsiLCJVKzAyQUM2IFUrMDAzMzgiCisibnN1cHNl
dDsiLCJVKzAyMjgzIFUrMDIwRDIiCisibnN1cHNldGVxcTsiLCJVKzAyQUM2IFUrMDAzMzgiCisi
bnZhcDsiLCJVKzAyMjREIFUrMDIwRDIiCisibnZnZTsiLCJVKzAyMjY1IFUrMDIwRDIiCisibnZn
dDsiLCJVKzAwMDNFIFUrMDIwRDIiCisibnZsZTsiLCJVKzAyMjY0IFUrMDIwRDIiCisibnZsdDsi
LCJVKzAwMDNDIFUrMDIwRDIiCisibnZsdHJpZTsiLCJVKzAyMkI0IFUrMDIwRDIiCisibnZydHJp
ZTsiLCJVKzAyMkI1IFUrMDIwRDIiCisibnZzaW07IiwiVSswMjIzQyBVKzAyMEQyIgorInJhY2U7
IiwiVSswMjIzRCBVKzAwMzMxIgorInNtdGVzOyIsIlUrMDJBQUMgVSswRkUwMCIKKyJzcWNhcHM7
IiwiVSswMjI5MyBVKzBGRTAwIgorInNxY3VwczsiLCJVKzAyMjk0IFUrMEZFMDAiCisiVGhpY2tT
cGFjZTsiLCJVKzAyMDVGIFUrMDIwMEEiCisidmFyc3Vic2V0bmVxOyIsIlUrMDIyOEEgVSswRkUw
MCIKKyJ2YXJzdWJzZXRuZXFxOyIsIlUrMDJBQ0IgVSswRkUwMCIKKyJ2YXJzdXBzZXRuZXE7Iiwi
VSswMjI4QiBVKzBGRTAwIgorInZhcnN1cHNldG5lcXE7IiwiVSswMkFDQyBVKzBGRTAwIgorInZu
c3ViOyIsIlUrMDIyODIgVSswMjBEMiIKKyJ2bnN1cDsiLCJVKzAyMjgzIFUrMDIwRDIiCisidnN1
Ym5FOyIsIlUrMDJBQ0IgVSswRkUwMCIKKyJ2c3VibmU7IiwiVSswMjI4QSBVKzBGRTAwIgorInZz
dXBuRTsiLCJVKzAyQUNDIFUrMEZFMDAiCisidnN1cG5lOyIsIlUrMDIyOEIgVSswRkUwMCIKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbnRpdHlQYXJzZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbnRpdHlQYXJzZXIuY3Bw
CShyZXZpc2lvbiAxMDMyNDApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRW50
aXR5UGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzAsMTcgKzcwLDE2IEBAIHB1YmxpYzoK
ICAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgIH0KIAotICAgIGlubGluZSBzdGF0aWMgYm9vbCBj
b252ZXJ0VG9VVEYxNihVQ2hhcjMyIHZhbHVlLCBTdHJpbmdCdWlsZGVyJiBkZWNvZGVkRW50aXR5
KQorICAgIGlubGluZSBzdGF0aWMgdm9pZCBjb252ZXJ0VG9VVEYxNihVQ2hhcjMyIHZhbHVlLCBT
dHJpbmdCdWlsZGVyJiBkZWNvZGVkRW50aXR5KQogICAgIHsKICAgICAgICAgaWYgKFVfSVNfQk1Q
KHZhbHVlKSkgewogICAgICAgICAgICAgVUNoYXIgY2hhcmFjdGVyID0gc3RhdGljX2Nhc3Q8VUNo
YXI+KHZhbHVlKTsKICAgICAgICAgICAgIEFTU0VSVChjaGFyYWN0ZXIgPT0gdmFsdWUpOwogICAg
ICAgICAgICAgZGVjb2RlZEVudGl0eS5hcHBlbmQoY2hhcmFjdGVyKTsKLSAgICAgICAgICAgIHJl
dHVybiB0cnVlOworICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGRlY29k
ZWRFbnRpdHkuYXBwZW5kKFUxNl9MRUFEKHZhbHVlKSk7CiAgICAgICAgIGRlY29kZWRFbnRpdHku
YXBwZW5kKFUxNl9UUkFJTCh2YWx1ZSkpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAK
ICAgICBpbmxpbmUgc3RhdGljIGJvb2wgYWNjZXB0TWFsZm9ybWVkKCkgeyByZXR1cm4gdHJ1ZTsg
fQpAQCAtMTA1LDcgKzEwNCw2IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgfQogICAgICAgICBpZiAoIWVudGl0eVNlYXJjaC5tb3N0UmVjZW50TWF0Y2goKSkg
ewotICAgICAgICAgICAgQVNTRVJUKCFlbnRpdHlTZWFyY2guY3VycmVudFZhbHVlKCkpOwogICAg
ICAgICAgICAgdW5jb25zdW1lQ2hhcmFjdGVycyhzb3VyY2UsIGNvbnN1bWVkQ2hhcmFjdGVycyk7
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KQEAgLTEyOSw3ICsxMjcsMTAg
QEAgcHVibGljOgogICAgICAgICBpZiAoZW50aXR5U2VhcmNoLm1vc3RSZWNlbnRNYXRjaCgpLT5s
YXN0Q2hhcmFjdGVyKCkgPT0gJzsnCiAgICAgICAgICAgICB8fCAhYWRkaXRpb25hbEFsbG93ZWRD
aGFyYWN0ZXIKICAgICAgICAgICAgIHx8ICEoaXNBbHBoYU51bWVyaWMoY2MpIHx8IGNjID09ICc9
JykpIHsKLSAgICAgICAgICAgIHJldHVybiBjb252ZXJ0VG9VVEYxNihlbnRpdHlTZWFyY2gubW9z
dFJlY2VudE1hdGNoKCktPnZhbHVlLCBkZWNvZGVkRW50aXR5KTsKKyAgICAgICAgICAgIGNvbnZl
cnRUb1VURjE2KGVudGl0eVNlYXJjaC5tb3N0UmVjZW50TWF0Y2goKS0+Zmlyc3RWYWx1ZSwgZGVj
b2RlZEVudGl0eSk7CisgICAgICAgICAgICBpZiAoZW50aXR5U2VhcmNoLm1vc3RSZWNlbnRNYXRj
aCgpLT5zZWNvbmRWYWx1ZSkKKyAgICAgICAgICAgICAgICBjb252ZXJ0VG9VVEYxNihlbnRpdHlT
ZWFyY2gubW9zdFJlY2VudE1hdGNoKCktPnNlY29uZFZhbHVlLCBkZWNvZGVkRW50aXR5KTsKKyAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAgIHVuY29uc3VtZUNoYXJh
Y3RlcnMoc291cmNlLCBjb25zdW1lZENoYXJhY3RlcnMpOwogICAgICAgICByZXR1cm4gZmFsc2U7
CkBAIC0xMzgsNyArMTM5LDYgQEAgcHVibGljOgogCiB9CiAKLQogYm9vbCBjb25zdW1lSFRNTEVu
dGl0eShTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgU3RyaW5nQnVpbGRlciYgZGVjb2RlZEVudGl0
eSwgYm9vbCYgbm90RW5vdWdoQ2hhcmFjdGVycywgVUNoYXIgYWRkaXRpb25hbEFsbG93ZWRDaGFy
YWN0ZXIpCiB7CiAgICAgcmV0dXJuIGNvbnN1bWVDaGFyYWN0ZXJSZWZlcmVuY2U8SFRNTEVudGl0
eVBhcnNlcj4oc291cmNlLCBkZWNvZGVkRW50aXR5LCBub3RFbm91Z2hDaGFyYWN0ZXJzLCBhZGRp
dGlvbmFsQWxsb3dlZENoYXJhY3Rlcik7CkBAIC0xNTMsMTQgKzE1MywxNiBAQCBVQ2hhciBkZWNv
ZGVOYW1lZEVudGl0eShjb25zdCBjaGFyKiBuYW1lCiAgICAgICAgICAgICByZXR1cm4gMDsKICAg
ICB9CiAgICAgc2VhcmNoLmFkdmFuY2UoJzsnKTsKLSAgICBVQ2hhcjMyIGVudGl0eVZhbHVlID0g
c2VhcmNoLmN1cnJlbnRWYWx1ZSgpOwotICAgIGlmIChVMTZfTEVOR1RIKGVudGl0eVZhbHVlKSAh
PSAxKSB7Ci0gICAgICAgIC8vIENhbGxlcnMgbmVlZCB0byBtb3ZlIG9mZiB0aGlzIEFQSSBpZiB0
aGUgZW50aXR5IHRhYmxlIGhhcyB2YWx1ZXMKLSAgICAgICAgLy8gd2hpY2ggZG8gbm8gZml0IGlu
IGEgMTYgYml0IFVDaGFyIQotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBpZiAo
IXNlYXJjaC5pc0VudGl0eVByZWZpeCgpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIFVDaGFy
MzIgZmlyc3RWYWx1ZSA9IHNlYXJjaC5tb3N0UmVjZW50TWF0Y2goKS0+Zmlyc3RWYWx1ZTsKKyAg
ICBpZiAoVTE2X0xFTkdUSChmaXJzdFZhbHVlKSAhPSAxIHx8IHNlYXJjaC5tb3N0UmVjZW50TWF0
Y2goKS0+c2Vjb25kVmFsdWUpIHsKKyAgICAgICAgLy8gRklYTUU6IENhbGxlcnMgbmVlZCB0byBt
b3ZlIG9mZiB0aGlzIEFQSS4gTm90IGFsbCBlbnRpdGllcyBjYW4gYmUKKyAgICAgICAgLy8gcmVw
cmVzZW50ZWQgaW4gYSBzaW5nbGUgVUNoYXIhCiAgICAgICAgIHJldHVybiAwOwogICAgIH0KLSAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8VUNoYXI+KGVudGl0eVZhbHVlKTsKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8VUNoYXI+KGZpcnN0VmFsdWUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRW50aXR5UGFyc2VyLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVudGl0eVBhcnNlci5o
CShyZXZpc2lvbiAxMDMyNDApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRW50
aXR5UGFyc2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogYm9vbCBjb25zdW1lSFRNTEVudGl0eShTZWdtZW50ZWRTdHJpbmcmLCBTdHJpbmdC
dWlsZGVyJiBkZWNvZGVkRW50aXR5LCBib29sJiBub3RFbm91Z2hDaGFyYWN0ZXJzLCBVQ2hhciBh
ZGRpdGlvbmFsQWxsb3dlZENoYXJhY3RlciA9ICdcMCcpOwogCiAvLyBVc2VkIGJ5IHRoZSBYTUwg
cGFyc2VyLiAgTm90IHN1aXRhYmxlIGZvciB1c2UgaW4gSFRNTCBwYXJzaW5nLiAgVXNlIGNvbnN1
bWVIVE1MRW50aXR5IGluc3RlYWQuCisvLyBGSVhNRTogTW92ZSB0aGUgWE1MIHBhcnNlciB0byBh
biBlbnRpdHkgZGVjb2RpbmcgZnVuY3Rpb24gd29ya3MgZm9yIG5vbi1CTVAgY2hhcmFjdGVycyEK
IFVDaGFyIGRlY29kZU5hbWVkRW50aXR5KGNvbnN0IGNoYXIqKTsKIAogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVudGl0eVNlYXJjaC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVudGl0eVNlYXJjaC5jcHAJKHJldmlzaW9u
IDEwMzI0MCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbnRpdHlTZWFyY2gu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MSw3ICs0MSw2IEBAIGNvbnN0IEhUTUxFbnRpdHlUYWJs
ZUVudHJ5KiBoYWxmd2F5KGNvbnMKICAgICAKIEhUTUxFbnRpdHlTZWFyY2g6OkhUTUxFbnRpdHlT
ZWFyY2goKQogICAgIDogbV9jdXJyZW50TGVuZ3RoKDApCi0gICAgLCBtX2N1cnJlbnRWYWx1ZSgw
KQogICAgICwgbV9tb3N0UmVjZW50TWF0Y2goMCkKICAgICAsIG1fZmlyc3QoSFRNTEVudGl0eVRh
YmxlOjpmaXJzdEVudHJ5KCkpCiAgICAgLCBtX2xhc3QoSFRNTEVudGl0eVRhYmxlOjpsYXN0RW50
cnkoKSkKQEAgLTEyNCwxMSArMTIzLDkgQEAgdm9pZCBIVE1MRW50aXR5U2VhcmNoOjphZHZhbmNl
KFVDaGFyIG5leAogICAgIH0KICAgICArK21fY3VycmVudExlbmd0aDsKICAgICBpZiAobV9maXJz
dC0+bGVuZ3RoICE9IG1fY3VycmVudExlbmd0aCkgewotICAgICAgICBtX2N1cnJlbnRWYWx1ZSA9
IDA7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgbV9tb3N0UmVjZW50TWF0Y2ggPSBtX2Zp
cnN0OwotICAgIG1fY3VycmVudFZhbHVlID0gbV9tb3N0UmVjZW50TWF0Y2gtPnZhbHVlOwogfQog
CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRW50aXR5U2VhcmNoLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVudGl0eVNlYXJj
aC5oCShyZXZpc2lvbiAxMDMyNDApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
RW50aXR5U2VhcmNoLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDYgQEAgcHVibGljOgog
ICAgIHZvaWQgYWR2YW5jZShVQ2hhcik7CiAKICAgICBib29sIGlzRW50aXR5UHJlZml4KCkgY29u
c3QgeyByZXR1cm4gISFtX2ZpcnN0OyB9Ci0gICAgVUNoYXIzMiBjdXJyZW50VmFsdWUoKSBjb25z
dCB7IHJldHVybiBtX2N1cnJlbnRWYWx1ZTsgfQogICAgIGludCBjdXJyZW50TGVuZ3RoKCkgY29u
c3QgeyByZXR1cm4gbV9jdXJyZW50TGVuZ3RoOyB9CiAKICAgICBjb25zdCBIVE1MRW50aXR5VGFi
bGVFbnRyeSogbW9zdFJlY2VudE1hdGNoKCkgY29uc3QgeyByZXR1cm4gbV9tb3N0UmVjZW50TWF0
Y2g7IH0KQEAgLTU3LDEzICs1NiwxMSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBmYWlsKCkKICAg
ICB7Ci0gICAgICAgIG1fY3VycmVudFZhbHVlID0gMDsKICAgICAgICAgbV9maXJzdCA9IDA7CiAg
ICAgICAgIG1fbGFzdCA9IDA7CiAgICAgfQogCiAgICAgaW50IG1fY3VycmVudExlbmd0aDsKLSAg
ICBVQ2hhcjMyIG1fY3VycmVudFZhbHVlOwogCiAgICAgY29uc3QgSFRNTEVudGl0eVRhYmxlRW50
cnkqIG1fbW9zdFJlY2VudE1hdGNoOwogICAgIGNvbnN0IEhUTUxFbnRpdHlUYWJsZUVudHJ5KiBt
X2ZpcnN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVudGl0eVRhYmxl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVudGl0eVRh
YmxlLmgJKHJldmlzaW9uIDEwMzI0MCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxFbnRpdHlUYWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw4IEBAIHN0cnVjdCBI
VE1MRW50aXR5VGFibGVFbnRyeSB7CiAKICAgICBjb25zdCBVQ2hhciogZW50aXR5OwogICAgIGlu
dCBsZW5ndGg7Ci0gICAgVUNoYXIzMiB2YWx1ZTsKKyAgICBVQ2hhcjMyIGZpcnN0VmFsdWU7Cisg
ICAgVUNoYXIzMiBzZWNvbmRWYWx1ZTsKIH07CiAKIGNsYXNzIEhUTUxFbnRpdHlUYWJsZSB7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9jcmVhdGUtaHRtbC1lbnRpdHktdGFibGUK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvY3JlYXRlLWh0bWwtZW50
aXR5LXRhYmxlCShyZXZpc2lvbiAxMDMyNDApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9jcmVhdGUtaHRtbC1lbnRpdHktdGFibGUJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYgKzQ3LDgg
QEAgZGVmIGNvbnZlcnRfZW50aXR5X3RvX3VjaGFyX2FycmF5KGVudGl0eQogCiAKIGRlZiBjb252
ZXJ0X3ZhbHVlX3RvX2ludCh2YWx1ZSk6CisgICAgaWYgbm90IHZhbHVlOgorICAgICAgICByZXR1
cm4gIjAiOwogICAgIGFzc2VydCh2YWx1ZVswXSA9PSAiVSIpCiAgICAgYXNzZXJ0KHZhbHVlWzFd
ID09ICIrIikKICAgICByZXR1cm4gIjB4IiArIHZhbHVlWzI6XQpAQCAtMTI0LDEwICsxMjYsMTMg
QEAgZm9yIGVudHJ5IGluIGVudHJpZXM6CiAgICAgbGV0dGVyID0gZW50cnlbRU5USVRZXVswXQog
ICAgIGlmIG5vdCBpbmRleC5nZXQobGV0dGVyKToKICAgICAgICAgaW5kZXhbbGV0dGVyXSA9IG9m
ZnNldAotICAgIG91dHB1dF9maWxlLndyaXRlKCcgICAgeyAlcywgJXMsICVzIH0sXG4nICUgKAor
ICAgIHZhbHVlcyA9IGVudHJ5W1ZBTFVFXS5zcGxpdCgnICcpCisgICAgYXNzZXJ0IGxlbih2YWx1
ZXMpIDw9IDIsIHZhbHVlcworICAgIG91dHB1dF9maWxlLndyaXRlKCcgICAgeyAlcywgJXMsICVz
LCAlcyB9LFxuJyAlICgKICAgICAgICAgY29udmVydF9lbnRpdHlfdG9fY3BwX25hbWUoZW50cnlb
RU5USVRZXSksCiAgICAgICAgIGxlbihlbnRyeVtFTlRJVFldKSwKLSAgICAgICAgY29udmVydF92
YWx1ZV90b19pbnQoZW50cnlbVkFMVUVdKSkpCisgICAgICAgIGNvbnZlcnRfdmFsdWVfdG9faW50
KHZhbHVlc1swXSksCisgICAgICAgIGNvbnZlcnRfdmFsdWVfdG9faW50KHZhbHVlc1sxXSBpZiBs
ZW4odmFsdWVzKSA+PSAyIGVsc2UgIiIpKSkKICAgICBvZmZzZXQgKz0gMQogCiBvdXRwdXRfZmls
ZS53cml0ZSgiIiJ9OwpJbmRleDogU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9DaGFyYWN0ZXJS
ZWZlcmVuY2VQYXJzZXJJbmxpbmVNZXRob2RzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUveG1sL3BhcnNlci9DaGFyYWN0ZXJSZWZlcmVuY2VQYXJzZXJJbmxpbmVNZXRob2RzLmgJKHJl
dmlzaW9uIDEwMzI0MCkKKysrIFNvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvQ2hhcmFjdGVyUmVm
ZXJlbmNlUGFyc2VySW5saW5lTWV0aG9kcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjgsMTAgKzEy
OCwxMiBAQCBib29sIGNvbnN1bWVDaGFyYWN0ZXJSZWZlcmVuY2UoU2VnbWVudGVkCiAgICAgICAg
ICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICogMTYgKyAxMCArIGNjIC0gJ0EnOwogICAgICAgICAg
ICAgZWxzZSBpZiAoY2MgPT0gJzsnKSB7CiAgICAgICAgICAgICAgICAgc291cmNlLmFkdmFuY2VB
bmRBU1NFUlQoY2MpOwotICAgICAgICAgICAgICAgIHJldHVybiBQYXJzZXJGdW5jdGlvbnM6OmNv
bnZlcnRUb1VURjE2KFBhcnNlckZ1bmN0aW9uczo6bGVnYWxFbnRpdHlGb3IocmVzdWx0KSwgZGVj
b2RlZENoYXJhY3Rlcik7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKFBhcnNlckZ1bmN0aW9uczo6
YWNjZXB0TWFsZm9ybWVkKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIFBhcnNlckZ1bmN0aW9u
czo6Y29udmVydFRvVVRGMTYoUGFyc2VyRnVuY3Rpb25zOjpsZWdhbEVudGl0eUZvcihyZXN1bHQp
LCBkZWNvZGVkQ2hhcmFjdGVyKTsKLSAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAg
IFBhcnNlckZ1bmN0aW9uczo6Y29udmVydFRvVVRGMTYoUGFyc2VyRnVuY3Rpb25zOjpsZWdhbEVu
dGl0eUZvcihyZXN1bHQpLCBkZWNvZGVkQ2hhcmFjdGVyKTsKKyAgICAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoUGFyc2VyRnVuY3Rpb25zOjphY2NlcHRN
YWxmb3JtZWQoKSkgeworICAgICAgICAgICAgICAgIFBhcnNlckZ1bmN0aW9uczo6Y29udmVydFRv
VVRGMTYoUGFyc2VyRnVuY3Rpb25zOjpsZWdhbEVudGl0eUZvcihyZXN1bHQpLCBkZWNvZGVkQ2hh
cmFjdGVyKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICAgICAgdW5jb25zdW1lQ2hhcmFjdGVycyhzb3VyY2UsIGNvbnN1bWVk
Q2hhcmFjdGVycyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAg
fQpAQCAtMTQyLDEwICsxNDQsMTIgQEAgYm9vbCBjb25zdW1lQ2hhcmFjdGVyUmVmZXJlbmNlKFNl
Z21lbnRlZAogICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAqIDEwICsgY2MgLSAnMCc7
CiAgICAgICAgICAgICBlbHNlIGlmIChjYyA9PSAnOycpIHsKICAgICAgICAgICAgICAgICBzb3Vy
Y2UuYWR2YW5jZUFuZEFTU0VSVChjYyk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFBhcnNlckZ1
bmN0aW9uczo6Y29udmVydFRvVVRGMTYoUGFyc2VyRnVuY3Rpb25zOjpsZWdhbEVudGl0eUZvcihy
ZXN1bHQpLCBkZWNvZGVkQ2hhcmFjdGVyKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoUGFyc2Vy
RnVuY3Rpb25zOjphY2NlcHRNYWxmb3JtZWQoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gUGFy
c2VyRnVuY3Rpb25zOjpjb252ZXJ0VG9VVEYxNihQYXJzZXJGdW5jdGlvbnM6OmxlZ2FsRW50aXR5
Rm9yKHJlc3VsdCksIGRlY29kZWRDaGFyYWN0ZXIpOwotICAgICAgICAgICAgZWxzZSB7CisgICAg
ICAgICAgICAgICAgUGFyc2VyRnVuY3Rpb25zOjpjb252ZXJ0VG9VVEYxNihQYXJzZXJGdW5jdGlv
bnM6OmxlZ2FsRW50aXR5Rm9yKHJlc3VsdCksIGRlY29kZWRDaGFyYWN0ZXIpOworICAgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfSBlbHNlIGlmIChQYXJzZXJGdW5jdGlv
bnM6OmFjY2VwdE1hbGZvcm1lZCgpKSB7CisgICAgICAgICAgICAgICAgUGFyc2VyRnVuY3Rpb25z
Ojpjb252ZXJ0VG9VVEYxNihQYXJzZXJGdW5jdGlvbnM6OmxlZ2FsRW50aXR5Rm9yKHJlc3VsdCks
IGRlY29kZWRDaGFyYWN0ZXIpOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICB1bmNvbnN1bWVDaGFyYWN0ZXJzKHNvdXJj
ZSwgY29uc3VtZWRDaGFyYWN0ZXJzKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTENoYXJhY3Rl
clJlZmVyZW5jZVBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUveG1sL3Bh
cnNlci9YTUxDaGFyYWN0ZXJSZWZlcmVuY2VQYXJzZXIuY3BwCShyZXZpc2lvbiAxMDMyNDApCisr
KyBTb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTENoYXJhY3RlclJlZmVyZW5jZVBhcnNlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDE3ICs0NiwxNiBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiB2YWx1ZTsKICAgICB9CiAKLSAgICBpbmxpbmUgc3RhdGljIGJvb2wgY29udmVydFRvVVRG
MTYoVUNoYXIzMiB2YWx1ZSwgU3RyaW5nQnVpbGRlciYgZGVjb2RlZENoYXJhY3RlcikKKyAgICBp
bmxpbmUgc3RhdGljIHZvaWQgY29udmVydFRvVVRGMTYoVUNoYXIzMiB2YWx1ZSwgU3RyaW5nQnVp
bGRlciYgZGVjb2RlZENoYXJhY3RlcikKICAgICB7CiAgICAgICAgIGlmIChVX0lTX0JNUCh2YWx1
ZSkpIHsKLSAgICAgICAgVUNoYXIgY2hhcmFjdGVyID0gc3RhdGljX2Nhc3Q8VUNoYXI+KHZhbHVl
KTsKLSAgICAgICAgQVNTRVJUKGNoYXJhY3RlciA9PSB2YWx1ZSk7Ci0gICAgICAgIGRlY29kZWRD
aGFyYWN0ZXIuYXBwZW5kKGNoYXJhY3Rlcik7Ci0gICAgICAgIHJldHVybiB0cnVlOworICAgICAg
ICAgICAgVUNoYXIgY2hhcmFjdGVyID0gc3RhdGljX2Nhc3Q8VUNoYXI+KHZhbHVlKTsKKyAgICAg
ICAgICAgIEFTU0VSVChjaGFyYWN0ZXIgPT0gdmFsdWUpOworICAgICAgICAgICAgZGVjb2RlZENo
YXJhY3Rlci5hcHBlbmQoY2hhcmFjdGVyKTsKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQogICAgICAgICBkZWNvZGVkQ2hhcmFjdGVyLmFwcGVuZChVMTZfTEVBRCh2YWx1ZSkpOwogICAg
ICAgICBkZWNvZGVkQ2hhcmFjdGVyLmFwcGVuZChVMTZfVFJBSUwodmFsdWUpKTsKLSAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQogCiAgICAgaW5saW5lIHN0YXRpYyBib29sIGFjY2VwdE1hbGZv
cm1lZCgpIHsgcmV0dXJuIGZhbHNlOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS94bWwvcGFyc2Vy
L1hNTFRyZWVCdWlsZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS94bWwvcGFy
c2VyL1hNTFRyZWVCdWlsZGVyLmNwcAkocmV2aXNpb24gMTAzMjQwKQorKysgU291cmNlL1dlYkNv
cmUveG1sL3BhcnNlci9YTUxUcmVlQnVpbGRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcg
KzMzLDkgQEAKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnRUeXBlLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKy8vIEZJWE1FOiBXaHkgYXJlIHdlIGluY2x1
ZGluZyBIVE1MIGVudGl0eSBpbmZvcm1hdGlvbiBpbiB0aGUgWE1MIHBhcnNlcj8KICNpbmNsdWRl
ICJIVE1MRW50aXR5U2VhcmNoLmgiCisjaW5jbHVkZSAiSFRNTEVudGl0eVRhYmxlLmgiCiAjaW5j
bHVkZSAiTmV3WE1MRG9jdW1lbnRQYXJzZXIuaCIKICNpbmNsdWRlICJQcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24uaCIKICNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCkBAIC0zNzAsOSArMzcyLDE5IEBA
IHZvaWQgWE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NIVE1MRW50aXR5KGMKICAgICAgICAgfQogICAg
IH0KICAgICBzZWFyY2guYWR2YW5jZSgnOycpOwotICAgIFVDaGFyMzIgZW50aXR5VmFsdWUgPSBz
ZWFyY2guY3VycmVudFZhbHVlKCk7CisgICAgaWYgKCFzZWFyY2guaXNFbnRpdHlQcmVmaXgoKSkg
eworICAgICAgICBtX3BhcnNlci0+c3RvcFBhcnNpbmcoKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICBVQ2hhcjMyIGVudGl0eVZhbHVlID0gc2VhcmNoLm1vc3RSZWNlbnRNYXRjaCgpLT5m
aXJzdFZhbHVlOworICAgIC8vIEZJWE1FOiBXZSBuZWVkIHRvIGFjY291bnQgZm9yIHNlY29uZFZh
bHVlIGlmIGFueSBYTUwgZW50aXRpZXMgYXJlIGxvbmdlcgorICAgIC8vIHRoYW4gb25lIHVuaWNv
ZGUgY2hhcmFjdGVyLgorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIC8vIERhcmluIEFk
bGVyIHdyaXRlczoKKyAgICAvLyAgIFlvdSBjYW4gc2VlIGdpdmVuIHRoZSBjb2RlIGFib3ZlIHRo
YXQgdGhpcyBlbHNlIGlzIGRlYWQgY29kZS4gVGhpcyBjb2RlIGlzIGluIGEgc3RyYW5nZSBzdGF0
ZS4KKyAgICAvLyAgIEFuZCB0aGUgcmVpbnRlcnByZXRfY2FzdCB0byBVQ2hhciogbWFrZXMgdGhl
IGNvZGUgbGl0dGxlLWVuZGlhbi1zcGVjaWZpYy4gVGhhdCBpcyBub3QgZ29vZCEKICAgICBpZiAo
ZW50aXR5VmFsdWUgPD0gMHhGRkZGKQotICAgICAgIGFwcGVuZFRvVGV4dChyZWludGVycHJldF9j
YXN0PFVDaGFyKj4oJmVudGl0eVZhbHVlKSwgMSk7CisgICAgICAgIGFwcGVuZFRvVGV4dChyZWlu
dGVycHJldF9jYXN0PFVDaGFyKj4oJmVudGl0eVZhbHVlKSwgMSk7CiAgICAgZWxzZSB7CiAgICAg
ICAgIFVDaGFyIHV0ZjE2UGFpclsyXSA9IHsgVTE2X0xFQUQoZW50aXR5VmFsdWUpLCBVMTZfVFJB
SUwoZW50aXR5VmFsdWUpIH07CiAgICAgICAgIGFwcGVuZFRvVGV4dCh1dGYxNlBhaXIsIDIpOwpJ
bmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0No
YW5nZUxvZwkocmV2aXNpb24gMTAzMjQwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMTItMTkgIEFkYW0gQmFydGggIDxhYmFy
dGhAd2Via2l0Lm9yZz4KKworICAgICAgICBXZWJLaXQgc2hvdWxkIHN1cHBvcnQgSFRNTCBlbnRp
dGllcyB0aGF0IGV4cGFuZCB0byBtb3JlIHRoYW4gb25lIGNoYXJhY3RlcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ4MjYKKworICAgICAgICBSZXZp
ZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBTaG93IHRlc3QgcHJvZ3Jlc3Npb24uCisK
KyAgICAgICAgKiBodG1sNWxpYi9ydW5uZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtL2h0bWw1bGliL3J1bm5lci1leHBlY3RlZC50eHQ6CisKIDIwMTEtMTItMTkg
IENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRdIFRl
c3QgZm9udHMgYXJlIG5vdCB1c2VkIHdpdGggUXQ1CkluZGV4OiBMYXlvdXRUZXN0cy9odG1sNWxp
Yi9ydW5uZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0bWw1bGli
L3J1bm5lci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDEwMzI0MCkKKysrIExheW91dFRlc3RzL2h0
bWw1bGliL3J1bm5lci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE2NiwxMDMgKzE2
Niw4IEBAIHJlc291cmNlcy90ZXN0czIyLmRhdDogUEFTUwogCiByZXNvdXJjZXMvdGVzdHMyMy5k
YXQ6IFBBU1MKIAotcmVzb3VyY2VzL3Rlc3RzMjQuZGF0OgotMQotMgotMwotNAotNQotNgotCi1U
ZXN0IDEgb2YgOCBpbiByZXNvdXJjZXMvdGVzdHMyNC5kYXQgZmFpbGVkLiBJbnB1dDoKLTwhRE9D
VFlQRSBodG1sPiZOb3RFcXVhbFRpbGRlOwotR290OgotfCA8IURPQ1RZUEUgaHRtbD4KLXwgPGh0
bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICAiJk5vdEVxdWFsVGlsZGU7IgotRXhw
ZWN0ZWQ6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9k
eT4KLXwgICAgICLiiYLMuCIKLQotVGVzdCAyIG9mIDggaW4gcmVzb3VyY2VzL3Rlc3RzMjQuZGF0
IGZhaWxlZC4gSW5wdXQ6Ci08IURPQ1RZUEUgaHRtbD4mTm90RXF1YWxUaWxkZTtBCi1Hb3Q6Ci18
IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAg
ICImTm90RXF1YWxUaWxkZTtBIgotRXhwZWN0ZWQ6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRt
bD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICLiiYLMuEEiCi0KLVRlc3QgMyBvZiA4
IGluIHJlc291cmNlcy90ZXN0czI0LmRhdCBmYWlsZWQuIElucHV0OgotPCFET0NUWVBFIGh0bWw+
JlRoaWNrU3BhY2U7Ci1Hb3Q6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVh
ZD4KLXwgICA8Ym9keT4KLXwgICAgICImVGhpY2tTcGFjZTsiCi1FeHBlY3RlZDoKLXwgPCFET0NU
WVBFIGh0bWw+Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgIuKBn+KA
iiIKLQotVGVzdCA0IG9mIDggaW4gcmVzb3VyY2VzL3Rlc3RzMjQuZGF0IGZhaWxlZC4gSW5wdXQ6
Ci08IURPQ1RZUEUgaHRtbD4mVGhpY2tTcGFjZTtBCi1Hb3Q6Ci18IDwhRE9DVFlQRSBodG1sPgot
fCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICImVGhpY2tTcGFjZTtBIgot
RXhwZWN0ZWQ6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8
Ym9keT4KLXwgICAgICLigZ/igIpBIgorcmVzb3VyY2VzL3Rlc3RzMjQuZGF0OiBQQVNTCiAKLVRl
c3QgNSBvZiA4IGluIHJlc291cmNlcy90ZXN0czI0LmRhdCBmYWlsZWQuIElucHV0OgotPCFET0NU
WVBFIGh0bWw+Jk5vdFN1YnNldDsKLUdvdDoKLXwgPCFET0NUWVBFIGh0bWw+Ci18IDxodG1sPgot
fCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgIiZOb3RTdWJzZXQ7IgotRXhwZWN0ZWQ6Ci18
IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAg
ICLiioLig5IiCi0KLVRlc3QgNiBvZiA4IGluIHJlc291cmNlcy90ZXN0czI0LmRhdCBmYWlsZWQu
IElucHV0OgotPCFET0NUWVBFIGh0bWw+Jk5vdFN1YnNldDtBCi1Hb3Q6Ci18IDwhRE9DVFlQRSBo
dG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICImTm90U3Vic2V0
O0EiCi1FeHBlY3RlZDoKLXwgPCFET0NUWVBFIGh0bWw+Ci18IDxodG1sPgotfCAgIDxoZWFkPgot
fCAgIDxib2R5PgotfCAgICAgIuKKguKDkkEiCiByZXNvdXJjZXMvdGVzdHMyNS5kYXQ6IFBBU1MK
IAogcmVzb3VyY2VzL3Rlc3RzMjYuZGF0OiBQQVNTCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS9odG1sNWxpYi9ydW5uZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0bWw1bGliL3J1bm5lci1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDEwMzI0MCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0bWw1
bGliL3J1bm5lci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE2NiwxMDMgKzE2Niw4
IEBAIHJlc291cmNlcy90ZXN0czIyLmRhdDogUEFTUwogCiByZXNvdXJjZXMvdGVzdHMyMy5kYXQ6
IFBBU1MKIAotcmVzb3VyY2VzL3Rlc3RzMjQuZGF0OgotMQotMgotMwotNAotNQotNgotCi1UZXN0
IDEgb2YgOCBpbiByZXNvdXJjZXMvdGVzdHMyNC5kYXQgZmFpbGVkLiBJbnB1dDoKLTwhRE9DVFlQ
RSBodG1sPiZOb3RFcXVhbFRpbGRlOwotR290OgotfCA8IURPQ1RZUEUgaHRtbD4KLXwgPGh0bWw+
Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICAiJk5vdEVxdWFsVGlsZGU7IgotRXhwZWN0
ZWQ6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4K
LXwgICAgICLiiYLMuCIKLQotVGVzdCAyIG9mIDggaW4gcmVzb3VyY2VzL3Rlc3RzMjQuZGF0IGZh
aWxlZC4gSW5wdXQ6Ci08IURPQ1RZUEUgaHRtbD4mTm90RXF1YWxUaWxkZTtBCi1Hb3Q6Ci18IDwh
RE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICIm
Tm90RXF1YWxUaWxkZTtBIgotRXhwZWN0ZWQ6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4K
LXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICLiiYLMuEEiCi0KLVRlc3QgMyBvZiA4IGlu
IHJlc291cmNlcy90ZXN0czI0LmRhdCBmYWlsZWQuIElucHV0OgotPCFET0NUWVBFIGh0bWw+JlRo
aWNrU3BhY2U7Ci1Hb3Q6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4K
LXwgICA8Ym9keT4KLXwgICAgICImVGhpY2tTcGFjZTsiCi1FeHBlY3RlZDoKLXwgPCFET0NUWVBF
IGh0bWw+Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgIuKBn+KAiiIK
LQotVGVzdCA0IG9mIDggaW4gcmVzb3VyY2VzL3Rlc3RzMjQuZGF0IGZhaWxlZC4gSW5wdXQ6Ci08
IURPQ1RZUEUgaHRtbD4mVGhpY2tTcGFjZTtBCi1Hb3Q6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8
aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICImVGhpY2tTcGFjZTtBIgotRXhw
ZWN0ZWQ6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9k
eT4KLXwgICAgICLigZ/igIpBIgorcmVzb3VyY2VzL3Rlc3RzMjQuZGF0OiBQQVNTCiAKLVRlc3Qg
NSBvZiA4IGluIHJlc291cmNlcy90ZXN0czI0LmRhdCBmYWlsZWQuIElucHV0OgotPCFET0NUWVBF
IGh0bWw+Jk5vdFN1YnNldDsKLUdvdDoKLXwgPCFET0NUWVBFIGh0bWw+Ci18IDxodG1sPgotfCAg
IDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgIiZOb3RTdWJzZXQ7IgotRXhwZWN0ZWQ6Ci18IDwh
RE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICLi
ioLig5IiCi0KLVRlc3QgNiBvZiA4IGluIHJlc291cmNlcy90ZXN0czI0LmRhdCBmYWlsZWQuIElu
cHV0OgotPCFET0NUWVBFIGh0bWw+Jk5vdFN1YnNldDtBCi1Hb3Q6Ci18IDwhRE9DVFlQRSBodG1s
PgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICImTm90U3Vic2V0O0Ei
Ci1FeHBlY3RlZDoKLXwgPCFET0NUWVBFIGh0bWw+Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAg
IDxib2R5PgotfCAgICAgIuKKguKDkkEiCiByZXNvdXJjZXMvdGVzdHMyNS5kYXQ6IFBBU1MKIAog
cmVzb3VyY2VzL3Rlc3RzMjYuZGF0OiBQQVNTCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>