<?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>102730</bug_id>
          
          <creation_ts>2012-11-19 16:09:16 -0800</creation_ts>
          <short_desc>IndexedDB: stub out IDBDatabaseBackendInterface::createTransaction</short_desc>
          <delta_ts>2012-11-27 06:11:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>102732</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alec Flett">alecflett</reporter>
          <assigned_to name="Alec Flett">alecflett</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dgrogan</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>jsbell</cc>
    
    <cc>peter+ews</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>771149</commentid>
    <comment_count>0</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-11-19 16:09:16 -0800</bug_when>
    <thetext>Part of transaction id refactor.

Create a version that takes an int64_t transaction id.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771443</commentid>
    <comment_count>1</comment_count>
      <attachid>175127</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-11-19 20:46:33 -0800</bug_when>
    <thetext>Created attachment 175127
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771444</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-19 20:50:03 -0800</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771458</commentid>
    <comment_count>3</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-11-19 21:14:19 -0800</bug_when>
    <thetext>abarth@ - mind a simple review of WebKit API stuff and a little boiler plate to add createTransaction() that replaces transaction()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771466</commentid>
    <comment_count>4</comment_count>
      <attachid>175127</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-19 21:19:35 -0800</bug_when>
    <thetext>Comment on attachment 175127
Patch

Attachment 175127 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14905459</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771470</commentid>
    <comment_count>5</comment_count>
      <attachid>175133</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-11-19 21:23:54 -0800</bug_when>
    <thetext>Created attachment 175133
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771596</commentid>
    <comment_count>6</comment_count>
      <attachid>175133</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-19 23:45:04 -0800</bug_when>
    <thetext>Comment on attachment 175133
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        Stub out and support passing an int64_t-based transaction id
&gt; +        so the frontend can refer to transactions by id rather than
&gt; +        a proxy object or a direct pointer reference.

