<?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>14953</bug_id>
          
          <creation_ts>2007-08-12 16:28:07 -0700</creation_ts>
          <short_desc>Implement window.console in WebCore</short_desc>
          <delta_ts>2007-12-05 14:12:47 -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>DOM</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</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>14354</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aroben</cc>
    
    <cc>info</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2489</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-08-12 16:28:07 -0700</bug_when>
    <thetext>The first step to supporting the Firebug Console API (see Bug 14354) is to implement window.console in WebCore.  (Currently, both Safari for Windows and Safari for Mac OS X implement it within the browser.)

Will attach a patch shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2491</commentid>
    <comment_count>1</comment_count>
      <attachid>15943</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-08-12 16:42:40 -0700</bug_when>
    <thetext>Created attachment 15943
Patch v1

Initial implementation of window.console in WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2492</commentid>
    <comment_count>2</comment_count>
      <attachid>15943</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-08-12 17:08:10 -0700</bug_when>
    <thetext>Comment on attachment 15943
Patch v1

Maciej says:

We&apos;ve used shadow/shadowing to refer specifically to overriding a built-in Window property with a var declaration, I think a better name for this concept would be &quot;Replaceable&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2493</commentid>
    <comment_count>3</comment_count>
      <attachid>15943</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-08-12 17:31:29 -0700</bug_when>
    <thetext>Comment on attachment 15943
Patch v1

Wrong license applied to source files as well.  Should be BSD-style, not LGPL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2495</commentid>
    <comment_count>4</comment_count>
      <attachid>15944</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-08-12 17:58:37 -0700</bug_when>
    <thetext>Created attachment 15944
Updated patch [WIP]

Adding an updated patch that is not quite ready for review.  This moves Console.{h,cpp,idl} to WebCore/page/ with the rest of the window objects, fixes the licenses, fixes some style issues and changes the extended attribute to Replaceable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2417</commentid>
    <comment_count>5</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-08-12 18:43:45 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Created an attachment (id=15944) [edit]
&gt; Updated patch [WIP]

WebCore.pro and WebCore.vcproj changes were lost from previous patch.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2419</commentid>
    <comment_count>6</comment_count>
      <attachid>15946</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-08-12 18:56:36 -0700</bug_when>
    <thetext>Created attachment 15946
Even more updated [Still WIP]

Adds WebCore.pro and WebCore.vcproj back</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58408</commentid>
    <comment_count>7</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-10-13 02:50:50 -0700</bug_when>
    <thetext>&lt;rdar://problem/5539122&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59635</commentid>
    <comment_count>8</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2007-10-27 12:39:50 -0700</bug_when>
    <thetext>+    // FIXME: this should use LogMessageLevel, but must use ErrorMessageLevel for now to forward message to the console.

etc.

We should pass the right message level to Crome and let Crome&apos;s addMessageToConsole do the right thing when calling the client. Passing the wrong message level is gimping the new Web Inspector console.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59636</commentid>
    <comment_count>9</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2007-10-27 12:53:19 -0700</bug_when>
    <thetext>If you make this change:

