<?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>116147</bug_id>
          
          <creation_ts>2013-05-15 04:32:57 -0700</creation_ts>
          <short_desc>Add [EnabledAtRuntime] extended attribute support for global constructors</short_desc>
          <delta_ts>2013-05-17 14:50:45 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Bindings</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>52011</blocked>
    
    <blocked>115853</blocked>
    
    <blocked>116343</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>haraken</cc>
    
    <cc>joenotcharles</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>889240</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-05-15 04:32:57 -0700</bug_when>
    <thetext>The [EnabledAtRuntime] IDL extended attribute is not currently supported by the JSC bindings generator. Several of our global constructors are enabled at runtime and require custom code because of it. Additionally, those global constructors cannot be automatically generated because of this limitation.

List of affected global constructors:
[CustomGetter, Conditional=VIDEO] attribute HTMLAudioElementConstructorConstructor Audio; // Also a named constructor (see Bug 116116)
[Conditional=WEB_SOCKETS, CustomGetter] attribute WebSocketConstructor WebSocket;
[Conditional=SHARED_WORKERS, CustomGetter] attribute SharedWorkerConstructor SharedWorker;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>889260</commentid>
    <comment_count>1</comment_count>
      <attachid>201822</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-05-15 06:46:57 -0700</bug_when>
    <thetext>Created attachment 201822
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>889261</commentid>
    <comment_count>2</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-05-15 06:52:39 -0700</bug_when>
    <thetext>Great improvement! JSC experts should take a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>889326</commentid>
    <comment_count>3</comment_count>
      <attachid>201822</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-05-15 09:18:21 -0700</bug_when>
    <thetext>Comment on attachment 201822
Patch

Nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>889328</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-05-15 09:19:34 -0700</bug_when>
    <thetext>&lt;rdar://problem/10155019&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>889330</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-05-15 09:19:55 -0700</bug_when>
    <thetext>*** Bug 52011 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>889344</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-05-15 09:35:04 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; *** Bug 52011 has been marked as a duplicate of this bug. ***

My patch only adds [EnabledAtRuntime] support for global constructors at the moment. It can be extended to regular attributes and operations later on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>889453</commentid>
    <comment_count>7</comment_count>
      <attachid>201822</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-05-15 12:40:38 -0700</bug_when>
    <thetext>Comment on attachment 201822
Patch

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

&gt; Source/WebCore/ChangeLog:18
&gt; +        No new tests, no behavior change for layout tests.

Shouldn&apos;t this patch change the output of run-bindings-tests?

&gt; Source/WebCore/Modules/websockets/WebSocket.cpp:129
&gt; -static bool webSocketsAvailable = false;
&gt; +static bool webSocketsAvailable = true;

Why did this default change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>889470</commentid>
    <comment_count>8</comment_count>
      <attachid>201822</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-05-15 12:57:27 -0700</bug_when>
    <thetext>Comment on attachment 201822
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:18
&gt;&gt; +        No new tests, no behavior change for layout tests.
&gt; 
&gt; Shouldn&apos;t this patch change the output of run-bindings-tests?

No it doesn&apos;t because it only affects *Constructor attributes on DOMWindow. I can upload a diff of the generated JSDOMWindow.cpp if this would help.

&gt;&gt; Source/WebCore/Modules/websockets/WebSocket.cpp:129
&gt;&gt; +static bool webSocketsAvailable = true;
&gt; 
&gt; Why did this default change?

We were not using RuntimeEnabledFeatures for WebSocket before (See removed JSDOMWindowWebSocketCustom.cpp in this patch). RuntimeEnabledFeatures::webSocketEnabled() depends on this flag.
This flag was disabled by default but it did not matter because it was not used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>889517</commentid>
    <comment_count>9</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-05-15 14:19:03 -0700</bug_when>
    <thetext>&gt; I can upload a diff of the generated JSDOMWindow.cpp if this would help.

Sure, I&apos;d like to take a look.

&gt; 
&gt; &gt;&gt; Source/WebCore/Modules/websockets/WebSocket.cpp:129
&gt; &gt;&gt; +static bool webSocketsAvailable = true;
&gt; &gt; 
&gt; &gt; Why did this default change?
&gt; 
&gt; RuntimeEnabledFeatures::webSocketEnabled() depends on this flag.

I guess I&apos;m just confused by the feature being enabled by default. Shouldn&apos;t &quot;EnabledAtRuntime&quot; be disabled by default, and then potentially enabled at runtime?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>889708</commentid>
    <comment_count>10</comment_count>
      <attachid>201927</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-05-15 23:37:52 -0700</bug_when>
    <thetext>Created attachment 201927
JSDOMWindow.cpp diff

2 new attributes are also generated in DerivedSources/WebCore/DOMWindowConstructors.idl:

