<?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>49630</bug_id>
          
          <creation_ts>2010-11-16 15:56:58 -0800</creation_ts>
          <short_desc>Move Position::EditingBoundaryCrossingRule to a new header file</short_desc>
          <delta_ts>2010-11-28 09:56:02 -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>Other</rep_platform>
          <op_sys>OS X 10.5</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin (Ben) Kalman">kalman</reporter>
          <assigned_to name="Benjamin (Ben) Kalman">kalman</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>rniwa</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>309993</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin (Ben) Kalman">kalman</who>
    <bug_when>2010-11-16 15:56:58 -0800</bug_when>
    <thetext>Move Position::EditingBoundaryCrossingRule to a new header file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309996</commentid>
    <comment_count>1</comment_count>
      <attachid>74051</attachid>
    <who name="Benjamin (Ben) Kalman">kalman</who>
    <bug_when>2010-11-16 15:59:20 -0800</bug_when>
    <thetext>Created attachment 74051
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311189</commentid>
    <comment_count>2</comment_count>
    <who name="Benjamin (Ben) Kalman">kalman</who>
    <bug_when>2010-11-18 17:16:52 -0800</bug_when>
    <thetext>fyi this is a follow up from https://bugs.webkit.org/show_bug.cgi?id=48658</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311200</commentid>
    <comment_count>3</comment_count>
      <attachid>74051</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-11-18 17:27:54 -0800</bug_when>
    <thetext>Comment on attachment 74051
Patch

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

You also want to add the new file to the various build files: GNUmakefile.am, WebCore.gypi, WebCore.pro, WebCore.vcproj/WebCore.vcproj, and WebCore.xcodeproj/project.pbxproj.  I think it won&apos;t compile if you don&apos;t add it to the xcode project.

&gt; WebCore/editing/EditingBoundary.h:43
&gt; +#endif /* EditingBoundary_h */

The comment should be //, not /* */</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311347</commentid>
    <comment_count>4</comment_count>
    <who name="Benjamin (Ben) Kalman">kalman</who>
    <bug_when>2010-11-19 03:47:12 -0800</bug_when>
    <thetext>Dumb question, but is there an easier way to add a file than manually changing 5 files..?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311518</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-11-19 09:33:02 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Dumb question, but is there an easier way to add a file than manually changing 5 files..?

Not a dumb question at all. At the moment the answer is no, but we’re hoping someone will find a way to fix that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311816</commentid>
    <comment_count>6</comment_count>
      <attachid>74456</attachid>
    <who name="Benjamin (Ben) Kalman">kalman</who>
    <bug_when>2010-11-19 19:03:23 -0800</bug_when>
    <thetext>Created attachment 74456
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311818</commentid>
    <comment_count>7</comment_count>
    <who name="Benjamin (Ben) Kalman">kalman</who>
    <bug_when>2010-11-19 19:07:45 -0800</bug_when>
    <thetext>&gt; Not a dumb question at all. At the moment the answer is no, but we’re hoping someone will find a way to fix that.

Yes, that would be nice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311819</commentid>
    <comment_count>8</comment_count>
      <attachid>74456</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-19 19:08:42 -0800</bug_when>
    <thetext>Comment on attachment 74456
Patch

Rejecting patch 74456 from commit-queue.

kalman@chromium.org does not have committer permissions according to http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/webkitpy/common/config/committers.py.

- If you do not have committer rights please read http://webkit.org/coding/contributing.html for instructions on how to use bugzilla flags.

- If you have committer rights please correct the error in WebKitTools/Scripts/webkitpy/common/config/committers.py by adding yourself to the file (no review needed).  The commit-queue restarts itself every 2 hours.  After restart the commit-queue will correctly respect your committer rights.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311822</commentid>
    <comment_count>9</comment_count>
      <attachid>74456</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-11-19 19:11:14 -0800</bug_when>
    <thetext>Comment on attachment 74456
Patch

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

&gt; WebCore/WebCore.vcproj/WebCore.vcproj:46080
&gt;  				&gt;
&gt; +			&lt;File

You&apos;re missing a &lt;/File&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311825</commentid>
    <comment_count>10</comment_count>
      <attachid>74457</attachid>
    <who name="Benjamin (Ben) Kalman">kalman</who>
    <bug_when>2010-11-19 19:16:49 -0800</bug_when>
    <thetext>Created attachment 74457
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312380</commentid>
    <comment_count>11</comment_count>
      <attachid>74457</attachid>
    <who name="">mitz</who>
    <bug_when>2010-11-22 09:30:19 -0800</bug_when>
    <thetext>Comment on attachment 74457
Patch

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

&gt; WebCore/editing/EditingBoundary.h:2
&gt; + * Copyright (c) 2010 Google Inc. All rights reserved.

It is inappropriate to assign yourself copyright in code that you are merely moving.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312392</commentid>
    <comment_count>12</comment_count>
      <attachid>74457</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-11-22 09:53:53 -0800</bug_when>
    <thetext>Comment on attachment 74457
Patch

Removing from cq based on mitz&apos;s comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312398</commentid>
    <comment_count>13</comment_count>
      <attachid>74570</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-11-22 10:26:01 -0800</bug_when>
    <thetext>Created attachment 74570
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312686</commentid>
    <comment_count>14</comment_count>
      <attachid>74570</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-22 20:44:36 -0800</bug_when>
    <thetext>Comment on attachment 74570
Patch for landing

Rejecting patch 74570 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=eseidel-cq-sl&apos;, &apos;apply-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, 74570]&quot; exit_code: 2
Last 500 characters of output:
ILED -- saving rejects to file WebCore/WebCore.xcodeproj/project.pbxproj.rej
patching file WebCore/dom/Position.cpp
patching file WebCore/dom/Position.h
patching file WebCore/editing/DeleteSelectionCommand.cpp
patching file WebCore/editing/EditingBoundary.h
patching file WebCore/editing/visible_units.cpp
patching file WebCore/editing/visible_units.h
patching file WebCore/rendering/RenderObject.cpp