Index: page/Chrome.cpp
===================================================================
--- page/Chrome.cpp	(revision 27149)
+++ page/Chrome.cpp	(working copy)
@@ -197,7 +197,7 @@
 
 void Chrome::addMessageToConsole(MessageSource source, MessageLevel level, const String&amp; message, unsigned lineNumber, const String&amp; sourceID)
 {
-    if (source == JSMessageSource &amp;&amp; level == ErrorMessageLevel)
+    if (source == JSMessageSource)
         m_client-&gt;addMessageToConsole(message, lineNumber, sourceID);
 
     if (InspectorController* inspector = m_page-&gt;inspectorController())

Then you can pass all the correct message levels.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59639</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2007-10-27 16:00:29 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; +    // FIXME: this should use LogMessageLevel, but must use ErrorMessageLevel
&gt; for now to forward message to the console.
&gt; 
&gt; etc.
&gt; 
&gt; We should pass the right message level to Crome and let Crome&apos;s
&gt; addMessageToConsole do the right thing when calling the client. Passing the
&gt; wrong message level is gimping the new Web Inspector console.

When I added the message level/source stuff I was being pretty paranoid about not changing the set of messages passed up to the ChromeClient. I think we can be less paranoid now and do as you suggest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59643</commentid>
    <comment_count>11</comment_count>
      <attachid>16904</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-10-27 19:05:04 -0700</bug_when>
    <thetext>Created attachment 16904
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59644</commentid>
    <comment_count>12</comment_count>
      <attachid>16904</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2007-10-27 19:19:54 -0700</bug_when>
    <thetext>Comment on attachment 16904
patch

It might be nice to add a test that actually called methods on the Console object.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59645</commentid>
    <comment_count>13</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-10-27 19:25:36 -0700</bug_when>
    <thetext>Landed in r27161</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63382</commentid>
    <comment_count>14</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2007-12-05 14:12:47 -0800</bug_when>
    <thetext>*** Bug 14263 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>15943</attachid>
            <date>2007-08-12 16:42:40 -0700</date>
            <delta_ts>2007-08-12 18:42:10 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-14953-v1.diff</filename>
            <type>text/plain</type>
            <size>21475</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNTAyNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzMgQEAKKzIwMDctMDgtMTIgIERhdmlkIEtpbHplciAgPGRka2lsemVyQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
LSBmaXggaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5NTMKKyAgICAg
ICAgICBJbXBsZW1lbnQgd2luZG93LmNvbnNvbGUgaW4gV2ViQ29yZQorCisgICAgICAgIFdlYkNv
cmUgaW1wbGVtZW50YXRpb24gYnkgRnJhbmNpc2NvIFRvbG1hc2t5LiAgUmVwbGFjZWFiaWxpdHkg
YnkgRGF2aWQgS2lsemVyLgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZTogQWRkZWQg
SlNDb25zb2xlLmggdG8gJ2FsbCcgdGFyZ2V0LgorICAgICAgICAqIFdlYkNvcmUucHJvOiBBZGRl
ZCBmaWxlcyB0byBwcm9qZWN0LgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
IERpdHRvLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOiBJ
bXBsZW1lbnQgQWxsb3dTaGFkb3dpbmcgZm9yIGF0dHJpYnV0ZXMuCisgICAgICAgICogZG9tL0Nv
bnNvbGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnNvbGU6OkNvbnNvbGUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29uc29sZTo6ZnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6Q29u
c29sZTo6ZGlzY29ubmVjdEZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnNvbGU6OmVycm9y
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnNvbGU6OmluZm8pOgorICAgICAgICAoV2ViQ29yZTo6
Q29uc29sZTo6bG9nKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnNvbGU6Ondhcm4pOgorICAgICAg
ICAqIGRvbS9Db25zb2xlLmg6IEFkZGVkLgorICAgICAgICAqIGRvbS9Db25zb2xlLmlkbDogQWRk
ZWQuCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9N
V2luZG93OjpjbGVhcik6IERpc2Nvbm5lY3QgbV9jb25zb2xlIGZyb20gbV9mcmFtZSBhbmQgY2xl
YXIuCisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmNvbnNvbGUpOiBJbnN0YW50aWF0ZSBj
b25zb2xlIGltcGxlbWVudGF0aW9uIGlmIG5lZWRlZCBhbmQgcmV0dXJuLgorICAgICAgICAqIHBh
Z2UvRE9NV2luZG93Lmg6IEFkZGVkIG1fY29uc29sZSBmaWVsZCBhbmQgZGVmaW5lZCBjb25zb2xl
KCkgbWV0aG9kLgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDogQWRkZWQgY29uc29sZSBh
dHRyaWJ1dGUuCisKIDIwMDctMDgtMTEgIE1pdHogUGV0dGVsICA8bWl0ekB3ZWJraXQub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluLgpJbmRleDogV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNp
b24gMjUwMjMpCisrKyBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkK
QEAgLTMxOCw2ICszMTgsNyBAQCBhbGwgOiBcCiAgICAgSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQuaCBcCiAgICAgSlNDaGFyYWN0ZXJEYXRhLmggXAogICAgIEpTQ29tbWVudC5oIFwKKyAgICBK
U0NvbnNvbGUuaCBcCiAgICAgSlNDb3VudGVyLmggXAogICAgIEpTQ1NTU3R5bGVEZWNsYXJhdGlv
bi5oIFwKICAgICBKU0RPTUV4Y2VwdGlvbkNvbnN0cnVjdG9yLmx1dC5oIFwKSW5kZXg6IFdlYkNv
cmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnBybwkocmV2aXNp
b24gMjUwMjMpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0xOTUs
NiArMTk1LDcgQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICBkb20vQ2hhcmFjdGVyRGF0YS5pZGwg
XAogICAgIGRvbS9DREFUQVNlY3Rpb24uaWRsIFwKICAgICBkb20vQ29tbWVudC5pZGwgXAorICAg
IGRvbS9Db25zb2xlLmlkbCBcCiAgICAgZG9tL0RvY3VtZW50RnJhZ21lbnQuaWRsIFwKICAgICBk
b20vRG9jdW1lbnQuaWRsIFwKICAgICBkb20vRG9jdW1lbnRUeXBlLmlkbCBcCkBAIC0zODksNiAr
MzkwLDcgQEAgU09VUkNFUyArPSBcCiAgICAgZG9tL0NsaXBib2FyZC5jcHAgXAogICAgIGRvbS9D
bGlwYm9hcmRFdmVudC5jcHAgXAogICAgIGRvbS9Db21tZW50LmNwcCBcCisgICAgZG9tL0NvbnNv
bGUuY3BwIFwKICAgICBkb20vQ29udGFpbmVyTm9kZS5jcHAgXAogICAgIGRvbS9DU1NNYXBwZWRB
dHRyaWJ1dGVEZWNsYXJhdGlvbi5jcHAgXAogICAgIGRvbS9Eb2N1bWVudC5jcHAgXApJbmRleDog
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiAyNTAyMykKKysrIFdl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTQx
Miw2ICs0MTIsMTQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZl
UGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNl
c1xKU0NvbnNvbGUuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRp
dmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3Vy
Y2VzXEpTQ29uc29sZS5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRp
dmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3Vy
Y2VzXEpTQ291bnRlci5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpAQCAtNTYyMCw2ICs1NjI4LDE0
IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRv
bVxDb25zb2xlLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZl
UGF0aD0iLi5cZG9tXENvbnNvbGUuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cZG9tXENvbnRhaW5lck5vZGUuY3BwIgogCQkJCT4KIAkJCTwvRmls
ZT4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZp
c2lvbiAyNTAyMykKKysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CSh3b3JraW5nIGNvcHkpCkBAIC0yODUsNiArMjg1LDEwIEBACiAJCTQ0OEEyOUJGMEE0NkQ5Q0Iw
MDMwNzU5RiAvKiBKU0hUTUxPcHRpb25zQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQ4QTI5QkQwQTQ2RDlDQjAwMzA3NTlGIC8qIEpT
SFRNTE9wdGlvbnNDb2xsZWN0aW9uLmggKi87IH07CiAJCTQ0OEEyOUMwMEE0NkQ5Q0IwMDMwNzU5
RiAvKiBKU0hUTUxPcHRpb25zQ29sbGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDhBMjlCRTBBNDZEOUNCMDAzMDc1OUYgLyogSlNIVE1M
T3B0aW9uc0NvbGxlY3Rpb24uY3BwICovOyB9OwogCQk0NDhBRDI3QzBBNDgxMzdBMDAyM0QxNzkg
LyogSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb25DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQ4QUQyN0EwQTQ4MTM3OTAwMjNEMTc5IC8qIEpT
SFRNTE9wdGlvbnNDb2xsZWN0aW9uQ3VzdG9tLmNwcCAqLzsgfTsKKwkJNDRBMEYzNEIwQzZDMDE5
QTAwMTg5NzA1IC8qIENvbnNvbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDRBMEYzNDgwQzZDMDE5QTAwMTg5NzA1IC8qIENvbnNvbGUuY3BwICov
OyB9OworCQk0NEEwRjM0QzBDNkMwMTlBMDAxODk3MDUgLyogQ29uc29sZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDRBMEYzNDkwQzZDMDE5QTAwMTg5
NzA1IC8qIENvbnNvbGUuaCAqLzsgfTsKKwkJNDRBMEYzNkMwQzZDMDMwODAwMTg5NzA1IC8qIEpT
Q29uc29sZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0NEEwRjM2MDBDNkMwMkRCMDAxODk3MDUgLyogSlNDb25zb2xlLmNwcCAqLzsgfTsKKwkJNDRB
MEYzNzQwQzZDMDMzODAwMTg5NzA1IC8qIEpTQ29uc29sZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDRBMEYzNjEwQzZDMDJEQjAwMTg5NzA1IC8qIEpT
Q29uc29sZS5oICovOyB9OwogCQk0NjE0QTFGRTBCMjNBOEQ2MDA0NDZFMUMgLyogY29weUN1cnNv
ci5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2
MTRBMUZEMEIyM0E4RDYwMDQ0NkUxQyAvKiBjb3B5Q3Vyc29yLnBuZyAqLzsgfTsKIAkJNDY0RUEy
NzMwQjhBMzUwQjAwQThFNkUzIC8qIGNyb3NzSGFpckN1cnNvci5wbmcgaW4gUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NEVBMjcxMEI4QTM1MEIwMEE4RTZF
MyAvKiBjcm9zc0hhaXJDdXJzb3IucG5nICovOyB9OwogCQk0NjRFQTI3NDBCOEEzNTBCMDBBOEU2
RTMgLyogbm90QWxsb3dlZEN1cnNvci5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NEVBMjcyMEI4QTM1MEIwMEE4RTZFMyAvKiBub3RBbGxvd2Vk
Q3Vyc29yLnBuZyAqLzsgfTsKQEAgLTM1MzAsNiArMzUzNCwxMSBAQAogCQk0NDhBMjlCRDBBNDZE
OUNCMDAzMDc1OUYgLyogSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQ0OEEyOUJFMEE0NkQ5Q0IwMDMwNzU5RiAvKiBKU0hUTUxPcHRp
b25zQ29sbGVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNIVE1MT3B0aW9uc0NvbGxlY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0NDhBRDI3QTBBNDgxMzc5MDAyM0QxNzkgLyogSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb25DdXN0
b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MT3B0aW9u
c0NvbGxlY3Rpb25DdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NEEw
RjM0ODBDNkMwMTlBMDAxODk3MDUgLyogQ29uc29sZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQ29uc29sZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQ0QTBGMzQ5MEM2QzAxOUEwMDE4OTcwNSAvKiBDb25zb2xlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDb25zb2xlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQ0QTBGMzRBMEM2QzAxOUEwMDE4OTcwNSAvKiBDb25zb2xlLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gQ29uc29sZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ0
QTBGMzYwMEM2QzAyREIwMDE4OTcwNSAvKiBKU0NvbnNvbGUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ29uc29sZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTQ0QTBGMzYxMEM2QzAyREIwMDE4OTcwNSAvKiBKU0NvbnNvbGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ29uc29sZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0NjE0QTFGRDBCMjNBOEQ2MDA0NDZFMUMgLyogY29weUN1cnNvci5wbmcg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5w
bmc7IHBhdGggPSBjb3B5Q3Vyc29yLnBuZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDY0RUEyNzEwQjhBMzUwQjAwQThFNkUzIC8qIGNyb3NzSGFpckN1cnNvci5wbmcgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGgg
PSBjcm9zc0hhaXJDdXJzb3IucG5nOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjRF
QTI3MjBCOEEzNTBCMDBBOEU2RTMgLyogbm90QWxsb3dlZEN1cnNvci5wbmcgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSBu
b3RBbGxvd2VkQ3Vyc29yLnBuZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY1Njks
NiArNjU3OCw4IEBACiAJCQkJNjVERjMxRTAwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTQ2hhcmFjdGVy
RGF0YS5oICovLAogCQkJCTkzRjlCNkRFMEJBMEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuY3Bw
ICovLAogCQkJCTkzRjlCNkRGMEJBMEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuaCAqLywKKwkJ
CQk0NEEwRjM2MDBDNkMwMkRCMDAxODk3MDUgLyogSlNDb25zb2xlLmNwcCAqLywKKwkJCQk0NEEw
RjM2MTBDNkMwMkRCMDAxODk3MDUgLyogSlNDb25zb2xlLmggKi8sCiAJCQkJOTMwNzA1RDcwOUUw
QzlCNzAwQjE3RkU0IC8qIEpTQ291bnRlci5jcHAgKi8sCiAJCQkJOTMwNzA1RDkwOUUwQzlCRjAw
QjE3RkU0IC8qIEpTQ291bnRlci5oICovLAogCQkJCUJDNDZDMUYwMEMwRERDOEYwMDIwQ0ZDMyAv
KiBKU0NTU0NoYXJzZXRSdWxlLmNwcCAqLywKQEAgLTEwMDMyLDYgKzEwMDQzLDkgQEAKIAkJCQk2
NTUwQjY5NzA5OURGMDI3MDA5MEQ3ODEgLyogQ29tbWVudC5jcHAgKi8sCiAJCQkJNjU1MEI2OTgw
OTlERjAyNzAwOTBENzgxIC8qIENvbW1lbnQuaCAqLywKIAkJCQk4NTA4OUNDNzBBOThDMjI2MDBB
Mjc1QUEgLyogQ29tbWVudC5pZGwgKi8sCisJCQkJNDRBMEYzNDgwQzZDMDE5QTAwMTg5NzA1IC8q
IENvbnNvbGUuY3BwICovLAorCQkJCTQ0QTBGMzQ5MEM2QzAxOUEwMDE4OTcwNSAvKiBDb25zb2xl
LmggKi8sCisJCQkJNDRBMEYzNEEwQzZDMDE5QTAwMTg5NzA1IC8qIENvbnNvbGUuaWRsICovLAog
CQkJCUE4MTg3MjE0MDk3N0QzQzAwMDU4MjZEOSAvKiBDb250YWluZXJOb2RlLmNwcCAqLywKIAkJ
CQlBODE4NzIxMTA5NzdEM0MwMDA1ODI2RDkgLyogQ29udGFpbmVyTm9kZS5oICovLAogCQkJCUE4
QzRBN0Y4MDlENTYzMjcwMDAzQUM4RCAvKiBDU1NNYXBwZWRBdHRyaWJ1dGVEZWNsYXJhdGlvbi5j
cHAgKi8sCkBAIC0xMTcwNSw2ICsxMTcxOSw4IEBACiAJCQkJQjQwMkZEMEIwQzRDOUMzOTAwMjEw
QUE2IC8qIEJpZGlSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYzMUNCRjkyQjY1NDcz
MEJBMDUzNUU4IC8qIEJpZGlDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDMyRTg0NzBD
NTE0OTM4MDBCMTUwMEYgLyogR0NDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0NEEw
RjM0QzBDNkMwMTlBMDAxODk3MDUgLyogQ29uc29sZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDRB
MEYzNzQwQzZDMDMzODAwMTg5NzA1IC8qIEpTQ29uc29sZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0x
MzE2MCw2ICsxMzE3Niw4IEBACiAJCQkJQkM3NzJDNUUwQzRFQjM0NDAwODMyODVGIC8qIE1JTUVU
eXBlUmVnaXN0cnlNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlGOTcxRTI3RkQ3MEY0MzgyQkM2
NkQ3OTIgLyogQmlkaUNvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQzMkU4NDkwQzUx
NDkzRjAwQjE1MDBGIC8qIEdDQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0NEEw
RjM0QjBDNkMwMTlBMDAxODk3MDUgLyogQ29uc29sZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0
NEEwRjM2QzBDNkMwMzA4MDAxODk3MDUgLyogSlNDb25zb2xlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUJDMkVENTU1MEM2QjlCRDMwMDkyMEJGRiAvKiBKU0VsZW1lbnRDdXN0b20uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkMyRUQ2NTAwQzZCQzQ4QzAwOTIwQkZGIC8qIEpTSFRNTElGcmFtZUVs
ZW1lbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyRUQ2QkMwQzZCRDJGMDAwOTIw
QkZGIC8qIEpTQXR0ckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFdlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24gMjUwMjMpCisrKyBX
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDE0LDYgKzEwMTQsOSBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAg
ICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siSlMiIC4gJGNvbnN0cnVjdG9yVHlwZSAu
ICIuaCJ9ID0gMTsKICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgICAgICAvLyBTaGFkb3dpbmcgYSBidWlsdC1pbiBjb25zdHJ1Y3RvclxuIik7CiAgICAgICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgSlNPYmplY3Q6OnB1
dChleGVjLCBcIiRuYW1lXCIsIHZhbHVlKTtcbiIpOworICAgICAgICAgICAgICAgICAgICB9IGVs
c2lmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJBbGxvd1No
YWRvd2luZyJ9KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICAgICAgLy8gU2hhZG93aW5nIGEgYnVpbHQtaW4gb2JqZWN0XG4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBKU09iamVjdDo6cHV0KGV4
ZWMsIFwiJG5hbWVcIiwgdmFsdWUpO1xuIik7CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHBvZFR5cGUpIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgJHBvZFR5cGUmIGltcCgq
aW1wbCgpKTtcblxuIik7CkluZGV4OiBXZWJDb3JlL2RvbS9Db25zb2xlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2RvbS9Db25zb2xlLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvZG9t
L0NvbnNvbGUuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICog
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAs
CisgKiBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiQXR0ci5oIgorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
Q29uc29sZS5oIgorCisjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNp
bmNsdWRlICJGcmFtZUxvYWRlci5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQbGF0
Zm9ybVN0cmluZy5oIgorCituYW1lc3BhY2UgV2ViQ29yZQoreworCitDb25zb2xlOjpDb25zb2xl
KEZyYW1lKiBmcmFtZSkKKyAgICA6IG1fZnJhbWUoZnJhbWUpCit7ICAgICAgICAKK30KKworRnJh
bWUqIENvbnNvbGU6OmZyYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9mcmFtZTsKK30KKwor
dm9pZCBDb25zb2xlOjpkaXNjb25uZWN0RnJhbWUoKQoreworICAgIG1fZnJhbWUgPSAwOworfQor
Cit2b2lkIENvbnNvbGU6OmVycm9yKGNvbnN0IFN0cmluZyYgYU1lc3NhZ2UpCit7CisgICAgaWYg
KG1fZnJhbWUgJiYgbV9mcmFtZS0+cGFnZSgpKQorICAgICAgICBtX2ZyYW1lLT5wYWdlKCktPmNo
cm9tZSgpLT5hZGRNZXNzYWdlVG9Db25zb2xlKEpTTWVzc2FnZVNvdXJjZSwgRXJyb3JNZXNzYWdl
TGV2ZWwsIGFNZXNzYWdlLCAxLCBtX2ZyYW1lLT5sb2FkZXIoKS0+dXJsKCkucHJldHR5VVJMKCkp
OworfQorICAgIAordm9pZCBDb25zb2xlOjppbmZvKGNvbnN0IFN0cmluZyYgYU1lc3NhZ2UpCit7
CisgICAgaWYgKG1fZnJhbWUgJiYgbV9mcmFtZS0+cGFnZSgpKQorICAgICAgICBtX2ZyYW1lLT5w
YWdlKCktPmNocm9tZSgpLT5hZGRNZXNzYWdlVG9Db25zb2xlKEpTTWVzc2FnZVNvdXJjZSwgTG9n
TWVzc2FnZUxldmVsLCBhTWVzc2FnZSwgMSwgbV9mcmFtZS0+bG9hZGVyKCktPnVybCgpLnByZXR0
eVVSTCgpKTsKK30KKwordm9pZCBDb25zb2xlOjpsb2coY29uc3QgU3RyaW5nJiBhTWVzc2FnZSkK
K3sKKyAgICBpZiAobV9mcmFtZSAmJiBtX2ZyYW1lLT5wYWdlKCkpCisgICAgICAgIG1fZnJhbWUt
PnBhZ2UoKS0+Y2hyb21lKCktPmFkZE1lc3NhZ2VUb0NvbnNvbGUoSlNNZXNzYWdlU291cmNlLCBM
b2dNZXNzYWdlTGV2ZWwsIGFNZXNzYWdlLCAxLCBtX2ZyYW1lLT5sb2FkZXIoKS0+dXJsKCkucHJl
dHR5VVJMKCkpOworfQorICAgIAordm9pZCBDb25zb2xlOjp3YXJuKGNvbnN0IFN0cmluZyYgYU1l
c3NhZ2UpCit7CisgICAgaWYgKG1fZnJhbWUgJiYgbV9mcmFtZS0+cGFnZSgpKQorICAgICAgICBt
X2ZyYW1lLT5wYWdlKCktPmNocm9tZSgpLT5hZGRNZXNzYWdlVG9Db25zb2xlKEpTTWVzc2FnZVNv
dXJjZSwgV2FybmluZ01lc3NhZ2VMZXZlbCwgYU1lc3NhZ2UsIDEsIG1fZnJhbWUtPmxvYWRlcigp
LT51cmwoKS5wcmV0dHlVUkwoKSk7Cit9CisgICAgCit9CisKSW5kZXg6IFdlYkNvcmUvZG9tL0Nv
bnNvbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Db25zb2xlLmgJKHJldmlzaW9uIDAp
CisrKyBXZWJDb3JlL2RvbS9Db25zb2xlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFj
ZSAtIFN1aXRlIDMzMCwKKyAqIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgorICovCisKKyNp
Zm5kZWYgQ29uc29sZV9oCisjZGVmaW5lIENvbnNvbGVfaAorCisjaW5jbHVkZSAiU2hhcmVkLmgi
CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5j
bHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBG
cmFtZTsKKyAgICAKK2NsYXNzIENvbnNvbGUgOiBwdWJsaWMgU2hhcmVkPENvbnNvbGU+Cit7Citw
dWJsaWM6CisgICAgCisgICAgQ29uc29sZShGcmFtZSAqKTsKKyAgICAKKyAgICBGcmFtZSogZnJh
bWUoKSBjb25zdDsKKyAgICB2b2lkIGRpc2Nvbm5lY3RGcmFtZSgpOworICAgIAorICAgIHZvaWQg
ZXJyb3IoY29uc3QgU3RyaW5nJiBhTWVzc2FnZSk7CisgICAgdm9pZCBpbmZvKGNvbnN0IFN0cmlu
ZyYgYU1lc3NhZ2UpOworICAgIHZvaWQgbG9nKGNvbnN0IFN0cmluZyYgYU1lc3NhZ2UpOworICAg
IHZvaWQgd2Fybihjb25zdCBTdHJpbmcmIGFNZXNzYWdlKTsKKworcHJpdmF0ZToKKyAgICBGcmFt
ZSogbV9mcmFtZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIENv
bnNvbGVfaAorCkluZGV4OiBXZWJDb3JlL2RvbS9Db25zb2xlLmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2RvbS9Db25zb2xlLmlkbAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvZG9tL0NvbnNv
bGUuaWRsCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisgKiBC
b3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKyAqLworCittb2R1bGUgd2luZG93IHsKKworICAg
IGludGVyZmFjZSBDb25zb2xlIHsKKyAgICAgICAgdm9pZCBlcnJvcihpbiBET01TdHJpbmcgYU1l
c3NhZ2UpOworICAgICAgICB2b2lkIGluZm8oaW4gRE9NU3RyaW5nIGFNZXNzYWdlKTsKKyAgICAg
ICAgdm9pZCBsb2coaW4gRE9NU3RyaW5nIGFNZXNzYWdlKTsKKyAgICAgICAgdm9pZCB3YXJuKGlu
IERPTVN0cmluZyBhTWVzc2FnZSk7CisgICAgfTsKKyAgICAKK30KSW5kZXg6IFdlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
CShyZXZpc2lvbiAyNTAyMykKKysrIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ1NTUnVsZUxpc3QuaCIKICNpbmNs
dWRlICJDU1NTdHlsZVNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAi
Q29uc29sZS5oIgogI2luY2x1ZGUgIkRPTVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgpAQCAtOTgsNiArOTksMTAgQEAgdm9pZCBET01XaW5k
b3c6OmNsZWFyKCkKICAgICBpZiAobV90b29sYmFyKQogICAgICAgICBtX3Rvb2xiYXItPmRpc2Nv
bm5lY3RGcmFtZSgpOwogICAgIG1fdG9vbGJhciA9IDA7CisKKyAgICBpZiAobV9jb25zb2xlKQor
ICAgICAgICBtX2NvbnNvbGUtPmRpc2Nvbm5lY3RGcmFtZSgpOworICAgIG1fY29uc29sZSA9IDA7
CiB9CiAKIFNjcmVlbiogRE9NV2luZG93OjpzY3JlZW4oKSBjb25zdApAQCAtNTQ5LDQgKzU1NCwx
MSBAQCBkb3VibGUgRE9NV2luZG93OjpkZXZpY2VQaXhlbFJhdGlvKCkgY29uCiAgICAgcmV0dXJu
IHBhZ2UtPmNocm9tZSgpLT5zY2FsZUZhY3RvcigpOwogfQogCitDb25zb2xlKiBET01XaW5kb3c6
OmNvbnNvbGUoKSBjb25zdAoreworICAgIGlmICghbV9jb25zb2xlKQorICAgICAgICBtX2NvbnNv
bGUgPSBuZXcgQ29uc29sZShtX2ZyYW1lKTsKKyAgICByZXR1cm4gbV9jb25zb2xlLmdldCgpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCShyZXZpc2lvbiAyNTAy
MykKKysrIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiAr
MzYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgQmFySW5mbzsKICAgICBjbGFz
cyBDU1NSdWxlTGlzdDsKICAgICBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uOworICAgIGNsYXNz
IENvbnNvbGU7CiAgICAgY2xhc3MgRE9NU2VsZWN0aW9uOwogICAgIGNsYXNzIERvY3VtZW50Owog
ICAgIGNsYXNzIEVsZW1lbnQ7CkBAIC01Myw2ICs1NCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogICAgICAgICB2b2lkIGNsZWFyKCk7CiAKKyAgICAgICAgQ29uc29sZSogY29uc29sZSgpIGNv
bnN0OworCiAgICAgICAgIC8vIERPTSBMZXZlbCAwCiAgICAgICAgIFNjcmVlbiogc2NyZWVuKCkg
Y29uc3Q7CiAgICAgICAgIEhpc3RvcnkqIGhpc3RvcnkoKSBjb25zdDsKQEAgLTEzOSw2ICsxNDIs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIG11dGFibGUgUmVmUHRyPEJhckluZm8+
IG1fc2Nyb2xsYmFyczsKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8QmFySW5mbz4gbV9zdGF0dXNi
YXI7CiAgICAgICAgIG11dGFibGUgUmVmUHRyPEJhckluZm8+IG1fdG9vbGJhcjsKKyAgICAgICAg
bXV0YWJsZSBSZWZQdHI8Q29uc29sZT4gbV9jb25zb2xlOwogICAgIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCShyZXZpc2lvbiAyNTAyMykKKysrIFdlYkNv
cmUvcGFnZS9ET01XaW5kb3cuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yMzcsNiArMjM3LDggQEAg
bW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIGF0dHJpYnV0ZSBET01QYXJzZXJDb25zdHJ1Y3RvciBE
T01QYXJzZXI7CiAgICAgICAgIGF0dHJpYnV0ZSBYTUxTZXJpYWxpemVyQ29uc3RydWN0b3IgWE1M
U2VyaWFsaXplcjsKIAorICAgICAgICBhdHRyaWJ1dGUgW0FsbG93U2hhZG93aW5nXSBDb25zb2xl
IGNvbnNvbGU7CisKICNpZiBFTkFCTEVfWFBBVEgKICAgICAgICAgYXR0cmlidXRlIFhQYXRoRXZh
bHVhdG9yQ29uc3RydWN0b3IgWFBhdGhFdmFsdWF0b3I7CiAgICAgICAgIGF0dHJpYnV0ZSBYUGF0
aFJlc3VsdENvbnN0cnVjdG9yIFhQYXRoUmVzdWx0OwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjUwMjQp
CisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBA
QAorMjAwNy0wOC0xMiAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAd2Via2l0Lm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIHRlc3RzIGZvciBo
dHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDk1MworICAgICAgICAgIElt
cGxlbWVudCB3aW5kb3cuY29uc29sZSBpbiBXZWJDb3JlCisKKyAgICAgICAgVGVzdHMgZm9yIHVu
ZGV0ZWN0YWJsZSB3aW5kb3cuY29uc29sZSBpbiBXZWJDb3JlLgorCisgICAgICAgICogZmFzdC9k
b20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDogQWRkZWQgd2luZG93LmNv
bnNvbGUgYW5kIGl0cyBmdW5jdGlvbnMgdG8gdGhlCisgICAgICAgIGV4cGVjdGVkIHByb3BlcnR5
IGxpc3QuCisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1zaGFkb3dp
bmctZXhwZWN0ZWQudHh0OiBBZGQgZXhwZWN0ZWQgcmVzdWx0cyBmb3Igd2luZG93LmNvbnNvbGUu
CisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1zaGFkb3dpbmcuaHRt
bDogVGVzdCB3aW5kb3cuY29uc29sZS4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Ny
b3NzLWZyYW1lLWFjY2Vzcy1wdXQtZXhwZWN0ZWQudHh0OiBVcGRhdGVkIHR5cGUgb2Ygd2luZG93
LmNvbnNvbGUgb2JqZWN0LgorCiAyMDA3LTA4LTExICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbi4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMjUwMjMpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
d2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC05MTIsNiAr
OTEyLDExIEBAIHdpbmRvdy5jbGllbnRJbmZvcm1hdGlvbi52ZW5kb3JTdWIgW3N0cmkKIHdpbmRv
dy5jbG9zZSBbZnVuY3Rpb25dCiB3aW5kb3cuY2xvc2VkIFtib29sZWFuXQogd2luZG93LmNvbmZp
cm0gW2Z1bmN0aW9uXQord2luZG93LmNvbnNvbGUgW29iamVjdCBDb25zb2xlXQord2luZG93LmNv
bnNvbGUuZXJyb3IgW2Z1bmN0aW9uXQord2luZG93LmNvbnNvbGUuaW5mbyBbZnVuY3Rpb25dCit3
aW5kb3cuY29uc29sZS5sb2cgW2Z1bmN0aW9uXQord2luZG93LmNvbnNvbGUud2FybiBbZnVuY3Rp
b25dCiB3aW5kb3cuY3J5cHRvIFt1bmRlZmluZWRdCiB3aW5kb3cuZGVmYXVsdFN0YXR1cyBbc3Ry
aW5nXQogd2luZG93LmRlZmF1bHRzdGF0dXMgW3N0cmluZ10KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktc2hhZG93aW5nLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LXNo
YWRvd2luZy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI1MDIzKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1zaGFkb3dpbmctZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsNCBAQAorUEFTUzogY29uc29sZSBzdWNjZXNzZnVsbHkgc2hh
ZG93ZWQKIFBBU1M6IHNjcmVlbiBzdWNjZXNzZnVsbHkgc2hhZG93ZWQKIFBBU1M6IGhpc3Rvcnkg
c3VjY2Vzc2Z1bGx5IHNoYWRvd2VkCiBQQVNTOiBsb2NhdGlvbmJhciBzdWNjZXNzZnVsbHkgc2hh
ZG93ZWQKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHkt
c2hhZG93aW5nLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L3dpbmRvdy1wcm9wZXJ0eS1zaGFkb3dpbmcuaHRtbAkocmV2aXNpb24gMjUwMjMpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LXNoYWRvd2luZy5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xNSw2ICsxNSw4IEBACiAgICAgICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7CiAKICAgICAgICAgLy8gV2luZG93IEF0dHJpYnV0ZXMKKyAg
ICAgICAgdmFyIGNvbnNvbGUgPSAxOworICAgICAgICBsb2coY29uc29sZSA9PSAxID8gIlBBU1M6
IGNvbnNvbGUgc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkIiA6ICJGQUlMOiBjb25zb2xlIHdhcyBub3Qg
c2hhZG93ZWQiKTsKICAgICAgICAgdmFyIHNjcmVlbiA9IDE7CiAgICAgICAgIGxvZyhzY3JlZW4g
PT0gMSA/ICJQQVNTOiBzY3JlZW4gc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkIiA6ICJGQUlMOiBzY3Jl
ZW4gd2FzIG5vdCBzaGFkb3dlZCIpOwogICAgICAgICB2YXIgaGlzdG9yeSA9IDE7CkluZGV4OiBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wdXQtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
Y3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI1MDIzKQorKysg
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0LWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNDEzLDcgKzQxMyw3IEBAIEFMRVJUOiBQQVNT
OiB3aW5kb3cuWFBhdGhFdmFsdWF0b3Igc2hvdWwKIEFMRVJUOiBQQVNTOiB3aW5kb3cuWFBhdGhS
ZXN1bHQgc2hvdWxkIGJlICdbb2JqZWN0IFhQYXRoUmVzdWx0Q29uc3RydWN0b3JdJyBhbmQgaXMu
CiBBTEVSVDogUEFTUzogd2luZG93LmNsaWVudEluZm9ybWF0aW9uIHNob3VsZCBiZSAnW29iamVj
dCBOYXZpZ2F0b3JdJyBhbmQgaXMuCiBBTEVSVDogUEFTUzogd2luZG93LmNsb3NlZCBzaG91bGQg
YmUgJ2ZhbHNlJyBhbmQgaXMuCi1BTEVSVDogUEFTUzogd2luZG93LmNvbnNvbGUgc2hvdWxkIGJl
ICdbb2JqZWN0IEhUTUxQcmVFbGVtZW50XScgYW5kIGlzLgorQUxFUlQ6IFBBU1M6IHdpbmRvdy5j
b25zb2xlIHNob3VsZCBiZSAnW29iamVjdCBDb25zb2xlXScgYW5kIGlzLgogQUxFUlQ6IFBBU1M6
IHdpbmRvdy5jcnlwdG8gc2hvdWxkIGJlICd1bmRlZmluZWQnIGFuZCBpcy4KIEFMRVJUOiBQQVNT
OiB3aW5kb3cuZGVmYXVsdFN0YXR1cyBzaG91bGQgYmUgJycgYW5kIGlzLgogQUxFUlQ6IFBBU1M6
IHdpbmRvdy5kZWZhdWx0c3RhdHVzIHNob3VsZCBiZSAnJyBhbmQgaXMuCg==
</data>
<flag name="review"
          id="6681"
          type_id="1"
          status="-"
          setter="ddkilzer"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>15944</attachid>
            <date>2007-08-12 17:58:37 -0700</date>
            <delta_ts>2007-08-12 18:56:36 -0700</delta_ts>
            <desc>Updated patch [WIP]</desc>
            <filename>consoleTake2.diff</filename>
            <type>text/plain</type>
            <size>22851</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDI1MDI0KQorKysgV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0zMTgsNiArMzE4LDcgQEAgYWxsIDogXAog
ICAgIEpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmggXAogICAgIEpTQ2hhcmFjdGVyRGF0YS5o
IFwKICAgICBKU0NvbW1lbnQuaCBcCisgICAgSlNDb25zb2xlLmggXAogICAgIEpTQ291bnRlci5o
IFwKICAgICBKU0NTU1N0eWxlRGVjbGFyYXRpb24uaCBcCiAgICAgSlNET01FeGNlcHRpb25Db25z
dHJ1Y3Rvci5sdXQuaCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkocmV2aXNpb24gMjUwMjQpCisrKyBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjc2OSw2ICsyNzY5LDggQEAKIAkJQkMy
RUQ2NTAwQzZCQzQ4QzAwOTIwQkZGIC8qIEpTSFRNTElGcmFtZUVsZW1lbnRDdXN0b20uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyRUQ2NEYwQzZC
QzQ4QzAwOTIwQkZGIC8qIEpTSFRNTElGcmFtZUVsZW1lbnRDdXN0b20uY3BwICovOyB9OwogCQlC
QzJFRDZCQzBDNkJEMkYwMDA5MjBCRkYgLyogSlNBdHRyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMkVENkJCMEM2QkQyRjAwMDkyMEJG
RiAvKiBKU0F0dHJDdXN0b20uY3BwICovOyB9OwogCQlCQzJFRDdBNTBDNkMwRjM2MDA5MjBCRkYg
LyogSlNIVE1MRnJhbWVFbGVtZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMkVEN0E0MEM2QzBGMzYwMDkyMEJGRiAvKiBKU0hUTUxG
cmFtZUVsZW1lbnRDdXN0b20uY3BwICovOyB9OworCQlCQzJFREExRTBDNkQyRTI5MDA5MjBCRkYg
LyogSlNDb25zb2xlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDMkVEQTFDMEM2RDJFMjkwMDkyMEJGRiAvKiBKU0NvbnNvbGUuY3BwICovOyB9Owor
CQlCQzJFREExRjBDNkQyRTI5MDA5MjBCRkYgLyogSlNDb25zb2xlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzJFREExRDBDNkQyRTI5MDA5MjBCRkYg
LyogSlNDb25zb2xlLmggKi87IH07CiAJCUJDMzA1Qzc5MEMwNzZCQjMwMENEMjBGMCAvKiBKU0hU
TUxPYmplY3RFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDMzA1Qzc3MEMwNzZCQjMwMENEMjBGMCAvKiBKU0hUTUxPYmplY3RFbGVtZW50
LmNwcCAqLzsgfTsKIAkJQkMzMDVDN0EwQzA3NkJCMzAwQ0QyMEYwIC8qIEpTSFRNTE9iamVjdEVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
MzA1Qzc4MEMwNzZCQjMwMENEMjBGMCAvKiBKU0hUTUxPYmplY3RFbGVtZW50LmggKi87IH07CiAJ
CUJDMzA1Q0E0MEMwNzgxQkIwMENEMjBGMCAvKiBKU0hUTUxPYmplY3RFbGVtZW50Q3VzdG9tLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMzA1Q0Ez
MEMwNzgxQkIwMENEMjBGMCAvKiBKU0hUTUxPYmplY3RFbGVtZW50Q3VzdG9tLmNwcCAqLzsgfTsK
QEAgLTI5ODMsNiArMjk4NSw4IEBACiAJCUJDRkIyRjQyMDk3QTI0QjUwMEJBNzAzRCAvKiBTZWdt
ZW50ZWRTdHJpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDRkIyRjQwMDk3QTI0QjUwMEJBNzAzRCAvKiBTZWdtZW50ZWRTdHJpbmcuaCAqLzsgfTsK
IAkJQkNGQjJGNzYwOTdBMkUxQTAwQkE3MDNEIC8qIEFyZW5hLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRkIyRjc0MDk3QTJFMUEwMEJBNzAzRCAv
KiBBcmVuYS5jcHAgKi87IH07CiAJCUJDRkIyRjc3MDk3QTJFMUEwMEJBNzAzRCAvKiBBcmVuYS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGQjJGNzUw
OTdBMkUxQTAwQkE3MDNEIC8qIEFyZW5hLmggKi87IH07CisJCUJDRkRGNEVFMEM2RDMyODYwMEI5
NDlEMCAvKiBDb25zb2xlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDRkRGNEVCMEM2RDMyODYwMEI5NDlEMCAvKiBDb25zb2xlLmNwcCAqLzsgfTsK
KwkJQkNGREY0RUYwQzZEMzI4NjAwQjk0OUQwIC8qIENvbnNvbGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRkRGNEVDMEM2RDMyODYwMEI5NDlEMCAv
KiBDb25zb2xlLmggKi87IH07CiAJCUJDRkUyRjExMEMxQjU4MzcwMDIwMjM1RiAvKiBKU1JlY3Qu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGRTJG
MEYwQzFCNTgzNzAwMjAyMzVGIC8qIEpTUmVjdC5jcHAgKi87IH07CiAJCUJDRkUyRjEyMEMxQjU4
MzgwMDIwMjM1RiAvKiBKU1JlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDRkUyRjEwMEMxQjU4MzcwMDIwMjM1RiAvKiBKU1JlY3QuaCAqLzsgfTsK
IAkJQkNGRThFMzIwQTAyQTFEMzAwMDlFNjFEIC8qIFdlYkNvcmVUZXh0UmVuZGVyZXIubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0ZFOEUzMTBBMDJB
MUQzMDAwOUU2MUQgLyogV2ViQ29yZVRleHRSZW5kZXJlci5tbSAqLzsgfTsKQEAgLTYxMDUsNiAr
NjEwOSw4IEBACiAJCUJDMkVENjRGMEM2QkM0OEMwMDkyMEJGRiAvKiBKU0hUTUxJRnJhbWVFbGVt
ZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRN
TElGcmFtZUVsZW1lbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlC
QzJFRDZCQjBDNkJEMkYwMDA5MjBCRkYgLyogSlNBdHRyQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQXR0ckN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUJDMkVEN0E0MEM2QzBGMzYwMDkyMEJGRiAvKiBKU0hUTUxGcmFtZUVs
ZW1lbnRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNI
VE1MRnJhbWVFbGVtZW50Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QkMyRURBMUMwQzZEMkUyOTAwOTIwQkZGIC8qIEpTQ29uc29sZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDb25zb2xlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQkMyRURBMUQwQzZEMkUyOTAwOTIwQkZGIC8qIEpTQ29uc29sZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDb25zb2xlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUJDMzA1Qzc3MEMwNzZCQjMwMENEMjBGMCAvKiBKU0hUTUxPYmplY3RF
bGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxP
YmplY3RFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMzMDVDNzgw
QzA3NkJCMzAwQ0QyMEYwIC8qIEpTSFRNTE9iamVjdEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTSFRNTE9iamVjdEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQkMzMDVDQTMwQzA3ODFCQjAwQ0QyMEYwIC8qIEpTSFRNTE9iamVjdEVs
ZW1lbnRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNI
VE1MT2JqZWN0RWxlbWVudEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC02MzI4LDYgKzYzMzQsOSBAQAogCQlCQ0ZCMkY0MDA5N0EyNEI1MDBCQTcwM0QgLyogU2VnbWVu
dGVkU3RyaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZWdtZW50ZWRT
dHJpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNGQjJGNzQwOTdBMkUxQTAw
QkE3MDNEIC8qIEFyZW5hLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBBcmVuYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRkIyRjc1MDk3QTJF
MUEwMEJBNzAzRCAvKiBBcmVuYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QXJlbmEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkNGREY0RUIwQzZEMzI4NjAw
Qjk0OUQwIC8qIENvbnNvbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IENvbnNvbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQ0ZERjRFQzBD
NkQzMjg2MDBCOTQ5RDAgLyogQ29uc29sZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ29uc29sZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQ0ZERjRFRDBD
NkQzMjg2MDBCOTQ5RDAgLyogQ29uc29sZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENv
bnNvbGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0ZFMkYwRjBDMUI1ODM3
MDAyMDIzNUYgLyogSlNSZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU1JlY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0ZFMkYxMDBD
MUI1ODM3MDAyMDIzNUYgLyogSlNSZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU1JlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNGRThFMzEwQTAy
QTFEMzAwMDlFNjFEIC8qIFdlYkNvcmVUZXh0UmVuZGVyZXIubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZVRleHRSZW5kZXJlci5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY1NjksNiArNjU3OCw4IEBACiAJCQkJNjVERjMxRTAwOUQx
Q0M2MDAwMEJFMzI1IC8qIEpTQ2hhcmFjdGVyRGF0YS5oICovLAogCQkJCTkzRjlCNkRFMEJBMEZC
NzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuY3BwICovLAogCQkJCTkzRjlCNkRGMEJBMEZCNzIwMDg1
NDA2NCAvKiBKU0NvbW1lbnQuaCAqLywKKwkJCQlCQzJFREExQzBDNkQyRTI5MDA5MjBCRkYgLyog
SlNDb25zb2xlLmNwcCAqLywKKwkJCQlCQzJFREExRDBDNkQyRTI5MDA5MjBCRkYgLyogSlNDb25z
b2xlLmggKi8sCiAJCQkJOTMwNzA1RDcwOUUwQzlCNzAwQjE3RkU0IC8qIEpTQ291bnRlci5jcHAg
Ki8sCiAJCQkJOTMwNzA1RDkwOUUwQzlCRjAwQjE3RkU0IC8qIEpTQ291bnRlci5oICovLAogCQkJ
CUJDNDZDMUYwMEMwRERDOEYwMDIwQ0ZDMyAvKiBKU0NTU0NoYXJzZXRSdWxlLmNwcCAqLywKQEAg
LTcyOTcsNiArNzMwOCw5IEBACiAJCQkJMTREODIzOEEwQUY5MkRGNjAwMDRGMDU3IC8qIENocm9t
ZS5jcHAgKi8sCiAJCQkJMTREODIzNTAwQUY5MkE3OTAwMDRGMDU3IC8qIENocm9tZS5oICovLAog
CQkJCTE0RDgyNDA2MEFGOTNBRUIwMDA0RjA1NyAvKiBDaHJvbWVDbGllbnQuaCAqLywKKwkJCQlC
Q0ZERjRFQjBDNkQzMjg2MDBCOTQ5RDAgLyogQ29uc29sZS5jcHAgKi8sCisJCQkJQkNGREY0RUMw
QzZEMzI4NjAwQjk0OUQwIC8qIENvbnNvbGUuaCAqLywKKwkJCQlCQ0ZERjRFRDBDNkQzMjg2MDBC
OTQ5RDAgLyogQ29uc29sZS5pZGwgKi8sCiAJCQkJMDY1QUQ0RjIwQjBDMkVEQTAwNUEyQjFEIC8q
IENvbnRleHRNZW51Q2xpZW50LmggKi8sCiAJCQkJMDY1QUQ0RjMwQjBDMkVEQTAwNUEyQjFEIC8q
IENvbnRleHRNZW51Q29udHJvbGxlci5jcHAgKi8sCiAJCQkJMDY1QUQ0RjQwQjBDMkVEQTAwNUEy
QjFEIC8qIENvbnRleHRNZW51Q29udHJvbGxlci5oICovLApAQCAtMTE3MDUsNiArMTE3MTksOCBA
QAogCQkJCUI0MDJGRDBCMEM0QzlDMzkwMDIxMEFBNiAvKiBCaWRpUmVzb2x2ZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGMzFDQkY5MkI2NTQ3MzBCQTA1MzVFOCAvKiBCaWRpQ29udGV4dC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMTQzMkU4NDcwQzUxNDkzODAwQjE1MDBGIC8qIEdDQ29udHJvbGxl
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkMyRURBMUYwQzZEMkUyOTAwOTIwQkZGIC8qIEpTQ29u
c29sZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkNGREY0RUYwQzZEMzI4NjAwQjk0OUQwIC8qIENv
bnNvbGUuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMTMxNjQsNiArMTMxODAsOCBAQAogCQkJCUJDMkVE
NjUwMEM2QkM0OEMwMDkyMEJGRiAvKiBKU0hUTUxJRnJhbWVFbGVtZW50Q3VzdG9tLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUJDMkVENkJDMEM2QkQyRjAwMDkyMEJGRiAvKiBKU0F0dHJDdXN0b20u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyRUQ3QTUwQzZDMEYzNjAwOTIwQkZGIC8qIEpTSFRN
TEZyYW1lRWxlbWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCQzJFREExRTBDNkQy
RTI5MDA5MjBCRkYgLyogSlNDb25zb2xlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDRkRGNEVF
MEM2RDMyODYwMEI5NDlEMCAvKiBDb25zb2xlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiAyNTAy
NCkKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdvcmtp
bmcgY29weSkKQEAgLTEwMTQsNiArMTAxNCw4IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9u
CiAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJKUyIgLiAkY29uc3RydWN0
b3JUeXBlIC4gIi5oIn0gPSAxOwogICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgICAgIC8vIFNoYWRvd2luZyBhIGJ1aWx0LWluIGNvbnN0cnVjdG9yXG4iKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBKU09i
amVjdDo6cHV0KGV4ZWMsIFwiJG5hbWVcIiwgdmFsdWUpO1xuIik7CisgICAgICAgICAgICAgICAg
ICAgIH0gZWxzaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IlJlcGxhY2VhYmxlIn0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgICAgICBKU09iamVjdDo6cHV0KGV4ZWMsIFwiJG5hbWVcIiwgdmFsdWUpO1xuIik7
CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoJHBvZFR5cGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICAgICAgJHBvZFR5cGUmIGltcCgqaW1wbCgpKTtcblxuIik7CkluZGV4OiBXZWJD
b3JlL3BhZ2UvQ29uc29sZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0NvbnNvbGUu
Y3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9wYWdlL0NvbnNvbGUuY3BwCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDEwNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKKyAqIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKKyAqIDMuICBOZWl0aGVy
IHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVz
IG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNv
bnNvbGUuaCIKKworI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5j
bHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGxhdGZv
cm1TdHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDb25zb2xlOjpDb25zb2xlKEZy
YW1lKiBmcmFtZSkKKyAgICA6IG1fZnJhbWUoZnJhbWUpCit7Cit9CisKK0ZyYW1lKiBDb25zb2xl
OjpmcmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJhbWU7Cit9CisKK3ZvaWQgQ29uc29s
ZTo6ZGlzY29ubmVjdEZyYW1lKCkKK3sKKyAgICBtX2ZyYW1lID0gMDsKK30KKwordm9pZCBDb25z
b2xlOjplcnJvcihjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit7CisgICAgaWYgKCFtX2ZyYW1lKQor
ICAgICAgICByZXR1cm47CisKKyAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpOworICAg
IGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcGFnZS0+Y2hyb21lKCktPmFkZE1l
c3NhZ2VUb0NvbnNvbGUoSlNNZXNzYWdlU291cmNlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2Fn
ZSwgMSwgbV9mcmFtZS0+bG9hZGVyKCktPnVybCgpLnByZXR0eVVSTCgpKTsKK30KKwordm9pZCBD
b25zb2xlOjppbmZvKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICBpZiAoIW1fZnJhbWUp
CisgICAgICAgIHJldHVybjsKKworICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7Cisg
ICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBGSVhNRTogdGhpcyBzaG91
bGQgdXNlIExvZ01lc3NhZ2VMZXZlbCwgYnV0IG11c3QgdXNlIEVycm9yTWVzc2FnZUxldmVsIGZv
ciBub3cgdG8gZm9yd2FyZCBtZXNzYWdlIHRvIHRoZSBjb25zb2xlLgorICAgIHBhZ2UtPmNocm9t
ZSgpLT5hZGRNZXNzYWdlVG9Db25zb2xlKEpTTWVzc2FnZVNvdXJjZSwgRXJyb3JNZXNzYWdlTGV2
ZWwsIG1lc3NhZ2UsIDEsIG1fZnJhbWUtPmxvYWRlcigpLT51cmwoKS5wcmV0dHlVUkwoKSk7Cit9
CisKK3ZvaWQgQ29uc29sZTo6bG9nKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICBpZiAo
IW1fZnJhbWUpCisgICAgICAgIHJldHVybjsKKworICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5w
YWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBGSVhNRTog
dGhpcyBzaG91bGQgdXNlIExvZ01lc3NhZ2VMZXZlbCwgYnV0IG11c3QgdXNlIEVycm9yTWVzc2Fn
ZUxldmVsIGZvciBub3cgdG8gZm9yd2FyZCBtZXNzYWdlIHRvIHRoZSBjb25zb2xlLgorICAgIHBh
Z2UtPmNocm9tZSgpLT5hZGRNZXNzYWdlVG9Db25zb2xlKEpTTWVzc2FnZVNvdXJjZSwgRXJyb3JN
ZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIDEsIG1fZnJhbWUtPmxvYWRlcigpLT51cmwoKS5wcmV0dHlV
UkwoKSk7Cit9CisKK3ZvaWQgQ29uc29sZTo6d2Fybihjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit7
CisgICAgaWYgKCFtX2ZyYW1lKQorICAgICAgICByZXR1cm47CisKKyAgICBQYWdlKiBwYWdlID0g
bV9mcmFtZS0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
Ly8gRklYTUU6IHRoaXMgc2hvdWxkIHVzZSBXYXJuaW5nTWVzc2FnZUxldmVsLCBidXQgbXVzdCB1
c2UgRXJyb3JNZXNzYWdlTGV2ZWwgZm9yIG5vdyB0byBmb3J3YXJkIG1lc3NhZ2UgdG8gdGhlIGNv
bnNvbGUuCisgICAgcGFnZS0+Y2hyb21lKCktPmFkZE1lc3NhZ2VUb0NvbnNvbGUoSlNNZXNzYWdl
U291cmNlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgMSwgbV9mcmFtZS0+bG9hZGVyKCkt
PnVybCgpLnByZXR0eVVSTCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDog
V2ViQ29yZS9wYWdlL0NvbnNvbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvQ29uc29s
ZS5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9wYWdlL0NvbnNvbGUuaAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKKyAqIDMuICBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9m
CisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YK
KyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDb25zb2xlX2gKKyNkZWZpbmUgQ29uc29sZV9o
CisKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIlNoYXJlZC5oIgorI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKKyAgICBjbGFzcyBGcmFtZTsKKworICAgIGNsYXNzIENvbnNvbGUgOiBw
dWJsaWMgU2hhcmVkPENvbnNvbGU+IHsKKyAgICBwdWJsaWM6CisgICAgICAgIENvbnNvbGUoRnJh
bWUqKTsKKworICAgICAgICBGcmFtZSogZnJhbWUoKSBjb25zdDsKKyAgICAgICAgdm9pZCBkaXNj
b25uZWN0RnJhbWUoKTsKKworICAgICAgICB2b2lkIGVycm9yKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSk7CisgICAgICAgIHZvaWQgaW5mbyhjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOworICAgICAgICB2
b2lkIGxvZyhjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOworICAgICAgICB2b2lkIHdhcm4oY29uc3Qg
U3RyaW5nJiBtZXNzYWdlKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIEZyYW1lKiBtX2ZyYW1l
OworICAgIH07CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIENvbnNvbGVf
aApJbmRleDogV2ViQ29yZS9wYWdlL0NvbnNvbGUuaWRsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGFnZS9Db25zb2xlLmlkbAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvcGFnZS9Db25zb2xlLmlk
bAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKKyAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKKyAq
IDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBu
b3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAi
QVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIHdpbmRvdyB7CisKKyAg
ICBpbnRlcmZhY2UgQ29uc29sZSB7CisgICAgICAgIHZvaWQgZXJyb3IoaW4gRE9NU3RyaW5nIG1l
c3NhZ2UpOworICAgICAgICB2b2lkIGluZm8oaW4gRE9NU3RyaW5nIG1lc3NhZ2UpOworICAgICAg
ICB2b2lkIGxvZyhpbiBET01TdHJpbmcgbWVzc2FnZSk7CisgICAgICAgIHZvaWQgd2FybihpbiBE
T01TdHJpbmcgbWVzc2FnZSk7CisgICAgfTsKKworfQpJbmRleDogV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAJKHJldmlz
aW9uIDI1MDI0KQorKysgV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDU1NSdWxlTGlzdC5oIgogI2luY2x1ZGUgIkNT
U1N0eWxlU2VsZWN0b3IuaCIKICNpbmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJDb25zb2xl
LmgiCiAjaW5jbHVkZSAiRE9NU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJFbGVtZW50LmgiCkBAIC05OCw2ICs5OSwxNyBAQCB2b2lkIERPTVdpbmRvdzo6Y2xl
YXIoKQogICAgIGlmIChtX3Rvb2xiYXIpCiAgICAgICAgIG1fdG9vbGJhci0+ZGlzY29ubmVjdEZy
YW1lKCk7CiAgICAgbV90b29sYmFyID0gMDsKKworICAgIGlmIChtX2NvbnNvbGUpCisgICAgICAg
IG1fY29uc29sZS0+ZGlzY29ubmVjdEZyYW1lKCk7CisgICAgbV9jb25zb2xlID0gMDsKK30KKwor
Q29uc29sZSogRE9NV2luZG93Ojpjb25zb2xlKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fY29uc29s
ZSkKKyAgICAgICAgbV9jb25zb2xlID0gbmV3IENvbnNvbGUobV9mcmFtZSk7CisgICAgcmV0dXJu
IG1fY29uc29sZS5nZXQoKTsKIH0KIAogU2NyZWVuKiBET01XaW5kb3c6OnNjcmVlbigpIGNvbnN0
CkluZGV4OiBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5oCShyZXZpc2lvbiAyNTAyNCkKKysrIFdlYkNvcmUvcGFnZS9ET01XaW5k
b3cuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgY2xhc3MgQmFySW5mbzsKICAgICBjbGFzcyBDU1NSdWxlTGlzdDsKICAgICBjbGFzcyBD
U1NTdHlsZURlY2xhcmF0aW9uOworICAgIGNsYXNzIENvbnNvbGU7CiAgICAgY2xhc3MgRE9NU2Vs
ZWN0aW9uOwogICAgIGNsYXNzIERvY3VtZW50OwogICAgIGNsYXNzIEVsZW1lbnQ7CkBAIC01Myw2
ICs1NCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2b2lkIGNsZWFyKCk7CiAK
KyAgICAgICAgQ29uc29sZSogY29uc29sZSgpIGNvbnN0OworCiAgICAgICAgIC8vIERPTSBMZXZl
bCAwCiAgICAgICAgIFNjcmVlbiogc2NyZWVuKCkgY29uc3Q7CiAgICAgICAgIEhpc3RvcnkqIGhp
c3RvcnkoKSBjb25zdDsKQEAgLTEzOSw2ICsxNDIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIG11dGFibGUgUmVmUHRyPEJhckluZm8+IG1fc2Nyb2xsYmFyczsKICAgICAgICAgbXV0
YWJsZSBSZWZQdHI8QmFySW5mbz4gbV9zdGF0dXNiYXI7CiAgICAgICAgIG11dGFibGUgUmVmUHRy
PEJhckluZm8+IG1fdG9vbGJhcjsKKyAgICAgICAgbXV0YWJsZSBSZWZQdHI8Q29uc29sZT4gbV9j
b25zb2xlOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUv
cGFnZS9ET01XaW5kb3cuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cu
aWRsCShyZXZpc2lvbiAyNTAyNCkKKysrIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAw
NyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2
LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjYsNiArMjYsOSBAQAogbW9kdWxlIHdpbmRvdyB7CiAKICAgICBp
bnRlcmZhY2UgW0xlZ2FjeVBhcmVudD1LSlM6OldpbmRvdywgRG9Ob3RDYWNoZSwgQ2hlY2tEb21h
aW5TZWN1cml0eSwgR2VuZXJhdGVOYXRpdmVDb252ZXJ0ZXIsIEN1c3RvbUdldE93blByb3BlcnR5
U2xvdCwgQ3VzdG9tUHV0RnVuY3Rpb25dIERPTVdpbmRvdyB7CisKKyAgICAgICAgICAgICAgICAg
YXR0cmlidXRlIFtSZXBsYWNlYWJsZV0gQ29uc29sZSBjb25zb2xlOworCiAgICAgICAgIC8vIERP
TSBMZXZlbCAwCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTY3JlZW4gc2NyZWVuOwogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0RvTm90Q2hlY2tEb21haW5TZWN1cml0eV0gSGlzdG9y
eSBoaXN0b3J5OwpJbmRleDogV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
cmV2aXNpb24gMjUwMjQpCisrKyBXZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oJKHdvcmtpbmcgY29weSkKQEAgLTEzMTksNyArMTMxOSw2IEBACiAJCTA4NjdENjkwRkU4NDAy
OEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLyA9IHsKIAkJCWlzYSA9IFBCWFByb2plY3Q7
CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gMTQ5QzI4MzIwODkwMkIwRjAwOEE5RUZDIC8q
IEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAiV2ViS2l0IiAqLzsKLQkJ
CWNvbXBhdGliaWxpdHlWZXJzaW9uID0gIlhjb2RlIDIuNCI7CiAJCQloYXNTY2FubmVkRm9yRW5j
b2RpbmdzID0gMTsKIAkJCWtub3duUmVnaW9ucyA9ICgKIAkJCQlFbmdsaXNoLApJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRp
ZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNTAyNCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTkxMiw2ICs5MTIsMTEgQEAgd2luZG93LmNsaWVudEluZm9ybWF0aW9uLnZlbmRvclN1YiBbc3Ry
aQogd2luZG93LmNsb3NlIFtmdW5jdGlvbl0KIHdpbmRvdy5jbG9zZWQgW2Jvb2xlYW5dCiB3aW5k
b3cuY29uZmlybSBbZnVuY3Rpb25dCit3aW5kb3cuY29uc29sZSBbb2JqZWN0IENvbnNvbGVdCit3
aW5kb3cuY29uc29sZS5lcnJvciBbZnVuY3Rpb25dCit3aW5kb3cuY29uc29sZS5pbmZvIFtmdW5j
dGlvbl0KK3dpbmRvdy5jb25zb2xlLmxvZyBbZnVuY3Rpb25dCit3aW5kb3cuY29uc29sZS53YXJu
IFtmdW5jdGlvbl0KIHdpbmRvdy5jcnlwdG8gW3VuZGVmaW5lZF0KIHdpbmRvdy5kZWZhdWx0U3Rh
dHVzIFtzdHJpbmddCiB3aW5kb3cuZGVmYXVsdHN0YXR1cyBbc3RyaW5nXQpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1zaGFkb3dpbmctZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJv
cGVydHktc2hhZG93aW5nLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjUwMjQpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LXNoYWRvd2luZy1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0IEBACitQQVNTOiBjb25zb2xlIHN1Y2Nlc3Nm
dWxseSBzaGFkb3dlZAogUEFTUzogc2NyZWVuIHN1Y2Nlc3NmdWxseSBzaGFkb3dlZAogUEFTUzog
aGlzdG9yeSBzdWNjZXNzZnVsbHkgc2hhZG93ZWQKIFBBU1M6IGxvY2F0aW9uYmFyIHN1Y2Nlc3Nm
dWxseSBzaGFkb3dlZApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1w
cm9wZXJ0eS1zaGFkb3dpbmcuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9XaW5kb3cvd2luZG93LXByb3BlcnR5LXNoYWRvd2luZy5odG1sCShyZXZpc2lvbiAyNTAyNCkK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktc2hhZG93aW5n
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE1LDYgKzE1LDggQEAKICAgICAgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKIAogICAgICAgICAvLyBXaW5kb3cgQXR0cmli
dXRlcworICAgICAgICB2YXIgY29uc29sZSA9IDE7CisgICAgICAgIGxvZyhjb25zb2xlID09IDEg
PyAiUEFTUzogY29uc29sZSBzdWNjZXNzZnVsbHkgc2hhZG93ZWQiIDogIkZBSUw6IGNvbnNvbGUg
d2FzIG5vdCBzaGFkb3dlZCIpOwogICAgICAgICB2YXIgc2NyZWVuID0gMTsKICAgICAgICAgbG9n
KHNjcmVlbiA9PSAxID8gIlBBU1M6IHNjcmVlbiBzdWNjZXNzZnVsbHkgc2hhZG93ZWQiIDogIkZB
SUw6IHNjcmVlbiB3YXMgbm90IHNoYWRvd2VkIik7CiAgICAgICAgIHZhciBoaXN0b3J5ID0gMTsK
SW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNz
LXB1dC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjUw
MjQpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vz
cy1wdXQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00MTMsNyArNDEzLDcgQEAgQUxF
UlQ6IFBBU1M6IHdpbmRvdy5YUGF0aEV2YWx1YXRvciBzaG91bAogQUxFUlQ6IFBBU1M6IHdpbmRv
dy5YUGF0aFJlc3VsdCBzaG91bGQgYmUgJ1tvYmplY3QgWFBhdGhSZXN1bHRDb25zdHJ1Y3Rvcl0n
IGFuZCBpcy4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuY2xpZW50SW5mb3JtYXRpb24gc2hvdWxkIGJl
ICdbb2JqZWN0IE5hdmlnYXRvcl0nIGFuZCBpcy4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuY2xvc2Vk
IHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KLUFMRVJUOiBQQVNTOiB3aW5kb3cuY29uc29sZSBz
aG91bGQgYmUgJ1tvYmplY3QgSFRNTFByZUVsZW1lbnRdJyBhbmQgaXMuCitBTEVSVDogUEFTUzog
d2luZG93LmNvbnNvbGUgc2hvdWxkIGJlICdbb2JqZWN0IENvbnNvbGVdJyBhbmQgaXMuCiBBTEVS
VDogUEFTUzogd2luZG93LmNyeXB0byBzaG91bGQgYmUgJ3VuZGVmaW5lZCcgYW5kIGlzLgogQUxF
UlQ6IFBBU1M6IHdpbmRvdy5kZWZhdWx0U3RhdHVzIHNob3VsZCBiZSAnJyBhbmQgaXMuCiBBTEVS
VDogUEFTUzogd2luZG93LmRlZmF1bHRzdGF0dXMgc2hvdWxkIGJlICcnIGFuZCBpcy4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>15946</attachid>
            <date>2007-08-12 18:56:36 -0700</date>
            <delta_ts>2007-10-27 19:05:04 -0700</delta_ts>
            <desc>Even more updated [Still WIP]</desc>
            <filename>consoleTake3.diff</filename>
            <type>text/plain</type>
            <size>24362</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDI1MDI0KQorKysgV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0zMTgsNiArMzE4LDcgQEAgYWxsIDogXAog
ICAgIEpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmggXAogICAgIEpTQ2hhcmFjdGVyRGF0YS5o
IFwKICAgICBKU0NvbW1lbnQuaCBcCisgICAgSlNDb25zb2xlLmggXAogICAgIEpTQ291bnRlci5o
IFwKICAgICBKU0NTU1N0eWxlRGVjbGFyYXRpb24uaCBcCiAgICAgSlNET01FeGNlcHRpb25Db25z
dHJ1Y3Rvci5sdXQuaCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9uIDI1MDI0KQorKysgV2ViQ29yZS9XZWJDb3Jl
LnBybwkod29ya2luZyBjb3B5KQpAQCAtMjg3LDYgKzI4Nyw3IEBAIElETF9CSU5ESU5HUyArPSBc
CiAgICAgaHRtbC9IVE1MVGl0bGVFbGVtZW50LmlkbCBcCiAgICAgaHRtbC9IVE1MVUxpc3RFbGVt
ZW50LmlkbCBcCiAgICAgcGFnZS9CYXJJbmZvLmlkbCBcCisgICAgcGFnZS9Db25zb2xlLmlkbCBc
CiAgICAgcGFnZS9ET01TZWxlY3Rpb24uaWRsIFwKICAgICBwYWdlL0RPTVdpbmRvdy5pZGwgXAog
ICAgIHBhZ2UvSGlzdG9yeS5pZGwgXApAQCAtNTkwLDYgKzU5MSw3IEBAIFNPVVJDRVMgKz0gXAog
ICAgIGxvYWRlci9UZXh0UmVzb3VyY2VEZWNvZGVyLmNwcCBcCiAgICAgcGFnZS9CYXJJbmZvLmNw
cCBcCiAgICAgcGFnZS9DaHJvbWUuY3BwIFwKKyAgICBwYWdlL0NvbnNvbGUuY3BwIFwKICAgICBw
YWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAgXAogICAgIHBhZ2UvRE9NU2VsZWN0aW9uLmNw
cCBcCiAgICAgcGFnZS9ET01XaW5kb3cuY3BwIFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagkocmV2aXNpb24gMjUwMjQpCisrKyBXZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC00MTIsNiArNDEyLDE0IEBACiAJCQkJ
PgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0
RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNDb25zb2xlLmNwcCIKKwkJ
CQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRw
dXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0NvbnNvbGUuaCIKKwkJ
CQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRw
dXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0NvdW50ZXIuY3BwIgog
CQkJCT4KIAkJCTwvRmlsZT4KQEAgLTI0MDIsNiArMjQxMCwxNCBAQAogCQkJCT4KIAkJCTwvRmls
ZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXENvbnNvbGUuY3BwIgorCQkJ
CT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXENvbnNv
bGUuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5c
cGFnZVxDb250ZXh0TWVudUNsaWVudC5oIgogCQkJCT4KIAkJCTwvRmlsZT4KSW5kZXg6IFdlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNTAyNCkKKysr
IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkp
CkBAIC0yNzY5LDYgKzI3NjksOCBAQAogCQlCQzJFRDY1MDBDNkJDNDhDMDA5MjBCRkYgLyogSlNI
VE1MSUZyYW1lRWxlbWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzJFRDY0RjBDNkJDNDhDMDA5MjBCRkYgLyogSlNIVE1MSUZyYW1l
RWxlbWVudEN1c3RvbS5jcHAgKi87IH07CiAJCUJDMkVENkJDMEM2QkQyRjAwMDkyMEJGRiAvKiBK
U0F0dHJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkMyRUQ2QkIwQzZCRDJGMDAwOTIwQkZGIC8qIEpTQXR0ckN1c3RvbS5jcHAgKi87IH07
CiAJCUJDMkVEN0E1MEM2QzBGMzYwMDkyMEJGRiAvKiBKU0hUTUxGcmFtZUVsZW1lbnRDdXN0b20u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyRUQ3
QTQwQzZDMEYzNjAwOTIwQkZGIC8qIEpTSFRNTEZyYW1lRWxlbWVudEN1c3RvbS5jcHAgKi87IH07
CisJCUJDMkVEQTFFMEM2RDJFMjkwMDkyMEJGRiAvKiBKU0NvbnNvbGUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyRURBMUMwQzZEMkUyOTAwOTIw
QkZGIC8qIEpTQ29uc29sZS5jcHAgKi87IH07CisJCUJDMkVEQTFGMEM2RDJFMjkwMDkyMEJGRiAv
KiBKU0NvbnNvbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDMkVEQTFEMEM2RDJFMjkwMDkyMEJGRiAvKiBKU0NvbnNvbGUuaCAqLzsgfTsKIAkJQkMz
MDVDNzkwQzA3NkJCMzAwQ0QyMEYwIC8qIEpTSFRNTE9iamVjdEVsZW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMzMDVDNzcwQzA3NkJCMzAw
Q0QyMEYwIC8qIEpTSFRNTE9iamVjdEVsZW1lbnQuY3BwICovOyB9OwogCQlCQzMwNUM3QTBDMDc2
QkIzMDBDRDIwRjAgLyogSlNIVE1MT2JqZWN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMzMDVDNzgwQzA3NkJCMzAwQ0QyMEYwIC8qIEpT
SFRNTE9iamVjdEVsZW1lbnQuaCAqLzsgfTsKIAkJQkMzMDVDQTQwQzA3ODFCQjAwQ0QyMEYwIC8q
IEpTSFRNTE9iamVjdEVsZW1lbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkMzMDVDQTMwQzA3ODFCQjAwQ0QyMEYwIC8qIEpTSFRNTE9i
amVjdEVsZW1lbnRDdXN0b20uY3BwICovOyB9OwpAQCAtMjk4Myw2ICsyOTg1LDggQEAKIAkJQkNG
QjJGNDIwOTdBMjRCNTAwQkE3MDNEIC8qIFNlZ21lbnRlZFN0cmluZy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGQjJGNDAwOTdBMjRCNTAwQkE3MDNE
IC8qIFNlZ21lbnRlZFN0cmluZy5oICovOyB9OwogCQlCQ0ZCMkY3NjA5N0EyRTFBMDBCQTcwM0Qg
LyogQXJlbmEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkNGQjJGNzQwOTdBMkUxQTAwQkE3MDNEIC8qIEFyZW5hLmNwcCAqLzsgfTsKIAkJQkNGQjJG
NzcwOTdBMkUxQTAwQkE3MDNEIC8qIEFyZW5hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0ZCMkY3NTA5N0EyRTFBMDBCQTcwM0QgLyogQXJlbmEuaCAq
LzsgfTsKKwkJQkNGREY0RUUwQzZEMzI4NjAwQjk0OUQwIC8qIENvbnNvbGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGREY0RUIwQzZEMzI4NjAw
Qjk0OUQwIC8qIENvbnNvbGUuY3BwICovOyB9OworCQlCQ0ZERjRFRjBDNkQzMjg2MDBCOTQ5RDAg
LyogQ29uc29sZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkNGREY0RUMwQzZEMzI4NjAwQjk0OUQwIC8qIENvbnNvbGUuaCAqLzsgfTsKIAkJQkNGRTJG
MTEwQzFCNTgzNzAwMjAyMzVGIC8qIEpTUmVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0ZFMkYwRjBDMUI1ODM3MDAyMDIzNUYgLyogSlNSZWN0
LmNwcCAqLzsgfTsKIAkJQkNGRTJGMTIwQzFCNTgzODAwMjAyMzVGIC8qIEpTUmVjdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGRTJGMTAwQzFCNTgz
NzAwMjAyMzVGIC8qIEpTUmVjdC5oICovOyB9OwogCQlCQ0ZFOEUzMjBBMDJBMUQzMDAwOUU2MUQg
LyogV2ViQ29yZVRleHRSZW5kZXJlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDRkU4RTMxMEEwMkExRDMwMDA5RTYxRCAvKiBXZWJDb3JlVGV4dFJl
bmRlcmVyLm1tICovOyB9OwpAQCAtNjEwNSw2ICs2MTA5LDggQEAKIAkJQkMyRUQ2NEYwQzZCQzQ4
QzAwOTIwQkZGIC8qIEpTSFRNTElGcmFtZUVsZW1lbnRDdXN0b20uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MSUZyYW1lRWxlbWVudEN1c3RvbS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMkVENkJCMEM2QkQyRjAwMDkyMEJGRiAvKiBK
U0F0dHJDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNB
dHRyQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMyRUQ3QTQwQzZD
MEYzNjAwOTIwQkZGIC8qIEpTSFRNTEZyYW1lRWxlbWVudEN1c3RvbS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxGcmFtZUVsZW1lbnRDdXN0b20uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzJFREExQzBDNkQyRTI5MDA5MjBCRkYgLyog
SlNDb25zb2xlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0Nv
bnNvbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzJFREExRDBDNkQyRTI5
MDA5MjBCRkYgLyogSlNDb25zb2xlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU0NvbnNvbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMzMDVDNzcwQzA3
NkJCMzAwQ0QyMEYwIC8qIEpTSFRNTE9iamVjdEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTE9iamVjdEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCQzMwNUM3ODBDMDc2QkIzMDBDRDIwRjAgLyogSlNIVE1MT2Jq
ZWN0RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MT2Jq
ZWN0RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzMwNUNBMzBDMDc4
MUJCMDBDRDIwRjAgLyogSlNIVE1MT2JqZWN0RWxlbWVudEN1c3RvbS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxPYmplY3RFbGVtZW50Q3VzdG9tLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTYzMjgsNiArNjMzNCw5IEBACiAJCUJDRkIy
RjQwMDk3QTI0QjUwMEJBNzAzRCAvKiBTZWdtZW50ZWRTdHJpbmcuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNlZ21lbnRlZFN0cmluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCQ0ZCMkY3NDA5N0EyRTFBMDBCQTcwM0QgLyogQXJlbmEuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFyZW5hLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQkNGQjJGNzUwOTdBMkUxQTAwQkE3MDNEIC8qIEFyZW5hLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcmVuYS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlCQ0ZERjRFQjBDNkQzMjg2MDBCOTQ5RDAgLyogQ29uc29sZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29uc29sZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUJDRkRGNEVDMEM2RDMyODYwMEI5NDlEMCAvKiBDb25zb2xlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb25zb2xlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUJDRkRGNEVEMEM2RDMyODYwMEI5NDlEMCAvKiBDb25zb2xlLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ29uc29sZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUJDRkUyRjBGMEMxQjU4MzcwMDIwMjM1RiAvKiBKU1JlY3QuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUmVjdC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUJDRkUyRjEwMEMxQjU4MzcwMDIwMjM1RiAvKiBKU1JlY3QuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUmVjdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCQ0ZFOEUzMTBBMDJBMUQzMDAwOUU2MUQgLyogV2ViQ29yZVRleHRS
ZW5kZXJlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJD
b3JlVGV4dFJlbmRlcmVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjU2OSw2
ICs2NTc4LDggQEAKIAkJCQk2NURGMzFFMDA5RDFDQzYwMDAwQkUzMjUgLyogSlNDaGFyYWN0ZXJE
YXRhLmggKi8sCiAJCQkJOTNGOUI2REUwQkEwRkI3MjAwODU0MDY0IC8qIEpTQ29tbWVudC5jcHAg
Ki8sCiAJCQkJOTNGOUI2REYwQkEwRkI3MjAwODU0MDY0IC8qIEpTQ29tbWVudC5oICovLAorCQkJ
CUJDMkVEQTFDMEM2RDJFMjkwMDkyMEJGRiAvKiBKU0NvbnNvbGUuY3BwICovLAorCQkJCUJDMkVE
QTFEMEM2RDJFMjkwMDkyMEJGRiAvKiBKU0NvbnNvbGUuaCAqLywKIAkJCQk5MzA3MDVENzA5RTBD
OUI3MDBCMTdGRTQgLyogSlNDb3VudGVyLmNwcCAqLywKIAkJCQk5MzA3MDVEOTA5RTBDOUJGMDBC
MTdGRTQgLyogSlNDb3VudGVyLmggKi8sCiAJCQkJQkM0NkMxRjAwQzBEREM4RjAwMjBDRkMzIC8q
IEpTQ1NTQ2hhcnNldFJ1bGUuY3BwICovLApAQCAtNzI5Nyw2ICs3MzA4LDkgQEAKIAkJCQkxNEQ4
MjM4QTBBRjkyREY2MDAwNEYwNTcgLyogQ2hyb21lLmNwcCAqLywKIAkJCQkxNEQ4MjM1MDBBRjky
QTc5MDAwNEYwNTcgLyogQ2hyb21lLmggKi8sCiAJCQkJMTREODI0MDYwQUY5M0FFQjAwMDRGMDU3
IC8qIENocm9tZUNsaWVudC5oICovLAorCQkJCUJDRkRGNEVCMEM2RDMyODYwMEI5NDlEMCAvKiBD
b25zb2xlLmNwcCAqLywKKwkJCQlCQ0ZERjRFQzBDNkQzMjg2MDBCOTQ5RDAgLyogQ29uc29sZS5o
ICovLAorCQkJCUJDRkRGNEVEMEM2RDMyODYwMEI5NDlEMCAvKiBDb25zb2xlLmlkbCAqLywKIAkJ
CQkwNjVBRDRGMjBCMEMyRURBMDA1QTJCMUQgLyogQ29udGV4dE1lbnVDbGllbnQuaCAqLywKIAkJ
CQkwNjVBRDRGMzBCMEMyRURBMDA1QTJCMUQgLyogQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcCAq
LywKIAkJCQkwNjVBRDRGNDBCMEMyRURBMDA1QTJCMUQgLyogQ29udGV4dE1lbnVDb250cm9sbGVy
LmggKi8sCkBAIC0xMTcwNSw2ICsxMTcxOSw4IEBACiAJCQkJQjQwMkZEMEIwQzRDOUMzOTAwMjEw
QUE2IC8qIEJpZGlSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYzMUNCRjkyQjY1NDcz
MEJBMDUzNUU4IC8qIEJpZGlDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDMyRTg0NzBD
NTE0OTM4MDBCMTUwMEYgLyogR0NDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzJF
REExRjBDNkQyRTI5MDA5MjBCRkYgLyogSlNDb25zb2xlLmggaW4gSGVhZGVycyAqLywKKwkJCQlC
Q0ZERjRFRjBDNkQzMjg2MDBCOTQ5RDAgLyogQ29uc29sZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0x
MzE2NCw2ICsxMzE4MCw4IEBACiAJCQkJQkMyRUQ2NTAwQzZCQzQ4QzAwOTIwQkZGIC8qIEpTSFRN
TElGcmFtZUVsZW1lbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyRUQ2QkMwQzZC
RDJGMDAwOTIwQkZGIC8qIEpTQXR0ckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzJF
RDdBNTBDNkMwRjM2MDA5MjBCRkYgLyogSlNIVE1MRnJhbWVFbGVtZW50Q3VzdG9tLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCUJDMkVEQTFFMEM2RDJFMjkwMDkyMEJGRiAvKiBKU0NvbnNvbGUuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJQkNGREY0RUUwQzZEMzI4NjAwQjk0OUQwIC8qIENvbnNvbGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0JKHJldmlzaW9uIDI1MDI0KQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBjb3B5KQpAQCAtMTAxNCw2ICsxMDE0LDgg
QEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICRp
bXBsSW5jbHVkZXN7IkpTIiAuICRjb25zdHJ1Y3RvclR5cGUgLiAiLmgifSA9IDE7CiAgICAgICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgLy8gU2hhZG93aW5n
IGEgYnVpbHQtaW4gY29uc3RydWN0b3JcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgICAgIEpTT2JqZWN0OjpwdXQoZXhlYywgXCIkbmFtZVwiLCB2
YWx1ZSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNpZiAoJGF0dHJpYnV0ZS0+c2ln
bmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmVwbGFjZWFibGUifSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIEpTT2JqZWN0OjpwdXQo
ZXhlYywgXCIkbmFtZVwiLCB2YWx1ZSk7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgfSBlbHNl
IHsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkcG9kVHlwZSkgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICAkcG9kVHlwZSYgaW1w
KCppbXBsKCkpO1xuXG4iKTsKSW5kZXg6IFdlYkNvcmUvcGFnZS9Db25zb2xlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BhZ2UvQ29uc29sZS5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3Jl
L3BhZ2UvQ29uc29sZS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTA2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuIAorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uIAorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIs
IEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAg
ICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLiAKKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJ
VFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
KyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ29uc29sZS5oIgorCisjaW5jbHVkZSAiQ2hyb21l
LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgorI2luY2x1
ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK0NvbnNvbGU6OkNvbnNvbGUoRnJhbWUqIGZyYW1lKQorICAgIDogbV9mcmFtZShm
cmFtZSkKK3sKK30KKworRnJhbWUqIENvbnNvbGU6OmZyYW1lKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9mcmFtZTsKK30KKwordm9pZCBDb25zb2xlOjpkaXNjb25uZWN0RnJhbWUoKQoreworICAg
IG1fZnJhbWUgPSAwOworfQorCit2b2lkIENvbnNvbGU6OmVycm9yKGNvbnN0IFN0cmluZyYgbWVz
c2FnZSkKK3sKKyAgICBpZiAoIW1fZnJhbWUpCisgICAgICAgIHJldHVybjsKKworICAgIFBhZ2Uq
IHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47
CisKKyAgICBwYWdlLT5jaHJvbWUoKS0+YWRkTWVzc2FnZVRvQ29uc29sZShKU01lc3NhZ2VTb3Vy
Y2UsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlLCAxLCBtX2ZyYW1lLT5sb2FkZXIoKS0+dXJs
KCkucHJldHR5VVJMKCkpOworfQorCit2b2lkIENvbnNvbGU6OmluZm8oY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKQoreworICAgIGlmICghbV9mcmFtZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUGFn
ZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVy
bjsKKworICAgIC8vIEZJWE1FOiB0aGlzIHNob3VsZCB1c2UgTG9nTWVzc2FnZUxldmVsLCBidXQg
bXVzdCB1c2UgRXJyb3JNZXNzYWdlTGV2ZWwgZm9yIG5vdyB0byBmb3J3YXJkIG1lc3NhZ2UgdG8g
dGhlIGNvbnNvbGUuCisgICAgcGFnZS0+Y2hyb21lKCktPmFkZE1lc3NhZ2VUb0NvbnNvbGUoSlNN
ZXNzYWdlU291cmNlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgMSwgbV9mcmFtZS0+bG9h
ZGVyKCktPnVybCgpLnByZXR0eVVSTCgpKTsKK30KKwordm9pZCBDb25zb2xlOjpsb2coY29uc3Qg
U3RyaW5nJiBtZXNzYWdlKQoreworICAgIGlmICghbV9mcmFtZSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAg
ICAgIHJldHVybjsKKworICAgIC8vIEZJWE1FOiB0aGlzIHNob3VsZCB1c2UgTG9nTWVzc2FnZUxl
dmVsLCBidXQgbXVzdCB1c2UgRXJyb3JNZXNzYWdlTGV2ZWwgZm9yIG5vdyB0byBmb3J3YXJkIG1l
c3NhZ2UgdG8gdGhlIGNvbnNvbGUuCisgICAgcGFnZS0+Y2hyb21lKCktPmFkZE1lc3NhZ2VUb0Nv
bnNvbGUoSlNNZXNzYWdlU291cmNlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgMSwgbV9m
cmFtZS0+bG9hZGVyKCktPnVybCgpLnByZXR0eVVSTCgpKTsKK30KKwordm9pZCBDb25zb2xlOjp3
YXJuKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICBpZiAoIW1fZnJhbWUpCisgICAgICAg
IHJldHVybjsKKworICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CisgICAgaWYgKCFw
YWdlKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBGSVhNRTogdGhpcyBzaG91bGQgdXNlIFdh
cm5pbmdNZXNzYWdlTGV2ZWwsIGJ1dCBtdXN0IHVzZSBFcnJvck1lc3NhZ2VMZXZlbCBmb3Igbm93
IHRvIGZvcndhcmQgbWVzc2FnZSB0byB0aGUgY29uc29sZS4KKyAgICBwYWdlLT5jaHJvbWUoKS0+
YWRkTWVzc2FnZVRvQ29uc29sZShKU01lc3NhZ2VTb3VyY2UsIEVycm9yTWVzc2FnZUxldmVsLCBt
ZXNzYWdlLCAxLCBtX2ZyYW1lLT5sb2FkZXIoKS0+dXJsKCkucHJldHR5VVJMKCkpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BhZ2UvQ29uc29sZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9Db25zb2xlLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3Jl
L3BhZ2UvQ29uc29sZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuIAorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uIAorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIElu
Yy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAg
ZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLiAKKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMg
Q09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAq
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IENvbnNvbGVfaAorI2RlZmluZSBDb25zb2xlX2gKKworI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5n
LmgiCisjaW5jbHVkZSAiU2hhcmVkLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworICAgIGNsYXNzIEZy
YW1lOworCisgICAgY2xhc3MgQ29uc29sZSA6IHB1YmxpYyBTaGFyZWQ8Q29uc29sZT4geworICAg
IHB1YmxpYzoKKyAgICAgICAgQ29uc29sZShGcmFtZSopOworCisgICAgICAgIEZyYW1lKiBmcmFt
ZSgpIGNvbnN0OworICAgICAgICB2b2lkIGRpc2Nvbm5lY3RGcmFtZSgpOworCisgICAgICAgIHZv
aWQgZXJyb3IoY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKKyAgICAgICAgdm9pZCBpbmZvKGNvbnN0
IFN0cmluZyYgbWVzc2FnZSk7CisgICAgICAgIHZvaWQgbG9nKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSk7CisgICAgICAgIHZvaWQgd2Fybihjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOworCisgICAgcHJp
dmF0ZToKKyAgICAgICAgRnJhbWUqIG1fZnJhbWU7CisgICAgfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gQ29uc29sZV9oCkluZGV4OiBXZWJDb3JlL3BhZ2UvQ29uc29s
ZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0NvbnNvbGUuaWRsCShyZXZpc2lvbiAw
KQorKysgV2ViQ29yZS9wYWdlL0NvbnNvbGUuaWRsCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBw
bGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMg
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLiAKKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCittb2R1bGUgd2luZG93IHsKKworICAgIGludGVyZmFjZSBDb25zb2xlIHsKKyAgICAg
ICAgdm9pZCBlcnJvcihpbiBET01TdHJpbmcgbWVzc2FnZSk7CisgICAgICAgIHZvaWQgaW5mbyhp
biBET01TdHJpbmcgbWVzc2FnZSk7CisgICAgICAgIHZvaWQgbG9nKGluIERPTVN0cmluZyBtZXNz
YWdlKTsKKyAgICAgICAgdm9pZCB3YXJuKGluIERPTVN0cmluZyBtZXNzYWdlKTsKKyAgICB9Owor
Cit9CkluZGV4OiBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmNwcAkocmV2aXNpb24gMjUwMjQpCisrKyBXZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUg
IkNTU1J1bGVMaXN0LmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgogI2luY2x1ZGUg
IkNocm9tZS5oIgorI2luY2x1ZGUgIkNvbnNvbGUuaCIKICNpbmNsdWRlICJET01TZWxlY3Rpb24u
aCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKQEAgLTk4LDYg
Kzk5LDE3IEBAIHZvaWQgRE9NV2luZG93OjpjbGVhcigpCiAgICAgaWYgKG1fdG9vbGJhcikKICAg
ICAgICAgbV90b29sYmFyLT5kaXNjb25uZWN0RnJhbWUoKTsKICAgICBtX3Rvb2xiYXIgPSAwOwor
CisgICAgaWYgKG1fY29uc29sZSkKKyAgICAgICAgbV9jb25zb2xlLT5kaXNjb25uZWN0RnJhbWUo
KTsKKyAgICBtX2NvbnNvbGUgPSAwOworfQorCitDb25zb2xlKiBET01XaW5kb3c6OmNvbnNvbGUo
KSBjb25zdAoreworICAgIGlmICghbV9jb25zb2xlKQorICAgICAgICBtX2NvbnNvbGUgPSBuZXcg
Q29uc29sZShtX2ZyYW1lKTsKKyAgICByZXR1cm4gbV9jb25zb2xlLmdldCgpOwogfQogCiBTY3Jl
ZW4qIERPTVdpbmRvdzo6c2NyZWVuKCkgY29uc3QKSW5kZXg6IFdlYkNvcmUvcGFnZS9ET01XaW5k
b3cuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgJKHJldmlzaW9uIDI1
MDI0KQorKysgV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2
ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBCYXJJbmZvOwogICAgIGNs
YXNzIENTU1J1bGVMaXN0OwogICAgIGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb247CisgICAgY2xh
c3MgQ29uc29sZTsKICAgICBjbGFzcyBET01TZWxlY3Rpb247CiAgICAgY2xhc3MgRG9jdW1lbnQ7
CiAgICAgY2xhc3MgRWxlbWVudDsKQEAgLTUzLDYgKzU0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAgICAgICAgIHZvaWQgY2xlYXIoKTsKIAorICAgICAgICBDb25zb2xlKiBjb25zb2xlKCkg
Y29uc3Q7CisKICAgICAgICAgLy8gRE9NIExldmVsIDAKICAgICAgICAgU2NyZWVuKiBzY3JlZW4o
KSBjb25zdDsKICAgICAgICAgSGlzdG9yeSogaGlzdG9yeSgpIGNvbnN0OwpAQCAtMTM5LDYgKzE0
Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8QmFySW5m
bz4gbV9zY3JvbGxiYXJzOwogICAgICAgICBtdXRhYmxlIFJlZlB0cjxCYXJJbmZvPiBtX3N0YXR1
c2JhcjsKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8QmFySW5mbz4gbV90b29sYmFyOworICAgICAg
ICBtdXRhYmxlIFJlZlB0cjxDb25zb2xlPiBtX2NvbnNvbGU7CiAgICAgfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHJldmlzaW9uIDI1MDI0KQorKysgV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw2ICsyNiw5
IEBACiBtb2R1bGUgd2luZG93IHsKIAogICAgIGludGVyZmFjZSBbTGVnYWN5UGFyZW50PUtKUzo6
V2luZG93LCBEb05vdENhY2hlLCBDaGVja0RvbWFpblNlY3VyaXR5LCBHZW5lcmF0ZU5hdGl2ZUNv
bnZlcnRlciwgQ3VzdG9tR2V0T3duUHJvcGVydHlTbG90LCBDdXN0b21QdXRGdW5jdGlvbl0gRE9N
V2luZG93IHsKKworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1JlcGxhY2VhYmxlXSBDb25z
b2xlIGNvbnNvbGU7CisKICAgICAgICAgLy8gRE9NIExldmVsIDAKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFNjcmVlbiBzY3JlZW47CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbRG9O
b3RDaGVja0RvbWFpblNlY3VyaXR5XSBIaXN0b3J5IGhpc3Rvcnk7CkluZGV4OiBXZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNTAyNCkKKysrIFdlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTMxOSw3
ICsxMzE5LDYgQEAKIAkJMDg2N0Q2OTBGRTg0MDI4RkMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0
ICovID0gewogCQkJaXNhID0gUEJYUHJvamVjdDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3Qg
PSAxNDlDMjgzMjA4OTAyQjBGMDA4QTlFRkMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZv
ciBQQlhQcm9qZWN0ICJXZWJLaXQiICovOwotCQkJY29tcGF0aWJpbGl0eVZlcnNpb24gPSAiWGNv
ZGUgMi40IjsKIAkJCWhhc1NjYW5uZWRGb3JFbmNvZGluZ3MgPSAxOwogCQkJa25vd25SZWdpb25z
ID0gKAogCQkJCUVuZ2xpc2gsCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI1
MDI0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtOTEyLDYgKzkxMiwxMSBAQCB3aW5kb3cuY2xp
ZW50SW5mb3JtYXRpb24udmVuZG9yU3ViIFtzdHJpCiB3aW5kb3cuY2xvc2UgW2Z1bmN0aW9uXQog
d2luZG93LmNsb3NlZCBbYm9vbGVhbl0KIHdpbmRvdy5jb25maXJtIFtmdW5jdGlvbl0KK3dpbmRv
dy5jb25zb2xlIFtvYmplY3QgQ29uc29sZV0KK3dpbmRvdy5jb25zb2xlLmVycm9yIFtmdW5jdGlv
bl0KK3dpbmRvdy5jb25zb2xlLmluZm8gW2Z1bmN0aW9uXQord2luZG93LmNvbnNvbGUubG9nIFtm
dW5jdGlvbl0KK3dpbmRvdy5jb25zb2xlLndhcm4gW2Z1bmN0aW9uXQogd2luZG93LmNyeXB0byBb
dW5kZWZpbmVkXQogd2luZG93LmRlZmF1bHRTdGF0dXMgW3N0cmluZ10KIHdpbmRvdy5kZWZhdWx0
c3RhdHVzIFtzdHJpbmddCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93
LXByb3BlcnR5LXNoYWRvd2luZy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1zaGFkb3dpbmctZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAyNTAyNCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ct
cHJvcGVydHktc2hhZG93aW5nLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDQgQEAKK1BBU1M6IGNvbnNvbGUgc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkCiBQQVNTOiBzY3JlZW4g
c3VjY2Vzc2Z1bGx5IHNoYWRvd2VkCiBQQVNTOiBoaXN0b3J5IHN1Y2Nlc3NmdWxseSBzaGFkb3dl
ZAogUEFTUzogbG9jYXRpb25iYXIgc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LXNoYWRvd2luZy5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktc2hh
ZG93aW5nLmh0bWwJKHJldmlzaW9uIDI1MDI0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L3dpbmRvdy1wcm9wZXJ0eS1zaGFkb3dpbmcuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTUs
NiArMTUsOCBAQAogICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OwogCiAgICAgICAgIC8vIFdpbmRvdyBBdHRyaWJ1dGVzCisgICAgICAgIHZhciBjb25zb2xlID0g
MTsKKyAgICAgICAgbG9nKGNvbnNvbGUgPT0gMSA/ICJQQVNTOiBjb25zb2xlIHN1Y2Nlc3NmdWxs
eSBzaGFkb3dlZCIgOiAiRkFJTDogY29uc29sZSB3YXMgbm90IHNoYWRvd2VkIik7CiAgICAgICAg
IHZhciBzY3JlZW4gPSAxOwogICAgICAgICBsb2coc2NyZWVuID09IDEgPyAiUEFTUzogc2NyZWVu
IHN1Y2Nlc3NmdWxseSBzaGFkb3dlZCIgOiAiRkFJTDogc2NyZWVuIHdhcyBub3Qgc2hhZG93ZWQi
KTsKICAgICAgICAgdmFyIGhpc3RvcnkgPSAxOwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1w
dXQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNTAyNCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTQxMyw3ICs0MTMsNyBAQCBBTEVSVDogUEFTUzogd2luZG93LlhQYXRoRXZhbHVh
dG9yIHNob3VsCiBBTEVSVDogUEFTUzogd2luZG93LlhQYXRoUmVzdWx0IHNob3VsZCBiZSAnW29i
amVjdCBYUGF0aFJlc3VsdENvbnN0cnVjdG9yXScgYW5kIGlzLgogQUxFUlQ6IFBBU1M6IHdpbmRv
dy5jbGllbnRJbmZvcm1hdGlvbiBzaG91bGQgYmUgJ1tvYmplY3QgTmF2aWdhdG9yXScgYW5kIGlz
LgogQUxFUlQ6IFBBU1M6IHdpbmRvdy5jbG9zZWQgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgot
QUxFUlQ6IFBBU1M6IHdpbmRvdy5jb25zb2xlIHNob3VsZCBiZSAnW29iamVjdCBIVE1MUHJlRWxl
bWVudF0nIGFuZCBpcy4KK0FMRVJUOiBQQVNTOiB3aW5kb3cuY29uc29sZSBzaG91bGQgYmUgJ1tv
YmplY3QgQ29uc29sZV0nIGFuZCBpcy4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuY3J5cHRvIHNob3Vs
ZCBiZSAndW5kZWZpbmVkJyBhbmQgaXMuCiBBTEVSVDogUEFTUzogd2luZG93LmRlZmF1bHRTdGF0
dXMgc2hvdWxkIGJlICcnIGFuZCBpcy4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuZGVmYXVsdHN0YXR1
cyBzaG91bGQgYmUgJycgYW5kIGlzLgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>16904</attachid>
            <date>2007-10-27 19:05:04 -0700</date>
            <delta_ts>2007-10-27 19:19:54 -0700</delta_ts>
            <desc>patch</desc>
            <filename>consoleFour.diff</filename>
            <type>text/plain</type>
            <size>31094</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNzE2MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzkgQEAKKzIwMDctMTAtMjcgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggaHR0
cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5NTMKKyAgICAgICAgSW1wbGVt
ZW50IHdpbmRvdy5jb25zb2xlIGluIFdlYkNvcmUKKworICAgICAgICAtIEFkZHMgYSB3aW5kb3cu
Y29uc29sZSBvYmplY3QgdGhhdCBoYXMgNCBtZXRob2RzIChsb2csIGluZm8sIHdhcm4sIGFuZCBl
cnJvcikKKyAgICAgICAgICB0aGF0IHNlbmQgbWVzc2FnZXMgdG8gdGhlIENocm9tZS4gIFRoaXMg
bW92ZXMgZnVuY3Rpb25hbGl0eSB0aGF0IHdhcyBpbiB0aGUKKyAgICAgICAgICBhcHAgZG93biBp
bnRvIFdlYkNvcmUuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAq
IFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbTogQWRkIGV4dGVuZGVkIGF0dHJpYnV0
ZQorICAgICAgICB0byBtYXJrIGF0dHJpYnV0ZXMgYXMgW1JlcGxhY2FibGVdIHdoaWNoIGluZGlj
YXRlcyB0aGV5IGNhbiAKKyAgICAgICAgb3ZlcnJpZGRlbiB3aGVuIHNldC4KKyAgICAgICAgKiBw
YWdlL0Nocm9tZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OmFkZE1lc3NhZ2VUb0Nv
bnNvbGUpOiBBbGxvdyBhbGwgbWVzc2FnZXMgdG8gZ28KKyAgICAgICAgdXAgdG8gdGhlIENocm9t
ZUNsaWVudC4KKyAgICAgICAgKiBwYWdlL0NvbnNvbGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkNvbnNvbGU6OkNvbnNvbGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29uc29sZTo6ZGlz
Y29ubmVjdEZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnNvbGU6OmVycm9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnNvbGU6OmluZm8pOgorICAgICAgICAoV2ViQ29yZTo6Q29uc29sZTo6
bG9nKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnNvbGU6Ondhcm4pOgorICAgICAgICAqIHBhZ2Uv
Q29uc29sZS5oOiBBZGRlZC4KKyAgICAgICAgKiBwYWdlL0NvbnNvbGUuaWRsOiBBZGRlZC4KKyAg
ICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6
OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6Y29uc29sZSk6CisgICAgICAg
ICogcGFnZS9ET01XaW5kb3cuaDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6CisKIDIw
MDctMTAtMjcgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IGFyb2Jlbi4KSW5kZXg6IFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDI3MTYwKQorKysg
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0zMjcsNiArMzI3
LDcgQEAgYWxsIDogXAogICAgIEpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmggXAogICAgIEpT
Q2hhcmFjdGVyRGF0YS5oIFwKICAgICBKU0NvbW1lbnQuaCBcCisgICAgSlNDb25zb2xlLmggXAog
ICAgIEpTQ291bnRlci5oIFwKICAgICBKU0NTU1N0eWxlRGVjbGFyYXRpb24uaCBcCiAgICAgSlNE
YXRhYmFzZS5oIFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24gMjcxNjApCisrKyBXZWJDb3JlL1dlYkNvcmUucHJv
CSh3b3JraW5nIGNvcHkpCkBAIC0yOTMsNiArMjkzLDcgQEAgSURMX0JJTkRJTkdTICs9IFwKICAg
ICBodG1sL0hUTUxUaXRsZUVsZW1lbnQuaWRsIFwKICAgICBodG1sL0hUTUxVTGlzdEVsZW1lbnQu
aWRsIFwKICAgICBwYWdlL0JhckluZm8uaWRsIFwKKyAgICBwYWdlL0NvbnNvbGUuaWRsIFwKICAg
ICBwYWdlL0RPTVNlbGVjdGlvbi5pZGwgXAogICAgIHBhZ2UvRE9NV2luZG93LmlkbCBcCiAgICAg
cGFnZS9IaXN0b3J5LmlkbCBcCkBAIC02MDUsNiArNjA2LDcgQEAgU09VUkNFUyArPSBcCiAgICAg
bG9hZGVyL1RleHRSZXNvdXJjZURlY29kZXIuY3BwIFwKICAgICBwYWdlL0JhckluZm8uY3BwIFwK
ICAgICBwYWdlL0Nocm9tZS5jcHAgXAorICAgIHBhZ2UvQ29uc29sZS5jcHAgXAogICAgIHBhZ2Uv
Q29udGV4dE1lbnVDb250cm9sbGVyLmNwcCBcCiAgICAgcGFnZS9ET01TZWxlY3Rpb24uY3BwIFwK
ICAgICBwYWdlL0RPTVdpbmRvdy5jcHAgXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCShyZXZpc2lvbiAyNzE2MCkKKysrIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTQwOSw2ICs0MDksMTQgQEAKIAkJCQk+DQog
CQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXRE
aXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0NvbnNvbGUuY3BwIg0KKwkJ
CQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRP
dXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0NvbnNvbGUuaCIN
CisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9IiQoV2Vi
S2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNDb3VudGVy
LmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCkBAIC0yNTAzLDYgKzI1MTEsMTQgQEAKIAkJCQk+
DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxDb25z
b2xlLmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXHBhZ2VcQ29uc29sZS5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQog
CQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxDb250ZXh0TWVudUNsaWVudC5oIg0KIAkJCQk+DQog
CQkJPC9GaWxlPg0KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCShyZXZpc2lvbiAyNzE2MCkKKysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zMjk4LDYgKzMyOTgsOSBAQAogCQlCQzA2RUUw
NDBCRkQ3MUFBMDA4NTZFOUQgLyogSlNIVE1MVGFibGVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDZFRTAyMEJGRDcxQUEwMDg1NkU5
RCAvKiBKU0hUTUxUYWJsZUVsZW1lbnQuY3BwICovOyB9OwogCQlCQzA2RUUwNTBCRkQ3MUFBMDA4
NTZFOUQgLyogSlNIVE1MVGFibGVFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzA2RUUwMzBCRkQ3MUFBMDA4NTZFOUQgLyogSlNIVE1MVGFi
bGVFbGVtZW50LmggKi87IH07CiAJCUJDMDczQkFBMEMzOTlCMUYwMDBGNTk3OSAvKiBGbG9hdENv
bnZlcnNpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDMDczQkE5MEMzOTlCMUYwMDBGNTk3OSAvKiBGbG9hdENvbnZlcnNpb24uaCAqLzsgfTsKKwkJ
QkMwQjM2QTQwQ0QzQzY3QzAwQUM3RUI1IC8qIENvbnNvbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwQjM2QTEwQ0QzQzY3QzAwQUM3RUI1IC8q
IENvbnNvbGUuY3BwICovOyB9OworCQlCQzBCMzZBNTBDRDNDNjdDMDBBQzdFQjUgLyogQ29uc29s
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwQjM2
QTIwQ0QzQzY3QzAwQUM3RUI1IC8qIENvbnNvbGUuaCAqLzsgfTsKKwkJQkMwQjM2QTYwQ0QzQzY3
QzAwQUM3RUI1IC8qIENvbnNvbGUuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzBCMzZBMzBDRDNDNjdDMDBBQzdFQjUgLyogQ29uc29sZS5pZGwg
Ki87IH07CiAJCUJDMTI0RUU3MEMyNjQxQ0QwMDlFMjM0OSAvKiBCYXJJbmZvLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTI0RUU0MEMyNjQxQ0Qw
MDlFMjM0OSAvKiBCYXJJbmZvLmNwcCAqLzsgfTsKIAkJQkMxMjRFRTgwQzI2NDFDRDAwOUUyMzQ5
IC8qIEJhckluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDMTI0RUU1MEMyNjQxQ0QwMDlFMjM0OSAvKiBCYXJJbmZvLmggKi87IH07CiAJCUJDMTI0
RUZGMEMyNjQ0N0EwMDlFMjM0OSAvKiBKU0JhckluZm8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxMjRFRkQwQzI2NDQ3QTAwOUUyMzQ5IC8qIEpT
QmFySW5mby5jcHAgKi87IH07CkBAIC0zNDE5LDYgKzM0MjIsOCBAQAogCQlCQzk0RDE1NDBDMjc1
QzhCMDA2QkM2MTcgLyogSGlzdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkM5NEQxNTEwQzI3NUM4QjAwNkJDNjE3IC8qIEhpc3RvcnkuaCAqLzsg
fTsKIAkJQkM5NEQxNTcwQzI3NUNBQjAwNkJDNjE3IC8qIEdsb2JhbEhpc3RvcnkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDOTREMTU2MEMyNzVDQUIw
MDZCQzYxNyAvKiBHbG9iYWxIaXN0b3J5LmggKi87IH07CiAJCUJDOTREMTU5MEMyNzVDQjYwMDZC
QzYxNyAvKiBHbG9iYWxIaXN0b3J5TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkM5NEQxNTgwQzI3NUNCNjAwNkJDNjE3IC8qIEdsb2JhbEhpc3Rv
cnlNYWMubW0gKi87IH07CisJCUJDOTg1NDNEMENEM0Q5OEIwMDA2OUJDMSAvKiBKU0NvbnNvbGUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM5ODU0
M0IwQ0QzRDk4QjAwMDY5QkMxIC8qIEpTQ29uc29sZS5jcHAgKi87IH07CisJCUJDOTg1NDNFMENE
M0Q5OEMwMDA2OUJDMSAvKiBKU0NvbnNvbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDOTg1NDNDMENEM0Q5OEIwMDA2OUJDMSAvKiBKU0NvbnNvbGUu
aCAqLzsgfTsKIAkJQkM5OEEyN0QwQzBDOTk1MDAwNEJFQkY3IC8qIEpTU3R5bGVTaGVldEN1c3Rv
bS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzk4
QTI3QzBDMEM5OTUwMDA0QkVCRjcgLyogSlNTdHlsZVNoZWV0Q3VzdG9tLmNwcCAqLzsgfTsKIAkJ
QkM5QUREMjMwQ0M0MDMyNjAwMDk4QzRDIC8qIENTU1RyYW5zZm9ybVZhbHVlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzlBREQyMjBDQzQwMzI2MDAw
OThDNEMgLyogQ1NTVHJhbnNmb3JtVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzlBREQ4MDBDQzQwOTIyMDAwOThDNEMgLyogQ1NTVHJh
bnNmb3JtVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkM5QUREN0YwQ0M0MDkyMjAwMDk4QzRDIC8qIENTU1RyYW5zZm9ybVZhbHVlLmNwcCAq
LzsgfTsKQEAgLTcxOTIsNiArNzE5Nyw5IEBACiAJCUJDMDZGMjRCMDZEMThBN0UwMDRBNkZBMyAv
KiBYU0xUUHJvY2Vzc29yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFhTTFRQcm9jZXNzb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQkMwNkYyNEMwNkQxOEE3RTAw
NEE2RkEzIC8qIFhTTFRQcm9jZXNzb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gWFNMVFByb2Nlc3Nvci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQkMwNzNCQTkwQzM5OUIxRjAw
MEY1OTc5IC8qIEZsb2F0Q29udmVyc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRmxvYXRDb252ZXJzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJD
MEIzNkExMENEM0M2N0MwMEFDN0VCNSAvKiBDb25zb2xlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDb25zb2xlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQkMwQjM2QTIwQ0QzQzY3QzAwQUM3RUI1IC8qIENvbnNvbGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnNvbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQkMwQjM2QTMwQ0QzQzY3QzAwQUM3RUI1IC8qIENvbnNvbGUuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBDb25zb2xlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QkMxMjRFRTQwQzI2NDFDRDAwOUUyMzQ5IC8qIEJhckluZm8uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhckluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQzEyNEVFNTBDMjY0MUNEMDA5RTIzNDkgLyogQmFySW5mby5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFySW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQzEyNEVFNjBDMjY0MUNEMDA5RTIzNDkgLyogQmFySW5mby5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IEJhckluZm8uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtNzMxOCw2ICs3MzI2LDggQEAKIAkJQkM5NEQxNTIwQzI3NUM4QjAwNkJDNjE3IC8qIEhpc3Rv
cnkuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIaXN0b3J5LmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQkM5NEQxNTYwQzI3NUNBQjAwNkJDNjE3IC8qIEdsb2JhbEhpc3Rv
cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdsb2JhbEhpc3RvcnkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM5NEQxNTgwQzI3NUNCNjAwNkJDNjE3IC8q
IEdsb2JhbEhpc3RvcnlNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gR2xvYmFsSGlzdG9yeU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QkM5ODU0M0IwQ0QzRDk4QjAwMDY5QkMxIC8qIEpTQ29uc29sZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDb25zb2xlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQkM5ODU0M0MwQ0QzRDk4QjAwMDY5QkMxIC8qIEpTQ29uc29sZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDb25zb2xlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUJDOThBMjdDMEMwQzk5NTAwMDRCRUJGNyAvKiBKU1N0eWxlU2hlZXRD
dXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTdHlsZVNo
ZWV0Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM5QUREMjIwQ0M0
MDMyNjAwMDk4QzRDIC8qIENTU1RyYW5zZm9ybVZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDU1NUcmFuc2Zvcm1WYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQzlBREQ3RjBDQzQwOTIyMDAwOThDNEMgLyogQ1NTVHJhbnNmb3JtVmFsdWUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU1RyYW5zZm9ybVZhbHVl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc2ODgsMjIgKzc2OTgsMTYgQEAK
IAkJMTRERkIzM0YwQTdERjc2MzAwMThGNzY5IC8qIERlcml2ZWQgU291cmNlcyAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQTgzQjc5MTAwQ0NCMDAxQjAw
MEIwODI1IC8qIENvcmUgKi8sCiAJCQkJQTgzQjc5MEUwQ0NBRkY5NzAwMEIwODI1IC8qIENTUyAq
LywKLQkJCQlBODNCNzkxMDBDQ0IwMDFCMDAwQjA4MjUgLyogRE9NICovLAogCQkJCUE4M0I3OTEy
MENDQjAwM0YwMDBCMDgyNSAvKiBFdmVudHMgKi8sCiAJCQkJQTgzQjc5MDgwQ0NBRkYyQjAwMEIw
ODI1IC8qIEhUTUwgKi8sCi0JCQkJQkMxMjRFRkQwQzI2NDQ3QTAwOUUyMzQ5IC8qIEpTQmFySW5m
by5jcHAgKi8sCi0JCQkJQkMxMjRFRkUwQzI2NDQ3QTAwOUUyMzQ5IC8qIEpTQmFySW5mby5oICov
LAotCQkJCUJDOTREMTRDMEMyNzVDNjgwMDZCQzYxNyAvKiBKU0hpc3RvcnkuY3BwICovLAotCQkJ
CUJDOTREMTREMEMyNzVDNjgwMDZCQzYxNyAvKiBKU0hpc3RvcnkuaCAqLywKLQkJCQlCQ0ZFMkYw
RjBDMUI1ODM3MDAyMDIzNUYgLyogSlNSZWN0LmNwcCAqLywKLQkJCQlCQ0ZFMkYxMDBDMUI1ODM3
MDAyMDIzNUYgLyogSlNSZWN0LmggKi8sCi0JCQkJQkNFQzAxQzAwQzI3NERERDAwOUY0RUM5IC8q
IEpTU2NyZWVuLmNwcCAqLywKLQkJCQlCQ0VDMDFDMTBDMjc0REREMDA5RjRFQzkgLyogSlNTY3Jl
ZW4uaCAqLywKLQkJCQlBODNCNzkyMjBDQ0IwMEYwMDAwQjA4MjUgLyogWE1MICovLAotCQkJCTY1
NjU4MUQ5MDlEMTUwOEQwMDBFNjFENyAvKiBKU1hTTFRQcm9jZXNzb3IubHV0LmggKi8sCisJCQkJ
QkM5ODU0NDYwQ0QzREE1RjAwMDY5QkMxIC8qIFJhbmdlcyAqLywKIAkJCQlBODNCNzkxNTBDQ0Iw
MDc4MDAwQjA4MjUgLyogU3RvcmFnZSAqLywKIAkJCQlBODNCNzkwQTBDQ0FGRjQ3MDAwQjA4MjUg
LyogU1ZHICovLAorCQkJCUJDOTg1NDUzMENEM0RBOEYwMDA2OUJDMSAvKiBUcmF2ZXJzYWwgKi8s
CisJCQkJQkM5ODU0NDMwQ0QzRDlEMDAwMDY5QkMxIC8qIFdpbmRvdyAqLywKKwkJCQlBODNCNzky
MjBDQ0IwMEYwMDAwQjA4MjUgLyogWE1MICovLAogCQkJCUE4M0I3OTBDMENDQUZGODMwMDBCMDgy
NSAvKiBYUGF0aCAqLywKIAkJCSk7CiAJCQluYW1lID0gIkRlcml2ZWQgU291cmNlcyI7CkBAIC04
MDI4LDYgKzgwMzIsOSBAQAogCQkJCTE0RDgyMzhBMEFGOTJERjYwMDA0RjA1NyAvKiBDaHJvbWUu
Y3BwICovLAogCQkJCTE0RDgyMzUwMEFGOTJBNzkwMDA0RjA1NyAvKiBDaHJvbWUuaCAqLywKIAkJ
CQkxNEQ4MjQwNjBBRjkzQUVCMDAwNEYwNTcgLyogQ2hyb21lQ2xpZW50LmggKi8sCisJCQkJQkMw
QjM2QTEwQ0QzQzY3QzAwQUM3RUI1IC8qIENvbnNvbGUuY3BwICovLAorCQkJCUJDMEIzNkEyMENE
M0M2N0MwMEFDN0VCNSAvKiBDb25zb2xlLmggKi8sCisJCQkJQkMwQjM2QTMwQ0QzQzY3QzAwQUM3
RUI1IC8qIENvbnNvbGUuaWRsICovLAogCQkJCTA2NUFENEYyMEIwQzJFREEwMDVBMkIxRCAvKiBD
b250ZXh0TWVudUNsaWVudC5oICovLAogCQkJCTA2NUFENEYzMEIwQzJFREEwMDVBMkIxRCAvKiBD
b250ZXh0TWVudUNvbnRyb2xsZXIuY3BwICovLAogCQkJCTA2NUFENEY0MEIwQzJFREEwMDVBMkIx
RCAvKiBDb250ZXh0TWVudUNvbnRyb2xsZXIuaCAqLywKQEAgLTEwMDU5LDYgKzEwMDY2LDggQEAK
IAkJCQlBOEQwNUZBQTBBMjNCMzBGMDA1RTcyMDMgLyogSlNDU1NWYWx1ZUxpc3QuaCAqLywKIAkJ
CQlCQzNDMzlCNDBDMEQzRDhEMDA1RjREN0EgLyogSlNNZWRpYUxpc3QuY3BwICovLAogCQkJCUJD
M0MzOUI1MEMwRDNEOEQwMDVGNEQ3QSAvKiBKU01lZGlhTGlzdC5oICovLAorCQkJCUJDRkUyRjBG
MEMxQjU4MzcwMDIwMjM1RiAvKiBKU1JlY3QuY3BwICovLAorCQkJCUJDRkUyRjEwMEMxQjU4Mzcw
MDIwMjM1RiAvKiBKU1JlY3QuaCAqLywKIAkJCQlCQ0UwMTM5ODBDMEJFRjE4MDA0Mzg2MEEgLyog
SlNTdHlsZVNoZWV0LmNwcCAqLywKIAkJCQlCQ0UwMTM5OTBDMEJFRjE4MDA0Mzg2MEEgLyogSlNT
dHlsZVNoZWV0LmggKi8sCiAJCQkJQTg0RUJEODIwQ0I4Qzk3NzAwMDc5NjA5IC8qIEpTU3R5bGVT
aGVldExpc3QuY3BwICovLApAQCAtMTAwNjcsNyArMTAwNzYsNyBAQAogCQkJbmFtZSA9IENTUzsK
IAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07Ci0JCUE4M0I3OTEwMENDQjAwMUIwMDBC
MDgyNSAvKiBET00gKi8gPSB7CisJCUE4M0I3OTEwMENDQjAwMUIwMDBCMDgyNSAvKiBDb3JlICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQk2NURGMzFEODA5
RDFDMTIyMDAwQkUzMjUgLyogSlNBdHRyLmNwcCAqLywKQEAgLTEwMDg2LDEyICsxMDA5NSw2IEBA
CiAJCQkJNjVERjMxRTIwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTRG9jdW1lbnRUeXBlLmggKi8sCiAJ
CQkJNjVERjMxRTMwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTRE9NSW1wbGVtZW50YXRpb24uY3BwICov
LAogCQkJCTY1REYzMUU0MDlEMUNDNjAwMDBCRTMyNSAvKiBKU0RPTUltcGxlbWVudGF0aW9uLmgg
Ki8sCi0JCQkJMUFDRTUzREQwQThEMTg4MTAwMjI5NDdEIC8qIEpTRE9NUGFyc2VyLmNwcCAqLywK
LQkJCQkxQUNFNTNERTBBOEQxODgxMDAyMjk0N0QgLyogSlNET01QYXJzZXIuaCAqLywKLQkJCQlC
QzVBODZCMzBDMzM2N0U4MDBFRUE2NDkgLyogSlNET01TZWxlY3Rpb24uY3BwICovLAotCQkJCUJD
NUE4NkI0MEMzMzY3RTgwMEVFQTY0OSAvKiBKU0RPTVNlbGVjdGlvbi5oICovLAotCQkJCTE0MDNC
QTBCMDlFQjE4QzcwMDc5N0M3RiAvKiBKU0RPTVdpbmRvdy5jcHAgKi8sCi0JCQkJMTQwM0JBMEUw
OUVCMThGODAwNzk3QzdGIC8qIEpTRE9NV2luZG93LmggKi8sCiAJCQkJNjVERjMxRTUwOUQxQ0M2
MDAwMEJFMzI1IC8qIEpTRWxlbWVudC5jcHAgKi8sCiAJCQkJNjVERjMxRTYwOUQxQ0M2MDAwMEJF
MzI1IC8qIEpTRWxlbWVudC5oICovLAogCQkJCTY1REYzMjJEMDlEMUREQkMwMDBCRTMyNSAvKiBK
U0VudGl0eS5jcHAgKi8sCkBAIC0xMDEwMiwyNiArMTAxMDUsMTYgQEAKIAkJCQlCQ0Q5QzJCRDBD
MTdCNjlFMDA1QzkwQTIgLyogSlNOYW1lZE5vZGVNYXAuaCAqLywKIAkJCQkxNERDMEQzNTA5RkVE
MDczMDA3QjAyMzUgLyogSlNOb2RlLmNwcCAqLywKIAkJCQkxNERDMEQzNjA5RkVEMDczMDA3QjAy
MzUgLyogSlNOb2RlLmggKi8sCi0JCQkJMTQxMTVCNzAwOUY4NENENjAwQ0E0RkMxIC8qIEpTTm9k
ZUZpbHRlci5jcHAgKi8sCi0JCQkJMTQxMTVCNzEwOUY4NENENjAwQ0E0RkMxIC8qIEpTTm9kZUZp
bHRlci5oICovLAotCQkJCTFBNzUwRDhCMEE5MEU1MjEwMDBGRjIxNSAvKiBKU05vZGVJdGVyYXRv
ci5jcHAgKi8sCi0JCQkJMUE3NTBEOEMwQTkwRTUyMTAwMEZGMjE1IC8qIEpTTm9kZUl0ZXJhdG9y
LmggKi8sCiAJCQkJQkNEOUMyQkUwQzE3QjY5RTAwNUM5MEEyIC8qIEpTTm9kZUxpc3QuY3BwICov
LAogCQkJCUJDRDlDMkJGMEMxN0I2OUUwMDVDOTBBMiAvKiBKU05vZGVMaXN0LmggKi8sCiAJCQkJ
NjVERjMxRTkwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTTm90YXRpb24uY3BwICovLAogCQkJCTY1REYz
MUVBMDlEMUNDNjAwMDBCRTMyNSAvKiBKU05vdGF0aW9uLmggKi8sCiAJCQkJNjVERjMxRUIwOUQx
Q0M2MDAwMEJFMzI1IC8qIEpTUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcCAqLywKIAkJCQk2NURG
MzFFQzA5RDFDQzYwMDAwQkUzMjUgLyogSlNQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCAqLywKLQkJ
CQk2NURGMzFFRDA5RDFDQzYwMDAwQkUzMjUgLyogSlNSYW5nZS5jcHAgKi8sCi0JCQkJNjVERjMx
RUUwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTUmFuZ2UuaCAqLywKLQkJCQlEMjNDQTU1RTBBQjBFQUI2
MDA1MTA4QTUgLyogSlNSYW5nZUV4Y2VwdGlvbi5jcHAgKi8sCi0JCQkJRDIzQ0E1NUMwQUIwRUFB
RTAwNTEwOEE1IC8qIEpTUmFuZ2VFeGNlcHRpb24uaCAqLywKIAkJCQk2NURGMzFFRjA5RDFDQzYw
MDAwQkUzMjUgLyogSlNUZXh0LmNwcCAqLywKIAkJCQk2NURGMzFGMDA5RDFDQzYwMDAwQkUzMjUg
LyogSlNUZXh0LmggKi8sCi0JCQkJMUE3NTBENUEwQTkwREVFMTAwMEZGMjE1IC8qIEpTVHJlZVdh
bGtlci5jcHAgKi8sCi0JCQkJMUE3NTBENUIwQTkwREVFMTAwMEZGMjE1IC8qIEpTVHJlZVdhbGtl
ci5oICovLAogCQkJKTsKLQkJCW5hbWUgPSBET007CisJCQluYW1lID0gQ29yZTsKIAkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CiAJCUE4M0I3OTEyMENDQjAwM0YwMDBCMDgyNSAvKiBF
dmVudHMgKi8gPSB7CkBAIC0xMDE2Nyw5ICsxMDE2MCwxMiBAQAogCQlBODNCNzkyMjBDQ0IwMEYw
MDAwQjA4MjUgLyogWE1MICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKKwkJCQkxQUNFNTNERDBBOEQxODgxMDAyMjk0N0QgLyogSlNET01QYXJzZXIuY3BwICovLAor
CQkJCTFBQ0U1M0RFMEE4RDE4ODEwMDIyOTQ3RCAvKiBKU0RPTVBhcnNlci5oICovLAogCQkJCTY1
NjU4MUQ3MDlEMTUwOEQwMDBFNjFENyAvKiBKU1hNTEh0dHBSZXF1ZXN0Lmx1dC5oICovLAogCQkJ
CTFBQ0U1M0Y0MEE4RDE5NDcwMDIyOTQ3RCAvKiBKU1hNTFNlcmlhbGl6ZXIuY3BwICovLAogCQkJ
CTFBQ0U1M0Y1MEE4RDE5NDcwMDIyOTQ3RCAvKiBKU1hNTFNlcmlhbGl6ZXIuaCAqLywKKwkJCQk2
NTY1ODFEOTA5RDE1MDhEMDAwRTYxRDcgLyogSlNYU0xUUHJvY2Vzc29yLmx1dC5oICovLAogCQkJ
KTsKIAkJCW5hbWUgPSBYTUw7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTEwMzgs
NiArMTEwMzQsNDkgQEAKIAkJCW5hbWUgPSBDdXN0b207CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwogCQl9OworCQlCQzk4NTQ0MzBDRDNEOUQwMDAwNjlCQzEgLyogV2luZG93ICovID0gewor
CQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlCQzVBODZCMzBDMzM2N0U4
MDBFRUE2NDkgLyogSlNET01TZWxlY3Rpb24uY3BwICovLAorCQkJCUJDNUE4NkI0MEMzMzY3RTgw
MEVFQTY0OSAvKiBKU0RPTVNlbGVjdGlvbi5oICovLAorCQkJCTE0MDNCQTBCMDlFQjE4QzcwMDc5
N0M3RiAvKiBKU0RPTVdpbmRvdy5jcHAgKi8sCisJCQkJMTQwM0JBMEUwOUVCMThGODAwNzk3QzdG
IC8qIEpTRE9NV2luZG93LmggKi8sCisJCQkJQkM5ODU0M0IwQ0QzRDk4QjAwMDY5QkMxIC8qIEpT
Q29uc29sZS5jcHAgKi8sCisJCQkJQkM5ODU0M0MwQ0QzRDk4QjAwMDY5QkMxIC8qIEpTQ29uc29s
ZS5oICovLAorCQkJCUJDMTI0RUZEMEMyNjQ0N0EwMDlFMjM0OSAvKiBKU0JhckluZm8uY3BwICov
LAorCQkJCUJDMTI0RUZFMEMyNjQ0N0EwMDlFMjM0OSAvKiBKU0JhckluZm8uaCAqLywKKwkJCQlC
Qzk0RDE0QzBDMjc1QzY4MDA2QkM2MTcgLyogSlNIaXN0b3J5LmNwcCAqLywKKwkJCQlCQzk0RDE0
RDBDMjc1QzY4MDA2QkM2MTcgLyogSlNIaXN0b3J5LmggKi8sCisJCQkJQkNFQzAxQzAwQzI3NERE
RDAwOUY0RUM5IC8qIEpTU2NyZWVuLmNwcCAqLywKKwkJCQlCQ0VDMDFDMTBDMjc0REREMDA5RjRF
QzkgLyogSlNTY3JlZW4uaCAqLywKKwkJCSk7CisJCQluYW1lID0gV2luZG93OworCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJQkM5ODU0NDYwQ0QzREE1RjAwMDY5QkMxIC8qIFJh
bmdlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNjVE
RjMxRUQwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTUmFuZ2UuY3BwICovLAorCQkJCTY1REYzMUVFMDlE
MUNDNjAwMDBCRTMyNSAvKiBKU1JhbmdlLmggKi8sCisJCQkJRDIzQ0E1NUUwQUIwRUFCNjAwNTEw
OEE1IC8qIEpTUmFuZ2VFeGNlcHRpb24uY3BwICovLAorCQkJCUQyM0NBNTVDMEFCMEVBQUUwMDUx
MDhBNSAvKiBKU1JhbmdlRXhjZXB0aW9uLmggKi8sCisJCQkpOworCQkJbmFtZSA9IFJhbmdlczsK
KwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCUJDOTg1NDUzMENEM0RBOEYwMDA2
OUJDMSAvKiBUcmF2ZXJzYWwgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVu
ID0gKAorCQkJCTE0MTE1QjcwMDlGODRDRDYwMENBNEZDMSAvKiBKU05vZGVGaWx0ZXIuY3BwICov
LAorCQkJCTE0MTE1QjcxMDlGODRDRDYwMENBNEZDMSAvKiBKU05vZGVGaWx0ZXIuaCAqLywKKwkJ
CQkxQTc1MEQ4QjBBOTBFNTIxMDAwRkYyMTUgLyogSlNOb2RlSXRlcmF0b3IuY3BwICovLAorCQkJ
CTFBNzUwRDhDMEE5MEU1MjEwMDBGRjIxNSAvKiBKU05vZGVJdGVyYXRvci5oICovLAorCQkJCTFB
NzUwRDVBMEE5MERFRTEwMDBGRjIxNSAvKiBKU1RyZWVXYWxrZXIuY3BwICovLAorCQkJCTFBNzUw
RDVCMEE5MERFRTEwMDBGRjIxNSAvKiBKU1RyZWVXYWxrZXIuaCAqLywKKwkJCSk7CisJCQluYW1l
ID0gVHJhdmVyc2FsOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJQkNCMTZC
RkIwOTc5QzM4NzAwNDY3NzQxIC8qIGxvYWRlciAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCkBAIC0xMzU4Miw2ICsxMzYyMSw4IEBACiAJCQkJQTgwRjNBN0QwQ0NE
QTMyNDAwMkREOTkwIC8qIERPTVNWR0FuZ2xlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBGNDM1
MjBDQ0RFNjA0MDAyREQ5OTAgLyogRE9NU1ZHQW5pbWF0ZUVsZW1lbnRJbnRlcm5hbC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRTE1ODYzOTkwQ0QxMEI3MzAwNjZFMkM5IC8qIFRleHRDb2RlY1VzZXJE
ZWZpbmVkLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzBCMzZBNTBDRDNDNjdDMDBBQzdFQjUgLyog
Q29uc29sZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM5ODU0M0UwQ0QzRDk4QzAwMDY5QkMxIC8q
IEpTQ29uc29sZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0xMzcwMSw2ICsxMzc0Miw3IEBACiAJCQkJ
QTgzQjc4REYwQ0NBRkVDMTAwMEIwODI1IC8qIFNWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudC5pZGwg
aW4gUmVzb3VyY2VzICovLAogCQkJCUE4M0I3OEUyMENDQUZFQzEwMDBCMDgyNSAvKiBTVkdGb250
RmFjZUVsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLywKIAkJCQlBODNCNzhFNTBDQ0FGRUMxMDAw
QjA4MjUgLyogU1ZHRGVmaW5pdGlvblNyY0VsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLywKKwkJ
CQlCQzBCMzZBNjBDRDNDNjdDMDBBQzdFQjUgLyogQ29uc29sZS5pZGwgaW4gUmVzb3VyY2VzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpAQCAtMTUxMTUsNiArMTUxNTcsOCBAQAogCQkJCUE4MEYzOTNFMENDRDk3MUEwMDJERDk5MCAv
KiBKU1NWR0RlZmluaXRpb25TcmNFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4MEYz
OTU5MENDRDk3OTYwMDJERDk5MCAvKiBET01TVkdEZWZpbml0aW9uU3JjRWxlbWVudC5tbSBpbiBT
b3VyY2VzICovLAogCQkJCUUxNTg2MzlBMENEMTBCNzMwMDY2RTJDOSAvKiBUZXh0Q29kZWNVc2Vy
RGVmaW5lZC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCQzBCMzZBNDBDRDNDNjdDMDBBQzdFQjUg
LyogQ29uc29sZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCQzk4NTQzRDBDRDNEOThCMDAwNjlC
QzEgLyogSlNDb25zb2xlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiAyNzE2MCkKKysrIFdlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdvcmtpbmcgY29weSkKQEAg
LTEwNDcsNiArMTA0Nyw4IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAg
ICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJKUyIgLiAkY29uc3RydWN0b3JUeXBlIC4gIi5o
In0gPSAxOwogICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
ICAgIC8vIFNoYWRvd2luZyBhIGJ1aWx0LWluIGNvbnN0cnVjdG9yXG4iKTsKICAgICAgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBKU09iamVjdDo6cHV0KGV4
ZWMsIFwiJG5hbWVcIiwgdmFsdWUpO1xuIik7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzaWYg
KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlcGxhY2VhYmxl
In0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAg
ICBKU09iamVjdDo6cHV0KGV4ZWMsIFwiJG5hbWVcIiwgdmFsdWUpO1xuIik7CiAgICAgICAgICAg
ICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHBvZFR5cGUp
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAg
ICAgJHBvZFR5cGUgaW1wKCppbXBsKCkpO1xuXG4iKTsKSW5kZXg6IFdlYkNvcmUvcGFnZS9DaHJv
bWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCShyZXZpc2lvbiAy
NzE2MCkKKysrIFdlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTcs
NyArMTk3LDcgQEAgdm9pZCBDaHJvbWU6OnNldFJlc2l6YWJsZShib29sIGIpIGNvbnN0CiAKIHZv
aWQgQ2hyb21lOjphZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNz
YWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJl
ciwgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCkKIHsKLSAgICBpZiAoc291cmNlID09IEpTTWVzc2Fn
ZVNvdXJjZSAmJiBsZXZlbCA9PSBFcnJvck1lc3NhZ2VMZXZlbCkKKyAgICBpZiAoc291cmNlID09
IEpTTWVzc2FnZVNvdXJjZSkKICAgICAgICAgbV9jbGllbnQtPmFkZE1lc3NhZ2VUb0NvbnNvbGUo
bWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlSUQpOwogCiAgICAgaWYgKEluc3BlY3RvckNvbnRy
b2xsZXIqIGluc3BlY3RvciA9IG1fcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpKQpJbmRleDog
V2ViQ29yZS9wYWdlL0NvbnNvbGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9Db25z
b2xlLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvcGFnZS9Db25zb2xlLmNwcAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw5OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhl
ciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1l
cyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNv
bnNvbGUuaCIKKworI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5j
bHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGxhdGZv
cm1TdHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDb25zb2xlOjpDb25zb2xlKEZy
YW1lKiBmcmFtZSkKKyAgICA6IG1fZnJhbWUoZnJhbWUpCit7Cit9CisKK3ZvaWQgQ29uc29sZTo6
ZGlzY29ubmVjdEZyYW1lKCkKK3sKKyAgICBtX2ZyYW1lID0gMDsKK30KKwordm9pZCBDb25zb2xl
OjplcnJvcihjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit7CisgICAgaWYgKCFtX2ZyYW1lKQorICAg
ICAgICByZXR1cm47CisKKyAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpOworICAgIGlm
ICghcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcGFnZS0+Y2hyb21lKCktPmFkZE1lc3Nh
Z2VUb0NvbnNvbGUoSlNNZXNzYWdlU291cmNlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwg
MCwgbV9mcmFtZS0+bG9hZGVyKCktPnVybCgpLnByZXR0eVVSTCgpKTsKK30KKwordm9pZCBDb25z
b2xlOjppbmZvKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICBpZiAoIW1fZnJhbWUpCisg
ICAgICAgIHJldHVybjsKKworICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CisgICAg
aWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBwYWdlLT5jaHJvbWUoKS0+YWRkTWVz
c2FnZVRvQ29uc29sZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VMZXZlbCwgbWVzc2FnZSwg
MCwgbV9mcmFtZS0+bG9hZGVyKCktPnVybCgpLnByZXR0eVVSTCgpKTsKK30KKwordm9pZCBDb25z
b2xlOjpsb2coY29uc3QgU3RyaW5nJiBtZXNzYWdlKQoreworICAgIGlmICghbV9mcmFtZSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKKyAgICBp
ZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIHBhZ2UtPmNocm9tZSgpLT5hZGRNZXNz
YWdlVG9Db25zb2xlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZUxldmVsLCBtZXNzYWdlLCAw
LCBtX2ZyYW1lLT5sb2FkZXIoKS0+dXJsKCkucHJldHR5VVJMKCkpOworfQorCit2b2lkIENvbnNv
bGU6Ondhcm4oY29uc3QgU3RyaW5nJiBtZXNzYWdlKQoreworICAgIGlmICghbV9mcmFtZSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKKyAgICBp
ZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIHBhZ2UtPmNocm9tZSgpLT5hZGRNZXNz
YWdlVG9Db25zb2xlKEpTTWVzc2FnZVNvdXJjZSwgV2FybmluZ01lc3NhZ2VMZXZlbCwgbWVzc2Fn
ZSwgMCwgbV9mcmFtZS0+bG9hZGVyKCktPnVybCgpLnByZXR0eVVSTCgpKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9wYWdlL0NvbnNvbGUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BhZ2UvQ29uc29sZS5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9wYWdl
L0NvbnNvbGUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFw
cGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDb25zb2xl
X2gKKyNkZWZpbmUgQ29uc29sZV9oCisKKyNpbmNsdWRlICJTaGFyZWQuaCIKKyNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmluZy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyAgICBjbGFzcyBGcmFt
ZTsKKworICAgIGNsYXNzIENvbnNvbGUgOiBwdWJsaWMgU2hhcmVkPENvbnNvbGU+IHsKKyAgICBw
dWJsaWM6CisgICAgICAgIENvbnNvbGUoRnJhbWUqKTsKKyAgICAgICAgdm9pZCBkaXNjb25uZWN0
RnJhbWUoKTsKKworICAgICAgICB2b2lkIGVycm9yKGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7Cisg
ICAgICAgIHZvaWQgaW5mbyhjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOworICAgICAgICB2b2lkIGxv
Zyhjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOworICAgICAgICB2b2lkIHdhcm4oY29uc3QgU3RyaW5n
JiBtZXNzYWdlKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIEZyYW1lKiBtX2ZyYW1lOworICAg
IH07CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIENvbnNvbGVfaApJbmRl
eDogV2ViQ29yZS9wYWdlL0NvbnNvbGUuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9D
b25zb2xlLmlkbAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvcGFnZS9Db25zb2xlLmlkbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVp
dGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBu
YW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Cisg
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIHdpbmRvdyB7CisKKyAgICBpbnRlcmZh
Y2UgQ29uc29sZSB7CisgICAgICAgIHZvaWQgZXJyb3IoaW4gRE9NU3RyaW5nIG1lc3NhZ2UpOwor
ICAgICAgICB2b2lkIGluZm8oaW4gRE9NU3RyaW5nIG1lc3NhZ2UpOworICAgICAgICB2b2lkIGxv
ZyhpbiBET01TdHJpbmcgbWVzc2FnZSk7CisgICAgICAgIHZvaWQgd2FybihpbiBET01TdHJpbmcg
bWVzc2FnZSk7CisgICAgfTsKKworfQpJbmRleDogV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAJKHJldmlzaW9uIDI3MTYw
KQorKysgV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYg
KzMxLDcgQEAKICNpbmNsdWRlICJDU1NSdWxlTGlzdC5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2Vs
ZWN0b3IuaCIKICNpbmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJDb25zb2xlLmgiCiAjaW5j
bHVkZSAiRGF0YWJhc2UuaCIKICNpbmNsdWRlICJET01TZWxlY3Rpb24uaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgpAQCAtOTksNiArMTAwLDEwIEBAIHZvaWQgRE9NV2luZG93OjpjbGVhcigpCiAg
ICAgaWYgKG1fdG9vbGJhcikKICAgICAgICAgbV90b29sYmFyLT5kaXNjb25uZWN0RnJhbWUoKTsK
ICAgICBtX3Rvb2xiYXIgPSAwOworCisgICAgaWYgKG1fY29uc29sZSkKKyAgICAgICAgbV9jb25z
b2xlLT5kaXNjb25uZWN0RnJhbWUoKTsKKyAgICBtX2NvbnNvbGUgPSAwOwogfQogCiBTY3JlZW4q
IERPTVdpbmRvdzo6c2NyZWVuKCkgY29uc3QKQEAgLTE1Nyw2ICsxNjIsMTMgQEAgQmFySW5mbyog
RE9NV2luZG93Ojp0b29sYmFyKCkgY29uc3QKICAgICByZXR1cm4gbV90b29sYmFyLmdldCgpOwog
fQogCitDb25zb2xlKiBET01XaW5kb3c6OmNvbnNvbGUoKSBjb25zdAoreworICAgIGlmICghbV9j
b25zb2xlKQorICAgICAgICBtX2NvbnNvbGUgPSBuZXcgQ29uc29sZShtX2ZyYW1lKTsKKyAgICBy
ZXR1cm4gbV9jb25zb2xlLmdldCgpOworfQorCiBET01TZWxlY3Rpb24qIERPTVdpbmRvdzo6Z2V0
U2VsZWN0aW9uKCkKIHsKICAgICBpZiAoIW1fc2VsZWN0aW9uKQpJbmRleDogV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAkocmV2
aXNpb24gMjcxNjApCisrKyBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgJKHdvcmtpbmcgY29weSkK
QEAgLTM2LDYgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEJhckluZm87
CiAgICAgY2xhc3MgQ1NTUnVsZUxpc3Q7CiAgICAgY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvbjsK
KyAgICBjbGFzcyBDb25zb2xlOwogICAgIGNsYXNzIERhdGFiYXNlOwogICAgIGNsYXNzIERPTVNl
bGVjdGlvbjsKICAgICBjbGFzcyBEb2N1bWVudDsKQEAgLTQzLDcgKzQ0LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIGNsYXNzIEZyYW1lOwogICAgIGNsYXNzIEhpc3Rvcnk7CiAgICAgY2xh
c3MgU2NyZWVuOwotICAgIAorCiAgICAgdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIAogICAg
IGNsYXNzIERPTVdpbmRvdyA6IHB1YmxpYyBTaGFyZWQ8RE9NV2luZG93PiB7CkBAIC0xMzYsNiAr
MTM3LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBQYXNzUmVmUHRyPERhdGFiYXNl
PiBvcGVuRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZlcnNpb24s
IEV4Y2VwdGlvbkNvZGUmKTsKICNlbmRpZgogCisgICAgICAgIENvbnNvbGUqIGNvbnNvbGUoKSBj
b25zdDsKKwogICAgIHByaXZhdGU6CiAgICAgICAgIEZyYW1lKiBtX2ZyYW1lOwogICAgICAgICBt
dXRhYmxlIFJlZlB0cjxTY3JlZW4+IG1fc2NyZWVuOwpAQCAtMTQ3LDYgKzE1MCw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8QmFySW5mbz4gbV9zY3JvbGxi
YXJzOwogICAgICAgICBtdXRhYmxlIFJlZlB0cjxCYXJJbmZvPiBtX3N0YXR1c2JhcjsKICAgICAg
ICAgbXV0YWJsZSBSZWZQdHI8QmFySW5mbz4gbV90b29sYmFyOworICAgICAgICBtdXRhYmxlIFJl
ZlB0cjxDb25zb2xlPiBtX2NvbnNvbGU7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpJbmRleDogV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHJldmlzaW9uIDI3MTYwKQorKysgV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTExNSw2ICsxMTUsOCBAQCBtb2R1bGUgd2lu
ZG93IHsKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogI2VuZGlmCiAKKyAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlIFtSZXBsYWNlYWJsZV0gQ29uc29sZSBjb25zb2xlOworCiAj
aWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQogICAgICAgICAvLyBHbG9iYWwgY29uc3Ry
dWN0b3JzCiAgICAgICAgIGF0dHJpYnV0ZSBTdHlsZVNoZWV0Q29uc3RydWN0b3IgU3R5bGVTaGVl
dDsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MTYwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDctMTAtMjcgIFNhbSBXZWluaWcgIDxz
YW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBVcGRhdGUgdGVzdHMgZm9yIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0OTUzCisgICAgICAgIEltcGxlbWVudCB3aW5kb3cuY29uc29sZSBpbiBXZWJDb3Jl
CisKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1
dC1leHBlY3RlZC50eHQ6CisKIDIwMDctMTAtMjcgIE1hdHQgTGlsZWsgIDx3ZWJraXRAbWF0dGxp
bGVrLmNvbT4KIAogICAgICAgICBVcGRhdGUgcmVzdWx0cy4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMjcxNjApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMTcwLDYgKzEx
NzAsMTEgQEAgd2luZG93LmNsaWVudEluZm9ybWF0aW9uLnZlbmRvclN1YiBbc3RyaQogd2luZG93
LmNsb3NlIFtmdW5jdGlvbl0KIHdpbmRvdy5jbG9zZWQgW2Jvb2xlYW5dCiB3aW5kb3cuY29uZmly
bSBbZnVuY3Rpb25dCit3aW5kb3cuY29uc29sZSBbb2JqZWN0IENvbnNvbGVdCit3aW5kb3cuY29u
c29sZS5lcnJvciBbZnVuY3Rpb25dCit3aW5kb3cuY29uc29sZS5pbmZvIFtmdW5jdGlvbl0KK3dp
bmRvdy5jb25zb2xlLmxvZyBbZnVuY3Rpb25dCit3aW5kb3cuY29uc29sZS53YXJuIFtmdW5jdGlv
bl0KIHdpbmRvdy5jcnlwdG8gW3VuZGVmaW5lZF0KIHdpbmRvdy5kZWZhdWx0U3RhdHVzIFtzdHJp
bmddCiB3aW5kb3cuZGVmYXVsdHN0YXR1cyBbc3RyaW5nXQpJbmRleDogTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0LWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFj
Y2Vzcy1wdXQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNzE2MCkKKysrIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTQxMyw3ICs0MTMsNyBAQCBBTEVSVDogUEFTUzogd2luZG93LlhQYXRo
RXZhbHVhdG9yIHNob3VsCiBBTEVSVDogUEFTUzogd2luZG93LlhQYXRoUmVzdWx0IHNob3VsZCBi
ZSAnW29iamVjdCBYUGF0aFJlc3VsdENvbnN0cnVjdG9yXScgYW5kIGlzLgogQUxFUlQ6IFBBU1M6
IHdpbmRvdy5jbGllbnRJbmZvcm1hdGlvbiBzaG91bGQgYmUgJ1tvYmplY3QgTmF2aWdhdG9yXScg
YW5kIGlzLgogQUxFUlQ6IFBBU1M6IHdpbmRvdy5jbG9zZWQgc2hvdWxkIGJlICdmYWxzZScgYW5k
IGlzLgotQUxFUlQ6IFBBU1M6IHdpbmRvdy5jb25zb2xlIHNob3VsZCBiZSAnW29iamVjdCBIVE1M
UHJlRWxlbWVudF0nIGFuZCBpcy4KK0FMRVJUOiBQQVNTOiB3aW5kb3cuY29uc29sZSBzaG91bGQg
YmUgJ1tvYmplY3QgQ29uc29sZV0nIGFuZCBpcy4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuY3J5cHRv
IHNob3VsZCBiZSAndW5kZWZpbmVkJyBhbmQgaXMuCiBBTEVSVDogUEFTUzogd2luZG93LmRlZmF1
bHRTdGF0dXMgc2hvdWxkIGJlICcnIGFuZCBpcy4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuZGVmYXVs
dHN0YXR1cyBzaG91bGQgYmUgJycgYW5kIGlzLgo=
</data>
<flag name="review"
          id="7165"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>