[EnabledAtRuntime, Conditional=SHARED_WORKERS] attribute SharedWorkerConstructor SharedWorker;
[EnabledAtRuntime, Conditional=WEB_SOCKETS] attribute WebSocketConstructor WebSocket;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>889713</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-05-15 23:43:20 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; &gt; I can upload a diff of the generated JSDOMWindow.cpp if this would help.
&gt; 
&gt; Sure, I&apos;d like to take a look.
&gt; 
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/WebCore/Modules/websockets/WebSocket.cpp:129
&gt; &gt; &gt;&gt; +static bool webSocketsAvailable = true;
&gt; &gt; &gt; 
&gt; &gt; &gt; Why did this default change?
&gt; &gt; 
&gt; &gt; RuntimeEnabledFeatures::webSocketEnabled() depends on this flag.
&gt; 
&gt; I guess I&apos;m just confused by the feature being enabled by default. Shouldn&apos;t &quot;EnabledAtRuntime&quot; be disabled by default, and then potentially enabled at runtime?

[EnabledAtRuntime] merely indicates that the RuntimeEnabledFeatures class is used to determine if the feature should be enabled or not at runtime. The feature may or may not be enabled by default depending on its maturity.

There are a lot of runtime-enabled features that are enabled by default (isInputTypeDateEnabled, isVideoTrackEnabled, isInputTypeDateTimeLocalEnabled, isFullScreenAPIEnabled, ...).

If I don&apos;t enable WebSocket by default, then I would have to update each port to call WebSocket::setIsEnabled(true) because they all expect WebSocket to be enabled and they currently don&apos;t call WebSocket::setIsEnabled(), except for BlackBerry port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890233</commentid>
    <comment_count>12</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-05-17 00:21:25 -0700</bug_when>
    <thetext>Geoffrey Garen, did you get a chance to take a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890519</commentid>
    <comment_count>13</comment_count>
      <attachid>201822</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-05-17 10:50:35 -0700</bug_when>
    <thetext>Comment on attachment 201822
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890525</commentid>
    <comment_count>14</comment_count>
      <attachid>201822</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-17 11:16:14 -0700</bug_when>
    <thetext>Comment on attachment 201822
Patch

Clearing flags on attachment: 201822

Committed r150276: &lt;http://trac.webkit.org/changeset/150276&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890526</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-17 11:16:17 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890683</commentid>
    <comment_count>16</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-05-17 14:50:45 -0700</bug_when>
    <thetext>I added [EnabledAtRuntime] documentation to the WebKit IDL wiki:
http://trac.webkit.org/wiki/WebKitIDL#EnabledAtRuntime</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>201822</attachid>
            <date>2013-05-15 06:46:57 -0700</date>
            <delta_ts>2013-05-17 11:16:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>116147_EnabledAtRuntime.patch</filename>
            <type>text/plain</type>
            <size>19834</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxYjBkM2ZhLi5hMmMxMTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMg
QEAKKzIwMTMtMDUtMTUgIENocmlzdG9waGUgRHVtZXogIDxjaC5kdW1lekBzaXNhLnNhbXN1bmcu
Y29tPgorCisgICAgICAgIEFkZCBbRW5hYmxlZEF0UnVudGltZV0gZXh0ZW5kZWQgYXR0cmlidXRl
IHN1cHBvcnQgZm9yIGdsb2JhbCBjb25zdHJ1Y3RvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNjE0NworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBbRW5hYmxlZEF0UnVudGltZV0gZXh0ZW5kZWQg
YXR0cmlidXRlIHN1cHBvcnQgZm9yIGdsb2JhbCBjb25zdHJ1Y3RvcnMuCisgICAgICAgIFRoaXMg
cGF0Y2ggYWRkcyBbRW5hYmxlZEF0UnVudGltZV0gZXh0ZW5kZWQgYXR0cmlidXRlIHRvIFNoYXJl
ZFdvcmtlciBhbmQKKyAgICAgICAgV2ViU29ja2V0IElETCBpbnRlcmZhY2VzIHNvIHRoYXQgdGhl
aXIgZ2xvYmFsIGNvbnN0cnVjdG9ycyBvbiB0aGUgZ2xvYmFsCisgICAgICAgIFdpbmRvdyBvYmpl
Y3QgY2FuIG5vdyBiZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZC4KKworICAgICAgICBUaGUgYmVo
YXZpb3Igb24gSmF2YVNjcmlwdCBzaWRlIGlzIHVuY2hhbmdlZC4gV2Ugc2ltcGx5IGxldmVyYWdl
CisgICAgICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMgY2xhc3MgYW5kIHRoZSBuZXcgW0VuYWJs
ZWRBdFJ1bnRpbWVdIElETCBleHRlbmRlZAorICAgICAgICBhdHRyaWJ1dGUgdG8gZ2VuZXJhdGUg
dGhlIGNvZGUgZm9yIGdsb2JhbCBjb25zdHJ1Y3RvcnMgZ2V0dGVycyBpbnN0ZWFkCisgICAgICAg
IG9mIHVzaW5nIGN1c3RvbSBjb2RlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZp
b3IgY2hhbmdlIGZvciBsYXlvdXQgdGVzdHMuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0
LmFtOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwOiBFbmFibGUg
V2ViU29ja2V0cyBhdCBydW50aW1lIGJ5IGRlZmF1bHQuCisgICAgICAgICogTW9kdWxlcy93ZWJz
b2NrZXRzL1dlYlNvY2tldC5pZGw6CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBV
c2VKU0MuY21ha2U6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6Cisg
ICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJD
b3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQmluZGlu
Z3NBbGxJbk9uZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20u
Y3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5k
b3dXZWJTb2NrZXRDdXN0b20uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoVG9NZXRob2ROYW1lKToKKyAgICAgICAg
KEdldFJ1bnRpbWVFbmFibGVGdW5jdGlvbk5hbWUpOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1l
bnRhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dDoK
KyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6CisgICAgICAgICogd29ya2Vycy9TaGFyZWRX
b3JrZXIuaWRsOgorCiAyMDEzLTA1LTE1ICBEw6F2aWQgU3phYm9sY3MgIDxEYXZpZC5TemFib2xj
c0BzdHVkLnUtc3plZ2VkLmh1PgogCiAgICAgICAgIFtjdXJsXSBBZGQgc3VwcG9ydCBmb3IgSHR0
cE9ubHkgY29va2llcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggNWM3NDI5Yy4u
OThjYjAxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0yMzk4LDcgKzIzOTgs
NiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93U2hlbGwuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd1NoZWxsLmggXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93V2Vi
QXVkaW9DdXN0b20uY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d1dlYlNvY2tldEN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V3JhcHBlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RhdGFWaWV3Q3VzdG9tLmNwcCBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCmluZGV4
IDQxMjg5MmYuLjMwZTBiNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9XZWJTb2NrZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXQuY3BwCkBAIC0xMjYsNyArMTI2LDcgQEAgc3RhdGljIHVuc2lnbmVkIGxv
bmcgc2F0dXJhdGVBZGQodW5zaWduZWQgbG9uZyBhLCB1bnNpZ25lZCBsb25nIGIpCiAgICAgcmV0
dXJuIGEgKyBiOwogfQogCi1zdGF0aWMgYm9vbCB3ZWJTb2NrZXRzQXZhaWxhYmxlID0gZmFsc2U7
CitzdGF0aWMgYm9vbCB3ZWJTb2NrZXRzQXZhaWxhYmxlID0gdHJ1ZTsKIAogdm9pZCBXZWJTb2Nr
ZXQ6OnNldElzQXZhaWxhYmxlKGJvb2wgYXZhaWxhYmxlKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmlkbAppbmRleCA5YjUxMzliLi5lOWYwZmVh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Lmlk
bApAQCAtMzAsNyArMzAsNyBAQAogICovCiAKIFsKLSAgICBOb0ludGVyZmFjZU9iamVjdCwKKyAg
ICBFbmFibGVkQXRSdW50aW1lLAogICAgIENvbmRpdGlvbmFsPVdFQl9TT0NLRVRTLAogICAgIEFj
dGl2ZURPTU9iamVjdCwKICAgICBDb25zdHJ1Y3RvcihET01TdHJpbmcgdXJsKSwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
CmluZGV4IDYzYzI3ZGEuLjQxYjQ3ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Rhcmdl
dC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtMTE0LDcgKzExNCw2IEBA
IFNPVVJDRVMgKz0gXAogICAgICBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAgXAog
ICAgICBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcCBcCiAgICAgIGJpbmRpbmdzL2pz
L0pTRE9NV2luZG93V2ViQXVkaW9DdXN0b20uY3BwIFwKLSAgICAgYmluZGluZ3MvanMvSlNET01X
aW5kb3dXZWJTb2NrZXRDdXN0b20uY3BwIFwKICAgICAgYmluZGluZ3MvanMvSlNET01XcmFwcGVy
LmNwcCBcCiAgICAgIGJpbmRpbmdzL2pzL0pTRGF0YVZpZXdDdXN0b20uY3BwIFwKICAgICAgYmlu
ZGluZ3MvanMvSlNEZXZpY2VNb3Rpb25FdmVudEN1c3RvbS5jcHAgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvVXNlSlNDLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvVXNlSlNDLmNtYWtlCmlu
ZGV4IDRhMTczMWUuLjc5YjFlODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1VzZUpTQy5j
bWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21ha2UKQEAgLTY2LDcgKzY2LDYgQEAg
bGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3MvanMvSlNET01XaW5kb3dD
dXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKICAgICBiaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd1dlYkF1ZGlvQ3VzdG9tLmNwcAotICAgIGJpbmRpbmdzL2pzL0pT
RE9NV2luZG93V2ViU29ja2V0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRE9NV3JhcHBl
ci5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0RldmljZU1vdGlvbkV2ZW50Q3VzdG9tLmNwcAogICAg
IGJpbmRpbmdzL2pzL0pTRGV2aWNlT3JpZW50YXRpb25FdmVudEN1c3RvbS5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggMzM3MTQxZi4uMjQ1
MWYyMSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
QEAgLTY4MzI2LDU4ICs2ODMyNiw2IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJ
PC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNE
T01XaW5kb3dXZWJTb2NrZXRDdXN0b20uY3BwIgotCQkJCQk+Ci0JCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgotCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKLQkJCQkJCT4KLQkJCQkJCTxUb29sCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKLQkJCQkJCS8+Ci0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgotCQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKLQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgotCQkJCQkJPgotCQkJCQkJPFRvb2wKLQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgotCQkJCQkJLz4KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQkJPEZpbGVD
b25maWd1cmF0aW9uCi0JCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJCT4KLQkJCQkJCTxUb29sCi0JCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJCS8+Ci0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+Ci0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19D
RkxpdGV8V2luMzIiCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJCT4KLQkJ
CQkJCTxUb29sCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJCS8+Ci0JCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQkJTmFt
ZT0iRGVidWdfQWxsfFdpbjMyIgotCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJ
CQk+Ci0JCQkJCQk8VG9vbAotCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCQkv
PgotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJ
CQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKLQkJCQkJCT4KLQkJCQkJCTxUb29sCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
LQkJCQkJCS8+Ci0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPC9GaWxlPgotCQkJCTxG
aWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNET01XcmFwcGVyLmNwcCIK
IAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IGFmMzhhM2MuLjYxMzY5NmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtOTQ0
MSwxNCArOTQ0MSw2IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU0RPTVdpbmRvd1dlYlNvY2tldEN1c3RvbS5jcHAiPgot
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0g
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgot
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmluZGluZ3Nc
anNcSlNET01XcmFwcGVyLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCA2ZmY3YTg3Li5jMWEzYzZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
LmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvai5maWx0ZXJzCkBAIC01MzU4LDkgKzUzNTgsNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5cYmluZGluZ3NcanNcSlNET01XaW5kb3dXZWJBdWRpb0N1c3RvbS5jcHAiPgogICAgICAg
PEZpbHRlcj5iaW5kaW5nc1xqczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNET01XaW5kb3dXZWJTb2NrZXRDdXN0b20u
Y3BwIj4KLSAgICAgIDxGaWx0ZXI+YmluZGluZ3NcanM8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGls
ZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTRE9NV3JhcHBlci5j
cHAiPgogICAgICAgPEZpbHRlcj5iaW5kaW5nc1xqczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxl
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDg2NmNjY2IuLjQ2NmY3YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM1MDMsNyArMzUwMyw2IEBACiAJCUE3RjVE
OTUwMTM4NEYwMkQwMEEyOUE4NyAvKiBOb2RlUmVuZGVyaW5nQ29udGV4dC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdGNUQ5NEUxMzg0RjAyRDAwQTI5
QTg3IC8qIE5vZGVSZW5kZXJpbmdDb250ZXh0LmggKi87IH07CiAJCUE4MEEzOEZFMEU1MENDODIw
MEEyNUVCQyAvKiBQYXR0ZXJuQ0cuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTgwQTM4RkQwRTUwQ0M4MjAwQTI1RUJDIC8qIFBhdHRlcm5DRy5jcHAg
Ki87IH07CiAJCUE4MEE5NDIzMTQ5RjIyNUUwMDk4OTI5MSAvKiBKU0RPTVdpbmRvd1dlYkF1ZGlv
Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4MEE5NDIyMTQ5RjIyNUUwMDk4OTI5MSAvKiBKU0RPTVdpbmRvd1dlYkF1ZGlvQ3VzdG9tLmNw
cCAqLzsgfTsKLQkJQTgwQTk0MjUxNDlGMjI3MTAwOTg5MjkxIC8qIEpTRE9NV2luZG93V2ViU29j
a2V0Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4MEE5NDI0MTQ5RjIyNzEwMDk4OTI5MSAvKiBKU0RPTVdpbmRvd1dlYlNvY2tldEN1c3Rv
bS5jcHAgKi87IH07CiAJCUE4MEQ2NzA4MEU5RTlERUIwMEU0MjBGMCAvKiBHcmFwaGljc0NvbnRl
eHRQbGF0Zm9ybVByaXZhdGVDRy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTgwRDY3MDcwRTlFOURFQjAwRTQyMEYwIC8qIEdyYXBoaWNzQ29udGV4dFBs
YXRmb3JtUHJpdmF0ZUNHLmggKi87IH07CiAJCUE4MEU2Q0U0MEExOTg5Q0EwMDdGQjhDNSAvKiBD
U1NWYWx1ZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTgwRTZDQkEwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1ZhbHVlTGlzdC5jcHAgKi87IH07
CiAJCUE4MEU2Q0U2MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NQcmltaXRpdmVWYWx1ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTZDQkMwQTE5ODlD
QTAwN0ZCOEM1IC8qIENTU1ByaW1pdGl2ZVZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEwMDE0LDcgKzEwMDEzLDYgQEAKIAkJQTdGNzNF
REExNjlBRDdBQTAwQ0JBQTRCIC8qIERPTVNoYWRvd1Jvb3QubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01TaGFkb3dSb290Lm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBODBBMzhGRDBFNTBDQzgyMDBBMjVFQkMgLyogUGF0dGVybkNHLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhdHRlcm5DRy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MEE5NDIyMTQ5RjIyNUUwMDk4OTI5MSAvKiBKU0RP
TVdpbmRvd1dlYkF1ZGlvQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTRE9NV2luZG93V2ViQXVkaW9DdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQlBODBBOTQyNDE0OUYyMjcxMDA5ODkyOTEgLyogSlNET01XaW5kb3dXZWJTb2Nr
ZXRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNET01X
aW5kb3dXZWJTb2NrZXRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
ODBENjcwNzBFOUU5REVCMDBFNDIwRjAgLyogR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRl
Q0cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0UGxh
dGZvcm1Qcml2YXRlQ0cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgwRTZDQkEw
QTE5ODlDQTAwN0ZCOEM1IC8qIENTU1ZhbHVlTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQ1NTVmFsdWVMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTgwRTZDQkMwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1ByaW1pdGl2ZVZhbHVlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NQcmltaXRpdmVWYWx1ZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg5MTQsNyArMTg5MTIsNiBAQAogCQkJCUJD
RDlDMjVFMEMxN0FBNjcwMDVDOTBBMiAvKiBKU0RPTVdpbmRvd0N1c3RvbS5jcHAgKi8sCiAJCQkJ
NjUyRkJCQkIwREUyN0NCNjAwMDFEMzg2IC8qIEpTRE9NV2luZG93Q3VzdG9tLmggKi8sCiAJCQkJ
QTgwQTk0MjIxNDlGMjI1RTAwOTg5MjkxIC8qIEpTRE9NV2luZG93V2ViQXVkaW9DdXN0b20uY3Bw
ICovLAotCQkJCUE4MEE5NDI0MTQ5RjIyNzEwMDk4OTI5MSAvKiBKU0RPTVdpbmRvd1dlYlNvY2tl
dEN1c3RvbS5jcHAgKi8sCiAJCQkJQkMyRUQ1NTQwQzZCOUJEMzAwOTIwQkZGIC8qIEpTRWxlbWVu
dEN1c3RvbS5jcHAgKi8sCiAJCQkJQkNFRkFGNEQwQzMxN0U2OTAwRkE4MUY2IC8qIEpTRXZlbnRD
dXN0b20uY3BwICovLAogCQkJCTJFNzU4MkVEMTI3NjRGMjYwMDYyNjI4QiAvKiBKU0ZpbGVSZWFk
ZXJDdXN0b20uY3BwICovLApAQCAtMjU1NTgsNyArMjU1NTUsNiBAQAogCQkJCUJDRDlDMjYyMEMx
N0FBNjcwMDVDOTBBMiAvKiBKU0RPTVdpbmRvd0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCQ0JGQjUzQzBEQ0QyOUNGMDAxOUIzRTUgLyogSlNET01XaW5kb3dTaGVsbC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBODBBOTQyMzE0OUYyMjVFMDA5ODkyOTEgLyogSlNET01XaW5kb3dXZWJB
dWRpb0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBODBBOTQyNTE0OUYyMjcxMDA5ODky
OTEgLyogSlNET01XaW5kb3dXZWJTb2NrZXRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
Q0RERTY5MUYxNzFERkFEMDAwQTQ0RDg5IC8qIEpTQXVkaW9CdWZmZXJDdXN0b20uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRkQ3ODY4QjkxMzZCOTk5MjAwRDQwM0RGIC8qIEpTRHluYW1pY3NDb21w
cmVzc29yTm9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NURGMzFGOTA5RDFDQzYwMDAwQkUz
MjUgLyogSlNFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKaW5kZXggNTFhZGYzNS4uNTkzNmY2
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbElu
T25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5P
bmUuY3BwCkBAIC03MCw3ICs3MCw2IEBACiAjaW5jbHVkZSAiSlNET01XaW5kb3dDdXN0b20uY3Bw
IgogI2luY2x1ZGUgIkpTRE9NV2luZG93U2hlbGwuY3BwIgogI2luY2x1ZGUgIkpTRE9NV2luZG93
V2ViQXVkaW9DdXN0b20uY3BwIgotI2luY2x1ZGUgIkpTRE9NV2luZG93V2ViU29ja2V0Q3VzdG9t
LmNwcCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXIuY3BwIgogI2luY2x1ZGUgIkpTRGF0YVZpZXdD
dXN0b20uY3BwIgogI2luY2x1ZGUgIkpTRGVkaWNhdGVkV29ya2VyQ29udGV4dEN1c3RvbS5jcHAi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAK
aW5kZXggNzI1ZTg5NS4uZDBjMzBjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcApAQCAtNTQ3LDE1ICs1NDcsNiBAQCBKU1ZhbHVlIEpT
RE9NV2luZG93OjphdWRpbyhFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiB9CiAjZW5kaWYKIAotI2lm
IEVOQUJMRShTSEFSRURfV09SS0VSUykKLUpTVmFsdWUgSlNET01XaW5kb3c6OnNoYXJlZFdvcmtl
cihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Ci17Ci0gICAgaWYgKFNoYXJlZFdvcmtlclJlcG9zaXRv
cnk6OmlzQXZhaWxhYmxlKCkpCi0gICAgICAgIHJldHVybiBnZXRET01Db25zdHJ1Y3RvcjxKU1No
YXJlZFdvcmtlckNvbnN0cnVjdG9yPihleGVjLCB0aGlzKTsKLSAgICByZXR1cm4ganNVbmRlZmlu
ZWQoKTsKLX0KLSNlbmRpZgotCiAvLyBDdXN0b20gZnVuY3Rpb25zCiAKIEpTVmFsdWUgSlNET01X
aW5kb3c6Om9wZW4oRXhlY1N0YXRlKiBleGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dXZWJTb2NrZXRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dXZWJTb2NrZXRDdXN0b20uY3BwCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBjZTAwMTA0Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93V2ViU29ja2V0Q3VzdG9tLmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDUwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMDks
IDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAy
MDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
LSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
Ci0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAq
Ci0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIK
LSNpbmNsdWRlICJKU0RPTVdpbmRvd0N1c3RvbS5oIgotCi0jaWYgRU5BQkxFKFdFQl9TT0NLRVRT
KQotI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAiSlNXZWJTb2NrZXQuaCIKLSNpbmNsdWRl
ICJTZXR0aW5ncy5oIgotCi11c2luZyBuYW1lc3BhY2UgSlNDOwotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLXN0YXRpYyBTZXR0aW5ncyogc2V0dGluZ3NGb3JXaW5kb3dXZWJTb2NrZXQoY29uc3Qg
SlNET01XaW5kb3cqIHdpbmRvdykKLXsKLSAgICBBU1NFUlQod2luZG93KTsKLSAgICBpZiAoRnJh
bWUqIGZyYW1lID0gd2luZG93LT5pbXBsKCktPmZyYW1lKCkpCi0gICAgICAgIHJldHVybiBmcmFt
ZS0+c2V0dGluZ3MoKTsKLSAgICByZXR1cm4gMDsKLX0KLQotSlNWYWx1ZSBKU0RPTVdpbmRvdzo6
d2ViU29ja2V0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKLXsKLSAgICBpZiAoIXNldHRpbmdzRm9y
V2luZG93V2ViU29ja2V0KHRoaXMpKQotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAg
ICByZXR1cm4gZ2V0RE9NQ29uc3RydWN0b3I8SlNXZWJTb2NrZXRDb25zdHJ1Y3Rvcj4oZXhlYywg
dGhpcyk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGFj
YTlkOGMuLmM0YzEwM2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMTUxMCw2ICsxNTEwLDM3IEBAIHN1YiBHZXRTa2lw
VlRhYmxlVmFsaWRhdGlvbkZvckludGVyZmFjZQogICAgIHJldHVybiAkaW50ZXJmYWNlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiU2tpcFZUYWJsZVZhbGlkYXRpb24ifTsKIH0KIAorIyBVUkwgYmVj
b21lcyB1cmwsIGJ1dCBTZXRVUkwgYmVjb21lcyBzZXRVUkwuCitzdWIgVG9NZXRob2ROYW1lCit7
CisgICAgbXkgJHBhcmFtID0gc2hpZnQ7CisgICAgbXkgJHJldCA9IGxjZmlyc3QoJHBhcmFtKTsK
KyAgICAkcmV0ID1+IHMvaFRNTC9odG1sLyBpZiAkcmV0ID1+IC9eaFRNTC87CisgICAgJHJldCA9
fiBzL3VSTC91cmwvIGlmICRyZXQgPX4gL151UkwvOworICAgICRyZXQgPX4gcy9qUy9qcy8gaWYg
JHJldCA9fiAvXmpTLzsKKyAgICAkcmV0ID1+IHMveE1ML3htbC8gaWYgJHJldCA9fiAvXnhNTC87
CisgICAgJHJldCA9fiBzL3hTTFQveHNsdC8gaWYgJHJldCA9fiAvXnhTTFQvOworICAgICRyZXQg
PX4gcy9jU1MvY3NzLyBpZiAkcmV0ID1+IC9eY1NTLzsKKworICAgICMgRm9yIEhUTUw1IEZpbGVT
eXN0ZW0gQVBJIEZsYWdzIGF0dHJpYnV0ZXMuCisgICAgIyAoY3JlYXRlIGlzIHdpZGVseSB1c2Vk
IHRvIGluc3RhbnRpYXRlIGFuIG9iamVjdCBhbmQgbXVzdCBiZSBhdm9pZGVkLikKKyAgICAkcmV0
ID1+IHMvXmNyZWF0ZS9pc0NyZWF0ZS8gaWYgJHJldCA9fiAvXmNyZWF0ZSQvOworICAgICRyZXQg
PX4gcy9eZXhjbHVzaXZlL2lzRXhjbHVzaXZlLyBpZiAkcmV0ID1+IC9eZXhjbHVzaXZlJC87CisK
KyAgICByZXR1cm4gJHJldDsKK30KKworIyBSZXR1cm5zIHRoZSBSdW50aW1lRW5hYmxlZEZlYXR1
cmVzIGZ1bmN0aW9uIG5hbWUgdGhhdCBpcyBob29rZWQgdXAgdG8gY2hlY2sgaWYgYSBtZXRob2Qv
YXR0cmlidXRlIGlzIGVuYWJsZWQuCitzdWIgR2V0UnVudGltZUVuYWJsZUZ1bmN0aW9uTmFtZQor
eworICAgIG15ICRzaWduYXR1cmUgPSBzaGlmdDsKKworICAgICMgSWYgYSBwYXJhbWV0ZXIgaXMg
Z2l2ZW4gKGUuZy4gIkVuYWJsZWRBdFJ1bnRpbWU9RmVhdHVyZU5hbWUiKSByZXR1cm4gdGhlIFJ1
bnRpbWVFbmFibGVkRmVhdHVyZXM6OntGZWF0dXJlTmFtZX1FbmFibGVkKCkgbWV0aG9kLgorICAg
IHJldHVybiAiUnVudGltZUVuYWJsZWRGZWF0dXJlczo6IiAuIFRvTWV0aG9kTmFtZSgkc2lnbmF0
dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRW5hYmxlZEF0UnVudGltZSJ9KSAuICJFbmFibGVk
IiBpZiAoJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkVuYWJsZWRBdFJ1bnRpbWUi
fSAmJiAkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRW5hYmxlZEF0UnVudGltZSJ9
IG5lICJWQUxVRV9JU19NSVNTSU5HIik7CisKKyAgICAjIE90aGVyd2lzZSByZXR1cm4gYSBmdW5j
dGlvbiBuYW1lZCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjp7bWV0aG9kTmFtZX1FbmFibGVkKCku
CisgICAgcmV0dXJuICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjoiIC4gVG9NZXRob2ROYW1lKCRz
aWduYXR1cmUtPm5hbWUpIC4gIkVuYWJsZWQiOworfQogCiBzdWIgR2VuZXJhdGVJbXBsZW1lbnRh
dGlvbgogewpAQCAtMTk0Nyw2ICsxOTc4LDE0IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9u
CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU1ZhbHVlICR7Z2V0RnVuY3Rp
b25OYW1lfShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIFByb3BlcnR5TmFtZSlc
biIpOwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAKKyAgICAg
ICAgICAgICAgICAjIEdsb2JhbCBjb25zdHJ1Y3RvcnMgY2FuIGJlIGRpc2FibGVkIGF0IHJ1bnRp
bWUuCisgICAgICAgICAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkVuYWJsZWRBdFJ1bnRpbWUifSAmJiAkYXR0cmlidXRlLT5zaWduYXR1cmUt
PnR5cGUgPX4gL0NvbnN0cnVjdG9yJC8pIHsKKyAgICAgICAgICAgICAgICAgICAgQWRkVG9JbXBs
SW5jbHVkZXMoIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIpOworICAgICAgICAgICAgICAgICAg
ICBteSAkZW5hYmxlX2Z1bmN0aW9uID0gR2V0UnVudGltZUVuYWJsZUZ1bmN0aW9uTmFtZSgkYXR0
cmlidXRlLT5zaWduYXR1cmUpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICBpZiAoISR7ZW5hYmxlX2Z1bmN0aW9ufSgpKVxuIik7CisgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTtcbiIp
OworICAgICAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgICAgIGlmICghJGF0dHJpYnV0ZS0+
aXNTdGF0aWMgfHwgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlID1+IC9Db25zdHJ1Y3RvciQv
KSB7CiAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NO
YW1lfSogY2FzdGVkVGhpcyA9IGpzQ2FzdDwkY2xhc3NOYW1lKj4oYXNPYmplY3Qoc2xvdEJhc2Up
KTtcbiIpOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0IGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dAppbmRleCA0NmEzYjdiLi5kOTliOWU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0
ZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRl
cy50eHQKQEAgLTUyLDYgKzUyLDcgQEAgRG9Ob3RDaGVja0NvbnN0YW50cwogRG9Ob3RDaGVja1Nl
Y3VyaXR5CiBEb05vdENoZWNrU2VjdXJpdHlPbkdldHRlcgogRG9Ob3RDaGVja1NlY3VyaXR5T25T
ZXR0ZXIKK0VuYWJsZWRBdFJ1bnRpbWU9KgogRW5mb3JjZVJhbmdlCiBFdmVudFRhcmdldAogRXh0
ZW5kc0RPTUdsb2JhbE9iamVjdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCmluZGV4IDg2MmM4
OTEuLjhkM2EzYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93Lmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTMyNiw4ICszMjYs
NiBAQAogICAgIGF0dHJpYnV0ZSBIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yIEhUTUxPcHRp
b25FbGVtZW50OwogICAgIFtDdXN0b21HZXR0ZXIsIENvbmRpdGlvbmFsPVZJREVPXSBhdHRyaWJ1
dGUgSFRNTEF1ZGlvRWxlbWVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IgQXVkaW87IC8vIFVzYWJs
ZSB3aXRoIHRoZSBuZXcgb3BlcmF0b3IKICAgICBbQ29uZGl0aW9uYWw9VklERU9dIGF0dHJpYnV0
ZSBIVE1MQXVkaW9FbGVtZW50Q29uc3RydWN0b3IgSFRNTEF1ZGlvRWxlbWVudDsKLSAgICBbQ29u
ZGl0aW9uYWw9V0VCX1NPQ0tFVFMsIEN1c3RvbUdldHRlcl0gYXR0cmlidXRlIFdlYlNvY2tldENv
bnN0cnVjdG9yIFdlYlNvY2tldDsKLSAgICBbQ29uZGl0aW9uYWw9U0hBUkVEX1dPUktFUlMsIEN1
c3RvbUdldHRlcl0gYXR0cmlidXRlIFNoYXJlZFdvcmtlckNvbnN0cnVjdG9yIFNoYXJlZFdvcmtl
cjsgLy8gVXNhYmxlIHdpdGggdGhlIG5ldyBvcGVyYXRvcgogICAgIC8vIE1vemlsbGEgaGFzIGEg
c2VwYXJhdGUgWE1MRG9jdW1lbnQgb2JqZWN0IGZvciBYTUwgZG9jdW1lbnRzLgogICAgIC8vIFdl
IGp1c3QgdXNlIERvY3VtZW50IGZvciB0aGlzLgogICAgIGF0dHJpYnV0ZSBEb2N1bWVudENvbnN0
cnVjdG9yIFhNTERvY3VtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9T
aGFyZWRXb3JrZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXIuaWRs
CmluZGV4IGI3ODY0MjUuLmY1NTVmNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvU2hhcmVkV29ya2VyLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdv
cmtlci5pZGwKQEAgLTMwLDcgKzMwLDcgQEAKICAqLwogCiBbCi0gICAgTm9JbnRlcmZhY2VPYmpl
Y3QsCisgICAgRW5hYmxlZEF0UnVudGltZSwKICAgICBDb25kaXRpb25hbD1TSEFSRURfV09SS0VS
UywKICAgICBDdXN0b21Db25zdHJ1Y3RvciwKICAgICBDb25zdHJ1Y3RvcihET01TdHJpbmcgc2Ny
aXB0VVJMLCBbRGVmYXVsdD1OdWxsU3RyaW5nXSBvcHRpb25hbCBET01TdHJpbmcgbmFtZSksCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>201927</attachid>
            <date>2013-05-15 23:37:52 -0700</date>
            <delta_ts>2013-05-15 23:37:52 -0700</delta_ts>
            <desc>JSDOMWindow.cpp diff</desc>
            <filename>JSDOMWindow.cpp.diff</filename>
            <type>text/plain</type>
            <size>1632</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">LS0tIFdlYktpdEJ1aWxkL0RlYnVnL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01XaW5kb3cu