Failed to run &quot;[u&apos;/Projects/CommitQueue/WebKitTools/Scripts/svn-apply&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/6363012</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313596</commentid>
    <comment_count>15</comment_count>
      <attachid>74827</attachid>
    <who name="Benjamin (Ben) Kalman">kalman</who>
    <bug_when>2010-11-24 20:30:20 -0800</bug_when>
    <thetext>Created attachment 74827
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314160</commentid>
    <comment_count>16</comment_count>
      <attachid>74827</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-11-27 18:28:36 -0800</bug_when>
    <thetext>Comment on attachment 74827
Patch

Seems good to be in a separate file. Not sure it’s good that the file’s name is different from the enum type’s name, though. I would have made them the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314162</commentid>
    <comment_count>17</comment_count>
      <attachid>74827</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-27 18:54:59 -0800</bug_when>
    <thetext>Comment on attachment 74827
Patch

Clearing flags on attachment: 74827

Committed r72777: &lt;http://trac.webkit.org/changeset/72777&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314163</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-27 18:55:05 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314210</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-28 09:56:02 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/72777 might have broken GTK Linux 64-bit Debug</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74051</attachid>
            <date>2010-11-16 15:59:20 -0800</date>
            <delta_ts>2010-11-19 19:03:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49630-20101117105917.patch</filename>
            <type>text/plain</type>
            <size>12364</size>
            <attacher name="Benjamin (Ben) Kalman">kalman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MDllNjZiYzllMzUyYjdiYjdkM2E2MTU0MzYyMDFjZjk4Yjk2YjZhNC4uMjVjMGJiOGVmMzUwYWQz
ZmZjZGZhYjRmMmFiZDY0NTMxYTVmZDM3MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMC0xMS0xNiAgQmVu
amFtaW4gS2FsbWFuICA8a2FsbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIFBvc2l0aW9uOjpFZGl0aW5nQm91bmRh
cnlDcm9zc2luZ1J1bGUgdG8gYSBuZXcgaGVhZGVyIGZpbGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5NjMwIGFuZCB1cGRhdGUgcmVmZXJlbmNlcyBp
bgorICAgICAgICBvdGhlciBmaWxlcy4KKworICAgICAgICAqIGRvbS9Qb3NpdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpkb3duc3RyZWFtSWdub3JpbmdFZGl0aW5nQm91bmRhcmllcyk6Cisg
ICAgICAgIChXZWJDb3JlOjp1cHN0cmVhbUlnbm9yaW5nRWRpdGluZ0JvdW5kYXJpZXMpOgorICAg
ICAgICAqIGRvbS9Qb3NpdGlvbi5oOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpk
b0FwcGx5KToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRpbmdCb3VuZGFyeS5oOiBBZGRlZC4KKyAg
ICAgICAgKiBlZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3Rh
cnRPZlBhcmFncmFwaCk6CisgICAgICAgIChXZWJDb3JlOjplbmRPZlBhcmFncmFwaCk6CisgICAg
ICAgIChXZWJDb3JlOjppc1N0YXJ0T2ZQYXJhZ3JhcGgpOgorICAgICAgICAoV2ViQ29yZTo6aXNF
bmRPZlBhcmFncmFwaCk6CisgICAgICAgICogZWRpdGluZy92aXNpYmxlX3VuaXRzLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJPYmplY3Q6OmNyZWF0ZVZpc2libGVQb3NpdGlvbik6CisKIDIwMTAtMTEtMTUgIEJldGggRGFr
aW4gIDxiZGFraW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVy
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwIGIvV2ViQ29yZS9kb20vUG9z
aXRpb24uY3BwCmluZGV4IDhjMDMyMjQwNTBhY2M2MDM5ODFiMjU5M2NhYmVmMjg5ZWViZWIxNjEu
LjA1MzhiOWVkZTg0MDU0NTQzZDZlNWU5ZDFjNDBkODUzZjdjZmJiMzQgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvZG9tL1Bvc2l0aW9uLmNwcAorKysgYi9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKQEAg
LTEwMDYsNyArMTAwNiw3IEBAIHN0YXRpYyBQb3NpdGlvbiBkb3duc3RyZWFtSWdub3JpbmdFZGl0
aW5nQm91bmRhcmllcyhQb3NpdGlvbiBwb3NpdGlvbikKICAgICBQb3NpdGlvbiBsYXN0UG9zaXRp
b247CiAgICAgd2hpbGUgKHBvc2l0aW9uICE9IGxhc3RQb3NpdGlvbikgewogICAgICAgICBsYXN0
UG9zaXRpb24gPSBwb3NpdGlvbjsKLSAgICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbi5kb3duc3Ry
ZWFtKFBvc2l0aW9uOjpDYW5Dcm9zc0VkaXRpbmdCb3VuZGFyeSk7CisgICAgICAgIHBvc2l0aW9u
ID0gcG9zaXRpb24uZG93bnN0cmVhbShDYW5Dcm9zc0VkaXRpbmdCb3VuZGFyeSk7CiAgICAgfQog
ICAgIHJldHVybiBwb3NpdGlvbjsKIH0KQEAgLTEwMTYsNyArMTAxNiw3IEBAIHN0YXRpYyBQb3Np
dGlvbiB1cHN0cmVhbUlnbm9yaW5nRWRpdGluZ0JvdW5kYXJpZXMoUG9zaXRpb24gcG9zaXRpb24p
CiAgICAgUG9zaXRpb24gbGFzdFBvc2l0aW9uOwogICAgIHdoaWxlIChwb3NpdGlvbiAhPSBsYXN0
UG9zaXRpb24pIHsKICAgICAgICAgbGFzdFBvc2l0aW9uID0gcG9zaXRpb247Ci0gICAgICAgIHBv
c2l0aW9uID0gcG9zaXRpb24udXBzdHJlYW0oUG9zaXRpb246OkNhbkNyb3NzRWRpdGluZ0JvdW5k
YXJ5KTsKKyAgICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbi51cHN0cmVhbShDYW5Dcm9zc0VkaXRp
bmdCb3VuZGFyeSk7CiAgICAgfQogICAgIHJldHVybiBwb3NpdGlvbjsKIH0KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmggYi9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5oCmluZGV4IDU1
MmQ2NzVmYTczMzFhNmVhYzRiN2QwYjM5MTU0NmU4MzAyM2I3YjMuLjRkM2I1ZmU2ODc4ZDZlMWUw
MmY3YzU1YjJmMmVhNDE3NDViMzkxZTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1Bvc2l0aW9u
LmgKKysrIGIvV2ViQ29yZS9kb20vUG9zaXRpb24uaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmlu
ZSBQb3NpdGlvbl9oCiAKICNpbmNsdWRlICJDb250YWluZXJOb2RlLmgiCisjaW5jbHVkZSAiRWRp
dGluZ0JvdW5kYXJ5LmgiCiAjaW5jbHVkZSAiVGV4dEFmZmluaXR5LmgiCiAjaW5jbHVkZSAiVGV4
dERpcmVjdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CkBAIC01NiwxMSArNTcs
NiBAQCBwdWJsaWM6CiAgICAgICAgIFBvc2l0aW9uSXNCZWZvcmVBbmNob3IKICAgICB9OwogCi0g
ICAgZW51bSBFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgewotICAgICAgICBDYW5Dcm9zc0Vk
aXRpbmdCb3VuZGFyeSwKLSAgICAgICAgQ2Fubm90Q3Jvc3NFZGl0aW5nQm91bmRhcnkKLSAgICB9
OwotICAgIAogICAgIFBvc2l0aW9uKCkKICAgICAgICAgOiBtX29mZnNldCgwKQogICAgICAgICAs
IG1fYW5jaG9yVHlwZShQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9XZWJDb3JlL2VkaXRpbmcv
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggNTZkZWFjMzIxZDNmZThjY2MwM2VlMzZm
NjRkOWYzNjU2NTUxMjM5Mi4uZDBjYjVhMGQyMDNiZmVhZTdlNmFhYjM5MzQyYjI0ZDRmYmFiNzU1
ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
CisrKyBiL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtMjgs
NiArMjgsNyBAQAogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudEZy
YWdtZW50LmgiCisjaW5jbHVkZSAiRWRpdGluZ0JvdW5kYXJ5LmgiCiAjaW5jbHVkZSAiRWRpdG9y
LmgiCiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgpAQCAt
NzM5LDggKzc0MCw4IEBAIHZvaWQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSgpCiAg
ICAgRUFmZmluaXR5IGFmZmluaXR5ID0gbV9zZWxlY3Rpb25Ub0RlbGV0ZS5hZmZpbml0eSgpOwog
ICAgIAogICAgIFBvc2l0aW9uIGRvd25zdHJlYW1FbmQgPSBtX3NlbGVjdGlvblRvRGVsZXRlLmVu
ZCgpLmRvd25zdHJlYW0oKTsKLSAgICBtX25lZWRQbGFjZWhvbGRlciA9IGlzU3RhcnRPZlBhcmFn
cmFwaChtX3NlbGVjdGlvblRvRGVsZXRlLnZpc2libGVTdGFydCgpLCBQb3NpdGlvbjo6Q2FuQ3Jv
c3NFZGl0aW5nQm91bmRhcnkpCi0gICAgICAgICAgICAmJiBpc0VuZE9mUGFyYWdyYXBoKG1fc2Vs
ZWN0aW9uVG9EZWxldGUudmlzaWJsZUVuZCgpLCBQb3NpdGlvbjo6Q2FuQ3Jvc3NFZGl0aW5nQm91
bmRhcnkpCisgICAgbV9uZWVkUGxhY2Vob2xkZXIgPSBpc1N0YXJ0T2ZQYXJhZ3JhcGgobV9zZWxl
Y3Rpb25Ub0RlbGV0ZS52aXNpYmxlU3RhcnQoKSwgQ2FuQ3Jvc3NFZGl0aW5nQm91bmRhcnkpCisg
ICAgICAgICAgICAmJiBpc0VuZE9mUGFyYWdyYXBoKG1fc2VsZWN0aW9uVG9EZWxldGUudmlzaWJs
ZUVuZCgpLCBDYW5Dcm9zc0VkaXRpbmdCb3VuZGFyeSkKICAgICAgICAgICAgICYmICFsaW5lQnJl
YWtFeGlzdHNBdFZpc2libGVQb3NpdGlvbihtX3NlbGVjdGlvblRvRGVsZXRlLnZpc2libGVFbmQo
KSk7CiAgICAgaWYgKG1fbmVlZFBsYWNlaG9sZGVyKSB7CiAgICAgICAgIC8vIERvbid0IG5lZWQg
YSBwbGFjZWhvbGRlciB3aGVuIGRlbGV0aW5nIGEgc2VsZWN0aW9uIHRoYXQgc3RhcnRzIGp1c3Qg
YmVmb3JlIGEgdGFibGUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQm91bmRh
cnkuaCBiL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQm91bmRhcnkuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYzJh
ZWVlMGVlNWI4YmQzYmRhMGRhZmNkMjFmMjNiYTQ4ZGVhZjcwCi0tLSAvZGV2L251bGwKKysrIGIv
V2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdCb3VuZGFyeS5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKGMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlz
dHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IEVkaXRpbmdCb3VuZGFyeV9oCisjZGVmaW5lIEVkaXRpbmdCb3VuZGFyeV9oCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworZW51bSBFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgeworICAgIENh
bkNyb3NzRWRpdGluZ0JvdW5kYXJ5LAorICAgIENhbm5vdENyb3NzRWRpdGluZ0JvdW5kYXJ5Cit9
OworCit9CisKKyNlbmRpZiAvKiBFZGl0aW5nQm91bmRhcnlfaCAqLwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwIGIvV2ViQ29yZS9lZGl0aW5nL3Zpc2libGVf
dW5pdHMuY3BwCmluZGV4IGQ2ZTFhNmVkMTg3OWRlOTliOTViYjA0M2YyYTUxNTJlZWM1ZjgwOWEu
LjIwNzMyMTZjZmJmNDAwMmZjNTIzZmQ2YTcyZDYxMjQ2MzQwNTc5ZDEgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcAorKysgYi9XZWJDb3JlL2VkaXRpbmcvdmlz
aWJsZV91bml0cy5jcHAKQEAgLTc4MCw3ICs3ODAsNyBAQCBWaXNpYmxlUG9zaXRpb24gbmV4dFNl
bnRlbmNlUG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uICZjKQogICAgIHJldHVybiBjLmhv
bm9yRWRpdGFibGVCb3VuZGFyeUF0T3JCZWZvcmUobmV4dCk7CiB9CiAKLVZpc2libGVQb3NpdGlv
biBzdGFydE9mUGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgYywgUG9zaXRpb246OkVk
aXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVsZSBib3VuZGFyeUNyb3NzaW5nUnVsZSkKK1Zpc2libGVQ
b3NpdGlvbiBzdGFydE9mUGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgYywgRWRpdGlu
Z0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlIGJvdW5kYXJ5Q3Jvc3NpbmdSdWxlKQogewogICAgIFBvc2l0
aW9uIHAgPSBjLmRlZXBFcXVpdmFsZW50KCk7CiAgICAgTm9kZSAqc3RhcnROb2RlID0gcC5ub2Rl
KCk7CkBAIC03OTgsNyArNzk4LDcgQEAgVmlzaWJsZVBvc2l0aW9uIHN0YXJ0T2ZQYXJhZ3JhcGgo
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJiBjLCBQb3NpdGlvbjo6RWRpdGluZ0JvdW4KIAogICAgIE5v
ZGUgKm4gPSBzdGFydE5vZGU7CiAgICAgd2hpbGUgKG4pIHsKLSAgICAgICAgaWYgKGJvdW5kYXJ5
Q3Jvc3NpbmdSdWxlID09IFBvc2l0aW9uOjpDYW5ub3RDcm9zc0VkaXRpbmdCb3VuZGFyeSAmJiBu
LT5pc0NvbnRlbnRFZGl0YWJsZSgpICE9IHN0YXJ0Tm9kZS0+aXNDb250ZW50RWRpdGFibGUoKSkK
KyAgICAgICAgaWYgKGJvdW5kYXJ5Q3Jvc3NpbmdSdWxlID09IENhbm5vdENyb3NzRWRpdGluZ0Jv
dW5kYXJ5ICYmIG4tPmlzQ29udGVudEVkaXRhYmxlKCkgIT0gc3RhcnROb2RlLT5pc0NvbnRlbnRF
ZGl0YWJsZSgpKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIFJlbmRlck9iamVjdCAqciA9
IG4tPnJlbmRlcmVyKCk7CiAgICAgICAgIGlmICghcikgewpAQCAtODM5LDcgKzgzOSw3IEBAIFZp
c2libGVQb3NpdGlvbiBzdGFydE9mUGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgYywg
UG9zaXRpb246OkVkaXRpbmdCb3VuCiAgICAgcmV0dXJuIFZpc2libGVQb3NpdGlvbihub2RlLCBv
ZmZzZXQsIERPV05TVFJFQU0pOwogfQogCi1WaXNpYmxlUG9zaXRpb24gZW5kT2ZQYXJhZ3JhcGgo
Y29uc3QgVmlzaWJsZVBvc2l0aW9uICZjLCBQb3NpdGlvbjo6RWRpdGluZ0JvdW5kYXJ5Q3Jvc3Np
bmdSdWxlIGJvdW5kYXJ5Q3Jvc3NpbmdSdWxlKQorVmlzaWJsZVBvc2l0aW9uIGVuZE9mUGFyYWdy
YXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmYywgRWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxl
IGJvdW5kYXJ5Q3Jvc3NpbmdSdWxlKQogeyAgICAKICAgICBpZiAoYy5pc051bGwoKSkKICAgICAg
ICAgcmV0dXJuIFZpc2libGVQb3NpdGlvbigpOwpAQCAtODU4LDcgKzg1OCw3IEBAIFZpc2libGVQ
b3NpdGlvbiBlbmRPZlBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24gJmMsIFBvc2l0aW9u
OjpFZGl0aW5nQm91bmRhCiAKICAgICBOb2RlICpuID0gc3RhcnROb2RlOwogICAgIHdoaWxlIChu
KSB7Ci0gICAgICAgIGlmIChib3VuZGFyeUNyb3NzaW5nUnVsZSA9PSBQb3NpdGlvbjo6Q2Fubm90
Q3Jvc3NFZGl0aW5nQm91bmRhcnkgJiYgbi0+aXNDb250ZW50RWRpdGFibGUoKSAhPSBzdGFydE5v
ZGUtPmlzQ29udGVudEVkaXRhYmxlKCkpCisgICAgICAgIGlmIChib3VuZGFyeUNyb3NzaW5nUnVs
ZSA9PSBDYW5ub3RDcm9zc0VkaXRpbmdCb3VuZGFyeSAmJiBuLT5pc0NvbnRlbnRFZGl0YWJsZSgp
ICE9IHN0YXJ0Tm9kZS0+aXNDb250ZW50RWRpdGFibGUoKSkKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBSZW5kZXJPYmplY3QgKnIgPSBuLT5yZW5kZXJlcigpOwogICAgICAgICBpZiAoIXIp
IHsKQEAgLTkxNCwxMiArOTE0LDEyIEBAIGJvb2wgaW5TYW1lUGFyYWdyYXBoKGNvbnN0IFZpc2li
bGVQb3NpdGlvbiAmYSwgY29uc3QgVmlzaWJsZVBvc2l0aW9uICZiKQogICAgIHJldHVybiBhLmlz
Tm90TnVsbCgpICYmIHN0YXJ0T2ZQYXJhZ3JhcGgoYSkgPT0gc3RhcnRPZlBhcmFncmFwaChiKTsK
IH0KIAotYm9vbCBpc1N0YXJ0T2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uICZwb3Ms
IFBvc2l0aW9uOjpFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgYm91bmRhcnlDcm9zc2luZ1J1
bGUpCitib29sIGlzU3RhcnRPZlBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24gJnBvcywg
RWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlIGJvdW5kYXJ5Q3Jvc3NpbmdSdWxlKQogewogICAg
IHJldHVybiBwb3MuaXNOb3ROdWxsKCkgJiYgcG9zID09IHN0YXJ0T2ZQYXJhZ3JhcGgocG9zLCBi
b3VuZGFyeUNyb3NzaW5nUnVsZSk7CiB9CiAKLWJvb2wgaXNFbmRPZlBhcmFncmFwaChjb25zdCBW
aXNpYmxlUG9zaXRpb24gJnBvcywgUG9zaXRpb246OkVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVs
ZSBib3VuZGFyeUNyb3NzaW5nUnVsZSkKK2Jvb2wgaXNFbmRPZlBhcmFncmFwaChjb25zdCBWaXNp
YmxlUG9zaXRpb24gJnBvcywgRWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlIGJvdW5kYXJ5Q3Jv
c3NpbmdSdWxlKQogewogICAgIHJldHVybiBwb3MuaXNOb3ROdWxsKCkgJiYgcG9zID09IGVuZE9m
UGFyYWdyYXBoKHBvcywgYm91bmRhcnlDcm9zc2luZ1J1bGUpOwogfQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMuaCBiL1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3Vu
aXRzLmgKaW5kZXggZjc4ZjlkMTQ5ZmU4MzFmODk4MDM0MTNiZTUxYjMwZWQ5NTgyODFhYS4uOThh
NTMzMjNiOGY3MzcxOTFiOTAxODQwN2IzNDI3YThmYmVkZjY2ZCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMuaAorKysgYi9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91
bml0cy5oCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIHZpc2libGVfdW5pdHNfaAogCiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFZGl0aW5nQm91bmRhcnkuaCIKICNpbmNsdWRl
ICJQb3NpdGlvbi5oIgogI2luY2x1ZGUgIlRleHRBZmZpbml0eS5oIgogCkBAIC02MSwxMyArNjIs
MTMgQEAgVmlzaWJsZVBvc2l0aW9uIGxvZ2ljYWxTdGFydE9mTGluZShjb25zdCBWaXNpYmxlUG9z
aXRpb24gJik7CiBWaXNpYmxlUG9zaXRpb24gbG9naWNhbEVuZE9mTGluZShjb25zdCBWaXNpYmxl
UG9zaXRpb24gJik7CiAKIC8vIHBhcmFncmFwaHMgKHBlcmhhcHMgYSBtaXNub21lciwgY2FuIGJl
IGRpdmlkZWQgYnkgbGluZSBicmVhayBlbGVtZW50cykKLVZpc2libGVQb3NpdGlvbiBzdGFydE9m
UGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiYsIFBvc2l0aW9uOjpFZGl0aW5nQm91bmRh
cnlDcm9zc2luZ1J1bGUgPSBQb3NpdGlvbjo6Q2Fubm90Q3Jvc3NFZGl0aW5nQm91bmRhcnkpOwot
VmlzaWJsZVBvc2l0aW9uIGVuZE9mUGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiYsIFBv
c2l0aW9uOjpFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgPSBQb3NpdGlvbjo6Q2Fubm90Q3Jv
c3NFZGl0aW5nQm91bmRhcnkpOworVmlzaWJsZVBvc2l0aW9uIHN0YXJ0T2ZQYXJhZ3JhcGgoY29u
c3QgVmlzaWJsZVBvc2l0aW9uJiwgRWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlID0gQ2Fubm90
Q3Jvc3NFZGl0aW5nQm91bmRhcnkpOworVmlzaWJsZVBvc2l0aW9uIGVuZE9mUGFyYWdyYXBoKGNv
bnN0IFZpc2libGVQb3NpdGlvbiYsIEVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVsZSA9IENhbm5v
dENyb3NzRWRpdGluZ0JvdW5kYXJ5KTsKIFZpc2libGVQb3NpdGlvbiBzdGFydE9mTmV4dFBhcmFn
cmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKIFZpc2libGVQb3NpdGlvbiBwcmV2aW91c1Bh
cmFncmFwaFBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmLCBpbnQgeCk7CiBWaXNpYmxl
UG9zaXRpb24gbmV4dFBhcmFncmFwaFBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmLCBp
bnQgeCk7Ci1ib29sIGlzU3RhcnRPZlBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24gJiwg
UG9zaXRpb246OkVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVsZSA9IFBvc2l0aW9uOjpDYW5ub3RD
cm9zc0VkaXRpbmdCb3VuZGFyeSk7Ci1ib29sIGlzRW5kT2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJs
ZVBvc2l0aW9uICYsIFBvc2l0aW9uOjpFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgPSBQb3Np
dGlvbjo6Q2Fubm90Q3Jvc3NFZGl0aW5nQm91bmRhcnkpOworYm9vbCBpc1N0YXJ0T2ZQYXJhZ3Jh
cGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uICYsIEVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVsZSA9
IENhbm5vdENyb3NzRWRpdGluZ0JvdW5kYXJ5KTsKK2Jvb2wgaXNFbmRPZlBhcmFncmFwaChjb25z
dCBWaXNpYmxlUG9zaXRpb24gJiwgRWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlID0gQ2Fubm90
Q3Jvc3NFZGl0aW5nQm91bmRhcnkpOwogYm9vbCBpblNhbWVQYXJhZ3JhcGgoY29uc3QgVmlzaWJs
ZVBvc2l0aW9uICYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiAmKTsKIAogLy8gYmxvY2tzICh0cnVl
IHBhcmFncmFwaHM7IGxpbmUgYnJlYWsgZWxlbWVudHMgZG9uJ3QgYnJlYWsgYmxvY2tzKQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXggZTEzYjFmOWVjNzRiMzdjMzM2YjAzMDk0NTk2
Njk2NWEyZjJiN2IwZS4uYjBlNzRhZTU5ZDY4Y2EzNjcyMzVkMzgxY2Q4M2NlYmEyN2ZkNDhlOSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVk
ZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkRh
c2hBcnJheS5oIgorI2luY2x1ZGUgIkVkaXRpbmdCb3VuZGFyeS5oIgogI2luY2x1ZGUgIkZsb2F0
UXVhZC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCkBAIC0y
NjM5LDEwICsyNjQwLDEwIEBAIFZpc2libGVQb3NpdGlvbiBSZW5kZXJPYmplY3Q6OmNyZWF0ZVZp
c2libGVQb3NpdGlvbihpbnQgb2Zmc2V0LCBFQWZmaW5pdHkgYWZmaW5pCiAgICAgICAgIGlmICgh
bm9kZS0+aXNDb250ZW50RWRpdGFibGUoKSkgewogICAgICAgICAgICAgLy8gSWYgaXQgY2FuIGJl
IGZvdW5kLCB3ZSBwcmVmZXIgYSB2aXN1YWxseSBlcXVpdmFsZW50IHBvc2l0aW9uIHRoYXQgaXMg
ZWRpdGFibGUuIAogICAgICAgICAgICAgUG9zaXRpb24gcG9zaXRpb24obm9kZSwgb2Zmc2V0KTsK
LSAgICAgICAgICAgIFBvc2l0aW9uIGNhbmRpZGF0ZSA9IHBvc2l0aW9uLmRvd25zdHJlYW0oUG9z
aXRpb246OkNhbkNyb3NzRWRpdGluZ0JvdW5kYXJ5KTsKKyAgICAgICAgICAgIFBvc2l0aW9uIGNh
bmRpZGF0ZSA9IHBvc2l0aW9uLmRvd25zdHJlYW0oQ2FuQ3Jvc3NFZGl0aW5nQm91bmRhcnkpOwog
ICAgICAgICAgICAgaWYgKGNhbmRpZGF0ZS5ub2RlKCktPmlzQ29udGVudEVkaXRhYmxlKCkpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIFZpc2libGVQb3NpdGlvbihjYW5kaWRhdGUsIGFmZmluaXR5
KTsKLSAgICAgICAgICAgIGNhbmRpZGF0ZSA9IHBvc2l0aW9uLnVwc3RyZWFtKFBvc2l0aW9uOjpD
YW5Dcm9zc0VkaXRpbmdCb3VuZGFyeSk7CisgICAgICAgICAgICBjYW5kaWRhdGUgPSBwb3NpdGlv
bi51cHN0cmVhbShDYW5Dcm9zc0VkaXRpbmdCb3VuZGFyeSk7CiAgICAgICAgICAgICBpZiAoY2Fu
ZGlkYXRlLm5vZGUoKS0+aXNDb250ZW50RWRpdGFibGUoKSkKICAgICAgICAgICAgICAgICByZXR1
cm4gVmlzaWJsZVBvc2l0aW9uKGNhbmRpZGF0ZSwgYWZmaW5pdHkpOwogICAgICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74456</attachid>
            <date>2010-11-19 19:03:23 -0800</date>
            <delta_ts>2010-11-19 19:16:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49630-20101120140320.patch</filename>
            <type>text/plain</type>
            <size>18149</size>
            <attacher name="Benjamin (Ben) Kalman">kalman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OWM3YTU1YzZiYmQ3N2Y0MGI0MzlhNGM1YzFlOGM2NWI4ZTMwODYzMi4uYTU4NmE1MjMyZTJjOWUz
ZWU0MmQ2NGE5YzQ3NzM1NmJlNzY2ODRkYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMC0xMS0xOSAgQmVu
amFtaW4gS2FsbWFuICA8a2FsbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIFBvc2l0aW9uOjpFZGl0aW5nQm91bmRh
cnlDcm9zc2luZ1J1bGUgdG8gYSBuZXcgaGVhZGVyIGZpbGUKKyAgICAgICAgKEVkaXRpbmdCb3Vu
ZGFyeS5oKSBhbmQgdXBkYXRlIHJlZmVyZW5jZXMgaW4gb3RoZXIgZmlsZXMuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTYzMAorCisgICAgICAgICog
R05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNv
cmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vUG9z
aXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZG93bnN0cmVhbUlnbm9yaW5nRWRpdGluZ0Jv
dW5kYXJpZXMpOgorICAgICAgICAoV2ViQ29yZTo6dXBzdHJlYW1JZ25vcmluZ0VkaXRpbmdCb3Vu
ZGFyaWVzKToKKyAgICAgICAgKiBkb20vUG9zaXRpb24uaDoKKyAgICAgICAgKiBlZGl0aW5nL0Rl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgICogZWRpdGluZy9FZGl0aW5nQm91bmRhcnku
aDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnN0YXJ0T2ZQYXJhZ3JhcGgpOgorICAgICAgICAoV2ViQ29yZTo6ZW5kT2ZQYXJh
Z3JhcGgpOgorICAgICAgICAoV2ViQ29yZTo6aXNTdGFydE9mUGFyYWdyYXBoKToKKyAgICAgICAg
KFdlYkNvcmU6OmlzRW5kT2ZQYXJhZ3JhcGgpOgorICAgICAgICAqIGVkaXRpbmcvdmlzaWJsZV91
bml0cy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpjcmVhdGVWaXNpYmxlUG9zaXRpb24pOgorCiAyMDEwLTEx
LTE5ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IGU4ZWIzODY0NzUzZTQ5MDU5Nzc4YTE2NGNjYjli
ZDIzN2JlYjZkY2UuLjUyZDQ1NjQzOTU3YTE2NzljZTk4ZjE3ZWVhNzk0NGZiYzZhZDE2NzMgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmls
ZS5hbQpAQCAtMTI4OCw2ICsxMjg4LDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3Jl
L2VkaXRpbmcvRWRpdENvbW1hbmQuaCBcCiAJV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdCZWhhdmlv
ci5oIFwKIAlXZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yVHlwZXMuaCBcCisJV2ViQ29y
ZS9lZGl0aW5nL0VkaXRpbmdCb3VuZGFyeS5oIFwKIAlXZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0
eWxlLmNwcCBcCiAJV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5oIFwKIAlXZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5
cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBhZjc4MmE2YmVlYmIyY2Q1NDZmZjM4YjZk
MDc4NjhjZjU1NTlhMWRkLi5iMWViN2Q4Yzk3ZWFmYTNkYWRmMzJmY2U0ZTY1OThjY2MzNTJhOWZm
IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQpAQCAtMTM2OSw2ICsxMzY5LDcgQEAKICAgICAgICAgICAgICdlZGl0aW5nL0VkaXRDb21t
YW5kLmgnLAogICAgICAgICAgICAgJ2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yLmgnLAogICAgICAg
ICAgICAgJ2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yVHlwZXMuaCcsCisgICAgICAgICAgICAnZWRp
dGluZy9FZGl0aW5nQm91bmRhcnkuaCcsCiAgICAgICAgICAgICAnZWRpdGluZy9FZGl0aW5nU3R5
bGUuY3BwJywKICAgICAgICAgICAgICdlZGl0aW5nL0VkaXRpbmdTdHlsZS5oJywKICAgICAgICAg
ICAgICdlZGl0aW5nL0VkaXRvci5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBy
byBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggNjcxNDg5MzQwMWU4MDIwZTIyNjliYjUzNDc1
YjM2YWY5ZTVhOTZhZC4uODYwOGZiOWRmMDY5OWQ1MDk0MjBhMDRjZGI0MmFhYWEzZWJiZWJkZSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJv
CkBAIC0xNjk2LDYgKzE2OTYsNyBAQCBIRUFERVJTICs9IFwKICAgICBlZGl0aW5nL0VkaXRDb21t
YW5kLmggXAogICAgIGVkaXRpbmcvRWRpdGluZ1N0eWxlLmggXAogICAgIGVkaXRpbmcvRWRpdGlu
Z0JlaGF2aW9yLmggXAorICAgIGVkaXRpbmcvRWRpdGluZ0JvdW5kYXJ5LmggXAogICAgIGVkaXRp
bmcvRWRpdG9yLmggXAogICAgIGVkaXRpbmcvRm9ybWF0QmxvY2tDb21tYW5kLmggXAogICAgIGVk
aXRpbmcvaHRtbGVkaXRpbmcuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpp
bmRleCBlMjdkNTI5ZThiMzQzZjhmMDNhM2RjM2JjYjNkZjQwYTMwNjE0MDY1Li42MjEyNjRkNGNi
ZGE0OGU4MzBkM2I1ZWUwYjBhYTkxOGE5ZDg5ZDhiIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKQEAgLTQ2MDc3LDYgKzQ2MDc3LDkgQEAKIAkJCTxGaWxlDQogCQkJCVJlbGF0
aXZlUGF0aD0iLi5cZWRpdGluZ1xEZWxldGVCdXR0b24uaCINCiAJCQkJPg0KKwkJCTxGaWxlDQor
CQkJCVJlbGF0aXZlUGF0aD0iLi5cZWRpdGluZ1xFZGl0aW5nQm91bmRhcnkuaCINCisJCQkJPg0K
IAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGVkaXRpbmdcRGVs
ZXRlQnV0dG9uQ29udHJvbGxlci5jcHAiDQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBjMzI2NmExMGUxYzhkZDFjYzBjMTI2MDk5OTRkYTMwZGVlZjAwNTNl
Li4xNTU1OTYyNzYwMjA4NzQ3NGI4ZWFkNjIwY2M3YzA3YTQzODgzZDE0IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODk2LDYgKzg5Niw3IEBACiAJCTM3
RkQ0Mjk4MTE4MzY4NDYwMDkzQzAyOSAvKiBUcmVlRGVwdGhMaW1pdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdGRDQyOTcxMTgzNjg0NjAwOTNDMDI5
IC8qIFRyZWVEZXB0aExpbWl0LmggKi87IH07CiAJCTM4ODhGNkVFMTI4Qzk4ODkwMDBDQThFMCAv
KiBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMzg4OEY2RUMxMjhDOTg4OTAwMENBOEUwIC8qIEluc3BlY3Rv
ckZpbGVTeXN0ZW1BZ2VudC5jcHAgKi87IH07CiAJCTM4ODhGNkVGMTI4Qzk4ODkwMDBDQThFMCAv
KiBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDM4ODhGNkVEMTI4Qzk4ODkwMDBDQThFMCAvKiBJbnNwZWN0b3JG
aWxlU3lzdGVtQWdlbnQuaCAqLzsgfTsKKwkJM0EyN0MxRDUxMjk3NUJBMTAwMzYxQ0Y0IC8qIEVk
aXRpbmdCb3VuZGFyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gM0EyN0MxRDQxMjk3NUJBMTAwMzYxQ0Y0IC8qIEVkaXRpbmdCb3VuZGFyeS5oICovOyB9
OwogCQk0MTAwMkNDRDBGNjZFREVGMDA5RTY2MEQgLyogU2NyaXB0RnVuY3Rpb25DYWxsLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwMkNDQjBGNjZF
REVGMDA5RTY2MEQgLyogU2NyaXB0RnVuY3Rpb25DYWxsLmggKi87IH07CiAJCTQxMDAyQ0NFMEY2
NkVERUYwMDlFNjYwRCAvKiBTY3JpcHRGdW5jdGlvbkNhbGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDJDQ0MwRjY2RURFRjAwOUU2NjBEIC8q
IFNjcmlwdEZ1bmN0aW9uQ2FsbC5jcHAgKi87IH07CiAJCTQxMEI3RTcyMTA0NUZBQjAwMEQ4MjI0
RiAvKiBKU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MTBCN0U3MTEwNDVGQUIwMDBEODIyNEYgLyogSlNNZXNzYWdl
RXZlbnRDdXN0b20uY3BwICovOyB9OwpAQCAtNjk2Nyw2ICs2OTY4LDcgQEAKIAkJMzdGRDQyOTcx
MTgzNjg0NjAwOTNDMDI5IC8qIFRyZWVEZXB0aExpbWl0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFRyZWVEZXB0aExpbWl0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTM4ODhGNkVDMTI4Qzk4ODkwMDBDQThFMCAvKiBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yRmlsZVN5
c3RlbUFnZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzg4OEY2RUQxMjhD
OTg4OTAwMENBOEUwIC8qIEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJM0EyN0MxRDQxMjk3NUJBMTAwMzYxQ0Y0IC8qIEVkaXRpbmdC
b3VuZGFyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFZGl0aW5nQm91bmRh
cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwMDJDQ0IwRjY2RURFRjAwOUU2
NjBEIC8qIFNjcmlwdEZ1bmN0aW9uQ2FsbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTY3JpcHRGdW5jdGlvbkNhbGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDEwMDJDQ0MwRjY2RURFRjAwOUU2NjBEIC8qIFNjcmlwdEZ1bmN0aW9uQ2FsbC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRGdW5jdGlvbkNhbGwuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTBCN0U3MTEwNDVGQUIwMDBEODIyNEYgLyog
SlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTQ1MTIsNiArMTQ1MTQsNyBAQAogCQkJCTkzMzA5RDk1MDk5RTY0OTEwMDU2RTU4MSAv
KiBFZGl0Q29tbWFuZC5oICovLAogCQkJCTRGMTUzNEREMTFCNTMyRUMwMDIxRkQ4NiAvKiBFZGl0
aW5nQmVoYXZpb3IuaCAqLywKIAkJCQk0RjE1MzRERjExQjUzMzAyMDAyMUZEODYgLyogRWRpdGlu
Z0JlaGF2aW9yVHlwZXMuaCAqLywKKwkJCQkzQTI3QzFENDEyOTc1QkExMDAzNjFDRjQgLyogRWRp
dGluZ0JvdW5kYXJ5LmggKi8sCiAJCQkJOUJBQjZDNkIxMjU1MDYzMTAwMTYyNkQ0IC8qIEVkaXRp
bmdTdHlsZS5jcHAgKi8sCiAJCQkJOUJBQjZDNkExMjU1MDYzMTAwMTYyNkQ0IC8qIEVkaXRpbmdT
dHlsZS5oICovLAogCQkJCTRCMzA0M0NBMEFFMDM3M0IwMEE4MjY0NyAvKiBFZGl0b3IuY3BwICov
LApAQCAtMjEyOTEsNiArMjEyOTQsNyBAQAogCQkJCUUxQUQxNDIxMTI5NUVBNkIwMEFDQTk4OSAv
KiBKU0hUTUxFbWJlZEVsZW1lbnRDdXN0b20uaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQUQxNDIz
MTI5NUVBN0YwMEFDQTk4OSAvKiBKU0hUTUxJbnB1dEVsZW1lbnRDdXN0b20uaCBpbiBIZWFkZXJz
ICovLAogCQkJCUUxQUQxNDI1MTI5NUVBOTUwMEFDQTk4OSAvKiBKU0hUTUxPYmplY3RFbGVtZW50
Q3VzdG9tLmggaW4gSGVhZGVycyAqLywKKwkJCQkzQTI3QzFENTEyOTc1QkExMDAzNjFDRjQgLyog
RWRpdGluZ0JvdW5kYXJ5LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9t
L1Bvc2l0aW9uLmNwcCBiL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcAppbmRleCBkNTY2MTNlNzdi
OWQyMTdmMzYyZjQyMzFmNDc5YzU4NjE1ZWU2MTUzLi5iZTE3NWFhOTM0MTgxNjNlN2I1ZTY0N2Y3
ZjJiOTljNzIyZTE5MmVmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKKysr
IGIvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCkBAIC0xMDA2LDcgKzEwMDYsNyBAQCBzdGF0aWMg
UG9zaXRpb24gZG93bnN0cmVhbUlnbm9yaW5nRWRpdGluZ0JvdW5kYXJpZXMoUG9zaXRpb24gcG9z
aXRpb24pCiAgICAgUG9zaXRpb24gbGFzdFBvc2l0aW9uOwogICAgIHdoaWxlIChwb3NpdGlvbiAh
PSBsYXN0UG9zaXRpb24pIHsKICAgICAgICAgbGFzdFBvc2l0aW9uID0gcG9zaXRpb247Ci0gICAg
ICAgIHBvc2l0aW9uID0gcG9zaXRpb24uZG93bnN0cmVhbShQb3NpdGlvbjo6Q2FuQ3Jvc3NFZGl0
aW5nQm91bmRhcnkpOworICAgICAgICBwb3NpdGlvbiA9IHBvc2l0aW9uLmRvd25zdHJlYW0oQ2Fu
Q3Jvc3NFZGl0aW5nQm91bmRhcnkpOwogICAgIH0KICAgICByZXR1cm4gcG9zaXRpb247CiB9CkBA
IC0xMDE2LDcgKzEwMTYsNyBAQCBzdGF0aWMgUG9zaXRpb24gdXBzdHJlYW1JZ25vcmluZ0VkaXRp
bmdCb3VuZGFyaWVzKFBvc2l0aW9uIHBvc2l0aW9uKQogICAgIFBvc2l0aW9uIGxhc3RQb3NpdGlv
bjsKICAgICB3aGlsZSAocG9zaXRpb24gIT0gbGFzdFBvc2l0aW9uKSB7CiAgICAgICAgIGxhc3RQ
b3NpdGlvbiA9IHBvc2l0aW9uOwotICAgICAgICBwb3NpdGlvbiA9IHBvc2l0aW9uLnVwc3RyZWFt
KFBvc2l0aW9uOjpDYW5Dcm9zc0VkaXRpbmdCb3VuZGFyeSk7CisgICAgICAgIHBvc2l0aW9uID0g
cG9zaXRpb24udXBzdHJlYW0oQ2FuQ3Jvc3NFZGl0aW5nQm91bmRhcnkpOwogICAgIH0KICAgICBy
ZXR1cm4gcG9zaXRpb247CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5oIGIv
V2ViQ29yZS9kb20vUG9zaXRpb24uaAppbmRleCA1NTJkNjc1ZmE3MzMxYTZlYWM0YjdkMGIzOTE1
NDZlODMwMjNiN2IzLi40ZDNiNWZlNjg3OGQ2ZTFlMDJmN2M1NWIyZjJlYTQxNzQ1YjM5MWU2IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5oCisrKyBiL1dlYkNvcmUvZG9tL1Bvc2l0
aW9uLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgUG9zaXRpb25faAogCiAjaW5jbHVkZSAi
Q29udGFpbmVyTm9kZS5oIgorI2luY2x1ZGUgIkVkaXRpbmdCb3VuZGFyeS5oIgogI2luY2x1ZGUg
IlRleHRBZmZpbml0eS5oIgogI2luY2x1ZGUgIlRleHREaXJlY3Rpb24uaCIKICNpbmNsdWRlIDx3
dGYvQXNzZXJ0aW9ucy5oPgpAQCAtNTYsMTEgKzU3LDYgQEAgcHVibGljOgogICAgICAgICBQb3Np
dGlvbklzQmVmb3JlQW5jaG9yCiAgICAgfTsKIAotICAgIGVudW0gRWRpdGluZ0JvdW5kYXJ5Q3Jv
c3NpbmdSdWxlIHsKLSAgICAgICAgQ2FuQ3Jvc3NFZGl0aW5nQm91bmRhcnksCi0gICAgICAgIENh
bm5vdENyb3NzRWRpdGluZ0JvdW5kYXJ5Ci0gICAgfTsKLSAgICAKICAgICBQb3NpdGlvbigpCiAg
ICAgICAgIDogbV9vZmZzZXQoMCkKICAgICAgICAgLCBtX2FuY2hvclR5cGUoUG9zaXRpb25Jc09m
ZnNldEluQW5jaG9yKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQuY3BwIGIvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
CmluZGV4IGI2MTdhMjdlYWMxNzg1ODRlYjI1NTQ0ZWE5NjFmM2ExN2YwODMwYjcuLjU5NGE5NGY3
NzA3ZjY5MDczOWE2ZjYwZGM4NmNkYzMxYzg1MDkzMGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9XZWJDb3JlL2VkaXRpbmcvRGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgorI2luY2x1ZGUgIkVkaXRp
bmdCb3VuZGFyeS5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgogI2luY2x1ZGUgIkVkaXRvckNsaWVu
dC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKQEAgLTczOSw4ICs3NDAsOCBAQCB2b2lkIERlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQ6OmRvQXBwbHkoKQogICAgIEVBZmZpbml0eSBhZmZpbml0eSA9IG1f
c2VsZWN0aW9uVG9EZWxldGUuYWZmaW5pdHkoKTsKICAgICAKICAgICBQb3NpdGlvbiBkb3duc3Ry
ZWFtRW5kID0gbV9zZWxlY3Rpb25Ub0RlbGV0ZS5lbmQoKS5kb3duc3RyZWFtKCk7Ci0gICAgbV9u
ZWVkUGxhY2Vob2xkZXIgPSBpc1N0YXJ0T2ZQYXJhZ3JhcGgobV9zZWxlY3Rpb25Ub0RlbGV0ZS52
aXNpYmxlU3RhcnQoKSwgUG9zaXRpb246OkNhbkNyb3NzRWRpdGluZ0JvdW5kYXJ5KQotICAgICAg
ICAgICAgJiYgaXNFbmRPZlBhcmFncmFwaChtX3NlbGVjdGlvblRvRGVsZXRlLnZpc2libGVFbmQo
KSwgUG9zaXRpb246OkNhbkNyb3NzRWRpdGluZ0JvdW5kYXJ5KQorICAgIG1fbmVlZFBsYWNlaG9s
ZGVyID0gaXNTdGFydE9mUGFyYWdyYXBoKG1fc2VsZWN0aW9uVG9EZWxldGUudmlzaWJsZVN0YXJ0
KCksIENhbkNyb3NzRWRpdGluZ0JvdW5kYXJ5KQorICAgICAgICAgICAgJiYgaXNFbmRPZlBhcmFn
cmFwaChtX3NlbGVjdGlvblRvRGVsZXRlLnZpc2libGVFbmQoKSwgQ2FuQ3Jvc3NFZGl0aW5nQm91
bmRhcnkpCiAgICAgICAgICAgICAmJiAhbGluZUJyZWFrRXhpc3RzQXRWaXNpYmxlUG9zaXRpb24o
bV9zZWxlY3Rpb25Ub0RlbGV0ZS52aXNpYmxlRW5kKCkpOwogICAgIGlmIChtX25lZWRQbGFjZWhv
bGRlcikgewogICAgICAgICAvLyBEb24ndCBuZWVkIGEgcGxhY2Vob2xkZXIgd2hlbiBkZWxldGlu
ZyBhIHNlbGVjdGlvbiB0aGF0IHN0YXJ0cyBqdXN0IGJlZm9yZSBhIHRhYmxlCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0JvdW5kYXJ5LmggYi9XZWJDb3JlL2VkaXRpbmcvRWRp
dGluZ0JvdW5kYXJ5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTc0NmRiMjU3YTEzMTlkYzA0NzQ3NWZiNjE2NTY0
ZDE0ZGM2YTUwYwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQm91
bmRhcnkuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDEwIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBFZGl0aW5nQm91bmRhcnlfaAorI2RlZmlu
ZSBFZGl0aW5nQm91bmRhcnlfaAorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gRWRpdGlu
Z0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlIHsKKyAgICBDYW5Dcm9zc0VkaXRpbmdCb3VuZGFyeSwKKyAg
ICBDYW5ub3RDcm9zc0VkaXRpbmdCb3VuZGFyeQorfTsKKworfQorCisjZW5kaWYgLy8gRWRpdGlu
Z0JvdW5kYXJ5X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNw
cCBiL1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcAppbmRleCA3ZDQ2Mzc0YmM2NDJh
YzYzYTg0NzExODkwMDA2YWIxZTI0ZDY2NWNhLi45MWRlNjYzYzVlNWUyYWM4YmZkNmRmOWNiZDY2
YmIyYzA0ODU1YTQ2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5j
cHAKKysrIGIvV2ViQ29yZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwCkBAIC03ODAsNyArNzgw
LDcgQEAgVmlzaWJsZVBvc2l0aW9uIG5leHRTZW50ZW5jZVBvc2l0aW9uKGNvbnN0IFZpc2libGVQ
b3NpdGlvbiAmYykKICAgICByZXR1cm4gYy5ob25vckVkaXRhYmxlQm91bmRhcnlBdE9yQmVmb3Jl
KG5leHQpOwogfQogCi1WaXNpYmxlUG9zaXRpb24gc3RhcnRPZlBhcmFncmFwaChjb25zdCBWaXNp
YmxlUG9zaXRpb24mIGMsIFBvc2l0aW9uOjpFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgYm91
bmRhcnlDcm9zc2luZ1J1bGUpCitWaXNpYmxlUG9zaXRpb24gc3RhcnRPZlBhcmFncmFwaChjb25z
dCBWaXNpYmxlUG9zaXRpb24mIGMsIEVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVsZSBib3VuZGFy
eUNyb3NzaW5nUnVsZSkKIHsKICAgICBQb3NpdGlvbiBwID0gYy5kZWVwRXF1aXZhbGVudCgpOwog
ICAgIE5vZGUgKnN0YXJ0Tm9kZSA9IHAubm9kZSgpOwpAQCAtNzk4LDcgKzc5OCw3IEBAIFZpc2li
bGVQb3NpdGlvbiBzdGFydE9mUGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgYywgUG9z
aXRpb246OkVkaXRpbmdCb3VuCiAKICAgICBOb2RlICpuID0gc3RhcnROb2RlOwogICAgIHdoaWxl
IChuKSB7Ci0gICAgICAgIGlmIChib3VuZGFyeUNyb3NzaW5nUnVsZSA9PSBQb3NpdGlvbjo6Q2Fu
bm90Q3Jvc3NFZGl0aW5nQm91bmRhcnkgJiYgbi0+aXNDb250ZW50RWRpdGFibGUoKSAhPSBzdGFy
dE5vZGUtPmlzQ29udGVudEVkaXRhYmxlKCkpCisgICAgICAgIGlmIChib3VuZGFyeUNyb3NzaW5n
UnVsZSA9PSBDYW5ub3RDcm9zc0VkaXRpbmdCb3VuZGFyeSAmJiBuLT5pc0NvbnRlbnRFZGl0YWJs
ZSgpICE9IHN0YXJ0Tm9kZS0+aXNDb250ZW50RWRpdGFibGUoKSkKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBSZW5kZXJPYmplY3QgKnIgPSBuLT5yZW5kZXJlcigpOwogICAgICAgICBpZiAo
IXIpIHsKQEAgLTgzOSw3ICs4MzksNyBAQCBWaXNpYmxlUG9zaXRpb24gc3RhcnRPZlBhcmFncmFw
aChjb25zdCBWaXNpYmxlUG9zaXRpb24mIGMsIFBvc2l0aW9uOjpFZGl0aW5nQm91bgogICAgIHJl
dHVybiBWaXNpYmxlUG9zaXRpb24obm9kZSwgb2Zmc2V0LCBET1dOU1RSRUFNKTsKIH0KIAotVmlz
aWJsZVBvc2l0aW9uIGVuZE9mUGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmYywgUG9z
aXRpb246OkVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVsZSBib3VuZGFyeUNyb3NzaW5nUnVsZSkK
K1Zpc2libGVQb3NpdGlvbiBlbmRPZlBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24gJmMs
IEVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVsZSBib3VuZGFyeUNyb3NzaW5nUnVsZSkKIHsgICAg
CiAgICAgaWYgKGMuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBWaXNpYmxlUG9zaXRpb24oKTsK
QEAgLTg1OCw3ICs4NTgsNyBAQCBWaXNpYmxlUG9zaXRpb24gZW5kT2ZQYXJhZ3JhcGgoY29uc3Qg
VmlzaWJsZVBvc2l0aW9uICZjLCBQb3NpdGlvbjo6RWRpdGluZ0JvdW5kYQogCiAgICAgTm9kZSAq
biA9IHN0YXJ0Tm9kZTsKICAgICB3aGlsZSAobikgewotICAgICAgICBpZiAoYm91bmRhcnlDcm9z
c2luZ1J1bGUgPT0gUG9zaXRpb246OkNhbm5vdENyb3NzRWRpdGluZ0JvdW5kYXJ5ICYmIG4tPmlz
Q29udGVudEVkaXRhYmxlKCkgIT0gc3RhcnROb2RlLT5pc0NvbnRlbnRFZGl0YWJsZSgpKQorICAg
ICAgICBpZiAoYm91bmRhcnlDcm9zc2luZ1J1bGUgPT0gQ2Fubm90Q3Jvc3NFZGl0aW5nQm91bmRh
cnkgJiYgbi0+aXNDb250ZW50RWRpdGFibGUoKSAhPSBzdGFydE5vZGUtPmlzQ29udGVudEVkaXRh
YmxlKCkpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgUmVuZGVyT2JqZWN0ICpyID0gbi0+
cmVuZGVyZXIoKTsKICAgICAgICAgaWYgKCFyKSB7CkBAIC05MTQsMTIgKzkxNCwxMiBAQCBib29s
IGluU2FtZVBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24gJmEsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiAmYikKICAgICByZXR1cm4gYS5pc05vdE51bGwoKSAmJiBzdGFydE9mUGFyYWdyYXBo
KGEpID09IHN0YXJ0T2ZQYXJhZ3JhcGgoYik7CiB9CiAKLWJvb2wgaXNTdGFydE9mUGFyYWdyYXBo
KGNvbnN0IFZpc2libGVQb3NpdGlvbiAmcG9zLCBQb3NpdGlvbjo6RWRpdGluZ0JvdW5kYXJ5Q3Jv
c3NpbmdSdWxlIGJvdW5kYXJ5Q3Jvc3NpbmdSdWxlKQorYm9vbCBpc1N0YXJ0T2ZQYXJhZ3JhcGgo
Y29uc3QgVmlzaWJsZVBvc2l0aW9uICZwb3MsIEVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVsZSBi
b3VuZGFyeUNyb3NzaW5nUnVsZSkKIHsKICAgICByZXR1cm4gcG9zLmlzTm90TnVsbCgpICYmIHBv
cyA9PSBzdGFydE9mUGFyYWdyYXBoKHBvcywgYm91bmRhcnlDcm9zc2luZ1J1bGUpOwogfQogCi1i
b29sIGlzRW5kT2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uICZwb3MsIFBvc2l0aW9u
OjpFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgYm91bmRhcnlDcm9zc2luZ1J1bGUpCitib29s
IGlzRW5kT2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uICZwb3MsIEVkaXRpbmdCb3Vu
ZGFyeUNyb3NzaW5nUnVsZSBib3VuZGFyeUNyb3NzaW5nUnVsZSkKIHsKICAgICByZXR1cm4gcG9z
LmlzTm90TnVsbCgpICYmIHBvcyA9PSBlbmRPZlBhcmFncmFwaChwb3MsIGJvdW5kYXJ5Q3Jvc3Np
bmdSdWxlKTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmgg
Yi9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5oCmluZGV4IGY3OGY5ZDE0OWZlODMxZjg5
ODAzNDEzYmU1MWIzMGVkOTU4MjgxYWEuLjk4YTUzMzIzYjhmNzM3MTkxYjkwMTg0MDdiMzQyN2E4
ZmJlZGY2NmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmgKKysr
IGIvV2ViQ29yZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMuaApAQCAtMjcsNiArMjcsNyBAQAogI2Rl
ZmluZSB2aXNpYmxlX3VuaXRzX2gKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAi
RWRpdGluZ0JvdW5kYXJ5LmgiCiAjaW5jbHVkZSAiUG9zaXRpb24uaCIKICNpbmNsdWRlICJUZXh0
QWZmaW5pdHkuaCIKIApAQCAtNjEsMTMgKzYyLDEzIEBAIFZpc2libGVQb3NpdGlvbiBsb2dpY2Fs
U3RhcnRPZkxpbmUoY29uc3QgVmlzaWJsZVBvc2l0aW9uICYpOwogVmlzaWJsZVBvc2l0aW9uIGxv
Z2ljYWxFbmRPZkxpbmUoY29uc3QgVmlzaWJsZVBvc2l0aW9uICYpOwogCiAvLyBwYXJhZ3JhcGhz
IChwZXJoYXBzIGEgbWlzbm9tZXIsIGNhbiBiZSBkaXZpZGVkIGJ5IGxpbmUgYnJlYWsgZWxlbWVu
dHMpCi1WaXNpYmxlUG9zaXRpb24gc3RhcnRPZlBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRp
b24mLCBQb3NpdGlvbjo6RWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlID0gUG9zaXRpb246OkNh
bm5vdENyb3NzRWRpdGluZ0JvdW5kYXJ5KTsKLVZpc2libGVQb3NpdGlvbiBlbmRPZlBhcmFncmFw
aChjb25zdCBWaXNpYmxlUG9zaXRpb24mLCBQb3NpdGlvbjo6RWRpdGluZ0JvdW5kYXJ5Q3Jvc3Np
bmdSdWxlID0gUG9zaXRpb246OkNhbm5vdENyb3NzRWRpdGluZ0JvdW5kYXJ5KTsKK1Zpc2libGVQ
b3NpdGlvbiBzdGFydE9mUGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiYsIEVkaXRpbmdC
b3VuZGFyeUNyb3NzaW5nUnVsZSA9IENhbm5vdENyb3NzRWRpdGluZ0JvdW5kYXJ5KTsKK1Zpc2li
bGVQb3NpdGlvbiBlbmRPZlBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24mLCBFZGl0aW5n
Qm91bmRhcnlDcm9zc2luZ1J1bGUgPSBDYW5ub3RDcm9zc0VkaXRpbmdCb3VuZGFyeSk7CiBWaXNp
YmxlUG9zaXRpb24gc3RhcnRPZk5leHRQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7
CiBWaXNpYmxlUG9zaXRpb24gcHJldmlvdXNQYXJhZ3JhcGhQb3NpdGlvbihjb25zdCBWaXNpYmxl
UG9zaXRpb24gJiwgaW50IHgpOwogVmlzaWJsZVBvc2l0aW9uIG5leHRQYXJhZ3JhcGhQb3NpdGlv
bihjb25zdCBWaXNpYmxlUG9zaXRpb24gJiwgaW50IHgpOwotYm9vbCBpc1N0YXJ0T2ZQYXJhZ3Jh
cGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uICYsIFBvc2l0aW9uOjpFZGl0aW5nQm91bmRhcnlDcm9z
c2luZ1J1bGUgPSBQb3NpdGlvbjo6Q2Fubm90Q3Jvc3NFZGl0aW5nQm91bmRhcnkpOwotYm9vbCBp
c0VuZE9mUGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmLCBQb3NpdGlvbjo6RWRpdGlu
Z0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlID0gUG9zaXRpb246OkNhbm5vdENyb3NzRWRpdGluZ0JvdW5k
YXJ5KTsKK2Jvb2wgaXNTdGFydE9mUGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmLCBF
ZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgPSBDYW5ub3RDcm9zc0VkaXRpbmdCb3VuZGFyeSk7
Citib29sIGlzRW5kT2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uICYsIEVkaXRpbmdC
b3VuZGFyeUNyb3NzaW5nUnVsZSA9IENhbm5vdENyb3NzRWRpdGluZ0JvdW5kYXJ5KTsKIGJvb2wg
aW5TYW1lUGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmLCBjb25zdCBWaXNpYmxlUG9z
aXRpb24gJik7CiAKIC8vIGJsb2NrcyAodHJ1ZSBwYXJhZ3JhcGhzOyBsaW5lIGJyZWFrIGVsZW1l
bnRzIGRvbid0IGJyZWFrIGJsb2NrcykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmluZGV4
IGUxM2IxZjllYzc0YjM3YzMzNmIwMzA5NDU5NjY5NjVhMmYyYjdiMGUuLmIwZTc0YWU1OWQ2OGNh
MzY3MjM1ZDM4MWNkODNjZWJhMjdmZDQ4ZTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNw
cApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNTU1N0
eWxlU2VsZWN0b3IuaCIKICNpbmNsdWRlICJEYXNoQXJyYXkuaCIKKyNpbmNsdWRlICJFZGl0aW5n
Qm91bmRhcnkuaCIKICNpbmNsdWRlICJGbG9hdFF1YWQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgog
I2luY2x1ZGUgIkZyYW1lVmlldy5oIgpAQCAtMjYzOSwxMCArMjY0MCwxMCBAQCBWaXNpYmxlUG9z
aXRpb24gUmVuZGVyT2JqZWN0OjpjcmVhdGVWaXNpYmxlUG9zaXRpb24oaW50IG9mZnNldCwgRUFm
ZmluaXR5IGFmZmluaQogICAgICAgICBpZiAoIW5vZGUtPmlzQ29udGVudEVkaXRhYmxlKCkpIHsK
ICAgICAgICAgICAgIC8vIElmIGl0IGNhbiBiZSBmb3VuZCwgd2UgcHJlZmVyIGEgdmlzdWFsbHkg
ZXF1aXZhbGVudCBwb3NpdGlvbiB0aGF0IGlzIGVkaXRhYmxlLiAKICAgICAgICAgICAgIFBvc2l0
aW9uIHBvc2l0aW9uKG5vZGUsIG9mZnNldCk7Ci0gICAgICAgICAgICBQb3NpdGlvbiBjYW5kaWRh
dGUgPSBwb3NpdGlvbi5kb3duc3RyZWFtKFBvc2l0aW9uOjpDYW5Dcm9zc0VkaXRpbmdCb3VuZGFy
eSk7CisgICAgICAgICAgICBQb3NpdGlvbiBjYW5kaWRhdGUgPSBwb3NpdGlvbi5kb3duc3RyZWFt
KENhbkNyb3NzRWRpdGluZ0JvdW5kYXJ5KTsKICAgICAgICAgICAgIGlmIChjYW5kaWRhdGUubm9k
ZSgpLT5pc0NvbnRlbnRFZGl0YWJsZSgpKQogICAgICAgICAgICAgICAgIHJldHVybiBWaXNpYmxl
UG9zaXRpb24oY2FuZGlkYXRlLCBhZmZpbml0eSk7Ci0gICAgICAgICAgICBjYW5kaWRhdGUgPSBw
b3NpdGlvbi51cHN0cmVhbShQb3NpdGlvbjo6Q2FuQ3Jvc3NFZGl0aW5nQm91bmRhcnkpOworICAg
ICAgICAgICAgY2FuZGlkYXRlID0gcG9zaXRpb24udXBzdHJlYW0oQ2FuQ3Jvc3NFZGl0aW5nQm91
bmRhcnkpOwogICAgICAgICAgICAgaWYgKGNhbmRpZGF0ZS5ub2RlKCktPmlzQ29udGVudEVkaXRh
YmxlKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIFZpc2libGVQb3NpdGlvbihjYW5kaWRhdGUs
IGFmZmluaXR5KTsKICAgICAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74457</attachid>
            <date>2010-11-19 19:16:49 -0800</date>
            <delta_ts>2010-11-22 10:25:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49630-20101120141646.patch</filename>
            <type>text/plain</type>
            <size>18138</size>
            <attacher name="Benjamin (Ben) Kalman">kalman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OWM3YTU1YzZiYmQ3N2Y0MGI0MzlhNGM1YzFlOGM2NWI4ZTMwODYzMi4uYTU4NmE1MjMyZTJjOWUz
ZWU0MmQ2NGE5YzQ3NzM1NmJlNzY2ODRkYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMC0xMS0xOSAgQmVu
amFtaW4gS2FsbWFuICA8a2FsbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIFBvc2l0aW9uOjpFZGl0aW5nQm91bmRh
cnlDcm9zc2luZ1J1bGUgdG8gYSBuZXcgaGVhZGVyIGZpbGUKKyAgICAgICAgKEVkaXRpbmdCb3Vu
ZGFyeS5oKSBhbmQgdXBkYXRlIHJlZmVyZW5jZXMgaW4gb3RoZXIgZmlsZXMuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTYzMAorCisgICAgICAgICog
R05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNv
cmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vUG9z
aXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZG93bnN0cmVhbUlnbm9yaW5nRWRpdGluZ0Jv
dW5kYXJpZXMpOgorICAgICAgICAoV2ViQ29yZTo6dXBzdHJlYW1JZ25vcmluZ0VkaXRpbmdCb3Vu
ZGFyaWVzKToKKyAgICAgICAgKiBkb20vUG9zaXRpb24uaDoKKyAgICAgICAgKiBlZGl0aW5nL0Rl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgICogZWRpdGluZy9FZGl0aW5nQm91bmRhcnku
aDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnN0YXJ0T2ZQYXJhZ3JhcGgpOgorICAgICAgICAoV2ViQ29yZTo6ZW5kT2ZQYXJh
Z3JhcGgpOgorICAgICAgICAoV2ViQ29yZTo6aXNTdGFydE9mUGFyYWdyYXBoKToKKyAgICAgICAg
KFdlYkNvcmU6OmlzRW5kT2ZQYXJhZ3JhcGgpOgorICAgICAgICAqIGVkaXRpbmcvdmlzaWJsZV91
bml0cy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpjcmVhdGVWaXNpYmxlUG9zaXRpb24pOgorCiAyMDEwLTEx
LTE5ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IGU4ZWIzODY0NzUzZTQ5MDU5Nzc4YTE2NGNjYjli
ZDIzN2JlYjZkY2UuLjUyZDQ1NjQzOTU3YTE2NzljZTk4ZjE3ZWVhNzk0NGZiYzZhZDE2NzMgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmls
ZS5hbQpAQCAtMTI4OCw2ICsxMjg4LDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3Jl
L2VkaXRpbmcvRWRpdENvbW1hbmQuaCBcCiAJV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdCZWhhdmlv
ci5oIFwKIAlXZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yVHlwZXMuaCBcCisJV2ViQ29y
ZS9lZGl0aW5nL0VkaXRpbmdCb3VuZGFyeS5oIFwKIAlXZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0
eWxlLmNwcCBcCiAJV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5oIFwKIAlXZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5
cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBhZjc4MmE2YmVlYmIyY2Q1NDZmZjM4YjZk
MDc4NjhjZjU1NTlhMWRkLi5iMWViN2Q4Yzk3ZWFmYTNkYWRmMzJmY2U0ZTY1OThjY2MzNTJhOWZm
IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQpAQCAtMTM2OSw2ICsxMzY5LDcgQEAKICAgICAgICAgICAgICdlZGl0aW5nL0VkaXRDb21t
YW5kLmgnLAogICAgICAgICAgICAgJ2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yLmgnLAogICAgICAg
ICAgICAgJ2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yVHlwZXMuaCcsCisgICAgICAgICAgICAnZWRp
dGluZy9FZGl0aW5nQm91bmRhcnkuaCcsCiAgICAgICAgICAgICAnZWRpdGluZy9FZGl0aW5nU3R5
bGUuY3BwJywKICAgICAgICAgICAgICdlZGl0aW5nL0VkaXRpbmdTdHlsZS5oJywKICAgICAgICAg
ICAgICdlZGl0aW5nL0VkaXRvci5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBy
byBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggNjcxNDg5MzQwMWU4MDIwZTIyNjliYjUzNDc1
YjM2YWY5ZTVhOTZhZC4uODYwOGZiOWRmMDY5OWQ1MDk0MjBhMDRjZGI0MmFhYWEzZWJiZWJkZSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJv
CkBAIC0xNjk2LDYgKzE2OTYsNyBAQCBIRUFERVJTICs9IFwKICAgICBlZGl0aW5nL0VkaXRDb21t
YW5kLmggXAogICAgIGVkaXRpbmcvRWRpdGluZ1N0eWxlLmggXAogICAgIGVkaXRpbmcvRWRpdGlu
Z0JlaGF2aW9yLmggXAorICAgIGVkaXRpbmcvRWRpdGluZ0JvdW5kYXJ5LmggXAogICAgIGVkaXRp
bmcvRWRpdG9yLmggXAogICAgIGVkaXRpbmcvRm9ybWF0QmxvY2tDb21tYW5kLmggXAogICAgIGVk
aXRpbmcvaHRtbGVkaXRpbmcuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpp
bmRleCBlMjdkNTI5ZThiMzQzZjhmMDNhM2RjM2JjYjNkZjQwYTMwNjE0MDY1Li5mMzBiMDE1ZDE1
MTcyNTRhOTk1OGIyMGQ5YzAzNTBkYTg2NDBlZjgyIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKQEAgLTQ2MDc5LDYgKzQ2MDc5LDEwIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4N
CiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGVkaXRpbmdcRWRpdGluZ0JvdW5kYXJ5
LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIu
LlxlZGl0aW5nXERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIuY3BwIg0KIAkJCQk+DQogCQkJCTxGaWxl
Q29uZmlndXJhdGlvbg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggYzMyNjZhMTBlMWM4ZGQxY2MwYzEyNjA5OTk0ZGEzMGRlZWYwMDUzZS4uMTU1NTk2Mjc2
MDIwODc0NzRiOGVhZDYyMGNjN2MwN2E0Mzg4M2QxNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg5Niw2ICs4OTYsNyBAQAogCQkzN0ZENDI5ODExODM2
ODQ2MDA5M0MwMjkgLyogVHJlZURlcHRoTGltaXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RkQ0Mjk3MTE4MzY4NDYwMDkzQzAyOSAvKiBUcmVlRGVw
dGhMaW1pdC5oICovOyB9OwogCQkzODg4RjZFRTEyOEM5ODg5MDAwQ0E4RTAgLyogSW5zcGVjdG9y
RmlsZVN5c3RlbUFnZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDM4ODhGNkVDMTI4Qzk4ODkwMDBDQThFMCAvKiBJbnNwZWN0b3JGaWxlU3lzdGVt
QWdlbnQuY3BwICovOyB9OwogCQkzODg4RjZFRjEyOEM5ODg5MDAwQ0E4RTAgLyogSW5zcGVjdG9y
RmlsZVN5c3RlbUFnZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzODg4RjZFRDEyOEM5ODg5MDAwQ0E4RTAgLyogSW5zcGVjdG9yRmlsZVN5c3RlbUFn
ZW50LmggKi87IH07CisJCTNBMjdDMUQ1MTI5NzVCQTEwMDM2MUNGNCAvKiBFZGl0aW5nQm91bmRh
cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNBMjdD
MUQ0MTI5NzVCQTEwMDM2MUNGNCAvKiBFZGl0aW5nQm91bmRhcnkuaCAqLzsgfTsKIAkJNDEwMDJD
Q0QwRjY2RURFRjAwOUU2NjBEIC8qIFNjcmlwdEZ1bmN0aW9uQ2FsbC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDJDQ0IwRjY2RURFRjAwOUU2NjBE
IC8qIFNjcmlwdEZ1bmN0aW9uQ2FsbC5oICovOyB9OwogCQk0MTAwMkNDRTBGNjZFREVGMDA5RTY2
MEQgLyogU2NyaXB0RnVuY3Rpb25DYWxsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDAyQ0NDMEY2NkVERUYwMDlFNjYwRCAvKiBTY3JpcHRGdW5j
dGlvbkNhbGwuY3BwICovOyB9OwogCQk0MTBCN0U3MjEwNDVGQUIwMDBEODIyNEYgLyogSlNNZXNz
YWdlRXZlbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDEwQjdFNzExMDQ1RkFCMDAwRDgyMjRGIC8qIEpTTWVzc2FnZUV2ZW50Q3VzdG9t
LmNwcCAqLzsgfTsKQEAgLTY5NjcsNiArNjk2OCw3IEBACiAJCTM3RkQ0Mjk3MTE4MzY4NDYwMDkz
QzAyOSAvKiBUcmVlRGVwdGhMaW1pdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBUcmVlRGVwdGhMaW1pdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzODg4RjZF
QzEyOEM5ODg5MDAwQ0E4RTAgLyogSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTM4ODhGNkVEMTI4Qzk4ODkwMDBDQThF
MCAvKiBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTNBMjdDMUQ0MTI5NzVCQTEwMDM2MUNGNCAvKiBFZGl0aW5nQm91bmRhcnkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRWRpdGluZ0JvdW5kYXJ5Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMDAyQ0NCMEY2NkVERUYwMDlFNjYwRCAvKiBTY3Jp
cHRGdW5jdGlvbkNhbGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0
RnVuY3Rpb25DYWxsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMDAyQ0NDMEY2
NkVERUYwMDlFNjYwRCAvKiBTY3JpcHRGdW5jdGlvbkNhbGwuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU2NyaXB0RnVuY3Rpb25DYWxsLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDEwQjdFNzExMDQ1RkFCMDAwRDgyMjRGIC8qIEpTTWVzc2FnZUV2
ZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVz
c2FnZUV2ZW50Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0NTEy
LDYgKzE0NTE0LDcgQEAKIAkJCQk5MzMwOUQ5NTA5OUU2NDkxMDA1NkU1ODEgLyogRWRpdENvbW1h
bmQuaCAqLywKIAkJCQk0RjE1MzRERDExQjUzMkVDMDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9y
LmggKi8sCiAJCQkJNEYxNTM0REYxMUI1MzMwMjAwMjFGRDg2IC8qIEVkaXRpbmdCZWhhdmlvclR5
cGVzLmggKi8sCisJCQkJM0EyN0MxRDQxMjk3NUJBMTAwMzYxQ0Y0IC8qIEVkaXRpbmdCb3VuZGFy
eS5oICovLAogCQkJCTlCQUI2QzZCMTI1NTA2MzEwMDE2MjZENCAvKiBFZGl0aW5nU3R5bGUuY3Bw
ICovLAogCQkJCTlCQUI2QzZBMTI1NTA2MzEwMDE2MjZENCAvKiBFZGl0aW5nU3R5bGUuaCAqLywK
IAkJCQk0QjMwNDNDQTBBRTAzNzNCMDBBODI2NDcgLyogRWRpdG9yLmNwcCAqLywKQEAgLTIxMjkx
LDYgKzIxMjk0LDcgQEAKIAkJCQlFMUFEMTQyMTEyOTVFQTZCMDBBQ0E5ODkgLyogSlNIVE1MRW1i
ZWRFbGVtZW50Q3VzdG9tLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUFEMTQyMzEyOTVFQTdGMDBB
Q0E5ODkgLyogSlNIVE1MSW5wdXRFbGVtZW50Q3VzdG9tLmggaW4gSGVhZGVycyAqLywKIAkJCQlF
MUFEMTQyNTEyOTVFQTk1MDBBQ0E5ODkgLyogSlNIVE1MT2JqZWN0RWxlbWVudEN1c3RvbS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJM0EyN0MxRDUxMjk3NUJBMTAwMzYxQ0Y0IC8qIEVkaXRpbmdCb3Vu
ZGFyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5j
cHAgYi9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKaW5kZXggZDU2NjEzZTc3YjlkMjE3ZjM2MmY0
MjMxZjQ3OWM1ODYxNWVlNjE1My4uYmUxNzVhYTkzNDE4MTYzZTdiNWU2NDdmN2YyYjk5YzcyMmUx
OTJlZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCisrKyBiL1dlYkNvcmUv
ZG9tL1Bvc2l0aW9uLmNwcApAQCAtMTAwNiw3ICsxMDA2LDcgQEAgc3RhdGljIFBvc2l0aW9uIGRv
d25zdHJlYW1JZ25vcmluZ0VkaXRpbmdCb3VuZGFyaWVzKFBvc2l0aW9uIHBvc2l0aW9uKQogICAg
IFBvc2l0aW9uIGxhc3RQb3NpdGlvbjsKICAgICB3aGlsZSAocG9zaXRpb24gIT0gbGFzdFBvc2l0
aW9uKSB7CiAgICAgICAgIGxhc3RQb3NpdGlvbiA9IHBvc2l0aW9uOwotICAgICAgICBwb3NpdGlv
biA9IHBvc2l0aW9uLmRvd25zdHJlYW0oUG9zaXRpb246OkNhbkNyb3NzRWRpdGluZ0JvdW5kYXJ5
KTsKKyAgICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbi5kb3duc3RyZWFtKENhbkNyb3NzRWRpdGlu
Z0JvdW5kYXJ5KTsKICAgICB9CiAgICAgcmV0dXJuIHBvc2l0aW9uOwogfQpAQCAtMTAxNiw3ICsx
MDE2LDcgQEAgc3RhdGljIFBvc2l0aW9uIHVwc3RyZWFtSWdub3JpbmdFZGl0aW5nQm91bmRhcmll
cyhQb3NpdGlvbiBwb3NpdGlvbikKICAgICBQb3NpdGlvbiBsYXN0UG9zaXRpb247CiAgICAgd2hp
bGUgKHBvc2l0aW9uICE9IGxhc3RQb3NpdGlvbikgewogICAgICAgICBsYXN0UG9zaXRpb24gPSBw
b3NpdGlvbjsKLSAgICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbi51cHN0cmVhbShQb3NpdGlvbjo6
Q2FuQ3Jvc3NFZGl0aW5nQm91bmRhcnkpOworICAgICAgICBwb3NpdGlvbiA9IHBvc2l0aW9uLnVw
c3RyZWFtKENhbkNyb3NzRWRpdGluZ0JvdW5kYXJ5KTsKICAgICB9CiAgICAgcmV0dXJuIHBvc2l0
aW9uOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vUG9zaXRpb24uaCBiL1dlYkNvcmUvZG9t
L1Bvc2l0aW9uLmgKaW5kZXggNTUyZDY3NWZhNzMzMWE2ZWFjNGI3ZDBiMzkxNTQ2ZTgzMDIzYjdi
My4uNGQzYjVmZTY4NzhkNmUxZTAyZjdjNTViMmYyZWE0MTc0NWIzOTFlNiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9kb20vUG9zaXRpb24uaAorKysgYi9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5oCkBAIC0y
Nyw2ICsyNyw3IEBACiAjZGVmaW5lIFBvc2l0aW9uX2gKIAogI2luY2x1ZGUgIkNvbnRhaW5lck5v
ZGUuaCIKKyNpbmNsdWRlICJFZGl0aW5nQm91bmRhcnkuaCIKICNpbmNsdWRlICJUZXh0QWZmaW5p
dHkuaCIKICNpbmNsdWRlICJUZXh0RGlyZWN0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlv
bnMuaD4KQEAgLTU2LDExICs1Nyw2IEBAIHB1YmxpYzoKICAgICAgICAgUG9zaXRpb25Jc0JlZm9y
ZUFuY2hvcgogICAgIH07CiAKLSAgICBlbnVtIEVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVsZSB7
Ci0gICAgICAgIENhbkNyb3NzRWRpdGluZ0JvdW5kYXJ5LAotICAgICAgICBDYW5ub3RDcm9zc0Vk
aXRpbmdCb3VuZGFyeQotICAgIH07Ci0gICAgCiAgICAgUG9zaXRpb24oKQogICAgICAgICA6IG1f
b2Zmc2V0KDApCiAgICAgICAgICwgbV9hbmNob3JUeXBlKFBvc2l0aW9uSXNPZmZzZXRJbkFuY2hv
cikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNw
cCBiL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRleCBiNjE3
YTI3ZWFjMTc4NTg0ZWIyNTU0NGVhOTYxZjNhMTdmMDgzMGI3Li41OTRhOTRmNzcwN2Y2OTA3Mzlh
NmY2MGRjODZjZGMzMWM4NTA5MzBmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgog
I2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKKyNpbmNsdWRlICJFZGl0aW5nQm91bmRhcnku
aCIKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKICNpbmNs
dWRlICJFbGVtZW50LmgiCkBAIC03MzksOCArNzQwLDggQEAgdm9pZCBEZWxldGVTZWxlY3Rpb25D
b21tYW5kOjpkb0FwcGx5KCkKICAgICBFQWZmaW5pdHkgYWZmaW5pdHkgPSBtX3NlbGVjdGlvblRv
RGVsZXRlLmFmZmluaXR5KCk7CiAgICAgCiAgICAgUG9zaXRpb24gZG93bnN0cmVhbUVuZCA9IG1f
c2VsZWN0aW9uVG9EZWxldGUuZW5kKCkuZG93bnN0cmVhbSgpOwotICAgIG1fbmVlZFBsYWNlaG9s
ZGVyID0gaXNTdGFydE9mUGFyYWdyYXBoKG1fc2VsZWN0aW9uVG9EZWxldGUudmlzaWJsZVN0YXJ0
KCksIFBvc2l0aW9uOjpDYW5Dcm9zc0VkaXRpbmdCb3VuZGFyeSkKLSAgICAgICAgICAgICYmIGlz
RW5kT2ZQYXJhZ3JhcGgobV9zZWxlY3Rpb25Ub0RlbGV0ZS52aXNpYmxlRW5kKCksIFBvc2l0aW9u
OjpDYW5Dcm9zc0VkaXRpbmdCb3VuZGFyeSkKKyAgICBtX25lZWRQbGFjZWhvbGRlciA9IGlzU3Rh
cnRPZlBhcmFncmFwaChtX3NlbGVjdGlvblRvRGVsZXRlLnZpc2libGVTdGFydCgpLCBDYW5Dcm9z
c0VkaXRpbmdCb3VuZGFyeSkKKyAgICAgICAgICAgICYmIGlzRW5kT2ZQYXJhZ3JhcGgobV9zZWxl
Y3Rpb25Ub0RlbGV0ZS52aXNpYmxlRW5kKCksIENhbkNyb3NzRWRpdGluZ0JvdW5kYXJ5KQogICAg
ICAgICAgICAgJiYgIWxpbmVCcmVha0V4aXN0c0F0VmlzaWJsZVBvc2l0aW9uKG1fc2VsZWN0aW9u
VG9EZWxldGUudmlzaWJsZUVuZCgpKTsKICAgICBpZiAobV9uZWVkUGxhY2Vob2xkZXIpIHsKICAg
ICAgICAgLy8gRG9uJ3QgbmVlZCBhIHBsYWNlaG9sZGVyIHdoZW4gZGVsZXRpbmcgYSBzZWxlY3Rp
b24gdGhhdCBzdGFydHMganVzdCBiZWZvcmUgYSB0YWJsZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRpbmdCb3VuZGFyeS5oIGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdCb3VuZGFy
eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjU3NDZkYjI1N2ExMzE5ZGMwNDc0NzVmYjYxNjU2NGQxNGRjNmE1MGMK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0JvdW5kYXJ5LmgKQEAg
LTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICog
bWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgRWRpdGluZ0JvdW5kYXJ5X2gKKyNkZWZpbmUgRWRpdGluZ0Jv
dW5kYXJ5X2gKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIEVkaXRpbmdCb3VuZGFyeUNy
b3NzaW5nUnVsZSB7CisgICAgQ2FuQ3Jvc3NFZGl0aW5nQm91bmRhcnksCisgICAgQ2Fubm90Q3Jv
c3NFZGl0aW5nQm91bmRhcnkKK307CisKK30KKworI2VuZGlmIC8vIEVkaXRpbmdCb3VuZGFyeV9o
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5jcHAgYi9XZWJDb3Jl
L2VkaXRpbmcvdmlzaWJsZV91bml0cy5jcHAKaW5kZXggN2Q0NjM3NGJjNjQyYWM2M2E4NDcxMTg5
MDAwNmFiMWUyNGQ2NjVjYS4uOTFkZTY2M2M1ZTVlMmFjOGJmZDZkZjljYmQ2NmJiMmMwNDg1NWE0
NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwCisrKyBiL1dl
YkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcApAQCAtNzgwLDcgKzc4MCw3IEBAIFZpc2li
bGVQb3NpdGlvbiBuZXh0U2VudGVuY2VQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24gJmMp
CiAgICAgcmV0dXJuIGMuaG9ub3JFZGl0YWJsZUJvdW5kYXJ5QXRPckJlZm9yZShuZXh0KTsKIH0K
IAotVmlzaWJsZVBvc2l0aW9uIHN0YXJ0T2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9u
JiBjLCBQb3NpdGlvbjo6RWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlIGJvdW5kYXJ5Q3Jvc3Np
bmdSdWxlKQorVmlzaWJsZVBvc2l0aW9uIHN0YXJ0T2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBv
c2l0aW9uJiBjLCBFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgYm91bmRhcnlDcm9zc2luZ1J1
bGUpCiB7CiAgICAgUG9zaXRpb24gcCA9IGMuZGVlcEVxdWl2YWxlbnQoKTsKICAgICBOb2RlICpz
dGFydE5vZGUgPSBwLm5vZGUoKTsKQEAgLTc5OCw3ICs3OTgsNyBAQCBWaXNpYmxlUG9zaXRpb24g
c3RhcnRPZlBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24mIGMsIFBvc2l0aW9uOjpFZGl0
aW5nQm91bgogCiAgICAgTm9kZSAqbiA9IHN0YXJ0Tm9kZTsKICAgICB3aGlsZSAobikgewotICAg
ICAgICBpZiAoYm91bmRhcnlDcm9zc2luZ1J1bGUgPT0gUG9zaXRpb246OkNhbm5vdENyb3NzRWRp
dGluZ0JvdW5kYXJ5ICYmIG4tPmlzQ29udGVudEVkaXRhYmxlKCkgIT0gc3RhcnROb2RlLT5pc0Nv
bnRlbnRFZGl0YWJsZSgpKQorICAgICAgICBpZiAoYm91bmRhcnlDcm9zc2luZ1J1bGUgPT0gQ2Fu
bm90Q3Jvc3NFZGl0aW5nQm91bmRhcnkgJiYgbi0+aXNDb250ZW50RWRpdGFibGUoKSAhPSBzdGFy
dE5vZGUtPmlzQ29udGVudEVkaXRhYmxlKCkpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
UmVuZGVyT2JqZWN0ICpyID0gbi0+cmVuZGVyZXIoKTsKICAgICAgICAgaWYgKCFyKSB7CkBAIC04
MzksNyArODM5LDcgQEAgVmlzaWJsZVBvc2l0aW9uIHN0YXJ0T2ZQYXJhZ3JhcGgoY29uc3QgVmlz
aWJsZVBvc2l0aW9uJiBjLCBQb3NpdGlvbjo6RWRpdGluZ0JvdW4KICAgICByZXR1cm4gVmlzaWJs
ZVBvc2l0aW9uKG5vZGUsIG9mZnNldCwgRE9XTlNUUkVBTSk7CiB9CiAKLVZpc2libGVQb3NpdGlv
biBlbmRPZlBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24gJmMsIFBvc2l0aW9uOjpFZGl0
aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgYm91bmRhcnlDcm9zc2luZ1J1bGUpCitWaXNpYmxlUG9z
aXRpb24gZW5kT2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uICZjLCBFZGl0aW5nQm91
bmRhcnlDcm9zc2luZ1J1bGUgYm91bmRhcnlDcm9zc2luZ1J1bGUpCiB7ICAgIAogICAgIGlmIChj
LmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gVmlzaWJsZVBvc2l0aW9uKCk7CkBAIC04NTgsNyAr
ODU4LDcgQEAgVmlzaWJsZVBvc2l0aW9uIGVuZE9mUGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3Np
dGlvbiAmYywgUG9zaXRpb246OkVkaXRpbmdCb3VuZGEKIAogICAgIE5vZGUgKm4gPSBzdGFydE5v
ZGU7CiAgICAgd2hpbGUgKG4pIHsKLSAgICAgICAgaWYgKGJvdW5kYXJ5Q3Jvc3NpbmdSdWxlID09
IFBvc2l0aW9uOjpDYW5ub3RDcm9zc0VkaXRpbmdCb3VuZGFyeSAmJiBuLT5pc0NvbnRlbnRFZGl0
YWJsZSgpICE9IHN0YXJ0Tm9kZS0+aXNDb250ZW50RWRpdGFibGUoKSkKKyAgICAgICAgaWYgKGJv
dW5kYXJ5Q3Jvc3NpbmdSdWxlID09IENhbm5vdENyb3NzRWRpdGluZ0JvdW5kYXJ5ICYmIG4tPmlz
Q29udGVudEVkaXRhYmxlKCkgIT0gc3RhcnROb2RlLT5pc0NvbnRlbnRFZGl0YWJsZSgpKQogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIFJlbmRlck9iamVjdCAqciA9IG4tPnJlbmRlcmVyKCk7
CiAgICAgICAgIGlmICghcikgewpAQCAtOTE0LDEyICs5MTQsMTIgQEAgYm9vbCBpblNhbWVQYXJh
Z3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uICZhLCBjb25zdCBWaXNpYmxlUG9zaXRpb24gJmIp
CiAgICAgcmV0dXJuIGEuaXNOb3ROdWxsKCkgJiYgc3RhcnRPZlBhcmFncmFwaChhKSA9PSBzdGFy
dE9mUGFyYWdyYXBoKGIpOwogfQogCi1ib29sIGlzU3RhcnRPZlBhcmFncmFwaChjb25zdCBWaXNp
YmxlUG9zaXRpb24gJnBvcywgUG9zaXRpb246OkVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVsZSBi
b3VuZGFyeUNyb3NzaW5nUnVsZSkKK2Jvb2wgaXNTdGFydE9mUGFyYWdyYXBoKGNvbnN0IFZpc2li
bGVQb3NpdGlvbiAmcG9zLCBFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgYm91bmRhcnlDcm9z
c2luZ1J1bGUpCiB7CiAgICAgcmV0dXJuIHBvcy5pc05vdE51bGwoKSAmJiBwb3MgPT0gc3RhcnRP
ZlBhcmFncmFwaChwb3MsIGJvdW5kYXJ5Q3Jvc3NpbmdSdWxlKTsKIH0KIAotYm9vbCBpc0VuZE9m
UGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmcG9zLCBQb3NpdGlvbjo6RWRpdGluZ0Jv
dW5kYXJ5Q3Jvc3NpbmdSdWxlIGJvdW5kYXJ5Q3Jvc3NpbmdSdWxlKQorYm9vbCBpc0VuZE9mUGFy
YWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmcG9zLCBFZGl0aW5nQm91bmRhcnlDcm9zc2lu
Z1J1bGUgYm91bmRhcnlDcm9zc2luZ1J1bGUpCiB7CiAgICAgcmV0dXJuIHBvcy5pc05vdE51bGwo
KSAmJiBwb3MgPT0gZW5kT2ZQYXJhZ3JhcGgocG9zLCBib3VuZGFyeUNyb3NzaW5nUnVsZSk7CiB9
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5oIGIvV2ViQ29yZS9l
ZGl0aW5nL3Zpc2libGVfdW5pdHMuaAppbmRleCBmNzhmOWQxNDlmZTgzMWY4OTgwMzQxM2JlNTFi
MzBlZDk1ODI4MWFhLi45OGE1MzMyM2I4ZjczNzE5MWI5MDE4NDA3YjM0MjdhOGZiZWRmNjZkIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5oCisrKyBiL1dlYkNvcmUv
ZWRpdGluZy92aXNpYmxlX3VuaXRzLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgdmlzaWJs
ZV91bml0c19oCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkVkaXRpbmdCb3Vu
ZGFyeS5oIgogI2luY2x1ZGUgIlBvc2l0aW9uLmgiCiAjaW5jbHVkZSAiVGV4dEFmZmluaXR5Lmgi
CiAKQEAgLTYxLDEzICs2MiwxMyBAQCBWaXNpYmxlUG9zaXRpb24gbG9naWNhbFN0YXJ0T2ZMaW5l
KGNvbnN0IFZpc2libGVQb3NpdGlvbiAmKTsKIFZpc2libGVQb3NpdGlvbiBsb2dpY2FsRW5kT2ZM
aW5lKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmKTsKIAogLy8gcGFyYWdyYXBocyAocGVyaGFwcyBh
IG1pc25vbWVyLCBjYW4gYmUgZGl2aWRlZCBieSBsaW5lIGJyZWFrIGVsZW1lbnRzKQotVmlzaWJs
ZVBvc2l0aW9uIHN0YXJ0T2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiwgUG9zaXRp
b246OkVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVsZSA9IFBvc2l0aW9uOjpDYW5ub3RDcm9zc0Vk
aXRpbmdCb3VuZGFyeSk7Ci1WaXNpYmxlUG9zaXRpb24gZW5kT2ZQYXJhZ3JhcGgoY29uc3QgVmlz
aWJsZVBvc2l0aW9uJiwgUG9zaXRpb246OkVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVsZSA9IFBv
c2l0aW9uOjpDYW5ub3RDcm9zc0VkaXRpbmdCb3VuZGFyeSk7CitWaXNpYmxlUG9zaXRpb24gc3Rh
cnRPZlBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24mLCBFZGl0aW5nQm91bmRhcnlDcm9z
c2luZ1J1bGUgPSBDYW5ub3RDcm9zc0VkaXRpbmdCb3VuZGFyeSk7CitWaXNpYmxlUG9zaXRpb24g
ZW5kT2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiwgRWRpdGluZ0JvdW5kYXJ5Q3Jv
c3NpbmdSdWxlID0gQ2Fubm90Q3Jvc3NFZGl0aW5nQm91bmRhcnkpOwogVmlzaWJsZVBvc2l0aW9u
IHN0YXJ0T2ZOZXh0UGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOwogVmlzaWJsZVBv
c2l0aW9uIHByZXZpb3VzUGFyYWdyYXBoUG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uICYs
IGludCB4KTsKIFZpc2libGVQb3NpdGlvbiBuZXh0UGFyYWdyYXBoUG9zaXRpb24oY29uc3QgVmlz
aWJsZVBvc2l0aW9uICYsIGludCB4KTsKLWJvb2wgaXNTdGFydE9mUGFyYWdyYXBoKGNvbnN0IFZp
c2libGVQb3NpdGlvbiAmLCBQb3NpdGlvbjo6RWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlID0g
UG9zaXRpb246OkNhbm5vdENyb3NzRWRpdGluZ0JvdW5kYXJ5KTsKLWJvb2wgaXNFbmRPZlBhcmFn
cmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24gJiwgUG9zaXRpb246OkVkaXRpbmdCb3VuZGFyeUNy
b3NzaW5nUnVsZSA9IFBvc2l0aW9uOjpDYW5ub3RDcm9zc0VkaXRpbmdCb3VuZGFyeSk7Citib29s
IGlzU3RhcnRPZlBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24gJiwgRWRpdGluZ0JvdW5k
YXJ5Q3Jvc3NpbmdSdWxlID0gQ2Fubm90Q3Jvc3NFZGl0aW5nQm91bmRhcnkpOworYm9vbCBpc0Vu
ZE9mUGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmLCBFZGl0aW5nQm91bmRhcnlDcm9z
c2luZ1J1bGUgPSBDYW5ub3RDcm9zc0VkaXRpbmdCb3VuZGFyeSk7CiBib29sIGluU2FtZVBhcmFn
cmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24gJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uICYpOwog
CiAvLyBibG9ja3MgKHRydWUgcGFyYWdyYXBoczsgbGluZSBicmVhayBlbGVtZW50cyBkb24ndCBi
cmVhayBibG9ja3MpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
Y3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAppbmRleCBlMTNiMWY5ZWM3
NGIzN2MzMzZiMDMwOTQ1OTY2OTY1YTJmMmI3YjBlLi5iMGU3NGFlNTlkNjhjYTM2NzIzNWQzODFj
ZDgzY2ViYTI3ZmQ0OGU5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTMxLDYg
KzMxLDcgQEAKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNlbGVjdG9y
LmgiCiAjaW5jbHVkZSAiRGFzaEFycmF5LmgiCisjaW5jbHVkZSAiRWRpdGluZ0JvdW5kYXJ5Lmgi
CiAjaW5jbHVkZSAiRmxvYXRRdWFkLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJG
cmFtZVZpZXcuaCIKQEAgLTI2MzksMTAgKzI2NDAsMTAgQEAgVmlzaWJsZVBvc2l0aW9uIFJlbmRl
ck9iamVjdDo6Y3JlYXRlVmlzaWJsZVBvc2l0aW9uKGludCBvZmZzZXQsIEVBZmZpbml0eSBhZmZp
bmkKICAgICAgICAgaWYgKCFub2RlLT5pc0NvbnRlbnRFZGl0YWJsZSgpKSB7CiAgICAgICAgICAg
ICAvLyBJZiBpdCBjYW4gYmUgZm91bmQsIHdlIHByZWZlciBhIHZpc3VhbGx5IGVxdWl2YWxlbnQg
cG9zaXRpb24gdGhhdCBpcyBlZGl0YWJsZS4gCiAgICAgICAgICAgICBQb3NpdGlvbiBwb3NpdGlv
bihub2RlLCBvZmZzZXQpOwotICAgICAgICAgICAgUG9zaXRpb24gY2FuZGlkYXRlID0gcG9zaXRp
b24uZG93bnN0cmVhbShQb3NpdGlvbjo6Q2FuQ3Jvc3NFZGl0aW5nQm91bmRhcnkpOworICAgICAg
ICAgICAgUG9zaXRpb24gY2FuZGlkYXRlID0gcG9zaXRpb24uZG93bnN0cmVhbShDYW5Dcm9zc0Vk
aXRpbmdCb3VuZGFyeSk7CiAgICAgICAgICAgICBpZiAoY2FuZGlkYXRlLm5vZGUoKS0+aXNDb250
ZW50RWRpdGFibGUoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gVmlzaWJsZVBvc2l0aW9uKGNh
bmRpZGF0ZSwgYWZmaW5pdHkpOwotICAgICAgICAgICAgY2FuZGlkYXRlID0gcG9zaXRpb24udXBz
dHJlYW0oUG9zaXRpb246OkNhbkNyb3NzRWRpdGluZ0JvdW5kYXJ5KTsKKyAgICAgICAgICAgIGNh
bmRpZGF0ZSA9IHBvc2l0aW9uLnVwc3RyZWFtKENhbkNyb3NzRWRpdGluZ0JvdW5kYXJ5KTsKICAg
ICAgICAgICAgIGlmIChjYW5kaWRhdGUubm9kZSgpLT5pc0NvbnRlbnRFZGl0YWJsZSgpKQogICAg
ICAgICAgICAgICAgIHJldHVybiBWaXNpYmxlUG9zaXRpb24oY2FuZGlkYXRlLCBhZmZpbml0eSk7
CiAgICAgICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74570</attachid>
            <date>2010-11-22 10:26:01 -0800</date>
            <delta_ts>2010-11-22 20:44:36 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-49630-20101122102641.patch</filename>
            <type>text/plain</type>
            <size>17937</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MzUyZWEyOGVkZmRjMjY0NDM3ODNmYjI0NWZhZGY5MzI2YmQzYjI2YS4uZmY0YWIyOTNhN2YyNGM5
NTUyYTc1ZjBiODNiMzc4ZDFiZDAwZjQ0MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMC0xMS0yMiAgQmVu
amFtaW4gS2FsbWFuICA8a2FsbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBUb255IENoYW5nLgorCisgICAgICAgIE1vdmUgUG9zaXRpb246OkVkaXRpbmdCb3VuZGFyeUNy
b3NzaW5nUnVsZSB0byBhIG5ldyBoZWFkZXIgZmlsZQorICAgICAgICAoRWRpdGluZ0JvdW5kYXJ5
LmgpIGFuZCB1cGRhdGUgcmVmZXJlbmNlcyBpbiBvdGhlciBmaWxlcy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5NjMwCisKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5w
cm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Qb3NpdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkb3duc3RyZWFtSWdub3JpbmdFZGl0aW5nQm91bmRh
cmllcyk6CisgICAgICAgIChXZWJDb3JlOjp1cHN0cmVhbUlnbm9yaW5nRWRpdGluZ0JvdW5kYXJp
ZXMpOgorICAgICAgICAqIGRvbS9Qb3NpdGlvbi5oOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVTZWxlY3Rpb25D
b21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRpbmdCb3VuZGFyeS5oOiBB
ZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6c3RhcnRPZlBhcmFncmFwaCk6CisgICAgICAgIChXZWJDb3JlOjplbmRPZlBhcmFncmFw
aCk6CisgICAgICAgIChXZWJDb3JlOjppc1N0YXJ0T2ZQYXJhZ3JhcGgpOgorICAgICAgICAoV2Vi
Q29yZTo6aXNFbmRPZlBhcmFncmFwaCk6CisgICAgICAgICogZWRpdGluZy92aXNpYmxlX3VuaXRz
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJPYmplY3Q6OmNyZWF0ZVZpc2libGVQb3NpdGlvbik6CisKIDIwMTAtMTEtMjIg
IElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IFBhdmVsIEZlbGRtYW4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFt
IGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCBlNWZlMmE3OTA1MjU1ZTlkYTU3MmU2MjFj
OWU2MGY4MjRkMjY2Njg2Li40YjFhOTkzN2QwYTViMGY4ZjE0MGE0N2MyZjc0MjY1ZDFjMWJlOTk3
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFr
ZWZpbGUuYW0KQEAgLTEyOTAsNiArMTI5MCw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2Vi
Q29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmggXAogCVdlYkNvcmUvZWRpdGluZy9FZGl0aW5nQmVo
YXZpb3IuaCBcCiAJV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdCZWhhdmlvclR5cGVzLmggXAorCVdl
YkNvcmUvZWRpdGluZy9FZGl0aW5nQm91bmRhcnkuaCBcCiAJV2ViQ29yZS9lZGl0aW5nL0VkaXRp
bmdTdHlsZS5jcHAgXAogCVdlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuaCBcCiAJV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29y
ZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggYWY3ODJhNmJlZWJiMmNkNTQ2ZmYz
OGI2ZDA3ODY4Y2Y1NTU5YTFkZC4uYjFlYjdkOGM5N2VhZmEzZGFkZjMyZmNlNGU2NTk4Y2NjMzUy
YTlmZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKQEAgLTEzNjksNiArMTM2OSw3IEBACiAgICAgICAgICAgICAnZWRpdGluZy9FZGl0
Q29tbWFuZC5oJywKICAgICAgICAgICAgICdlZGl0aW5nL0VkaXRpbmdCZWhhdmlvci5oJywKICAg
ICAgICAgICAgICdlZGl0aW5nL0VkaXRpbmdCZWhhdmlvclR5cGVzLmgnLAorICAgICAgICAgICAg
J2VkaXRpbmcvRWRpdGluZ0JvdW5kYXJ5LmgnLAogICAgICAgICAgICAgJ2VkaXRpbmcvRWRpdGlu
Z1N0eWxlLmNwcCcsCiAgICAgICAgICAgICAnZWRpdGluZy9FZGl0aW5nU3R5bGUuaCcsCiAgICAg
ICAgICAgICAnZWRpdGluZy9FZGl0b3IuY3BwJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29y
ZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDY3MTQ4OTM0MDFlODAyMGUyMjY5YmI1
MzQ3NWIzNmFmOWU1YTk2YWQuLjg2MDhmYjlkZjA2OTlkNTA5NDIwYTA0Y2RiNDJhYWFhM2ViYmVi
ZGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3Jl
LnBybwpAQCAtMTY5Niw2ICsxNjk2LDcgQEAgSEVBREVSUyArPSBcCiAgICAgZWRpdGluZy9FZGl0
Q29tbWFuZC5oIFwKICAgICBlZGl0aW5nL0VkaXRpbmdTdHlsZS5oIFwKICAgICBlZGl0aW5nL0Vk
aXRpbmdCZWhhdmlvci5oIFwKKyAgICBlZGl0aW5nL0VkaXRpbmdCb3VuZGFyeS5oIFwKICAgICBl
ZGl0aW5nL0VkaXRvci5oIFwKICAgICBlZGl0aW5nL0Zvcm1hdEJsb2NrQ29tbWFuZC5oIFwKICAg
ICBlZGl0aW5nL2h0bWxlZGl0aW5nLmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2oKaW5kZXggOWNjZTZiYjQ4YWJiZDMyYTgwM2E2ZjNkZGQ1NjU2YzM4OWY4MjVkMi4uMGNhYmI0
MWQwMThhMmQxMzdkNGQ5M2JjNTM5Y2JmMWZjN2E2MDA0MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCkBAIC00NjA3OSw2ICs0NjA3OSwxMCBAQAogCQkJCT4NCiAJCQk8L0Zp
bGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxlZGl0aW5nXEVkaXRpbmdCb3Vu
ZGFyeS5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0
aD0iLi5cZWRpdGluZ1xEZWxldGVCdXR0b25Db250cm9sbGVyLmNwcCINCiAJCQkJPg0KIAkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24NCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGMzMjY2YTEwZTFjOGRkMWNjMGMxMjYwOTk5NGRhMzBkZWVmMDA1M2UuLjE1NTU5
NjI3NjAyMDg3NDc0YjhlYWQ2MjBjYzdjMDdhNDM4ODNkMTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04OTYsNiArODk2LDcgQEAKIAkJMzdGRDQyOTgx
MTgzNjg0NjAwOTNDMDI5IC8qIFRyZWVEZXB0aExpbWl0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0ZENDI5NzExODM2ODQ2MDA5M0MwMjkgLyogVHJl
ZURlcHRoTGltaXQuaCAqLzsgfTsKIAkJMzg4OEY2RUUxMjhDOTg4OTAwMENBOEUwIC8qIEluc3Bl
Y3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzODg4RjZFQzEyOEM5ODg5MDAwQ0E4RTAgLyogSW5zcGVjdG9yRmlsZVN5
c3RlbUFnZW50LmNwcCAqLzsgfTsKIAkJMzg4OEY2RUYxMjhDOTg4OTAwMENBOEUwIC8qIEluc3Bl
Y3RvckZpbGVTeXN0ZW1BZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzg4OEY2RUQxMjhDOTg4OTAwMENBOEUwIC8qIEluc3BlY3RvckZpbGVTeXN0
ZW1BZ2VudC5oICovOyB9OworCQkzQTI3QzFENTEyOTc1QkExMDAzNjFDRjQgLyogRWRpdGluZ0Jv
dW5kYXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
QTI3QzFENDEyOTc1QkExMDAzNjFDRjQgLyogRWRpdGluZ0JvdW5kYXJ5LmggKi87IH07CiAJCTQx
MDAyQ0NEMEY2NkVERUYwMDlFNjYwRCAvKiBTY3JpcHRGdW5jdGlvbkNhbGwuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDAyQ0NCMEY2NkVERUYwMDlF
NjYwRCAvKiBTY3JpcHRGdW5jdGlvbkNhbGwuaCAqLzsgfTsKIAkJNDEwMDJDQ0UwRjY2RURFRjAw
OUU2NjBEIC8qIFNjcmlwdEZ1bmN0aW9uQ2FsbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwMkNDQzBGNjZFREVGMDA5RTY2MEQgLyogU2NyaXB0
RnVuY3Rpb25DYWxsLmNwcCAqLzsgfTsKIAkJNDEwQjdFNzIxMDQ1RkFCMDAwRDgyMjRGIC8qIEpT
TWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxMEI3RTcxMTA0NUZBQjAwMEQ4MjI0RiAvKiBKU01lc3NhZ2VFdmVudEN1
c3RvbS5jcHAgKi87IH07CkBAIC02OTY3LDYgKzY5NjgsNyBAQAogCQkzN0ZENDI5NzExODM2ODQ2
MDA5M0MwMjkgLyogVHJlZURlcHRoTGltaXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gVHJlZURlcHRoTGltaXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzg4
OEY2RUMxMjhDOTg4OTAwMENBOEUwIC8qIEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JGaWxlU3lzdGVtQWdl
bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzODg4RjZFRDEyOEM5ODg5MDAw
Q0E4RTAgLyogSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkzQTI3QzFENDEyOTc1QkExMDAzNjFDRjQgLyogRWRpdGluZ0JvdW5kYXJ5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVkaXRpbmdCb3VuZGFyeS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTAwMkNDQjBGNjZFREVGMDA5RTY2MEQgLyog
U2NyaXB0RnVuY3Rpb25DYWxsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNj
cmlwdEZ1bmN0aW9uQ2FsbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTAwMkND
QzBGNjZFREVGMDA5RTY2MEQgLyogU2NyaXB0RnVuY3Rpb25DYWxsLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdEZ1bmN0aW9uQ2FsbC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMEI3RTcxMTA0NUZBQjAwMEQ4MjI0RiAvKiBKU01lc3Nh
Z2VFdmVudEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U01lc3NhZ2VFdmVudEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
NDUxMiw2ICsxNDUxNCw3IEBACiAJCQkJOTMzMDlEOTUwOTlFNjQ5MTAwNTZFNTgxIC8qIEVkaXRD
b21tYW5kLmggKi8sCiAJCQkJNEYxNTM0REQxMUI1MzJFQzAwMjFGRDg2IC8qIEVkaXRpbmdCZWhh
dmlvci5oICovLAogCQkJCTRGMTUzNERGMTFCNTMzMDIwMDIxRkQ4NiAvKiBFZGl0aW5nQmVoYXZp
b3JUeXBlcy5oICovLAorCQkJCTNBMjdDMUQ0MTI5NzVCQTEwMDM2MUNGNCAvKiBFZGl0aW5nQm91
bmRhcnkuaCAqLywKIAkJCQk5QkFCNkM2QjEyNTUwNjMxMDAxNjI2RDQgLyogRWRpdGluZ1N0eWxl
LmNwcCAqLywKIAkJCQk5QkFCNkM2QTEyNTUwNjMxMDAxNjI2RDQgLyogRWRpdGluZ1N0eWxlLmgg
Ki8sCiAJCQkJNEIzMDQzQ0EwQUUwMzczQjAwQTgyNjQ3IC8qIEVkaXRvci5jcHAgKi8sCkBAIC0y
MTI5MSw2ICsyMTI5NCw3IEBACiAJCQkJRTFBRDE0MjExMjk1RUE2QjAwQUNBOTg5IC8qIEpTSFRN
TEVtYmVkRWxlbWVudEN1c3RvbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFBRDE0MjMxMjk1RUE3
RjAwQUNBOTg5IC8qIEpTSFRNTElucHV0RWxlbWVudEN1c3RvbS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRTFBRDE0MjUxMjk1RUE5NTAwQUNBOTg5IC8qIEpTSFRNTE9iamVjdEVsZW1lbnRDdXN0b20u
aCBpbiBIZWFkZXJzICovLAorCQkJCTNBMjdDMUQ1MTI5NzVCQTEwMDM2MUNGNCAvKiBFZGl0aW5n
Qm91bmRhcnkuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vUG9zaXRp
b24uY3BwIGIvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCmluZGV4IGQ1NjYxM2U3N2I5ZDIxN2Yz
NjJmNDIzMWY0NzljNTg2MTVlZTYxNTMuLmJlMTc1YWE5MzQxODE2M2U3YjVlNjQ3ZjdmMmI5OWM3
MjJlMTkyZWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcAorKysgYi9XZWJD
b3JlL2RvbS9Qb3NpdGlvbi5jcHAKQEAgLTEwMDYsNyArMTAwNiw3IEBAIHN0YXRpYyBQb3NpdGlv
biBkb3duc3RyZWFtSWdub3JpbmdFZGl0aW5nQm91bmRhcmllcyhQb3NpdGlvbiBwb3NpdGlvbikK
ICAgICBQb3NpdGlvbiBsYXN0UG9zaXRpb247CiAgICAgd2hpbGUgKHBvc2l0aW9uICE9IGxhc3RQ
b3NpdGlvbikgewogICAgICAgICBsYXN0UG9zaXRpb24gPSBwb3NpdGlvbjsKLSAgICAgICAgcG9z
aXRpb24gPSBwb3NpdGlvbi5kb3duc3RyZWFtKFBvc2l0aW9uOjpDYW5Dcm9zc0VkaXRpbmdCb3Vu
ZGFyeSk7CisgICAgICAgIHBvc2l0aW9uID0gcG9zaXRpb24uZG93bnN0cmVhbShDYW5Dcm9zc0Vk
aXRpbmdCb3VuZGFyeSk7CiAgICAgfQogICAgIHJldHVybiBwb3NpdGlvbjsKIH0KQEAgLTEwMTYs
NyArMTAxNiw3IEBAIHN0YXRpYyBQb3NpdGlvbiB1cHN0cmVhbUlnbm9yaW5nRWRpdGluZ0JvdW5k
YXJpZXMoUG9zaXRpb24gcG9zaXRpb24pCiAgICAgUG9zaXRpb24gbGFzdFBvc2l0aW9uOwogICAg
IHdoaWxlIChwb3NpdGlvbiAhPSBsYXN0UG9zaXRpb24pIHsKICAgICAgICAgbGFzdFBvc2l0aW9u
ID0gcG9zaXRpb247Ci0gICAgICAgIHBvc2l0aW9uID0gcG9zaXRpb24udXBzdHJlYW0oUG9zaXRp
b246OkNhbkNyb3NzRWRpdGluZ0JvdW5kYXJ5KTsKKyAgICAgICAgcG9zaXRpb24gPSBwb3NpdGlv
bi51cHN0cmVhbShDYW5Dcm9zc0VkaXRpbmdCb3VuZGFyeSk7CiAgICAgfQogICAgIHJldHVybiBw
b3NpdGlvbjsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmggYi9XZWJDb3Jl
L2RvbS9Qb3NpdGlvbi5oCmluZGV4IDU1MmQ2NzVmYTczMzFhNmVhYzRiN2QwYjM5MTU0NmU4MzAy
M2I3YjMuLjRkM2I1ZmU2ODc4ZDZlMWUwMmY3YzU1YjJmMmVhNDE3NDViMzkxZTYgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmgKKysrIGIvV2ViQ29yZS9kb20vUG9zaXRpb24uaApA
QCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBQb3NpdGlvbl9oCiAKICNpbmNsdWRlICJDb250YWlu
ZXJOb2RlLmgiCisjaW5jbHVkZSAiRWRpdGluZ0JvdW5kYXJ5LmgiCiAjaW5jbHVkZSAiVGV4dEFm
ZmluaXR5LmgiCiAjaW5jbHVkZSAiVGV4dERpcmVjdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9Bc3Nl
cnRpb25zLmg+CkBAIC01NiwxMSArNTcsNiBAQCBwdWJsaWM6CiAgICAgICAgIFBvc2l0aW9uSXNC
ZWZvcmVBbmNob3IKICAgICB9OwogCi0gICAgZW51bSBFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1
bGUgewotICAgICAgICBDYW5Dcm9zc0VkaXRpbmdCb3VuZGFyeSwKLSAgICAgICAgQ2Fubm90Q3Jv
c3NFZGl0aW5nQm91bmRhcnkKLSAgICB9OwotICAgIAogICAgIFBvc2l0aW9uKCkKICAgICAgICAg
OiBtX29mZnNldCgwKQogICAgICAgICAsIG1fYW5jaG9yVHlwZShQb3NpdGlvbklzT2Zmc2V0SW5B
bmNob3IpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZC5jcHAgYi9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXgg
YjYxN2EyN2VhYzE3ODU4NGViMjU1NDRlYTk2MWYzYTE3ZjA4MzBiNy4uNTk0YTk0Zjc3MDdmNjkw
NzM5YTZmNjBkYzg2Y2RjMzFjODUwOTMwZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL0Rl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxl
Y3Rpb25Db21tYW5kLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCisjaW5jbHVkZSAiRWRpdGluZ0JvdW5k
YXJ5LmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCiAj
aW5jbHVkZSAiRWxlbWVudC5oIgpAQCAtNzM5LDggKzc0MCw4IEBAIHZvaWQgRGVsZXRlU2VsZWN0
aW9uQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgRUFmZmluaXR5IGFmZmluaXR5ID0gbV9zZWxlY3Rp
b25Ub0RlbGV0ZS5hZmZpbml0eSgpOwogICAgIAogICAgIFBvc2l0aW9uIGRvd25zdHJlYW1FbmQg
PSBtX3NlbGVjdGlvblRvRGVsZXRlLmVuZCgpLmRvd25zdHJlYW0oKTsKLSAgICBtX25lZWRQbGFj
ZWhvbGRlciA9IGlzU3RhcnRPZlBhcmFncmFwaChtX3NlbGVjdGlvblRvRGVsZXRlLnZpc2libGVT
dGFydCgpLCBQb3NpdGlvbjo6Q2FuQ3Jvc3NFZGl0aW5nQm91bmRhcnkpCi0gICAgICAgICAgICAm
JiBpc0VuZE9mUGFyYWdyYXBoKG1fc2VsZWN0aW9uVG9EZWxldGUudmlzaWJsZUVuZCgpLCBQb3Np
dGlvbjo6Q2FuQ3Jvc3NFZGl0aW5nQm91bmRhcnkpCisgICAgbV9uZWVkUGxhY2Vob2xkZXIgPSBp
c1N0YXJ0T2ZQYXJhZ3JhcGgobV9zZWxlY3Rpb25Ub0RlbGV0ZS52aXNpYmxlU3RhcnQoKSwgQ2Fu
Q3Jvc3NFZGl0aW5nQm91bmRhcnkpCisgICAgICAgICAgICAmJiBpc0VuZE9mUGFyYWdyYXBoKG1f
c2VsZWN0aW9uVG9EZWxldGUudmlzaWJsZUVuZCgpLCBDYW5Dcm9zc0VkaXRpbmdCb3VuZGFyeSkK
ICAgICAgICAgICAgICYmICFsaW5lQnJlYWtFeGlzdHNBdFZpc2libGVQb3NpdGlvbihtX3NlbGVj
dGlvblRvRGVsZXRlLnZpc2libGVFbmQoKSk7CiAgICAgaWYgKG1fbmVlZFBsYWNlaG9sZGVyKSB7
CiAgICAgICAgIC8vIERvbid0IG5lZWQgYSBwbGFjZWhvbGRlciB3aGVuIGRlbGV0aW5nIGEgc2Vs
ZWN0aW9uIHRoYXQgc3RhcnRzIGp1c3QgYmVmb3JlIGEgdGFibGUKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvZWRpdGluZy9FZGl0aW5nQm91bmRhcnkuaCBiL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQm91
bmRhcnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xY2IwODQ5NDZlMGQ4MjVmZDI2NjhjMGM0NWE2ZTRlY2M1MTZl
YzMwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdCb3VuZGFyeS5o
CkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDYsIDIwMDgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRWRpdGluZ0Jv
dW5kYXJ5X2gKKyNkZWZpbmUgRWRpdGluZ0JvdW5kYXJ5X2gKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitlbnVtIEVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVsZSB7CisgICAgQ2FuQ3Jvc3NFZGl0
aW5nQm91bmRhcnksCisgICAgQ2Fubm90Q3Jvc3NFZGl0aW5nQm91bmRhcnkKK307CisKK30KKwor
I2VuZGlmIC8vIEVkaXRpbmdCb3VuZGFyeV9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcv
dmlzaWJsZV91bml0cy5jcHAgYi9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5jcHAKaW5k
ZXggN2Q0NjM3NGJjNjQyYWM2M2E4NDcxMTg5MDAwNmFiMWUyNGQ2NjVjYS4uOTFkZTY2M2M1ZTVl
MmFjOGJmZDZkZjljYmQ2NmJiMmMwNDg1NWE0NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5n
L3Zpc2libGVfdW5pdHMuY3BwCisrKyBiL1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNw
cApAQCAtNzgwLDcgKzc4MCw3IEBAIFZpc2libGVQb3NpdGlvbiBuZXh0U2VudGVuY2VQb3NpdGlv
bihjb25zdCBWaXNpYmxlUG9zaXRpb24gJmMpCiAgICAgcmV0dXJuIGMuaG9ub3JFZGl0YWJsZUJv
dW5kYXJ5QXRPckJlZm9yZShuZXh0KTsKIH0KIAotVmlzaWJsZVBvc2l0aW9uIHN0YXJ0T2ZQYXJh
Z3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBjLCBQb3NpdGlvbjo6RWRpdGluZ0JvdW5kYXJ5
Q3Jvc3NpbmdSdWxlIGJvdW5kYXJ5Q3Jvc3NpbmdSdWxlKQorVmlzaWJsZVBvc2l0aW9uIHN0YXJ0
T2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBjLCBFZGl0aW5nQm91bmRhcnlDcm9z
c2luZ1J1bGUgYm91bmRhcnlDcm9zc2luZ1J1bGUpCiB7CiAgICAgUG9zaXRpb24gcCA9IGMuZGVl
cEVxdWl2YWxlbnQoKTsKICAgICBOb2RlICpzdGFydE5vZGUgPSBwLm5vZGUoKTsKQEAgLTc5OCw3
ICs3OTgsNyBAQCBWaXNpYmxlUG9zaXRpb24gc3RhcnRPZlBhcmFncmFwaChjb25zdCBWaXNpYmxl
UG9zaXRpb24mIGMsIFBvc2l0aW9uOjpFZGl0aW5nQm91bgogCiAgICAgTm9kZSAqbiA9IHN0YXJ0
Tm9kZTsKICAgICB3aGlsZSAobikgewotICAgICAgICBpZiAoYm91bmRhcnlDcm9zc2luZ1J1bGUg
PT0gUG9zaXRpb246OkNhbm5vdENyb3NzRWRpdGluZ0JvdW5kYXJ5ICYmIG4tPmlzQ29udGVudEVk
aXRhYmxlKCkgIT0gc3RhcnROb2RlLT5pc0NvbnRlbnRFZGl0YWJsZSgpKQorICAgICAgICBpZiAo
Ym91bmRhcnlDcm9zc2luZ1J1bGUgPT0gQ2Fubm90Q3Jvc3NFZGl0aW5nQm91bmRhcnkgJiYgbi0+
aXNDb250ZW50RWRpdGFibGUoKSAhPSBzdGFydE5vZGUtPmlzQ29udGVudEVkaXRhYmxlKCkpCiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgUmVuZGVyT2JqZWN0ICpyID0gbi0+cmVuZGVyZXIo
KTsKICAgICAgICAgaWYgKCFyKSB7CkBAIC04MzksNyArODM5LDcgQEAgVmlzaWJsZVBvc2l0aW9u
IHN0YXJ0T2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBjLCBQb3NpdGlvbjo6RWRp
dGluZ0JvdW4KICAgICByZXR1cm4gVmlzaWJsZVBvc2l0aW9uKG5vZGUsIG9mZnNldCwgRE9XTlNU
UkVBTSk7CiB9CiAKLVZpc2libGVQb3NpdGlvbiBlbmRPZlBhcmFncmFwaChjb25zdCBWaXNpYmxl
UG9zaXRpb24gJmMsIFBvc2l0aW9uOjpFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgYm91bmRh
cnlDcm9zc2luZ1J1bGUpCitWaXNpYmxlUG9zaXRpb24gZW5kT2ZQYXJhZ3JhcGgoY29uc3QgVmlz
aWJsZVBvc2l0aW9uICZjLCBFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgYm91bmRhcnlDcm9z
c2luZ1J1bGUpCiB7ICAgIAogICAgIGlmIChjLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gVmlz
aWJsZVBvc2l0aW9uKCk7CkBAIC04NTgsNyArODU4LDcgQEAgVmlzaWJsZVBvc2l0aW9uIGVuZE9m
UGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmYywgUG9zaXRpb246OkVkaXRpbmdCb3Vu
ZGEKIAogICAgIE5vZGUgKm4gPSBzdGFydE5vZGU7CiAgICAgd2hpbGUgKG4pIHsKLSAgICAgICAg
aWYgKGJvdW5kYXJ5Q3Jvc3NpbmdSdWxlID09IFBvc2l0aW9uOjpDYW5ub3RDcm9zc0VkaXRpbmdC
b3VuZGFyeSAmJiBuLT5pc0NvbnRlbnRFZGl0YWJsZSgpICE9IHN0YXJ0Tm9kZS0+aXNDb250ZW50
RWRpdGFibGUoKSkKKyAgICAgICAgaWYgKGJvdW5kYXJ5Q3Jvc3NpbmdSdWxlID09IENhbm5vdENy
b3NzRWRpdGluZ0JvdW5kYXJ5ICYmIG4tPmlzQ29udGVudEVkaXRhYmxlKCkgIT0gc3RhcnROb2Rl
LT5pc0NvbnRlbnRFZGl0YWJsZSgpKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIFJlbmRl
ck9iamVjdCAqciA9IG4tPnJlbmRlcmVyKCk7CiAgICAgICAgIGlmICghcikgewpAQCAtOTE0LDEy
ICs5MTQsMTIgQEAgYm9vbCBpblNhbWVQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uICZh
LCBjb25zdCBWaXNpYmxlUG9zaXRpb24gJmIpCiAgICAgcmV0dXJuIGEuaXNOb3ROdWxsKCkgJiYg
c3RhcnRPZlBhcmFncmFwaChhKSA9PSBzdGFydE9mUGFyYWdyYXBoKGIpOwogfQogCi1ib29sIGlz
U3RhcnRPZlBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24gJnBvcywgUG9zaXRpb246OkVk
aXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVsZSBib3VuZGFyeUNyb3NzaW5nUnVsZSkKK2Jvb2wgaXNT
dGFydE9mUGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmcG9zLCBFZGl0aW5nQm91bmRh
cnlDcm9zc2luZ1J1bGUgYm91bmRhcnlDcm9zc2luZ1J1bGUpCiB7CiAgICAgcmV0dXJuIHBvcy5p
c05vdE51bGwoKSAmJiBwb3MgPT0gc3RhcnRPZlBhcmFncmFwaChwb3MsIGJvdW5kYXJ5Q3Jvc3Np
bmdSdWxlKTsKIH0KIAotYm9vbCBpc0VuZE9mUGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlv
biAmcG9zLCBQb3NpdGlvbjo6RWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlIGJvdW5kYXJ5Q3Jv
c3NpbmdSdWxlKQorYm9vbCBpc0VuZE9mUGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiAm
cG9zLCBFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgYm91bmRhcnlDcm9zc2luZ1J1bGUpCiB7
CiAgICAgcmV0dXJuIHBvcy5pc05vdE51bGwoKSAmJiBwb3MgPT0gZW5kT2ZQYXJhZ3JhcGgocG9z
LCBib3VuZGFyeUNyb3NzaW5nUnVsZSk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcv
dmlzaWJsZV91bml0cy5oIGIvV2ViQ29yZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMuaAppbmRleCBm
NzhmOWQxNDlmZTgzMWY4OTgwMzQxM2JlNTFiMzBlZDk1ODI4MWFhLi45OGE1MzMyM2I4ZjczNzE5
MWI5MDE4NDA3YjM0MjdhOGZiZWRmNjZkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2VkaXRpbmcvdmlz
aWJsZV91bml0cy5oCisrKyBiL1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmgKQEAgLTI3
LDYgKzI3LDcgQEAKICNkZWZpbmUgdmlzaWJsZV91bml0c19oCiAKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgorI2luY2x1ZGUgIkVkaXRpbmdCb3VuZGFyeS5oIgogI2luY2x1ZGUgIlBvc2l0aW9uLmgi
CiAjaW5jbHVkZSAiVGV4dEFmZmluaXR5LmgiCiAKQEAgLTYxLDEzICs2MiwxMyBAQCBWaXNpYmxl
UG9zaXRpb24gbG9naWNhbFN0YXJ0T2ZMaW5lKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmKTsKIFZp
c2libGVQb3NpdGlvbiBsb2dpY2FsRW5kT2ZMaW5lKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmKTsK
IAogLy8gcGFyYWdyYXBocyAocGVyaGFwcyBhIG1pc25vbWVyLCBjYW4gYmUgZGl2aWRlZCBieSBs
aW5lIGJyZWFrIGVsZW1lbnRzKQotVmlzaWJsZVBvc2l0aW9uIHN0YXJ0T2ZQYXJhZ3JhcGgoY29u
c3QgVmlzaWJsZVBvc2l0aW9uJiwgUG9zaXRpb246OkVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVs
ZSA9IFBvc2l0aW9uOjpDYW5ub3RDcm9zc0VkaXRpbmdCb3VuZGFyeSk7Ci1WaXNpYmxlUG9zaXRp
b24gZW5kT2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiwgUG9zaXRpb246OkVkaXRp
bmdCb3VuZGFyeUNyb3NzaW5nUnVsZSA9IFBvc2l0aW9uOjpDYW5ub3RDcm9zc0VkaXRpbmdCb3Vu
ZGFyeSk7CitWaXNpYmxlUG9zaXRpb24gc3RhcnRPZlBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9z
aXRpb24mLCBFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgPSBDYW5ub3RDcm9zc0VkaXRpbmdC
b3VuZGFyeSk7CitWaXNpYmxlUG9zaXRpb24gZW5kT2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBv
c2l0aW9uJiwgRWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlID0gQ2Fubm90Q3Jvc3NFZGl0aW5n
Qm91bmRhcnkpOwogVmlzaWJsZVBvc2l0aW9uIHN0YXJ0T2ZOZXh0UGFyYWdyYXBoKGNvbnN0IFZp
c2libGVQb3NpdGlvbiYpOwogVmlzaWJsZVBvc2l0aW9uIHByZXZpb3VzUGFyYWdyYXBoUG9zaXRp
b24oY29uc3QgVmlzaWJsZVBvc2l0aW9uICYsIGludCB4KTsKIFZpc2libGVQb3NpdGlvbiBuZXh0
UGFyYWdyYXBoUG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uICYsIGludCB4KTsKLWJvb2wg
aXNTdGFydE9mUGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmLCBQb3NpdGlvbjo6RWRp
dGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlID0gUG9zaXRpb246OkNhbm5vdENyb3NzRWRpdGluZ0Jv
dW5kYXJ5KTsKLWJvb2wgaXNFbmRPZlBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24gJiwg
UG9zaXRpb246OkVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVsZSA9IFBvc2l0aW9uOjpDYW5ub3RD
cm9zc0VkaXRpbmdCb3VuZGFyeSk7Citib29sIGlzU3RhcnRPZlBhcmFncmFwaChjb25zdCBWaXNp
YmxlUG9zaXRpb24gJiwgRWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlID0gQ2Fubm90Q3Jvc3NF
ZGl0aW5nQm91bmRhcnkpOworYm9vbCBpc0VuZE9mUGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3Np
dGlvbiAmLCBFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgPSBDYW5ub3RDcm9zc0VkaXRpbmdC
b3VuZGFyeSk7CiBib29sIGluU2FtZVBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24gJiwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uICYpOwogCiAvLyBibG9ja3MgKHRydWUgcGFyYWdyYXBoczsg
bGluZSBicmVhayBlbGVtZW50cyBkb24ndCBicmVhayBibG9ja3MpCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmNwcAppbmRleCBlMTNiMWY5ZWM3NGIzN2MzMzZiMDMwOTQ1OTY2OTY1YTJmMmI3YjBl
Li5iMGU3NGFlNTlkNjhjYTM2NzIzNWQzODFjZDgzY2ViYTI3ZmQ0OGU5IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDaHJvbWUuaCIK
ICNpbmNsdWRlICJDU1NTdHlsZVNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiRGFzaEFycmF5LmgiCisj
aW5jbHVkZSAiRWRpdGluZ0JvdW5kYXJ5LmgiCiAjaW5jbHVkZSAiRmxvYXRRdWFkLmgiCiAjaW5j
bHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKQEAgLTI2MzksMTAgKzI2NDAs
MTAgQEAgVmlzaWJsZVBvc2l0aW9uIFJlbmRlck9iamVjdDo6Y3JlYXRlVmlzaWJsZVBvc2l0aW9u
KGludCBvZmZzZXQsIEVBZmZpbml0eSBhZmZpbmkKICAgICAgICAgaWYgKCFub2RlLT5pc0NvbnRl
bnRFZGl0YWJsZSgpKSB7CiAgICAgICAgICAgICAvLyBJZiBpdCBjYW4gYmUgZm91bmQsIHdlIHBy
ZWZlciBhIHZpc3VhbGx5IGVxdWl2YWxlbnQgcG9zaXRpb24gdGhhdCBpcyBlZGl0YWJsZS4gCiAg
ICAgICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbihub2RlLCBvZmZzZXQpOwotICAgICAgICAgICAg
UG9zaXRpb24gY2FuZGlkYXRlID0gcG9zaXRpb24uZG93bnN0cmVhbShQb3NpdGlvbjo6Q2FuQ3Jv
c3NFZGl0aW5nQm91bmRhcnkpOworICAgICAgICAgICAgUG9zaXRpb24gY2FuZGlkYXRlID0gcG9z
aXRpb24uZG93bnN0cmVhbShDYW5Dcm9zc0VkaXRpbmdCb3VuZGFyeSk7CiAgICAgICAgICAgICBp
ZiAoY2FuZGlkYXRlLm5vZGUoKS0+aXNDb250ZW50RWRpdGFibGUoKSkKICAgICAgICAgICAgICAg
ICByZXR1cm4gVmlzaWJsZVBvc2l0aW9uKGNhbmRpZGF0ZSwgYWZmaW5pdHkpOwotICAgICAgICAg
ICAgY2FuZGlkYXRlID0gcG9zaXRpb24udXBzdHJlYW0oUG9zaXRpb246OkNhbkNyb3NzRWRpdGlu
Z0JvdW5kYXJ5KTsKKyAgICAgICAgICAgIGNhbmRpZGF0ZSA9IHBvc2l0aW9uLnVwc3RyZWFtKENh
bkNyb3NzRWRpdGluZ0JvdW5kYXJ5KTsKICAgICAgICAgICAgIGlmIChjYW5kaWRhdGUubm9kZSgp
LT5pc0NvbnRlbnRFZGl0YWJsZSgpKQogICAgICAgICAgICAgICAgIHJldHVybiBWaXNpYmxlUG9z
aXRpb24oY2FuZGlkYXRlLCBhZmZpbml0eSk7CiAgICAgICAgIH0K
</data>
<flag name="commit-queue"
          id="65208"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74827</attachid>
            <date>2010-11-24 20:30:20 -0800</date>
            <delta_ts>2010-11-27 18:54:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49630-20101125153017.patch</filename>
            <type>text/plain</type>
            <size>20244</size>
            <attacher name="Benjamin (Ben) Kalman">kalman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MjMyOGE5ZTE2ZTFhYWVjNGY0NjU2YzQ5MjJlOGMwODYwNGQyYmZkMC4uNjJiYzJlYjlhNzk2MWRh
NDI4M2YyMzM2NzZhNTQ4MmEzNGI0MGQ4MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMC0xMS0yNCAgQmVu
amFtaW4gS2FsbWFuICA8a2FsbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIFBvc2l0aW9uOjpFZGl0aW5nQm91bmRh
cnlDcm9zc2luZ1J1bGUgdG8gYSBuZXcgaGVhZGVyIGZpbGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5NjMwCisKKyAgICAgICAgKiBHTlVtYWtlZmls
ZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6
CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIGRvbS9Qb3NpdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkb3duc3RyZWFt
SWdub3JpbmdFZGl0aW5nQm91bmRhcmllcyk6CisgICAgICAgIChXZWJDb3JlOjp1cHN0cmVhbUln
bm9yaW5nRWRpdGluZ0JvdW5kYXJpZXMpOgorICAgICAgICAqIGRvbS9Qb3NpdGlvbi5oOgorICAg
ICAgICAqIGVkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKiBlZGl0aW5n
L0VkaXRpbmdCb3VuZGFyeS5oOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Zpc2libGVfdW5p
dHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3RhcnRPZlBhcmFncmFwaCk6CisgICAgICAgIChX
ZWJDb3JlOjplbmRPZlBhcmFncmFwaCk6CisgICAgICAgIChXZWJDb3JlOjppc1N0YXJ0T2ZQYXJh
Z3JhcGgpOgorICAgICAgICAoV2ViQ29yZTo6aXNFbmRPZlBhcmFncmFwaCk6CisgICAgICAgICog
ZWRpdGluZy92aXNpYmxlX3VuaXRzLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmNyZWF0ZVZpc2libGVQb3Np
dGlvbik6CisKIDIwMTAtMTEtMjQgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJ1c3NlbGwuCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCBmZWFm
MzYzMWYwNTAwMmY5ZWUxZjdkNTI0YmJhYjhiMjUyMjcyYjFhLi5lNzk4MTA2ZDc0MjZhNGJjMGUw
YTZlMTQzOWFkOGFjODg5MmJhNWI0IDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFt
CisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTEzMjEsNiArMTMyMSw3IEBAIHdlYmNv
cmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmggXAogCVdlYkNv
cmUvZWRpdGluZy9FZGl0aW5nQmVoYXZpb3IuaCBcCiAJV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdC
ZWhhdmlvclR5cGVzLmggXAorCVdlYkNvcmUvZWRpdGluZy9FZGl0aW5nQm91bmRhcnkuaCBcCiAJ
V2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAgXAogCVdlYkNvcmUvZWRpdGluZy9FZGl0
aW5nU3R5bGUuaCBcCiAJV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwIFwKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmlu
ZGV4IDMyNDZlMGFiMmI5ODQ5NDdlNjljZDkwNzc2MmM2ZWU4NjI4MmUzY2QuLmUwOTdmN2NkMmVi
MzAxMDA5NWU3YWRjNDE1NjFmNGRmYjQzM2NhNWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KKysrIGIvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNDIwLDcgKzQyMCw3IEBA
IF9fWk43V2ViQ29yZTE2Y3JlYXRlRnVsbE1hcmt1cEVQS05TXzROb2RlRQogX19aTjdXZWJDb3Jl
MTZjcmVhdGVGdWxsTWFya3VwRVBLTlNfNVJhbmdlRQogX19aTjdXZWJDb3JlMTZlbmNsb3NpbmdJ
bnRSZWN0RVJLN19OU1JlY3QKIF9fWk43V2ViQ29yZTE2ZW5jbG9zaW5nSW50UmVjdEVSS05TXzlG
bG9hdFJlY3RFCi1fX1pON1dlYkNvcmUxNmlzRW5kT2ZQYXJhZ3JhcGhFUktOU18xNVZpc2libGVQ
b3NpdGlvbkVOU184UG9zaXRpb24yN0VkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVsZUUKK19fWk43
V2ViQ29yZTE2aXNFbmRPZlBhcmFncmFwaEVSS05TXzE1VmlzaWJsZVBvc2l0aW9uRU5TXzI3RWRp
dGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlRQogX19aTjdXZWJDb3JlMTZqc1N0cmluZ1Nsb3dDYXNl
RVBOM0pTQzlFeGVjU3RhdGVFUk5TMF85V2Vha0dDTWFwSVBOM1dURjEwU3RyaW5nSW1wbEVQTlMw
XzhKU1N0cmluZ0VFRVM2XwogX19aTjdXZWJDb3JlMTdDcmVkZW50aWFsU3RvcmFnZTNnZXRFUktO
U18xNVByb3RlY3Rpb25TcGFjZUUKIF9fWk43V2ViQ29yZTE3RE9NSW1wbGVtZW50YXRpb24xM2lz
WE1MTUlNRVR5cGVFUktOM1dURjZTdHJpbmdFCkBAIC00MzEsNyArNDMxLDcgQEAgX19aTjdXZWJD
b3JlMTdIaXN0b3J5Q29udHJvbGxlcjI2c2F2ZURvY3VtZW50QW5kU2Nyb2xsU3RhdGVFdgogX19a
TjdXZWJDb3JlMTduYW1lRm9yQ3Vyc29yVHlwZUVOU182Q3Vyc29yNFR5cGVFCiBfX1pON1dlYkNv
cmUxN29wZW5UZW1wb3JhcnlGaWxlRVBLY1JpCiBfX1pON1dlYkNvcmUxOFNlYXJjaFBvcHVwTWVu
dU1hY0MxRVBOU18xNVBvcHVwTWVudUNsaWVudEUKLV9fWk43V2ViQ29yZTE4aXNTdGFydE9mUGFy
YWdyYXBoRVJLTlNfMTVWaXNpYmxlUG9zaXRpb25FTlNfOFBvc2l0aW9uMjdFZGl0aW5nQm91bmRh
cnlDcm9zc2luZ1J1bGVFCitfX1pON1dlYkNvcmUxOGlzU3RhcnRPZlBhcmFncmFwaEVSS05TXzE1
VmlzaWJsZVBvc2l0aW9uRU5TXzI3RWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlRQogX19aTjdX
ZWJDb3JlMThwbHVnaW5TY3JpcHRPYmplY3RFUE4zSlNDOUV4ZWNTdGF0ZUVQTlNfMTNKU0hUTUxF
bGVtZW50RQogX19aTjdXZWJDb3JlMThwcm94eVNlcnZlcnNGb3JVUkxFUktOU180S1VSTEVQS05T
XzE3TmV0d29ya2luZ0NvbnRleHRFCiBfX1pON1dlYkNvcmUxOUFuaW1hdGlvbkNvbnRyb2xsZXIx
NnJlc3VtZUFuaW1hdGlvbnNFdgpAQCAtMTEyOSwxMCArMTEyOSwxMCBAQCBfX1pOSzdXZWJDb3Jl
OERvY3VtZW50MzFkaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nRVJLTjNXVEY2U3RyaW5n
RQogX19aTks3V2ViQ29yZThEb2N1bWVudDRib2R5RXYKIF9fWk5LN1dlYkNvcmU4RG9jdW1lbnQ2
ZG9tYWluRXYKIF9fWk5LN1dlYkNvcmU4SW50UG9pbnRjdjhfTlNQb2ludEV2Ci1fX1pOSzdXZWJD
b3JlOFBvc2l0aW9uMTBkb3duc3RyZWFtRU5TMF8yN0VkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVs
ZUUKK19fWk5LN1dlYkNvcmU4UG9zaXRpb24xMGRvd25zdHJlYW1FTlNfMjdFZGl0aW5nQm91bmRh
cnlDcm9zc2luZ1J1bGVFCiBfX1pOSzdXZWJDb3JlOFBvc2l0aW9uMjVsZWFkaW5nV2hpdGVzcGFj
ZVBvc2l0aW9uRU5TXzlFQWZmaW5pdHlFYgogX19aTks3V2ViQ29yZThQb3NpdGlvbjI2dHJhaWxp
bmdXaGl0ZXNwYWNlUG9zaXRpb25FTlNfOUVBZmZpbml0eUViCi1fX1pOSzdXZWJDb3JlOFBvc2l0
aW9uOHVwc3RyZWFtRU5TMF8yN0VkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVsZUUKK19fWk5LN1dl
YkNvcmU4UG9zaXRpb244dXBzdHJlYW1FTlNfMjdFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGVF
CiBfX1pOSzdXZWJDb3JlOURPTVdpbmRvdzI3cGVuZGluZ1VubG9hZEV2ZW50TGlzdGVuZXJzRXYK
IF9fWk5LN1dlYkNvcmU5RmxvYXRSZWN0Y3Y3X05TUmVjdEV2CiBfX1pOSzdXZWJDb3JlOUZyYW1l
VHJlZTEydHJhdmVyc2VOZXh0RVBLTlNfNUZyYW1lRQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJD
b3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBjYzU1M2JlZTFmYmI5OTk5YTBm
OGJjNWEwNmQ3ZmQ0NDZhZmUzNDAyLi41ZjQ1MzkzNDQ5OTc4MDM4MWZjNmJhYTNjMjAyMTkwZDg3
Njk1MWI0IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQpAQCAtMTM4Niw2ICsxMzg2LDcgQEAKICAgICAgICAgICAgICdlZGl0aW5nL0Vk
aXRDb21tYW5kLmgnLAogICAgICAgICAgICAgJ2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yLmgnLAog
ICAgICAgICAgICAgJ2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yVHlwZXMuaCcsCisgICAgICAgICAg
ICAnZWRpdGluZy9FZGl0aW5nQm91bmRhcnkuaCcsCiAgICAgICAgICAgICAnZWRpdGluZy9FZGl0
aW5nU3R5bGUuY3BwJywKICAgICAgICAgICAgICdlZGl0aW5nL0VkaXRpbmdTdHlsZS5oJywKICAg
ICAgICAgICAgICdlZGl0aW5nL0VkaXRvci5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJD
b3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggMTA2N2NlMjg2NDY0MTBlMzFlMjEx
ZDIyZGE0Mjc5ZGUwODhmOWJiNS4uMGJkYmQ1YWZmOWQzOWNmZmQ3MzUwNWFiYzJiY2MzZDU1ZmU3
Yjg5MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNv
cmUucHJvCkBAIC0xNzEwLDYgKzE3MTAsNyBAQCBIRUFERVJTICs9IFwKICAgICBlZGl0aW5nL0Vk
aXRDb21tYW5kLmggXAogICAgIGVkaXRpbmcvRWRpdGluZ1N0eWxlLmggXAogICAgIGVkaXRpbmcv
RWRpdGluZ0JlaGF2aW9yLmggXAorICAgIGVkaXRpbmcvRWRpdGluZ0JvdW5kYXJ5LmggXAogICAg
IGVkaXRpbmcvRWRpdG9yLmggXAogICAgIGVkaXRpbmcvRm9ybWF0QmxvY2tDb21tYW5kLmggXAog
ICAgIGVkaXRpbmcvaHRtbGVkaXRpbmcuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagppbmRleCAyM2ZkNGUwNTI3ZmFiODMwYjYxYTI1YjRiZWZjMjlmNWNiMDVlOGMxLi41YzI5
ZTQ2Zjg2YmEyZDNhMmY3NmUwZjZlNzRkN2RlZjI3MjAxNTdhIDEwMDc1NQotLS0gYS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKQEAgLTQ2MTY3LDYgKzQ2MTY3LDEwIEBACiAJCQkJPg0KIAkJCTwv
RmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGVkaXRpbmdcRWRpdGluZ0Jv
dW5kYXJ5LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxlZGl0aW5nXERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIuY3BwIg0KIAkJCQk+DQogCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggMjMxNmNlZmI0NzBhNmQ2ZWQ0NDk4NTZjNDgxMDA2MTlkMWVlNzg1Zi4uMjk0
MTgyMWI3NjhjZWUwZWIzNmZmNjIzZGNkOGIxZTJlMDEwNDQxNyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg5OCw2ICs4OTgsNyBAQAogCQkzN0ZENDI5
ODExODM2ODQ2MDA5M0MwMjkgLyogVHJlZURlcHRoTGltaXQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RkQ0Mjk3MTE4MzY4NDYwMDkzQzAyOSAvKiBU
cmVlRGVwdGhMaW1pdC5oICovOyB9OwogCQkzODg4RjZFRTEyOEM5ODg5MDAwQ0E4RTAgLyogSW5z
cGVjdG9yRmlsZVN5c3RlbUFnZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDM4ODhGNkVDMTI4Qzk4ODkwMDBDQThFMCAvKiBJbnNwZWN0b3JGaWxl
U3lzdGVtQWdlbnQuY3BwICovOyB9OwogCQkzODg4RjZFRjEyOEM5ODg5MDAwQ0E4RTAgLyogSW5z
cGVjdG9yRmlsZVN5c3RlbUFnZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzODg4RjZFRDEyOEM5ODg5MDAwQ0E4RTAgLyogSW5zcGVjdG9yRmlsZVN5
c3RlbUFnZW50LmggKi87IH07CisJCTNBQzY0OEIyMTI5RTE0NjUwMEMzRUIyNSAvKiBFZGl0aW5n
Qm91bmRhcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDNBQzY0OEIxMTI5RTE0NjUwMEMzRUIyNSAvKiBFZGl0aW5nQm91bmRhcnkuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTAwMkNDRDBGNjZFREVG
MDA5RTY2MEQgLyogU2NyaXB0RnVuY3Rpb25DYWxsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwMkNDQjBGNjZFREVGMDA5RTY2MEQgLyogU2NyaXB0
RnVuY3Rpb25DYWxsLmggKi87IH07CiAJCTQxMDAyQ0NFMEY2NkVERUYwMDlFNjYwRCAvKiBTY3Jp
cHRGdW5jdGlvbkNhbGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDEwMDJDQ0MwRjY2RURFRjAwOUU2NjBEIC8qIFNjcmlwdEZ1bmN0aW9uQ2FsbC5j
cHAgKi87IH07CiAJCTQxMEI3RTcyMTA0NUZBQjAwMEQ4MjI0RiAvKiBKU01lc3NhZ2VFdmVudEN1
c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MTBCN0U3MTEwNDVGQUIwMDBEODIyNEYgLyogSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwICovOyB9
OwpAQCAtNjk5Niw2ICs2OTk3LDcgQEAKIAkJMzdGRDQyOTcxMTgzNjg0NjAwOTNDMDI5IC8qIFRy
ZWVEZXB0aExpbWl0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRyZWVEZXB0
aExpbWl0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTM4ODhGNkVDMTI4Qzk4ODkw
MDBDQThFMCAvKiBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzg4OEY2RUQxMjhDOTg4OTAwMENBOEUwIC8qIEluc3Bl
Y3RvckZpbGVTeXN0ZW1BZ2VudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJ
bnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
M0FDNjQ4QjExMjlFMTQ2NTAwQzNFQjI1IC8qIEVkaXRpbmdCb3VuZGFyeS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBFZGl0aW5nQm91bmRhcnkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDEwMDJDQ0IwRjY2RURFRjAwOUU2NjBEIC8qIFNjcmlwdEZ1bmN0aW9u
Q2FsbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRGdW5jdGlvbkNh
bGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwMDJDQ0MwRjY2RURFRjAwOUU2
NjBEIC8qIFNjcmlwdEZ1bmN0aW9uQ2FsbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTY3JpcHRGdW5jdGlvbkNhbGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MTBCN0U3MTEwNDVGQUIwMDBEODIyNEYgLyogSlNNZXNzYWdlRXZlbnRDdXN0b20u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZXNzYWdlRXZlbnRD
dXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ1ODAsNiArMTQ1ODIs
NyBAQAogCQkJCTkzMzA5RDk1MDk5RTY0OTEwMDU2RTU4MSAvKiBFZGl0Q29tbWFuZC5oICovLAog
CQkJCTRGMTUzNEREMTFCNTMyRUMwMDIxRkQ4NiAvKiBFZGl0aW5nQmVoYXZpb3IuaCAqLywKIAkJ
CQk0RjE1MzRERjExQjUzMzAyMDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9yVHlwZXMuaCAqLywK
KwkJCQkzQUM2NDhCMTEyOUUxNDY1MDBDM0VCMjUgLyogRWRpdGluZ0JvdW5kYXJ5LmggKi8sCiAJ
CQkJOUJBQjZDNkIxMjU1MDYzMTAwMTYyNkQ0IC8qIEVkaXRpbmdTdHlsZS5jcHAgKi8sCiAJCQkJ
OUJBQjZDNkExMjU1MDYzMTAwMTYyNkQ0IC8qIEVkaXRpbmdTdHlsZS5oICovLAogCQkJCTRCMzA0
M0NBMEFFMDM3M0IwMEE4MjY0NyAvKiBFZGl0b3IuY3BwICovLApAQCAtMTk1NzgsNiArMTk1ODEs
NyBAQAogCQkJCTkzMzA5REU0MDk5RTY0OTIwMDU2RTU4MSAvKiBFZGl0Q29tbWFuZC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNEYxNTM0REUxMUI1MzJFQzAwMjFGRDg2IC8qIEVkaXRpbmdCZWhhdmlv
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEYxNTM0RTAxMUI1MzMwMjAwMjFGRDg2IC8qIEVkaXRp
bmdCZWhhdmlvclR5cGVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkzQUM2NDhCMjEyOUUxNDY1MDBD
M0VCMjUgLyogRWRpdGluZ0JvdW5kYXJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQk5QkFCNkM2QzEy
NTUwNjMxMDAxNjI2RDQgLyogRWRpdGluZ1N0eWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTUw
QjZBNDA5OURGMDI3MDA5MEQ3ODEgLyogRWRpdGluZ1RleHQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTRCMzA0M0NEMEFFMDM3M0IwMEE4MjY0NyAvKiBFZGl0b3IuaCBpbiBIZWFkZXJzICovLApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwIGIvV2ViQ29yZS9kb20vUG9zaXRpb24u
Y3BwCmluZGV4IGQ1NjYxM2U3N2I5ZDIxN2YzNjJmNDIzMWY0NzljNTg2MTVlZTYxNTMuLmJlMTc1
YWE5MzQxODE2M2U3YjVlNjQ3ZjdmMmI5OWM3MjJlMTkyZWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
ZG9tL1Bvc2l0aW9uLmNwcAorKysgYi9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKQEAgLTEwMDYs
NyArMTAwNiw3IEBAIHN0YXRpYyBQb3NpdGlvbiBkb3duc3RyZWFtSWdub3JpbmdFZGl0aW5nQm91
bmRhcmllcyhQb3NpdGlvbiBwb3NpdGlvbikKICAgICBQb3NpdGlvbiBsYXN0UG9zaXRpb247CiAg
ICAgd2hpbGUgKHBvc2l0aW9uICE9IGxhc3RQb3NpdGlvbikgewogICAgICAgICBsYXN0UG9zaXRp
b24gPSBwb3NpdGlvbjsKLSAgICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbi5kb3duc3RyZWFtKFBv
c2l0aW9uOjpDYW5Dcm9zc0VkaXRpbmdCb3VuZGFyeSk7CisgICAgICAgIHBvc2l0aW9uID0gcG9z
aXRpb24uZG93bnN0cmVhbShDYW5Dcm9zc0VkaXRpbmdCb3VuZGFyeSk7CiAgICAgfQogICAgIHJl
dHVybiBwb3NpdGlvbjsKIH0KQEAgLTEwMTYsNyArMTAxNiw3IEBAIHN0YXRpYyBQb3NpdGlvbiB1
cHN0cmVhbUlnbm9yaW5nRWRpdGluZ0JvdW5kYXJpZXMoUG9zaXRpb24gcG9zaXRpb24pCiAgICAg
UG9zaXRpb24gbGFzdFBvc2l0aW9uOwogICAgIHdoaWxlIChwb3NpdGlvbiAhPSBsYXN0UG9zaXRp
b24pIHsKICAgICAgICAgbGFzdFBvc2l0aW9uID0gcG9zaXRpb247Ci0gICAgICAgIHBvc2l0aW9u
ID0gcG9zaXRpb24udXBzdHJlYW0oUG9zaXRpb246OkNhbkNyb3NzRWRpdGluZ0JvdW5kYXJ5KTsK
KyAgICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbi51cHN0cmVhbShDYW5Dcm9zc0VkaXRpbmdCb3Vu
ZGFyeSk7CiAgICAgfQogICAgIHJldHVybiBwb3NpdGlvbjsKIH0KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvZG9tL1Bvc2l0aW9uLmggYi9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5oCmluZGV4IDU1MmQ2NzVm
YTczMzFhNmVhYzRiN2QwYjM5MTU0NmU4MzAyM2I3YjMuLjRkM2I1ZmU2ODc4ZDZlMWUwMmY3YzU1
YjJmMmVhNDE3NDViMzkxZTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmgKKysr
IGIvV2ViQ29yZS9kb20vUG9zaXRpb24uaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBQb3Np
dGlvbl9oCiAKICNpbmNsdWRlICJDb250YWluZXJOb2RlLmgiCisjaW5jbHVkZSAiRWRpdGluZ0Jv
dW5kYXJ5LmgiCiAjaW5jbHVkZSAiVGV4dEFmZmluaXR5LmgiCiAjaW5jbHVkZSAiVGV4dERpcmVj
dGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CkBAIC01NiwxMSArNTcsNiBAQCBw
dWJsaWM6CiAgICAgICAgIFBvc2l0aW9uSXNCZWZvcmVBbmNob3IKICAgICB9OwogCi0gICAgZW51
bSBFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgewotICAgICAgICBDYW5Dcm9zc0VkaXRpbmdC
b3VuZGFyeSwKLSAgICAgICAgQ2Fubm90Q3Jvc3NFZGl0aW5nQm91bmRhcnkKLSAgICB9OwotICAg
IAogICAgIFBvc2l0aW9uKCkKICAgICAgICAgOiBtX29mZnNldCgwKQogICAgICAgICAsIG1fYW5j
aG9yVHlwZShQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Vk
aXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9XZWJDb3JlL2VkaXRpbmcvRGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggYjYxN2EyN2VhYzE3ODU4NGViMjU1NDRlYTk2MWYz
YTE3ZjA4MzBiNy4uNTk0YTk0Zjc3MDdmNjkwNzM5YTZmNjBkYzg2Y2RjMzFjODUwOTMwZiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBi
L1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtMjgsNiArMjgs
NyBAQAogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50
LmgiCisjaW5jbHVkZSAiRWRpdGluZ0JvdW5kYXJ5LmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAj
aW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgpAQCAtNzM5LDgg
Kzc0MCw4IEBAIHZvaWQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgRUFm
ZmluaXR5IGFmZmluaXR5ID0gbV9zZWxlY3Rpb25Ub0RlbGV0ZS5hZmZpbml0eSgpOwogICAgIAog
ICAgIFBvc2l0aW9uIGRvd25zdHJlYW1FbmQgPSBtX3NlbGVjdGlvblRvRGVsZXRlLmVuZCgpLmRv
d25zdHJlYW0oKTsKLSAgICBtX25lZWRQbGFjZWhvbGRlciA9IGlzU3RhcnRPZlBhcmFncmFwaCht
X3NlbGVjdGlvblRvRGVsZXRlLnZpc2libGVTdGFydCgpLCBQb3NpdGlvbjo6Q2FuQ3Jvc3NFZGl0
aW5nQm91bmRhcnkpCi0gICAgICAgICAgICAmJiBpc0VuZE9mUGFyYWdyYXBoKG1fc2VsZWN0aW9u
VG9EZWxldGUudmlzaWJsZUVuZCgpLCBQb3NpdGlvbjo6Q2FuQ3Jvc3NFZGl0aW5nQm91bmRhcnkp
CisgICAgbV9uZWVkUGxhY2Vob2xkZXIgPSBpc1N0YXJ0T2ZQYXJhZ3JhcGgobV9zZWxlY3Rpb25U
b0RlbGV0ZS52aXNpYmxlU3RhcnQoKSwgQ2FuQ3Jvc3NFZGl0aW5nQm91bmRhcnkpCisgICAgICAg
ICAgICAmJiBpc0VuZE9mUGFyYWdyYXBoKG1fc2VsZWN0aW9uVG9EZWxldGUudmlzaWJsZUVuZCgp
LCBDYW5Dcm9zc0VkaXRpbmdCb3VuZGFyeSkKICAgICAgICAgICAgICYmICFsaW5lQnJlYWtFeGlz
dHNBdFZpc2libGVQb3NpdGlvbihtX3NlbGVjdGlvblRvRGVsZXRlLnZpc2libGVFbmQoKSk7CiAg
ICAgaWYgKG1fbmVlZFBsYWNlaG9sZGVyKSB7CiAgICAgICAgIC8vIERvbid0IG5lZWQgYSBwbGFj
ZWhvbGRlciB3aGVuIGRlbGV0aW5nIGEgc2VsZWN0aW9uIHRoYXQgc3RhcnRzIGp1c3QgYmVmb3Jl
IGEgdGFibGUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQm91bmRhcnkuaCBi
L1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQm91bmRhcnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xY2IwODQ5NDZl
MGQ4MjVmZDI2NjhjMGM0NWE2ZTRlY2M1MTZlYzMwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRpbmdCb3VuZGFyeS5oCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDQsIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09N
UFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgRWRpdGluZ0JvdW5kYXJ5X2gKKyNkZWZpbmUgRWRpdGluZ0JvdW5k
YXJ5X2gKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIEVkaXRpbmdCb3VuZGFyeUNyb3Nz
aW5nUnVsZSB7CisgICAgQ2FuQ3Jvc3NFZGl0aW5nQm91bmRhcnksCisgICAgQ2Fubm90Q3Jvc3NF
ZGl0aW5nQm91bmRhcnkKK307CisKK30KKworI2VuZGlmIC8vIEVkaXRpbmdCb3VuZGFyeV9oCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5jcHAgYi9XZWJDb3JlL2Vk
aXRpbmcvdmlzaWJsZV91bml0cy5jcHAKaW5kZXggN2Q0NjM3NGJjNjQyYWM2M2E4NDcxMTg5MDAw
NmFiMWUyNGQ2NjVjYS4uOTFkZTY2M2M1ZTVlMmFjOGJmZDZkZjljYmQ2NmJiMmMwNDg1NWE0NiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwCisrKyBiL1dlYkNv
cmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcApAQCAtNzgwLDcgKzc4MCw3IEBAIFZpc2libGVQ
b3NpdGlvbiBuZXh0U2VudGVuY2VQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24gJmMpCiAg
ICAgcmV0dXJuIGMuaG9ub3JFZGl0YWJsZUJvdW5kYXJ5QXRPckJlZm9yZShuZXh0KTsKIH0KIAot
VmlzaWJsZVBvc2l0aW9uIHN0YXJ0T2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBj
LCBQb3NpdGlvbjo6RWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlIGJvdW5kYXJ5Q3Jvc3NpbmdS
dWxlKQorVmlzaWJsZVBvc2l0aW9uIHN0YXJ0T2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0
aW9uJiBjLCBFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgYm91bmRhcnlDcm9zc2luZ1J1bGUp
CiB7CiAgICAgUG9zaXRpb24gcCA9IGMuZGVlcEVxdWl2YWxlbnQoKTsKICAgICBOb2RlICpzdGFy
dE5vZGUgPSBwLm5vZGUoKTsKQEAgLTc5OCw3ICs3OTgsNyBAQCBWaXNpYmxlUG9zaXRpb24gc3Rh
cnRPZlBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24mIGMsIFBvc2l0aW9uOjpFZGl0aW5n
Qm91bgogCiAgICAgTm9kZSAqbiA9IHN0YXJ0Tm9kZTsKICAgICB3aGlsZSAobikgewotICAgICAg
ICBpZiAoYm91bmRhcnlDcm9zc2luZ1J1bGUgPT0gUG9zaXRpb246OkNhbm5vdENyb3NzRWRpdGlu
Z0JvdW5kYXJ5ICYmIG4tPmlzQ29udGVudEVkaXRhYmxlKCkgIT0gc3RhcnROb2RlLT5pc0NvbnRl
bnRFZGl0YWJsZSgpKQorICAgICAgICBpZiAoYm91bmRhcnlDcm9zc2luZ1J1bGUgPT0gQ2Fubm90
Q3Jvc3NFZGl0aW5nQm91bmRhcnkgJiYgbi0+aXNDb250ZW50RWRpdGFibGUoKSAhPSBzdGFydE5v
ZGUtPmlzQ29udGVudEVkaXRhYmxlKCkpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgUmVu
ZGVyT2JqZWN0ICpyID0gbi0+cmVuZGVyZXIoKTsKICAgICAgICAgaWYgKCFyKSB7CkBAIC04Mzks
NyArODM5LDcgQEAgVmlzaWJsZVBvc2l0aW9uIHN0YXJ0T2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJiBjLCBQb3NpdGlvbjo6RWRpdGluZ0JvdW4KICAgICByZXR1cm4gVmlzaWJsZVBv
c2l0aW9uKG5vZGUsIG9mZnNldCwgRE9XTlNUUkVBTSk7CiB9CiAKLVZpc2libGVQb3NpdGlvbiBl
bmRPZlBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24gJmMsIFBvc2l0aW9uOjpFZGl0aW5n
Qm91bmRhcnlDcm9zc2luZ1J1bGUgYm91bmRhcnlDcm9zc2luZ1J1bGUpCitWaXNpYmxlUG9zaXRp
b24gZW5kT2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uICZjLCBFZGl0aW5nQm91bmRh
cnlDcm9zc2luZ1J1bGUgYm91bmRhcnlDcm9zc2luZ1J1bGUpCiB7ICAgIAogICAgIGlmIChjLmlz
TnVsbCgpKQogICAgICAgICByZXR1cm4gVmlzaWJsZVBvc2l0aW9uKCk7CkBAIC04NTgsNyArODU4
LDcgQEAgVmlzaWJsZVBvc2l0aW9uIGVuZE9mUGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlv
biAmYywgUG9zaXRpb246OkVkaXRpbmdCb3VuZGEKIAogICAgIE5vZGUgKm4gPSBzdGFydE5vZGU7
CiAgICAgd2hpbGUgKG4pIHsKLSAgICAgICAgaWYgKGJvdW5kYXJ5Q3Jvc3NpbmdSdWxlID09IFBv
c2l0aW9uOjpDYW5ub3RDcm9zc0VkaXRpbmdCb3VuZGFyeSAmJiBuLT5pc0NvbnRlbnRFZGl0YWJs
ZSgpICE9IHN0YXJ0Tm9kZS0+aXNDb250ZW50RWRpdGFibGUoKSkKKyAgICAgICAgaWYgKGJvdW5k
YXJ5Q3Jvc3NpbmdSdWxlID09IENhbm5vdENyb3NzRWRpdGluZ0JvdW5kYXJ5ICYmIG4tPmlzQ29u
dGVudEVkaXRhYmxlKCkgIT0gc3RhcnROb2RlLT5pc0NvbnRlbnRFZGl0YWJsZSgpKQogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIFJlbmRlck9iamVjdCAqciA9IG4tPnJlbmRlcmVyKCk7CiAg
ICAgICAgIGlmICghcikgewpAQCAtOTE0LDEyICs5MTQsMTIgQEAgYm9vbCBpblNhbWVQYXJhZ3Jh
cGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uICZhLCBjb25zdCBWaXNpYmxlUG9zaXRpb24gJmIpCiAg
ICAgcmV0dXJuIGEuaXNOb3ROdWxsKCkgJiYgc3RhcnRPZlBhcmFncmFwaChhKSA9PSBzdGFydE9m
UGFyYWdyYXBoKGIpOwogfQogCi1ib29sIGlzU3RhcnRPZlBhcmFncmFwaChjb25zdCBWaXNpYmxl
UG9zaXRpb24gJnBvcywgUG9zaXRpb246OkVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVsZSBib3Vu
ZGFyeUNyb3NzaW5nUnVsZSkKK2Jvb2wgaXNTdGFydE9mUGFyYWdyYXBoKGNvbnN0IFZpc2libGVQ
b3NpdGlvbiAmcG9zLCBFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgYm91bmRhcnlDcm9zc2lu
Z1J1bGUpCiB7CiAgICAgcmV0dXJuIHBvcy5pc05vdE51bGwoKSAmJiBwb3MgPT0gc3RhcnRPZlBh
cmFncmFwaChwb3MsIGJvdW5kYXJ5Q3Jvc3NpbmdSdWxlKTsKIH0KIAotYm9vbCBpc0VuZE9mUGFy
YWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmcG9zLCBQb3NpdGlvbjo6RWRpdGluZ0JvdW5k
YXJ5Q3Jvc3NpbmdSdWxlIGJvdW5kYXJ5Q3Jvc3NpbmdSdWxlKQorYm9vbCBpc0VuZE9mUGFyYWdy
YXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmcG9zLCBFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1
bGUgYm91bmRhcnlDcm9zc2luZ1J1bGUpCiB7CiAgICAgcmV0dXJuIHBvcy5pc05vdE51bGwoKSAm
JiBwb3MgPT0gZW5kT2ZQYXJhZ3JhcGgocG9zLCBib3VuZGFyeUNyb3NzaW5nUnVsZSk7CiB9CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5oIGIvV2ViQ29yZS9lZGl0
aW5nL3Zpc2libGVfdW5pdHMuaAppbmRleCBmNzhmOWQxNDlmZTgzMWY4OTgwMzQxM2JlNTFiMzBl
ZDk1ODI4MWFhLi45OGE1MzMyM2I4ZjczNzE5MWI5MDE4NDA3YjM0MjdhOGZiZWRmNjZkIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5oCisrKyBiL1dlYkNvcmUvZWRp
dGluZy92aXNpYmxlX3VuaXRzLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgdmlzaWJsZV91
bml0c19oCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkVkaXRpbmdCb3VuZGFy
eS5oIgogI2luY2x1ZGUgIlBvc2l0aW9uLmgiCiAjaW5jbHVkZSAiVGV4dEFmZmluaXR5LmgiCiAK
QEAgLTYxLDEzICs2MiwxMyBAQCBWaXNpYmxlUG9zaXRpb24gbG9naWNhbFN0YXJ0T2ZMaW5lKGNv
bnN0IFZpc2libGVQb3NpdGlvbiAmKTsKIFZpc2libGVQb3NpdGlvbiBsb2dpY2FsRW5kT2ZMaW5l
KGNvbnN0IFZpc2libGVQb3NpdGlvbiAmKTsKIAogLy8gcGFyYWdyYXBocyAocGVyaGFwcyBhIG1p
c25vbWVyLCBjYW4gYmUgZGl2aWRlZCBieSBsaW5lIGJyZWFrIGVsZW1lbnRzKQotVmlzaWJsZVBv
c2l0aW9uIHN0YXJ0T2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiwgUG9zaXRpb246
OkVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVsZSA9IFBvc2l0aW9uOjpDYW5ub3RDcm9zc0VkaXRp
bmdCb3VuZGFyeSk7Ci1WaXNpYmxlUG9zaXRpb24gZW5kT2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJiwgUG9zaXRpb246OkVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVsZSA9IFBvc2l0
aW9uOjpDYW5ub3RDcm9zc0VkaXRpbmdCb3VuZGFyeSk7CitWaXNpYmxlUG9zaXRpb24gc3RhcnRP
ZlBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24mLCBFZGl0aW5nQm91bmRhcnlDcm9zc2lu
Z1J1bGUgPSBDYW5ub3RDcm9zc0VkaXRpbmdCb3VuZGFyeSk7CitWaXNpYmxlUG9zaXRpb24gZW5k
T2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiwgRWRpdGluZ0JvdW5kYXJ5Q3Jvc3Np
bmdSdWxlID0gQ2Fubm90Q3Jvc3NFZGl0aW5nQm91bmRhcnkpOwogVmlzaWJsZVBvc2l0aW9uIHN0
YXJ0T2ZOZXh0UGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOwogVmlzaWJsZVBvc2l0
aW9uIHByZXZpb3VzUGFyYWdyYXBoUG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uICYsIGlu
dCB4KTsKIFZpc2libGVQb3NpdGlvbiBuZXh0UGFyYWdyYXBoUG9zaXRpb24oY29uc3QgVmlzaWJs
ZVBvc2l0aW9uICYsIGludCB4KTsKLWJvb2wgaXNTdGFydE9mUGFyYWdyYXBoKGNvbnN0IFZpc2li
bGVQb3NpdGlvbiAmLCBQb3NpdGlvbjo6RWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlID0gUG9z
aXRpb246OkNhbm5vdENyb3NzRWRpdGluZ0JvdW5kYXJ5KTsKLWJvb2wgaXNFbmRPZlBhcmFncmFw
aChjb25zdCBWaXNpYmxlUG9zaXRpb24gJiwgUG9zaXRpb246OkVkaXRpbmdCb3VuZGFyeUNyb3Nz
aW5nUnVsZSA9IFBvc2l0aW9uOjpDYW5ub3RDcm9zc0VkaXRpbmdCb3VuZGFyeSk7Citib29sIGlz
U3RhcnRPZlBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24gJiwgRWRpdGluZ0JvdW5kYXJ5
Q3Jvc3NpbmdSdWxlID0gQ2Fubm90Q3Jvc3NFZGl0aW5nQm91bmRhcnkpOworYm9vbCBpc0VuZE9m
UGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmLCBFZGl0aW5nQm91bmRhcnlDcm9zc2lu
Z1J1bGUgPSBDYW5ub3RDcm9zc0VkaXRpbmdCb3VuZGFyeSk7CiBib29sIGluU2FtZVBhcmFncmFw
aChjb25zdCBWaXNpYmxlUG9zaXRpb24gJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uICYpOwogCiAv
LyBibG9ja3MgKHRydWUgcGFyYWdyYXBoczsgbGluZSBicmVhayBlbGVtZW50cyBkb24ndCBicmVh
ayBibG9ja3MpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3Bw
IGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAppbmRleCBlMTNiMWY5ZWM3NGIz
N2MzMzZiMDMwOTQ1OTY2OTY1YTJmMmI3YjBlLi5iMGU3NGFlNTlkNjhjYTM2NzIzNWQzODFjZDgz
Y2ViYTI3ZmQ0OGU5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
Y3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTMxLDYgKzMx
LDcgQEAKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNlbGVjdG9yLmgi
CiAjaW5jbHVkZSAiRGFzaEFycmF5LmgiCisjaW5jbHVkZSAiRWRpdGluZ0JvdW5kYXJ5LmgiCiAj
aW5jbHVkZSAiRmxvYXRRdWFkLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFt
ZVZpZXcuaCIKQEAgLTI2MzksMTAgKzI2NDAsMTAgQEAgVmlzaWJsZVBvc2l0aW9uIFJlbmRlck9i
amVjdDo6Y3JlYXRlVmlzaWJsZVBvc2l0aW9uKGludCBvZmZzZXQsIEVBZmZpbml0eSBhZmZpbmkK
ICAgICAgICAgaWYgKCFub2RlLT5pc0NvbnRlbnRFZGl0YWJsZSgpKSB7CiAgICAgICAgICAgICAv
LyBJZiBpdCBjYW4gYmUgZm91bmQsIHdlIHByZWZlciBhIHZpc3VhbGx5IGVxdWl2YWxlbnQgcG9z
aXRpb24gdGhhdCBpcyBlZGl0YWJsZS4gCiAgICAgICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbihu
b2RlLCBvZmZzZXQpOwotICAgICAgICAgICAgUG9zaXRpb24gY2FuZGlkYXRlID0gcG9zaXRpb24u
ZG93bnN0cmVhbShQb3NpdGlvbjo6Q2FuQ3Jvc3NFZGl0aW5nQm91bmRhcnkpOworICAgICAgICAg
ICAgUG9zaXRpb24gY2FuZGlkYXRlID0gcG9zaXRpb24uZG93bnN0cmVhbShDYW5Dcm9zc0VkaXRp
bmdCb3VuZGFyeSk7CiAgICAgICAgICAgICBpZiAoY2FuZGlkYXRlLm5vZGUoKS0+aXNDb250ZW50
RWRpdGFibGUoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gVmlzaWJsZVBvc2l0aW9uKGNhbmRp
ZGF0ZSwgYWZmaW5pdHkpOwotICAgICAgICAgICAgY2FuZGlkYXRlID0gcG9zaXRpb24udXBzdHJl
YW0oUG9zaXRpb246OkNhbkNyb3NzRWRpdGluZ0JvdW5kYXJ5KTsKKyAgICAgICAgICAgIGNhbmRp
ZGF0ZSA9IHBvc2l0aW9uLnVwc3RyZWFtKENhbkNyb3NzRWRpdGluZ0JvdW5kYXJ5KTsKICAgICAg
ICAgICAgIGlmIChjYW5kaWRhdGUubm9kZSgpLT5pc0NvbnRlbnRFZGl0YWJsZSgpKQogICAgICAg
ICAgICAgICAgIHJldHVybiBWaXNpYmxlUG9zaXRpb24oY2FuZGlkYXRlLCBhZmZpbml0eSk7CiAg
ICAgICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>