Why is that useful?  (I feel a bit ignorant.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772005</commentid>
    <comment_count>7</comment_count>
      <attachid>175133</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-11-20 10:49:53 -0800</bug_when>
    <thetext>Comment on attachment 175133
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:10
&gt;&gt; +        a proxy object or a direct pointer reference.
&gt; 
&gt; Why is that useful?  (I feel a bit ignorant.)

Sorry this is part of a longer refactoring of pretty much all of the IDB backend to remove extra layers of abstraction in the name of performance and maintainability. I&apos;m going to have 10+ patches in the next few weeks about this..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772051</commentid>
    <comment_count>8</comment_count>
      <attachid>175133</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-11-20 11:44:58 -0800</bug_when>
    <thetext>Comment on attachment 175133
Patch

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

lgtm, but only c/o some offline conversations

&gt; Source/WebCore/Modules/indexeddb/IDBTransactionBackendImpl.h:92
&gt; +    const int64_t m_id;

Eventually this will be referenced via a map id =&gt; IDBTransactionBackendImpl inside IDBDatabaseBackendImpl. Unused right now, correct?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772082</commentid>
    <comment_count>9</comment_count>
      <attachid>175133</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-11-20 12:20:46 -0800</bug_when>
    <thetext>Comment on attachment 175133
Patch

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

&gt;&gt; Source/WebCore/Modules/indexeddb/IDBTransactionBackendImpl.h:92
&gt;&gt; +    const int64_t m_id;
&gt; 
&gt; Eventually this will be referenced via a map id =&gt; IDBTransactionBackendImpl inside IDBDatabaseBackendImpl. Unused right now, correct?

Correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772138</commentid>
    <comment_count>10</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-11-20 13:49:08 -0800</bug_when>
    <thetext>silviapf@ - I think you got the wrong bug there...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772239</commentid>
    <comment_count>11</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-11-20 15:51:19 -0800</bug_when>
    <thetext>fishd@ - mind a quick webkit API review? (and like 2 lines of non-boilerplate IndexedDB)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772333</commentid>
    <comment_count>12</comment_count>
      <attachid>175133</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-11-20 17:37:38 -0800</bug_when>
    <thetext>Comment on attachment 175133
Patch

Had to take a step back - I think the transaction id is going to have to be a string.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773010</commentid>
    <comment_count>13</comment_count>
      <attachid>175457</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-11-21 09:11:02 -0800</bug_when>
    <thetext>Created attachment 175457
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773040</commentid>
    <comment_count>14</comment_count>
      <attachid>175457</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-21 09:42:33 -0800</bug_when>
    <thetext>Comment on attachment 175457
Patch

Attachment 175457 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14968004</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773041</commentid>
    <comment_count>15</comment_count>
      <attachid>175466</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-11-21 09:46:39 -0800</bug_when>
    <thetext>Created attachment 175466
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775997</commentid>
    <comment_count>16</comment_count>
      <attachid>176099</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-11-26 15:52:39 -0800</bug_when>
    <thetext>Created attachment 176099
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776258</commentid>
    <comment_count>17</comment_count>
      <attachid>176099</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-26 20:36:36 -0800</bug_when>
    <thetext>Comment on attachment 176099
Patch

Attachment 176099 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14991821</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776273</commentid>
    <comment_count>18</comment_count>
      <attachid>176099</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-11-26 20:57:37 -0800</bug_when>
    <thetext>Comment on attachment 176099
Patch

Attachment 176099 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/15000562</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776300</commentid>
    <comment_count>19</comment_count>
      <attachid>176099</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-11-26 21:18:46 -0800</bug_when>
    <thetext>Comment on attachment 176099
Patch

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

&gt; Source/WebKit/chromium/public/WebIDBDatabase.h:67
&gt; +    // Transfers ownership of the WebIDBTransaction to the caller.

nit: No need for this comment now that you are using the create* naming convention.  All create* functions in the API have this property.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776660</commentid>
    <comment_count>20</comment_count>
      <attachid>176244</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-11-27 05:35:50 -0800</bug_when>
    <thetext>Created attachment 176244
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776688</commentid>
    <comment_count>21</comment_count>
      <attachid>176244</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-27 06:11:14 -0800</bug_when>
    <thetext>Comment on attachment 176244
Patch for landing

Clearing flags on attachment: 176244

Committed r135856: &lt;http://trac.webkit.org/changeset/135856&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776689</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-27 06:11:19 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175127</attachid>
            <date>2012-11-19 20:46:33 -0800</date>
            <delta_ts>2012-11-19 21:23:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102730-20121119204422.patch</filename>
            <type>text/plain</type>
            <size>17065</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MDk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTk5MzgzMDYyYmQ0MGZl
ZTIwODE0NDBhYjQ5OTYzNDgxNmEwN2ZiMi4uZTY1YzYwNTNiNWRlM2M0ZWM2MmUwMDk0M2U2ZTgw
N2QwMjQ3YzgzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTExLTE5ICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IHN0
dWIgb3V0IElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6Y3JlYXRlVHJhbnNhY3Rpb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjczMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0dWIgb3V0IGFu
ZCBzdXBwb3J0IHBhc3NpbmcgYW4gaW50NjRfdC1iYXNlZCB0cmFuc2FjdGlvbiBpZAorICAgICAg
ICBzbyB0aGUgZnJvbnRlbmQgY2FuIHJlZmVyIHRvIHRyYW5zYWN0aW9ucyBieSBpZCByYXRoZXIg
dGhhbgorICAgICAgICBhIHByb3h5IG9iamVjdCBvciBhIGRpcmVjdCBwb2ludGVyIHJlZmVyZW5j
ZS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHRoaXMgaXMganVzdCBwYXJ0IG9mIGEgcmVmYWN0
b3IuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHA6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6
OnRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6
OmNyZWF0ZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZUJhY2tlbmRJbXBsLmg6CisgICAgICAgIChJREJEYXRhYmFzZUJhY2tlbmRJbXBsKToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaDoK
KyAgICAgICAgKElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZSk6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbDo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbCk6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5o
OgorICAgICAgICAoSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbCk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjppZCk6CisKIDIwMTItMTEtMTggIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTWFrZSBuYW1lZEl0ZW0gcmV0dXJu
IGEgbm9kZSBsaXN0IG9ubHkgaW4gSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24gYW5kIEhUTUxP
cHRpb25zQ29sbGVjdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBlNDIyN2I1YTVj
Mzk4Y2I0MTQyZTk1MTE4YjhiYzY1ZWZkYzUyMjVkLi5iZjcwMzI2YmQwZDc1YjZiYjU1NmE4MWU3
ZDM2Y2M0MzU4YTViNTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3
IEBACisyMDEyLTExLTE5ICBBbGVjIEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBJbmRleGVkREI6IHN0dWIgb3V0IElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6
Y3JlYXRlVHJhbnNhY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwMjczMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBuZXcgY3JlYXRlVHJhbnNhY3Rpb24oKSBtZXRob2Qg
aW4gYm90aCBzaWRlcworICAgICAgICBvZiB0aGUgV2ViS2l0IEFQSS4KKworICAgICAgICAqIHB1
YmxpYy9XZWJJREJEYXRhYmFzZS5oOgorICAgICAgICAoV2ViSURCRGF0YWJhc2UpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZTo6Y3JlYXRlVHJhbnNhY3Rpb24pOgorICAgICAgICAq
IHNyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQpOgorICAg
ICAgICAoV2ViS2l0OjpJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6Y3JlYXRlVHJhbnNhY3Rpb24p
OgorICAgICAgICAqIHNyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5oOgorICAgICAgICAoSURC
RGF0YWJhc2VCYWNrZW5kUHJveHkpOgorICAgICAgICAqIHNyYy9XZWJJREJEYXRhYmFzZUltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZUltcGw6OmNyZWF0ZVRyYW5zYWN0
aW9uKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL1dlYklEQkRhdGFiYXNlSW1w
bC5oOgorICAgICAgICAoV2ViSURCRGF0YWJhc2VJbXBsKToKKwogMjAxMi0xMS0xOCAgS2VudGFy
byBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjEzNTA0Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkRhdGFiYXNlLmNwcAppbmRleCBlNWVhNDFlMGE2MzAzNzBmMGQ4NmMzZTVmZDQxZTcyNmM3
MmY2OGIxLi43ZjFjOTU1NTFlNjBjZmYyMmZmNDQ2OWE0N2I1ZmE2YTFlMjQxZWFmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCkBAIC0z
Niw3ICszNiw2IEBACiAjaW5jbHVkZSAiSURCRGF0YWJhc2VFcnJvci5oIgogI2luY2x1ZGUgIklE
QkRhdGFiYXNlRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiSURCRXZlbnREaXNwYXRjaGVyLmgiCi0j
aW5jbHVkZSAiSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJJREJJbmRl
eC5oIgogI2luY2x1ZGUgIklEQktleVBhdGguaCIKICNpbmNsdWRlICJJREJPYmplY3RTdG9yZS5o
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2VCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJE
YXRhYmFzZUJhY2tlbmRJbXBsLmNwcAppbmRleCBlOGUxNDNmNDc4ODRlMDA3YTFhMGVlZTQ0NWE4
ZTc5MzcxYmQ4NDNjLi4zZjBlMWVkMjVmODdlNzk1ZWI4N2YwZTcyMDc2MDc3ZWVlZWRiZDIyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJh
Y2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJE
YXRhYmFzZUJhY2tlbmRJbXBsLmNwcApAQCAtNDIzLDkgKzQyMywxNSBAQCB2b2lkIElEQkRhdGFi
YXNlQmFja2VuZEltcGw6OnByb2Nlc3NQZW5kaW5nQ2FsbHMoKQogICAgIEFTU0VSVChtX3BlbmRp
bmdPcGVuQ2FsbHMuaXNFbXB0eSgpKTsKIH0KIAorLy8gRklYTUU6IFJlbW92ZSB0aGlzIGFzIHBh
cnQgb2YgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjczMy4KIFBh
c3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBJREJEYXRhYmFzZUJhY2tl
bmRJbXBsOjp0cmFuc2FjdGlvbihjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9iamVjdFN0b3JlSWRz
LCB1bnNpZ25lZCBzaG9ydCBtb2RlKQogewotICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbXBsPiB0cmFuc2FjdGlvbiA9IElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw6OmNyZWF0ZShv
YmplY3RTdG9yZUlkcywgbW9kZSwgdGhpcyk7CisgICAgcmV0dXJuIGNyZWF0ZVRyYW5zYWN0aW9u
KDAsIG9iamVjdFN0b3JlSWRzLCBtb2RlKTsKK30KKworUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2U+IElEQkRhdGFiYXNlQmFja2VuZEltcGw6OmNyZWF0ZVRyYW5zYWN0
aW9uKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RT
dG9yZUlkcywgdW5zaWduZWQgc2hvcnQgbW9kZSkKK3sKKyAgICBSZWZQdHI8SURCVHJhbnNhY3Rp
b25CYWNrZW5kSW1wbD4gdHJhbnNhY3Rpb24gPSBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjpj
cmVhdGUodHJhbnNhY3Rpb25JZCwgb2JqZWN0U3RvcmVJZHMsIG1vZGUsIHRoaXMpOwogICAgIG1f
dHJhbnNhY3Rpb25zLmFkZCh0cmFuc2FjdGlvbi5nZXQoKSk7CiAgICAgcmV0dXJuIHRyYW5zYWN0
aW9uLnJlbGVhc2UoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaAppbmRleCBmMGY0OTM4ZDE3YmVhZDhj
ZDFkNDI1NGEwNzk4YjZkNmRlMzZiMTRmLi5hZGI0OWY4YTQ1ZDljNGZkODk0OTJkMzRlZmE1ZDJl
ZTAwMjlhYjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUJhY2tlbmRJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oCkBAIC02NCw3ICs2NCw5IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlPiBj
cmVhdGVPYmplY3RTdG9yZShpbnQ2NF90IGlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IElE
QktleVBhdGgmLCBib29sIGF1dG9JbmNyZW1lbnQsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVy
ZmFjZSosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlT2JqZWN0U3Rv
cmUoaW50NjRfdCwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9uQ29k
ZSYpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWZXJzaW9uKGNvbnN0IFN0cmluZyYgdmVyc2lvbiwg
UGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tz
PiwgRXhjZXB0aW9uQ29kZSYpOworICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBhcyBwYXJ0IG9m
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDI3MzMuCiAgICAgdmly
dHVhbCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gdHJhbnNhY3Rp
b24oY29uc3QgVmVjdG9yPGludDY0X3Q+JiwgdW5zaWduZWQgc2hvcnQpOworICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZVRyYW5zYWN0
aW9uKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RT
dG9yZUlkcywgdW5zaWduZWQgc2hvcnQgbW9kZSk7CiAgICAgdmlydHVhbCB2b2lkIGNsb3NlKFBh
c3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+KTsKIAogICAgIFBhc3NSZWZQdHI8SURCT2Jq
ZWN0U3RvcmVCYWNrZW5kSW1wbD4gb2JqZWN0U3RvcmUoaW50NjRfdCBpZCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbnRl
cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFj
a2VuZEludGVyZmFjZS5oCmluZGV4IDlhYWI1NjQ0YmE0ODYzYzA3YTY3ZTQxZDkwN2Y0MWQxZDE4
ZTQ4MzUuLmViMzU4MmI2ZWY0MDcyNTNhOWQ3M2I3OGYyOTIyYTA1ZTFkN2I5NDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZElu
dGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlQmFja2VuZEludGVyZmFjZS5oCkBAIC01Niw3ICs1Niw5IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVPYmpl
Y3RTdG9yZShpbnQ2NF90LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IElEQktleVBhdGgmLCBi
b29sIGF1dG9JbmNyZW1lbnQsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2Vw
dGlvbkNvZGUmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGludDY0
X3QsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIHNldFZlcnNpb24oY29uc3QgU3RyaW5nJiB2ZXJzaW9uLCBQYXNz
UmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+LCBF
eGNlcHRpb25Db2RlJikgPSAwOworICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBhcyBwYXJ0IG9m
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDI3MzMuCiAgICAgdmly
dHVhbCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gdHJhbnNhY3Rp
b24oY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgdW5zaWduZWQgc2hvcnQg
bW9kZSkgPSAwOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bnRlcmZhY2U+IGNyZWF0ZVRyYW5zYWN0aW9uKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgY29uc3Qg
VmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgdW5zaWduZWQgc2hvcnQgbW9kZSkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZShQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tz
PikgPSAwOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmNwcAppbmRleCBkMTI4MWE3YjU0
ODRjYTU3OTVmZDFjNjMzMmQ2MDQ0NWYzYTFlNjU1Li40MjAxN2NhY2EyYTE1YTYyYTg4N2YzZGU4
MThiZmE0ZWVlMjM1NjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmNwcApAQCAtMzksMTMg
KzM5LDE0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxJREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbXBsPiBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjpjcmVhdGUoY29uc3Qg
VmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgdW5zaWduZWQgc2hvcnQgbW9kZSwgSURC
RGF0YWJhc2VCYWNrZW5kSW1wbCogZGF0YWJhc2UpCitQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9u
QmFja2VuZEltcGw+IElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw6OmNyZWF0ZShpbnQ2NF90IGlk
LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9iamVjdFN0b3JlSWRzLCB1bnNpZ25lZCBzaG9ydCBt
b2RlLCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsKiBkYXRhYmFzZSkKIHsKLSAgICByZXR1cm4gYWRv
cHRSZWYobmV3IElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwob2JqZWN0U3RvcmVJZHMsIG1vZGUs
IGRhdGFiYXNlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbXBsKGlkLCBvYmplY3RTdG9yZUlkcywgbW9kZSwgZGF0YWJhc2UpKTsKIH0KIAotSURCVHJh
bnNhY3Rpb25CYWNrZW5kSW1wbDo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbChjb25zdCBWZWN0
b3I8aW50NjRfdD4mIG9iamVjdFN0b3JlSWRzLCB1bnNpZ25lZCBzaG9ydCBtb2RlLCBJREJEYXRh
YmFzZUJhY2tlbmRJbXBsKiBkYXRhYmFzZSkKLSAgICA6IG1fb2JqZWN0U3RvcmVJZHMob2JqZWN0
U3RvcmVJZHMpCitJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjpJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbXBsKGludDY0X3QgaWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJZHMs
IHVuc2lnbmVkIHNob3J0IG1vZGUsIElEQkRhdGFiYXNlQmFja2VuZEltcGwqIGRhdGFiYXNlKQor
ICAgIDogbV9pZChpZCkKKyAgICAsIG1fb2JqZWN0U3RvcmVJZHMob2JqZWN0U3RvcmVJZHMpCiAg
ICAgLCBtX21vZGUobW9kZSkKICAgICAsIG1fc3RhdGUoVW51c2VkKQogICAgICwgbV9kYXRhYmFz
ZShkYXRhYmFzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuaAppbmRleCAyNzdmMjUzZGUxNDg2M2My
MjU2MGRmYjgyZjU4OTZhNGYyMWRjNmY1Li5mNDQ1OWJjMzI4ZDZjOTY3ZTFjMjM2OTJkYTFlZTU4
ZGY4ZDJkMDRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5oCkBAIC00NCw3ICs0NCw3IEBAIGNs
YXNzIElEQkRhdGFiYXNlQmFja2VuZEltcGw7CiAKIGNsYXNzIElEQlRyYW5zYWN0aW9uQmFja2Vu
ZEltcGwgOiBwdWJsaWMgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlIHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsPiBjcmVhdGUo
Y29uc3QgVmVjdG9yPGludDY0X3Q+JiwgdW5zaWduZWQgc2hvcnQgbW9kZSwgSURCRGF0YWJhc2VC
YWNrZW5kSW1wbCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2Vu
ZEltcGw+IGNyZWF0ZShpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90
PiYsIHVuc2lnbmVkIHNob3J0IG1vZGUsIElEQkRhdGFiYXNlQmFja2VuZEltcGwqKTsKICAgICBz
dGF0aWMgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbCogZnJvbShJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2UqIGludGVyZmFjZSkKICAgICB7CiAgICAgICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsKj4oaW50ZXJmYWNlKTsKQEAgLTY4LDkgKzY4LDEw
IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFByZWVtcHRpdmVFdmVudCgpIHsgbV9wZW5kaW5nUHJl
ZW1wdGl2ZUV2ZW50cysrOyB9CiAgICAgdm9pZCBkaWRDb21wbGV0ZVByZWVtcHRpdmVFdmVudCgp
IHsgbV9wZW5kaW5nUHJlZW1wdGl2ZUV2ZW50cy0tOyBBU1NFUlQobV9wZW5kaW5nUHJlZW1wdGl2
ZUV2ZW50cyA+PSAwKTsgfQogICAgIElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qIGJhY2tp
bmdTdG9yZVRyYW5zYWN0aW9uKCkgeyByZXR1cm4gJm1fdHJhbnNhY3Rpb247IH0KKyAgICBpbnQ2
NF90IGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQogCiBwcml2YXRlOgotICAgIElEQlRyYW5z
YWN0aW9uQmFja2VuZEltcGwoY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywg
dW5zaWduZWQgc2hvcnQgbW9kZSwgSURCRGF0YWJhc2VCYWNrZW5kSW1wbCopOworICAgIElEQlRy
YW5zYWN0aW9uQmFja2VuZEltcGwoaW50NjRfdCBpZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBv
YmplY3RTdG9yZUlkcywgdW5zaWduZWQgc2hvcnQgbW9kZSwgSURCRGF0YWJhc2VCYWNrZW5kSW1w
bCopOwogCiAgICAgZW51bSBTdGF0ZSB7CiAgICAgICAgIFVudXNlZCwgLy8gQ3JlYXRlZCwgYnV0
IG5vIHRhc2tzIHlldC4KQEAgLTg4LDYgKzg5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHRhc2tF
dmVudFRpbWVyRmlyZWQoVGltZXI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4qKTsKICAgICB2
b2lkIGNsb3NlT3BlbkN1cnNvcnMoKTsKIAorICAgIGNvbnN0IGludDY0X3QgbV9pZDsKICAgICBj
b25zdCBWZWN0b3I8aW50NjRfdD4gbV9vYmplY3RTdG9yZUlkczsKICAgICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBtX21vZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYklEQkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJ
REJEYXRhYmFzZS5oCmluZGV4IGI5Mjc5OTAzOTBmNzllYmI3OGU5Y2M5MTg3NGIzNmI2NThiMDBh
MDUuLmJiZjVhZjRjMzYxNTcyZDEzNTdhYmYzMDg2YThiMjZjNzRjZTIzYjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlLmgKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2UuaApAQCAtNTcsMTIgKzU3
LDE1IEBAIHB1YmxpYzoKICAgICB9CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3Jl
KGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYgdHJhbnNh
Y3Rpb24sIFdlYkV4Y2VwdGlvbkNvZGUmIGVjKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRWZXJzaW9uKGNvbnN0IFdlYlN0cmluZyYgdmVyc2lv
biwgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIFdlYkV4Y2VwdGlvbkNvZGUmKSB7IFdFQktJ
VF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBhcyBw
YXJ0IG9mIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDI3MzMuCiAg
ICAgLy8gVHJhbnNmZXJzIG93bmVyc2hpcCBvZiB0aGUgV2ViSURCVHJhbnNhY3Rpb24gdG8gdGhl
IGNhbGxlci4KICAgICB2aXJ0dWFsIFdlYklEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbihjb25z
dCBXZWJWZWN0b3I8bG9uZyBsb25nPiYsIHVuc2lnbmVkIHNob3J0IG1vZGUpCiAgICAgewogICAg
ICAgICBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiAwOwogICAg
IH0KKyAgICAvLyBUcmFuc2ZlcnMgb3duZXJzaGlwIG9mIHRoZSBXZWJJREJUcmFuc2FjdGlvbiB0
byB0aGUgY2FsbGVyLgorICAgIHZpcnR1YWwgV2ViSURCVHJhbnNhY3Rpb24qIGNyZWF0ZVRyYW5z
YWN0aW9uKGxvbmcgbG9uZyBpZCwgY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mLCB1bnNpZ25l
ZCBzaG9ydCBtb2RlKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIDA7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsg
fQogICAgIHZpcnR1YWwgdm9pZCBmb3JjZUNsb3NlKCkgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFD
SEVEKCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0
YWJhc2VCYWNrZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0
YWJhc2VCYWNrZW5kUHJveHkuY3BwCmluZGV4IDBiYzk1NDY2ZDhiMzA1ZGE5YWY0NzUzMjA1ZTFj
MjRmZjZmZGE5MTEuLmEwMzU1MTA0YWYwNWZjMTgwNjBiMDNhNzIxOTc3NGY5OTcyMDQ2ZWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQmFja2VuZFBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJhY2tl
bmRQcm94eS5jcHAKQEAgLTkxLDYgKzkxLDcgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRQcm94
eTo6c2V0VmVyc2lvbihjb25zdCBTdHJpbmcmIHZlcnNpb24sIFBhc3NSZWZQdHI8SURCQ2EKICAg
ICBtX3dlYklEQkRhdGFiYXNlLT5zZXRWZXJzaW9uKHZlcnNpb24sIG5ldyBXZWJJREJDYWxsYmFj
a3NJbXBsKGNhbGxiYWNrcyksIGVjKTsKIH0KIAorLy8gRklYTUU6IFJlbW92ZSB0aGlzIGFzIHBh
cnQgb2YgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjczMy4KIFBh
c3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBJREJEYXRhYmFzZUJhY2tl
bmRQcm94eTo6dHJhbnNhY3Rpb24oY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlk
cywgdW5zaWduZWQgc2hvcnQgbW9kZSkKIHsKICAgICBPd25QdHI8V2ViSURCVHJhbnNhY3Rpb24+
IHRyYW5zYWN0aW9uID0gYWRvcHRQdHIobV93ZWJJREJEYXRhYmFzZS0+dHJhbnNhY3Rpb24ob2Jq
ZWN0U3RvcmVJZHMsIG1vZGUpKTsKQEAgLTEwMCw2ICsxMDEsMTUgQEAgUGFzc1JlZlB0cjxJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IElEQkRhdGFiYXNlQmFja2VuZFByb3h5Ojp0cmFu
c2FjdGlvbigKICAgICByZXR1cm4gSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHk6OmNyZWF0ZSh0
cmFuc2FjdGlvbi5yZWxlYXNlKCkpOwogfQogCitQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFj
a2VuZEludGVyZmFjZT4gSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OmNyZWF0ZVRyYW5zYWN0aW9u
KGludDY0X3QgaWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJZHMsIHVuc2ln
bmVkIHNob3J0IG1vZGUpCit7CisgICAgT3duUHRyPFdlYklEQlRyYW5zYWN0aW9uPiB0cmFuc2Fj
dGlvbiA9IGFkb3B0UHRyKG1fd2ViSURCRGF0YWJhc2UtPmNyZWF0ZVRyYW5zYWN0aW9uKGlkLCBv
YmplY3RTdG9yZUlkcywgbW9kZSkpOworICAgIGlmICghdHJhbnNhY3Rpb24pCisgICAgICAgIHJl
dHVybiAwOworCisgICAgcmV0dXJuIElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5OjpjcmVhdGUo
dHJhbnNhY3Rpb24ucmVsZWFzZSgpKTsKK30KKwogdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRQcm94
eTo6Y2xvc2UoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4pCiB7CiAgICAgbV93ZWJJ
REJEYXRhYmFzZS0+Y2xvc2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5oCmluZGV4IGFhOGZkZjBjOWVmNzFhODg3OTY5Y2Mz
YmRhMmY1ZTk5MDhmMjIzYTMuLmYxNDk4MGJkNThkYzE0NTI5NzFjNmMyMDRmM2M1ZDE2ODI5ZjU2
MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQmFj
a2VuZFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VC
YWNrZW5kUHJveHkuaApAQCAtNDcsNyArNDcsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQYXNz
UmVmUHRyPFdlYkNvcmU6OklEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZT4gY3JlYXRlT2Jq
ZWN0U3RvcmUoaW50NjRfdCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJDb3JlOjpJREJL
ZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50LCBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2UqLCBXZWJDb3JlOjpFeGNlcHRpb25Db2RlJik7CiAgICAgdmlydHVhbCB2b2lk
IGRlbGV0ZU9iamVjdFN0b3JlKGludDY0X3QsIFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2Vu
ZEludGVyZmFjZSosIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0VmVyc2lvbihjb25zdCBTdHJpbmcmIHZlcnNpb24sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURC
Q2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUNhbGxiYWNrcz4sIFdl
YkNvcmU6OkV4Y2VwdGlvbkNvZGUmKTsKKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgYXMgcGFy
dCBvZiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyNzMzLgogICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2U+IHRyYW5zYWN0aW9uKGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYsIHVuc2lnbmVkIHNob3J0IG1v
ZGUpOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2U+IGNyZWF0ZVRyYW5zYWN0aW9uKGludDY0X3QsIGNvbnN0IFZlY3RvcjxpbnQ2
NF90PiYsIHVuc2lnbmVkIHNob3J0IG1vZGUpOwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZShQYXNz
UmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlQ2FsbGJhY2tzPik7CiAKIHByaXZhdGU6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcAppbmRl
eCA1OWFiZDUzMjkyODAxZjMwNDkzZGJkMGM0N2Y2ZTAwZDM2MGJkZDQxLi41MzlhNDg4YzkzM2Ux
Y2E2M2NlMDcwNzM3OTIyN2ViMGFiZDYyMjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAKQEAgLTgwLDYgKzgwLDE4IEBAIHZvaWQg
V2ViSURCRGF0YWJhc2VJbXBsOjpzZXRWZXJzaW9uKGNvbnN0IFdlYlN0cmluZyYgdmVyc2lvbiwg
V2ViSURCQ2FsbGJhY2tzKiBjCiAgICAgbV9kYXRhYmFzZUJhY2tlbmQtPnNldFZlcnNpb24odmVy
c2lvbiwgSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0cihjYWxsYmFja3MpKSwgbV9k
YXRhYmFzZUNhbGxiYWNrcywgZWMpOwogfQogCitXZWJJREJUcmFuc2FjdGlvbiogV2ViSURCRGF0
YWJhc2VJbXBsOjpjcmVhdGVUcmFuc2FjdGlvbihsb25nIGxvbmcgaWQsIGNvbnN0IFdlYlZlY3Rv
cjxsb25nIGxvbmc+JiBvYmplY3RTdG9yZUlkcywgdW5zaWduZWQgc2hvcnQgbW9kZSkKK3sKKyAg
ICBWZWN0b3I8aW50NjRfdD4gb2JqZWN0U3RvcmVJZExpc3Qob2JqZWN0U3RvcmVJZHMuc2l6ZSgp
KTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9iamVjdFN0b3JlSWRzLnNpemUoKTsgKytp
KQorICAgICAgICBvYmplY3RTdG9yZUlkTGlzdFtpXSA9IG9iamVjdFN0b3JlSWRzW2ldOworICAg
IFJlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IHRyYW5zYWN0aW9uID0gbV9k
YXRhYmFzZUJhY2tlbmQtPmNyZWF0ZVRyYW5zYWN0aW9uKGlkLCBvYmplY3RTdG9yZUlkTGlzdCwg
bW9kZSk7CisgICAgaWYgKCF0cmFuc2FjdGlvbikKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0
dXJuIG5ldyBXZWJJREJUcmFuc2FjdGlvbkltcGwodHJhbnNhY3Rpb24pOworfQorCisvLyBGSVhN
RTogUmVtb3ZlIHRoaXMgYXMgcGFydCBvZiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTAyNzMzLgogV2ViSURCVHJhbnNhY3Rpb24qIFdlYklEQkRhdGFiYXNlSW1wbDo6
dHJhbnNhY3Rpb24oY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mIG9iamVjdFN0b3JlSWRzLCB1
bnNpZ25lZCBzaG9ydCBtb2RlKQogewogICAgIFZlY3RvcjxpbnQ2NF90PiBvYmplY3RTdG9yZUlk
TGlzdChvYmplY3RTdG9yZUlkcy5zaXplKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaAppbmRleCBlNzI4NzQyYzY0NzQ4NDEyNmNmM2VhN2Rk
OTU2ZWRmZjMyYzcyODBmLi5lZWY2NDkzZmRjMjgzNjNhNDMwZTgyZDIyZDU5NDk3ZmEwOWExYzNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUlt
cGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwu
aApAQCAtNTUsNyArNTUsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBXZWJJREJPYmplY3RTdG9y
ZSogY3JlYXRlT2JqZWN0U3RvcmUobG9uZyBsb25nLCBjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGNv
bnN0IFdlYklEQktleVBhdGgmLCBib29sIGF1dG9JbmNyZW1lbnQsIGNvbnN0IFdlYklEQlRyYW5z
YWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpOwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVPYmpl
Y3RTdG9yZShsb25nIGxvbmcgb2JqZWN0U3RvcmVJZCwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24m
LCBXZWJFeGNlcHRpb25Db2RlJik7CiAgICAgdmlydHVhbCB2b2lkIHNldFZlcnNpb24oY29uc3Qg
V2ViU3RyaW5nJiB2ZXJzaW9uLCBXZWJJREJDYWxsYmFja3MqLCBXZWJFeGNlcHRpb25Db2RlJik7
CisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIGFzIHBhcnQgb2YgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjczMy4KICAgICB2aXJ0dWFsIFdlYklEQlRyYW5zYWN0
aW9uKiB0cmFuc2FjdGlvbihjb25zdCBXZWJWZWN0b3I8bG9uZyBsb25nPiYgbmFtZXMsIHVuc2ln
bmVkIHNob3J0IG1vZGUpOworICAgIHZpcnR1YWwgV2ViSURCVHJhbnNhY3Rpb24qIGNyZWF0ZVRy
YW5zYWN0aW9uKGxvbmcgbG9uZyBpZCwgY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mLCB1bnNp
Z25lZCBzaG9ydCBtb2RlKTsKICAgICB2aXJ0dWFsIHZvaWQgZm9yY2VDbG9zZSgpOwogICAgIHZp
cnR1YWwgdm9pZCBjbG9zZSgpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175133</attachid>
            <date>2012-11-19 21:23:54 -0800</date>
            <delta_ts>2012-11-21 09:11:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102730-20121119212144.patch</filename>
            <type>text/plain</type>
            <size>18347</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MDk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTk5MzgzMDYyYmQ0MGZl
ZTIwODE0NDBhYjQ5OTYzNDgxNmEwN2ZiMi4uZTY1YzYwNTNiNWRlM2M0ZWM2MmUwMDk0M2U2ZTgw
N2QwMjQ3YzgzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTExLTE5ICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IHN0
dWIgb3V0IElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6Y3JlYXRlVHJhbnNhY3Rpb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjczMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0dWIgb3V0IGFu
ZCBzdXBwb3J0IHBhc3NpbmcgYW4gaW50NjRfdC1iYXNlZCB0cmFuc2FjdGlvbiBpZAorICAgICAg
ICBzbyB0aGUgZnJvbnRlbmQgY2FuIHJlZmVyIHRvIHRyYW5zYWN0aW9ucyBieSBpZCByYXRoZXIg
dGhhbgorICAgICAgICBhIHByb3h5IG9iamVjdCBvciBhIGRpcmVjdCBwb2ludGVyIHJlZmVyZW5j
ZS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHRoaXMgaXMganVzdCBwYXJ0IG9mIGEgcmVmYWN0
b3IuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHA6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6
OnRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6
OmNyZWF0ZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZUJhY2tlbmRJbXBsLmg6CisgICAgICAgIChJREJEYXRhYmFzZUJhY2tlbmRJbXBsKToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaDoK
KyAgICAgICAgKElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZSk6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbDo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbCk6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5o
OgorICAgICAgICAoSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbCk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjppZCk6CisKIDIwMTItMTEtMTggIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTWFrZSBuYW1lZEl0ZW0gcmV0dXJu
IGEgbm9kZSBsaXN0IG9ubHkgaW4gSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24gYW5kIEhUTUxP
cHRpb25zQ29sbGVjdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBlNDIyN2I1YTVj
Mzk4Y2I0MTQyZTk1MTE4YjhiYzY1ZWZkYzUyMjVkLi5iZjcwMzI2YmQwZDc1YjZiYjU1NmE4MWU3
ZDM2Y2M0MzU4YTViNTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3
IEBACisyMDEyLTExLTE5ICBBbGVjIEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBJbmRleGVkREI6IHN0dWIgb3V0IElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6
Y3JlYXRlVHJhbnNhY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwMjczMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBuZXcgY3JlYXRlVHJhbnNhY3Rpb24oKSBtZXRob2Qg
aW4gYm90aCBzaWRlcworICAgICAgICBvZiB0aGUgV2ViS2l0IEFQSS4KKworICAgICAgICAqIHB1
YmxpYy9XZWJJREJEYXRhYmFzZS5oOgorICAgICAgICAoV2ViSURCRGF0YWJhc2UpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZTo6Y3JlYXRlVHJhbnNhY3Rpb24pOgorICAgICAgICAq
IHNyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQpOgorICAg
ICAgICAoV2ViS2l0OjpJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6Y3JlYXRlVHJhbnNhY3Rpb24p
OgorICAgICAgICAqIHNyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5oOgorICAgICAgICAoSURC
RGF0YWJhc2VCYWNrZW5kUHJveHkpOgorICAgICAgICAqIHNyYy9XZWJJREJEYXRhYmFzZUltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZUltcGw6OmNyZWF0ZVRyYW5zYWN0
aW9uKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL1dlYklEQkRhdGFiYXNlSW1w
bC5oOgorICAgICAgICAoV2ViSURCRGF0YWJhc2VJbXBsKToKKwogMjAxMi0xMS0xOCAgS2VudGFy
byBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjEzNTA0Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkRhdGFiYXNlLmNwcAppbmRleCBlNWVhNDFlMGE2MzAzNzBmMGQ4NmMzZTVmZDQxZTcyNmM3
MmY2OGIxLi43ZjFjOTU1NTFlNjBjZmYyMmZmNDQ2OWE0N2I1ZmE2YTFlMjQxZWFmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCkBAIC0z
Niw3ICszNiw2IEBACiAjaW5jbHVkZSAiSURCRGF0YWJhc2VFcnJvci5oIgogI2luY2x1ZGUgIklE
QkRhdGFiYXNlRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiSURCRXZlbnREaXNwYXRjaGVyLmgiCi0j
aW5jbHVkZSAiSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJJREJJbmRl
eC5oIgogI2luY2x1ZGUgIklEQktleVBhdGguaCIKICNpbmNsdWRlICJJREJPYmplY3RTdG9yZS5o
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2VCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJE
YXRhYmFzZUJhY2tlbmRJbXBsLmNwcAppbmRleCBlOGUxNDNmNDc4ODRlMDA3YTFhMGVlZTQ0NWE4
ZTc5MzcxYmQ4NDNjLi4zZjBlMWVkMjVmODdlNzk1ZWI4N2YwZTcyMDc2MDc3ZWVlZWRiZDIyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJh
Y2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJE
YXRhYmFzZUJhY2tlbmRJbXBsLmNwcApAQCAtNDIzLDkgKzQyMywxNSBAQCB2b2lkIElEQkRhdGFi
YXNlQmFja2VuZEltcGw6OnByb2Nlc3NQZW5kaW5nQ2FsbHMoKQogICAgIEFTU0VSVChtX3BlbmRp
bmdPcGVuQ2FsbHMuaXNFbXB0eSgpKTsKIH0KIAorLy8gRklYTUU6IFJlbW92ZSB0aGlzIGFzIHBh
cnQgb2YgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjczMy4KIFBh
c3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBJREJEYXRhYmFzZUJhY2tl
bmRJbXBsOjp0cmFuc2FjdGlvbihjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9iamVjdFN0b3JlSWRz
LCB1bnNpZ25lZCBzaG9ydCBtb2RlKQogewotICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbXBsPiB0cmFuc2FjdGlvbiA9IElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw6OmNyZWF0ZShv
YmplY3RTdG9yZUlkcywgbW9kZSwgdGhpcyk7CisgICAgcmV0dXJuIGNyZWF0ZVRyYW5zYWN0aW9u
KDAsIG9iamVjdFN0b3JlSWRzLCBtb2RlKTsKK30KKworUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2U+IElEQkRhdGFiYXNlQmFja2VuZEltcGw6OmNyZWF0ZVRyYW5zYWN0
aW9uKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RT
dG9yZUlkcywgdW5zaWduZWQgc2hvcnQgbW9kZSkKK3sKKyAgICBSZWZQdHI8SURCVHJhbnNhY3Rp
b25CYWNrZW5kSW1wbD4gdHJhbnNhY3Rpb24gPSBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjpj
cmVhdGUodHJhbnNhY3Rpb25JZCwgb2JqZWN0U3RvcmVJZHMsIG1vZGUsIHRoaXMpOwogICAgIG1f
dHJhbnNhY3Rpb25zLmFkZCh0cmFuc2FjdGlvbi5nZXQoKSk7CiAgICAgcmV0dXJuIHRyYW5zYWN0
aW9uLnJlbGVhc2UoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaAppbmRleCBmMGY0OTM4ZDE3YmVhZDhj
ZDFkNDI1NGEwNzk4YjZkNmRlMzZiMTRmLi5hZGI0OWY4YTQ1ZDljNGZkODk0OTJkMzRlZmE1ZDJl
ZTAwMjlhYjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUJhY2tlbmRJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oCkBAIC02NCw3ICs2NCw5IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlPiBj
cmVhdGVPYmplY3RTdG9yZShpbnQ2NF90IGlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IElE
QktleVBhdGgmLCBib29sIGF1dG9JbmNyZW1lbnQsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVy
ZmFjZSosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlT2JqZWN0U3Rv
cmUoaW50NjRfdCwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9uQ29k
ZSYpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWZXJzaW9uKGNvbnN0IFN0cmluZyYgdmVyc2lvbiwg
UGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tz
PiwgRXhjZXB0aW9uQ29kZSYpOworICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBhcyBwYXJ0IG9m
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDI3MzMuCiAgICAgdmly
dHVhbCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gdHJhbnNhY3Rp
b24oY29uc3QgVmVjdG9yPGludDY0X3Q+JiwgdW5zaWduZWQgc2hvcnQpOworICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZVRyYW5zYWN0
aW9uKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RT
dG9yZUlkcywgdW5zaWduZWQgc2hvcnQgbW9kZSk7CiAgICAgdmlydHVhbCB2b2lkIGNsb3NlKFBh
c3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+KTsKIAogICAgIFBhc3NSZWZQdHI8SURCT2Jq
ZWN0U3RvcmVCYWNrZW5kSW1wbD4gb2JqZWN0U3RvcmUoaW50NjRfdCBpZCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbnRl
cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFj
a2VuZEludGVyZmFjZS5oCmluZGV4IDlhYWI1NjQ0YmE0ODYzYzA3YTY3ZTQxZDkwN2Y0MWQxZDE4
ZTQ4MzUuLmViMzU4MmI2ZWY0MDcyNTNhOWQ3M2I3OGYyOTIyYTA1ZTFkN2I5NDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZElu
dGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlQmFja2VuZEludGVyZmFjZS5oCkBAIC01Niw3ICs1Niw5IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVPYmpl
Y3RTdG9yZShpbnQ2NF90LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IElEQktleVBhdGgmLCBi
b29sIGF1dG9JbmNyZW1lbnQsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2Vw
dGlvbkNvZGUmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGludDY0
X3QsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIHNldFZlcnNpb24oY29uc3QgU3RyaW5nJiB2ZXJzaW9uLCBQYXNz
UmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+LCBF
eGNlcHRpb25Db2RlJikgPSAwOworICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBhcyBwYXJ0IG9m
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDI3MzMuCiAgICAgdmly
dHVhbCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gdHJhbnNhY3Rp
b24oY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgdW5zaWduZWQgc2hvcnQg
bW9kZSkgPSAwOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bnRlcmZhY2U+IGNyZWF0ZVRyYW5zYWN0aW9uKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgY29uc3Qg
VmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgdW5zaWduZWQgc2hvcnQgbW9kZSkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZShQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tz
PikgPSAwOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmNwcAppbmRleCBkMTI4MWE3YjU0
ODRjYTU3OTVmZDFjNjMzMmQ2MDQ0NWYzYTFlNjU1Li40MjAxN2NhY2EyYTE1YTYyYTg4N2YzZGU4
MThiZmE0ZWVlMjM1NjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmNwcApAQCAtMzksMTMg
KzM5LDE0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxJREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbXBsPiBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjpjcmVhdGUoY29uc3Qg
VmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgdW5zaWduZWQgc2hvcnQgbW9kZSwgSURC
RGF0YWJhc2VCYWNrZW5kSW1wbCogZGF0YWJhc2UpCitQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9u
QmFja2VuZEltcGw+IElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw6OmNyZWF0ZShpbnQ2NF90IGlk
LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9iamVjdFN0b3JlSWRzLCB1bnNpZ25lZCBzaG9ydCBt
b2RlLCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsKiBkYXRhYmFzZSkKIHsKLSAgICByZXR1cm4gYWRv
cHRSZWYobmV3IElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwob2JqZWN0U3RvcmVJZHMsIG1vZGUs
IGRhdGFiYXNlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbXBsKGlkLCBvYmplY3RTdG9yZUlkcywgbW9kZSwgZGF0YWJhc2UpKTsKIH0KIAotSURCVHJh
bnNhY3Rpb25CYWNrZW5kSW1wbDo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbChjb25zdCBWZWN0
b3I8aW50NjRfdD4mIG9iamVjdFN0b3JlSWRzLCB1bnNpZ25lZCBzaG9ydCBtb2RlLCBJREJEYXRh
YmFzZUJhY2tlbmRJbXBsKiBkYXRhYmFzZSkKLSAgICA6IG1fb2JqZWN0U3RvcmVJZHMob2JqZWN0
U3RvcmVJZHMpCitJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjpJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbXBsKGludDY0X3QgaWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJZHMs
IHVuc2lnbmVkIHNob3J0IG1vZGUsIElEQkRhdGFiYXNlQmFja2VuZEltcGwqIGRhdGFiYXNlKQor
ICAgIDogbV9pZChpZCkKKyAgICAsIG1fb2JqZWN0U3RvcmVJZHMob2JqZWN0U3RvcmVJZHMpCiAg
ICAgLCBtX21vZGUobW9kZSkKICAgICAsIG1fc3RhdGUoVW51c2VkKQogICAgICwgbV9kYXRhYmFz
ZShkYXRhYmFzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuaAppbmRleCAyNzdmMjUzZGUxNDg2M2My
MjU2MGRmYjgyZjU4OTZhNGYyMWRjNmY1Li5mNDQ1OWJjMzI4ZDZjOTY3ZTFjMjM2OTJkYTFlZTU4
ZGY4ZDJkMDRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5oCkBAIC00NCw3ICs0NCw3IEBAIGNs
YXNzIElEQkRhdGFiYXNlQmFja2VuZEltcGw7CiAKIGNsYXNzIElEQlRyYW5zYWN0aW9uQmFja2Vu
ZEltcGwgOiBwdWJsaWMgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlIHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsPiBjcmVhdGUo
Y29uc3QgVmVjdG9yPGludDY0X3Q+JiwgdW5zaWduZWQgc2hvcnQgbW9kZSwgSURCRGF0YWJhc2VC
YWNrZW5kSW1wbCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2Vu
ZEltcGw+IGNyZWF0ZShpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90
PiYsIHVuc2lnbmVkIHNob3J0IG1vZGUsIElEQkRhdGFiYXNlQmFja2VuZEltcGwqKTsKICAgICBz
dGF0aWMgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbCogZnJvbShJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2UqIGludGVyZmFjZSkKICAgICB7CiAgICAgICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsKj4oaW50ZXJmYWNlKTsKQEAgLTY4LDkgKzY4LDEw
IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFByZWVtcHRpdmVFdmVudCgpIHsgbV9wZW5kaW5nUHJl
ZW1wdGl2ZUV2ZW50cysrOyB9CiAgICAgdm9pZCBkaWRDb21wbGV0ZVByZWVtcHRpdmVFdmVudCgp
IHsgbV9wZW5kaW5nUHJlZW1wdGl2ZUV2ZW50cy0tOyBBU1NFUlQobV9wZW5kaW5nUHJlZW1wdGl2
ZUV2ZW50cyA+PSAwKTsgfQogICAgIElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qIGJhY2tp
bmdTdG9yZVRyYW5zYWN0aW9uKCkgeyByZXR1cm4gJm1fdHJhbnNhY3Rpb247IH0KKyAgICBpbnQ2
NF90IGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQogCiBwcml2YXRlOgotICAgIElEQlRyYW5z
YWN0aW9uQmFja2VuZEltcGwoY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywg
dW5zaWduZWQgc2hvcnQgbW9kZSwgSURCRGF0YWJhc2VCYWNrZW5kSW1wbCopOworICAgIElEQlRy
YW5zYWN0aW9uQmFja2VuZEltcGwoaW50NjRfdCBpZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBv
YmplY3RTdG9yZUlkcywgdW5zaWduZWQgc2hvcnQgbW9kZSwgSURCRGF0YWJhc2VCYWNrZW5kSW1w
bCopOwogCiAgICAgZW51bSBTdGF0ZSB7CiAgICAgICAgIFVudXNlZCwgLy8gQ3JlYXRlZCwgYnV0
IG5vIHRhc2tzIHlldC4KQEAgLTg4LDYgKzg5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHRhc2tF
dmVudFRpbWVyRmlyZWQoVGltZXI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4qKTsKICAgICB2
b2lkIGNsb3NlT3BlbkN1cnNvcnMoKTsKIAorICAgIGNvbnN0IGludDY0X3QgbV9pZDsKICAgICBj
b25zdCBWZWN0b3I8aW50NjRfdD4gbV9vYmplY3RTdG9yZUlkczsKICAgICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBtX21vZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYklEQkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJ
REJEYXRhYmFzZS5oCmluZGV4IGI5Mjc5OTAzOTBmNzllYmI3OGU5Y2M5MTg3NGIzNmI2NThiMDBh
MDUuLmJiZjVhZjRjMzYxNTcyZDEzNTdhYmYzMDg2YThiMjZjNzRjZTIzYjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlLmgKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2UuaApAQCAtNTcsMTIgKzU3
LDE1IEBAIHB1YmxpYzoKICAgICB9CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3Jl
KGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYgdHJhbnNh
Y3Rpb24sIFdlYkV4Y2VwdGlvbkNvZGUmIGVjKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRWZXJzaW9uKGNvbnN0IFdlYlN0cmluZyYgdmVyc2lv
biwgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIFdlYkV4Y2VwdGlvbkNvZGUmKSB7IFdFQktJ
VF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBhcyBw
YXJ0IG9mIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDI3MzMuCiAg
ICAgLy8gVHJhbnNmZXJzIG93bmVyc2hpcCBvZiB0aGUgV2ViSURCVHJhbnNhY3Rpb24gdG8gdGhl
IGNhbGxlci4KICAgICB2aXJ0dWFsIFdlYklEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbihjb25z
dCBXZWJWZWN0b3I8bG9uZyBsb25nPiYsIHVuc2lnbmVkIHNob3J0IG1vZGUpCiAgICAgewogICAg
ICAgICBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiAwOwogICAg
IH0KKyAgICAvLyBUcmFuc2ZlcnMgb3duZXJzaGlwIG9mIHRoZSBXZWJJREJUcmFuc2FjdGlvbiB0
byB0aGUgY2FsbGVyLgorICAgIHZpcnR1YWwgV2ViSURCVHJhbnNhY3Rpb24qIGNyZWF0ZVRyYW5z
YWN0aW9uKGxvbmcgbG9uZyBpZCwgY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mLCB1bnNpZ25l
ZCBzaG9ydCBtb2RlKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIDA7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsg
fQogICAgIHZpcnR1YWwgdm9pZCBmb3JjZUNsb3NlKCkgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFD
SEVEKCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0
YWJhc2VCYWNrZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0
YWJhc2VCYWNrZW5kUHJveHkuY3BwCmluZGV4IDBiYzk1NDY2ZDhiMzA1ZGE5YWY0NzUzMjA1ZTFj
MjRmZjZmZGE5MTEuLmEwMzU1MTA0YWYwNWZjMTgwNjBiMDNhNzIxOTc3NGY5OTcyMDQ2ZWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQmFja2VuZFBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJhY2tl
bmRQcm94eS5jcHAKQEAgLTkxLDYgKzkxLDcgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRQcm94
eTo6c2V0VmVyc2lvbihjb25zdCBTdHJpbmcmIHZlcnNpb24sIFBhc3NSZWZQdHI8SURCQ2EKICAg
ICBtX3dlYklEQkRhdGFiYXNlLT5zZXRWZXJzaW9uKHZlcnNpb24sIG5ldyBXZWJJREJDYWxsYmFj
a3NJbXBsKGNhbGxiYWNrcyksIGVjKTsKIH0KIAorLy8gRklYTUU6IFJlbW92ZSB0aGlzIGFzIHBh
cnQgb2YgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjczMy4KIFBh
c3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBJREJEYXRhYmFzZUJhY2tl
bmRQcm94eTo6dHJhbnNhY3Rpb24oY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlk
cywgdW5zaWduZWQgc2hvcnQgbW9kZSkKIHsKICAgICBPd25QdHI8V2ViSURCVHJhbnNhY3Rpb24+
IHRyYW5zYWN0aW9uID0gYWRvcHRQdHIobV93ZWJJREJEYXRhYmFzZS0+dHJhbnNhY3Rpb24ob2Jq
ZWN0U3RvcmVJZHMsIG1vZGUpKTsKQEAgLTEwMCw2ICsxMDEsMTUgQEAgUGFzc1JlZlB0cjxJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IElEQkRhdGFiYXNlQmFja2VuZFByb3h5Ojp0cmFu
c2FjdGlvbigKICAgICByZXR1cm4gSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHk6OmNyZWF0ZSh0
cmFuc2FjdGlvbi5yZWxlYXNlKCkpOwogfQogCitQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFj
a2VuZEludGVyZmFjZT4gSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OmNyZWF0ZVRyYW5zYWN0aW9u
KGludDY0X3QgaWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJZHMsIHVuc2ln
bmVkIHNob3J0IG1vZGUpCit7CisgICAgT3duUHRyPFdlYklEQlRyYW5zYWN0aW9uPiB0cmFuc2Fj
dGlvbiA9IGFkb3B0UHRyKG1fd2ViSURCRGF0YWJhc2UtPmNyZWF0ZVRyYW5zYWN0aW9uKGlkLCBv
YmplY3RTdG9yZUlkcywgbW9kZSkpOworICAgIGlmICghdHJhbnNhY3Rpb24pCisgICAgICAgIHJl
dHVybiAwOworCisgICAgcmV0dXJuIElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5OjpjcmVhdGUo
dHJhbnNhY3Rpb24ucmVsZWFzZSgpKTsKK30KKwogdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRQcm94
eTo6Y2xvc2UoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4pCiB7CiAgICAgbV93ZWJJ
REJEYXRhYmFzZS0+Y2xvc2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5oCmluZGV4IGFhOGZkZjBjOWVmNzFhODg3OTY5Y2Mz
YmRhMmY1ZTk5MDhmMjIzYTMuLmYxNDk4MGJkNThkYzE0NTI5NzFjNmMyMDRmM2M1ZDE2ODI5ZjU2
MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQmFj
a2VuZFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VC
YWNrZW5kUHJveHkuaApAQCAtNDcsNyArNDcsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQYXNz
UmVmUHRyPFdlYkNvcmU6OklEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZT4gY3JlYXRlT2Jq
ZWN0U3RvcmUoaW50NjRfdCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJDb3JlOjpJREJL
ZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50LCBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2UqLCBXZWJDb3JlOjpFeGNlcHRpb25Db2RlJik7CiAgICAgdmlydHVhbCB2b2lk
IGRlbGV0ZU9iamVjdFN0b3JlKGludDY0X3QsIFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2Vu
ZEludGVyZmFjZSosIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0VmVyc2lvbihjb25zdCBTdHJpbmcmIHZlcnNpb24sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURC
Q2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUNhbGxiYWNrcz4sIFdl
YkNvcmU6OkV4Y2VwdGlvbkNvZGUmKTsKKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgYXMgcGFy
dCBvZiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyNzMzLgogICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2U+IHRyYW5zYWN0aW9uKGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYsIHVuc2lnbmVkIHNob3J0IG1v
ZGUpOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2U+IGNyZWF0ZVRyYW5zYWN0aW9uKGludDY0X3QsIGNvbnN0IFZlY3RvcjxpbnQ2
NF90PiYsIHVuc2lnbmVkIHNob3J0IG1vZGUpOwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZShQYXNz
UmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlQ2FsbGJhY2tzPik7CiAKIHByaXZhdGU6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcAppbmRl
eCA1OWFiZDUzMjkyODAxZjMwNDkzZGJkMGM0N2Y2ZTAwZDM2MGJkZDQxLi41MzlhNDg4YzkzM2Ux
Y2E2M2NlMDcwNzM3OTIyN2ViMGFiZDYyMjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAKQEAgLTgwLDYgKzgwLDE4IEBAIHZvaWQg
V2ViSURCRGF0YWJhc2VJbXBsOjpzZXRWZXJzaW9uKGNvbnN0IFdlYlN0cmluZyYgdmVyc2lvbiwg
V2ViSURCQ2FsbGJhY2tzKiBjCiAgICAgbV9kYXRhYmFzZUJhY2tlbmQtPnNldFZlcnNpb24odmVy
c2lvbiwgSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0cihjYWxsYmFja3MpKSwgbV9k
YXRhYmFzZUNhbGxiYWNrcywgZWMpOwogfQogCitXZWJJREJUcmFuc2FjdGlvbiogV2ViSURCRGF0
YWJhc2VJbXBsOjpjcmVhdGVUcmFuc2FjdGlvbihsb25nIGxvbmcgaWQsIGNvbnN0IFdlYlZlY3Rv
cjxsb25nIGxvbmc+JiBvYmplY3RTdG9yZUlkcywgdW5zaWduZWQgc2hvcnQgbW9kZSkKK3sKKyAg
ICBWZWN0b3I8aW50NjRfdD4gb2JqZWN0U3RvcmVJZExpc3Qob2JqZWN0U3RvcmVJZHMuc2l6ZSgp
KTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9iamVjdFN0b3JlSWRzLnNpemUoKTsgKytp
KQorICAgICAgICBvYmplY3RTdG9yZUlkTGlzdFtpXSA9IG9iamVjdFN0b3JlSWRzW2ldOworICAg
IFJlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IHRyYW5zYWN0aW9uID0gbV9k
YXRhYmFzZUJhY2tlbmQtPmNyZWF0ZVRyYW5zYWN0aW9uKGlkLCBvYmplY3RTdG9yZUlkTGlzdCwg
bW9kZSk7CisgICAgaWYgKCF0cmFuc2FjdGlvbikKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0
dXJuIG5ldyBXZWJJREJUcmFuc2FjdGlvbkltcGwodHJhbnNhY3Rpb24pOworfQorCisvLyBGSVhN
RTogUmVtb3ZlIHRoaXMgYXMgcGFydCBvZiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTAyNzMzLgogV2ViSURCVHJhbnNhY3Rpb24qIFdlYklEQkRhdGFiYXNlSW1wbDo6
dHJhbnNhY3Rpb24oY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mIG9iamVjdFN0b3JlSWRzLCB1
bnNpZ25lZCBzaG9ydCBtb2RlKQogewogICAgIFZlY3RvcjxpbnQ2NF90PiBvYmplY3RTdG9yZUlk
TGlzdChvYmplY3RTdG9yZUlkcy5zaXplKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaAppbmRleCBlNzI4NzQyYzY0NzQ4NDEyNmNmM2VhN2Rk
OTU2ZWRmZjMyYzcyODBmLi5lZWY2NDkzZmRjMjgzNjNhNDMwZTgyZDIyZDU5NDk3ZmEwOWExYzNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUlt
cGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwu
aApAQCAtNTUsNyArNTUsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBXZWJJREJPYmplY3RTdG9y
ZSogY3JlYXRlT2JqZWN0U3RvcmUobG9uZyBsb25nLCBjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGNv
bnN0IFdlYklEQktleVBhdGgmLCBib29sIGF1dG9JbmNyZW1lbnQsIGNvbnN0IFdlYklEQlRyYW5z
YWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpOwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVPYmpl
Y3RTdG9yZShsb25nIGxvbmcgb2JqZWN0U3RvcmVJZCwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24m
LCBXZWJFeGNlcHRpb25Db2RlJik7CiAgICAgdmlydHVhbCB2b2lkIHNldFZlcnNpb24oY29uc3Qg
V2ViU3RyaW5nJiB2ZXJzaW9uLCBXZWJJREJDYWxsYmFja3MqLCBXZWJFeGNlcHRpb25Db2RlJik7
CisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIGFzIHBhcnQgb2YgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjczMy4KICAgICB2aXJ0dWFsIFdlYklEQlRyYW5zYWN0
aW9uKiB0cmFuc2FjdGlvbihjb25zdCBXZWJWZWN0b3I8bG9uZyBsb25nPiYgbmFtZXMsIHVuc2ln
bmVkIHNob3J0IG1vZGUpOworICAgIHZpcnR1YWwgV2ViSURCVHJhbnNhY3Rpb24qIGNyZWF0ZVRy
YW5zYWN0aW9uKGxvbmcgbG9uZyBpZCwgY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mLCB1bnNp
Z25lZCBzaG9ydCBtb2RlKTsKICAgICB2aXJ0dWFsIHZvaWQgZm9yY2VDbG9zZSgpOwogICAgIHZp
cnR1YWwgdm9pZCBjbG9zZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcAppbmRleCBlOTdiYzdmNmRmOWE0MThj
ZmY2NTYwZDJjMTIzNGViYzFkM2E2ODQ4Li5hOGJhZjA0ZDRlMDY4ZThhZDZiYzNiOWJiMjljN2Mz
OWVkYzU5MDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRh
dGFiYXNlQmFja2VuZFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
SURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAKQEAgLTE1NCw4ICsxNTQsOSBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgbmFtZSwgSURC
VHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9uQ29kZSYpIHsgfQogICAgIHZp
cnR1YWwgdm9pZCBkZWxldGVPYmplY3RTdG9yZShpbnQ2NF90LCBJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFZl
cnNpb24oY29uc3QgU3RyaW5nJiB2ZXJzaW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBh
c3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+LCBFeGNlcHRpb25Db2RlJikgeyB9Ci0gICAg
dmlydHVhbCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gdHJhbnNh
Y3Rpb24oRE9NU3RyaW5nTGlzdCogc3RvcmVOYW1lcywgdW5zaWduZWQgc2hvcnQgbW9kZSwgRXhj
ZXB0aW9uQ29kZSYpIHsgcmV0dXJuIDA7IH0KKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgYXMg
cGFydCBvZiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyNzMzLgog
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IHRy
YW5zYWN0aW9uKGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYsIHVuc2lnbmVkIHNob3J0IG1vZGUpIHsg
cmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5k
SW50ZXJmYWNlPiBjcmVhdGVUcmFuc2FjdGlvbihpbnQ2NF90LCBjb25zdCBWZWN0b3I8aW50NjRf
dD4mLCB1bnNpZ25lZCBzaG9ydCBtb2RlKSB7IHJldHVybiAwOyB9CiAKICAgICB2aXJ0dWFsIHZv
aWQgY2xvc2UoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4pCiAgICAgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175457</attachid>
            <date>2012-11-21 09:11:02 -0800</date>
            <delta_ts>2012-11-21 09:46:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102730-20121121090850.patch</filename>
            <type>text/plain</type>
            <size>18491</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MzgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzQwYTUzNjU2YjAxOTkw
YWIxMzM5ZGE3NGJlYWU1ZmEzNzIxMDM1Mi4uNzRmZTEyMTU0OGZjNDk3Nzc2NWIzMGMxNzc2YmM1
N2U3ZWNiYzU4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTExLTE5ICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IHN0
dWIgb3V0IElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6Y3JlYXRlVHJhbnNhY3Rpb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjczMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0dWIgb3V0IGFu
ZCBzdXBwb3J0IHBhc3NpbmcgYSBzdHJpbmctYmFzZWQgdHJhbnNhY3Rpb24gaWQKKyAgICAgICAg
c28gdGhlIGZyb250ZW5kIGNhbiByZWZlciB0byB0cmFuc2FjdGlvbnMgYnkgaWQgcmF0aGVyIHRo
YW4KKyAgICAgICAgYSBwcm94eSBvYmplY3Qgb3IgYSBkaXJlY3QgcG9pbnRlciByZWZlcmVuY2Uu
IFRoaXMgd2lsbCB1bHRpbWF0ZWx5CisgICAgICAgIGxvb3NlbiBvd25lcnNoaXAgYW5kIGxpZmV0
aW1lIG9mIHRyYW5zYWN0aW9ucyBmcm9tIHRoZSBmcm9udGVuZAorICAgICAgICBhbmQgYmFja2Vu
ZC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHRoaXMgaXMganVzdCBwYXJ0IG9mIGEgcmVmYWN0
b3IuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHA6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6
OnRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6
OmNyZWF0ZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZUJhY2tlbmRJbXBsLmg6CisgICAgICAgIChJREJEYXRhYmFzZUJhY2tlbmRJbXBsKToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaDoK
KyAgICAgICAgKElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZSk6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbDo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbCk6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5o
OgorICAgICAgICAoSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbCk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjppZCk6CisKIDIwMTItMTEtMjEgIEhhcmFsZCBB
bHZlc3RyYW5kICA8aHRhQGdvb2dsZS5jb20+CiAKICAgICAgICAgV2ViTWVkaWFTdHJlYW1Db21w
b25lbnQ6IEFkZCBhc3NpZ25tZW50IGFuZCBjb3B5IG9wZXJhdG9ycwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwppbmRleCA3ZDgzZWVkMGViZDk2NmFjZTA5MGE3M2EwYmU4ZjJmNGNiYTEyMzE0Li5k
YTA0ZWFkOTBiYjBjZGViMTg1ZDhhZWNmOGYwOTk4NGRhYjg2N2VlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTExLTE5ICBBbGVjIEZsZXR0ICA8YWxl
Y2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IHN0dWIgb3V0IElEQkRh
dGFiYXNlQmFja2VuZEludGVyZmFjZTo6Y3JlYXRlVHJhbnNhY3Rpb24KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjczMAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBuZXcgY3Jl
YXRlVHJhbnNhY3Rpb24oKSBtZXRob2QgaW4gYm90aCBzaWRlcworICAgICAgICBvZiB0aGUgV2Vi
S2l0IEFQSS4KKworICAgICAgICAqIHB1YmxpYy9XZWJJREJEYXRhYmFzZS5oOgorICAgICAgICAo
V2ViSURCRGF0YWJhc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZTo6Y3JlYXRl
VHJhbnNhY3Rpb24pOgorICAgICAgICAqIHNyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpJREJEYXRhYmFzZUJhY2tlbmRQ
cm94eTo6Y3JlYXRlVHJhbnNhY3Rpb24pOgorICAgICAgICAqIHNyYy9JREJEYXRhYmFzZUJhY2tl
bmRQcm94eS5oOgorICAgICAgICAoSURCRGF0YWJhc2VCYWNrZW5kUHJveHkpOgorICAgICAgICAq
IHNyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRh
YmFzZUltcGw6OmNyZWF0ZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
ICogc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oOgorICAgICAgICAoV2ViSURCRGF0YWJhc2VJbXBs
KToKKwogMjAxMi0xMS0yMCAgUmFjaGVsIEJsdW0gIDxncm9ieUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgW0Nocm9taXVtXSBOZWVkIHNwZWxsY2hlY2sgc3VnZ2VzdGlvbnMgZXZlbiBpZiBjb250
aW51b3VzIGNoZWNrIGlzIG9mZi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkRhdGFiYXNlLmNwcAppbmRleCBlNWVhNDFlMGE2MzAzNzBmMGQ4NmMzZTVmZDQxZTcy
NmM3MmY2OGIxLi43ZjFjOTU1NTFlNjBjZmYyMmZmNDQ2OWE0N2I1ZmE2YTFlMjQxZWFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCkBA
IC0zNiw3ICszNiw2IEBACiAjaW5jbHVkZSAiSURCRGF0YWJhc2VFcnJvci5oIgogI2luY2x1ZGUg
IklEQkRhdGFiYXNlRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiSURCRXZlbnREaXNwYXRjaGVyLmgi
Ci0jaW5jbHVkZSAiSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJJREJJ
bmRleC5oIgogI2luY2x1ZGUgIklEQktleVBhdGguaCIKICNpbmNsdWRlICJJREJPYmplY3RTdG9y
ZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0
YWJhc2VCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcAppbmRleCAwZGM4MDIxMDk4ZmVhMzhkNTFkOGI5Yjlh
NzQ2NTVmNjU2ZGZlNmE2Li5lYWY3MTA2NTQ5YmJiYjIxNjZjMjZiYWViYzE2ODYzOWNjZWVjOTQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZUJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcApAQCAtNDIyLDkgKzQyMiwxNSBAQCB2b2lkIElEQkRh
dGFiYXNlQmFja2VuZEltcGw6OnByb2Nlc3NQZW5kaW5nQ2FsbHMoKQogICAgIH0KIH0KIAorLy8g
RklYTUU6IFJlbW92ZSB0aGlzIGFzIHBhcnQgb2YgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwMjczMy4KIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlPiBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjp0cmFuc2FjdGlvbihjb25zdCBWZWN0b3I8
aW50NjRfdD4mIG9iamVjdFN0b3JlSWRzLCB1bnNpZ25lZCBzaG9ydCBtb2RlKQogewotICAgIFJl
ZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsPiB0cmFuc2FjdGlvbiA9IElEQlRyYW5zYWN0
aW9uQmFja2VuZEltcGw6OmNyZWF0ZShvYmplY3RTdG9yZUlkcywgbW9kZSwgdGhpcyk7CisgICAg
cmV0dXJuIGNyZWF0ZVRyYW5zYWN0aW9uKCIiLCBvYmplY3RTdG9yZUlkcywgbW9kZSk7Cit9CisK
K1Bhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBJREJEYXRhYmFzZUJh
Y2tlbmRJbXBsOjpjcmVhdGVUcmFuc2FjdGlvbihjb25zdCBTdHJpbmcmIHRyYW5zYWN0aW9uSWQs
IGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJZHMsIHVuc2lnbmVkIHNob3J0IG1v
ZGUpCit7CisgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw+IHRyYW5zYWN0aW9u
ID0gSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbDo6Y3JlYXRlKHRyYW5zYWN0aW9uSWQsIG9iamVj
dFN0b3JlSWRzLCBtb2RlLCB0aGlzKTsKICAgICBtX3RyYW5zYWN0aW9ucy5hZGQodHJhbnNhY3Rp
b24uZ2V0KCkpOwogICAgIHJldHVybiB0cmFuc2FjdGlvbi5yZWxlYXNlKCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJ
bXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tl
bmRJbXBsLmgKaW5kZXggZjBmNDkzOGQxN2JlYWQ4Y2QxZDQyNTRhMDc5OGI2ZDZkZTM2YjE0Zi4u
MjljYTEyZWFhZDQwMWZlNjQ5M2RjMWE1NDAyMGFjM2VkNGE1NmM2ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZElt
cGwuaApAQCAtNjQsNyArNjQsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPElE
Qk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZT4gY3JlYXRlT2JqZWN0U3RvcmUoaW50NjRfdCBp
ZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVt
ZW50LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJik7CiAg
ICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGludDY0X3QsIElEQlRyYW5zYWN0aW9u
QmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
VmVyc2lvbihjb25zdCBTdHJpbmcmIHZlcnNpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwg
UGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4sIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICAv
LyBGSVhNRTogUmVtb3ZlIHRoaXMgYXMgcGFydCBvZiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTAyNzMzLgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbnRlcmZhY2U+IHRyYW5zYWN0aW9uKGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYs
IHVuc2lnbmVkIHNob3J0KTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25C
YWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVUcmFuc2FjdGlvbihjb25zdCBTdHJpbmcmIHRyYW5zYWN0
aW9uSWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgc2NvcGUsIHVuc2lnbmVkIHNob3J0IG1vZGUp
OwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZShQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tz
Pik7CiAKICAgICBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw+IG9iamVjdFN0
b3JlKGludDY0X3QgaWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaAppbmRleCA5YWFiNTY0
NGJhNDg2M2MwN2E2N2U0MWQ5MDdmNDFkMWQxOGU0ODM1Li41MjJlNjY4MDI5M2Q1YzZkOGEzZTA1
YzY4NDdhZDZhNzk3MjYyMmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaApAQCAtNTYs
NyArNTYsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3Jl
QmFja2VuZEludGVyZmFjZT4gY3JlYXRlT2JqZWN0U3RvcmUoaW50NjRfdCwgY29uc3QgU3RyaW5n
JiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50LCBJREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJikgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBkZWxldGVPYmplY3RTdG9yZShpbnQ2NF90LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRl
cmZhY2UqLCBFeGNlcHRpb25Db2RlJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWZXJzaW9u
KGNvbnN0IFN0cmluZyYgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVm
UHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgRXhjZXB0aW9uQ29kZSYpID0gMDsKKyAgICAvLyBG
SVhNRTogUmVtb3ZlIHRoaXMgYXMgcGFydCBvZiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTAyNzMzLgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2U+IHRyYW5zYWN0aW9uKGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2Jq
ZWN0U3RvcmVJZHMsIHVuc2lnbmVkIHNob3J0IG1vZGUpID0gMDsKKyAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVUcmFuc2FjdGlvbihj
b25zdCBTdHJpbmcmIHRyYW5zYWN0aW9uSWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgc2NvcGUs
IHVuc2lnbmVkIHNob3J0IG1vZGUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoUGFzc1Jl
ZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4pID0gMDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5k
SW1wbC5jcHAKaW5kZXggNTA1NDNkNWU4MTk5ZWYwNjE1ZjZhOGRmZWM1OWI3OGI3MTQ0YmZiZS4u
Yjc2Y2I4MWFlNGUzNDQ3ZWNiOWE2ZWQ0YTg1MjQ3YmQ2ZGQxYzc5NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25C
YWNrZW5kSW1wbC5jcHAKQEAgLTM5LDEzICszOSwxNCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLVBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4gSURCVHJhbnNhY3Rpb25C
YWNrZW5kSW1wbDo6Y3JlYXRlKGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJZHMs
IHVuc2lnbmVkIHNob3J0IG1vZGUsIElEQkRhdGFiYXNlQmFja2VuZEltcGwqIGRhdGFiYXNlKQor
UGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsPiBJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbXBsOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBpZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBv
YmplY3RTdG9yZUlkcywgdW5zaWduZWQgc2hvcnQgbW9kZSwgSURCRGF0YWJhc2VCYWNrZW5kSW1w
bCogZGF0YWJhc2UpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJUcmFuc2FjdGlvbkJh
Y2tlbmRJbXBsKG9iamVjdFN0b3JlSWRzLCBtb2RlLCBkYXRhYmFzZSkpOworICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbChpZCwgb2JqZWN0U3RvcmVJZHMs
IG1vZGUsIGRhdGFiYXNlKSk7CiB9CiAKLUlEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw6OklEQlRy
YW5zYWN0aW9uQmFja2VuZEltcGwoY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlk
cywgdW5zaWduZWQgc2hvcnQgbW9kZSwgSURCRGF0YWJhc2VCYWNrZW5kSW1wbCogZGF0YWJhc2Up
Ci0gICAgOiBtX29iamVjdFN0b3JlSWRzKG9iamVjdFN0b3JlSWRzKQorSURCVHJhbnNhY3Rpb25C
YWNrZW5kSW1wbDo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbChjb25zdCBTdHJpbmcmIGlkLCBj
b25zdCBWZWN0b3I8aW50NjRfdD4mIG9iamVjdFN0b3JlSWRzLCB1bnNpZ25lZCBzaG9ydCBtb2Rl
LCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsKiBkYXRhYmFzZSkKKyAgICA6IG1faWQoaWQpCisgICAg
LCBtX29iamVjdFN0b3JlSWRzKG9iamVjdFN0b3JlSWRzKQogICAgICwgbV9tb2RlKG1vZGUpCiAg
ICAgLCBtX3N0YXRlKFVudXNlZCkKICAgICAsIG1fZGF0YWJhc2UoZGF0YWJhc2UpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tl
bmRJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlv
bkJhY2tlbmRJbXBsLmgKaW5kZXggODAzZWQwNzRhYmJhOTJjYjA3NjUwNWJiMGRjNzhmMjk4Zjlk
MTljYS4uODFiMTVlZWI5NjU2MzkwMGYwZGQ2YTgwZGY5MDQ5OTlmODg3MGVkNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5k
SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0
aW9uQmFja2VuZEltcGwuaApAQCAtNDQsNyArNDQsNyBAQCBjbGFzcyBJREJEYXRhYmFzZUJhY2tl
bmRJbXBsOwogCiBjbGFzcyBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsIDogcHVibGljIElEQlRy
YW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4gY3JlYXRlKGNvbnN0IFZlY3RvcjxpbnQ2NF90
PiYsIHVuc2lnbmVkIHNob3J0IG1vZGUsIElEQkRhdGFiYXNlQmFja2VuZEltcGwqKTsKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsPiBjcmVhdGUoY29uc3Qg
U3RyaW5nJiB0cmFuc2FjdGlvbklkLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mLCB1bnNpZ25lZCBz
aG9ydCBtb2RlLCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsKik7CiAgICAgc3RhdGljIElEQlRyYW5z
YWN0aW9uQmFja2VuZEltcGwqIGZyb20oSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiBp
bnRlcmZhY2UpCiAgICAgewogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SURCVHJhbnNhY3Rp
b25CYWNrZW5kSW1wbCo+KGludGVyZmFjZSk7CkBAIC02OCw5ICs2OCwxMCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBhZGRQcmVlbXB0aXZlRXZlbnQoKSB7IG1fcGVuZGluZ1ByZWVtcHRpdmVFdmVudHMr
KzsgfQogICAgIHZvaWQgZGlkQ29tcGxldGVQcmVlbXB0aXZlRXZlbnQoKSB7IG1fcGVuZGluZ1By
ZWVtcHRpdmVFdmVudHMtLTsgQVNTRVJUKG1fcGVuZGluZ1ByZWVtcHRpdmVFdmVudHMgPj0gMCk7
IH0KICAgICBJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uKiBiYWNraW5nU3RvcmVUcmFuc2Fj
dGlvbigpIHsgcmV0dXJuICZtX3RyYW5zYWN0aW9uOyB9CisgICAgY29uc3QgU3RyaW5nJiBpZCgp
IGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KIAogcHJpdmF0ZToKLSAgICBJREJUcmFuc2FjdGlvbkJh
Y2tlbmRJbXBsKGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJZHMsIHVuc2lnbmVk
IHNob3J0IG1vZGUsIElEQkRhdGFiYXNlQmFja2VuZEltcGwqKTsKKyAgICBJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbXBsKGNvbnN0IFN0cmluZyYgaWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2Jq
ZWN0U3RvcmVJZHMsIHVuc2lnbmVkIHNob3J0IG1vZGUsIElEQkRhdGFiYXNlQmFja2VuZEltcGwq
KTsKIAogICAgIGVudW0gU3RhdGUgewogICAgICAgICBVbnVzZWQsIC8vIENyZWF0ZWQsIGJ1dCBu
byB0YXNrcyB5ZXQuCkBAIC04OSw2ICs5MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB0YXNrRXZl
bnRUaW1lckZpcmVkKFRpbWVyPElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw+Kik7CiAgICAgdm9p
ZCBjbG9zZU9wZW5DdXJzb3JzKCk7CiAKKyAgICBjb25zdCBTdHJpbmcgbV9pZDsKICAgICBjb25z
dCBWZWN0b3I8aW50NjRfdD4gbV9vYmplY3RTdG9yZUlkczsKICAgICBjb25zdCB1bnNpZ25lZCBz
aG9ydCBtX21vZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYklEQkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJE
YXRhYmFzZS5oCmluZGV4IGI5Mjc5OTAzOTBmNzllYmI3OGU5Y2M5MTg3NGIzNmI2NThiMDBhMDUu
LmM5YmQyZjUwYjQ0NTY3NzkxZGNlYTJjOGQ3ZmRiNjdlMGNlODFjMjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlLmgKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2UuaApAQCAtNTcsMTIgKzU3LDE1
IEBAIHB1YmxpYzoKICAgICB9CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGxv
bmcgbG9uZyBvYmplY3RTdG9yZUlkLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rp
b24sIFdlYkV4Y2VwdGlvbkNvZGUmIGVjKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsg
fQogICAgIHZpcnR1YWwgdm9pZCBzZXRWZXJzaW9uKGNvbnN0IFdlYlN0cmluZyYgdmVyc2lvbiwg
V2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIFdlYkV4Y2VwdGlvbkNvZGUmKSB7IFdFQktJVF9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBhcyBwYXJ0
IG9mIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDI3MzMuCiAgICAg
Ly8gVHJhbnNmZXJzIG93bmVyc2hpcCBvZiB0aGUgV2ViSURCVHJhbnNhY3Rpb24gdG8gdGhlIGNh
bGxlci4KICAgICB2aXJ0dWFsIFdlYklEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbihjb25zdCBX
ZWJWZWN0b3I8bG9uZyBsb25nPiYsIHVuc2lnbmVkIHNob3J0IG1vZGUpCiAgICAgewogICAgICAg
ICBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0K
KyAgICAvLyBUcmFuc2ZlcnMgb3duZXJzaGlwIG9mIHRoZSBXZWJJREJUcmFuc2FjdGlvbiB0byB0
aGUgY2FsbGVyLgorICAgIHZpcnR1YWwgV2ViSURCVHJhbnNhY3Rpb24qIGNyZWF0ZVRyYW5zYWN0
aW9uKGNvbnN0IFdlYlN0cmluZyYgaWQsIGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiwgdW5z
aWduZWQgc2hvcnQgbW9kZSkgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiAw
OyB9CiAgICAgdmlydHVhbCB2b2lkIGNsb3NlKCkgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVE
KCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZm9yY2VDbG9zZSgpIHsgV0VCS0lUX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lE
QkRhdGFiYXNlQmFja2VuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lE
QkRhdGFiYXNlQmFja2VuZFByb3h5LmNwcAppbmRleCAwYmM5NTQ2NmQ4YjMwNWRhOWFmNDc1MzIw
NWUxYzI0ZmY2ZmRhOTExLi5lMzJiOGM4NWYwOGM2NzBjY2UyODZmMzQ1ZWIyZDk0MjkyZmRhNjMz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJhY2tl
bmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VC
YWNrZW5kUHJveHkuY3BwCkBAIC05MSw2ICs5MSw3IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5k
UHJveHk6OnNldFZlcnNpb24oY29uc3QgU3RyaW5nJiB2ZXJzaW9uLCBQYXNzUmVmUHRyPElEQkNh
CiAgICAgbV93ZWJJREJEYXRhYmFzZS0+c2V0VmVyc2lvbih2ZXJzaW9uLCBuZXcgV2ViSURCQ2Fs
bGJhY2tzSW1wbChjYWxsYmFja3MpLCBlYyk7CiB9CiAKKy8vIEZJWE1FOiBSZW1vdmUgdGhpcyBh
cyBwYXJ0IG9mIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDI3MzMu
CiBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gSURCRGF0YWJhc2VC
YWNrZW5kUHJveHk6OnRyYW5zYWN0aW9uKGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2JqZWN0U3Rv
cmVJZHMsIHVuc2lnbmVkIHNob3J0IG1vZGUpCiB7CiAgICAgT3duUHRyPFdlYklEQlRyYW5zYWN0
aW9uPiB0cmFuc2FjdGlvbiA9IGFkb3B0UHRyKG1fd2ViSURCRGF0YWJhc2UtPnRyYW5zYWN0aW9u
KG9iamVjdFN0b3JlSWRzLCBtb2RlKSk7CkBAIC0xMDAsNiArMTAxLDE1IEBAIFBhc3NSZWZQdHI8
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6
dHJhbnNhY3Rpb24oCiAgICAgcmV0dXJuIElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5OjpjcmVh
dGUodHJhbnNhY3Rpb24ucmVsZWFzZSgpKTsKIH0KIAorUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2U+IElEQkRhdGFiYXNlQmFja2VuZFByb3h5OjpjcmVhdGVUcmFuc2Fj
dGlvbihjb25zdCBTdHJpbmcmIGlkLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9iamVjdFN0b3Jl
SWRzLCB1bnNpZ25lZCBzaG9ydCBtb2RlKQoreworICAgIE93blB0cjxXZWJJREJUcmFuc2FjdGlv
bj4gdHJhbnNhY3Rpb24gPSBhZG9wdFB0cihtX3dlYklEQkRhdGFiYXNlLT5jcmVhdGVUcmFuc2Fj
dGlvbihpZCwgb2JqZWN0U3RvcmVJZHMsIG1vZGUpKTsKKyAgICBpZiAoIXRyYW5zYWN0aW9uKQor
ICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94
eTo6Y3JlYXRlKHRyYW5zYWN0aW9uLnJlbGVhc2UoKSk7Cit9CisKIHZvaWQgSURCRGF0YWJhc2VC
YWNrZW5kUHJveHk6OmNsb3NlKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+KQogewog
ICAgIG1fd2ViSURCRGF0YWJhc2UtPmNsb3NlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5oIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuaAppbmRleCBhYThmZGYwYzllZjcx
YTg4Nzk2OWNjM2JkYTJmNWU5OTA4ZjIyM2EzLi5iZWQ1MWI2MDZiMWI0YmQyMzg4ZjJiMWYxM2Ni
MGFkYzQ2Zjc3YTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJE
YXRhYmFzZUJhY2tlbmRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lE
QkRhdGFiYXNlQmFja2VuZFByb3h5LmgKQEAgLTQ3LDcgKzQ3LDkgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U+
IGNyZWF0ZU9iamVjdFN0b3JlKGludDY0X3QsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgV2Vi
Q29yZTo6SURCS2V5UGF0aCYsIGJvb2wgYXV0b0luY3JlbWVudCwgV2ViQ29yZTo6SURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSYpOwogICAgIHZp
cnR1YWwgdm9pZCBkZWxldGVPYmplY3RTdG9yZShpbnQ2NF90LCBXZWJDb3JlOjpJREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBXZWJDb3JlOjpFeGNlcHRpb25Db2RlJik7CiAgICAgdmly
dHVhbCB2b2lkIHNldFZlcnNpb24oY29uc3QgU3RyaW5nJiB2ZXJzaW9uLCBQYXNzUmVmUHRyPFdl
YkNvcmU6OklEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VDYWxs
YmFja3M+LCBXZWJDb3JlOjpFeGNlcHRpb25Db2RlJik7CisgICAgLy8gRklYTUU6IFJlbW92ZSB0
aGlzIGFzIHBhcnQgb2YgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
MjczMy4KICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW50ZXJmYWNlPiB0cmFuc2FjdGlvbihjb25zdCBWZWN0b3I8aW50NjRfdD4mLCB1bnNpZ25l
ZCBzaG9ydCBtb2RlKTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVUcmFuc2FjdGlvbihjb25zdCBTdHJpbmcmLCBj
b25zdCBWZWN0b3I8aW50NjRfdD4mLCB1bnNpZ25lZCBzaG9ydCBtb2RlKTsKICAgICB2aXJ0dWFs
IHZvaWQgY2xvc2UoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUNhbGxiYWNrcz4pOwog
CiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURC
RGF0YWJhc2VJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFi
YXNlSW1wbC5jcHAKaW5kZXggNTlhYmQ1MzI5MjgwMWYzMDQ5M2RiZDBjNDdmNmUwMGQzNjBiZGQ0
MS4uNWEwMzMyZmM1NjE3ZTEwMGFiNWEzMTc1NTljZGMzOWZhMzkzZGIyNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwCkBAIC04MCw2
ICs4MCwxOCBAQCB2b2lkIFdlYklEQkRhdGFiYXNlSW1wbDo6c2V0VmVyc2lvbihjb25zdCBXZWJT
dHJpbmcmIHZlcnNpb24sIFdlYklEQkNhbGxiYWNrcyogYwogICAgIG1fZGF0YWJhc2VCYWNrZW5k
LT5zZXRWZXJzaW9uKHZlcnNpb24sIElEQkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoYWRvcHRQdHIo
Y2FsbGJhY2tzKSksIG1fZGF0YWJhc2VDYWxsYmFja3MsIGVjKTsKIH0KIAorV2ViSURCVHJhbnNh
Y3Rpb24qIFdlYklEQkRhdGFiYXNlSW1wbDo6Y3JlYXRlVHJhbnNhY3Rpb24oY29uc3QgV2ViU3Ry
aW5nJiBpZCwgY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mIG9iamVjdFN0b3JlSWRzLCB1bnNp
Z25lZCBzaG9ydCBtb2RlKQoreworICAgIFZlY3RvcjxpbnQ2NF90PiBvYmplY3RTdG9yZUlkTGlz
dChvYmplY3RTdG9yZUlkcy5zaXplKCkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb2Jq
ZWN0U3RvcmVJZHMuc2l6ZSgpOyArK2kpCisgICAgICAgIG9iamVjdFN0b3JlSWRMaXN0W2ldID0g
b2JqZWN0U3RvcmVJZHNbaV07CisgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVy
ZmFjZT4gdHJhbnNhY3Rpb24gPSBtX2RhdGFiYXNlQmFja2VuZC0+Y3JlYXRlVHJhbnNhY3Rpb24o
aWQsIG9iamVjdFN0b3JlSWRMaXN0LCBtb2RlKTsKKyAgICBpZiAoIXRyYW5zYWN0aW9uKQorICAg
ICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbmV3IFdlYklEQlRyYW5zYWN0aW9uSW1wbCh0cmFu
c2FjdGlvbik7Cit9CisKKy8vIEZJWE1FOiBSZW1vdmUgdGhpcyBhcyBwYXJ0IG9mIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDI3MzMuCiBXZWJJREJUcmFuc2FjdGlv
biogV2ViSURCRGF0YWJhc2VJbXBsOjp0cmFuc2FjdGlvbihjb25zdCBXZWJWZWN0b3I8bG9uZyBs
b25nPiYgb2JqZWN0U3RvcmVJZHMsIHVuc2lnbmVkIHNob3J0IG1vZGUpCiB7CiAgICAgVmVjdG9y
PGludDY0X3Q+IG9iamVjdFN0b3JlSWRMaXN0KG9iamVjdFN0b3JlSWRzLnNpemUoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oCmluZGV4IGU3
Mjg3NDJjNjQ3NDg0MTI2Y2YzZWE3ZGQ5NTZlZGZmMzJjNzI4MGYuLjFiMjViNWNlMzI2OGU1NTQx
MmRiZTdhYzM1YTZkMTZjM2Y4MDdkZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oCkBAIC01NSw3ICs1NSw5IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIFdlYklEQk9iamVjdFN0b3JlKiBjcmVhdGVPYmplY3RTdG9yZShsb25nIGxvbmcsIGNv
bnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3QgV2ViSURCS2V5UGF0aCYsIGJvb2wgYXV0b0luY3Jl
bWVudCwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJik7CiAgICAg
dmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBj
b25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0VmVyc2lvbihjb25zdCBXZWJTdHJpbmcmIHZlcnNpb24sIFdlYklEQkNhbGxiYWNr
cyosIFdlYkV4Y2VwdGlvbkNvZGUmKTsKKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgYXMgcGFy
dCBvZiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyNzMzLgogICAg
IHZpcnR1YWwgV2ViSURCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uKGNvbnN0IFdlYlZlY3Rvcjxs
b25nIGxvbmc+JiBuYW1lcywgdW5zaWduZWQgc2hvcnQgbW9kZSk7CisgICAgdmlydHVhbCBXZWJJ
REJUcmFuc2FjdGlvbiogY3JlYXRlVHJhbnNhY3Rpb24oY29uc3QgV2ViU3RyaW5nJiBpZCwgY29u
c3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mLCB1bnNpZ25lZCBzaG9ydCBtb2RlKTsKICAgICB2aXJ0
dWFsIHZvaWQgZm9yY2VDbG9zZSgpOwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRl
c3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRU
ZXN0LmNwcAppbmRleCBlOTdiYzdmNmRmOWE0MThjZmY2NTYwZDJjMTIzNGViYzFkM2E2ODQ4Li5h
OGJhZjA0ZDRlMDY4ZThhZDZiYzNiOWJiMjljN2MzOWVkYzU5MDk3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAK
QEAgLTE1NCw4ICsxNTQsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVj
dFN0b3JlKGNvbnN0IFN0cmluZyYgbmFtZSwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNl
KiwgRXhjZXB0aW9uQ29kZSYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVPYmplY3RTdG9y
ZShpbnQ2NF90LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2Rl
JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFZlcnNpb24oY29uc3QgU3RyaW5nJiB2ZXJzaW9u
LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFj
a3M+LCBFeGNlcHRpb25Db2RlJikgeyB9Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQlRyYW5z
YWN0aW9uQmFja2VuZEludGVyZmFjZT4gdHJhbnNhY3Rpb24oRE9NU3RyaW5nTGlzdCogc3RvcmVO
YW1lcywgdW5zaWduZWQgc2hvcnQgbW9kZSwgRXhjZXB0aW9uQ29kZSYpIHsgcmV0dXJuIDA7IH0K
KyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgYXMgcGFydCBvZiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyNzMzLgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IHRyYW5zYWN0aW9uKGNvbnN0IFZlY3RvcjxpbnQ2
NF90PiYsIHVuc2lnbmVkIHNob3J0IG1vZGUpIHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVUcmFuc2FjdGlv
bihpbnQ2NF90LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mLCB1bnNpZ25lZCBzaG9ydCBtb2RlKSB7
IHJldHVybiAwOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoUGFzc1JlZlB0cjxJREJEYXRh
YmFzZUNhbGxiYWNrcz4pCiAgICAgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175466</attachid>
            <date>2012-11-21 09:46:39 -0800</date>
            <delta_ts>2012-11-26 15:52:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102730-20121121094427.patch</filename>
            <type>text/plain</type>
            <size>18497</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MzgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzQwYTUzNjU2YjAxOTkw
YWIxMzM5ZGE3NGJlYWU1ZmEzNzIxMDM1Mi4uNzRmZTEyMTU0OGZjNDk3Nzc2NWIzMGMxNzc2YmM1
N2U3ZWNiYzU4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTExLTE5ICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IHN0
dWIgb3V0IElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6Y3JlYXRlVHJhbnNhY3Rpb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjczMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0dWIgb3V0IGFu
ZCBzdXBwb3J0IHBhc3NpbmcgYSBzdHJpbmctYmFzZWQgdHJhbnNhY3Rpb24gaWQKKyAgICAgICAg
c28gdGhlIGZyb250ZW5kIGNhbiByZWZlciB0byB0cmFuc2FjdGlvbnMgYnkgaWQgcmF0aGVyIHRo
YW4KKyAgICAgICAgYSBwcm94eSBvYmplY3Qgb3IgYSBkaXJlY3QgcG9pbnRlciByZWZlcmVuY2Uu
IFRoaXMgd2lsbCB1bHRpbWF0ZWx5CisgICAgICAgIGxvb3NlbiBvd25lcnNoaXAgYW5kIGxpZmV0
aW1lIG9mIHRyYW5zYWN0aW9ucyBmcm9tIHRoZSBmcm9udGVuZAorICAgICAgICBhbmQgYmFja2Vu
ZC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHRoaXMgaXMganVzdCBwYXJ0IG9mIGEgcmVmYWN0
b3IuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHA6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6
OnRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6
OmNyZWF0ZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZUJhY2tlbmRJbXBsLmg6CisgICAgICAgIChJREJEYXRhYmFzZUJhY2tlbmRJbXBsKToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaDoK
KyAgICAgICAgKElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZSk6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbDo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbCk6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5o
OgorICAgICAgICAoSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbCk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjppZCk6CisKIDIwMTItMTEtMjEgIEhhcmFsZCBB
bHZlc3RyYW5kICA8aHRhQGdvb2dsZS5jb20+CiAKICAgICAgICAgV2ViTWVkaWFTdHJlYW1Db21w
b25lbnQ6IEFkZCBhc3NpZ25tZW50IGFuZCBjb3B5IG9wZXJhdG9ycwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwppbmRleCA3ZDgzZWVkMGViZDk2NmFjZTA5MGE3M2EwYmU4ZjJmNGNiYTEyMzE0Li5k
YTA0ZWFkOTBiYjBjZGViMTg1ZDhhZWNmOGYwOTk4NGRhYjg2N2VlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTExLTE5ICBBbGVjIEZsZXR0ICA8YWxl
Y2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IHN0dWIgb3V0IElEQkRh
dGFiYXNlQmFja2VuZEludGVyZmFjZTo6Y3JlYXRlVHJhbnNhY3Rpb24KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjczMAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBuZXcgY3Jl
YXRlVHJhbnNhY3Rpb24oKSBtZXRob2QgaW4gYm90aCBzaWRlcworICAgICAgICBvZiB0aGUgV2Vi
S2l0IEFQSS4KKworICAgICAgICAqIHB1YmxpYy9XZWJJREJEYXRhYmFzZS5oOgorICAgICAgICAo
V2ViSURCRGF0YWJhc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZTo6Y3JlYXRl
VHJhbnNhY3Rpb24pOgorICAgICAgICAqIHNyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpJREJEYXRhYmFzZUJhY2tlbmRQ
cm94eTo6Y3JlYXRlVHJhbnNhY3Rpb24pOgorICAgICAgICAqIHNyYy9JREJEYXRhYmFzZUJhY2tl
bmRQcm94eS5oOgorICAgICAgICAoSURCRGF0YWJhc2VCYWNrZW5kUHJveHkpOgorICAgICAgICAq
IHNyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRh
YmFzZUltcGw6OmNyZWF0ZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
ICogc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oOgorICAgICAgICAoV2ViSURCRGF0YWJhc2VJbXBs
KToKKwogMjAxMi0xMS0yMCAgUmFjaGVsIEJsdW0gIDxncm9ieUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgW0Nocm9taXVtXSBOZWVkIHNwZWxsY2hlY2sgc3VnZ2VzdGlvbnMgZXZlbiBpZiBjb250
aW51b3VzIGNoZWNrIGlzIG9mZi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkRhdGFiYXNlLmNwcAppbmRleCBlNWVhNDFlMGE2MzAzNzBmMGQ4NmMzZTVmZDQxZTcy
NmM3MmY2OGIxLi43ZjFjOTU1NTFlNjBjZmYyMmZmNDQ2OWE0N2I1ZmE2YTFlMjQxZWFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCkBA
IC0zNiw3ICszNiw2IEBACiAjaW5jbHVkZSAiSURCRGF0YWJhc2VFcnJvci5oIgogI2luY2x1ZGUg
IklEQkRhdGFiYXNlRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiSURCRXZlbnREaXNwYXRjaGVyLmgi
Ci0jaW5jbHVkZSAiSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJJREJJ
bmRleC5oIgogI2luY2x1ZGUgIklEQktleVBhdGguaCIKICNpbmNsdWRlICJJREJPYmplY3RTdG9y
ZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0
YWJhc2VCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcAppbmRleCAwZGM4MDIxMDk4ZmVhMzhkNTFkOGI5Yjlh
NzQ2NTVmNjU2ZGZlNmE2Li5lYWY3MTA2NTQ5YmJiYjIxNjZjMjZiYWViYzE2ODYzOWNjZWVjOTQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZUJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcApAQCAtNDIyLDkgKzQyMiwxNSBAQCB2b2lkIElEQkRh
dGFiYXNlQmFja2VuZEltcGw6OnByb2Nlc3NQZW5kaW5nQ2FsbHMoKQogICAgIH0KIH0KIAorLy8g
RklYTUU6IFJlbW92ZSB0aGlzIGFzIHBhcnQgb2YgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwMjczMy4KIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlPiBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjp0cmFuc2FjdGlvbihjb25zdCBWZWN0b3I8
aW50NjRfdD4mIG9iamVjdFN0b3JlSWRzLCB1bnNpZ25lZCBzaG9ydCBtb2RlKQogewotICAgIFJl
ZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsPiB0cmFuc2FjdGlvbiA9IElEQlRyYW5zYWN0
aW9uQmFja2VuZEltcGw6OmNyZWF0ZShvYmplY3RTdG9yZUlkcywgbW9kZSwgdGhpcyk7CisgICAg
cmV0dXJuIGNyZWF0ZVRyYW5zYWN0aW9uKCIiLCBvYmplY3RTdG9yZUlkcywgbW9kZSk7Cit9CisK
K1Bhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBJREJEYXRhYmFzZUJh
Y2tlbmRJbXBsOjpjcmVhdGVUcmFuc2FjdGlvbihjb25zdCBTdHJpbmcmIHRyYW5zYWN0aW9uSWQs
IGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJZHMsIHVuc2lnbmVkIHNob3J0IG1v
ZGUpCit7CisgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw+IHRyYW5zYWN0aW9u
ID0gSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbDo6Y3JlYXRlKHRyYW5zYWN0aW9uSWQsIG9iamVj
dFN0b3JlSWRzLCBtb2RlLCB0aGlzKTsKICAgICBtX3RyYW5zYWN0aW9ucy5hZGQodHJhbnNhY3Rp
b24uZ2V0KCkpOwogICAgIHJldHVybiB0cmFuc2FjdGlvbi5yZWxlYXNlKCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJ
bXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tl
bmRJbXBsLmgKaW5kZXggZjBmNDkzOGQxN2JlYWQ4Y2QxZDQyNTRhMDc5OGI2ZDZkZTM2YjE0Zi4u
MjljYTEyZWFhZDQwMWZlNjQ5M2RjMWE1NDAyMGFjM2VkNGE1NmM2ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZElt
cGwuaApAQCAtNjQsNyArNjQsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPElE
Qk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZT4gY3JlYXRlT2JqZWN0U3RvcmUoaW50NjRfdCBp
ZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVt
ZW50LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJik7CiAg
ICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGludDY0X3QsIElEQlRyYW5zYWN0aW9u
QmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
VmVyc2lvbihjb25zdCBTdHJpbmcmIHZlcnNpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwg
UGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4sIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICAv
LyBGSVhNRTogUmVtb3ZlIHRoaXMgYXMgcGFydCBvZiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTAyNzMzLgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbnRlcmZhY2U+IHRyYW5zYWN0aW9uKGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYs
IHVuc2lnbmVkIHNob3J0KTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25C
YWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVUcmFuc2FjdGlvbihjb25zdCBTdHJpbmcmIHRyYW5zYWN0
aW9uSWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgc2NvcGUsIHVuc2lnbmVkIHNob3J0IG1vZGUp
OwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZShQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tz
Pik7CiAKICAgICBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw+IG9iamVjdFN0
b3JlKGludDY0X3QgaWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaAppbmRleCA5YWFiNTY0
NGJhNDg2M2MwN2E2N2U0MWQ5MDdmNDFkMWQxOGU0ODM1Li41MjJlNjY4MDI5M2Q1YzZkOGEzZTA1
YzY4NDdhZDZhNzk3MjYyMmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaApAQCAtNTYs
NyArNTYsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3Jl
QmFja2VuZEludGVyZmFjZT4gY3JlYXRlT2JqZWN0U3RvcmUoaW50NjRfdCwgY29uc3QgU3RyaW5n
JiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50LCBJREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJikgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBkZWxldGVPYmplY3RTdG9yZShpbnQ2NF90LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRl
cmZhY2UqLCBFeGNlcHRpb25Db2RlJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWZXJzaW9u
KGNvbnN0IFN0cmluZyYgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVm
UHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgRXhjZXB0aW9uQ29kZSYpID0gMDsKKyAgICAvLyBG
SVhNRTogUmVtb3ZlIHRoaXMgYXMgcGFydCBvZiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTAyNzMzLgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2U+IHRyYW5zYWN0aW9uKGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2Jq
ZWN0U3RvcmVJZHMsIHVuc2lnbmVkIHNob3J0IG1vZGUpID0gMDsKKyAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVUcmFuc2FjdGlvbihj
b25zdCBTdHJpbmcmIHRyYW5zYWN0aW9uSWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgc2NvcGUs
IHVuc2lnbmVkIHNob3J0IG1vZGUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoUGFzc1Jl
ZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4pID0gMDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5k
SW1wbC5jcHAKaW5kZXggNTA1NDNkNWU4MTk5ZWYwNjE1ZjZhOGRmZWM1OWI3OGI3MTQ0YmZiZS4u
Yjc2Y2I4MWFlNGUzNDQ3ZWNiOWE2ZWQ0YTg1MjQ3YmQ2ZGQxYzc5NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25C
YWNrZW5kSW1wbC5jcHAKQEAgLTM5LDEzICszOSwxNCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLVBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4gSURCVHJhbnNhY3Rpb25C
YWNrZW5kSW1wbDo6Y3JlYXRlKGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJZHMs
IHVuc2lnbmVkIHNob3J0IG1vZGUsIElEQkRhdGFiYXNlQmFja2VuZEltcGwqIGRhdGFiYXNlKQor
UGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsPiBJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbXBsOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBpZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBv
YmplY3RTdG9yZUlkcywgdW5zaWduZWQgc2hvcnQgbW9kZSwgSURCRGF0YWJhc2VCYWNrZW5kSW1w
bCogZGF0YWJhc2UpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJUcmFuc2FjdGlvbkJh
Y2tlbmRJbXBsKG9iamVjdFN0b3JlSWRzLCBtb2RlLCBkYXRhYmFzZSkpOworICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbChpZCwgb2JqZWN0U3RvcmVJZHMs
IG1vZGUsIGRhdGFiYXNlKSk7CiB9CiAKLUlEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw6OklEQlRy
YW5zYWN0aW9uQmFja2VuZEltcGwoY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlk
cywgdW5zaWduZWQgc2hvcnQgbW9kZSwgSURCRGF0YWJhc2VCYWNrZW5kSW1wbCogZGF0YWJhc2Up
Ci0gICAgOiBtX29iamVjdFN0b3JlSWRzKG9iamVjdFN0b3JlSWRzKQorSURCVHJhbnNhY3Rpb25C
YWNrZW5kSW1wbDo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbChjb25zdCBTdHJpbmcmIGlkLCBj
b25zdCBWZWN0b3I8aW50NjRfdD4mIG9iamVjdFN0b3JlSWRzLCB1bnNpZ25lZCBzaG9ydCBtb2Rl
LCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsKiBkYXRhYmFzZSkKKyAgICA6IG1faWQoaWQpCisgICAg
LCBtX29iamVjdFN0b3JlSWRzKG9iamVjdFN0b3JlSWRzKQogICAgICwgbV9tb2RlKG1vZGUpCiAg
ICAgLCBtX3N0YXRlKFVudXNlZCkKICAgICAsIG1fZGF0YWJhc2UoZGF0YWJhc2UpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tl
bmRJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlv
bkJhY2tlbmRJbXBsLmgKaW5kZXggODAzZWQwNzRhYmJhOTJjYjA3NjUwNWJiMGRjNzhmMjk4Zjlk
MTljYS4uODFiMTVlZWI5NjU2MzkwMGYwZGQ2YTgwZGY5MDQ5OTlmODg3MGVkNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5k
SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0
aW9uQmFja2VuZEltcGwuaApAQCAtNDQsNyArNDQsNyBAQCBjbGFzcyBJREJEYXRhYmFzZUJhY2tl
bmRJbXBsOwogCiBjbGFzcyBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsIDogcHVibGljIElEQlRy
YW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4gY3JlYXRlKGNvbnN0IFZlY3RvcjxpbnQ2NF90
PiYsIHVuc2lnbmVkIHNob3J0IG1vZGUsIElEQkRhdGFiYXNlQmFja2VuZEltcGwqKTsKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsPiBjcmVhdGUoY29uc3Qg
U3RyaW5nJiB0cmFuc2FjdGlvbklkLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mLCB1bnNpZ25lZCBz
aG9ydCBtb2RlLCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsKik7CiAgICAgc3RhdGljIElEQlRyYW5z
YWN0aW9uQmFja2VuZEltcGwqIGZyb20oSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiBp
bnRlcmZhY2UpCiAgICAgewogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SURCVHJhbnNhY3Rp
b25CYWNrZW5kSW1wbCo+KGludGVyZmFjZSk7CkBAIC02OCw5ICs2OCwxMCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBhZGRQcmVlbXB0aXZlRXZlbnQoKSB7IG1fcGVuZGluZ1ByZWVtcHRpdmVFdmVudHMr
KzsgfQogICAgIHZvaWQgZGlkQ29tcGxldGVQcmVlbXB0aXZlRXZlbnQoKSB7IG1fcGVuZGluZ1By
ZWVtcHRpdmVFdmVudHMtLTsgQVNTRVJUKG1fcGVuZGluZ1ByZWVtcHRpdmVFdmVudHMgPj0gMCk7
IH0KICAgICBJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uKiBiYWNraW5nU3RvcmVUcmFuc2Fj
dGlvbigpIHsgcmV0dXJuICZtX3RyYW5zYWN0aW9uOyB9CisgICAgY29uc3QgU3RyaW5nJiBpZCgp
IGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KIAogcHJpdmF0ZToKLSAgICBJREJUcmFuc2FjdGlvbkJh
Y2tlbmRJbXBsKGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJZHMsIHVuc2lnbmVk
IHNob3J0IG1vZGUsIElEQkRhdGFiYXNlQmFja2VuZEltcGwqKTsKKyAgICBJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbXBsKGNvbnN0IFN0cmluZyYgaWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2Jq
ZWN0U3RvcmVJZHMsIHVuc2lnbmVkIHNob3J0IG1vZGUsIElEQkRhdGFiYXNlQmFja2VuZEltcGwq
KTsKIAogICAgIGVudW0gU3RhdGUgewogICAgICAgICBVbnVzZWQsIC8vIENyZWF0ZWQsIGJ1dCBu
byB0YXNrcyB5ZXQuCkBAIC04OSw2ICs5MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB0YXNrRXZl
bnRUaW1lckZpcmVkKFRpbWVyPElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw+Kik7CiAgICAgdm9p
ZCBjbG9zZU9wZW5DdXJzb3JzKCk7CiAKKyAgICBjb25zdCBTdHJpbmcgbV9pZDsKICAgICBjb25z
dCBWZWN0b3I8aW50NjRfdD4gbV9vYmplY3RTdG9yZUlkczsKICAgICBjb25zdCB1bnNpZ25lZCBz
aG9ydCBtX21vZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYklEQkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJE
YXRhYmFzZS5oCmluZGV4IGI5Mjc5OTAzOTBmNzllYmI3OGU5Y2M5MTg3NGIzNmI2NThiMDBhMDUu
LmM5YmQyZjUwYjQ0NTY3NzkxZGNlYTJjOGQ3ZmRiNjdlMGNlODFjMjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlLmgKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2UuaApAQCAtNTcsMTIgKzU3LDE1
IEBAIHB1YmxpYzoKICAgICB9CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGxv
bmcgbG9uZyBvYmplY3RTdG9yZUlkLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rp
b24sIFdlYkV4Y2VwdGlvbkNvZGUmIGVjKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsg
fQogICAgIHZpcnR1YWwgdm9pZCBzZXRWZXJzaW9uKGNvbnN0IFdlYlN0cmluZyYgdmVyc2lvbiwg
V2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIFdlYkV4Y2VwdGlvbkNvZGUmKSB7IFdFQktJVF9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBhcyBwYXJ0
IG9mIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDI3MzMuCiAgICAg
Ly8gVHJhbnNmZXJzIG93bmVyc2hpcCBvZiB0aGUgV2ViSURCVHJhbnNhY3Rpb24gdG8gdGhlIGNh
bGxlci4KICAgICB2aXJ0dWFsIFdlYklEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbihjb25zdCBX
ZWJWZWN0b3I8bG9uZyBsb25nPiYsIHVuc2lnbmVkIHNob3J0IG1vZGUpCiAgICAgewogICAgICAg
ICBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0K
KyAgICAvLyBUcmFuc2ZlcnMgb3duZXJzaGlwIG9mIHRoZSBXZWJJREJUcmFuc2FjdGlvbiB0byB0
aGUgY2FsbGVyLgorICAgIHZpcnR1YWwgV2ViSURCVHJhbnNhY3Rpb24qIGNyZWF0ZVRyYW5zYWN0
aW9uKGNvbnN0IFdlYlN0cmluZyYgaWQsIGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiwgdW5z
aWduZWQgc2hvcnQgbW9kZSkgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiAw
OyB9CiAgICAgdmlydHVhbCB2b2lkIGNsb3NlKCkgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVE
KCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZm9yY2VDbG9zZSgpIHsgV0VCS0lUX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lE
QkRhdGFiYXNlQmFja2VuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lE
QkRhdGFiYXNlQmFja2VuZFByb3h5LmNwcAppbmRleCAwYmM5NTQ2NmQ4YjMwNWRhOWFmNDc1MzIw
NWUxYzI0ZmY2ZmRhOTExLi5lMzJiOGM4NWYwOGM2NzBjY2UyODZmMzQ1ZWIyZDk0MjkyZmRhNjMz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJhY2tl
bmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VC
YWNrZW5kUHJveHkuY3BwCkBAIC05MSw2ICs5MSw3IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5k
UHJveHk6OnNldFZlcnNpb24oY29uc3QgU3RyaW5nJiB2ZXJzaW9uLCBQYXNzUmVmUHRyPElEQkNh
CiAgICAgbV93ZWJJREJEYXRhYmFzZS0+c2V0VmVyc2lvbih2ZXJzaW9uLCBuZXcgV2ViSURCQ2Fs
bGJhY2tzSW1wbChjYWxsYmFja3MpLCBlYyk7CiB9CiAKKy8vIEZJWE1FOiBSZW1vdmUgdGhpcyBh
cyBwYXJ0IG9mIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDI3MzMu
CiBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gSURCRGF0YWJhc2VC
YWNrZW5kUHJveHk6OnRyYW5zYWN0aW9uKGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2JqZWN0U3Rv
cmVJZHMsIHVuc2lnbmVkIHNob3J0IG1vZGUpCiB7CiAgICAgT3duUHRyPFdlYklEQlRyYW5zYWN0
aW9uPiB0cmFuc2FjdGlvbiA9IGFkb3B0UHRyKG1fd2ViSURCRGF0YWJhc2UtPnRyYW5zYWN0aW9u
KG9iamVjdFN0b3JlSWRzLCBtb2RlKSk7CkBAIC0xMDAsNiArMTAxLDE1IEBAIFBhc3NSZWZQdHI8
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6
dHJhbnNhY3Rpb24oCiAgICAgcmV0dXJuIElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5OjpjcmVh
dGUodHJhbnNhY3Rpb24ucmVsZWFzZSgpKTsKIH0KIAorUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2U+IElEQkRhdGFiYXNlQmFja2VuZFByb3h5OjpjcmVhdGVUcmFuc2Fj
dGlvbihjb25zdCBTdHJpbmcmIGlkLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9iamVjdFN0b3Jl
SWRzLCB1bnNpZ25lZCBzaG9ydCBtb2RlKQoreworICAgIE93blB0cjxXZWJJREJUcmFuc2FjdGlv
bj4gdHJhbnNhY3Rpb24gPSBhZG9wdFB0cihtX3dlYklEQkRhdGFiYXNlLT5jcmVhdGVUcmFuc2Fj
dGlvbihpZCwgb2JqZWN0U3RvcmVJZHMsIG1vZGUpKTsKKyAgICBpZiAoIXRyYW5zYWN0aW9uKQor
ICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94
eTo6Y3JlYXRlKHRyYW5zYWN0aW9uLnJlbGVhc2UoKSk7Cit9CisKIHZvaWQgSURCRGF0YWJhc2VC
YWNrZW5kUHJveHk6OmNsb3NlKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+KQogewog
ICAgIG1fd2ViSURCRGF0YWJhc2UtPmNsb3NlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5oIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuaAppbmRleCBhYThmZGYwYzllZjcx
YTg4Nzk2OWNjM2JkYTJmNWU5OTA4ZjIyM2EzLi5iZWQ1MWI2MDZiMWI0YmQyMzg4ZjJiMWYxM2Ni
MGFkYzQ2Zjc3YTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJE
YXRhYmFzZUJhY2tlbmRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lE
QkRhdGFiYXNlQmFja2VuZFByb3h5LmgKQEAgLTQ3LDcgKzQ3LDkgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U+
IGNyZWF0ZU9iamVjdFN0b3JlKGludDY0X3QsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgV2Vi
Q29yZTo6SURCS2V5UGF0aCYsIGJvb2wgYXV0b0luY3JlbWVudCwgV2ViQ29yZTo6SURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSYpOwogICAgIHZp
cnR1YWwgdm9pZCBkZWxldGVPYmplY3RTdG9yZShpbnQ2NF90LCBXZWJDb3JlOjpJREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBXZWJDb3JlOjpFeGNlcHRpb25Db2RlJik7CiAgICAgdmly
dHVhbCB2b2lkIHNldFZlcnNpb24oY29uc3QgU3RyaW5nJiB2ZXJzaW9uLCBQYXNzUmVmUHRyPFdl
YkNvcmU6OklEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VDYWxs
YmFja3M+LCBXZWJDb3JlOjpFeGNlcHRpb25Db2RlJik7CisgICAgLy8gRklYTUU6IFJlbW92ZSB0
aGlzIGFzIHBhcnQgb2YgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
MjczMy4KICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW50ZXJmYWNlPiB0cmFuc2FjdGlvbihjb25zdCBWZWN0b3I8aW50NjRfdD4mLCB1bnNpZ25l
ZCBzaG9ydCBtb2RlKTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVUcmFuc2FjdGlvbihjb25zdCBTdHJpbmcmLCBj
b25zdCBWZWN0b3I8aW50NjRfdD4mLCB1bnNpZ25lZCBzaG9ydCBtb2RlKTsKICAgICB2aXJ0dWFs
IHZvaWQgY2xvc2UoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUNhbGxiYWNrcz4pOwog
CiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURC
RGF0YWJhc2VJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFi
YXNlSW1wbC5jcHAKaW5kZXggNTlhYmQ1MzI5MjgwMWYzMDQ5M2RiZDBjNDdmNmUwMGQzNjBiZGQ0
MS4uNWEwMzMyZmM1NjE3ZTEwMGFiNWEzMTc1NTljZGMzOWZhMzkzZGIyNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwCkBAIC04MCw2
ICs4MCwxOCBAQCB2b2lkIFdlYklEQkRhdGFiYXNlSW1wbDo6c2V0VmVyc2lvbihjb25zdCBXZWJT
dHJpbmcmIHZlcnNpb24sIFdlYklEQkNhbGxiYWNrcyogYwogICAgIG1fZGF0YWJhc2VCYWNrZW5k
LT5zZXRWZXJzaW9uKHZlcnNpb24sIElEQkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoYWRvcHRQdHIo
Y2FsbGJhY2tzKSksIG1fZGF0YWJhc2VDYWxsYmFja3MsIGVjKTsKIH0KIAorV2ViSURCVHJhbnNh
Y3Rpb24qIFdlYklEQkRhdGFiYXNlSW1wbDo6Y3JlYXRlVHJhbnNhY3Rpb24oY29uc3QgV2ViU3Ry
aW5nJiBpZCwgY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mIG9iamVjdFN0b3JlSWRzLCB1bnNp
Z25lZCBzaG9ydCBtb2RlKQoreworICAgIFZlY3RvcjxpbnQ2NF90PiBvYmplY3RTdG9yZUlkTGlz
dChvYmplY3RTdG9yZUlkcy5zaXplKCkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb2Jq
ZWN0U3RvcmVJZHMuc2l6ZSgpOyArK2kpCisgICAgICAgIG9iamVjdFN0b3JlSWRMaXN0W2ldID0g
b2JqZWN0U3RvcmVJZHNbaV07CisgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVy
ZmFjZT4gdHJhbnNhY3Rpb24gPSBtX2RhdGFiYXNlQmFja2VuZC0+Y3JlYXRlVHJhbnNhY3Rpb24o
aWQsIG9iamVjdFN0b3JlSWRMaXN0LCBtb2RlKTsKKyAgICBpZiAoIXRyYW5zYWN0aW9uKQorICAg
ICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbmV3IFdlYklEQlRyYW5zYWN0aW9uSW1wbCh0cmFu
c2FjdGlvbik7Cit9CisKKy8vIEZJWE1FOiBSZW1vdmUgdGhpcyBhcyBwYXJ0IG9mIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDI3MzMuCiBXZWJJREJUcmFuc2FjdGlv
biogV2ViSURCRGF0YWJhc2VJbXBsOjp0cmFuc2FjdGlvbihjb25zdCBXZWJWZWN0b3I8bG9uZyBs
b25nPiYgb2JqZWN0U3RvcmVJZHMsIHVuc2lnbmVkIHNob3J0IG1vZGUpCiB7CiAgICAgVmVjdG9y
PGludDY0X3Q+IG9iamVjdFN0b3JlSWRMaXN0KG9iamVjdFN0b3JlSWRzLnNpemUoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oCmluZGV4IGU3
Mjg3NDJjNjQ3NDg0MTI2Y2YzZWE3ZGQ5NTZlZGZmMzJjNzI4MGYuLjFiMjViNWNlMzI2OGU1NTQx
MmRiZTdhYzM1YTZkMTZjM2Y4MDdkZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oCkBAIC01NSw3ICs1NSw5IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIFdlYklEQk9iamVjdFN0b3JlKiBjcmVhdGVPYmplY3RTdG9yZShsb25nIGxvbmcsIGNv
bnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3QgV2ViSURCS2V5UGF0aCYsIGJvb2wgYXV0b0luY3Jl
bWVudCwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJik7CiAgICAg
dmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBj
b25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0VmVyc2lvbihjb25zdCBXZWJTdHJpbmcmIHZlcnNpb24sIFdlYklEQkNhbGxiYWNr
cyosIFdlYkV4Y2VwdGlvbkNvZGUmKTsKKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgYXMgcGFy
dCBvZiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyNzMzLgogICAg
IHZpcnR1YWwgV2ViSURCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uKGNvbnN0IFdlYlZlY3Rvcjxs
b25nIGxvbmc+JiBuYW1lcywgdW5zaWduZWQgc2hvcnQgbW9kZSk7CisgICAgdmlydHVhbCBXZWJJ
REJUcmFuc2FjdGlvbiogY3JlYXRlVHJhbnNhY3Rpb24oY29uc3QgV2ViU3RyaW5nJiBpZCwgY29u
c3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mLCB1bnNpZ25lZCBzaG9ydCBtb2RlKTsKICAgICB2aXJ0
dWFsIHZvaWQgZm9yY2VDbG9zZSgpOwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRl
c3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRU
ZXN0LmNwcAppbmRleCBlOTdiYzdmNmRmOWE0MThjZmY2NTYwZDJjMTIzNGViYzFkM2E2ODQ4Li4z
NjcyY2FhMWZkYmYzOGQ5YjZiYzA4YzdmNzkzODdiZGJiMjA2ZGI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAK
QEAgLTE1NCw4ICsxNTQsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVj
dFN0b3JlKGNvbnN0IFN0cmluZyYgbmFtZSwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNl
KiwgRXhjZXB0aW9uQ29kZSYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVPYmplY3RTdG9y
ZShpbnQ2NF90LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2Rl
JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFZlcnNpb24oY29uc3QgU3RyaW5nJiB2ZXJzaW9u
LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFj
a3M+LCBFeGNlcHRpb25Db2RlJikgeyB9Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQlRyYW5z
YWN0aW9uQmFja2VuZEludGVyZmFjZT4gdHJhbnNhY3Rpb24oRE9NU3RyaW5nTGlzdCogc3RvcmVO
YW1lcywgdW5zaWduZWQgc2hvcnQgbW9kZSwgRXhjZXB0aW9uQ29kZSYpIHsgcmV0dXJuIDA7IH0K
KyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgYXMgcGFydCBvZiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyNzMzLgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IHRyYW5zYWN0aW9uKGNvbnN0IFZlY3RvcjxpbnQ2
NF90PiYsIHVuc2lnbmVkIHNob3J0IG1vZGUpIHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVUcmFuc2FjdGlv
bihjb25zdCBTdHJpbmcmLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mLCB1bnNpZ25lZCBzaG9ydCBt
b2RlKSB7IHJldHVybiAwOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoUGFzc1JlZlB0cjxJ
REJEYXRhYmFzZUNhbGxiYWNrcz4pCiAgICAgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176099</attachid>
            <date>2012-11-26 15:52:39 -0800</date>
            <delta_ts>2012-11-27 05:35:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102730-20121126155017.patch</filename>
            <type>text/plain</type>
            <size>18425</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NzIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGM5MmVmNDJkYTJhNDA2
ZDg3MmE5YTBjMzdiYjgxYWVlNDNmOWQ1NS4uYzBkZTRjNjY2NzVhNjc3MTM3YWU3NzdjYTNjMDNk
NjBmMzVkMjQzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTExLTE5ICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IHN0
dWIgb3V0IElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6Y3JlYXRlVHJhbnNhY3Rpb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjczMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0dWIgb3V0IGFu
ZCBzdXBwb3J0IHBhc3NpbmcgYSA2NC1iaXQgdHJhbnNhY3Rpb24gaWQKKyAgICAgICAgc28gdGhl
IGZyb250ZW5kIGNhbiByZWZlciB0byB0cmFuc2FjdGlvbnMgYnkgaWQgcmF0aGVyIHRoYW4KKyAg
ICAgICAgYSBwcm94eSBvYmplY3Qgb3IgYSBkaXJlY3QgcG9pbnRlciByZWZlcmVuY2UuIFRoaXMg
d2lsbCB1bHRpbWF0ZWx5CisgICAgICAgIGxvb3NlbiBvd25lcnNoaXAgYW5kIGxpZmV0aW1lIG9m
IHRyYW5zYWN0aW9ucyBmcm9tIHRoZSBmcm9udGVuZAorICAgICAgICBhbmQgYmFja2VuZC4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMsIHRoaXMgaXMganVzdCBwYXJ0IG9mIGEgcmVmYWN0b3IuCisK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHA6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6OnRyYW5z
YWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6OmNyZWF0
ZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJh
Y2tlbmRJbXBsLmg6CisgICAgICAgIChJREJEYXRhYmFzZUJhY2tlbmRJbXBsKToKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaDoKKyAgICAg
ICAgKElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SURC
VHJhbnNhY3Rpb25CYWNrZW5kSW1wbDo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbCk6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5oOgorICAg
ICAgICAoSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbXBsOjppZCk6CisKIDIwMTItMTEtMjYgIFl1cnkgU2VtaWtoYXRz
a3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gRml4IFF0IG1p
bmltYWwgY29tcGlsYXRpb24gYWZ0ZXIgcjEzNTcxMy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
aW5kZXggM2ViZDk3Y2Q1OThlOWQ4YmFjMjFhNjg2ZjVkYTc2MjhlOGRhMThhOS4uYjI2NjliOGI1
ODdmYjZhZmYwZjUyNmZmNmEwNDY1MzA1ZjNmNTYxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMi0xMS0xOSAgQWxlYyBGbGV0dCAgPGFsZWNmbGV0dEBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBzdHViIG91dCBJREJEYXRhYmFzZUJh
Y2tlbmRJbnRlcmZhY2U6OmNyZWF0ZVRyYW5zYWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDI3MzAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgbmV3IGNyZWF0ZVRyYW5z
YWN0aW9uKCkgbWV0aG9kIGluIGJvdGggc2lkZXMKKyAgICAgICAgb2YgdGhlIFdlYktpdCBBUEku
CisKKyAgICAgICAgKiBwdWJsaWMvV2ViSURCRGF0YWJhc2UuaDoKKyAgICAgICAgKFdlYklEQkRh
dGFiYXNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCRGF0YWJhc2U6OmNyZWF0ZVRyYW5zYWN0
aW9uKToKKyAgICAgICAgKiBzcmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6SURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OmNy
ZWF0ZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKiBzcmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHku
aDoKKyAgICAgICAgKElEQkRhdGFiYXNlQmFja2VuZFByb3h5KToKKyAgICAgICAgKiBzcmMvV2Vi
SURCRGF0YWJhc2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCRGF0YWJhc2VJbXBs
OjpjcmVhdGVUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9X
ZWJJREJEYXRhYmFzZUltcGwuaDoKKyAgICAgICAgKFdlYklEQkRhdGFiYXNlSW1wbCk6CisKIDIw
MTItMTEtMjYgIFNjb3R0IFZpb2xldCAgPHNreUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2No
cm9taXVtXSBNYWtlIHVzZV9kZWZhdWx0X3JlbmRlcl90aGVtZSBjb21waWxlIHRoZSByaWdodCBz
ZXQgb2YgZmlsZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlLmNwcAppbmRleCBlNWVhNDFlMGE2MzAzNzBmMGQ4NmMzZTVmZDQxZTcyNmM3MmY2OGIx
Li43ZjFjOTU1NTFlNjBjZmYyMmZmNDQ2OWE0N2I1ZmE2YTFlMjQxZWFmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCkBAIC0zNiw3ICsz
Niw2IEBACiAjaW5jbHVkZSAiSURCRGF0YWJhc2VFcnJvci5oIgogI2luY2x1ZGUgIklEQkRhdGFi
YXNlRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiSURCRXZlbnREaXNwYXRjaGVyLmgiCi0jaW5jbHVk
ZSAiSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJJREJJbmRleC5oIgog
I2luY2x1ZGUgIklEQktleVBhdGguaCIKICNpbmNsdWRlICJJREJPYmplY3RTdG9yZS5oIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNr
ZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZUJhY2tlbmRJbXBsLmNwcAppbmRleCAwZGM4MDIxMDk4ZmVhMzhkNTFkOGI5YjlhNzQ2NTVmNjU2
ZGZlNmE2Li5mYzZkYTVlNGNhYjM3NTc4Y2QwMmM4NmNiOGM5NDgxNzM1YTY1NzgxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZUJhY2tlbmRJbXBsLmNwcApAQCAtNDIyLDkgKzQyMiwxNSBAQCB2b2lkIElEQkRhdGFiYXNlQmFj
a2VuZEltcGw6OnByb2Nlc3NQZW5kaW5nQ2FsbHMoKQogICAgIH0KIH0KIAorLy8gRklYTUU6IFJl
bW92ZSB0aGlzIGFzIHBhcnQgb2YgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwMjczMy4KIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBJ
REJEYXRhYmFzZUJhY2tlbmRJbXBsOjp0cmFuc2FjdGlvbihjb25zdCBWZWN0b3I8aW50NjRfdD4m
IG9iamVjdFN0b3JlSWRzLCB1bnNpZ25lZCBzaG9ydCBtb2RlKQogewotICAgIFJlZlB0cjxJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbXBsPiB0cmFuc2FjdGlvbiA9IElEQlRyYW5zYWN0aW9uQmFja2Vu
ZEltcGw6OmNyZWF0ZShvYmplY3RTdG9yZUlkcywgbW9kZSwgdGhpcyk7CisgICAgcmV0dXJuIGNy
ZWF0ZVRyYW5zYWN0aW9uKDAsIG9iamVjdFN0b3JlSWRzLCBtb2RlKTsKK30KKworUGFzc1JlZlB0
cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IElEQkRhdGFiYXNlQmFja2VuZEltcGw6
OmNyZWF0ZVRyYW5zYWN0aW9uKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgY29uc3QgVmVjdG9yPGlu
dDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgdW5zaWduZWQgc2hvcnQgbW9kZSkKK3sKKyAgICBSZWZQ
dHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4gdHJhbnNhY3Rpb24gPSBJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbXBsOjpjcmVhdGUodHJhbnNhY3Rpb25JZCwgb2JqZWN0U3RvcmVJZHMsIG1vZGUs
IHRoaXMpOwogICAgIG1fdHJhbnNhY3Rpb25zLmFkZCh0cmFuc2FjdGlvbi5nZXQoKSk7CiAgICAg
cmV0dXJuIHRyYW5zYWN0aW9uLnJlbGVhc2UoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaAppbmRleCBm
MGY0OTM4ZDE3YmVhZDhjZDFkNDI1NGEwNzk4YjZkNmRlMzZiMTRmLi5hZGI0OWY4YTQ1ZDljNGZk
ODk0OTJkMzRlZmE1ZDJlZTAwMjlhYjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oCkBAIC02NCw3ICs2
NCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNr
ZW5kSW50ZXJmYWNlPiBjcmVhdGVPYmplY3RTdG9yZShpbnQ2NF90IGlkLCBjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IElEQktleVBhdGgmLCBib29sIGF1dG9JbmNyZW1lbnQsIElEQlRyYW5zYWN0
aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGVsZXRlT2JqZWN0U3RvcmUoaW50NjRfdCwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNl
KiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWZXJzaW9uKGNvbnN0IFN0
cmluZyYgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPElEQkRh
dGFiYXNlQ2FsbGJhY2tzPiwgRXhjZXB0aW9uQ29kZSYpOworICAgIC8vIEZJWE1FOiBSZW1vdmUg
dGhpcyBhcyBwYXJ0IG9mIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDI3MzMuCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVy
ZmFjZT4gdHJhbnNhY3Rpb24oY29uc3QgVmVjdG9yPGludDY0X3Q+JiwgdW5zaWduZWQgc2hvcnQp
OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+
IGNyZWF0ZVRyYW5zYWN0aW9uKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgY29uc3QgVmVjdG9yPGlu
dDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgdW5zaWduZWQgc2hvcnQgbW9kZSk7CiAgICAgdmlydHVh
bCB2b2lkIGNsb3NlKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+KTsKIAogICAgIFBh
c3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4gb2JqZWN0U3RvcmUoaW50NjRfdCBp
ZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZUJhY2tlbmRJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZS5oCmluZGV4IDlhYWI1NjQ0YmE0ODYzYzA3YTY3
ZTQxZDkwN2Y0MWQxZDE4ZTQ4MzUuLmViMzU4MmI2ZWY0MDcyNTNhOWQ3M2I3OGYyOTIyYTA1ZTFk
N2I5NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlQmFja2VuZEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZS5oCkBAIC01Niw3ICs1Niw5IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJm
YWNlPiBjcmVhdGVPYmplY3RTdG9yZShpbnQ2NF90LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0
IElEQktleVBhdGgmLCBib29sIGF1dG9JbmNyZW1lbnQsIElEQlRyYW5zYWN0aW9uQmFja2VuZElu
dGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9i
amVjdFN0b3JlKGludDY0X3QsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2Vw
dGlvbkNvZGUmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFZlcnNpb24oY29uc3QgU3RyaW5n
JiB2ZXJzaW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8SURCRGF0YWJh
c2VDYWxsYmFja3M+LCBFeGNlcHRpb25Db2RlJikgPSAwOworICAgIC8vIEZJWE1FOiBSZW1vdmUg
dGhpcyBhcyBwYXJ0IG9mIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDI3MzMuCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVy
ZmFjZT4gdHJhbnNhY3Rpb24oY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywg
dW5zaWduZWQgc2hvcnQgbW9kZSkgPSAwOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZVRyYW5zYWN0aW9uKGludDY0X3QgdHJhbnNh
Y3Rpb25JZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgdW5zaWduZWQg
c2hvcnQgbW9kZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZShQYXNzUmVmUHRyPElEQkRh
dGFiYXNlQ2FsbGJhY2tzPikgPSAwOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmNwcApp
bmRleCA1MDU0M2Q1ZTgxOTllZjA2MTVmNmE4ZGZlYzU5Yjc4YjcxNDRiZmJlLi41YjczNWUyZTgx
ZjllNjNkZGI1NmZmM2ViYWIyNGFlOWMyYTJjYjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBs
LmNwcApAQCAtMzksMTMgKzM5LDE0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1Jl
ZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsPiBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBs
OjpjcmVhdGUoY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgdW5zaWduZWQg
c2hvcnQgbW9kZSwgSURCRGF0YWJhc2VCYWNrZW5kSW1wbCogZGF0YWJhc2UpCitQYXNzUmVmUHRy
PElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw+IElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw6OmNy
ZWF0ZShpbnQ2NF90IGlkLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9iamVjdFN0b3JlSWRzLCB1
bnNpZ25lZCBzaG9ydCBtb2RlLCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsKiBkYXRhYmFzZSkKIHsK
LSAgICByZXR1cm4gYWRvcHRSZWYobmV3IElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwob2JqZWN0
U3RvcmVJZHMsIG1vZGUsIGRhdGFiYXNlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbXBsKGlkLCBvYmplY3RTdG9yZUlkcywgbW9kZSwgZGF0YWJhc2Up
KTsKIH0KIAotSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbDo6SURCVHJhbnNhY3Rpb25CYWNrZW5k
SW1wbChjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9iamVjdFN0b3JlSWRzLCB1bnNpZ25lZCBzaG9y
dCBtb2RlLCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsKiBkYXRhYmFzZSkKLSAgICA6IG1fb2JqZWN0
U3RvcmVJZHMob2JqZWN0U3RvcmVJZHMpCitJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjpJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbXBsKGludDY0X3QgaWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYg
b2JqZWN0U3RvcmVJZHMsIHVuc2lnbmVkIHNob3J0IG1vZGUsIElEQkRhdGFiYXNlQmFja2VuZElt
cGwqIGRhdGFiYXNlKQorICAgIDogbV9pZChpZCkKKyAgICAsIG1fb2JqZWN0U3RvcmVJZHMob2Jq
ZWN0U3RvcmVJZHMpCiAgICAgLCBtX21vZGUobW9kZSkKICAgICAsIG1fc3RhdGUoVW51c2VkKQog
ICAgICwgbV9kYXRhYmFzZShkYXRhYmFzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuaAppbmRleCA4
MDNlZDA3NGFiYmE5MmNiMDc2NTA1YmIwZGM3OGYyOThmOWQxOWNhLi5mNjM0NTcwNzg0MWJiYTcx
NWFhZmM4NGEwM2Q3MjYyNjI2MmZmNDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5oCkBAIC00
NCw3ICs0NCw3IEBAIGNsYXNzIElEQkRhdGFiYXNlQmFja2VuZEltcGw7CiAKIGNsYXNzIElEQlRy
YW5zYWN0aW9uQmFja2VuZEltcGwgOiBwdWJsaWMgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJm
YWNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbXBsPiBjcmVhdGUoY29uc3QgVmVjdG9yPGludDY0X3Q+JiwgdW5zaWduZWQgc2hvcnQgbW9k
ZSwgSURCRGF0YWJhc2VCYWNrZW5kSW1wbCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQlRy
YW5zYWN0aW9uQmFja2VuZEltcGw+IGNyZWF0ZShpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGNvbnN0
IFZlY3RvcjxpbnQ2NF90PiYsIHVuc2lnbmVkIHNob3J0IG1vZGUsIElEQkRhdGFiYXNlQmFja2Vu
ZEltcGwqKTsKICAgICBzdGF0aWMgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbCogZnJvbShJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqIGludGVyZmFjZSkKICAgICB7CiAgICAgICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsKj4oaW50ZXJmYWNlKTsK
QEAgLTY4LDkgKzY4LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFByZWVtcHRpdmVFdmVudCgp
IHsgbV9wZW5kaW5nUHJlZW1wdGl2ZUV2ZW50cysrOyB9CiAgICAgdm9pZCBkaWRDb21wbGV0ZVBy
ZWVtcHRpdmVFdmVudCgpIHsgbV9wZW5kaW5nUHJlZW1wdGl2ZUV2ZW50cy0tOyBBU1NFUlQobV9w
ZW5kaW5nUHJlZW1wdGl2ZUV2ZW50cyA+PSAwKTsgfQogICAgIElEQkJhY2tpbmdTdG9yZTo6VHJh
bnNhY3Rpb24qIGJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKCkgeyByZXR1cm4gJm1fdHJhbnNhY3Rp
b247IH0KKyAgICBpbnQ2NF90IGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQogCiBwcml2YXRl
OgotICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwoY29uc3QgVmVjdG9yPGludDY0X3Q+JiBv
YmplY3RTdG9yZUlkcywgdW5zaWduZWQgc2hvcnQgbW9kZSwgSURCRGF0YWJhc2VCYWNrZW5kSW1w
bCopOworICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwoaW50NjRfdCBpZCwgY29uc3QgVmVj
dG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgdW5zaWduZWQgc2hvcnQgbW9kZSwgSURCRGF0
YWJhc2VCYWNrZW5kSW1wbCopOwogCiAgICAgZW51bSBTdGF0ZSB7CiAgICAgICAgIFVudXNlZCwg
Ly8gQ3JlYXRlZCwgYnV0IG5vIHRhc2tzIHlldC4KQEAgLTg5LDYgKzkwLDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHRhc2tFdmVudFRpbWVyRmlyZWQoVGltZXI8SURCVHJhbnNhY3Rpb25CYWNrZW5k
SW1wbD4qKTsKICAgICB2b2lkIGNsb3NlT3BlbkN1cnNvcnMoKTsKIAorICAgIGNvbnN0IGludDY0
X3QgbV9pZDsKICAgICBjb25zdCBWZWN0b3I8aW50NjRfdD4gbV9vYmplY3RTdG9yZUlkczsKICAg
ICBjb25zdCB1bnNpZ25lZCBzaG9ydCBtX21vZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJJREJEYXRhYmFzZS5oCmluZGV4IGI5Mjc5OTAzOTBmNzllYmI3OGU5Y2M5
MTg3NGIzNmI2NThiMDBhMDUuLmJiZjVhZjRjMzYxNTcyZDEzNTdhYmYzMDg2YThiMjZjNzRjZTIz
YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFi
YXNlLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2Uu
aApAQCAtNTcsMTIgKzU3LDE1IEBAIHB1YmxpYzoKICAgICB9CiAgICAgdmlydHVhbCB2b2lkIGRl
bGV0ZU9iamVjdFN0b3JlKGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBjb25zdCBXZWJJREJUcmFu
c2FjdGlvbiYgdHJhbnNhY3Rpb24sIFdlYkV4Y2VwdGlvbkNvZGUmIGVjKSB7IFdFQktJVF9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRWZXJzaW9uKGNvbnN0IFdl
YlN0cmluZyYgdmVyc2lvbiwgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIFdlYkV4Y2VwdGlv
bkNvZGUmKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIC8vIEZJWE1FOiBS
ZW1vdmUgdGhpcyBhcyBwYXJ0IG9mIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDI3MzMuCiAgICAgLy8gVHJhbnNmZXJzIG93bmVyc2hpcCBvZiB0aGUgV2ViSURCVHJh
bnNhY3Rpb24gdG8gdGhlIGNhbGxlci4KICAgICB2aXJ0dWFsIFdlYklEQlRyYW5zYWN0aW9uKiB0
cmFuc2FjdGlvbihjb25zdCBXZWJWZWN0b3I8bG9uZyBsb25nPiYsIHVuc2lnbmVkIHNob3J0IG1v
ZGUpCiAgICAgewogICAgICAgICBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAg
IHJldHVybiAwOwogICAgIH0KKyAgICAvLyBUcmFuc2ZlcnMgb3duZXJzaGlwIG9mIHRoZSBXZWJJ
REJUcmFuc2FjdGlvbiB0byB0aGUgY2FsbGVyLgorICAgIHZpcnR1YWwgV2ViSURCVHJhbnNhY3Rp
b24qIGNyZWF0ZVRyYW5zYWN0aW9uKGxvbmcgbG9uZyBpZCwgY29uc3QgV2ViVmVjdG9yPGxvbmcg
bG9uZz4mLCB1bnNpZ25lZCBzaG9ydCBtb2RlKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoKSB7IFdFQktJVF9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBmb3JjZUNsb3NlKCkgeyBXRUJLSVRf
QVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuY3BwCmluZGV4IDBiYzk1NDY2ZDhiMzA1
ZGE5YWY0NzUzMjA1ZTFjMjRmZjZmZGE5MTEuLmEwMzU1MTA0YWYwNWZjMTgwNjBiMDNhNzIxOTc3
NGY5OTcyMDQ2ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRh
dGFiYXNlQmFja2VuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9J
REJEYXRhYmFzZUJhY2tlbmRQcm94eS5jcHAKQEAgLTkxLDYgKzkxLDcgQEAgdm9pZCBJREJEYXRh
YmFzZUJhY2tlbmRQcm94eTo6c2V0VmVyc2lvbihjb25zdCBTdHJpbmcmIHZlcnNpb24sIFBhc3NS
ZWZQdHI8SURCQ2EKICAgICBtX3dlYklEQkRhdGFiYXNlLT5zZXRWZXJzaW9uKHZlcnNpb24sIG5l
dyBXZWJJREJDYWxsYmFja3NJbXBsKGNhbGxiYWNrcyksIGVjKTsKIH0KIAorLy8gRklYTUU6IFJl
bW92ZSB0aGlzIGFzIHBhcnQgb2YgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwMjczMy4KIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBJ
REJEYXRhYmFzZUJhY2tlbmRQcm94eTo6dHJhbnNhY3Rpb24oY29uc3QgVmVjdG9yPGludDY0X3Q+
JiBvYmplY3RTdG9yZUlkcywgdW5zaWduZWQgc2hvcnQgbW9kZSkKIHsKICAgICBPd25QdHI8V2Vi
SURCVHJhbnNhY3Rpb24+IHRyYW5zYWN0aW9uID0gYWRvcHRQdHIobV93ZWJJREJEYXRhYmFzZS0+
dHJhbnNhY3Rpb24ob2JqZWN0U3RvcmVJZHMsIG1vZGUpKTsKQEAgLTEwMCw2ICsxMDEsMTUgQEAg
UGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IElEQkRhdGFiYXNlQmFj
a2VuZFByb3h5Ojp0cmFuc2FjdGlvbigKICAgICByZXR1cm4gSURCVHJhbnNhY3Rpb25CYWNrZW5k
UHJveHk6OmNyZWF0ZSh0cmFuc2FjdGlvbi5yZWxlYXNlKCkpOwogfQogCitQYXNzUmVmUHRyPElE
QlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OmNy
ZWF0ZVRyYW5zYWN0aW9uKGludDY0X3QgaWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2JqZWN0
U3RvcmVJZHMsIHVuc2lnbmVkIHNob3J0IG1vZGUpCit7CisgICAgT3duUHRyPFdlYklEQlRyYW5z
YWN0aW9uPiB0cmFuc2FjdGlvbiA9IGFkb3B0UHRyKG1fd2ViSURCRGF0YWJhc2UtPmNyZWF0ZVRy
YW5zYWN0aW9uKGlkLCBvYmplY3RTdG9yZUlkcywgbW9kZSkpOworICAgIGlmICghdHJhbnNhY3Rp
b24pCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIElEQlRyYW5zYWN0aW9uQmFja2Vu
ZFByb3h5OjpjcmVhdGUodHJhbnNhY3Rpb24ucmVsZWFzZSgpKTsKK30KKwogdm9pZCBJREJEYXRh
YmFzZUJhY2tlbmRQcm94eTo6Y2xvc2UoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4p
CiB7CiAgICAgbV93ZWJJREJEYXRhYmFzZS0+Y2xvc2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5oCmluZGV4IGFhOGZkZjBj
OWVmNzFhODg3OTY5Y2MzYmRhMmY1ZTk5MDhmMjIzYTMuLmYxNDk4MGJkNThkYzE0NTI5NzFjNmMy
MDRmM2M1ZDE2ODI5ZjU2MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0lEQkRhdGFiYXNlQmFja2VuZFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuaApAQCAtNDcsNyArNDcsOSBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQk9iamVjdFN0b3JlQmFja2VuZEludGVy
ZmFjZT4gY3JlYXRlT2JqZWN0U3RvcmUoaW50NjRfdCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25z
dCBXZWJDb3JlOjpJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50LCBXZWJDb3JlOjpJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBXZWJDb3JlOjpFeGNlcHRpb25Db2RlJik7CiAg
ICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGludDY0X3QsIFdlYkNvcmU6OklEQlRy
YW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUmKTsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0VmVyc2lvbihjb25zdCBTdHJpbmcmIHZlcnNpb24sIFBhc3NSZWZQ
dHI8V2ViQ29yZTo6SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFz
ZUNhbGxiYWNrcz4sIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUmKTsKKyAgICAvLyBGSVhNRTogUmVt
b3ZlIHRoaXMgYXMgcGFydCBvZiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTAyNzMzLgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2U+IHRyYW5zYWN0aW9uKGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYsIHVu
c2lnbmVkIHNob3J0IG1vZGUpOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZVRyYW5zYWN0aW9uKGludDY0X3QsIGNv
bnN0IFZlY3RvcjxpbnQ2NF90PiYsIHVuc2lnbmVkIHNob3J0IG1vZGUpOwogICAgIHZpcnR1YWwg
dm9pZCBjbG9zZShQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlQ2FsbGJhY2tzPik7CiAK
IHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJE
YXRhYmFzZUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJh
c2VJbXBsLmNwcAppbmRleCA1OWFiZDUzMjkyODAxZjMwNDkzZGJkMGM0N2Y2ZTAwZDM2MGJkZDQx
Li41MzlhNDg4YzkzM2UxY2E2M2NlMDcwNzM3OTIyN2ViMGFiZDYyMjRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAKQEAgLTgwLDYg
KzgwLDE4IEBAIHZvaWQgV2ViSURCRGF0YWJhc2VJbXBsOjpzZXRWZXJzaW9uKGNvbnN0IFdlYlN0
cmluZyYgdmVyc2lvbiwgV2ViSURCQ2FsbGJhY2tzKiBjCiAgICAgbV9kYXRhYmFzZUJhY2tlbmQt
PnNldFZlcnNpb24odmVyc2lvbiwgSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0cihj
YWxsYmFja3MpKSwgbV9kYXRhYmFzZUNhbGxiYWNrcywgZWMpOwogfQogCitXZWJJREJUcmFuc2Fj
dGlvbiogV2ViSURCRGF0YWJhc2VJbXBsOjpjcmVhdGVUcmFuc2FjdGlvbihsb25nIGxvbmcgaWQs
IGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiBvYmplY3RTdG9yZUlkcywgdW5zaWduZWQgc2hv
cnQgbW9kZSkKK3sKKyAgICBWZWN0b3I8aW50NjRfdD4gb2JqZWN0U3RvcmVJZExpc3Qob2JqZWN0
U3RvcmVJZHMuc2l6ZSgpKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9iamVjdFN0b3Jl
SWRzLnNpemUoKTsgKytpKQorICAgICAgICBvYmplY3RTdG9yZUlkTGlzdFtpXSA9IG9iamVjdFN0
b3JlSWRzW2ldOworICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IHRy
YW5zYWN0aW9uID0gbV9kYXRhYmFzZUJhY2tlbmQtPmNyZWF0ZVRyYW5zYWN0aW9uKGlkLCBvYmpl
Y3RTdG9yZUlkTGlzdCwgbW9kZSk7CisgICAgaWYgKCF0cmFuc2FjdGlvbikKKyAgICAgICAgcmV0
dXJuIDA7CisgICAgcmV0dXJuIG5ldyBXZWJJREJUcmFuc2FjdGlvbkltcGwodHJhbnNhY3Rpb24p
OworfQorCisvLyBGSVhNRTogUmVtb3ZlIHRoaXMgYXMgcGFydCBvZiBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyNzMzLgogV2ViSURCVHJhbnNhY3Rpb24qIFdlYklE
QkRhdGFiYXNlSW1wbDo6dHJhbnNhY3Rpb24oY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mIG9i
amVjdFN0b3JlSWRzLCB1bnNpZ25lZCBzaG9ydCBtb2RlKQogewogICAgIFZlY3RvcjxpbnQ2NF90
PiBvYmplY3RTdG9yZUlkTGlzdChvYmplY3RTdG9yZUlkcy5zaXplKCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaAppbmRleCBlNzI4NzQyYzY0
NzQ4NDEyNmNmM2VhN2RkOTU2ZWRmZjMyYzcyODBmLi5lZWY2NDkzZmRjMjgzNjNhNDMwZTgyZDIy
ZDU5NDk3ZmEwOWExYzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJREJEYXRhYmFzZUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJ
REJEYXRhYmFzZUltcGwuaApAQCAtNTUsNyArNTUsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBX
ZWJJREJPYmplY3RTdG9yZSogY3JlYXRlT2JqZWN0U3RvcmUobG9uZyBsb25nLCBjb25zdCBXZWJT
dHJpbmcmIG5hbWUsIGNvbnN0IFdlYklEQktleVBhdGgmLCBib29sIGF1dG9JbmNyZW1lbnQsIGNv
bnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpOwogICAgIHZpcnR1YWwg
dm9pZCBkZWxldGVPYmplY3RTdG9yZShsb25nIGxvbmcgb2JqZWN0U3RvcmVJZCwgY29uc3QgV2Vi
SURCVHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJik7CiAgICAgdmlydHVhbCB2b2lkIHNl
dFZlcnNpb24oY29uc3QgV2ViU3RyaW5nJiB2ZXJzaW9uLCBXZWJJREJDYWxsYmFja3MqLCBXZWJF
eGNlcHRpb25Db2RlJik7CisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIGFzIHBhcnQgb2YgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjczMy4KICAgICB2aXJ0dWFs
IFdlYklEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbihjb25zdCBXZWJWZWN0b3I8bG9uZyBsb25n
PiYgbmFtZXMsIHVuc2lnbmVkIHNob3J0IG1vZGUpOworICAgIHZpcnR1YWwgV2ViSURCVHJhbnNh
Y3Rpb24qIGNyZWF0ZVRyYW5zYWN0aW9uKGxvbmcgbG9uZyBpZCwgY29uc3QgV2ViVmVjdG9yPGxv
bmcgbG9uZz4mLCB1bnNpZ25lZCBzaG9ydCBtb2RlKTsKICAgICB2aXJ0dWFsIHZvaWQgZm9yY2VD
bG9zZSgpOwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcAppbmRleCBl
OTdiYzdmNmRmOWE0MThjZmY2NTYwZDJjMTIzNGViYzFkM2E2ODQ4Li4zNjcyY2FhMWZkYmYzOGQ5
YjZiYzA4YzdmNzkzODdiZGJiMjA2ZGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAKQEAgLTE1NCw4ICsxNTQs
OSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IFN0
cmluZyYgbmFtZSwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9uQ29k
ZSYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVPYmplY3RTdG9yZShpbnQ2NF90LCBJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJikgeyB9CiAgICAgdmly
dHVhbCB2b2lkIHNldFZlcnNpb24oY29uc3QgU3RyaW5nJiB2ZXJzaW9uLCBQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+LCBFeGNlcHRpb25D
b2RlJikgeyB9Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZElu
dGVyZmFjZT4gdHJhbnNhY3Rpb24oRE9NU3RyaW5nTGlzdCogc3RvcmVOYW1lcywgdW5zaWduZWQg
c2hvcnQgbW9kZSwgRXhjZXB0aW9uQ29kZSYpIHsgcmV0dXJuIDA7IH0KKyAgICAvLyBGSVhNRTog
UmVtb3ZlIHRoaXMgYXMgcGFydCBvZiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTAyNzMzLgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2U+IHRyYW5zYWN0aW9uKGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYsIHVuc2lnbmVk
IHNob3J0IG1vZGUpIHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVUcmFuc2FjdGlvbihjb25zdCBTdHJpbmcm
LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mLCB1bnNpZ25lZCBzaG9ydCBtb2RlKSB7IHJldHVybiAw
OyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxi
YWNrcz4pCiAgICAgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176244</attachid>
            <date>2012-11-27 05:35:50 -0800</date>
            <delta_ts>2012-11-27 06:11:14 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-102730-20121127053327.patch</filename>
            <type>text/plain</type>
            <size>18415</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NzIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGM5MmVmNDJkYTJhNDA2
ZDg3MmE5YTBjMzdiYjgxYWVlNDNmOWQ1NS4uNmM2ZmIyZDczYmY5YjYzZGJkMDIxZDJkZjViNGZl
MGQ0YzVjMTgyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTExLTE5ICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IHN0
dWIgb3V0IElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6Y3JlYXRlVHJhbnNhY3Rpb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjczMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KKworICAgICAgICBTdHViIG91dCBhbmQg
c3VwcG9ydCBwYXNzaW5nIGEgNjQtYml0IHRyYW5zYWN0aW9uIGlkCisgICAgICAgIHNvIHRoZSBm
cm9udGVuZCBjYW4gcmVmZXIgdG8gdHJhbnNhY3Rpb25zIGJ5IGlkIHJhdGhlciB0aGFuCisgICAg
ICAgIGEgcHJveHkgb2JqZWN0IG9yIGEgZGlyZWN0IHBvaW50ZXIgcmVmZXJlbmNlLiBUaGlzIHdp
bGwgdWx0aW1hdGVseQorICAgICAgICBsb29zZW4gb3duZXJzaGlwIGFuZCBsaWZldGltZSBvZiB0
cmFuc2FjdGlvbnMgZnJvbSB0aGUgZnJvbnRlbmQKKyAgICAgICAgYW5kIGJhY2tlbmQuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLCB0aGlzIGlzIGp1c3QgcGFydCBvZiBhIHJlZmFjdG9yLgorCisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjp0cmFuc2Fj
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpjcmVhdGVU
cmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNr
ZW5kSW1wbC5oOgorICAgICAgICAoSURCRGF0YWJhc2VCYWNrZW5kSW1wbCk6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlLmg6CisgICAgICAg
IChJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURC
VHJhbnNhY3Rpb25CYWNrZW5kSW1wbDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRy
YW5zYWN0aW9uQmFja2VuZEltcGw6OklEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwpOgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuaDoKKyAgICAg
ICAgKElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJh
bnNhY3Rpb25CYWNrZW5kSW1wbDo6aWQpOgorCiAyMDEyLTExLTI2ICBZdXJ5IFNlbWlraGF0c2t5
ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIEZpeCBRdCBtaW5p
bWFsIGNvbXBpbGF0aW9uIGFmdGVyIHIxMzU3MTMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmlu
ZGV4IDNlYmQ5N2NkNTk4ZTlkOGJhYzIxYTY4NmY1ZGE3NjI4ZThkYTE4YTkuLjg1NmIwNzFjZGE3
ZTFiZjhmY2ZhYTRmMWMzNGUyNWEzNTQ1NWNkZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjcgQEAKKzIwMTItMTEtMTkgIEFsZWMgRmxldHQgIDxhbGVjZmxldHRAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIEluZGV4ZWREQjogc3R1YiBvdXQgSURCRGF0YWJhc2VCYWNr
ZW5kSW50ZXJmYWNlOjpjcmVhdGVUcmFuc2FjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyNzMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFy
aW4gRmlzaGVyLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBuZXcgY3JlYXRlVHJhbnNhY3Rp
b24oKSBtZXRob2QgaW4gYm90aCBzaWRlcworICAgICAgICBvZiB0aGUgV2ViS2l0IEFQSS4KKwor
ICAgICAgICAqIHB1YmxpYy9XZWJJREJEYXRhYmFzZS5oOgorICAgICAgICAoV2ViSURCRGF0YWJh
c2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZTo6Y3JlYXRlVHJhbnNhY3Rpb24p
OgorICAgICAgICAqIHNyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6Y3JlYXRl
VHJhbnNhY3Rpb24pOgorICAgICAgICAqIHNyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5oOgor
ICAgICAgICAoSURCRGF0YWJhc2VCYWNrZW5kUHJveHkpOgorICAgICAgICAqIHNyYy9XZWJJREJE
YXRhYmFzZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZUltcGw6OmNy
ZWF0ZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL1dlYklE
QkRhdGFiYXNlSW1wbC5oOgorICAgICAgICAoV2ViSURCRGF0YWJhc2VJbXBsKToKKwogMjAxMi0x
MS0yNiAgU2NvdHQgVmlvbGV0ICA8c2t5QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21p
dW1dIE1ha2UgdXNlX2RlZmF1bHRfcmVuZGVyX3RoZW1lIGNvbXBpbGUgdGhlIHJpZ2h0IHNldCBv
ZiBmaWxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2UuY3BwCmluZGV4IGU1ZWE0MWUwYTYzMDM3MGYwZDg2YzNlNWZkNDFlNzI2YzcyZjY4YjEuLjdm
MWM5NTU1MWU2MGNmZjIyZmY0NDY5YTQ3YjVmYTZhMWUyNDFlYWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKQEAgLTM2LDcgKzM2LDYg
QEAKICNpbmNsdWRlICJJREJEYXRhYmFzZUVycm9yLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VF
eGNlcHRpb24uaCIKICNpbmNsdWRlICJJREJFdmVudERpc3BhdGNoZXIuaCIKLSNpbmNsdWRlICJJ
REJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oIgogI2luY2x1ZGUgIklEQkluZGV4LmgiCiAjaW5j
bHVkZSAiSURCS2V5UGF0aC5oIgogI2luY2x1ZGUgIklEQk9iamVjdFN0b3JlLmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFj
a2VuZEltcGwuY3BwCmluZGV4IDBkYzgwMjEwOThmZWEzOGQ1MWQ4YjliOWE3NDY1NWY2NTZkZmU2
YTYuLmZjNmRhNWU0Y2FiMzc1NzhjZDAyYzg2Y2I4Yzk0ODE3MzVhNjU3ODEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFj
a2VuZEltcGwuY3BwCkBAIC00MjIsOSArNDIyLDE1IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5k
SW1wbDo6cHJvY2Vzc1BlbmRpbmdDYWxscygpCiAgICAgfQogfQogCisvLyBGSVhNRTogUmVtb3Zl
IHRoaXMgYXMgcGFydCBvZiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTAyNzMzLgogUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IElEQkRh
dGFiYXNlQmFja2VuZEltcGw6OnRyYW5zYWN0aW9uKGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2Jq
ZWN0U3RvcmVJZHMsIHVuc2lnbmVkIHNob3J0IG1vZGUpCiB7Ci0gICAgUmVmUHRyPElEQlRyYW5z
YWN0aW9uQmFja2VuZEltcGw+IHRyYW5zYWN0aW9uID0gSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1w
bDo6Y3JlYXRlKG9iamVjdFN0b3JlSWRzLCBtb2RlLCB0aGlzKTsKKyAgICByZXR1cm4gY3JlYXRl
VHJhbnNhY3Rpb24oMCwgb2JqZWN0U3RvcmVJZHMsIG1vZGUpOworfQorCitQYXNzUmVmUHRyPElE
QlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6Y3Jl
YXRlVHJhbnNhY3Rpb24oaW50NjRfdCB0cmFuc2FjdGlvbklkLCBjb25zdCBWZWN0b3I8aW50NjRf
dD4mIG9iamVjdFN0b3JlSWRzLCB1bnNpZ25lZCBzaG9ydCBtb2RlKQoreworICAgIFJlZlB0cjxJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsPiB0cmFuc2FjdGlvbiA9IElEQlRyYW5zYWN0aW9uQmFj
a2VuZEltcGw6OmNyZWF0ZSh0cmFuc2FjdGlvbklkLCBvYmplY3RTdG9yZUlkcywgbW9kZSwgdGhp
cyk7CiAgICAgbV90cmFuc2FjdGlvbnMuYWRkKHRyYW5zYWN0aW9uLmdldCgpKTsKICAgICByZXR1
cm4gdHJhbnNhY3Rpb24ucmVsZWFzZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oCmluZGV4IGYwZjQ5
MzhkMTdiZWFkOGNkMWQ0MjU0YTA3OThiNmQ2ZGUzNmIxNGYuLmFkYjQ5ZjhhNDVkOWM0ZmQ4OTQ5
MmQzNGVmYTVkMmVlMDAyOWFiN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmgKQEAgLTY0LDcgKzY0LDkg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJ
bnRlcmZhY2U+IGNyZWF0ZU9iamVjdFN0b3JlKGludDY0X3QgaWQsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgY29uc3QgSURCS2V5UGF0aCYsIGJvb2wgYXV0b0luY3JlbWVudCwgSURCVHJhbnNhY3Rpb25C
YWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZpcnR1YWwgdm9pZCBkZWxl
dGVPYmplY3RTdG9yZShpbnQ2NF90LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBF
eGNlcHRpb25Db2RlJik7CiAgICAgdmlydHVhbCB2b2lkIHNldFZlcnNpb24oY29uc3QgU3RyaW5n
JiB2ZXJzaW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8SURCRGF0YWJh
c2VDYWxsYmFja3M+LCBFeGNlcHRpb25Db2RlJik7CisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlz
IGFzIHBhcnQgb2YgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjcz
My4KICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNl
PiB0cmFuc2FjdGlvbihjb25zdCBWZWN0b3I8aW50NjRfdD4mLCB1bnNpZ25lZCBzaG9ydCk7Cisg
ICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gY3Jl
YXRlVHJhbnNhY3Rpb24oaW50NjRfdCB0cmFuc2FjdGlvbklkLCBjb25zdCBWZWN0b3I8aW50NjRf
dD4mIG9iamVjdFN0b3JlSWRzLCB1bnNpZ25lZCBzaG9ydCBtb2RlKTsKICAgICB2aXJ0dWFsIHZv
aWQgY2xvc2UoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4pOwogCiAgICAgUGFzc1Jl
ZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsPiBvYmplY3RTdG9yZShpbnQ2NF90IGlkKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNl
QmFja2VuZEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlLmgKaW5kZXggOWFhYjU2NDRiYTQ4NjNjMDdhNjdlNDFk
OTA3ZjQxZDFkMThlNDgzNS4uZWIzNTgyYjZlZjQwNzI1M2E5ZDczYjc4ZjI5MjJhMDVlMWQ3Yjk0
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2VCYWNrZW5kSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlLmgKQEAgLTU2LDcgKzU2LDkgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U+
IGNyZWF0ZU9iamVjdFN0b3JlKGludDY0X3QsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURC
S2V5UGF0aCYsIGJvb2wgYXV0b0luY3JlbWVudCwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJm
YWNlKiwgRXhjZXB0aW9uQ29kZSYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlT2JqZWN0
U3RvcmUoaW50NjRfdCwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9u
Q29kZSYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmVyc2lvbihjb25zdCBTdHJpbmcmIHZl
cnNpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNh
bGxiYWNrcz4sIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlz
IGFzIHBhcnQgb2YgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjcz
My4KICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNl
PiB0cmFuc2FjdGlvbihjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9iamVjdFN0b3JlSWRzLCB1bnNp
Z25lZCBzaG9ydCBtb2RlKSA9IDA7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0
aW9uQmFja2VuZEludGVyZmFjZT4gY3JlYXRlVHJhbnNhY3Rpb24oaW50NjRfdCB0cmFuc2FjdGlv
bklkLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9iamVjdFN0b3JlSWRzLCB1bnNpZ25lZCBzaG9y
dCBtb2RlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNsb3NlKFBhc3NSZWZQdHI8SURCRGF0YWJh
c2VDYWxsYmFja3M+KSA9IDA7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuY3BwCmluZGV4
IDUwNTQzZDVlODE5OWVmMDYxNWY2YThkZmVjNTliNzhiNzE0NGJmYmUuLjViNzM1ZTJlODFmOWU2
M2RkYjU2ZmYzZWJhYjI0YWU5YzJhMmNiOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuY3Bw
CkBAIC0zOSwxMyArMzksMTQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzUmVmUHRy
PElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw+IElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw6OmNy
ZWF0ZShjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9iamVjdFN0b3JlSWRzLCB1bnNpZ25lZCBzaG9y
dCBtb2RlLCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsKiBkYXRhYmFzZSkKK1Bhc3NSZWZQdHI8SURC
VHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4gSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbDo6Y3JlYXRl
KGludDY0X3QgaWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJZHMsIHVuc2ln
bmVkIHNob3J0IG1vZGUsIElEQkRhdGFiYXNlQmFja2VuZEltcGwqIGRhdGFiYXNlKQogewotICAg
IHJldHVybiBhZG9wdFJlZihuZXcgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbChvYmplY3RTdG9y
ZUlkcywgbW9kZSwgZGF0YWJhc2UpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IElEQlRyYW5z
YWN0aW9uQmFja2VuZEltcGwoaWQsIG9iamVjdFN0b3JlSWRzLCBtb2RlLCBkYXRhYmFzZSkpOwog
fQogCi1JREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBs
KGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJZHMsIHVuc2lnbmVkIHNob3J0IG1v
ZGUsIElEQkRhdGFiYXNlQmFja2VuZEltcGwqIGRhdGFiYXNlKQotICAgIDogbV9vYmplY3RTdG9y
ZUlkcyhvYmplY3RTdG9yZUlkcykKK0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw6OklEQlRyYW5z
YWN0aW9uQmFja2VuZEltcGwoaW50NjRfdCBpZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmpl
Y3RTdG9yZUlkcywgdW5zaWduZWQgc2hvcnQgbW9kZSwgSURCRGF0YWJhc2VCYWNrZW5kSW1wbCog
ZGF0YWJhc2UpCisgICAgOiBtX2lkKGlkKQorICAgICwgbV9vYmplY3RTdG9yZUlkcyhvYmplY3RT
dG9yZUlkcykKICAgICAsIG1fbW9kZShtb2RlKQogICAgICwgbV9zdGF0ZShVbnVzZWQpCiAgICAg
LCBtX2RhdGFiYXNlKGRhdGFiYXNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5oCmluZGV4IDgwM2Vk
MDc0YWJiYTkyY2IwNzY1MDViYjBkYzc4ZjI5OGY5ZDE5Y2EuLmY2MzQ1NzA3ODQxYmJhNzE1YWFm
Yzg0YTAzZDcyNjI2MjYyZmY0NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmgKQEAgLTQ0LDcg
KzQ0LDcgQEAgY2xhc3MgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDsKIAogY2xhc3MgSURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW1wbCA6IHB1YmxpYyBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2Ug
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZElt
cGw+IGNyZWF0ZShjb25zdCBWZWN0b3I8aW50NjRfdD4mLCB1bnNpZ25lZCBzaG9ydCBtb2RlLCBJ
REJEYXRhYmFzZUJhY2tlbmRJbXBsKik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW1wbD4gY3JlYXRlKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgY29uc3QgVmVj
dG9yPGludDY0X3Q+JiwgdW5zaWduZWQgc2hvcnQgbW9kZSwgSURCRGF0YWJhc2VCYWNrZW5kSW1w
bCopOwogICAgIHN0YXRpYyBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsKiBmcm9tKElEQlRyYW5z
YWN0aW9uQmFja2VuZEludGVyZmFjZSogaW50ZXJmYWNlKQogICAgIHsKICAgICAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwqPihpbnRlcmZhY2UpOwpAQCAt
NjgsOSArNjgsMTAgQEAgcHVibGljOgogICAgIHZvaWQgYWRkUHJlZW1wdGl2ZUV2ZW50KCkgeyBt
X3BlbmRpbmdQcmVlbXB0aXZlRXZlbnRzKys7IH0KICAgICB2b2lkIGRpZENvbXBsZXRlUHJlZW1w
dGl2ZUV2ZW50KCkgeyBtX3BlbmRpbmdQcmVlbXB0aXZlRXZlbnRzLS07IEFTU0VSVChtX3BlbmRp
bmdQcmVlbXB0aXZlRXZlbnRzID49IDApOyB9CiAgICAgSURCQmFja2luZ1N0b3JlOjpUcmFuc2Fj
dGlvbiogYmFja2luZ1N0b3JlVHJhbnNhY3Rpb24oKSB7IHJldHVybiAmbV90cmFuc2FjdGlvbjsg
fQorICAgIGludDY0X3QgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9CiAKIHByaXZhdGU6Ci0g
ICAgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbChjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9iamVj
dFN0b3JlSWRzLCB1bnNpZ25lZCBzaG9ydCBtb2RlLCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsKik7
CisgICAgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbChpbnQ2NF90IGlkLCBjb25zdCBWZWN0b3I8
aW50NjRfdD4mIG9iamVjdFN0b3JlSWRzLCB1bnNpZ25lZCBzaG9ydCBtb2RlLCBJREJEYXRhYmFz
ZUJhY2tlbmRJbXBsKik7CiAKICAgICBlbnVtIFN0YXRlIHsKICAgICAgICAgVW51c2VkLCAvLyBD
cmVhdGVkLCBidXQgbm8gdGFza3MgeWV0LgpAQCAtODksNiArOTAsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgdGFza0V2ZW50VGltZXJGaXJlZChUaW1lcjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBs
PiopOwogICAgIHZvaWQgY2xvc2VPcGVuQ3Vyc29ycygpOwogCisgICAgY29uc3QgaW50NjRfdCBt
X2lkOwogICAgIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiBtX29iamVjdFN0b3JlSWRzOwogICAgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IG1fbW9kZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYklEQkRhdGFiYXNlLmgKaW5kZXggYjkyNzk5MDM5MGY3OWViYjc4ZTljYzkxODc0
YjM2YjY1OGIwMGEwNS4uYmJmNWFmNGMzNjE1NzJkMTM1N2FiZjMwODZhOGIyNmM3NGNlMjNiMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2Uu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJEYXRhYmFzZS5oCkBA
IC01NywxMiArNTcsMTUgQEAgcHVibGljOgogICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRl
T2JqZWN0U3RvcmUobG9uZyBsb25nIG9iamVjdFN0b3JlSWQsIGNvbnN0IFdlYklEQlRyYW5zYWN0
aW9uJiB0cmFuc2FjdGlvbiwgV2ViRXhjZXB0aW9uQ29kZSYgZWMpIHsgV0VCS0lUX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFZlcnNpb24oY29uc3QgV2ViU3Ry
aW5nJiB2ZXJzaW9uLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgV2ViRXhjZXB0aW9uQ29k
ZSYpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgLy8gRklYTUU6IFJlbW92
ZSB0aGlzIGFzIHBhcnQgb2YgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwMjczMy4KICAgICAvLyBUcmFuc2ZlcnMgb3duZXJzaGlwIG9mIHRoZSBXZWJJREJUcmFuc2Fj
dGlvbiB0byB0aGUgY2FsbGVyLgogICAgIHZpcnR1YWwgV2ViSURCVHJhbnNhY3Rpb24qIHRyYW5z
YWN0aW9uKGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiwgdW5zaWduZWQgc2hvcnQgbW9kZSkK
ICAgICB7CiAgICAgICAgIFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0
dXJuIDA7CiAgICAgfQorICAgIC8vIFRyYW5zZmVycyBvd25lcnNoaXAgb2YgdGhlIFdlYklEQlRy
YW5zYWN0aW9uIHRvIHRoZSBjYWxsZXIuCisgICAgdmlydHVhbCBXZWJJREJUcmFuc2FjdGlvbiog
Y3JlYXRlVHJhbnNhY3Rpb24obG9uZyBsb25nIGlkLCBjb25zdCBXZWJWZWN0b3I8bG9uZyBsb25n
PiYsIHVuc2lnbmVkIHNob3J0IG1vZGUpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyBy
ZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpIHsgV0VCS0lUX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIGZvcmNlQ2xvc2UoKSB7IFdFQktJVF9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5jcHAKaW5kZXggMGJjOTU0NjZkOGIzMDVkYTlh
ZjQ3NTMyMDVlMWMyNGZmNmZkYTkxMS4uYTAzNTUxMDRhZjA1ZmMxODA2MGIwM2E3MjE5Nzc0Zjk5
NzIwNDZlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJh
c2VCYWNrZW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRh
dGFiYXNlQmFja2VuZFByb3h5LmNwcApAQCAtOTEsNiArOTEsNyBAQCB2b2lkIElEQkRhdGFiYXNl
QmFja2VuZFByb3h5OjpzZXRWZXJzaW9uKGNvbnN0IFN0cmluZyYgdmVyc2lvbiwgUGFzc1JlZlB0
cjxJREJDYQogICAgIG1fd2ViSURCRGF0YWJhc2UtPnNldFZlcnNpb24odmVyc2lvbiwgbmV3IFdl
YklEQkNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSwgZWMpOwogfQogCisvLyBGSVhNRTogUmVtb3Zl
IHRoaXMgYXMgcGFydCBvZiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTAyNzMzLgogUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IElEQkRh
dGFiYXNlQmFja2VuZFByb3h5Ojp0cmFuc2FjdGlvbihjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9i
amVjdFN0b3JlSWRzLCB1bnNpZ25lZCBzaG9ydCBtb2RlKQogewogICAgIE93blB0cjxXZWJJREJU
cmFuc2FjdGlvbj4gdHJhbnNhY3Rpb24gPSBhZG9wdFB0cihtX3dlYklEQkRhdGFiYXNlLT50cmFu
c2FjdGlvbihvYmplY3RTdG9yZUlkcywgbW9kZSkpOwpAQCAtMTAwLDYgKzEwMSwxNSBAQCBQYXNz
UmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gSURCRGF0YWJhc2VCYWNrZW5k
UHJveHk6OnRyYW5zYWN0aW9uKAogICAgIHJldHVybiBJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94
eTo6Y3JlYXRlKHRyYW5zYWN0aW9uLnJlbGVhc2UoKSk7CiB9CiAKK1Bhc3NSZWZQdHI8SURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6Y3JlYXRl
VHJhbnNhY3Rpb24oaW50NjRfdCBpZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9y
ZUlkcywgdW5zaWduZWQgc2hvcnQgbW9kZSkKK3sKKyAgICBPd25QdHI8V2ViSURCVHJhbnNhY3Rp
b24+IHRyYW5zYWN0aW9uID0gYWRvcHRQdHIobV93ZWJJREJEYXRhYmFzZS0+Y3JlYXRlVHJhbnNh
Y3Rpb24oaWQsIG9iamVjdFN0b3JlSWRzLCBtb2RlKSk7CisgICAgaWYgKCF0cmFuc2FjdGlvbikK
KyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJv
eHk6OmNyZWF0ZSh0cmFuc2FjdGlvbi5yZWxlYXNlKCkpOworfQorCiB2b2lkIElEQkRhdGFiYXNl
QmFja2VuZFByb3h5OjpjbG9zZShQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPikKIHsK
ICAgICBtX3dlYklEQkRhdGFiYXNlLT5jbG9zZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5LmgKaW5kZXggYWE4ZmRmMGM5ZWY3
MWE4ODc5NjljYzNiZGEyZjVlOTkwOGYyMjNhMy4uZjE0OTgwYmQ1OGRjMTQ1Mjk3MWM2YzIwNGYz
YzVkMTY4MjlmNTYyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURC
RGF0YWJhc2VCYWNrZW5kUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9J
REJEYXRhYmFzZUJhY2tlbmRQcm94eS5oCkBAIC00Nyw3ICs0Nyw5IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNl
PiBjcmVhdGVPYmplY3RTdG9yZShpbnQ2NF90LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFdl
YkNvcmU6OklEQktleVBhdGgmLCBib29sIGF1dG9JbmNyZW1lbnQsIFdlYkNvcmU6OklEQlRyYW5z
YWN0aW9uQmFja2VuZEludGVyZmFjZSosIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUmKTsKICAgICB2
aXJ0dWFsIHZvaWQgZGVsZXRlT2JqZWN0U3RvcmUoaW50NjRfdCwgV2ViQ29yZTo6SURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSYpOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRWZXJzaW9uKGNvbnN0IFN0cmluZyYgdmVyc2lvbiwgUGFzc1JlZlB0cjxX
ZWJDb3JlOjpJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlQ2Fs
bGJhY2tzPiwgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSYpOworICAgIC8vIEZJWE1FOiBSZW1vdmUg
dGhpcyBhcyBwYXJ0IG9mIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDI3MzMuCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQmFj
a2VuZEludGVyZmFjZT4gdHJhbnNhY3Rpb24oY29uc3QgVmVjdG9yPGludDY0X3Q+JiwgdW5zaWdu
ZWQgc2hvcnQgbW9kZSk7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQlRyYW5z
YWN0aW9uQmFja2VuZEludGVyZmFjZT4gY3JlYXRlVHJhbnNhY3Rpb24oaW50NjRfdCwgY29uc3Qg
VmVjdG9yPGludDY0X3Q+JiwgdW5zaWduZWQgc2hvcnQgbW9kZSk7CiAgICAgdmlydHVhbCB2b2lk
IGNsb3NlKFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VDYWxsYmFja3M+KTsKIAogcHJp
dmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFi
YXNlSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUlt
cGwuY3BwCmluZGV4IDU5YWJkNTMyOTI4MDFmMzA0OTNkYmQwYzQ3ZjZlMDBkMzYwYmRkNDEuLjUz
OWE0ODhjOTMzZTFjYTYzY2UwNzA3Mzc5MjI3ZWIwYWJkNjIyNGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcApAQCAtODAsNiArODAs
MTggQEAgdm9pZCBXZWJJREJEYXRhYmFzZUltcGw6OnNldFZlcnNpb24oY29uc3QgV2ViU3RyaW5n
JiB2ZXJzaW9uLCBXZWJJREJDYWxsYmFja3MqIGMKICAgICBtX2RhdGFiYXNlQmFja2VuZC0+c2V0
VmVyc2lvbih2ZXJzaW9uLCBJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGNhbGxi
YWNrcykpLCBtX2RhdGFiYXNlQ2FsbGJhY2tzLCBlYyk7CiB9CiAKK1dlYklEQlRyYW5zYWN0aW9u
KiBXZWJJREJEYXRhYmFzZUltcGw6OmNyZWF0ZVRyYW5zYWN0aW9uKGxvbmcgbG9uZyBpZCwgY29u
c3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mIG9iamVjdFN0b3JlSWRzLCB1bnNpZ25lZCBzaG9ydCBt
b2RlKQoreworICAgIFZlY3RvcjxpbnQ2NF90PiBvYmplY3RTdG9yZUlkTGlzdChvYmplY3RTdG9y
ZUlkcy5zaXplKCkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb2JqZWN0U3RvcmVJZHMu
c2l6ZSgpOyArK2kpCisgICAgICAgIG9iamVjdFN0b3JlSWRMaXN0W2ldID0gb2JqZWN0U3RvcmVJ
ZHNbaV07CisgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gdHJhbnNh
Y3Rpb24gPSBtX2RhdGFiYXNlQmFja2VuZC0+Y3JlYXRlVHJhbnNhY3Rpb24oaWQsIG9iamVjdFN0
b3JlSWRMaXN0LCBtb2RlKTsKKyAgICBpZiAoIXRyYW5zYWN0aW9uKQorICAgICAgICByZXR1cm4g
MDsKKyAgICByZXR1cm4gbmV3IFdlYklEQlRyYW5zYWN0aW9uSW1wbCh0cmFuc2FjdGlvbik7Cit9
CisKKy8vIEZJWE1FOiBSZW1vdmUgdGhpcyBhcyBwYXJ0IG9mIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDI3MzMuCiBXZWJJREJUcmFuc2FjdGlvbiogV2ViSURCRGF0
YWJhc2VJbXBsOjp0cmFuc2FjdGlvbihjb25zdCBXZWJWZWN0b3I8bG9uZyBsb25nPiYgb2JqZWN0
U3RvcmVJZHMsIHVuc2lnbmVkIHNob3J0IG1vZGUpCiB7CiAgICAgVmVjdG9yPGludDY0X3Q+IG9i
amVjdFN0b3JlSWRMaXN0KG9iamVjdFN0b3JlSWRzLnNpemUoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oCmluZGV4IGU3Mjg3NDJjNjQ3NDg0
MTI2Y2YzZWE3ZGQ5NTZlZGZmMzJjNzI4MGYuLmVlZjY0OTNmZGMyODM2M2E0MzBlODJkMjJkNTk0
OTdmYTA5YTFjM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklE
QkRhdGFiYXNlSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRh
dGFiYXNlSW1wbC5oCkBAIC01NSw3ICs1NSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFdlYklE
Qk9iamVjdFN0b3JlKiBjcmVhdGVPYmplY3RTdG9yZShsb25nIGxvbmcsIGNvbnN0IFdlYlN0cmlu
ZyYgbmFtZSwgY29uc3QgV2ViSURCS2V5UGF0aCYsIGJvb2wgYXV0b0luY3JlbWVudCwgY29uc3Qg
V2ViSURCVHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJik7CiAgICAgdmlydHVhbCB2b2lk
IGRlbGV0ZU9iamVjdFN0b3JlKGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBjb25zdCBXZWJJREJU
cmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmVy
c2lvbihjb25zdCBXZWJTdHJpbmcmIHZlcnNpb24sIFdlYklEQkNhbGxiYWNrcyosIFdlYkV4Y2Vw
dGlvbkNvZGUmKTsKKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgYXMgcGFydCBvZiBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyNzMzLgogICAgIHZpcnR1YWwgV2Vi
SURCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uKGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiBu
YW1lcywgdW5zaWduZWQgc2hvcnQgbW9kZSk7CisgICAgdmlydHVhbCBXZWJJREJUcmFuc2FjdGlv
biogY3JlYXRlVHJhbnNhY3Rpb24obG9uZyBsb25nIGlkLCBjb25zdCBXZWJWZWN0b3I8bG9uZyBs
b25nPiYsIHVuc2lnbmVkIHNob3J0IG1vZGUpOwogICAgIHZpcnR1YWwgdm9pZCBmb3JjZUNsb3Nl
KCk7CiAgICAgdmlydHVhbCB2b2lkIGNsb3NlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwCmluZGV4IGU5N2Jj
N2Y2ZGY5YTQxOGNmZjY1NjBkMmMxMjM0ZWJjMWQzYTY4NDguLmE4YmFmMDRkNGUwNjhlOGFkNmJj
M2I5YmIyOWM3YzM5ZWRjNTkwOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcApAQCAtMTU0LDggKzE1NCw5IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgU3RyaW5n
JiBuYW1lLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJikg
eyB9CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGludDY0X3QsIElEQlRyYW5z
YWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKSB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgc2V0VmVyc2lvbihjb25zdCBTdHJpbmcmIHZlcnNpb24sIFBhc3NSZWZQdHI8SURCQ2Fs
bGJhY2tzPiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4sIEV4Y2VwdGlvbkNvZGUm
KSB7IH0KLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJm
YWNlPiB0cmFuc2FjdGlvbihET01TdHJpbmdMaXN0KiBzdG9yZU5hbWVzLCB1bnNpZ25lZCBzaG9y
dCBtb2RlLCBFeGNlcHRpb25Db2RlJikgeyByZXR1cm4gMDsgfQorICAgIC8vIEZJWE1FOiBSZW1v
dmUgdGhpcyBhcyBwYXJ0IG9mIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDI3MzMuCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZElu
dGVyZmFjZT4gdHJhbnNhY3Rpb24oY29uc3QgVmVjdG9yPGludDY0X3Q+JiwgdW5zaWduZWQgc2hv
cnQgbW9kZSkgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZVRyYW5zYWN0aW9uKGludDY0X3QsIGNvbnN0IFZl
Y3RvcjxpbnQ2NF90PiYsIHVuc2lnbmVkIHNob3J0IG1vZGUpIHsgcmV0dXJuIDA7IH0KIAogICAg
IHZpcnR1YWwgdm9pZCBjbG9zZShQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPikKICAg
ICB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>