Y3BwCTIwMTMtMDUtMTYgMDk6MzM6MzAuMDYwOTUyODYxICswMzAwCisrKyBXZWJLaXRCdWlsZC9E
ZWJ1Zy9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93LmNwcC5iYWsJMjAxMy0wNS0x
NSAxNjo0NjoxMy40NzA2MjA3NDkgKzAzMDAKQEAgLTI0OCw2ICsyNDgsNyBAQAogI2luY2x1ZGUg
Ik1lZGlhUXVlcnlMaXN0LmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yLmgiCiAjaW5jbHVkZSAiUGVy
Zm9ybWFuY2UuaCIKKyNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVk
ZSAiU2NyZWVuLmgiCiAjaW5jbHVkZSAiU3RvcmFnZS5oIgogI2luY2x1ZGUgIlN0eWxlTWVkaWEu
aCIKQEAgLTU1NzMsMTAgKzU1NzQsMTIgQEAKICNpZiBFTkFCTEUoV0VCX1NPQ0tFVFMpCiBKU1Zh
bHVlIGpzRE9NV2luZG93V2ViU29ja2V0Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU1Zh
bHVlIHNsb3RCYXNlLCBQcm9wZXJ0eU5hbWUpCiB7CisgICAgaWYgKCFSdW50aW1lRW5hYmxlZEZl
YXR1cmVzOjp3ZWJTb2NrZXRFbmFibGVkKCkpCisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgp
OwogICAgIEpTRE9NV2luZG93KiBjYXN0ZWRUaGlzID0ganNDYXN0PEpTRE9NV2luZG93Kj4oYXNP
YmplY3Qoc2xvdEJhc2UpKTsKICAgICBpZiAoIUJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dB
Y2Nlc3NUb0RPTVdpbmRvdyhleGVjLCBjYXN0ZWRUaGlzLT5pbXBsKCkpKQogICAgICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKLSAgICByZXR1cm4gY2FzdGVkVGhpcy0+d2ViU29ja2V0KGV4ZWMp
OworICAgIHJldHVybiBKU1dlYlNvY2tldDo6Z2V0Q29uc3RydWN0b3IoZXhlYywgY2FzdGVkVGhp
cyk7CiB9CiAKICNlbmRpZgpAQCAtODAxOCwxMCArODAyMSwxMiBAQAogI2lmIEVOQUJMRShTSEFS
RURfV09SS0VSUykKIEpTVmFsdWUganNET01XaW5kb3dTaGFyZWRXb3JrZXJDb25zdHJ1Y3RvcihF
eGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIFByb3BlcnR5TmFtZSkKIHsKKyAgICBp
ZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZFdvcmtlckVuYWJsZWQoKSkKKyAgICAg
ICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgSlNET01XaW5kb3cqIGNhc3RlZFRoaXMgPSBq
c0Nhc3Q8SlNET01XaW5kb3cqPihhc09iamVjdChzbG90QmFzZSkpOwogICAgIGlmICghQmluZGlu
Z1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRE9NV2luZG93KGV4ZWMsIGNhc3RlZFRoaXMt
PmltcGwoKSkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIHJldHVybiBjYXN0
ZWRUaGlzLT5zaGFyZWRXb3JrZXIoZXhlYyk7CisgICAgcmV0dXJuIEpTU2hhcmVkV29ya2VyOjpn
ZXRDb25zdHJ1Y3RvcihleGVjLCBjYXN0ZWRUaGlzKTsKIH0KIAogI2VuZGlmCkBAIC05ODUyLDcg
Kzk4NTcsNiBAQAogCiAjZW5kaWYKIAotCiB2b2lkIHNldEpTRE9NV2luZG93WE1MRG9jdW1lbnRD
b25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBKU1ZhbHVl
IHZhbHVlKQogewogICAgIFVOVVNFRF9QQVJBTShleGVjKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>