<?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>13919</bug_id>
          
          <creation_ts>2007-05-29 20:21:07 -0700</creation_ts>
          <short_desc>Autogenerate the JS bindings for the CSSRule and its subclasses</short_desc>
          <delta_ts>2007-05-30 10:54:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>13779</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>8806</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-05-29 20:21:07 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>8807</commentid>
    <comment_count>1</comment_count>
      <attachid>14778</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-05-29 20:32:16 -0700</bug_when>
    <thetext>Created attachment 14778
patch

The only part of this patch that I am not sure of is in CSSRule.idl where I special cased JS for the cssText attribute.  The hand rolled bindings had the attribute as readonly, but the spec and ObjC bindings don&apos;t have this restriction.  On the otherhand, we don&apos;t really support it in the implementation so the issue is rather insignificant.  A similar issue (but in the other direction) is CSSCharsetRule.idl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>8801</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-05-29 20:34:49 -0700</bug_when>
    <thetext>One note, this patch fixes a previously failing case in fast/dom/wrapper-classes.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>8796</commentid>
    <comment_count>3</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-05-29 21:21:29 -0700</bug_when>
    <thetext>*** Bug 13918 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>8775</commentid>
    <comment_count>4</comment_count>
      <attachid>14778</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-05-30 07:32:23 -0700</bug_when>
    <thetext>Comment on attachment 14778
patch

         // FIXME: the DOM spec says that this attribute
         // should not be readonly.  The correct declaration
         // is commented out below.

This comment is no longer accurate, and so it should be removed.

+                 attribute [ConvertNullStringTo=Null, ConvertNullToNullString] DOMString encoding
+                     /*setter raises(DOMException);*/

You can avoid commenting out the DOMException part by adding an ExceptionCode&amp; parameter to setEncoding.

Index: WebCore/css/CSSPageRule.h
===================================================================
--- WebCore/css/CSSPageRule.h	(revision 21870)
+++ WebCore/css/CSSPageRule.h	(working copy)
@@ -26,6 +26,7 @@
 
 #include &quot;CSSRule.h&quot;
 #include &lt;wtf/RefPtr.h&gt;
+#include &quot;PlatformString.h&quot;

It&apos;s not correct to include PlatformString.h in this header. You need PlatformString.h to call selectorText(), setSelectorText(), or cssText() but not to process the header. If there&apos;s a problem in the auto-generated code that should be resolved in the auto-generation, not here.

                  // FIXME: DOM spec says that this can raise an
                  // exception on setting.
-                 attribute [ConvertNullToNullString] DOMString        selectorText
+                 attribute [ConvertNullStringTo=Null, ConvertNullToNullString] DOMString selectorText
                      /*setter raises(DOMException)*/;

                  // FIXME: DOM spec says that this can raise an
                  // exception on setting.
-                 attribute [ConvertNullToNullString] DOMString            selectorText
+                 attribute [ConvertNullStringTo=Null, ConvertNullToNullString] DOMString            selectorText
                      /*setter raises(DOMException)*/;

You can resolve these FIXMEs by adding an ExceptionCode&amp; parameter to setSelectorText.

-                 // FIXME: DOM spec says that this can raise an
+                 // FIXME: DOM spec says that this can be set and can raise an
                  // exception on setting.
+#if defined(LANGUAGE_JAVASCRIPT)
+        readonly attribute [ConvertNullToNullString] DOMString        cssText;
+#else
                  attribute [ConvertNullToNullString] DOMString        cssText
                      /*setter raises (DOMException)*/;
+#endif

Should add a setCSSText function with an ExceptionCode&amp; parameter instead of having an ifdef in the IDL.

Otherwise looks great.

I&apos;m going to say review- because I want you to address at least some of these.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>8747</commentid>
    <comment_count>5</comment_count>
      <attachid>14785</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-05-30 10:21:39 -0700</bug_when>
    <thetext>Created attachment 14785
Updated Patch

Patch addresses Darin&apos;s concerns and adds new files to WebCore.pro so as not to break the Qt and Gdk builds again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>8748</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-05-30 10:24:24 -0700</bug_when>
    <thetext>Urk, +void CSSPageRule::setSelectorText(const String&amp; /*selectorText*/, ExceptionCode&amp; /*ex*/)
the /*ex*/ should be a /*ec*/ </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>8746</commentid>
    <comment_count>7</comment_count>
      <attachid>14785</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-05-30 10:45:26 -0700</bug_when>
    <thetext>Comment on attachment 14785
Updated Patch

     // Not part of the CSSOM

What does that comment mean?

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>8743</commentid>
    <comment_count>8</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-05-30 10:54:20 -0700</bug_when>
    <thetext>Landed in r21896.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14778</attachid>
            <date>2007-05-29 20:32:16 -0700</date>
            <delta_ts>2007-05-30 10:21:39 -0700</delta_ts>
            <desc>patch</desc>
            <filename>autogenCssRule.diff</filename>
            <type>text/plain</type>
            <size>42506</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMTg3MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzIgQEAKKzIwMDctMDUtMjkgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXRjaCBm
b3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5MTkKKyAgICAgICAg
QXV0b2dlbmVyYXRlIHRoZSBKUyBiaW5kaW5ncyBmb3IgdGhlIENTU1J1bGUgYW5kIGl0cyBzdWJj
bGFzc2VzCisKKyAgICAgICAgLSBzdWJjbGFzc2VzIGdlbmVyYXRlZCBhcmUgQ1NTQ2hhcnNldFJ1
bGUsIENTU0ZvbnRGYWNlUnVsZSwgQ1NTSW1wb3J0UnVsZQorICAgICAgICAgIENTU01lZGlhUnVs
ZSwgQ1NTUGFnZVJ1bGUgYW5kIENTU1N0eWxlUnVsZS4KKworICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLm1ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ1NTUnVsZUN1c3RvbS5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAgICogYmluZGluZ3MvanMva2pzX2Nzcy5jcHA6Cisg
ICAgICAgICogYmluZGluZ3MvanMva2pzX2Nzcy5oOgorICAgICAgICAqIGJpbmRpbmdzL29iamMv
RE9NVXRpbGl0eS5tbToKKyAgICAgICAgKEtKUzo6Y3JlYXRlRE9NV3JhcHBlcik6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgICogY3NzL0NT
U0NoYXJzZXRSdWxlLmlkbDoKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VSdWxlLmlkbDoKKyAg
ICAgICAgKiBjc3MvQ1NTSW1wb3J0UnVsZS5pZGw6CisgICAgICAgICogY3NzL0NTU01lZGlhUnVs
ZS5pZGw6CisgICAgICAgICogY3NzL0NTU1BhZ2VSdWxlLmg6CisgICAgICAgICogY3NzL0NTU1Bh
Z2VSdWxlLmlkbDoKKyAgICAgICAgKiBjc3MvQ1NTUnVsZS5pZGw6CisgICAgICAgICogY3NzL0NT
U1N0eWxlUnVsZS5pZGw6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaWRsOiBBZGQgY29uc3Ry
dWN0b3JzLgorCiAyMDA3LTA1LTI5ICBBZGVsZSBQZXRlcnNvbiAgPGFkZWxlQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBCcmFkeS4KSW5kZXg6IFdlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlz
aW9uIDIxODcwKQorKysgV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkp
CkBAIC0zMDAsOSArMzAwLDE1IEBAIGFsbCA6IFwKICAgICBIVE1MRW50aXR5TmFtZXMuYyBcCiAg
ICAgSlNBdHRyLmggXAogICAgIEpTQ0RBVEFTZWN0aW9uLmggXAorICAgIEpTQ1NTQ2hhcnNldFJ1
bGUuaCBcCisgICAgSlNDU1NGb250RmFjZVJ1bGUuaCBcCisgICAgSlNDU1NJbXBvcnRSdWxlLmgg
XAorICAgIEpTQ1NTTWVkaWFSdWxlLmggXAorICAgIEpTQ1NTUGFnZVJ1bGUuaCBcCiAgICAgSlND
U1NQcmltaXRpdmVWYWx1ZS5oIFwKICAgICBKU0NTU1J1bGUuaCBcCiAgICAgSlNDU1NSdWxlTGlz
dC5oIFwKKyAgICBKU0NTU1N0eWxlUnVsZS5oIFwKICAgICBKU0NTU1ZhbHVlLmggXAogICAgIEpT
Q1NTVmFsdWVMaXN0LmggXAogICAgIEpTQ2FudmFzR3JhZGllbnQuaCBcCkluZGV4OiBXZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjE4NzApCisrKyBX
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpA
QCAtMjc2NCw2ICsyNzY0LDE5IEBACiAJCUJDMzA1Qzc5MEMwNzZCQjMwMENEMjBGMCAvKiBKU0hU
TUxPYmplY3RFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDMzA1Qzc3MEMwNzZCQjMwMENEMjBGMCAvKiBKU0hUTUxPYmplY3RFbGVtZW50
LmNwcCAqLzsgfTsKIAkJQkMzMDVDN0EwQzA3NkJCMzAwQ0QyMEYwIC8qIEpTSFRNTE9iamVjdEVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
MzA1Qzc4MEMwNzZCQjMwMENEMjBGMCAvKiBKU0hUTUxPYmplY3RFbGVtZW50LmggKi87IH07CiAJ
CUJDMzA1Q0E0MEMwNzgxQkIwMENEMjBGMCAvKiBKU0hUTUxPYmplY3RFbGVtZW50Q3VzdG9tLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMzA1Q0Ez
MEMwNzgxQkIwMENEMjBGMCAvKiBKU0hUTUxPYmplY3RFbGVtZW50Q3VzdG9tLmNwcCAqLzsgfTsK
KwkJQkMzQzM3OTAwQzBDRjRBQzAwNUY0RDdBIC8qIEpTQ1NTQ2hhcnNldFJ1bGUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMzQzM3OEUwQzBDRjRB
QzAwNUY0RDdBIC8qIEpTQ1NTQ2hhcnNldFJ1bGUuY3BwICovOyB9OworCQlCQzNDMzc5MTBDMENG
NEFDMDA1RjREN0EgLyogSlNDU1NDaGFyc2V0UnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMzQzM3OEYwQzBDRjRBQzAwNUY0RDdBIC8qIEpTQ1NT
Q2hhcnNldFJ1bGUuaCAqLzsgfTsKKwkJQkMzQzM3RDIwQzBDRkVENTAwNUY0RDdBIC8qIEpTQ1NT
SW1wb3J0UnVsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzNDMzdEMDBDMENGRUQ1MDA1RjREN0EgLyogSlNDU1NJbXBvcnRSdWxlLmNwcCAqLzsg
fTsKKwkJQkMzQzM3RDMwQzBDRkVENTAwNUY0RDdBIC8qIEpTQ1NTSW1wb3J0UnVsZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMzQzM3RDEwQzBDRkVE
NTAwNUY0RDdBIC8qIEpTQ1NTSW1wb3J0UnVsZS5oICovOyB9OworCQlCQzNDMzdFOTBDMEQwQ0U5
MDA1RjREN0EgLyogSlNDU1NQYWdlUnVsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzNDMzdFNzBDMEQwQ0U5MDA1RjREN0EgLyogSlNDU1NQYWdl
UnVsZS5jcHAgKi87IH07CisJCUJDM0MzN0VBMEMwRDBDRTkwMDVGNEQ3QSAvKiBKU0NTU1BhZ2VS
dWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzND
MzdFODBDMEQwQ0U5MDA1RjREN0EgLyogSlNDU1NQYWdlUnVsZS5oICovOyB9OworCQlCQzNDMzgy
QTBDMEQxNDYxMDA1RjREN0EgLyogSlNDU1NGb250RmFjZVJ1bGUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMzQzM4MjgwQzBEMTQ2MTAwNUY0RDdB
IC8qIEpTQ1NTRm9udEZhY2VSdWxlLmNwcCAqLzsgfTsKKwkJQkMzQzM4MkIwQzBEMTQ2MTAwNUY0
RDdBIC8qIEpTQ1NTRm9udEZhY2VSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzNDMzgyOTBDMEQxNDYxMDA1RjREN0EgLyogSlNDU1NGb250RmFj
ZVJ1bGUuaCAqLzsgfTsKKwkJQkMzQzM4NjEwQzBEMThCNzAwNUY0RDdBIC8qIEpTQ1NTU3R5bGVS
dWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
M0MzODVGMEMwRDE4QjcwMDVGNEQ3QSAvKiBKU0NTU1N0eWxlUnVsZS5jcHAgKi87IH07CisJCUJD
M0MzODYyMEMwRDE4QjcwMDVGNEQ3QSAvKiBKU0NTU1N0eWxlUnVsZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMzQzM4NjAwQzBEMThCNzAwNUY0RDdB
IC8qIEpTQ1NTU3R5bGVSdWxlLmggKi87IH07CisJCUJDM0MzODY1MEMwRDE4RDMwMDVGNEQ3QSAv
KiBKU0NTU01lZGlhUnVsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzNDMzg2MzBDMEQxOEQzMDA1RjREN0EgLyogSlNDU1NNZWRpYVJ1bGUuY3Bw
ICovOyB9OworCQlCQzNDMzg2NjBDMEQxOEQzMDA1RjREN0EgLyogSlNDU1NNZWRpYVJ1bGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDM0MzODY0MEMw
RDE4RDMwMDVGNEQ3QSAvKiBKU0NTU01lZGlhUnVsZS5oICovOyB9OworCQlCQzNDMzg3NTBDMEQx
QkM1MDA1RjREN0EgLyogSlNDU1NSdWxlQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDM0MzODc0MEMwRDFCQzUwMDVGNEQ3QSAvKiBKU0NT
U1J1bGVDdXN0b20uY3BwICovOyB9OwogCQlCQzNGQ0FBOTBBQzNEQjU4MDBCQTU0QUQgLyogUGxh
dGZvcm1TY3JvbGxCYXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDM0ZDQUE4MEFDM0RCNTgwMEJBNTRBRCAvKiBQbGF0Zm9ybVNjcm9sbEJhci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07IH07CiAJCUJDNDkxOEM2MEJGRUEwNTAw
MDlENjMxNiAvKiBKU0hUTUxGcmFtZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0OTE4QzAwQkZFQTA1MDAwOUQ2MzE2IC8qIEpTSFRN
TEZyYW1lRWxlbWVudC5jcHAgKi87IH07CiAJCUJDNDkxOEM3MEJGRUEwNTAwMDlENjMxNiAvKiBK
U0hUTUxGcmFtZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDNDkxOEMxMEJGRUEwNTAwMDlENjMxNiAvKiBKU0hUTUxGcmFtZUVsZW1lbnQu
aCAqLzsgfTsKQEAgLTYwMTksNiArNjAzMiwxOSBAQAogCQlCQzMwNUM3ODBDMDc2QkIzMDBDRDIw
RjAgLyogSlNIVE1MT2JqZWN0RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNIVE1MT2JqZWN0RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCQzMwNUNBMzBDMDc4MUJCMDBDRDIwRjAgLyogSlNIVE1MT2JqZWN0RWxlbWVudEN1c3RvbS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxPYmplY3RFbGVt
ZW50Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMzQjM2NDcwNUM5
RDVFMjAwRTQyOTAyIC8qIEF0b21pY1N0cmluZ0xpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXRvbWljU3RyaW5nTGlzdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKKwkJQkMzQzM3
OEUwQzBDRjRBQzAwNUY0RDdBIC8qIEpTQ1NTQ2hhcnNldFJ1bGUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ1NTQ2hhcnNldFJ1bGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlCQzNDMzc4RjBDMENGNEFDMDA1RjREN0EgLyogSlNDU1NDaGFy
c2V0UnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDU1NDaGFyc2V0
UnVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzNDMzdEMDBDMENGRUQ1MDA1
RjREN0EgLyogSlNDU1NJbXBvcnRSdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0NTU0ltcG9ydFJ1bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlCQzNDMzdEMTBDMENGRUQ1MDA1RjREN0EgLyogSlNDU1NJbXBvcnRSdWxlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NTU0ltcG9ydFJ1bGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkMzQzM3RTcwQzBEMENFOTAwNUY0RDdBIC8qIEpTQ1NTUGFn
ZVJ1bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ1NTUGFn
ZVJ1bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzNDMzdFODBDMEQwQ0U5
MDA1RjREN0EgLyogSlNDU1NQYWdlUnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNDU1NQYWdlUnVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzND
MzgyODBDMEQxNDYxMDA1RjREN0EgLyogSlNDU1NGb250RmFjZVJ1bGUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ1NTRm9udEZhY2VSdWxlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkMzQzM4MjkwQzBEMTQ2MTAwNUY0RDdBIC8qIEpTQ1NT
Rm9udEZhY2VSdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NTU0Zv
bnRGYWNlUnVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzNDMzg1RjBDMEQx
OEI3MDA1RjREN0EgLyogSlNDU1NTdHlsZVJ1bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTQ1NTU3R5bGVSdWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQkMzQzM4NjAwQzBEMThCNzAwNUY0RDdBIC8qIEpTQ1NTU3R5bGVSdWxlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NTU1N0eWxlUnVsZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlCQzNDMzg2MzBDMEQxOEQzMDA1RjREN0EgLyogSlNDU1NN
ZWRpYVJ1bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ1NT
TWVkaWFSdWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkMzQzM4NjQwQzBE
MThEMzAwNUY0RDdBIC8qIEpTQ1NTTWVkaWFSdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU0NTU01lZGlhUnVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlCQzNDMzg3NDBDMEQxQkM1MDA1RjREN0EgLyogSlNDU1NSdWxlQ3VzdG9tLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ1NTUnVsZUN1c3RvbS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDM0ZDQUE4MEFDM0RCNTgwMEJBNTRBRCAvKiBQbGF0
Zm9ybVNjcm9sbEJhci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZv
cm1TY3JvbGxCYXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM0OTE4QzAwQkZF
QTA1MDAwOUQ2MzE2IC8qIEpTSFRNTEZyYW1lRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MRnJhbWVFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQkM0OTE4QzEwQkZFQTA1MDAwOUQ2MzE2IC8qIEpTSFRNTEZyYW1l
RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MRnJhbWVF
bGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02MzkyLDYgKzY0MTgsMTgg
QEAKIAkJMTRERkIzM0YwQTdERjc2MzAwMThGNzY5IC8qIERlcml2ZWQgU291cmNlcyAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQkMzQzM4NjMwQzBEMThE
MzAwNUY0RDdBIC8qIEpTQ1NTTWVkaWFSdWxlLmNwcCAqLywKKwkJCQlCQzNDMzg2NDBDMEQxOEQz
MDA1RjREN0EgLyogSlNDU1NNZWRpYVJ1bGUuaCAqLywKKwkJCQlCQzNDMzg1RjBDMEQxOEI3MDA1
RjREN0EgLyogSlNDU1NTdHlsZVJ1bGUuY3BwICovLAorCQkJCUJDM0MzODYwMEMwRDE4QjcwMDVG
NEQ3QSAvKiBKU0NTU1N0eWxlUnVsZS5oICovLAorCQkJCUJDM0MzODI4MEMwRDE0NjEwMDVGNEQ3
QSAvKiBKU0NTU0ZvbnRGYWNlUnVsZS5jcHAgKi8sCisJCQkJQkMzQzM4MjkwQzBEMTQ2MTAwNUY0
RDdBIC8qIEpTQ1NTRm9udEZhY2VSdWxlLmggKi8sCisJCQkJQkMzQzM3RTcwQzBEMENFOTAwNUY0
RDdBIC8qIEpTQ1NTUGFnZVJ1bGUuY3BwICovLAorCQkJCUJDM0MzN0U4MEMwRDBDRTkwMDVGNEQ3
QSAvKiBKU0NTU1BhZ2VSdWxlLmggKi8sCisJCQkJQkMzQzM3RDAwQzBDRkVENTAwNUY0RDdBIC8q
IEpTQ1NTSW1wb3J0UnVsZS5jcHAgKi8sCisJCQkJQkMzQzM3RDEwQzBDRkVENTAwNUY0RDdBIC8q
IEpTQ1NTSW1wb3J0UnVsZS5oICovLAorCQkJCUJDM0MzNzhFMEMwQ0Y0QUMwMDVGNEQ3QSAvKiBK
U0NTU0NoYXJzZXRSdWxlLmNwcCAqLywKKwkJCQlCQzNDMzc4RjBDMENGNEFDMDA1RjREN0EgLyog
SlNDU1NDaGFyc2V0UnVsZS5oICovLAogCQkJCTY1REYzMUQ4MDlEMUMxMjIwMDBCRTMyNSAvKiBK
U0F0dHIuY3BwICovLAogCQkJCTY1REYzMUQ5MDlEMUMxMjMwMDBCRTMyNSAvKiBKU0F0dHIuaCAq
LywKIAkJCQk2NURGMzIzMzA5RDFERTY1MDAwQkUzMjUgLyogSlNDYW52YXNHcmFkaWVudC5jcHAg
Ki8sCkBAIC05MjAzLDYgKzkyNDEsNyBAQAogCQkJCUIyOTdCQzZGMEIzQzE0Q0YwMDQ1QTU5MCAv
KiBKU1NWR1BhdGhTZWdMaXN0Q3VzdG9tLmNwcCAqLywKIAkJCQlCMjA4MEExMTBCM0NBM0I2MDAx
MjA4NTIgLyogSlNTVkdQb2ludExpc3RDdXN0b20uY3BwICovLAogCQkJCTFBNzUwRTMzMEE5MEY4
OUYwMDBGRjIxNSAvKiBKU1RyZWVXYWxrZXJDdXN0b20uY3BwICovLAorCQkJCUJDM0MzODc0MEMw
RDFCQzUwMDVGNEQ3QSAvKiBKU0NTU1J1bGVDdXN0b20uY3BwICovLAogCQkJKTsKIAkJCW5hbWUg
PSBDdXN0b207CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTE0MjcsNiArMTE0NjYs
MTIgQEAKIAkJCQlCQzkyNkY4MTBDMDU1MjQ3MDA4Mjc3NkIgLyogSlNIVE1MRnJhbWVTZXRFbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzMwNUM3QTBDMDc2QkIzMDBDRDIwRjAgLyogSlNI
VE1MT2JqZWN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2RDQ0RUQwQzA3RjJFRDAw
NzJEMkM5IC8qIEpTSFRNTEVtYmVkRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkMzQzM3
OTEwQzBDRjRBQzAwNUY0RDdBIC8qIEpTQ1NTQ2hhcnNldFJ1bGUuaCBpbiBIZWFkZXJzICovLAor
CQkJCUJDM0MzN0QzMEMwQ0ZFRDUwMDVGNEQ3QSAvKiBKU0NTU0ltcG9ydFJ1bGUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUJDM0MzN0VBMEMwRDBDRTkwMDVGNEQ3QSAvKiBKU0NTU1BhZ2VSdWxlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlCQzNDMzgyQjBDMEQxNDYxMDA1RjREN0EgLyogSlNDU1NGb250
RmFjZVJ1bGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDM0MzODYyMEMwRDE4QjcwMDVGNEQ3QSAv
KiBKU0NTU1N0eWxlUnVsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkMzQzM4NjYwQzBEMThEMzAw
NUY0RDdBIC8qIEpTQ1NTTWVkaWFSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5P
bmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTEyODI3LDYgKzEy
ODcyLDEzIEBACiAJCQkJQkM0RURFRjQwQzA4RjNGQjAwN0VERDQ5IC8qIEpTSFRNTEFwcGxldEVs
ZW1lbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1ODIzRjUwQzBBOThERjAwNTNG
MUI1IC8qIEpTSFRNTEVsZW1lbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1ODI1
RjMwQzBCODkzODAwNTNGMUI1IC8qIEpTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlCQzNDMzc5MDBDMENGNEFDMDA1RjREN0EgLyogSlNDU1NDaGFyc2V0
UnVsZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCQzNDMzdEMjBDMENGRUQ1MDA1RjREN0EgLyog
SlNDU1NJbXBvcnRSdWxlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDM0MzN0U5MEMwRDBDRTkw
MDVGNEQ3QSAvKiBKU0NTU1BhZ2VSdWxlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDM0MzODJB
MEMwRDE0NjEwMDVGNEQ3QSAvKiBKU0NTU0ZvbnRGYWNlUnVsZS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlCQzNDMzg2MTBDMEQxOEI3MDA1RjREN0EgLyogSlNDU1NTdHlsZVJ1bGUuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJQkMzQzM4NjUwQzBEMThEMzAwNUY0RDdBIC8qIEpTQ1NTTWVkaWFSdWxl
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDM0MzODc1MEMwRDFCQzUwMDVGNEQ3QSAvKiBKU0NT
U1J1bGVDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQ1NTUnVsZUN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0NTU1J1bGVDdXN0b20uY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0NTU1J1bGVDdXN0b20uY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDg1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTQ1NTUnVsZS5oIgorCisjaW5jbHVk
ZSAiQ1NTQ2hhcnNldFJ1bGUuaCIKKyNpbmNsdWRlICJDU1NGb250RmFjZVJ1bGUuaCIKKyNpbmNs
dWRlICJDU1NJbXBvcnRSdWxlLmgiCisjaW5jbHVkZSAiQ1NTTWVkaWFSdWxlLmgiCisjaW5jbHVk
ZSAiQ1NTUGFnZVJ1bGUuaCIKKyNpbmNsdWRlICJDU1NSdWxlLmgiCisjaW5jbHVkZSAiQ1NTU3R5
bGVSdWxlLmgiCisjaW5jbHVkZSAiSlNDU1NDaGFyc2V0UnVsZS5oIgorI2luY2x1ZGUgIkpTQ1NT
Rm9udEZhY2VSdWxlLmgiCisjaW5jbHVkZSAiSlNDU1NJbXBvcnRSdWxlLmgiCisjaW5jbHVkZSAi
SlNDU1NNZWRpYVJ1bGUuaCIKKyNpbmNsdWRlICJKU0NTU1BhZ2VSdWxlLmgiCisjaW5jbHVkZSAi
SlNDU1NTdHlsZVJ1bGUuaCIKKyNpbmNsdWRlICJranNfYmluZGluZy5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK0tKUzo6SlNWYWx1ZSogdG9KUyhLSlM6OkV4ZWNTdGF0ZSogZXhlYywgQ1NT
UnVsZSogcnVsZSkKK3sKKyAgICBpZiAoIXJ1bGUpCisgICAgICAgIHJldHVybiBLSlM6OmpzTnVs
bCgpOworCisgICAgS0pTOjpTY3JpcHRJbnRlcnByZXRlciogaW50ZXJwID0gc3RhdGljX2Nhc3Q8
S0pTOjpTY3JpcHRJbnRlcnByZXRlcio+KGV4ZWMtPmR5bmFtaWNJbnRlcnByZXRlcigpKTsKKyAg
ICBLSlM6OkRPTU9iamVjdCogcmV0ID0gaW50ZXJwLT5nZXRET01PYmplY3QocnVsZSk7CisKKyAg
ICBpZiAocmV0KQorICAgICAgICByZXR1cm4gcmV0OworCisgICAgc3dpdGNoIChydWxlLT50eXBl
KCkpIHsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpTVFlMRV9SVUxFOgorICAgICAgICAgICAgcmV0
ID0gbmV3IEpTQ1NTU3R5bGVSdWxlKGV4ZWMsIHN0YXRpY19jYXN0PENTU1N0eWxlUnVsZSo+KHJ1
bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1J1bGU6Ok1FRElBX1JV
TEU6CisgICAgICAgICAgICByZXQgPSBuZXcgSlNDU1NNZWRpYVJ1bGUoZXhlYywgc3RhdGljX2Nh
c3Q8Q1NTTWVkaWFSdWxlKj4ocnVsZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgQ1NTUnVsZTo6Rk9OVF9GQUNFX1JVTEU6CisgICAgICAgICAgICByZXQgPSBuZXcgSlNDU1NG
b250RmFjZVJ1bGUoZXhlYywgc3RhdGljX2Nhc3Q8Q1NTRm9udEZhY2VSdWxlKj4ocnVsZSkpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6UEFHRV9SVUxFOgorICAg
ICAgICAgICAgcmV0ID0gbmV3IEpTQ1NTUGFnZVJ1bGUoZXhlYywgc3RhdGljX2Nhc3Q8Q1NTUGFn
ZVJ1bGUqPihydWxlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NSdWxl
OjpJTVBPUlRfUlVMRToKKyAgICAgICAgICAgIHJldCA9IG5ldyBKU0NTU0ltcG9ydFJ1bGUoZXhl
Yywgc3RhdGljX2Nhc3Q8Q1NTSW1wb3J0UnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIENTU1J1bGU6OkNIQVJTRVRfUlVMRToKKyAgICAgICAgICAgIHJldCA9
IG5ldyBKU0NTU0NoYXJzZXRSdWxlKGV4ZWMsIHN0YXRpY19jYXN0PENTU0NoYXJzZXRSdWxlKj4o
cnVsZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICByZXQgPSBuZXcgSlNDU1NSdWxlKGV4ZWMsIHJ1bGUpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgfQorCisgICAgaW50ZXJwLT5wdXRET01PYmplY3QocnVsZSwgcmV0KTsKKyAgICByZXR1cm4g
cmV0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdz
L2pzL2tqc19jc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMva2pzX2Nz
cy5jcHAJKHJldmlzaW9uIDIxODcwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfY3NzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjUsMjIgKzI1LDE2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAia2pzX2Nzcy5oIgogCi0jaW5jbHVkZSAiQ1NTQ2hhcnNldFJ1bGUuaCIKLSNp
bmNsdWRlICJDU1NGb250RmFjZVJ1bGUuaCIKLSNpbmNsdWRlICJDU1NJbXBvcnRSdWxlLmgiCi0j
aW5jbHVkZSAiQ1NTTWVkaWFSdWxlLmgiCi0jaW5jbHVkZSAiQ1NTUGFnZVJ1bGUuaCIKICNpbmNs
dWRlICJDU1NSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTUnVsZUxpc3QuaCIKLSNpbmNsdWRlICJDU1NT
dHlsZVJ1bGUuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUxpc3QuaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxTdHlsZUVsZW1lbnQu
aCIKICNpbmNsdWRlICJKU0NTU1ByaW1pdGl2ZVZhbHVlLmgiCiAjaW5jbHVkZSAiSlNDU1NSdWxl
LmgiCi0jaW5jbHVkZSAiSlNDU1NTdHlsZURlY2xhcmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNDU1NS
dWxlTGlzdC5oIgorI2luY2x1ZGUgIkpTQ1NTU3R5bGVEZWNsYXJhdGlvbi5oIgogI2luY2x1ZGUg
IkpTQ1NTVmFsdWVMaXN0LmgiCiAjaW5jbHVkZSAiTWVkaWFMaXN0LmgiCiAjaW5jbHVkZSAiU3R5
bGVTaGVldExpc3QuaCIKQEAgLTQ0MiwyMjggKzQzNiw2IEBAIEpTVmFsdWUqIERPTUNTU1N0eWxl
U2hlZXRQcm90b3R5cGVGdW5jdGkKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1LSlNfSU1QTEVN
RU5UX1BST1RPVFlQRV9GVU5DVElPTihET01DU1NSdWxlRnVuYykgLy8gTm90IGEgcHJvdG90eXBl
LCBidXQgZG9lc24ndCBtYXR0ZXIKLQotRE9NQ1NTUnVsZTo6RE9NQ1NTUnVsZShFeGVjU3RhdGUq
IGV4ZWMsIENTU1J1bGUqIHIpCi0gIDogbV9pbXBsKHIpIAotewotfQotCi1ET01DU1NSdWxlOjp+
RE9NQ1NTUnVsZSgpCi17Ci0gIFNjcmlwdEludGVycHJldGVyOjpmb3JnZXRET01PYmplY3QobV9p
bXBsLmdldCgpKTsKLX0KLQotY29uc3QgQ2xhc3NJbmZvIERPTUNTU1J1bGU6OmluZm8gPSB7ICJD
U1NSdWxlIiwgMCwgJkRPTUNTU1J1bGVUYWJsZSwgMCB9OwotY29uc3QgQ2xhc3NJbmZvIERPTUNT
U1J1bGU6OnN0eWxlX2luZm8gPSB7ICJDU1NTdHlsZVJ1bGUiLCAmRE9NQ1NTUnVsZTo6aW5mbywg
JkRPTUNTU1N0eWxlUnVsZVRhYmxlLCAwIH07Ci1jb25zdCBDbGFzc0luZm8gRE9NQ1NTUnVsZTo6
bWVkaWFfaW5mbyA9IHsgIkNTU01lZGlhUnVsZSIsICZET01DU1NSdWxlOjppbmZvLCAmRE9NQ1NT
TWVkaWFSdWxlVGFibGUsIDAgfTsKLWNvbnN0IENsYXNzSW5mbyBET01DU1NSdWxlOjpmb250ZmFj
ZV9pbmZvID0geyAiQ1NTRm9udEZhY2VSdWxlIiwgJkRPTUNTU1J1bGU6OmluZm8sICZET01DU1NG
b250RmFjZVJ1bGVUYWJsZSwgMCB9OwotY29uc3QgQ2xhc3NJbmZvIERPTUNTU1J1bGU6OnBhZ2Vf
aW5mbyA9IHsgIkNTU1BhZ2VSdWxlIiwgJkRPTUNTU1J1bGU6OmluZm8sICZET01DU1NQYWdlUnVs
ZVRhYmxlLCAwIH07Ci1jb25zdCBDbGFzc0luZm8gRE9NQ1NTUnVsZTo6aW1wb3J0X2luZm8gPSB7
ICJDU1NJbXBvcnRSdWxlIiwgJkRPTUNTU1J1bGU6OmluZm8sICZET01DU1NJbXBvcnRSdWxlVGFi
bGUsIDAgfTsKLWNvbnN0IENsYXNzSW5mbyBET01DU1NSdWxlOjpjaGFyc2V0X2luZm8gPSB7ICJD
U1NDaGFyc2V0UnVsZSIsICZET01DU1NSdWxlOjppbmZvLCAmRE9NQ1NTQ2hhcnNldFJ1bGVUYWJs
ZSwgMCB9OwotCi1jb25zdCBDbGFzc0luZm8qIERPTUNTU1J1bGU6OmNsYXNzSW5mbygpIGNvbnN0
Ci17Ci0gIENTU1J1bGUmIGNzc1J1bGUgPSAqbV9pbXBsOwotICBzd2l0Y2ggKGNzc1J1bGUudHlw
ZSgpKSB7Ci0gIGNhc2UgQ1NTUnVsZTo6U1RZTEVfUlVMRToKLSAgICByZXR1cm4gJnN0eWxlX2lu
Zm87Ci0gIGNhc2UgQ1NTUnVsZTo6TUVESUFfUlVMRToKLSAgICByZXR1cm4gJm1lZGlhX2luZm87
Ci0gIGNhc2UgQ1NTUnVsZTo6Rk9OVF9GQUNFX1JVTEU6Ci0gICAgcmV0dXJuICZmb250ZmFjZV9p
bmZvOwotICBjYXNlIENTU1J1bGU6OlBBR0VfUlVMRToKLSAgICByZXR1cm4gJnBhZ2VfaW5mbzsK
LSAgY2FzZSBDU1NSdWxlOjpJTVBPUlRfUlVMRToKLSAgICByZXR1cm4gJmltcG9ydF9pbmZvOwot
ICBjYXNlIENTU1J1bGU6OkNIQVJTRVRfUlVMRToKLSAgICByZXR1cm4gJmNoYXJzZXRfaW5mbzsK
LSAgY2FzZSBDU1NSdWxlOjpVTktOT1dOX1JVTEU6Ci0gIGRlZmF1bHQ6Ci0gICAgcmV0dXJuICZp
bmZvOwotICB9Ci19Ci0vKgotQGJlZ2luIERPTUNTU1J1bGVUYWJsZSA0Ci0gIHR5cGUgICAgICAg
ICAgICAgICAgICBET01DU1NSdWxlOjpUeXBlICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0g
IGNzc1RleHQgICAgICAgICAgICAgICBET01DU1NSdWxlOjpDc3NUZXh0ICAgICBEb250RGVsZXRl
fFJlYWRPbmx5Ci0gIHBhcmVudFN0eWxlU2hlZXQgICAgICBET01DU1NSdWxlOjpQYXJlbnRTdHls
ZVNoZWV0ICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgcGFyZW50UnVsZSAgICAgICAgICAgIERP
TUNTU1J1bGU6OlBhcmVudFJ1bGUgIERvbnREZWxldGV8UmVhZE9ubHkKLUBlbmQKLUBiZWdpbiBE
T01DU1NTdHlsZVJ1bGVUYWJsZSAyCi0gIHNlbGVjdG9yVGV4dCAgICAgICAgICBET01DU1NSdWxl
OjpTdHlsZV9TZWxlY3RvclRleHQgIERvbnREZWxldGUKLSAgc3R5bGUgICAgICAgICAgICAgICAg
IERPTUNTU1J1bGU6OlN0eWxlX1N0eWxlICAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotQGVu
ZAotQGJlZ2luIERPTUNTU01lZGlhUnVsZVRhYmxlIDQKLSAgbWVkaWEgICAgICAgICAgICAgICAg
IERPTUNTU1J1bGU6Ok1lZGlhX01lZGlhICAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotICBj
c3NSdWxlcyAgICAgICAgICAgICAgRE9NQ1NTUnVsZTo6TWVkaWFfQ3NzUnVsZXMgICAgICBEb250
RGVsZXRlfFJlYWRPbmx5Ci0gIGluc2VydFJ1bGUgICAgICAgICAgICBET01DU1NSdWxlOjpNZWRp
YV9JbnNlcnRSdWxlICAgIERvbnREZWxldGV8RnVuY3Rpb24gMgotICBkZWxldGVSdWxlICAgICAg
ICAgICAgRE9NQ1NTUnVsZTo6TWVkaWFfRGVsZXRlUnVsZSAgICBEb250RGVsZXRlfEZ1bmN0aW9u
IDEKLUBlbmQKLUBiZWdpbiBET01DU1NGb250RmFjZVJ1bGVUYWJsZSAxCi0gIHN0eWxlICAgICAg
ICAgICAgICAgICBET01DU1NSdWxlOjpGb250RmFjZV9TdHlsZSAgICAgIERvbnREZWxldGV8UmVh
ZE9ubHkKLUBlbmQKLUBiZWdpbiBET01DU1NQYWdlUnVsZVRhYmxlIDIKLSAgc2VsZWN0b3JUZXh0
ICAgICAgICAgIERPTUNTU1J1bGU6OlBhZ2VfU2VsZWN0b3JUZXh0ICAgRG9udERlbGV0ZQotICBz
dHlsZSAgICAgICAgICAgICAgICAgRE9NQ1NTUnVsZTo6UGFnZV9TdHlsZSAgICAgICAgICBEb250
RGVsZXRlfFJlYWRPbmx5Ci1AZW5kCi1AYmVnaW4gRE9NQ1NTSW1wb3J0UnVsZVRhYmxlIDMKLSAg
aHJlZiAgICAgICAgICAgICAgICAgIERPTUNTU1J1bGU6OkltcG9ydF9IcmVmICAgICAgICAgRG9u
dERlbGV0ZXxSZWFkT25seQotICBtZWRpYSAgICAgICAgICAgICAgICAgRE9NQ1NTUnVsZTo6SW1w
b3J0X01lZGlhICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gIHN0eWxlU2hlZXQgICAgICAg
ICAgICBET01DU1NSdWxlOjpJbXBvcnRfU3R5bGVTaGVldCAgIERvbnREZWxldGV8UmVhZE9ubHkK
LUBlbmQKLUBiZWdpbiBET01DU1NDaGFyc2V0UnVsZVRhYmxlIDEKLSAgZW5jb2RpbmcgICAgICAg
ICAgICAgIERPTUNTU1J1bGU6OkNoYXJzZXRfRW5jb2RpbmcgICAgRG9udERlbGV0ZQotQGVuZAot
Ki8KLWJvb2wgRE9NQ1NTUnVsZTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0g
IC8vIGZpcnN0IHRyeSB0aGUgcHJvcGVydGllcyBzcGVjaWZpYyB0byB0aGlzIHJ1bGUgdHlwZQot
ICBjb25zdCBIYXNoVGFibGUqIHRhYmxlID0gRE9NQ1NTUnVsZTo6Y2xhc3NJbmZvKCktPnByb3BI
YXNoVGFibGU7Ci0gIGlmICh0YWJsZSkgewotICAgIGNvbnN0IEhhc2hFbnRyeSogZW50cnkgPSBM
b29rdXA6OmZpbmRFbnRyeSh0YWJsZSwgcHJvcGVydHlOYW1lKTsKLSAgICBpZiAoZW50cnkpIHsK
LSAgICAgIC8vIEZJWE1FOiBmb3Igbm93IHdlIHNpbmdsZSBvdXQgdGhlIG1lZGlhIHJ1bGUgZnVu
Y3Rpb25zLgotICAgICAgLy8gVGhpcyBpcyBhIHRlbXBvcmFyeSBoYWNrIHNpbmNlIHdlIHNob3Vs
ZCB0cnkgdG8gZ2VuZXJhdGUKLSAgICAgIC8vIHRoZW0uIFNlZSBodHRwOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMTg5OAotICAgICAgaWYgKGVudHJ5LT5hdHRyICYgRnVuY3Rp
b24pCi0gICAgICAgIHJldHVybiBnZXRTdGF0aWNQcm9wZXJ0eVNsb3Q8RE9NQ1NTUnVsZUZ1bmMs
IERPTUNTU1J1bGUsIERPTU9iamVjdD4oZXhlYywgJkRPTUNTU01lZGlhUnVsZVRhYmxlLCB0aGlz
LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwotICAgICAgc2xvdC5zZXRTdGF0aWNFbnRyeSh0aGlzLCBl
bnRyeSwgc3RhdGljVmFsdWVHZXR0ZXI8RE9NQ1NTUnVsZT4pOwotICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgfQotICB9Ci0KLSAgLy8gbm93IHRoZSBzdHVmZiB0aGF0IGFwcGxpZXMgdG8gYWxsIHJ1
bGVzCi0gIHJldHVybiBnZXRTdGF0aWNQcm9wZXJ0eVNsb3Q8RE9NQ1NTUnVsZUZ1bmMsIERPTUNT
U1J1bGUsIERPTU9iamVjdD4oZXhlYywgJkRPTUNTU1J1bGVUYWJsZSwgdGhpcywgcHJvcGVydHlO
YW1lLCBzbG90KTsKLX0KLQotSlNWYWx1ZSogRE9NQ1NTUnVsZTo6Z2V0VmFsdWVQcm9wZXJ0eShF
eGVjU3RhdGUqIGV4ZWMsIGludCB0b2tlbikgY29uc3QKLXsKLSAgQ1NTUnVsZSAmY3NzUnVsZSA9
ICptX2ltcGw7Ci0gIHN3aXRjaCAodG9rZW4pIHsKLSAgY2FzZSBUeXBlOgotICAgIHJldHVybiBq
c051bWJlcihjc3NSdWxlLnR5cGUoKSk7Ci0gIGNhc2UgQ3NzVGV4dDoKLSAgICByZXR1cm4ganNT
dHJpbmdPck51bGwoY3NzUnVsZS5jc3NUZXh0KCkpOwotICBjYXNlIFBhcmVudFN0eWxlU2hlZXQ6
Ci0gICAgcmV0dXJuIHRvSlMoZXhlYyxjc3NSdWxlLnBhcmVudFN0eWxlU2hlZXQoKSk7Ci0gIGNh
c2UgUGFyZW50UnVsZToKLSAgICByZXR1cm4gdG9KUyhleGVjLGNzc1J1bGUucGFyZW50UnVsZSgp
KTsKLQotICAvLyBmb3IgU1RZTEVfUlVMRToKLSAgY2FzZSBTdHlsZV9TZWxlY3RvclRleHQ6Ci0g
ICAgcmV0dXJuIGpzU3RyaW5nT3JOdWxsKHN0YXRpY19jYXN0PENTU1N0eWxlUnVsZSo+KG1faW1w
bC5nZXQoKSktPnNlbGVjdG9yVGV4dCgpKTsKLSAgY2FzZSBTdHlsZV9TdHlsZToKLSAgICByZXR1
cm4gdG9KUyhleGVjLCBzdGF0aWNfY2FzdDxDU1NTdHlsZVJ1bGUqPihtX2ltcGwuZ2V0KCkpLT5z
dHlsZSgpKTsKLQotICAvLyBmb3IgTUVESUFfUlVMRToKLSAgY2FzZSBNZWRpYV9NZWRpYToKLSAg
ICByZXR1cm4gdG9KUyhleGVjLCBzdGF0aWNfY2FzdDxDU1NNZWRpYVJ1bGUqPihtX2ltcGwuZ2V0
KCkpLT5tZWRpYSgpKTsKLSAgY2FzZSBNZWRpYV9Dc3NSdWxlczoKLSAgICByZXR1cm4gdG9KUyhl
eGVjLCBzdGF0aWNfY2FzdDxDU1NNZWRpYVJ1bGUqPihtX2ltcGwuZ2V0KCkpLT5jc3NSdWxlcygp
KTsKLQotICAvLyBmb3IgRk9OVF9GQUNFX1JVTEU6Ci0gIGNhc2UgRm9udEZhY2VfU3R5bGU6Ci0g
ICAgcmV0dXJuIHRvSlMoZXhlYywgc3RhdGljX2Nhc3Q8Q1NTRm9udEZhY2VSdWxlKj4obV9pbXBs
LmdldCgpKS0+c3R5bGUoKSk7Ci0KLSAgLy8gZm9yIFBBR0VfUlVMRToKLSAgY2FzZSBQYWdlX1Nl
bGVjdG9yVGV4dDoKLSAgICByZXR1cm4ganNTdHJpbmdPck51bGwoc3RhdGljX2Nhc3Q8Q1NTUGFn
ZVJ1bGUqPihtX2ltcGwuZ2V0KCkpLT5zZWxlY3RvclRleHQoKSk7Ci0gIGNhc2UgUGFnZV9TdHls
ZToKLSAgICByZXR1cm4gdG9KUyhleGVjLCBzdGF0aWNfY2FzdDxDU1NQYWdlUnVsZSo+KG1faW1w
bC5nZXQoKSktPnN0eWxlKCkpOwotCi0gIC8vIGZvciBJTVBPUlRfUlVMRToKLSAgY2FzZSBJbXBv
cnRfSHJlZjoKLSAgICByZXR1cm4ganNTdHJpbmdPck51bGwoc3RhdGljX2Nhc3Q8Q1NTSW1wb3J0
UnVsZSo+KG1faW1wbC5nZXQoKSktPmhyZWYoKSk7Ci0gIGNhc2UgSW1wb3J0X01lZGlhOgotICAg
IHJldHVybiB0b0pTKGV4ZWMsIHN0YXRpY19jYXN0PENTU0ltcG9ydFJ1bGUqPihtX2ltcGwuZ2V0
KCkpLT5tZWRpYSgpKTsKLSAgY2FzZSBJbXBvcnRfU3R5bGVTaGVldDoKLSAgICByZXR1cm4gdG9K
UyhleGVjLCBzdGF0aWNfY2FzdDxDU1NJbXBvcnRSdWxlKj4obV9pbXBsLmdldCgpKS0+c3R5bGVT
aGVldCgpKTsKLQotICAvLyBmb3IgQ0hBUlNFVF9SVUxFOgotICBjYXNlIENoYXJzZXRfRW5jb2Rp
bmc6Ci0gICAgcmV0dXJuIGpzU3RyaW5nT3JOdWxsKHN0YXRpY19jYXN0PENTU0NoYXJzZXRSdWxl
Kj4obV9pbXBsLmdldCgpKS0+ZW5jb2RpbmcoKSk7Ci0KLSAgZGVmYXVsdDoKLSAgICBBU1NFUlQo
MCk7Ci0gIH0KLSAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci19Ci0KLXZvaWQgRE9NQ1NTUnVsZTo6
cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciAmcHJvcGVydHlOYW1lLCBKU1Zh
bHVlKiB2YWx1ZSwgaW50IGF0dHIpCi17Ci0gIGNvbnN0IEhhc2hUYWJsZSogdGFibGUgPSBET01D
U1NSdWxlOjpjbGFzc0luZm8oKS0+cHJvcEhhc2hUYWJsZTsgLy8gZ2V0IHRoZSByaWdodCBoYXNo
dGFibGUKLSAgaWYgKHRhYmxlKSB7Ci0gICAgY29uc3QgSGFzaEVudHJ5KiBlbnRyeSA9IExvb2t1
cDo6ZmluZEVudHJ5KHRhYmxlLCBwcm9wZXJ0eU5hbWUpOwotICAgIGlmIChlbnRyeSkgewotICAg
ICAgaWYgKGVudHJ5LT5hdHRyICYgRnVuY3Rpb24pIHsKLSAgICAgICAgLy8gZnVuY3Rpb246IHB1
dCBhcyBvdmVycmlkZSBwcm9wZXJ0eQotICAgICAgICBKU09iamVjdDo6cHV0KGV4ZWMsIHByb3Bl
cnR5TmFtZSwgdmFsdWUsIGF0dHIpOwotICAgICAgICByZXR1cm47Ci0gICAgICB9IGVsc2UgaWYg
KChlbnRyeS0+YXR0ciAmIFJlYWRPbmx5KSA9PSAwKSB7Ci0gICAgICAgIC8vIGxldCBsb29rdXBQ
dXQgcHJpbnQgdGhlIHdhcm5pbmcgaWYgbm90Ci0gICAgICAgIHB1dFZhbHVlUHJvcGVydHkoZXhl
YywgZW50cnktPnZhbHVlLCB2YWx1ZSwgYXR0cik7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0K
LSAgICB9Ci0gIH0KLQotICBsb29rdXBQdXQ8RE9NQ1NTUnVsZSwgRE9NT2JqZWN0PihleGVjLCBw
cm9wZXJ0eU5hbWUsIHZhbHVlLCBhdHRyLCAmRE9NQ1NTUnVsZVRhYmxlLCB0aGlzKTsKLX0KLQot
dm9pZCBET01DU1NSdWxlOjpwdXRWYWx1ZVByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgaW50IHRv
a2VuLCBKU1ZhbHVlKiB2YWx1ZSwgaW50KQotewotICBzd2l0Y2ggKHRva2VuKSB7Ci0gIC8vIGZv
ciBTVFlMRV9SVUxFOgotICBjYXNlIFN0eWxlX1NlbGVjdG9yVGV4dDoKLSAgICBzdGF0aWNfY2Fz
dDxDU1NTdHlsZVJ1bGUqPihtX2ltcGwuZ2V0KCkpLT5zZXRTZWxlY3RvclRleHQodmFsdWVUb1N0
cmluZ1dpdGhOdWxsQ2hlY2soZXhlYywgdmFsdWUpKTsKLSAgICByZXR1cm47Ci0KLSAgLy8gZm9y
IFBBR0VfUlVMRToKLSAgY2FzZSBQYWdlX1NlbGVjdG9yVGV4dDoKLSAgICBzdGF0aWNfY2FzdDxD
U1NQYWdlUnVsZSo+KG1faW1wbC5nZXQoKSktPnNldFNlbGVjdG9yVGV4dCh2YWx1ZVRvU3RyaW5n
V2l0aE51bGxDaGVjayhleGVjLCB2YWx1ZSkpOwotICAgIHJldHVybjsKLQotICAvLyBmb3IgQ0hB
UlNFVF9SVUxFOgotICBjYXNlIENoYXJzZXRfRW5jb2Rpbmc6Ci0gICAgc3RhdGljX2Nhc3Q8Q1NT
Q2hhcnNldFJ1bGUqPihtX2ltcGwuZ2V0KCkpLT5zZXRFbmNvZGluZyh2YWx1ZVRvU3RyaW5nV2l0
aE51bGxDaGVjayhleGVjLCB2YWx1ZSkpOwotICAgIHJldHVybjsKLSAgfQotfQotCi1KU1ZhbHVl
KiBET01DU1NSdWxlRnVuYzo6Y2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBKU09iamVj
dCogdGhpc09iaiwgY29uc3QgTGlzdCAmYXJncykKLXsKLSAgaWYgKCF0aGlzT2JqLT5pbmhlcml0
cygmS0pTOjpET01DU1NSdWxlOjppbmZvKSkKLSAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBU
eXBlRXJyb3IpOwotICBDU1NSdWxlJiBjc3NSdWxlID0gKnN0YXRpY19jYXN0PERPTUNTU1J1bGUq
Pih0aGlzT2JqKS0+aW1wbCgpOwotCi0gIGlmIChjc3NSdWxlLnR5cGUoKSA9PSBDU1NSdWxlOjpN
RURJQV9SVUxFKSB7Ci0gICAgQ1NTTWVkaWFSdWxlJiBydWxlID0gc3RhdGljX2Nhc3Q8Q1NTTWVk
aWFSdWxlJj4oY3NzUnVsZSk7Ci0gICAgc3dpdGNoIChpZCkgewotICAgICAgY2FzZSBET01DU1NS
dWxlOjpNZWRpYV9JbnNlcnRSdWxlOiB7Ci0gICAgICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwot
ICAgICAgICBKU1ZhbHVlKiByZXN1bHQgPSBqc051bWJlcihydWxlLmluc2VydFJ1bGUoYXJnc1sw
XS0+dG9TdHJpbmcoZXhlYyksIGFyZ3NbMV0tPnRvSW50MzIoZXhlYyksIGVjKSk7Ci0gICAgICAg
IHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAg
ICB9Ci0gICAgICBjYXNlIERPTUNTU1J1bGU6Ok1lZGlhX0RlbGV0ZVJ1bGU6IHsKLSAgICAgICAg
RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgICAgIHJ1bGUuZGVsZXRlUnVsZShhcmdzWzBdLT50
b0ludDMyKGV4ZWMpLCBlYyk7Ci0gICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7Ci0g
ICAgICB9Ci0gICAgfQotICB9Ci0KLSAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci19Ci0KLUpTVmFs
dWUqIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBDU1NSdWxlICpyKQotewotICByZXR1cm4gY2FjaGVE
T01PYmplY3Q8Q1NTUnVsZSwgSlNDU1NSdWxlPihleGVjLCByKTsKLX0KLQotLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotCiBjb25zdCBDbGFzc0luZm8gRE9NQ1NTVmFsdWU6OmluZm8gPSB7ICJDU1NWYWx1
ZSIsIDAsICZET01DU1NWYWx1ZVRhYmxlLCAwIH07CiAKIC8qCkluZGV4OiBXZWJDb3JlL2JpbmRp
bmdzL2pzL2tqc19jc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19j
c3MuaAkocmV2aXNpb24gMjE4NzApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19jc3MuaAko
d29ya2luZyBjb3B5KQpAQCAtMTIxLDI5ICsxMjEsNiBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICBl
bnVtIHsgT3duZXJSdWxlLCBDc3NSdWxlcywgUnVsZXMsIEluc2VydFJ1bGUsIERlbGV0ZVJ1bGUs
IEFkZFJ1bGUsIFJlbW92ZVJ1bGUgfTsKICAgfTsKIAotICBjbGFzcyBET01DU1NSdWxlIDogcHVi
bGljIERPTU9iamVjdCB7Ci0gIHB1YmxpYzoKLSAgICB2aXJ0dWFsIH5ET01DU1NSdWxlKCk7Ci0g
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiwgUHJvcGVydHlTbG90Jik7Ci0gICAgSlNWYWx1ZSogZ2V0VmFsdWVQcm9wZXJ0eShF
eGVjU3RhdGUqLCBpbnQgdG9rZW4pIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlKiwgaW50IGF0dHIg
PSBOb25lKTsKLSAgICB2b2lkIHB1dFZhbHVlUHJvcGVydHkoRXhlY1N0YXRlKiwgaW50IHRva2Vu
LCBKU1ZhbHVlKiwgaW50IGF0dHIpOwotICAgIHZpcnR1YWwgY29uc3QgQ2xhc3NJbmZvKiBjbGFz
c0luZm8oKSBjb25zdDsKLSAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIGluZm87Ci0gICAgc3Rh
dGljIGNvbnN0IENsYXNzSW5mbyBzdHlsZV9pbmZvLCBtZWRpYV9pbmZvLCBmb250ZmFjZV9pbmZv
LCBwYWdlX2luZm8sIGltcG9ydF9pbmZvLCBjaGFyc2V0X2luZm87Ci0gICAgZW51bSB7IFBhcmVu
dFN0eWxlU2hlZXQsIFR5cGUsIENzc1RleHQsIFBhcmVudFJ1bGUsIFN0eWxlX1NlbGVjdG9yVGV4
dCwgU3R5bGVfU3R5bGUsCi0gICAgICAgICAgIE1lZGlhX01lZGlhLCBNZWRpYV9JbnNlcnRSdWxl
LCBNZWRpYV9EZWxldGVSdWxlLCBNZWRpYV9Dc3NSdWxlcywKLSAgICAgICAgICAgRm9udEZhY2Vf
U3R5bGUsIFBhZ2VfU2VsZWN0b3JUZXh0LCBQYWdlX1N0eWxlLAotICAgICAgICAgICBJbXBvcnRf
SHJlZiwgSW1wb3J0X01lZGlhLCBJbXBvcnRfU3R5bGVTaGVldCwgQ2hhcnNldF9FbmNvZGluZyB9
OwotICAgIFdlYkNvcmU6OkNTU1J1bGUqIGltcGwoKSBjb25zdCB7IHJldHVybiBtX2ltcGwuZ2V0
KCk7IH0KLSAgcHJpdmF0ZToKLSAgICBmcmllbmQgY2xhc3MgV2ViQ29yZTo6SlNDU1NSdWxlOwot
ICAgIERPTUNTU1J1bGUoRXhlY1N0YXRlKiwgV2ViQ29yZTo6Q1NTUnVsZSopOwotICAgIFJlZlB0
cjxXZWJDb3JlOjpDU1NSdWxlPiBtX2ltcGw7Ci0gIH07Ci0KLSAgSlNWYWx1ZSogdG9KUyhFeGVj
U3RhdGUqLCBXZWJDb3JlOjpDU1NSdWxlKik7Ci0KICAgY2xhc3MgRE9NQ1NTVmFsdWUgOiBwdWJs
aWMgRE9NT2JqZWN0IHsKICAgcHVibGljOgogICAgIERPTUNTU1ZhbHVlKEV4ZWNTdGF0ZSosIFdl
YkNvcmU6OkNTU1ZhbHVlKik7CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NVXRpbGl0
eS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NVXRpbGl0eS5tbQko
cmV2aXNpb24gMjE4NzApCisrKyBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NVXRpbGl0eS5tbQko
d29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW1wb3J0ICJET01JbXBsZW1lbnRh
dGlvbkZyb250LmgiCiAjaW1wb3J0ICJET01JbnRlcm5hbC5oIgorI2ltcG9ydCAiSlNDU1NSdWxl
LmgiCiAjaW1wb3J0ICJKU0NTU1J1bGVMaXN0LmgiCiAjaW1wb3J0ICJKU0NTU1N0eWxlRGVjbGFy
YXRpb24uaCIKICNpbXBvcnQgIkpTQ291bnRlci5oIgpAQCAtNjUsNiArNjYsNyBAQCBzdGF0aWMg
aW5saW5lIGlkIGNyZWF0ZURPTVdyYXBwZXIoS0pTOjpKCiAgICAgICAgIGlmIChvYmplY3QtPmlu
aGVyaXRzKCZXZWJDb3JlOjpKUyMjY2xhc3NOYW1lOjppbmZvKSkgXAogICAgICAgICAgICAgcmV0
dXJuIFtET00jI2NsYXNzTmFtZSBfd3JhcCMjY2xhc3NOYW1lOnN0YXRpY19jYXN0PFdlYkNvcmU6
OkpTIyNjbGFzc05hbWUqPihvYmplY3QpLT5pbXBsKCldOwogCisgICAgV1JBUChDU1NSdWxlKQog
ICAgIFdSQVAoQ1NTUnVsZUxpc3QpCiAgICAgV1JBUChDU1NTdHlsZURlY2xhcmF0aW9uKQogICAg
IFdSQVAoQ291bnRlcikKQEAgLTc5LDcgKzgxLDYgQEAgc3RhdGljIGlubGluZSBpZCBjcmVhdGVE
T01XcmFwcGVyKEtKUzo6SgogICAgICAgICBpZiAob2JqZWN0LT5pbmhlcml0cygmRE9NIyNjbGFz
c05hbWU6OmluZm8pKSBcCiAgICAgICAgICAgICByZXR1cm4gW29iamNfZ2V0Q2xhc3MoIkRPTSIg
I2NsYXNzTmFtZSkgX3dyYXAjI2NsYXNzTmFtZTpzdGF0aWNfY2FzdDxET00jI2NsYXNzTmFtZSo+
KG9iamVjdCktPmltcGwoKV07CiAKLSAgICBXUkFQKENTU1J1bGUpCiAgICAgV1JBUChDU1NWYWx1
ZSkKICAgICBXUkFQKEV2ZW50KQogICAgIFdSQVAoTWVkaWFMaXN0KQpJbmRleDogV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiAyMTg3MCkKKysr
IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdvcmtpbmcgY29w
eSkKQEAgLTE2Miw3ICsxNjIsNyBAQCBzdWIgVXNlc01hbnVhbFRvSlNJbXBsZW1lbnRhdGlvbgog
ewogICAgIG15ICR0eXBlID0gc2hpZnQ7CiAKLSAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAiU1ZH
UGF0aFNlZyI7CisgICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgIlNWR1BhdGhTZWciIG9yICR0eXBl
IGVxICJDU1NSdWxlIjsKICAgICByZXR1cm4gMDsKIH0KIApAQCAtNTE1LDcgKzUxNSw3IEBAIHN1
YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICR7Y2xh
c3NOYW1lfVByb3RvdHlwZSgpIHsgfVxuIik7CiAgICAgfSBlbHNlIHsKICAgICAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIiAgICAke2NsYXNzTmFtZX1Qcm90b3R5cGUoS0pTOjpFeGVjU3RhdGUq
IGV4ZWMpXG4iKTsKLSAgICAgICAgaWYgKCRoYXNQYXJlbnQgJiYgJHBhcmVudENsYXNzTmFtZSBu
ZSAiS0pTOjpET01DU1NSdWxlIiAmJiAkcGFyZW50Q2xhc3NOYW1lIG5lICJLSlM6OkRPTU5vZGVG
aWx0ZXIiKSB7CisgICAgICAgIGlmICgkaGFzUGFyZW50ICYmICRwYXJlbnRDbGFzc05hbWUgbmUg
IktKUzo6RE9NTm9kZUZpbHRlciIpIHsKICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICIgICAgICAgIDogS0pTOjpKU09iamVjdCgke3BhcmVudENsYXNzTmFtZX1Qcm90b3R5cGU6OnNl
bGYoZXhlYykpIHsgfVxuIik7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiICAgICAgICA6IEtKUzo6SlNPYmplY3QoZXhlYy0+bGV4aWNhbEludGVy
cHJldGVyKCktPmJ1aWx0aW5PYmplY3RQcm90b3R5cGUoKSkgeyB9XG4iKTsKQEAgLTE0MzgsNiAr
MTQzOCwxMCBAQCBzdWIgTmF0aXZlVG9KU1ZhbHVlCiAgICAgICAgICR2YWx1ZSAuPSAiQW5pbWF0
ZWQoKSI7CiAgICAgfQogCisgICAgaWYgKCR0eXBlIGVxICJDU1NTdHlsZURlY2xhcmF0aW9uIikg
eworICAgICAgICAkaW1wbEluY2x1ZGVzeyJDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oIn0g
PSAxOworICAgIH0KKwogICAgIGlmICgkdHlwZSBlcSAiRE9NSW1wbGVtZW50YXRpb24iKSB7CiAg
ICAgICAgICRpbXBsSW5jbHVkZXN7Imtqc19kb20uaCJ9ID0gMTsKICAgICAgICAgJGltcGxJbmNs
dWRlc3siSlNET01JbXBsZW1lbnRhdGlvbi5oIn0gPSAxOwpJbmRleDogV2ViQ29yZS9jc3MvQ1NT
Q2hhcnNldFJ1bGUuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU0NoYXJzZXRSdWxl
LmlkbAkocmV2aXNpb24gMjE4NzApCisrKyBXZWJDb3JlL2Nzcy9DU1NDaGFyc2V0UnVsZS5pZGwJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2
IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBX
ZWluaWcgPHNhbS53ZWluaWdAZ21haWwuY29tPgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTIxLDE1ICsyMSwx
NyBAQAogbW9kdWxlIGNzcyB7CiAKICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgot
ICAgIGludGVyZmFjZSBDU1NDaGFyc2V0UnVsZSA6IENTU1J1bGUgeworICAgIGludGVyZmFjZSBb
R2VuZXJhdGVDb25zdHJ1Y3Rvcl0gQ1NTQ2hhcnNldFJ1bGUgOiBDU1NSdWxlIHsKIAogICAgICAg
ICAvLyBGSVhNRTogdGhlIERPTSBzcGVjIHNheXMgdGhhdCB0aGlzIGF0dHJpYnV0ZQogICAgICAg
ICAvLyBzaG91bGQgbm90IGJlIHJlYWRvbmx5LiAgVGhlIGNvcnJlY3QgZGVjbGFyYXRpb24KICAg
ICAgICAgLy8gaXMgY29tbWVudGVkIG91dCBiZWxvdy4KLSAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyAgICAgICAgZW5jb2Rpbmc7Ci0gICAgICAgICAgICAgICAvKmF0dHJpYnV0
ZSBET01TdHJpbmcgICAgICAgIGVuY29kaW5nCi0gICAgICAgICAgICAgICAgICAgIHNldHRlciBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsqLwotCisjaWYgZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVf
QykKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGxd
IERPTVN0cmluZyBlbmNvZGluZzsKKyNlbHNlCisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBb
Q29udmVydE51bGxTdHJpbmdUbz1OdWxsLCBDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3Ry
aW5nIGVuY29kaW5nCisgICAgICAgICAgICAgICAgICAgICAvKnNldHRlciByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsqLworI2VuZGlmCiAgICAgfTsKIAogfQpJbmRleDogV2ViQ29yZS9jc3MvQ1NTRm9u
dEZhY2VSdWxlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1bGUu
aWRsCShyZXZpc2lvbiAyMTg3MCkKKysrIFdlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2
IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBX
ZWluaWcgPHNhbS53ZWluaWdAZ21haWwuY29tPgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTIxLDggKzIxLDgg
QEAKIG1vZHVsZSBjc3MgewogCiAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKLSAg
ICBpbnRlcmZhY2UgQ1NTRm9udEZhY2VSdWxlIDogQ1NTUnVsZSB7Ci0gICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBDU1NTdHlsZURlY2xhcmF0aW9uICBzdHlsZTsKKyAgICBpbnRlcmZhY2UgW0dl
bmVyYXRlQ29uc3RydWN0b3JdIENTU0ZvbnRGYWNlUnVsZSA6IENTU1J1bGUgeworICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgQ1NTU3R5bGVEZWNsYXJhdGlvbiBzdHlsZTsKICAgICB9OwogCiB9
CkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmlkbAkocmV2aXNpb24gMjE4NzApCisrKyBXZWJDb3JlL2Nz
cy9DU1NJbXBvcnRSdWxlLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHlyaWdodCAo
QykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CiAgKgogICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgpAQCAtMjEsMTAgKzIxLDEwIEBACiBtb2R1bGUgY3NzIHsKIAogICAgIC8vIEludHJvZHVj
ZWQgaW4gRE9NIExldmVsIDI6Ci0gICAgaW50ZXJmYWNlIENTU0ltcG9ydFJ1bGUgOiBDU1NSdWxl
IHsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgaHJlZjsKLSAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHN0eWxlc2hlZXRzOjpNZWRpYUxpc3QgIG1lZGlhOwot
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTU3R5bGVTaGVldCAgICBzdHlsZVNoZWV0Owor
ICAgIGludGVyZmFjZSBbR2VuZXJhdGVDb25zdHJ1Y3Rvcl0gQ1NTSW1wb3J0UnVsZSA6IENTU1J1
bGUgeworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsU3RyaW5nVG89TnVs
bF0gRE9NU3RyaW5nIGhyZWY7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBzdHlsZXNoZWV0
czo6TWVkaWFMaXN0IG1lZGlhOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTU3R5bGVT
aGVldCBzdHlsZVNoZWV0OwogICAgIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvY3NzL0NTU01lZGlh
UnVsZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTTWVkaWFSdWxlLmlkbAkocmV2
aXNpb24gMjE4NzApCisrKyBXZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1bGUuaWRsCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21w
dXRlciwgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0u
d2VpbmlnQGdtYWlsLmNvbT4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0yMSw5ICsyMSw5IEBACiBtb2R1bGUg
Y3NzIHsKIAogICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6Ci0gICAgaW50ZXJmYWNl
IENTU01lZGlhUnVsZSA6IENTU1J1bGUgewotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgc3R5
bGVzaGVldHM6Ok1lZGlhTGlzdCAgbWVkaWE7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBD
U1NSdWxlTGlzdCAgICAgIGNzc1J1bGVzOworICAgIGludGVyZmFjZSBbR2VuZXJhdGVDb25zdHJ1
Y3Rvcl0gQ1NTTWVkaWFSdWxlIDogQ1NTUnVsZSB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBzdHlsZXNoZWV0czo6TWVkaWFMaXN0IG1lZGlhOworICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgQ1NTUnVsZUxpc3QgY3NzUnVsZXM7CiAgICAgICAgIAogICAgICAgICBbT2xkU3R5bGVPYmpD
XSB1bnNpZ25lZCBsb25nICAgICAgaW5zZXJ0UnVsZShpbiBET01TdHJpbmcgcnVsZSwgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHVuc2ln
bmVkIGxvbmcgaW5kZXgpCkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NQYWdlUnVsZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1BhZ2VSdWxlLmgJKHJldmlzaW9uIDIxODcwKQorKysgV2Vi
Q29yZS9jc3MvQ1NTUGFnZVJ1bGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAog
CiAjaW5jbHVkZSAiQ1NTUnVsZS5oIgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRl
ICJQbGF0Zm9ybVN0cmluZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKSW5kZXg6IFdlYkNv
cmUvY3NzL0NTU1BhZ2VSdWxlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NQYWdl
UnVsZS5pZGwJKHJldmlzaW9uIDIxODcwKQorKysgV2ViQ29yZS9jc3MvQ1NTUGFnZVJ1bGUuaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
NiBBcHBsZSBDb21wdXRlciwgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwg
V2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0yMSwxNCArMjEs
MTQgQEAKIG1vZHVsZSBjc3MgewogCiAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoK
LSAgICBpbnRlcmZhY2UgQ1NTUGFnZVJ1bGUgOiBDU1NSdWxlIHsKKyAgICBpbnRlcmZhY2UgW0dl
bmVyYXRlQ29uc3RydWN0b3JdIENTU1BhZ2VSdWxlIDogQ1NTUnVsZSB7CiAKICAgICAgICAgICAg
ICAgICAgLy8gRklYTUU6IERPTSBzcGVjIHNheXMgdGhhdCB0aGlzIGNhbiByYWlzZSBhbgogICAg
ICAgICAgICAgICAgICAvLyBleGNlcHRpb24gb24gc2V0dGluZy4KLSAgICAgICAgICAgICAgICAg
YXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgICBzZWxl
Y3RvclRleHQKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFN0cmluZ1Rv
PU51bGwsIENvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgc2VsZWN0b3JUZXh0CiAg
ICAgICAgICAgICAgICAgICAgICAvKnNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKSovOwogCi0g
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NTdHlsZURlY2xhcmF0aW9uICBzdHlsZTsKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU1N0eWxlRGVjbGFyYXRpb24gc3R5bGU7CiAKICAg
ICB9OwogCkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NSdWxlLmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2Nzcy9DU1NSdWxlLmlkbAkocmV2aXNpb24gMjE4NzApCisrKyBXZWJDb3JlL2Nzcy9DU1NS
dWxlLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAw
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYg
U2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CiAgKgogICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMjEs
NyArMjEsNyBAQAogbW9kdWxlIGNzcyB7CiAKICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZl
bCAyOgotICAgIGludGVyZmFjZSBbTGVnYWN5UGFyZW50PUtKUzo6RE9NQ1NTUnVsZSwgR2VuZXJh
dGVDb25zdHJ1Y3RvciwgT2JqQ0N1c3RvbUludGVybmFsSW1wbF0gQ1NTUnVsZSB7CisgICAgaW50
ZXJmYWNlIFtHZW5lcmF0ZUNvbnN0cnVjdG9yLCBPYmpDQ3VzdG9tSW50ZXJuYWxJbXBsXSBDU1NS
dWxlIHsKIAogICAgICAgICAvLyBSdWxlVHlwZQogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9y
dCBVTktOT1dOX1JVTEUgPSAwOwpAQCAtMzIsMTcgKzMyLDIwIEBAIG1vZHVsZSBjc3MgewogICAg
ICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBGT05UX0ZBQ0VfUlVMRSA9IDU7CiAgICAgICAgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IFBBR0VfUlVMRSA9IDY7CiAKLSNpZiAhZGVmaW5lZChMQU5HVUFH
RV9KQVZBU0NSSVBUKQogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQg
ICB0eXBlOwogCi0gICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBET00gc3BlYyBzYXlzIHRoYXQg
dGhpcyBjYW4gcmFpc2UgYW4KKyAgICAgICAgICAgICAgICAgLy8gRklYTUU6IERPTSBzcGVjIHNh
eXMgdGhhdCB0aGlzIGNhbiBiZSBzZXQgYW5kIGNhbiByYWlzZSBhbgogICAgICAgICAgICAgICAg
ICAvLyBleGNlcHRpb24gb24gc2V0dGluZy4KKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJ
UFQpCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmdd
IERPTVN0cmluZyAgICAgICAgY3NzVGV4dDsKKyNlbHNlCiAgICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAgICAgICAgY3NzVGV4dAog
ICAgICAgICAgICAgICAgICAgICAgLypzZXR0ZXIgcmFpc2VzIChET01FeGNlcHRpb24pKi87Cisj
ZW5kaWYKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTU3R5bGVTaGVldCAgICBwYXJl
bnRTdHlsZVNoZWV0OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTUnVsZSAgICAgICAg
ICBwYXJlbnRSdWxlOwotI2VuZGlmCiAKICAgICB9OworCiB9CkluZGV4OiBXZWJDb3JlL2Nzcy9D
U1NTdHlsZVJ1bGUuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5p
ZGwJKHJldmlzaW9uIDIxODcwKQorKysgV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxlLmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBw
bGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5p
ZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMjEsMTEgKzIxLDExIEBA
CiBtb2R1bGUgY3NzIHsKIAogICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6Ci0gICAg
aW50ZXJmYWNlIENTU1N0eWxlUnVsZSA6IENTU1J1bGUgeworICAgIGludGVyZmFjZSBbR2VuZXJh
dGVDb25zdHJ1Y3Rvcl0gQ1NTU3R5bGVSdWxlIDogQ1NTUnVsZSB7CiAKICAgICAgICAgICAgICAg
ICAgLy8gRklYTUU6IERPTSBzcGVjIHNheXMgdGhhdCB0aGlzIGNhbiByYWlzZSBhbgogICAgICAg
ICAgICAgICAgICAvLyBleGNlcHRpb24gb24gc2V0dGluZy4KLSAgICAgICAgICAgICAgICAgYXR0
cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgICAgICAgc2Vs
ZWN0b3JUZXh0CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdU
bz1OdWxsLCBDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgICAgICAgc2Vs
ZWN0b3JUZXh0CiAgICAgICAgICAgICAgICAgICAgICAvKnNldHRlciByYWlzZXMoRE9NRXhjZXB0
aW9uKSovOwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NTdHlsZURlY2xhcmF0aW9u
ICBzdHlsZTsKSW5kZXg6IFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCShyZXZpc2lvbiAyMTg3MCkKKysrIFdlYkNvcmUv
cGFnZS9ET01XaW5kb3cuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC00NCw2ICs0NCwxMiBAQCBtb2R1
bGUgd2luZG93IHsKICAgICAgICAgLy8gR2xvYmFsIGNvbnN0cnVjdG9ycwogICAgICAgICBhdHRy
aWJ1dGUgQ1NTUHJpbWl0aXZlVmFsdWVDb25zdHJ1Y3RvciBDU1NQcmltaXRpdmVWYWx1ZTsKICAg
ICAgICAgYXR0cmlidXRlIENTU1J1bGVDb25zdHJ1Y3RvciBDU1NSdWxlOworICAgICAgICBhdHRy
aWJ1dGUgQ1NTQ2hhcnNldFJ1bGVDb25zdHJ1Y3RvciBDU1NDaGFyc2V0UnVsZTsKKyAgICAgICAg
YXR0cmlidXRlIENTU0ZvbnRGYWNlUnVsZUNvbnN0cnVjdG9yIENTU0ZvbnRGYWNlUnVsZTsKKyAg
ICAgICAgYXR0cmlidXRlIENTU0ltcG9ydFJ1bGVDb25zdHJ1Y3RvciBDU1NJbXBvcnRSdWxlOwor
ICAgICAgICBhdHRyaWJ1dGUgQ1NTTWVkaWFSdWxlQ29uc3RydWN0b3IgQ1NTTWVkaWFSdWxlOwor
ICAgICAgICBhdHRyaWJ1dGUgQ1NTUGFnZVJ1bGVDb25zdHJ1Y3RvciBDU1NQYWdlUnVsZTsKKyAg
ICAgICAgYXR0cmlidXRlIENTU1N0eWxlUnVsZUNvbnN0cnVjdG9yIENTU1N0eWxlUnVsZTsKICAg
ICAgICAgYXR0cmlidXRlIENTU1N0eWxlRGVjbGFyYXRpb25Db25zdHJ1Y3RvciBDU1NTdHlsZURl
Y2xhcmF0aW9uOwogICAgICAgICBhdHRyaWJ1dGUgQ1NTVmFsdWVDb25zdHJ1Y3RvciBDU1NWYWx1
ZTsKICAgICAgICAgYXR0cmlidXRlIERPTVBhcnNlckNvbnN0cnVjdG9yIERPTVBhcnNlcjsKSW5k
ZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDIxODcwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDctMDUtMjkgIFNhbSBXZWluaWcgIDxzYW1Ad2Vi
a2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAtIFVwZGF0ZSByZXN1bHRzIGZvciBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMzkxOQorICAgICAgICAgIEF1dG9nZW5lcmF0ZSB0aGUgSlMgYmluZGluZ3MgZm9yIHRo
ZSBDU1NSdWxlIGFuZCBpdHMgc3ViY2xhc3NlcworCisgICAgICAgICogZmFzdC9kb20vV2luZG93
L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDogYWRkcyBuZXcgY29uc3RydWN0b3JzCisg
ICAgICAgICogZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLWV4cGVjdGVkLnR4dDogQ1NTU3R5bGVS
dWxlIG5vdyBwYXNzZXMhIQorCiAyMDA3LTA1LTI5ICBBZGVsZSBQZXRlcnNvbiAgPGFkZWxlQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBCcmFkeS4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MjE4NzApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC02Niw3ICs2Niw3IEBAIFBBU1MganNXcmFwcGVyQ2xhc3Mo
c3R5bGVzaGVldCkgaXMgJ0NTU1MKIFBBU1Mgb2JqQ1dyYXBwZXJDbGFzcyhzdHlsZXNoZWV0KSBp
cyAnRE9NQ1NTU3R5bGVTaGVldCcKIFBBU1MganNXcmFwcGVyQ2xhc3Moc3R5bGVzaGVldC5jc3NS
dWxlcykgaXMgJ0NTU1J1bGVMaXN0JwogUEFTUyBvYmpDV3JhcHBlckNsYXNzKHN0eWxlc2hlZXQu
Y3NzUnVsZXMpIGlzICdET01DU1NSdWxlTGlzdCcKLUZBSUwganNXcmFwcGVyQ2xhc3Moc3R5bGVz
aGVldC5jc3NSdWxlcy5pdGVtKDApKSBzaG91bGQgYmUgQ1NTU3R5bGVSdWxlLiBXYXMgQ1NTUnVs
ZS4KK1BBU1MganNXcmFwcGVyQ2xhc3Moc3R5bGVzaGVldC5jc3NSdWxlcy5pdGVtKDApKSBpcyAn
Q1NTU3R5bGVSdWxlJwogUEFTUyBvYmpDV3JhcHBlckNsYXNzKHN0eWxlc2hlZXQuY3NzUnVsZXMu
aXRlbSgwKSkgaXMgJ0RPTUNTU1N0eWxlUnVsZScKIFBBU1MganNXcmFwcGVyQ2xhc3Moc3R5bGVz
aGVldC5jc3NSdWxlcy5pdGVtKDApLnN0eWxlKSBpcyAnQ1NTU3R5bGVEZWNsYXJhdGlvbicKIFBB
U1Mgb2JqQ1dyYXBwZXJDbGFzcyhzdHlsZXNoZWV0LmNzc1J1bGVzLml0ZW0oMCkuc3R5bGUpIGlz
ICdET01DU1NTdHlsZURlY2xhcmF0aW9uJwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAyMTg3MCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVy
dGllcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTY5LDYgKzY5LDUzIEBAIHdpbmRv
dy5DREFUQVNlY3Rpb24ucHJvdG90eXBlLnJlcGxhY2VDaGkKIHdpbmRvdy5DREFUQVNlY3Rpb24u
cHJvdG90eXBlLnJlcGxhY2VEYXRhIFtmdW5jdGlvbl0KIHdpbmRvdy5DREFUQVNlY3Rpb24ucHJv
dG90eXBlLnNwbGl0VGV4dCBbZnVuY3Rpb25dCiB3aW5kb3cuQ0RBVEFTZWN0aW9uLnByb3RvdHlw
ZS5zdWJzdHJpbmdEYXRhIFtmdW5jdGlvbl0KK3dpbmRvdy5DU1NDaGFyc2V0UnVsZSBbb2JqZWN0
IENTU0NoYXJzZXRSdWxlQ29uc3RydWN0b3JdCit3aW5kb3cuQ1NTQ2hhcnNldFJ1bGUucHJvdG90
eXBlIFtvYmplY3QgQ1NTQ2hhcnNldFJ1bGVQcm90b3R5cGVdCit3aW5kb3cuQ1NTQ2hhcnNldFJ1
bGUucHJvdG90eXBlLkNIQVJTRVRfUlVMRSBbbnVtYmVyXQord2luZG93LkNTU0NoYXJzZXRSdWxl
LnByb3RvdHlwZS5GT05UX0ZBQ0VfUlVMRSBbbnVtYmVyXQord2luZG93LkNTU0NoYXJzZXRSdWxl
LnByb3RvdHlwZS5JTVBPUlRfUlVMRSBbbnVtYmVyXQord2luZG93LkNTU0NoYXJzZXRSdWxlLnBy
b3RvdHlwZS5NRURJQV9SVUxFIFtudW1iZXJdCit3aW5kb3cuQ1NTQ2hhcnNldFJ1bGUucHJvdG90
eXBlLlBBR0VfUlVMRSBbbnVtYmVyXQord2luZG93LkNTU0NoYXJzZXRSdWxlLnByb3RvdHlwZS5T
VFlMRV9SVUxFIFtudW1iZXJdCit3aW5kb3cuQ1NTQ2hhcnNldFJ1bGUucHJvdG90eXBlLlVOS05P
V05fUlVMRSBbbnVtYmVyXQord2luZG93LkNTU0ZvbnRGYWNlUnVsZSBbb2JqZWN0IENTU0ZvbnRG
YWNlUnVsZUNvbnN0cnVjdG9yXQord2luZG93LkNTU0ZvbnRGYWNlUnVsZS5wcm90b3R5cGUgW29i
amVjdCBDU1NGb250RmFjZVJ1bGVQcm90b3R5cGVdCit3aW5kb3cuQ1NTRm9udEZhY2VSdWxlLnBy
b3RvdHlwZS5DSEFSU0VUX1JVTEUgW251bWJlcl0KK3dpbmRvdy5DU1NGb250RmFjZVJ1bGUucHJv
dG90eXBlLkZPTlRfRkFDRV9SVUxFIFtudW1iZXJdCit3aW5kb3cuQ1NTRm9udEZhY2VSdWxlLnBy
b3RvdHlwZS5JTVBPUlRfUlVMRSBbbnVtYmVyXQord2luZG93LkNTU0ZvbnRGYWNlUnVsZS5wcm90
b3R5cGUuTUVESUFfUlVMRSBbbnVtYmVyXQord2luZG93LkNTU0ZvbnRGYWNlUnVsZS5wcm90b3R5
cGUuUEFHRV9SVUxFIFtudW1iZXJdCit3aW5kb3cuQ1NTRm9udEZhY2VSdWxlLnByb3RvdHlwZS5T
VFlMRV9SVUxFIFtudW1iZXJdCit3aW5kb3cuQ1NTRm9udEZhY2VSdWxlLnByb3RvdHlwZS5VTktO
T1dOX1JVTEUgW251bWJlcl0KK3dpbmRvdy5DU1NJbXBvcnRSdWxlIFtvYmplY3QgQ1NTSW1wb3J0
UnVsZUNvbnN0cnVjdG9yXQord2luZG93LkNTU0ltcG9ydFJ1bGUucHJvdG90eXBlIFtvYmplY3Qg
Q1NTSW1wb3J0UnVsZVByb3RvdHlwZV0KK3dpbmRvdy5DU1NJbXBvcnRSdWxlLnByb3RvdHlwZS5D
SEFSU0VUX1JVTEUgW251bWJlcl0KK3dpbmRvdy5DU1NJbXBvcnRSdWxlLnByb3RvdHlwZS5GT05U
X0ZBQ0VfUlVMRSBbbnVtYmVyXQord2luZG93LkNTU0ltcG9ydFJ1bGUucHJvdG90eXBlLklNUE9S
VF9SVUxFIFtudW1iZXJdCit3aW5kb3cuQ1NTSW1wb3J0UnVsZS5wcm90b3R5cGUuTUVESUFfUlVM
RSBbbnVtYmVyXQord2luZG93LkNTU0ltcG9ydFJ1bGUucHJvdG90eXBlLlBBR0VfUlVMRSBbbnVt
YmVyXQord2luZG93LkNTU0ltcG9ydFJ1bGUucHJvdG90eXBlLlNUWUxFX1JVTEUgW251bWJlcl0K
K3dpbmRvdy5DU1NJbXBvcnRSdWxlLnByb3RvdHlwZS5VTktOT1dOX1JVTEUgW251bWJlcl0KK3dp
bmRvdy5DU1NNZWRpYVJ1bGUgW29iamVjdCBDU1NNZWRpYVJ1bGVDb25zdHJ1Y3Rvcl0KK3dpbmRv
dy5DU1NNZWRpYVJ1bGUucHJvdG90eXBlIFtvYmplY3QgQ1NTTWVkaWFSdWxlUHJvdG90eXBlXQor
d2luZG93LkNTU01lZGlhUnVsZS5wcm90b3R5cGUuQ0hBUlNFVF9SVUxFIFtudW1iZXJdCit3aW5k
b3cuQ1NTTWVkaWFSdWxlLnByb3RvdHlwZS5GT05UX0ZBQ0VfUlVMRSBbbnVtYmVyXQord2luZG93
LkNTU01lZGlhUnVsZS5wcm90b3R5cGUuSU1QT1JUX1JVTEUgW251bWJlcl0KK3dpbmRvdy5DU1NN
ZWRpYVJ1bGUucHJvdG90eXBlLk1FRElBX1JVTEUgW251bWJlcl0KK3dpbmRvdy5DU1NNZWRpYVJ1
bGUucHJvdG90eXBlLlBBR0VfUlVMRSBbbnVtYmVyXQord2luZG93LkNTU01lZGlhUnVsZS5wcm90
b3R5cGUuU1RZTEVfUlVMRSBbbnVtYmVyXQord2luZG93LkNTU01lZGlhUnVsZS5wcm90b3R5cGUu
VU5LTk9XTl9SVUxFIFtudW1iZXJdCit3aW5kb3cuQ1NTTWVkaWFSdWxlLnByb3RvdHlwZS5kZWxl
dGVSdWxlIFtmdW5jdGlvbl0KK3dpbmRvdy5DU1NNZWRpYVJ1bGUucHJvdG90eXBlLmluc2VydFJ1
bGUgW2Z1bmN0aW9uXQord2luZG93LkNTU1BhZ2VSdWxlIFtvYmplY3QgQ1NTUGFnZVJ1bGVDb25z
dHJ1Y3Rvcl0KK3dpbmRvdy5DU1NQYWdlUnVsZS5wcm90b3R5cGUgW29iamVjdCBDU1NQYWdlUnVs
ZVByb3RvdHlwZV0KK3dpbmRvdy5DU1NQYWdlUnVsZS5wcm90b3R5cGUuQ0hBUlNFVF9SVUxFIFtu
dW1iZXJdCit3aW5kb3cuQ1NTUGFnZVJ1bGUucHJvdG90eXBlLkZPTlRfRkFDRV9SVUxFIFtudW1i
ZXJdCit3aW5kb3cuQ1NTUGFnZVJ1bGUucHJvdG90eXBlLklNUE9SVF9SVUxFIFtudW1iZXJdCit3
aW5kb3cuQ1NTUGFnZVJ1bGUucHJvdG90eXBlLk1FRElBX1JVTEUgW251bWJlcl0KK3dpbmRvdy5D
U1NQYWdlUnVsZS5wcm90b3R5cGUuUEFHRV9SVUxFIFtudW1iZXJdCit3aW5kb3cuQ1NTUGFnZVJ1
bGUucHJvdG90eXBlLlNUWUxFX1JVTEUgW251bWJlcl0KK3dpbmRvdy5DU1NQYWdlUnVsZS5wcm90
b3R5cGUuVU5LTk9XTl9SVUxFIFtudW1iZXJdCiB3aW5kb3cuQ1NTUHJpbWl0aXZlVmFsdWUgW29i
amVjdCBDU1NQcmltaXRpdmVWYWx1ZUNvbnN0cnVjdG9yXQogd2luZG93LkNTU1ByaW1pdGl2ZVZh
bHVlLkNTU19BVFRSIFtudW1iZXJdCiB3aW5kb3cuQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX0NNIFtu
dW1iZXJdCkBAIC0xNjAsNiArMjA3LDggQEAgd2luZG93LkNTU1N0eWxlRGVjbGFyYXRpb24ucHJv
dG90eXBlLmlzUAogd2luZG93LkNTU1N0eWxlRGVjbGFyYXRpb24ucHJvdG90eXBlLml0ZW0gW2Z1
bmN0aW9uXQogd2luZG93LkNTU1N0eWxlRGVjbGFyYXRpb24ucHJvdG90eXBlLnJlbW92ZVByb3Bl
cnR5IFtmdW5jdGlvbl0KIHdpbmRvdy5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZS5zZXRQ
cm9wZXJ0eSBbZnVuY3Rpb25dCit3aW5kb3cuQ1NTU3R5bGVSdWxlIFtvYmplY3QgQ1NTU3R5bGVS
dWxlQ29uc3RydWN0b3JdCit3aW5kb3cuQ1NTU3R5bGVSdWxlLnByb3RvdHlwZSBbcHJpbnRlZCBh
Ym92ZSBhcyB3aW5kb3cuQ1NTUnVsZS5wcm90b3R5cGVdCiB3aW5kb3cuQ1NTVmFsdWUgW29iamVj
dCBDU1NWYWx1ZUNvbnN0cnVjdG9yXQogd2luZG93LkNTU1ZhbHVlLkNTU19DVVNUT00gW251bWJl
cl0KIHdpbmRvdy5DU1NWYWx1ZS5DU1NfSU5IRVJJVCBbbnVtYmVyXQo=
</data>
<flag name="review"
          id="6095"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14785</attachid>
            <date>2007-05-30 10:21:39 -0700</date>
            <delta_ts>2007-05-30 10:45:26 -0700</delta_ts>
            <desc>Updated Patch</desc>
            <filename>autogenCssRule2.diff</filename>
            <type>text/plain</type>
            <size>48876</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMTg5NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDMgQEAKKzIwMDctMDUtMzAgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXRjaCBm
b3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5MTkKKyAgICAgICAg
QXV0b2dlbmVyYXRlIHRoZSBKUyBiaW5kaW5ncyBmb3IgdGhlIENTU1J1bGUgYW5kIGl0cyBzdWJj
bGFzc2VzCisKKyAgICAgICAgLSBzdWJjbGFzc2VzIGdlbmVyYXRlZCBhcmUgQ1NTQ2hhcnNldFJ1
bGUsIENTU0ZvbnRGYWNlUnVsZSwgQ1NTSW1wb3J0UnVsZQorICAgICAgICAgIENTU01lZGlhUnVs
ZSwgQ1NTUGFnZVJ1bGUgYW5kIENTU1N0eWxlUnVsZS4KKworICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLm1ha2U6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ1NTUnVsZUN1
c3RvbS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAgICogYmlu
ZGluZ3MvanMva2pzX2Nzcy5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMva2pzX2Nzcy5oOgor
ICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NVXRpbGl0eS5tbToKKyAgICAgICAgKEtKUzo6Y3Jl
YXRlRE9NV3JhcHBlcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG06CisgICAgICAgICogY3NzL0NTU0NoYXJzZXRSdWxlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NDaGFyc2V0UnVsZTo6c2V0RW5jb2RpbmcpOgorICAgICAgICAqIGNzcy9DU1NDaGFyc2V0
UnVsZS5pZGw6CisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGw6CisgICAgICAgICog
Y3NzL0NTU0ltcG9ydFJ1bGUuaWRsOgorICAgICAgICAqIGNzcy9DU1NNZWRpYVJ1bGUuaWRsOgor
ICAgICAgICAqIGNzcy9DU1NQYWdlUnVsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYWdl
UnVsZTo6c2V0U2VsZWN0b3JUZXh0KToKKyAgICAgICAgKiBjc3MvQ1NTUGFnZVJ1bGUuaDoKKyAg
ICAgICAgKiBjc3MvQ1NTUGFnZVJ1bGUuaWRsOgorICAgICAgICAqIGNzcy9DU1NSdWxlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1J1bGU6OnNldENzc1RleHQpOgorICAgICAgICAqIGNzcy9D
U1NSdWxlLmg6CisgICAgICAgICogY3NzL0NTU1J1bGUuaWRsOgorICAgICAgICAqIGNzcy9DU1NT
dHlsZVJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVSdWxlOjpzZXRTZWxlY3Rv
clRleHQpOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVJ1bGUuaDoKKyAgICAgICAgKiBjc3MvQ1NT
U3R5bGVSdWxlLmlkbDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6IGFkZCBuZXcgY29u
c3RydWN0b3JzLgorCiAyMDA3LTA1LTMwICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CiAK
ICAgICAgICAgQnVpbGQgZml4ZXMgYWZ0ZXIgcjIxODg5LiAgQWRkIG1pc3NpbmcgI2luY2x1ZGVz
LgpJbmRleDogV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMjE4OTQpCisrKyBXZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTMwMCw5ICszMDAsMTUgQEAgYWxsIDog
XAogICAgIEhUTUxFbnRpdHlOYW1lcy5jIFwKICAgICBKU0F0dHIuaCBcCiAgICAgSlNDREFUQVNl
Y3Rpb24uaCBcCisgICAgSlNDU1NDaGFyc2V0UnVsZS5oIFwKKyAgICBKU0NTU0ZvbnRGYWNlUnVs
ZS5oIFwKKyAgICBKU0NTU0ltcG9ydFJ1bGUuaCBcCisgICAgSlNDU1NNZWRpYVJ1bGUuaCBcCisg
ICAgSlNDU1NQYWdlUnVsZS5oIFwKICAgICBKU0NTU1ByaW1pdGl2ZVZhbHVlLmggXAogICAgIEpT
Q1NTUnVsZS5oIFwKICAgICBKU0NTU1J1bGVMaXN0LmggXAorICAgIEpTQ1NTU3R5bGVSdWxlLmgg
XAogICAgIEpTQ1NTVmFsdWUuaCBcCiAgICAgSlNDU1NWYWx1ZUxpc3QuaCBcCiAgICAgSlNDYW52
YXNHcmFkaWVudC5oIFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24gMjE4OTQpCisrKyBXZWJDb3JlL1dlYkNvcmUu
cHJvCSh3b3JraW5nIGNvcHkpCkBAIC0xNjEsMTAgKzE2MSwxNiBAQCBMVVRfVEFCTEVfRklMRVMg
Kz0gXAogCiBJRExfQklORElOR1MgKz0gXAogICAgIGNzcy9Db3VudGVyLmlkbCBcCisgICAgY3Nz
L0NTU0NoYXJzZXRSdWxlLmlkbCBcCisgICAgY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwgXAorICAg
IGNzcy9DU1NJbXBvcnRSdWxlLmlkbCBcCisgICAgY3NzL0NTU01lZGlhUnVsZS5pZGwgXAorICAg
IGNzcy9DU1NQYWdlUnVsZS5pZGwgXAogICAgIGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5pZGwgXAog
ICAgIGNzcy9DU1NSdWxlLmlkbCBcCiAgICAgY3NzL0NTU1J1bGVMaXN0LmlkbCBcCiAgICAgY3Nz
L0NTU1N0eWxlRGVjbGFyYXRpb24uaWRsIFwKKyAgICBjc3MvQ1NTU3R5bGVSdWxlLmlkbCBcCiAg
ICAgY3NzL0NTU1ZhbHVlLmlkbCBcCiAgICAgY3NzL0NTU1ZhbHVlTGlzdC5pZGwgXAogICAgIGNz
cy9NZWRpYUxpc3QuaWRsIFwKQEAgLTI2OCw2ICsyNzQsNyBAQCBJRExfQklORElOR1MgKz0gXAog
CiBTT1VSQ0VTICs9IFwKICAgICBiaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
REN1c3RvbS5jcHAgXAorICAgIGJpbmRpbmdzL2pzL0pTQ1NTUnVsZUN1c3RvbS5jcHAgXAogICAg
IGJpbmRpbmdzL2pzL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAgXAogICAgIGJpbmRp
bmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBcCiAgICAgYmluZGluZ3MvanMvSlNE
b2N1bWVudEN1c3RvbS5jcHAgXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHJldmlzaW9uIDIxODk0KQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTI3NjcsNiArMjc2NywxOSBAQAog
CQlCQzNDMzlCNjBDMEQzRDhEMDA1RjREN0EgLyogSlNNZWRpYUxpc3QuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMzQzM5QjQwQzBEM0Q4RDAwNUY0
RDdBIC8qIEpTTWVkaWFMaXN0LmNwcCAqLzsgfTsKIAkJQkMzQzM5QjcwQzBEM0Q4RDAwNUY0RDdB
IC8qIEpTTWVkaWFMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzNDMzlCNTBDMEQzRDhEMDA1RjREN0EgLyogSlNNZWRpYUxpc3QuaCAqLzsgfTsK
IAkJQkMzRkNBQTkwQUMzREI1ODAwQkE1NEFEIC8qIFBsYXRmb3JtU2Nyb2xsQmFyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzNGQ0FBODBBQzNEQjU4
MDBCQTU0QUQgLyogUGxhdGZvcm1TY3JvbGxCYXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9ICgpOyB9OyB9OworCQlCQzQ2QzFFRTBDMEREQkRGMDAyMENGQzMgLyogSlNDU1NSdWxlQ3Vz
dG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
NDZDMUVEMEMwRERCREYwMDIwQ0ZDMyAvKiBKU0NTU1J1bGVDdXN0b20uY3BwICovOyB9OworCQlC
QzQ2QzFGQTBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NDaGFyc2V0UnVsZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzQ2QzFGMDBDMEREQzhGMDAy
MENGQzMgLyogSlNDU1NDaGFyc2V0UnVsZS5jcHAgKi87IH07CisJCUJDNDZDMUZCMEMwRERDOEYw
MDIwQ0ZDMyAvKiBKU0NTU0NoYXJzZXRSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzQ2QzFGMTBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NDaGFy
c2V0UnVsZS5oICovOyB9OworCQlCQzQ2QzFGQzBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NGb250
RmFjZVJ1bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkM0NkMxRjIwQzBEREM4RjAwMjBDRkMzIC8qIEpTQ1NTRm9udEZhY2VSdWxlLmNwcCAqLzsg
fTsKKwkJQkM0NkMxRkQwQzBEREM4RjAwMjBDRkMzIC8qIEpTQ1NTRm9udEZhY2VSdWxlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzQ2QzFGMzBDMERE
QzhGMDAyMENGQzMgLyogSlNDU1NGb250RmFjZVJ1bGUuaCAqLzsgfTsKKwkJQkM0NkMxRkUwQzBE
REM4RjAwMjBDRkMzIC8qIEpTQ1NTSW1wb3J0UnVsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzQ2QzFGNDBDMEREQzhGMDAyMENGQzMgLyogSlND
U1NJbXBvcnRSdWxlLmNwcCAqLzsgfTsKKwkJQkM0NkMxRkYwQzBEREM4RjAwMjBDRkMzIC8qIEpT
Q1NTSW1wb3J0UnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkM0NkMxRjUwQzBEREM4RjAwMjBDRkMzIC8qIEpTQ1NTSW1wb3J0UnVsZS5oICovOyB9
OworCQlCQzQ2QzIwMDBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NNZWRpYVJ1bGUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0NkMxRjYwQzBEREM4
RjAwMjBDRkMzIC8qIEpTQ1NTTWVkaWFSdWxlLmNwcCAqLzsgfTsKKwkJQkM0NkMyMDEwQzBEREM4
RjAwMjBDRkMzIC8qIEpTQ1NTTWVkaWFSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzQ2QzFGNzBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NNZWRp
YVJ1bGUuaCAqLzsgfTsKKwkJQkM0NkMyMDIwQzBEREM4RjAwMjBDRkMzIC8qIEpTQ1NTUGFnZVJ1
bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0
NkMxRjgwQzBEREM4RjAwMjBDRkMzIC8qIEpTQ1NTUGFnZVJ1bGUuY3BwICovOyB9OworCQlCQzQ2
QzIwMzBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NQYWdlUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0NkMxRjkwQzBEREM4RjAwMjBDRkMzIC8q
IEpTQ1NTUGFnZVJ1bGUuaCAqLzsgfTsKKwkJQkM0NkMyMDYwQzBERENBMTAwMjBDRkMzIC8qIEpT
Q1NTU3R5bGVSdWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDNDZDMjA0MEMwRERDQTEwMDIwQ0ZDMyAvKiBKU0NTU1N0eWxlUnVsZS5jcHAgKi87
IH07CisJCUJDNDZDMjA3MEMwRERDQTEwMDIwQ0ZDMyAvKiBKU0NTU1N0eWxlUnVsZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0NkMyMDUwQzBERENB
MTAwMjBDRkMzIC8qIEpTQ1NTU3R5bGVSdWxlLmggKi87IH07CiAJCUJDNDkxOEM2MEJGRUEwNTAw
MDlENjMxNiAvKiBKU0hUTUxGcmFtZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0OTE4QzAwQkZFQTA1MDAwOUQ2MzE2IC8qIEpTSFRN
TEZyYW1lRWxlbWVudC5jcHAgKi87IH07CiAJCUJDNDkxOEM3MEJGRUEwNTAwMDlENjMxNiAvKiBK
U0hUTUxGcmFtZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDNDkxOEMxMEJGRUEwNTAwMDlENjMxNiAvKiBKU0hUTUxGcmFtZUVsZW1lbnQu
aCAqLzsgfTsKIAkJQkM0OTE4QzgwQkZFQTA1MDAwOUQ2MzE2IC8qIEpTSFRNTElGcmFtZUVsZW1l
bnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0
OTE4QzIwQkZFQTA1MDAwOUQ2MzE2IC8qIEpTSFRNTElGcmFtZUVsZW1lbnQuY3BwICovOyB9OwpA
QCAtNjAyNyw2ICs2MDQwLDE5IEBACiAJCUJDM0MzOUI0MEMwRDNEOEQwMDVGNEQ3QSAvKiBKU01l
ZGlhTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZWRp
YUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzNDMzlCNTBDMEQzRDhE
MDA1RjREN0EgLyogSlNNZWRpYUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTTWVkaWFMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDM0ZDQUE4
MEFDM0RCNTgwMEJBNTRBRCAvKiBQbGF0Zm9ybVNjcm9sbEJhci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1TY3JvbGxCYXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQkM0NkMxRUQwQzBEREJERjAwMjBDRkMzIC8qIEpTQ1NTUnVsZUN1c3RvbS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDU1NSdWxlQ3VzdG9t
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM0NkMxRjAwQzBEREM4RjAwMjBD
RkMzIC8qIEpTQ1NTQ2hhcnNldFJ1bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTQ1NTQ2hhcnNldFJ1bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlCQzQ2QzFGMTBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NDaGFyc2V0UnVsZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDU1NDaGFyc2V0UnVsZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlCQzQ2QzFGMjBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NG
b250RmFjZVJ1bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
Q1NTRm9udEZhY2VSdWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM0NkMx
RjMwQzBEREM4RjAwMjBDRkMzIC8qIEpTQ1NTRm9udEZhY2VSdWxlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0NTU0ZvbnRGYWNlUnVsZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlCQzQ2QzFGNDBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NJbXBvcnRSdWxl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NTU0ltcG9ydFJ1
bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzQ2QzFGNTBDMEREQzhGMDAy
MENGQzMgLyogSlNDU1NJbXBvcnRSdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU0NTU0ltcG9ydFJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM0
NkMxRjYwQzBEREM4RjAwMjBDRkMzIC8qIEpTQ1NTTWVkaWFSdWxlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NTU01lZGlhUnVsZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUJDNDZDMUY3MEMwRERDOEYwMDIwQ0ZDMyAvKiBKU0NTU01lZGlh
UnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDU1NNZWRpYVJ1bGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM0NkMxRjgwQzBEREM4RjAwMjBDRkMz
IC8qIEpTQ1NTUGFnZVJ1bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTQ1NTUGFnZVJ1bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzQ2
QzFGOTBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NQYWdlUnVsZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNDU1NQYWdlUnVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlCQzQ2QzIwNDBDMEREQ0ExMDAyMENGQzMgLyogSlNDU1NTdHlsZVJ1bGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ1NTU3R5bGVSdWxlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM0NkMyMDUwQzBERENBMTAwMjBDRkMzIC8q
IEpTQ1NTU3R5bGVSdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NT
U1N0eWxlUnVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzQ5MThDMDBCRkVB
MDUwMDA5RDYzMTYgLyogSlNIVE1MRnJhbWVFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxGcmFtZUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCQzQ5MThDMTBCRkVBMDUwMDA5RDYzMTYgLyogSlNIVE1MRnJhbWVF
bGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0hUTUxGcmFtZUVs
ZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM0OTE4QzIwQkZFQTA1MDAw
OUQ2MzE2IC8qIEpTSFRNTElGcmFtZUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTSFRNTElGcmFtZUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNjQxOCw2ICs2NDQ0LDE2IEBACiAJCQkJOTNGOUI2REYwQkEwRkI3MjAw
ODU0MDY0IC8qIEpTQ29tbWVudC5oICovLAogCQkJCTkzMDcwNUQ3MDlFMEM5QjcwMEIxN0ZFNCAv
KiBKU0NvdW50ZXIuY3BwICovLAogCQkJCTkzMDcwNUQ5MDlFMEM5QkYwMEIxN0ZFNCAvKiBKU0Nv
dW50ZXIuaCAqLywKKwkJCQlCQzQ2QzFGMDBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NDaGFyc2V0
UnVsZS5jcHAgKi8sCisJCQkJQkM0NkMxRjEwQzBEREM4RjAwMjBDRkMzIC8qIEpTQ1NTQ2hhcnNl
dFJ1bGUuaCAqLywKKwkJCQlCQzQ2QzFGMjBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NGb250RmFj
ZVJ1bGUuY3BwICovLAorCQkJCUJDNDZDMUYzMEMwRERDOEYwMDIwQ0ZDMyAvKiBKU0NTU0ZvbnRG
YWNlUnVsZS5oICovLAorCQkJCUJDNDZDMUY0MEMwRERDOEYwMDIwQ0ZDMyAvKiBKU0NTU0ltcG9y
dFJ1bGUuY3BwICovLAorCQkJCUJDNDZDMUY1MEMwRERDOEYwMDIwQ0ZDMyAvKiBKU0NTU0ltcG9y
dFJ1bGUuaCAqLywKKwkJCQlCQzQ2QzFGNjBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NNZWRpYVJ1
bGUuY3BwICovLAorCQkJCUJDNDZDMUY3MEMwRERDOEYwMDIwQ0ZDMyAvKiBKU0NTU01lZGlhUnVs
ZS5oICovLAorCQkJCUJDNDZDMUY4MEMwRERDOEYwMDIwQ0ZDMyAvKiBKU0NTU1BhZ2VSdWxlLmNw
cCAqLywKKwkJCQlCQzQ2QzFGOTBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NQYWdlUnVsZS5oICov
LAogCQkJCTkzMDcwNUU4MDlFMEM5RjAwMEIxN0ZFNCAvKiBKU0NTU1ByaW1pdGl2ZVZhbHVlLmNw
cCAqLywKIAkJCQk5MzA3MDVFQTA5RTBDOUY2MDBCMTdGRTQgLyogSlNDU1NQcmltaXRpdmVWYWx1
ZS5oICovLAogCQkJCTE0Q0Y3QjMxMDlGNkVDRDcwMEVCMzY2NSAvKiBKU0NTU1J1bGUuY3BwICov
LApAQCAtNjQyNiw2ICs2NDYyLDggQEAKIAkJCQlBOEQwNUZBNjBBMjNCMzAxMDA1RTcyMDMgLyog
SlNDU1NSdWxlTGlzdC5oICovLAogCQkJCTE0MjAxMUI0MEEwMDMxMzMwMDgzMDNGOSAvKiBKU0NT
U1N0eWxlRGVjbGFyYXRpb24uY3BwICovLAogCQkJCTE0MjAxMUI1MEEwMDMxMzMwMDgzMDNGOSAv
KiBKU0NTU1N0eWxlRGVjbGFyYXRpb24uaCAqLywKKwkJCQlCQzQ2QzIwNDBDMEREQ0ExMDAyMENG
QzMgLyogSlNDU1NTdHlsZVJ1bGUuY3BwICovLAorCQkJCUJDNDZDMjA1MEMwRERDQTEwMDIwQ0ZD
MyAvKiBKU0NTU1N0eWxlUnVsZS5oICovLAogCQkJCTE0Q0Y3OEEzMDlGNThDQkYwMEVCMzY2NSAv
KiBKU0NTU1ZhbHVlLmNwcCAqLywKIAkJCQkxNENGNzhBNTA5RjU4Q0Q4MDBFQjM2NjUgLyogSlND
U1NWYWx1ZS5oICovLAogCQkJCUE4RDA1RkE5MEEyM0IzMEYwMDVFNzIwMyAvKiBKU0NTU1ZhbHVl
TGlzdC5jcHAgKi8sCkBAIC05MTk3LDYgKzkyMzUsNyBAQAogCQlCQzRFREVGNzBDMDhGNDE0MDA3
RURENDkgLyogQ3VzdG9tICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKKwkJCQlCQzQ2QzFFRDBDMEREQkRGMDAyMENGQzMgLyogSlNDU1NSdWxlQ3VzdG9tLmNwcCAq
LywKIAkJCQkxQTlFRjQ1NjBBMUI5NTdEMDAzMzJCNjMgLyogSlNDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkRDdXN0b20uY3BwICovLAogCQkJCUJDNTgyNUYyMEMwQjg5MzgwMDUzRjFCNSAvKiBKU0NT
U1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwICovLAogCQkJCTkyOTI2NDc2MEI2MUZDNzIwMEI0
MUQzNCAvKiBKU0RvY3VtZW50Q3VzdG9tLmNwcCAqLywKQEAgLTExNDQ0LDYgKzExNDgzLDEyIEBA
CiAJCQkJQkM2RDQ0RUQwQzA3RjJFRDAwNzJEMkM5IC8qIEpTSFRNTEVtYmVkRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkNFMDEzOUIwQzBCRUYxODAwNDM4NjBBIC8qIEpTU3R5bGVTaGVl
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMzQzM5QjcwQzBEM0Q4RDAwNUY0RDdBIC8qIEpTTWVk
aWFMaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzQ2QzFGQjBDMEREQzhGMDAyMENGQzMgLyog
SlNDU1NDaGFyc2V0UnVsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM0NkMxRkQwQzBEREM4RjAw
MjBDRkMzIC8qIEpTQ1NTRm9udEZhY2VSdWxlLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzQ2QzFG
RjBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NJbXBvcnRSdWxlLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlCQzQ2QzIwMTBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NNZWRpYVJ1bGUuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUJDNDZDMjAzMEMwRERDOEYwMDIwQ0ZDMyAvKiBKU0NTU1BhZ2VSdWxlLmggaW4g
SGVhZGVycyAqLywKKwkJCQlCQzQ2QzIwNzBDMEREQ0ExMDAyMENGQzMgLyogSlNDU1NTdHlsZVJ1
bGUuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMTI4NDcsNiArMTI4OTIsMTMgQEAKIAkJCQlCQ0UwMTM5
QTBDMEJFRjE4MDA0Mzg2MEEgLyogSlNTdHlsZVNoZWV0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUJDOThBMjdEMEMwQzk5NTAwMDRCRUJGNyAvKiBKU1N0eWxlU2hlZXRDdXN0b20uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkMzQzM5QjYwQzBEM0Q4RDAwNUY0RDdBIC8qIEpTTWVkaWFMaXN0LmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUJDNDZDMUVFMEMwRERCREYwMDIwQ0ZDMyAvKiBKU0NTU1J1
bGVDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkM0NkMxRkEwQzBEREM4RjAwMjBDRkMz
IC8qIEpTQ1NTQ2hhcnNldFJ1bGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkM0NkMxRkMwQzBE
REM4RjAwMjBDRkMzIC8qIEpTQ1NTRm9udEZhY2VSdWxlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUJDNDZDMUZFMEMwRERDOEYwMDIwQ0ZDMyAvKiBKU0NTU0ltcG9ydFJ1bGUuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJQkM0NkMyMDAwQzBEREM4RjAwMjBDRkMzIC8qIEpTQ1NTTWVkaWFSdWxlLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUJDNDZDMjAyMEMwRERDOEYwMDIwQ0ZDMyAvKiBKU0NTU1Bh
Z2VSdWxlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDNDZDMjA2MEMwRERDQTEwMDIwQ0ZDMyAv
KiBKU0NTU1N0eWxlUnVsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFdlYkNvcmUvYmluZGlu
Z3MvanMvSlNDU1NSdWxlQ3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ1NTUnVsZUN1c3RvbS5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ1NTUnVsZUN1c3RvbS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODUgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVU
RVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRF
UiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNDU1NSdWxlLmgiCisKKyNp
bmNsdWRlICJDU1NDaGFyc2V0UnVsZS5oIgorI2luY2x1ZGUgIkNTU0ZvbnRGYWNlUnVsZS5oIgor
I2luY2x1ZGUgIkNTU0ltcG9ydFJ1bGUuaCIKKyNpbmNsdWRlICJDU1NNZWRpYVJ1bGUuaCIKKyNp
bmNsdWRlICJDU1NQYWdlUnVsZS5oIgorI2luY2x1ZGUgIkNTU1J1bGUuaCIKKyNpbmNsdWRlICJD
U1NTdHlsZVJ1bGUuaCIKKyNpbmNsdWRlICJKU0NTU0NoYXJzZXRSdWxlLmgiCisjaW5jbHVkZSAi
SlNDU1NGb250RmFjZVJ1bGUuaCIKKyNpbmNsdWRlICJKU0NTU0ltcG9ydFJ1bGUuaCIKKyNpbmNs
dWRlICJKU0NTU01lZGlhUnVsZS5oIgorI2luY2x1ZGUgIkpTQ1NTUGFnZVJ1bGUuaCIKKyNpbmNs
dWRlICJKU0NTU1N0eWxlUnVsZS5oIgorI2luY2x1ZGUgImtqc19iaW5kaW5nLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworS0pTOjpKU1ZhbHVlKiB0b0pTKEtKUzo6RXhlY1N0YXRlKiBleGVj
LCBDU1NSdWxlKiBydWxlKQoreworICAgIGlmICghcnVsZSkKKyAgICAgICAgcmV0dXJuIEtKUzo6
anNOdWxsKCk7CisKKyAgICBLSlM6OlNjcmlwdEludGVycHJldGVyKiBpbnRlcnAgPSBzdGF0aWNf
Y2FzdDxLSlM6OlNjcmlwdEludGVycHJldGVyKj4oZXhlYy0+ZHluYW1pY0ludGVycHJldGVyKCkp
OworICAgIEtKUzo6RE9NT2JqZWN0KiByZXQgPSBpbnRlcnAtPmdldERPTU9iamVjdChydWxlKTsK
KworICAgIGlmIChyZXQpCisgICAgICAgIHJldHVybiByZXQ7CisKKyAgICBzd2l0Y2ggKHJ1bGUt
PnR5cGUoKSkgeworICAgICAgICBjYXNlIENTU1J1bGU6OlNUWUxFX1JVTEU6CisgICAgICAgICAg
ICByZXQgPSBuZXcgSlNDU1NTdHlsZVJ1bGUoZXhlYywgc3RhdGljX2Nhc3Q8Q1NTU3R5bGVSdWxl
Kj4ocnVsZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6TUVE
SUFfUlVMRToKKyAgICAgICAgICAgIHJldCA9IG5ldyBKU0NTU01lZGlhUnVsZShleGVjLCBzdGF0
aWNfY2FzdDxDU1NNZWRpYVJ1bGUqPihydWxlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBDU1NSdWxlOjpGT05UX0ZBQ0VfUlVMRToKKyAgICAgICAgICAgIHJldCA9IG5ldyBK
U0NTU0ZvbnRGYWNlUnVsZShleGVjLCBzdGF0aWNfY2FzdDxDU1NGb250RmFjZVJ1bGUqPihydWxl
KSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpQQUdFX1JVTEU6
CisgICAgICAgICAgICByZXQgPSBuZXcgSlNDU1NQYWdlUnVsZShleGVjLCBzdGF0aWNfY2FzdDxD
U1NQYWdlUnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENT
U1J1bGU6OklNUE9SVF9SVUxFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEpTQ1NTSW1wb3J0UnVs
ZShleGVjLCBzdGF0aWNfY2FzdDxDU1NJbXBvcnRSdWxlKj4ocnVsZSkpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6Q0hBUlNFVF9SVUxFOgorICAgICAgICAgICAg
cmV0ID0gbmV3IEpTQ1NTQ2hhcnNldFJ1bGUoZXhlYywgc3RhdGljX2Nhc3Q8Q1NTQ2hhcnNldFJ1
bGUqPihydWxlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIHJldCA9IG5ldyBKU0NTU1J1bGUoZXhlYywgcnVsZSk7CisgICAgICAgICAgICBicmVh
azsKKyAgICB9CisKKyAgICBpbnRlcnAtPnB1dERPTU9iamVjdChydWxlLCByZXQpOworICAgIHJl
dHVybiByZXQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvYmlu
ZGluZ3MvanMva2pzX2Nzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9r
anNfY3NzLmNwcAkocmV2aXNpb24gMjE4OTQpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19j
c3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSwxNCArMjUsOCBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgImtqc19jc3MuaCIKIAotI2luY2x1ZGUgIkNTU0NoYXJzZXRSdWxlLmgi
Ci0jaW5jbHVkZSAiQ1NTRm9udEZhY2VSdWxlLmgiCi0jaW5jbHVkZSAiQ1NTSW1wb3J0UnVsZS5o
IgotI2luY2x1ZGUgIkNTU01lZGlhUnVsZS5oIgotI2luY2x1ZGUgIkNTU1BhZ2VSdWxlLmgiCiAj
aW5jbHVkZSAiQ1NTUnVsZS5oIgogI2luY2x1ZGUgIkNTU1J1bGVMaXN0LmgiCi0jaW5jbHVkZSAi
Q1NTU3R5bGVSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVMaXN0LmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKQEAgLTQyLDkgKzM2LDcgQEAKICNpbmNs
dWRlICJKU0NTU1J1bGVMaXN0LmgiCiAjaW5jbHVkZSAiSlNDU1NTdHlsZURlY2xhcmF0aW9uLmgi
CiAjaW5jbHVkZSAiSlNDU1NWYWx1ZUxpc3QuaCIKLSNpbmNsdWRlICJKU01lZGlhTGlzdC5oIgog
I2luY2x1ZGUgIkpTU3R5bGVTaGVldC5oIgotI2luY2x1ZGUgIk1lZGlhTGlzdC5oIgogI2luY2x1
ZGUgIlN0eWxlU2hlZXRMaXN0LmgiCiAjaW5jbHVkZSAia2pzX2RvbS5oIgogCkBAIC0yNTcsMjI4
ICsyNDksNiBAQCBKU1ZhbHVlKiBET01DU1NTdHlsZVNoZWV0UHJvdG90eXBlRnVuY3RpCiAKIC8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KIAotS0pTX0lNUExFTUVOVF9QUk9UT1RZUEVfRlVOQ1RJT04oRE9N
Q1NTUnVsZUZ1bmMpIC8vIE5vdCBhIHByb3RvdHlwZSwgYnV0IGRvZXNuJ3QgbWF0dGVyCi0KLURP
TUNTU1J1bGU6OkRPTUNTU1J1bGUoRXhlY1N0YXRlKiBleGVjLCBDU1NSdWxlKiByKQotICA6IG1f
aW1wbChyKSAKLXsKLX0KLQotRE9NQ1NTUnVsZTo6fkRPTUNTU1J1bGUoKQotewotICBTY3JpcHRJ
bnRlcnByZXRlcjo6Zm9yZ2V0RE9NT2JqZWN0KG1faW1wbC5nZXQoKSk7Ci19Ci0KLWNvbnN0IENs
YXNzSW5mbyBET01DU1NSdWxlOjppbmZvID0geyAiQ1NTUnVsZSIsIDAsICZET01DU1NSdWxlVGFi
bGUsIDAgfTsKLWNvbnN0IENsYXNzSW5mbyBET01DU1NSdWxlOjpzdHlsZV9pbmZvID0geyAiQ1NT
U3R5bGVSdWxlIiwgJkRPTUNTU1J1bGU6OmluZm8sICZET01DU1NTdHlsZVJ1bGVUYWJsZSwgMCB9
OwotY29uc3QgQ2xhc3NJbmZvIERPTUNTU1J1bGU6Om1lZGlhX2luZm8gPSB7ICJDU1NNZWRpYVJ1
bGUiLCAmRE9NQ1NTUnVsZTo6aW5mbywgJkRPTUNTU01lZGlhUnVsZVRhYmxlLCAwIH07Ci1jb25z
dCBDbGFzc0luZm8gRE9NQ1NTUnVsZTo6Zm9udGZhY2VfaW5mbyA9IHsgIkNTU0ZvbnRGYWNlUnVs
ZSIsICZET01DU1NSdWxlOjppbmZvLCAmRE9NQ1NTRm9udEZhY2VSdWxlVGFibGUsIDAgfTsKLWNv
bnN0IENsYXNzSW5mbyBET01DU1NSdWxlOjpwYWdlX2luZm8gPSB7ICJDU1NQYWdlUnVsZSIsICZE
T01DU1NSdWxlOjppbmZvLCAmRE9NQ1NTUGFnZVJ1bGVUYWJsZSwgMCB9OwotY29uc3QgQ2xhc3NJ
bmZvIERPTUNTU1J1bGU6OmltcG9ydF9pbmZvID0geyAiQ1NTSW1wb3J0UnVsZSIsICZET01DU1NS
dWxlOjppbmZvLCAmRE9NQ1NTSW1wb3J0UnVsZVRhYmxlLCAwIH07Ci1jb25zdCBDbGFzc0luZm8g
RE9NQ1NTUnVsZTo6Y2hhcnNldF9pbmZvID0geyAiQ1NTQ2hhcnNldFJ1bGUiLCAmRE9NQ1NTUnVs
ZTo6aW5mbywgJkRPTUNTU0NoYXJzZXRSdWxlVGFibGUsIDAgfTsKLQotY29uc3QgQ2xhc3NJbmZv
KiBET01DU1NSdWxlOjpjbGFzc0luZm8oKSBjb25zdAotewotICBDU1NSdWxlJiBjc3NSdWxlID0g
Km1faW1wbDsKLSAgc3dpdGNoIChjc3NSdWxlLnR5cGUoKSkgewotICBjYXNlIENTU1J1bGU6OlNU
WUxFX1JVTEU6Ci0gICAgcmV0dXJuICZzdHlsZV9pbmZvOwotICBjYXNlIENTU1J1bGU6Ok1FRElB
X1JVTEU6Ci0gICAgcmV0dXJuICZtZWRpYV9pbmZvOwotICBjYXNlIENTU1J1bGU6OkZPTlRfRkFD
RV9SVUxFOgotICAgIHJldHVybiAmZm9udGZhY2VfaW5mbzsKLSAgY2FzZSBDU1NSdWxlOjpQQUdF
X1JVTEU6Ci0gICAgcmV0dXJuICZwYWdlX2luZm87Ci0gIGNhc2UgQ1NTUnVsZTo6SU1QT1JUX1JV
TEU6Ci0gICAgcmV0dXJuICZpbXBvcnRfaW5mbzsKLSAgY2FzZSBDU1NSdWxlOjpDSEFSU0VUX1JV
TEU6Ci0gICAgcmV0dXJuICZjaGFyc2V0X2luZm87Ci0gIGNhc2UgQ1NTUnVsZTo6VU5LTk9XTl9S
VUxFOgotICBkZWZhdWx0OgotICAgIHJldHVybiAmaW5mbzsKLSAgfQotfQotLyoKLUBiZWdpbiBE
T01DU1NSdWxlVGFibGUgNAotICB0eXBlICAgICAgICAgICAgICAgICAgRE9NQ1NTUnVsZTo6VHlw
ZSAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotICBjc3NUZXh0ICAgICAgICAgICAgICAgRE9N
Q1NTUnVsZTo6Q3NzVGV4dCAgICAgRG9udERlbGV0ZXxSZWFkT25seQotICBwYXJlbnRTdHlsZVNo
ZWV0ICAgICAgRE9NQ1NTUnVsZTo6UGFyZW50U3R5bGVTaGVldCAgICBEb250RGVsZXRlfFJlYWRP
bmx5Ci0gIHBhcmVudFJ1bGUgICAgICAgICAgICBET01DU1NSdWxlOjpQYXJlbnRSdWxlICBEb250
RGVsZXRlfFJlYWRPbmx5Ci1AZW5kCi1AYmVnaW4gRE9NQ1NTU3R5bGVSdWxlVGFibGUgMgotICBz
ZWxlY3RvclRleHQgICAgICAgICAgRE9NQ1NTUnVsZTo6U3R5bGVfU2VsZWN0b3JUZXh0ICBEb250
RGVsZXRlCi0gIHN0eWxlICAgICAgICAgICAgICAgICBET01DU1NSdWxlOjpTdHlsZV9TdHlsZSAg
ICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLUBlbmQKLUBiZWdpbiBET01DU1NNZWRpYVJ1bGVU
YWJsZSA0Ci0gIG1lZGlhICAgICAgICAgICAgICAgICBET01DU1NSdWxlOjpNZWRpYV9NZWRpYSAg
ICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgY3NzUnVsZXMgICAgICAgICAgICAgIERPTUNT
U1J1bGU6Ok1lZGlhX0Nzc1J1bGVzICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotICBpbnNlcnRS
dWxlICAgICAgICAgICAgRE9NQ1NTUnVsZTo6TWVkaWFfSW5zZXJ0UnVsZSAgICBEb250RGVsZXRl
fEZ1bmN0aW9uIDIKLSAgZGVsZXRlUnVsZSAgICAgICAgICAgIERPTUNTU1J1bGU6Ok1lZGlhX0Rl
bGV0ZVJ1bGUgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAxCi1AZW5kCi1AYmVnaW4gRE9NQ1NTRm9u
dEZhY2VSdWxlVGFibGUgMQotICBzdHlsZSAgICAgICAgICAgICAgICAgRE9NQ1NTUnVsZTo6Rm9u
dEZhY2VfU3R5bGUgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci1AZW5kCi1AYmVnaW4gRE9NQ1NT
UGFnZVJ1bGVUYWJsZSAyCi0gIHNlbGVjdG9yVGV4dCAgICAgICAgICBET01DU1NSdWxlOjpQYWdl
X1NlbGVjdG9yVGV4dCAgIERvbnREZWxldGUKLSAgc3R5bGUgICAgICAgICAgICAgICAgIERPTUNT
U1J1bGU6OlBhZ2VfU3R5bGUgICAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotQGVuZAotQGJl
Z2luIERPTUNTU0ltcG9ydFJ1bGVUYWJsZSAzCi0gIGhyZWYgICAgICAgICAgICAgICAgICBET01D
U1NSdWxlOjpJbXBvcnRfSHJlZiAgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgbWVkaWEg
ICAgICAgICAgICAgICAgIERPTUNTU1J1bGU6OkltcG9ydF9NZWRpYSAgICAgICAgRG9udERlbGV0
ZXxSZWFkT25seQotICBzdHlsZVNoZWV0ICAgICAgICAgICAgRE9NQ1NTUnVsZTo6SW1wb3J0X1N0
eWxlU2hlZXQgICBEb250RGVsZXRlfFJlYWRPbmx5Ci1AZW5kCi1AYmVnaW4gRE9NQ1NTQ2hhcnNl
dFJ1bGVUYWJsZSAxCi0gIGVuY29kaW5nICAgICAgICAgICAgICBET01DU1NSdWxlOjpDaGFyc2V0
X0VuY29kaW5nICAgIERvbnREZWxldGUKLUBlbmQKLSovCi1ib29sIERPTUNTU1J1bGU6OmdldE93
blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQotewotICAvLyBmaXJzdCB0cnkgdGhlIHByb3BlcnRp
ZXMgc3BlY2lmaWMgdG8gdGhpcyBydWxlIHR5cGUKLSAgY29uc3QgSGFzaFRhYmxlKiB0YWJsZSA9
IERPTUNTU1J1bGU6OmNsYXNzSW5mbygpLT5wcm9wSGFzaFRhYmxlOwotICBpZiAodGFibGUpIHsK
LSAgICBjb25zdCBIYXNoRW50cnkqIGVudHJ5ID0gTG9va3VwOjpmaW5kRW50cnkodGFibGUsIHBy
b3BlcnR5TmFtZSk7Ci0gICAgaWYgKGVudHJ5KSB7Ci0gICAgICAvLyBGSVhNRTogZm9yIG5vdyB3
ZSBzaW5nbGUgb3V0IHRoZSBtZWRpYSBydWxlIGZ1bmN0aW9ucy4KLSAgICAgIC8vIFRoaXMgaXMg
YSB0ZW1wb3JhcnkgaGFjayBzaW5jZSB3ZSBzaG91bGQgdHJ5IHRvIGdlbmVyYXRlCi0gICAgICAv
LyB0aGVtLiBTZWUgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4OTgK
LSAgICAgIGlmIChlbnRyeS0+YXR0ciAmIEZ1bmN0aW9uKQotICAgICAgICByZXR1cm4gZ2V0U3Rh
dGljUHJvcGVydHlTbG90PERPTUNTU1J1bGVGdW5jLCBET01DU1NSdWxlLCBET01PYmplY3Q+KGV4
ZWMsICZET01DU1NNZWRpYVJ1bGVUYWJsZSwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTsKLSAg
ICAgIHNsb3Quc2V0U3RhdGljRW50cnkodGhpcywgZW50cnksIHN0YXRpY1ZhbHVlR2V0dGVyPERP
TUNTU1J1bGU+KTsKLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgfQotCi0gIC8vIG5vdyB0
aGUgc3R1ZmYgdGhhdCBhcHBsaWVzIHRvIGFsbCBydWxlcwotICByZXR1cm4gZ2V0U3RhdGljUHJv
cGVydHlTbG90PERPTUNTU1J1bGVGdW5jLCBET01DU1NSdWxlLCBET01PYmplY3Q+KGV4ZWMsICZE
T01DU1NSdWxlVGFibGUsIHRoaXMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Ci19Ci0KLUpTVmFsdWUq
IERPTUNTU1J1bGU6OmdldFZhbHVlUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBpbnQgdG9rZW4p
IGNvbnN0Ci17Ci0gIENTU1J1bGUgJmNzc1J1bGUgPSAqbV9pbXBsOwotICBzd2l0Y2ggKHRva2Vu
KSB7Ci0gIGNhc2UgVHlwZToKLSAgICByZXR1cm4ganNOdW1iZXIoY3NzUnVsZS50eXBlKCkpOwot
ICBjYXNlIENzc1RleHQ6Ci0gICAgcmV0dXJuIGpzU3RyaW5nT3JOdWxsKGNzc1J1bGUuY3NzVGV4
dCgpKTsKLSAgY2FzZSBQYXJlbnRTdHlsZVNoZWV0OgotICAgIHJldHVybiB0b0pTKGV4ZWMsY3Nz
UnVsZS5wYXJlbnRTdHlsZVNoZWV0KCkpOwotICBjYXNlIFBhcmVudFJ1bGU6Ci0gICAgcmV0dXJu
IHRvSlMoZXhlYyxjc3NSdWxlLnBhcmVudFJ1bGUoKSk7Ci0KLSAgLy8gZm9yIFNUWUxFX1JVTEU6
Ci0gIGNhc2UgU3R5bGVfU2VsZWN0b3JUZXh0OgotICAgIHJldHVybiBqc1N0cmluZ09yTnVsbChz
dGF0aWNfY2FzdDxDU1NTdHlsZVJ1bGUqPihtX2ltcGwuZ2V0KCkpLT5zZWxlY3RvclRleHQoKSk7
Ci0gIGNhc2UgU3R5bGVfU3R5bGU6Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywgc3RhdGljX2Nhc3Q8
Q1NTU3R5bGVSdWxlKj4obV9pbXBsLmdldCgpKS0+c3R5bGUoKSk7Ci0KLSAgLy8gZm9yIE1FRElB
X1JVTEU6Ci0gIGNhc2UgTWVkaWFfTWVkaWE6Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywgc3RhdGlj
X2Nhc3Q8Q1NTTWVkaWFSdWxlKj4obV9pbXBsLmdldCgpKS0+bWVkaWEoKSk7Ci0gIGNhc2UgTWVk
aWFfQ3NzUnVsZXM6Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywgc3RhdGljX2Nhc3Q8Q1NTTWVkaWFS
dWxlKj4obV9pbXBsLmdldCgpKS0+Y3NzUnVsZXMoKSk7Ci0KLSAgLy8gZm9yIEZPTlRfRkFDRV9S
VUxFOgotICBjYXNlIEZvbnRGYWNlX1N0eWxlOgotICAgIHJldHVybiB0b0pTKGV4ZWMsIHN0YXRp
Y19jYXN0PENTU0ZvbnRGYWNlUnVsZSo+KG1faW1wbC5nZXQoKSktPnN0eWxlKCkpOwotCi0gIC8v
IGZvciBQQUdFX1JVTEU6Ci0gIGNhc2UgUGFnZV9TZWxlY3RvclRleHQ6Ci0gICAgcmV0dXJuIGpz
U3RyaW5nT3JOdWxsKHN0YXRpY19jYXN0PENTU1BhZ2VSdWxlKj4obV9pbXBsLmdldCgpKS0+c2Vs
ZWN0b3JUZXh0KCkpOwotICBjYXNlIFBhZ2VfU3R5bGU6Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywg
c3RhdGljX2Nhc3Q8Q1NTUGFnZVJ1bGUqPihtX2ltcGwuZ2V0KCkpLT5zdHlsZSgpKTsKLQotICAv
LyBmb3IgSU1QT1JUX1JVTEU6Ci0gIGNhc2UgSW1wb3J0X0hyZWY6Ci0gICAgcmV0dXJuIGpzU3Ry
aW5nT3JOdWxsKHN0YXRpY19jYXN0PENTU0ltcG9ydFJ1bGUqPihtX2ltcGwuZ2V0KCkpLT5ocmVm
KCkpOwotICBjYXNlIEltcG9ydF9NZWRpYToKLSAgICByZXR1cm4gdG9KUyhleGVjLCBzdGF0aWNf
Y2FzdDxDU1NJbXBvcnRSdWxlKj4obV9pbXBsLmdldCgpKS0+bWVkaWEoKSk7Ci0gIGNhc2UgSW1w
b3J0X1N0eWxlU2hlZXQ6Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywgc3RhdGljX2Nhc3Q8Q1NTSW1w
b3J0UnVsZSo+KG1faW1wbC5nZXQoKSktPnN0eWxlU2hlZXQoKSk7Ci0KLSAgLy8gZm9yIENIQVJT
RVRfUlVMRToKLSAgY2FzZSBDaGFyc2V0X0VuY29kaW5nOgotICAgIHJldHVybiBqc1N0cmluZ09y
TnVsbChzdGF0aWNfY2FzdDxDU1NDaGFyc2V0UnVsZSo+KG1faW1wbC5nZXQoKSktPmVuY29kaW5n
KCkpOwotCi0gIGRlZmF1bHQ6Ci0gICAgQVNTRVJUKDApOwotICB9Ci0gIHJldHVybiBqc1VuZGVm
aW5lZCgpOwotfQotCi12b2lkIERPTUNTU1J1bGU6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXIgJnByb3BlcnR5TmFtZSwgSlNWYWx1ZSogdmFsdWUsIGludCBhdHRyKQotewot
ICBjb25zdCBIYXNoVGFibGUqIHRhYmxlID0gRE9NQ1NTUnVsZTo6Y2xhc3NJbmZvKCktPnByb3BI
YXNoVGFibGU7IC8vIGdldCB0aGUgcmlnaHQgaGFzaHRhYmxlCi0gIGlmICh0YWJsZSkgewotICAg
IGNvbnN0IEhhc2hFbnRyeSogZW50cnkgPSBMb29rdXA6OmZpbmRFbnRyeSh0YWJsZSwgcHJvcGVy
dHlOYW1lKTsKLSAgICBpZiAoZW50cnkpIHsKLSAgICAgIGlmIChlbnRyeS0+YXR0ciAmIEZ1bmN0
aW9uKSB7Ci0gICAgICAgIC8vIGZ1bmN0aW9uOiBwdXQgYXMgb3ZlcnJpZGUgcHJvcGVydHkKLSAg
ICAgICAgSlNPYmplY3Q6OnB1dChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBhdHRyKTsKLSAg
ICAgICAgcmV0dXJuOwotICAgICAgfSBlbHNlIGlmICgoZW50cnktPmF0dHIgJiBSZWFkT25seSkg
PT0gMCkgewotICAgICAgICAvLyBsZXQgbG9va3VwUHV0IHByaW50IHRoZSB3YXJuaW5nIGlmIG5v
dAotICAgICAgICBwdXRWYWx1ZVByb3BlcnR5KGV4ZWMsIGVudHJ5LT52YWx1ZSwgdmFsdWUsIGF0
dHIpOwotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0gICAgfQotICB9Ci0KLSAgbG9va3VwUHV0
PERPTUNTU1J1bGUsIERPTU9iamVjdD4oZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgYXR0ciwg
JkRPTUNTU1J1bGVUYWJsZSwgdGhpcyk7Ci19Ci0KLXZvaWQgRE9NQ1NTUnVsZTo6cHV0VmFsdWVQ
cm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIGludCB0b2tlbiwgSlNWYWx1ZSogdmFsdWUsIGludCkK
LXsKLSAgc3dpdGNoICh0b2tlbikgewotICAvLyBmb3IgU1RZTEVfUlVMRToKLSAgY2FzZSBTdHls
ZV9TZWxlY3RvclRleHQ6Ci0gICAgc3RhdGljX2Nhc3Q8Q1NTU3R5bGVSdWxlKj4obV9pbXBsLmdl
dCgpKS0+c2V0U2VsZWN0b3JUZXh0KHZhbHVlVG9TdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsIHZh
bHVlKSk7Ci0gICAgcmV0dXJuOwotCi0gIC8vIGZvciBQQUdFX1JVTEU6Ci0gIGNhc2UgUGFnZV9T
ZWxlY3RvclRleHQ6Ci0gICAgc3RhdGljX2Nhc3Q8Q1NTUGFnZVJ1bGUqPihtX2ltcGwuZ2V0KCkp
LT5zZXRTZWxlY3RvclRleHQodmFsdWVUb1N0cmluZ1dpdGhOdWxsQ2hlY2soZXhlYywgdmFsdWUp
KTsKLSAgICByZXR1cm47Ci0KLSAgLy8gZm9yIENIQVJTRVRfUlVMRToKLSAgY2FzZSBDaGFyc2V0
X0VuY29kaW5nOgotICAgIHN0YXRpY19jYXN0PENTU0NoYXJzZXRSdWxlKj4obV9pbXBsLmdldCgp
KS0+c2V0RW5jb2RpbmcodmFsdWVUb1N0cmluZ1dpdGhOdWxsQ2hlY2soZXhlYywgdmFsdWUpKTsK
LSAgICByZXR1cm47Ci0gIH0KLX0KLQotSlNWYWx1ZSogRE9NQ1NTUnVsZUZ1bmM6OmNhbGxBc0Z1
bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYmosIGNvbnN0IExpc3QgJmFy
Z3MpCi17Ci0gIGlmICghdGhpc09iai0+aW5oZXJpdHMoJktKUzo6RE9NQ1NTUnVsZTo6aW5mbykp
Ci0gICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9yKTsKLSAgQ1NTUnVsZSYgY3Nz
UnVsZSA9ICpzdGF0aWNfY2FzdDxET01DU1NSdWxlKj4odGhpc09iaiktPmltcGwoKTsKLQotICBp
ZiAoY3NzUnVsZS50eXBlKCkgPT0gQ1NTUnVsZTo6TUVESUFfUlVMRSkgewotICAgIENTU01lZGlh
UnVsZSYgcnVsZSA9IHN0YXRpY19jYXN0PENTU01lZGlhUnVsZSY+KGNzc1J1bGUpOwotICAgIHN3
aXRjaCAoaWQpIHsKLSAgICAgIGNhc2UgRE9NQ1NTUnVsZTo6TWVkaWFfSW5zZXJ0UnVsZTogewot
ICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICAgICAgSlNWYWx1ZSogcmVzdWx0ID0g
anNOdW1iZXIocnVsZS5pbnNlcnRSdWxlKGFyZ3NbMF0tPnRvU3RyaW5nKGV4ZWMpLCBhcmdzWzFd
LT50b0ludDMyKGV4ZWMpLCBlYykpOwotICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMp
OwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgfQotICAgICAgY2FzZSBET01DU1NSdWxl
OjpNZWRpYV9EZWxldGVSdWxlOiB7Ci0gICAgICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAg
ICAgICBydWxlLmRlbGV0ZVJ1bGUoYXJnc1swXS0+dG9JbnQzMihleGVjKSwgZWMpOwotICAgICAg
ICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwotICAgICAgfQotICAgIH0KLSAgfQotCi0gIHJl
dHVybiBqc1VuZGVmaW5lZCgpOwotfQotCi1KU1ZhbHVlKiB0b0pTKEV4ZWNTdGF0ZSogZXhlYywg
Q1NTUnVsZSAqcikKLXsKLSAgcmV0dXJuIGNhY2hlRE9NT2JqZWN0PENTU1J1bGUsIEpTQ1NTUnVs
ZT4oZXhlYywgcik7Ci19Ci0KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQogY29uc3QgQ2xhc3NJbmZv
IERPTUNTU1ZhbHVlOjppbmZvID0geyAiQ1NTVmFsdWUiLCAwLCAmRE9NQ1NTVmFsdWVUYWJsZSwg
MCB9OwogCiAvKgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfY3NzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfY3NzLmgJKHJldmlzaW9uIDIxODk0KQorKysg
V2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfY3NzLmgJKHdvcmtpbmcgY29weSkKQEAgLTgxLDI5ICs4
MSw2IEBAIG5hbWVzcGFjZSBLSlMgewogICAgIGVudW0geyBPd25lclJ1bGUsIENzc1J1bGVzLCBS
dWxlcywgSW5zZXJ0UnVsZSwgRGVsZXRlUnVsZSwgQWRkUnVsZSwgUmVtb3ZlUnVsZSB9OwogICB9
OwogCi0gIGNsYXNzIERPTUNTU1J1bGUgOiBwdWJsaWMgRE9NT2JqZWN0IHsKLSAgcHVibGljOgot
ICAgIHZpcnR1YWwgfkRPTUNTU1J1bGUoKTsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKLSAg
ICBKU1ZhbHVlKiBnZXRWYWx1ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGludCB0b2tlbikgY29uc3Q7
Ci0gICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUqLCBpbnQgYXR0ciA9IE5vbmUpOwotICAgIHZvaWQgcHV0VmFsdWVQ
cm9wZXJ0eShFeGVjU3RhdGUqLCBpbnQgdG9rZW4sIEpTVmFsdWUqLCBpbnQgYXR0cik7Ci0gICAg
dmlydHVhbCBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbygpIGNvbnN0OwotICAgIHN0YXRpYyBj
b25zdCBDbGFzc0luZm8gaW5mbzsKLSAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHN0eWxlX2lu
Zm8sIG1lZGlhX2luZm8sIGZvbnRmYWNlX2luZm8sIHBhZ2VfaW5mbywgaW1wb3J0X2luZm8sIGNo
YXJzZXRfaW5mbzsKLSAgICBlbnVtIHsgUGFyZW50U3R5bGVTaGVldCwgVHlwZSwgQ3NzVGV4dCwg
UGFyZW50UnVsZSwgU3R5bGVfU2VsZWN0b3JUZXh0LCBTdHlsZV9TdHlsZSwKLSAgICAgICAgICAg
TWVkaWFfTWVkaWEsIE1lZGlhX0luc2VydFJ1bGUsIE1lZGlhX0RlbGV0ZVJ1bGUsIE1lZGlhX0Nz
c1J1bGVzLAotICAgICAgICAgICBGb250RmFjZV9TdHlsZSwgUGFnZV9TZWxlY3RvclRleHQsIFBh
Z2VfU3R5bGUsCi0gICAgICAgICAgIEltcG9ydF9IcmVmLCBJbXBvcnRfTWVkaWEsIEltcG9ydF9T
dHlsZVNoZWV0LCBDaGFyc2V0X0VuY29kaW5nIH07Ci0gICAgV2ViQ29yZTo6Q1NTUnVsZSogaW1w
bCgpIGNvbnN0IHsgcmV0dXJuIG1faW1wbC5nZXQoKTsgfQotICBwcml2YXRlOgotICAgIGZyaWVu
ZCBjbGFzcyBXZWJDb3JlOjpKU0NTU1J1bGU7Ci0gICAgRE9NQ1NTUnVsZShFeGVjU3RhdGUqLCBX
ZWJDb3JlOjpDU1NSdWxlKik7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OkNTU1J1bGU+IG1faW1wbDsK
LSAgfTsKLQotICBKU1ZhbHVlKiB0b0pTKEV4ZWNTdGF0ZSosIFdlYkNvcmU6OkNTU1J1bGUqKTsK
LQogICBjbGFzcyBET01DU1NWYWx1ZSA6IHB1YmxpYyBET01PYmplY3QgewogICBwdWJsaWM6CiAg
ICAgRE9NQ1NTVmFsdWUoRXhlY1N0YXRlKiwgV2ViQ29yZTo6Q1NTVmFsdWUqKTsKSW5kZXg6IFdl
YkNvcmUvYmluZGluZ3Mvb2JqYy9ET01VdGlsaXR5Lm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
YmluZGluZ3Mvb2JqYy9ET01VdGlsaXR5Lm1tCShyZXZpc2lvbiAyMTg5NCkKKysrIFdlYkNvcmUv
YmluZGluZ3Mvb2JqYy9ET01VdGlsaXR5Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3
IEBACiAKICNpbXBvcnQgIkRPTUltcGxlbWVudGF0aW9uRnJvbnQuaCIKICNpbXBvcnQgIkRPTUlu
dGVybmFsLmgiCisjaW1wb3J0ICJKU0NTU1J1bGUuaCIKICNpbXBvcnQgIkpTQ1NTUnVsZUxpc3Qu
aCIKICNpbXBvcnQgIkpTQ1NTU3R5bGVEZWNsYXJhdGlvbi5oIgogI2ltcG9ydCAiSlNDb3VudGVy
LmgiCkBAIC02Nyw2ICs2OCw3IEBAIHN0YXRpYyBpbmxpbmUgaWQgY3JlYXRlRE9NV3JhcHBlcihL
SlM6OkoKICAgICAgICAgaWYgKG9iamVjdC0+aW5oZXJpdHMoJldlYkNvcmU6OkpTIyNjbGFzc05h
bWU6OmluZm8pKSBcCiAgICAgICAgICAgICByZXR1cm4gW0RPTSMjY2xhc3NOYW1lIF93cmFwIyNj
bGFzc05hbWU6c3RhdGljX2Nhc3Q8V2ViQ29yZTo6SlMjI2NsYXNzTmFtZSo+KG9iamVjdCktPmlt
cGwoKV07CiAKKyAgICBXUkFQKENTU1J1bGUpCiAgICAgV1JBUChDU1NSdWxlTGlzdCkKICAgICBX
UkFQKENTU1N0eWxlRGVjbGFyYXRpb24pCiAgICAgV1JBUChDb3VudGVyKQpAQCAtODMsNyArODUs
NiBAQCBzdGF0aWMgaW5saW5lIGlkIGNyZWF0ZURPTVdyYXBwZXIoS0pTOjpKCiAgICAgICAgIGlm
IChvYmplY3QtPmluaGVyaXRzKCZET00jI2NsYXNzTmFtZTo6aW5mbykpIFwKICAgICAgICAgICAg
IHJldHVybiBbb2JqY19nZXRDbGFzcygiRE9NIiAjY2xhc3NOYW1lKSBfd3JhcCMjY2xhc3NOYW1l
OnN0YXRpY19jYXN0PERPTSMjY2xhc3NOYW1lKj4ob2JqZWN0KS0+aW1wbCgpXTsKIAotICAgIFdS
QVAoQ1NTUnVsZSkKICAgICBXUkFQKENTU1ZhbHVlKQogICAgIFdSQVAoRXZlbnQpCiAgICAgV1JB
UChOYW1lZE5vZGVNYXApCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0JKHJldmlzaW9uIDIxODk0KQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBjb3B5KQpAQCAtMTYyLDcgKzE2Miw3IEBAIHN1
YiBVc2VzTWFudWFsVG9KU0ltcGxlbWVudGF0aW9uCiB7CiAgICAgbXkgJHR5cGUgPSBzaGlmdDsK
IAotICAgIHJldHVybiAxIGlmICR0eXBlIGVxICJTVkdQYXRoU2VnIiBvciAkdHlwZSBlcSAiU3R5
bGVTaGVldCI7CisgICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgIlNWR1BhdGhTZWciIG9yICR0eXBl
IGVxICJTdHlsZVNoZWV0IiBvciAkdHlwZSBlcSAiQ1NTUnVsZSI7CiAgICAgcmV0dXJuIDA7CiB9
CiAKQEAgLTUyMyw3ICs1MjMsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIiAgICAke2NsYXNzTmFtZX1Qcm90b3R5cGUoKSB7IH1cbiIpOwogICAg
IH0gZWxzZSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9
UHJvdG90eXBlKEtKUzo6RXhlY1N0YXRlKiBleGVjKVxuIik7Ci0gICAgICAgIGlmICgkaGFzUGFy
ZW50ICYmICRwYXJlbnRDbGFzc05hbWUgbmUgIktKUzo6RE9NQ1NTUnVsZSIgJiYgJHBhcmVudENs
YXNzTmFtZSBuZSAiS0pTOjpET01Ob2RlRmlsdGVyIikgeworICAgICAgICBpZiAoJGhhc1BhcmVu
dCAmJiAkcGFyZW50Q2xhc3NOYW1lIG5lICJLSlM6OkRPTU5vZGVGaWx0ZXIiKSB7CiAgICAgICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAgICA6IEtKUzo6SlNPYmplY3QoJHtwYXJl
bnRDbGFzc05hbWV9UHJvdG90eXBlOjpzZWxmKGV4ZWMpKSB7IH1cbiIpOwogICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAgOiBLSlM6OkpT
T2JqZWN0KGV4ZWMtPmxleGljYWxJbnRlcnByZXRlcigpLT5idWlsdGluT2JqZWN0UHJvdG90eXBl
KCkpIHsgfVxuIik7CkBAIC0xNDQ2LDYgKzE0NDYsMTAgQEAgc3ViIE5hdGl2ZVRvSlNWYWx1ZQog
ICAgICAgICAkdmFsdWUgLj0gIkFuaW1hdGVkKCkiOwogICAgIH0KIAorICAgIGlmICgkdHlwZSBl
cSAiQ1NTU3R5bGVEZWNsYXJhdGlvbiIpIHsKKyAgICAgICAgJGltcGxJbmNsdWRlc3siQ1NTTXV0
YWJsZVN0eWxlRGVjbGFyYXRpb24uaCJ9ID0gMTsKKyAgICB9CisKICAgICBpZiAoJHR5cGUgZXEg
IkRPTUltcGxlbWVudGF0aW9uIikgewogICAgICAgICAkaW1wbEluY2x1ZGVzeyJranNfZG9tLmgi
fSA9IDE7CiAgICAgICAgICRpbXBsSW5jbHVkZXN7IkpTRE9NSW1wbGVtZW50YXRpb24uaCJ9ID0g
MTsKSW5kZXg6IFdlYkNvcmUvY3NzL0NTU0NoYXJzZXRSdWxlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9jc3MvQ1NTQ2hhcnNldFJ1bGUuaAkocmV2aXNpb24gMjE4OTQpCisrKyBXZWJDb3JlL2Nz
cy9DU1NDaGFyc2V0UnVsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAordHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKKwogY2xhc3Mg
Q1NTQ2hhcnNldFJ1bGUgOiBwdWJsaWMgQ1NTUnVsZSB7CiBwdWJsaWM6CiAgICAgQ1NTQ2hhcnNl
dFJ1bGUoU3R5bGVCYXNlKiBwYXJlbnQsIGNvbnN0IFN0cmluZyYgZW5jb2RpbmcpOwpAQCAtNDQs
NyArNDYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0Owog
CiAgICAgLy8gTm90IHBhcnQgb2YgdGhlIENTU09NCi0gICAgdm9pZCBzZXRFbmNvZGluZyhjb25z
dCBTdHJpbmcmIGVuY29kaW5nKSB7IG1fZW5jb2RpbmcgPSBlbmNvZGluZzsgfQorICAgIHZvaWQg
c2V0RW5jb2RpbmcoY29uc3QgU3RyaW5nJiBlbmNvZGluZywgRXhjZXB0aW9uQ29kZSYpIHsgbV9l
bmNvZGluZyA9IGVuY29kaW5nOyB9CiAKIHByb3RlY3RlZDoKICAgICBTdHJpbmcgbV9lbmNvZGlu
ZzsKSW5kZXg6IFdlYkNvcmUvY3NzL0NTU0NoYXJzZXRSdWxlLmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2Nzcy9DU1NDaGFyc2V0UnVsZS5pZGwJKHJldmlzaW9uIDIxODk0KQorKysgV2ViQ29y
ZS9jc3MvQ1NTQ2hhcnNldFJ1bGUuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICogQ29weXJp
Z2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENv
cHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4KICAq
CiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCkBAIC0yMSwxNSArMjEsMTMgQEAKIG1vZHVsZSBjc3MgewogCiAgICAgLy8gSW50
cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKLSAgICBpbnRlcmZhY2UgQ1NTQ2hhcnNldFJ1bGUgOiBD
U1NSdWxlIHsKLQotICAgICAgICAvLyBGSVhNRTogdGhlIERPTSBzcGVjIHNheXMgdGhhdCB0aGlz
IGF0dHJpYnV0ZQotICAgICAgICAvLyBzaG91bGQgbm90IGJlIHJlYWRvbmx5LiAgVGhlIGNvcnJl
Y3QgZGVjbGFyYXRpb24KLSAgICAgICAgLy8gaXMgY29tbWVudGVkIG91dCBiZWxvdy4KLSAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgZW5jb2Rpbmc7Ci0gICAgICAg
ICAgICAgICAvKmF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIGVuY29kaW5nCi0gICAgICAgICAg
ICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsqLwotCisgICAgaW50ZXJmYWNl
IFtHZW5lcmF0ZUNvbnN0cnVjdG9yXSBDU1NDaGFyc2V0UnVsZSA6IENTU1J1bGUgeworI2lmIGRl
ZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBb
Q29udmVydE51bGxTdHJpbmdUbz1OdWxsXSBET01TdHJpbmcgZW5jb2Rpbmc7CisjZWxzZQorICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsU3RyaW5nVG89TnVsbCwgQ29udmVy
dE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBlbmNvZGluZworICAgICAgICAgICAgICAgICAg
ICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworI2VuZGlmCiAgICAgfTsKIAogfQpJbmRl
eDogV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VSdWxlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2Nzcy9DU1NGb250RmFjZVJ1bGUuaWRsCShyZXZpc2lvbiAyMTg5NCkKKysrIFdlYkNvcmUvY3Nz
L0NTU0ZvbnRGYWNlUnVsZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJp
Z2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21haWwuY29tPgogICoKICAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKQEAgLTIxLDggKzIxLDggQEAKIG1vZHVsZSBjc3MgewogCiAgICAgLy8gSW50cm9kdWNl
ZCBpbiBET00gTGV2ZWwgMjoKLSAgICBpbnRlcmZhY2UgQ1NTRm9udEZhY2VSdWxlIDogQ1NTUnVs
ZSB7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NTdHlsZURlY2xhcmF0aW9uICBzdHls
ZTsKKyAgICBpbnRlcmZhY2UgW0dlbmVyYXRlQ29uc3RydWN0b3JdIENTU0ZvbnRGYWNlUnVsZSA6
IENTU1J1bGUgeworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTU3R5bGVEZWNsYXJhdGlv
biBzdHlsZTsKICAgICB9OwogCiB9CkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmlkbAkocmV2aXNpb24g
MjE4OTQpCisrKyBXZWJDb3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmlkbAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIs
IEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5p
Z0BnbWFpbC5jb20+CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMjEsMTAgKzIxLDEwIEBACiBtb2R1bGUgY3Nz
IHsKIAogICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6Ci0gICAgaW50ZXJmYWNlIENT
U0ltcG9ydFJ1bGUgOiBDU1NSdWxlIHsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0
cmluZyAgICAgICAgaHJlZjsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHN0eWxlc2hlZXRz
OjpNZWRpYUxpc3QgIG1lZGlhOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTU3R5bGVT
aGVldCAgICBzdHlsZVNoZWV0OworICAgIGludGVyZmFjZSBbR2VuZXJhdGVDb25zdHJ1Y3Rvcl0g
Q1NTSW1wb3J0UnVsZSA6IENTU1J1bGUgeworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0Nv
bnZlcnROdWxsU3RyaW5nVG89TnVsbF0gRE9NU3RyaW5nIGhyZWY7CisgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBzdHlsZXNoZWV0czo6TWVkaWFMaXN0IG1lZGlhOworICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgQ1NTU3R5bGVTaGVldCBzdHlsZVNoZWV0OwogICAgIH07CiAKIH0KSW5kZXg6
IFdlYkNvcmUvY3NzL0NTU01lZGlhUnVsZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3Mv
Q1NTTWVkaWFSdWxlLmlkbAkocmV2aXNpb24gMjE4OTQpCisrKyBXZWJDb3JlL2Nzcy9DU1NNZWRp
YVJ1bGUuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAy
MDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAw
NiBTYW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4KICAqCiAgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0y
MSw5ICsyMSw5IEBACiBtb2R1bGUgY3NzIHsKIAogICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExl
dmVsIDI6Ci0gICAgaW50ZXJmYWNlIENTU01lZGlhUnVsZSA6IENTU1J1bGUgewotICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgc3R5bGVzaGVldHM6Ok1lZGlhTGlzdCAgbWVkaWE7Ci0gICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NSdWxlTGlzdCAgICAgIGNzc1J1bGVzOworICAgIGludGVy
ZmFjZSBbR2VuZXJhdGVDb25zdHJ1Y3Rvcl0gQ1NTTWVkaWFSdWxlIDogQ1NTUnVsZSB7CisgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBzdHlsZXNoZWV0czo6TWVkaWFMaXN0IG1lZGlhOworICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTUnVsZUxpc3QgY3NzUnVsZXM7CiAgICAgICAgIAog
ICAgICAgICBbT2xkU3R5bGVPYmpDXSB1bnNpZ25lZCBsb25nICAgICAgaW5zZXJ0UnVsZShpbiBE
T01TdHJpbmcgcnVsZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpCkluZGV4OiBXZWJDb3JlL2Nzcy9D
U1NQYWdlUnVsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTUGFnZVJ1bGUuY3Bw
CShyZXZpc2lvbiAyMTg5NCkKKysrIFdlYkNvcmUvY3NzL0NTU1BhZ2VSdWxlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDMsNyArNDMsNyBAQCBTdHJpbmcgQ1NTUGFnZVJ1bGU6OnNlbGVjdG9yVGV4
dCgpIGNvbnN0CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi12b2lkIENTU1BhZ2VSdWxlOjpz
ZXRTZWxlY3RvclRleHQoY29uc3QgU3RyaW5nJiAvKnNlbGVjdG9yVGV4dCovKQordm9pZCBDU1NQ
YWdlUnVsZTo6c2V0U2VsZWN0b3JUZXh0KGNvbnN0IFN0cmluZyYgLypzZWxlY3RvclRleHQqLywg
RXhjZXB0aW9uQ29kZSYgLypleCovKQogewogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQhCiB9Cklu
ZGV4OiBXZWJDb3JlL2Nzcy9DU1NQYWdlUnVsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3Nz
L0NTU1BhZ2VSdWxlLmgJKHJldmlzaW9uIDIxODk0KQorKysgV2ViQ29yZS9jc3MvQ1NTUGFnZVJ1
bGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOwogCit0eXBlZGVmIGludCBFeGNl
cHRpb25Db2RlOworCiBjbGFzcyBDU1NQYWdlUnVsZSA6IHB1YmxpYyBDU1NSdWxlIHsKIHB1Ymxp
YzoKICAgICBDU1NQYWdlUnVsZShTdHlsZUJhc2UqIHBhcmVudCk7CkBAIC0zOSw3ICs0MSw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNQYWdlUnVsZSgpIHsgcmV0dXJuIHRydWU7IH0K
IAogICAgIFN0cmluZyBzZWxlY3RvclRleHQoKSBjb25zdDsKLSAgICB2b2lkIHNldFNlbGVjdG9y
VGV4dChjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIHNldFNlbGVjdG9yVGV4dChjb25zdCBTdHJp
bmcmLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiog
c3R5bGUoKSBjb25zdCB7IHJldHVybiBtX3N0eWxlLmdldCgpOyB9CiAKSW5kZXg6IFdlYkNvcmUv
Y3NzL0NTU1BhZ2VSdWxlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NQYWdlUnVs
ZS5pZGwJKHJldmlzaW9uIDIxODk0KQorKysgV2ViQ29yZS9jc3MvQ1NTUGFnZVJ1bGUuaWRsCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiBB
cHBsZSBDb21wdXRlciwgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2Vp
bmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0yMSwxNCArMjEsMTIg
QEAKIG1vZHVsZSBjc3MgewogCiAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKLSAg
ICBpbnRlcmZhY2UgQ1NTUGFnZVJ1bGUgOiBDU1NSdWxlIHsKKyAgICBpbnRlcmZhY2UgW0dlbmVy
YXRlQ29uc3RydWN0b3JdIENTU1BhZ2VSdWxlIDogQ1NTUnVsZSB7CiAKLSAgICAgICAgICAgICAg
ICAgLy8gRklYTUU6IERPTSBzcGVjIHNheXMgdGhhdCB0aGlzIGNhbiByYWlzZSBhbgotICAgICAg
ICAgICAgICAgICAvLyBleGNlcHRpb24gb24gc2V0dGluZy4KLSAgICAgICAgICAgICAgICAgYXR0
cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgICBzZWxlY3Rv
clRleHQKLSAgICAgICAgICAgICAgICAgICAgIC8qc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24p
Ki87CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxs
LCBDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHNlbGVjdG9yVGV4dAorICAgICAg
ICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwogCi0gICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBDU1NTdHlsZURlY2xhcmF0aW9uICBzdHlsZTsKKyAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIENTU1N0eWxlRGVjbGFyYXRpb24gc3R5bGU7CiAKICAgICB9OwogCklu
ZGV4OiBXZWJDb3JlL2Nzcy9DU1NSdWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9D
U1NSdWxlLmNwcAkocmV2aXNpb24gMjE4OTQpCisrKyBXZWJDb3JlL2Nzcy9DU1NSdWxlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMyw3ICszLDcgQEAKICAqCiAgKiAoQykgMTk5OS0yMDAzIExhcnMg
S25vbGwgKGtub2xsQGtkZS5vcmcpCiAgKiAoQykgMjAwMi0yMDAzIERpcmsgTXVlbGxlciAobXVl
bGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDAyLCAyMDA1LCAyMDA2IEFwcGxlIENv
bXB1dGVyLCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDIsIDIwMDUsIDIwMDYsIDIwMDcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC00NCw3
ICs0NCw3IEBAIFN0cmluZyBDU1NSdWxlOjpjc3NUZXh0KCkgY29uc3QKICAgICByZXR1cm4gU3Ry
aW5nKCk7CiB9CiAKLXZvaWQgQ1NTUnVsZTo6c2V0Q3NzVGV4dChTdHJpbmcgLypjc3NUZXh0Ki8p
Cit2b2lkIENTU1J1bGU6OnNldENzc1RleHQoU3RyaW5nIC8qY3NzVGV4dCovLCBFeGNlcHRpb25D
b2RlJiAvKmVjKi8pCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCEKIH0KSW5kZXg6IFdlYkNv
cmUvY3NzL0NTU1J1bGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NSdWxlLmgJKHJl
dmlzaW9uIDIxODk0KQorKysgV2ViQ29yZS9jc3MvQ1NTUnVsZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zLDcgKzMsNyBAQAogICoKICAqIChDKSAxOTk5LTIwMDMgTGFycyBLbm9sbCAoa25vbGxAa2Rl
Lm9yZykKICAqIChDKSAyMDAyLTIwMDMgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDIsIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHly
aWdodCAoQykgMjAwMiwgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTMwLDYgKzMwLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBDU1NTdHlsZVNoZWV0OwogCit0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwor
CiBjbGFzcyBDU1NSdWxlIDogcHVibGljIFN0eWxlQmFzZSB7CiBwdWJsaWM6CiAgICAgZW51bSBD
U1NSdWxlVHlwZSB7CkBAIC01NSw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBDU1NSdWxlKiBwYXJl
bnRSdWxlKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIFN0cmluZyBjc3NUZXh0KCkgY29uc3Q7Ci0g
ICAgdm9pZCBzZXRDc3NUZXh0KFN0cmluZyk7CisgICAgdm9pZCBzZXRDc3NUZXh0KFN0cmluZywg
RXhjZXB0aW9uQ29kZSYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2Vi
Q29yZS9jc3MvQ1NTUnVsZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTUnVsZS5p
ZGwJKHJldmlzaW9uIDIxODk0KQorKysgV2ViQ29yZS9jc3MvQ1NTUnVsZS5pZGwJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENv
bXB1dGVyLCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNh
bS53ZWluaWdAZ21haWwuY29tPgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTIxLDcgKzIxLDcgQEAKIG1vZHVs
ZSBjc3MgewogCiAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKLSAgICBpbnRlcmZh
Y2UgW0xlZ2FjeVBhcmVudD1LSlM6OkRPTUNTU1J1bGUsIEdlbmVyYXRlQ29uc3RydWN0b3IsIE9i
akNDdXN0b21JbnRlcm5hbEltcGxdIENTU1J1bGUgeworICAgIGludGVyZmFjZSBbR2VuZXJhdGVD
b25zdHJ1Y3RvciwgT2JqQ0N1c3RvbUludGVybmFsSW1wbF0gQ1NTUnVsZSB7CiAKICAgICAgICAg
Ly8gUnVsZVR5cGUKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgVU5LTk9XTl9SVUxFID0g
MDsKQEAgLTMyLDE3ICszMiwxNCBAQCBtb2R1bGUgY3NzIHsKICAgICAgICAgY29uc3QgdW5zaWdu
ZWQgc2hvcnQgRk9OVF9GQUNFX1JVTEUgPSA1OwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9y
dCBQQUdFX1JVTEUgPSA2OwogCi0jaWYgIWRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0ICAgdHlwZTsKIAotICAgICAg
ICAgICAgICAgICAvLyBGSVhNRTogRE9NIHNwZWMgc2F5cyB0aGF0IHRoaXMgY2FuIHJhaXNlIGFu
Ci0gICAgICAgICAgICAgICAgIC8vIGV4Y2VwdGlvbiBvbiBzZXR0aW5nLgotICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAg
IGNzc1RleHQKLSAgICAgICAgICAgICAgICAgICAgIC8qc2V0dGVyIHJhaXNlcyAoRE9NRXhjZXB0
aW9uKSovOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsU3RyaW5nVG89
TnVsbCwgQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAgICAgICAgY3NzVGV4dAor
ICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKIAogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTU3R5bGVTaGVldCAgICBwYXJlbnRTdHlsZVNoZWV0
OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTUnVsZSAgICAgICAgICBwYXJlbnRSdWxl
OwotI2VuZGlmCiAKICAgICB9OworCiB9CkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NTdHlsZVJ1bGUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5jcHAJKHJldmlzaW9u
IDIxODk0KQorKysgV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNTYsNyArNTYsNyBAQCBTdHJpbmcgQ1NTU3R5bGVSdWxlOjpzZWxlY3RvclRleHQoKSBjb25z
CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi12b2lkIENTU1N0eWxlUnVsZTo6c2V0U2VsZWN0
b3JUZXh0KFN0cmluZyAvKnNlbGVjdG9yVGV4dCovKQordm9pZCBDU1NTdHlsZVJ1bGU6OnNldFNl
bGVjdG9yVGV4dChjb25zdCBTdHJpbmcmIC8qc2VsZWN0b3JUZXh0Ki8sIEV4Y2VwdGlvbkNvZGUm
IC8qZWMqLykKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IQogfQpJbmRleDogV2ViQ29yZS9j
c3MvQ1NTU3R5bGVSdWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxl
LmgJKHJldmlzaW9uIDIxODk0KQorKysgV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTMzLDYgKzMzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ1NT
TXV0YWJsZVN0eWxlRGVjbGFyYXRpb247CiBjbGFzcyBDU1NTZWxlY3RvcjsKIAordHlwZWRlZiBp
bnQgRXhjZXB0aW9uQ29kZTsKKwogY2xhc3MgQ1NTU3R5bGVSdWxlIDogcHVibGljIENTU1J1bGUg
ewogcHVibGljOgogICAgIENTU1N0eWxlUnVsZShTdHlsZUJhc2UqIHBhcmVudCk7CkBAIC00MSw3
ICs0Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNTdHlsZVJ1bGUoKSB7IHJldHVy
biB0cnVlOyB9CiAKICAgICBTdHJpbmcgc2VsZWN0b3JUZXh0KCkgY29uc3Q7Ci0gICAgdm9pZCBz
ZXRTZWxlY3RvclRleHQoU3RyaW5nKTsKKyAgICB2b2lkIHNldFNlbGVjdG9yVGV4dChjb25zdCBT
dHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
biogc3R5bGUoKSBjb25zdCB7IHJldHVybiBtX3N0eWxlLmdldCgpOyB9CiAKSW5kZXg6IFdlYkNv
cmUvY3NzL0NTU1N0eWxlUnVsZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTU3R5
bGVSdWxlLmlkbAkocmV2aXNpb24gMjE4OTQpCisrKyBXZWJDb3JlL2Nzcy9DU1NTdHlsZVJ1bGUu
aWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNiBTYW11
ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0yMSwxNCAr
MjEsMTIgQEAKIG1vZHVsZSBjc3MgewogCiAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwg
MjoKLSAgICBpbnRlcmZhY2UgQ1NTU3R5bGVSdWxlIDogQ1NTUnVsZSB7CisgICAgaW50ZXJmYWNl
IFtHZW5lcmF0ZUNvbnN0cnVjdG9yXSBDU1NTdHlsZVJ1bGUgOiBDU1NSdWxlIHsKIAotICAgICAg
ICAgICAgICAgICAvLyBGSVhNRTogRE9NIHNwZWMgc2F5cyB0aGF0IHRoaXMgY2FuIHJhaXNlIGFu
Ci0gICAgICAgICAgICAgICAgIC8vIGV4Y2VwdGlvbiBvbiBzZXR0aW5nLgotICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAg
ICAgICBzZWxlY3RvclRleHQKLSAgICAgICAgICAgICAgICAgICAgIC8qc2V0dGVyIHJhaXNlcyhE
T01FeGNlcHRpb24pKi87CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxT
dHJpbmdUbz1OdWxsLCBDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHNlbGVjdG9y
VGV4dAorICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwog
Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NTdHlsZURlY2xhcmF0aW9uICBzdHlsZTsK
KyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU1N0eWxlRGVjbGFyYXRpb24gc3R5bGU7CiAK
ICAgICB9OwogCkluZGV4OiBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAkocmV2aXNpb24gMjE4OTQpCisrKyBXZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNDQsNiArNDQsMTIgQEAgbW9k
dWxlIHdpbmRvdyB7CiAgICAgICAgIC8vIEdsb2JhbCBjb25zdHJ1Y3RvcnMKICAgICAgICAgYXR0
cmlidXRlIENTU1ByaW1pdGl2ZVZhbHVlQ29uc3RydWN0b3IgQ1NTUHJpbWl0aXZlVmFsdWU7CiAg
ICAgICAgIGF0dHJpYnV0ZSBDU1NSdWxlQ29uc3RydWN0b3IgQ1NTUnVsZTsKKyAgICAgICAgYXR0
cmlidXRlIENTU0NoYXJzZXRSdWxlQ29uc3RydWN0b3IgQ1NTQ2hhcnNldFJ1bGU7CisgICAgICAg
IGF0dHJpYnV0ZSBDU1NGb250RmFjZVJ1bGVDb25zdHJ1Y3RvciBDU1NGb250RmFjZVJ1bGU7Cisg
ICAgICAgIGF0dHJpYnV0ZSBDU1NJbXBvcnRSdWxlQ29uc3RydWN0b3IgQ1NTSW1wb3J0UnVsZTsK
KyAgICAgICAgYXR0cmlidXRlIENTU01lZGlhUnVsZUNvbnN0cnVjdG9yIENTU01lZGlhUnVsZTsK
KyAgICAgICAgYXR0cmlidXRlIENTU1BhZ2VSdWxlQ29uc3RydWN0b3IgQ1NTUGFnZVJ1bGU7Cisg
ICAgICAgIGF0dHJpYnV0ZSBDU1NTdHlsZVJ1bGVDb25zdHJ1Y3RvciBDU1NTdHlsZVJ1bGU7CiAg
ICAgICAgIGF0dHJpYnV0ZSBDU1NTdHlsZURlY2xhcmF0aW9uQ29uc3RydWN0b3IgQ1NTU3R5bGVE
ZWNsYXJhdGlvbjsKICAgICAgICAgYXR0cmlidXRlIENTU1ZhbHVlQ29uc3RydWN0b3IgQ1NTVmFs
dWU7CiAgICAgICAgIGF0dHJpYnV0ZSBNZWRpYUxpc3RDb25zdHJ1Y3RvciBNZWRpYUxpc3Q7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyMTg5NCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDA3LTA1LTMwICBTYW0gV2VpbmlnICA8c2FtQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBDaGFuZ2VMb2c6CisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0
aWVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtZXhw
ZWN0ZWQudHh0OgorCisyMDA3LTA1LTMwICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLSBVcGRhdGUg
cmVzdWx0cyBmb3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5MTkK
KyAgICAgICAgICBBdXRvZ2VuZXJhdGUgdGhlIEpTIGJpbmRpbmdzIGZvciB0aGUgQ1NTUnVsZSBh
bmQgaXRzIHN1YmNsYXNzZXMKKworICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJv
cGVydGllcy1leHBlY3RlZC50eHQ6IGFkZHMgbmV3IGNvbnN0cnVjdG9ycworICAgICAgICAqIGZh
c3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1leHBlY3RlZC50eHQ6IENTU1N0eWxlUnVsZSBub3cgcGFz
c2VzISEKKwogMjAwNy0wNS0zMCAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IE1pdHouCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS93cmFw
cGVyLWNsYXNzZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3dyYXBwZXItY2xhc3Nlcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIxODk0KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtNjYsNyArNjYsNyBAQCBQQVNTIGpzV3JhcHBlckNsYXNzKHN0eWxlc2hlZXQpIGlz
ICdDU1NTCiBQQVNTIG9iakNXcmFwcGVyQ2xhc3Moc3R5bGVzaGVldCkgaXMgJ0RPTUNTU1N0eWxl
U2hlZXQnCiBQQVNTIGpzV3JhcHBlckNsYXNzKHN0eWxlc2hlZXQuY3NzUnVsZXMpIGlzICdDU1NS
dWxlTGlzdCcKIFBBU1Mgb2JqQ1dyYXBwZXJDbGFzcyhzdHlsZXNoZWV0LmNzc1J1bGVzKSBpcyAn
RE9NQ1NTUnVsZUxpc3QnCi1GQUlMIGpzV3JhcHBlckNsYXNzKHN0eWxlc2hlZXQuY3NzUnVsZXMu
aXRlbSgwKSkgc2hvdWxkIGJlIENTU1N0eWxlUnVsZS4gV2FzIENTU1J1bGUuCitQQVNTIGpzV3Jh
cHBlckNsYXNzKHN0eWxlc2hlZXQuY3NzUnVsZXMuaXRlbSgwKSkgaXMgJ0NTU1N0eWxlUnVsZScK
IFBBU1Mgb2JqQ1dyYXBwZXJDbGFzcyhzdHlsZXNoZWV0LmNzc1J1bGVzLml0ZW0oMCkpIGlzICdE
T01DU1NTdHlsZVJ1bGUnCiBQQVNTIGpzV3JhcHBlckNsYXNzKHN0eWxlc2hlZXQuY3NzUnVsZXMu
aXRlbSgwKS5zdHlsZSkgaXMgJ0NTU1N0eWxlRGVjbGFyYXRpb24nCiBQQVNTIG9iakNXcmFwcGVy
Q2xhc3Moc3R5bGVzaGVldC5jc3NSdWxlcy5pdGVtKDApLnN0eWxlKSBpcyAnRE9NQ1NTU3R5bGVE
ZWNsYXJhdGlvbicKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJv
cGVydGllcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjE4OTQpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC02OSw2ICs2OSw1MyBAQCB3aW5kb3cuQ0RBVEFTZWN0aW9u
LnByb3RvdHlwZS5yZXBsYWNlQ2hpCiB3aW5kb3cuQ0RBVEFTZWN0aW9uLnByb3RvdHlwZS5yZXBs
YWNlRGF0YSBbZnVuY3Rpb25dCiB3aW5kb3cuQ0RBVEFTZWN0aW9uLnByb3RvdHlwZS5zcGxpdFRl
eHQgW2Z1bmN0aW9uXQogd2luZG93LkNEQVRBU2VjdGlvbi5wcm90b3R5cGUuc3Vic3RyaW5nRGF0
YSBbZnVuY3Rpb25dCit3aW5kb3cuQ1NTQ2hhcnNldFJ1bGUgW29iamVjdCBDU1NDaGFyc2V0UnVs
ZUNvbnN0cnVjdG9yXQord2luZG93LkNTU0NoYXJzZXRSdWxlLnByb3RvdHlwZSBbb2JqZWN0IENT
U0NoYXJzZXRSdWxlUHJvdG90eXBlXQord2luZG93LkNTU0NoYXJzZXRSdWxlLnByb3RvdHlwZS5D
SEFSU0VUX1JVTEUgW251bWJlcl0KK3dpbmRvdy5DU1NDaGFyc2V0UnVsZS5wcm90b3R5cGUuRk9O
VF9GQUNFX1JVTEUgW251bWJlcl0KK3dpbmRvdy5DU1NDaGFyc2V0UnVsZS5wcm90b3R5cGUuSU1Q
T1JUX1JVTEUgW251bWJlcl0KK3dpbmRvdy5DU1NDaGFyc2V0UnVsZS5wcm90b3R5cGUuTUVESUFf
UlVMRSBbbnVtYmVyXQord2luZG93LkNTU0NoYXJzZXRSdWxlLnByb3RvdHlwZS5QQUdFX1JVTEUg
W251bWJlcl0KK3dpbmRvdy5DU1NDaGFyc2V0UnVsZS5wcm90b3R5cGUuU1RZTEVfUlVMRSBbbnVt
YmVyXQord2luZG93LkNTU0NoYXJzZXRSdWxlLnByb3RvdHlwZS5VTktOT1dOX1JVTEUgW251bWJl
cl0KK3dpbmRvdy5DU1NGb250RmFjZVJ1bGUgW29iamVjdCBDU1NGb250RmFjZVJ1bGVDb25zdHJ1
Y3Rvcl0KK3dpbmRvdy5DU1NGb250RmFjZVJ1bGUucHJvdG90eXBlIFtvYmplY3QgQ1NTRm9udEZh
Y2VSdWxlUHJvdG90eXBlXQord2luZG93LkNTU0ZvbnRGYWNlUnVsZS5wcm90b3R5cGUuQ0hBUlNF
VF9SVUxFIFtudW1iZXJdCit3aW5kb3cuQ1NTRm9udEZhY2VSdWxlLnByb3RvdHlwZS5GT05UX0ZB
Q0VfUlVMRSBbbnVtYmVyXQord2luZG93LkNTU0ZvbnRGYWNlUnVsZS5wcm90b3R5cGUuSU1QT1JU
X1JVTEUgW251bWJlcl0KK3dpbmRvdy5DU1NGb250RmFjZVJ1bGUucHJvdG90eXBlLk1FRElBX1JV
TEUgW251bWJlcl0KK3dpbmRvdy5DU1NGb250RmFjZVJ1bGUucHJvdG90eXBlLlBBR0VfUlVMRSBb
bnVtYmVyXQord2luZG93LkNTU0ZvbnRGYWNlUnVsZS5wcm90b3R5cGUuU1RZTEVfUlVMRSBbbnVt
YmVyXQord2luZG93LkNTU0ZvbnRGYWNlUnVsZS5wcm90b3R5cGUuVU5LTk9XTl9SVUxFIFtudW1i
ZXJdCit3aW5kb3cuQ1NTSW1wb3J0UnVsZSBbb2JqZWN0IENTU0ltcG9ydFJ1bGVDb25zdHJ1Y3Rv
cl0KK3dpbmRvdy5DU1NJbXBvcnRSdWxlLnByb3RvdHlwZSBbb2JqZWN0IENTU0ltcG9ydFJ1bGVQ
cm90b3R5cGVdCit3aW5kb3cuQ1NTSW1wb3J0UnVsZS5wcm90b3R5cGUuQ0hBUlNFVF9SVUxFIFtu
dW1iZXJdCit3aW5kb3cuQ1NTSW1wb3J0UnVsZS5wcm90b3R5cGUuRk9OVF9GQUNFX1JVTEUgW251
bWJlcl0KK3dpbmRvdy5DU1NJbXBvcnRSdWxlLnByb3RvdHlwZS5JTVBPUlRfUlVMRSBbbnVtYmVy
XQord2luZG93LkNTU0ltcG9ydFJ1bGUucHJvdG90eXBlLk1FRElBX1JVTEUgW251bWJlcl0KK3dp
bmRvdy5DU1NJbXBvcnRSdWxlLnByb3RvdHlwZS5QQUdFX1JVTEUgW251bWJlcl0KK3dpbmRvdy5D
U1NJbXBvcnRSdWxlLnByb3RvdHlwZS5TVFlMRV9SVUxFIFtudW1iZXJdCit3aW5kb3cuQ1NTSW1w
b3J0UnVsZS5wcm90b3R5cGUuVU5LTk9XTl9SVUxFIFtudW1iZXJdCit3aW5kb3cuQ1NTTWVkaWFS
dWxlIFtvYmplY3QgQ1NTTWVkaWFSdWxlQ29uc3RydWN0b3JdCit3aW5kb3cuQ1NTTWVkaWFSdWxl
LnByb3RvdHlwZSBbb2JqZWN0IENTU01lZGlhUnVsZVByb3RvdHlwZV0KK3dpbmRvdy5DU1NNZWRp
YVJ1bGUucHJvdG90eXBlLkNIQVJTRVRfUlVMRSBbbnVtYmVyXQord2luZG93LkNTU01lZGlhUnVs
ZS5wcm90b3R5cGUuRk9OVF9GQUNFX1JVTEUgW251bWJlcl0KK3dpbmRvdy5DU1NNZWRpYVJ1bGUu
cHJvdG90eXBlLklNUE9SVF9SVUxFIFtudW1iZXJdCit3aW5kb3cuQ1NTTWVkaWFSdWxlLnByb3Rv
dHlwZS5NRURJQV9SVUxFIFtudW1iZXJdCit3aW5kb3cuQ1NTTWVkaWFSdWxlLnByb3RvdHlwZS5Q
QUdFX1JVTEUgW251bWJlcl0KK3dpbmRvdy5DU1NNZWRpYVJ1bGUucHJvdG90eXBlLlNUWUxFX1JV
TEUgW251bWJlcl0KK3dpbmRvdy5DU1NNZWRpYVJ1bGUucHJvdG90eXBlLlVOS05PV05fUlVMRSBb
bnVtYmVyXQord2luZG93LkNTU01lZGlhUnVsZS5wcm90b3R5cGUuZGVsZXRlUnVsZSBbZnVuY3Rp
b25dCit3aW5kb3cuQ1NTTWVkaWFSdWxlLnByb3RvdHlwZS5pbnNlcnRSdWxlIFtmdW5jdGlvbl0K
K3dpbmRvdy5DU1NQYWdlUnVsZSBbb2JqZWN0IENTU1BhZ2VSdWxlQ29uc3RydWN0b3JdCit3aW5k
b3cuQ1NTUGFnZVJ1bGUucHJvdG90eXBlIFtvYmplY3QgQ1NTUGFnZVJ1bGVQcm90b3R5cGVdCit3
aW5kb3cuQ1NTUGFnZVJ1bGUucHJvdG90eXBlLkNIQVJTRVRfUlVMRSBbbnVtYmVyXQord2luZG93
LkNTU1BhZ2VSdWxlLnByb3RvdHlwZS5GT05UX0ZBQ0VfUlVMRSBbbnVtYmVyXQord2luZG93LkNT
U1BhZ2VSdWxlLnByb3RvdHlwZS5JTVBPUlRfUlVMRSBbbnVtYmVyXQord2luZG93LkNTU1BhZ2VS
dWxlLnByb3RvdHlwZS5NRURJQV9SVUxFIFtudW1iZXJdCit3aW5kb3cuQ1NTUGFnZVJ1bGUucHJv
dG90eXBlLlBBR0VfUlVMRSBbbnVtYmVyXQord2luZG93LkNTU1BhZ2VSdWxlLnByb3RvdHlwZS5T
VFlMRV9SVUxFIFtudW1iZXJdCit3aW5kb3cuQ1NTUGFnZVJ1bGUucHJvdG90eXBlLlVOS05PV05f
UlVMRSBbbnVtYmVyXQogd2luZG93LkNTU1ByaW1pdGl2ZVZhbHVlIFtvYmplY3QgQ1NTUHJpbWl0
aXZlVmFsdWVDb25zdHJ1Y3Rvcl0KIHdpbmRvdy5DU1NQcmltaXRpdmVWYWx1ZS5DU1NfQVRUUiBb
bnVtYmVyXQogd2luZG93LkNTU1ByaW1pdGl2ZVZhbHVlLkNTU19DTSBbbnVtYmVyXQpAQCAtMTYw
LDYgKzIwNyw4IEBAIHdpbmRvdy5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZS5pc1AKIHdp
bmRvdy5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZS5pdGVtIFtmdW5jdGlvbl0KIHdpbmRv
dy5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZS5yZW1vdmVQcm9wZXJ0eSBbZnVuY3Rpb25d
CiB3aW5kb3cuQ1NTU3R5bGVEZWNsYXJhdGlvbi5wcm90b3R5cGUuc2V0UHJvcGVydHkgW2Z1bmN0
aW9uXQord2luZG93LkNTU1N0eWxlUnVsZSBbb2JqZWN0IENTU1N0eWxlUnVsZUNvbnN0cnVjdG9y
XQord2luZG93LkNTU1N0eWxlUnVsZS5wcm90b3R5cGUgW3ByaW50ZWQgYWJvdmUgYXMgd2luZG93
LkNTU1J1bGUucHJvdG90eXBlXQogd2luZG93LkNTU1ZhbHVlIFtvYmplY3QgQ1NTVmFsdWVDb25z
dHJ1Y3Rvcl0KIHdpbmRvdy5DU1NWYWx1ZS5DU1NfQ1VTVE9NIFtudW1iZXJdCiB3aW5kb3cuQ1NT
VmFsdWUuQ1NTX0lOSEVSSVQgW251bWJlcl0K
</data>
<flag name="review"
          id="6101"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>