<?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>156782</bug_id>
          
          <creation_ts>2016-04-19 22:47:19 -0700</creation_ts>
          <short_desc>Modern IDB (Workers): Enable INDEXED_DATABASE_IN_WORKERS compile time flag, but disabled in RuntimeEnabledFeatures</short_desc>
          <delta_ts>2016-04-20 13:21:24 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>149117</blocked>
    
    <blocked>149953</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>jsbell</cc>
    
    <cc>kangil.han</cc>
    
    <cc>keith_miller</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ossy</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1185344</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-04-19 22:47:19 -0700</bug_when>
    <thetext>Modern IDB (Workers): Enable INDEXED_DATABASE_IN_WORKERS compile time flag, but disabled in RuntimeEnabledFeatures</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185348</commentid>
    <comment_count>1</comment_count>
      <attachid>276805</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-04-19 22:52:28 -0700</bug_when>
    <thetext>Created attachment 276805
WIP

This WIP compiles and is probably almost done, minus a test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185349</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-19 22:54:10 -0700</bug_when>
    <thetext>Attachment 276805 did not pass style-queue:


ERROR: Source/WebKit/mac/Configurations/FeatureDefines.xcconfig:0:  Any changes made to FeatureDefines should be made to all of them (changed file does not match Tools/TestWebKitAPI/Configurations/FeatureDefines.xcconfig).  [featuredefines/equality] [5]
ERROR: Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig:0:  Any changes made to FeatureDefines should be made to all of them (changed file does not match Tools/TestWebKitAPI/Configurations/FeatureDefines.xcconfig).  [featuredefines/equality] [5]
ERROR: Source/WebCore/Configurations/FeatureDefines.xcconfig:0:  Any changes made to FeatureDefines should be made to all of them (changed file does not match Tools/TestWebKitAPI/Configurations/FeatureDefines.xcconfig).  [featuredefines/equality] [5]
ERROR: Source/WebKit2/Configurations/FeatureDefines.xcconfig:0:  Any changes made to FeatureDefines should be made to all of them (changed file does not match Tools/TestWebKitAPI/Configurations/FeatureDefines.xcconfig).  [featuredefines/equality] [5]
Total errors found: 4 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185463</commentid>
    <comment_count>3</comment_count>
      <attachid>276834</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-04-20 11:02:15 -0700</bug_when>
    <thetext>Created attachment 276834
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185464</commentid>
    <comment_count>4</comment_count>
      <attachid>276835</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-04-20 11:03:18 -0700</bug_when>
    <thetext>Created attachment 276835
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185470</commentid>
    <comment_count>5</comment_count>
      <attachid>276835</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-04-20 11:18:33 -0700</bug_when>
    <thetext>Comment on attachment 276835
Patch v2

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

&gt; LayoutTests/storage/indexeddb/modern/workers-enable-expected.txt:9
&gt; +FAIL [Worker] self.indexedDB should be non-null. Was null
&gt; +FAIL [Worker] self.indexedDB instanceof IDBFactory should be true. Was false.

fail?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185472</commentid>
    <comment_count>6</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-04-20 11:27:53 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 276835 [details]
&gt; Patch v2
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=276835&amp;action=review
&gt; 
&gt; &gt; LayoutTests/storage/indexeddb/modern/workers-enable-expected.txt:9
&gt; &gt; +FAIL [Worker] self.indexedDB should be non-null. Was null
&gt; &gt; +FAIL [Worker] self.indexedDB instanceof IDBFactory should be true. Was false.
&gt; 
&gt; fail?

From the ChangeLog:

+        Note: One test has some &quot;FAIL&quot; lines in the expected results, which is intentional.
+        As work on this progresses, those FAILs will become PASSes and the expectations will be updated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185473</commentid>
    <comment_count>7</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-04-20 11:32:12 -0700</bug_when>
    <thetext>../../Source/WebCore/testing/InternalSettings.cpp:547:46: error: &apos;class WebCore::RuntimeEnabledFeatures&apos; has no member named &apos;setIndexedDBWorkersEnabled&apos;
     RuntimeEnabledFeatures::sharedFeatures().setIndexedDBWorkersEnabled(enabled);

I think you need some more compile time flags.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185475</commentid>
    <comment_count>8</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-04-20 11:32:58 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; ../../Source/WebCore/testing/InternalSettings.cpp:547:46: error: &apos;class
&gt; WebCore::RuntimeEnabledFeatures&apos; has no member named
&gt; &apos;setIndexedDBWorkersEnabled&apos;
&gt;     
&gt; RuntimeEnabledFeatures::sharedFeatures().setIndexedDBWorkersEnabled(enabled);
&gt; 
&gt; I think you need some more compile time flags.

Yes, I planned to rely on EWS to tell me where, which is why I didn&apos;t cq?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185478</commentid>
    <comment_count>9</comment_count>
      <attachid>276835</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-04-20 11:34:01 -0700</bug_when>
    <thetext>Comment on attachment 276835
Patch v2

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

&gt; Source/WebCore/Modules/notifications/WorkerGlobalScopeNotifications.cpp:59
&gt; -        provideTo(context, supplementName(), WTFMove(newSupplement));
&gt; +        provideTo(&amp;scope, supplementName(), WTFMove(newSupplement));

Outside the scope of this patch, but we should make provideTo take a reference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185479</commentid>
    <comment_count>10</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-04-20 11:35:34 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Comment on attachment 276835 [details]
&gt; Patch v2
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=276835&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/notifications/WorkerGlobalScopeNotifications.cpp:59
&gt; &gt; -        provideTo(context, supplementName(), WTFMove(newSupplement));
&gt; &gt; +        provideTo(&amp;scope, supplementName(), WTFMove(newSupplement));
&gt; 
&gt; Outside the scope of this patch, but we should make provideTo take a
&gt; reference.

Considered doing it in this patch before it become obvious just how many sites would have to change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185493</commentid>
    <comment_count>11</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-04-20 12:01:59 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/199779</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185519</commentid>
    <comment_count>12</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-04-20 13:15:05 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; http://trac.webkit.org/changeset/199779

It broke the non INDEXED_DATABASE_IN_WORKERS build, for example EFL and GTK. And not in Webkit2, but in Webcore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185520</commentid>
    <comment_count>13</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-04-20 13:15:51 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; &gt; http://trac.webkit.org/changeset/199779
&gt; 
&gt; It broke the non INDEXED_DATABASE_IN_WORKERS build, for example EFL and GTK.
&gt; And not in Webkit2, but in Webcore.

Link to failure? I saw that breakage in EWS and attempted to fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185521</commentid>
    <comment_count>14</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-04-20 13:16:56 -0700</bug_when>
    <thetext>A link to the failure so others don&apos;t have to go hunting:
https://build.webkit.org/builders/GTK%20Linux%2064-bit%20Release%20%28Build%29/builds/68616/steps/compile-webkit/logs/stdio

Working on a fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185523</commentid>
    <comment_count>15</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-04-20 13:21:24 -0700</bug_when>
    <thetext>Fix attempt in http://trac.webkit.org/changeset/199782</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276805</attachid>
            <date>2016-04-19 22:52:28 -0700</date>
            <delta_ts>2016-04-20 11:02:15 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>24196</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9G
ZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCBhNWVhMWY0YS4uODM1YzgyMiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZwpAQCAtNzcsNyArNzcsNyBAQCBFTkFCTEVfR0VPTE9DQVRJT04gPSBF
TkFCTEVfR0VPTE9DQVRJT047CiBFTkFCTEVfSUNPTkRBVEFCQVNFW3Nkaz1tYWNvc3gqXSA9IEVO
QUJMRV9JQ09OREFUQUJBU0U7CiBFTkFCTEVfU0VSVklDRV9DT05UUk9MU1tzZGs9bWFjb3N4Kl0g
PSBFTkFCTEVfU0VSVklDRV9DT05UUk9MUzsKIEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFID0gRU5B
QkxFX0lOREVYRURfREFUQUJBU0U7Ci1FTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJT
ID0gOworRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUyA9IEVOQUJMRV9JTkRFWEVE
X0RBVEFCQVNFX0lOX1dPUktFUlM7CiBFTkFCTEVfSU5ESUVfVUkgPSBFTkFCTEVfSU5ESUVfVUk7
CiBFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUltzZGs9bWFjb3N4Kl0gPSBFTkFCTEVfSU5QVVRfVFlQ
RV9DT0xPUjsKIEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVJbc2RrPW1hY29zeCpdID0g
RU5BQkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYkNv
cmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggYTVlYTFmNGEu
LjgzNWM4MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1
cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0Zl
YXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC03Nyw3ICs3Nyw3IEBAIEVOQUJMRV9HRU9MT0NBVElP
TiA9IEVOQUJMRV9HRU9MT0NBVElPTjsKIEVOQUJMRV9JQ09OREFUQUJBU0Vbc2RrPW1hY29zeCpd
ID0gRU5BQkxFX0lDT05EQVRBQkFTRTsKIEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTW3Nkaz1tYWNv
c3gqXSA9IEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTOwogRU5BQkxFX0lOREVYRURfREFUQUJBU0Ug
PSBFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRTsKLUVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dP
UktFUlMgPSA7CitFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTID0gRU5BQkxFX0lO
REVYRURfREFUQUJBU0VfSU5fV09SS0VSUzsKIEVOQUJMRV9JTkRJRV9VSSA9IEVOQUJMRV9JTkRJ
RV9VSTsKIEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SW3Nkaz1tYWNvc3gqXSA9IEVOQUJMRV9JTlBV
VF9UWVBFX0NPTE9SOwogRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUltzZGs9bWFjb3N4
Kl0gPSBFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvV29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJh
c2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvV29ya2VyR2xvYmFsU2Nv
cGVJbmRleGVkRGF0YWJhc2UuY3BwCmluZGV4IGEyYWIwMjAuLmY3MTNiNDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL1dvcmtlckdsb2JhbFNjb3BlSW5kZXhl
ZERhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9Xb3Jr
ZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZS5jcHAKQEAgLTM0LDEwICszNCwxMSBAQAogI2lu
Y2x1ZGUgIklEQkZhY3RvcnkuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0Lmgi
CiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29w
ZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVdvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERh
dGFiYXNlOjpXb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZSgpCitXb3JrZXJHbG9iYWxT
Y29wZUluZGV4ZWREYXRhYmFzZTo6V29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2UoV29y
a2VyR2xvYmFsU2NvcGUmKQogewogfQogCkBAIC01MCwyMCArNTEsMjAgQEAgY29uc3QgY2hhciog
V29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2U6OnN1cHBsZW1lbnROYW1lKCkKICAgICBy
ZXR1cm4gIldvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNlIjsKIH0KIAotV29ya2VyR2xv
YmFsU2NvcGVJbmRleGVkRGF0YWJhc2UqIFdvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNl
Ojpmcm9tKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCitXb3JrZXJHbG9iYWxTY29w
ZUluZGV4ZWREYXRhYmFzZSogV29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2U6OmZyb20o
V29ya2VyR2xvYmFsU2NvcGUmIHNjb3BlKQogewotICAgIFdvcmtlckdsb2JhbFNjb3BlSW5kZXhl
ZERhdGFiYXNlKiBzdXBwbGVtZW50ID0gc3RhdGljX2Nhc3Q8V29ya2VyR2xvYmFsU2NvcGVJbmRl
eGVkRGF0YWJhc2UqPihTdXBwbGVtZW50PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+Ojpmcm9tKGNv
bnRleHQsIHN1cHBsZW1lbnROYW1lKCkpKTsKKyAgICBXb3JrZXJHbG9iYWxTY29wZUluZGV4ZWRE
YXRhYmFzZSogc3VwcGxlbWVudCA9IHN0YXRpY19jYXN0PFdvcmtlckdsb2JhbFNjb3BlSW5kZXhl
ZERhdGFiYXNlKj4oU3VwcGxlbWVudDxXb3JrZXJHbG9iYWxTY29wZT46OmZyb20oJnNjb3BlLCBz
dXBwbGVtZW50TmFtZSgpKSk7CiAgICAgaWYgKCFzdXBwbGVtZW50KSB7Ci0gICAgICAgIGF1dG8g
bmV3U3VwcGxlbWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8V29ya2VyR2xvYmFsU2NvcGVJbmRleGVk
RGF0YWJhc2U+KCk7CisgICAgICAgIGF1dG8gbmV3U3VwcGxlbWVudCA9IHN0ZDo6bWFrZV91bmlx
dWU8V29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2U+KHNjb3BlKTsKICAgICAgICAgc3Vw
cGxlbWVudCA9IG5ld1N1cHBsZW1lbnQuZ2V0KCk7Ci0gICAgICAgIHByb3ZpZGVUbyhjb250ZXh0
LCBzdXBwbGVtZW50TmFtZSgpLCBXVEZNb3ZlKG5ld1N1cHBsZW1lbnQpKTsKKyAgICAgICAgcHJv
dmlkZVRvKCZzY29wZSwgc3VwcGxlbWVudE5hbWUoKSwgV1RGTW92ZShuZXdTdXBwbGVtZW50KSk7
CiAgICAgfQogICAgIHJldHVybiBzdXBwbGVtZW50OwogfQogCi1JREJGYWN0b3J5KiBXb3JrZXJH
bG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZTo6aW5kZXhlZERCKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQpCitJREJGYWN0b3J5KiBXb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFz
ZTo6aW5kZXhlZERCKFdvcmtlckdsb2JhbFNjb3BlJiBzY29wZSkKIHsKLSAgICByZXR1cm4gZnJv
bShjb250ZXh0KS0+aW5kZXhlZERCKCk7CisgICAgcmV0dXJuIGZyb20oc2NvcGUpLT5pbmRleGVk
REIoKTsKIH0KIAogSURCRmFjdG9yeSogV29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2U6
OmluZGV4ZWREQigpCkBAIC03Myw0ICs3NCw0IEBAIElEQkZhY3RvcnkqIFdvcmtlckdsb2JhbFNj
b3BlSW5kZXhlZERhdGFiYXNlOjppbmRleGVkREIoKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKLSNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKyNlbmRpZiAvLyBFTkFCTEUo
SU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvV29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL1dvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERh
dGFiYXNlLmgKaW5kZXggOTU2Y2I2Ny4uZDVhY2NhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvV29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9Xb3JrZXJHbG9iYWxTY29wZUlu
ZGV4ZWREYXRhYmFzZS5oCkBAIC0yNCw4ICsyNCw3IEBACiAgKgogICovCiAKLSNpZm5kZWYgV29y
a2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2VfaAotI2RlZmluZSBXb3JrZXJHbG9iYWxTY29w
ZUluZGV4ZWREYXRhYmFzZV9oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RB
VEFCQVNFX0lOX1dPUktFUlMpCiAKQEAgLTM1LDE1ICszNCwxNSBAQAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBJREJGYWN0b3J5OwotY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsK
K2NsYXNzIFdvcmtlckdsb2JhbFNjb3BlOwogCi1jbGFzcyBXb3JrZXJHbG9iYWxTY29wZUluZGV4
ZWREYXRhYmFzZSA6IHB1YmxpYyBTdXBwbGVtZW50PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+IHsK
K2NsYXNzIFdvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNlIDogcHVibGljIFN1cHBsZW1l
bnQ8V29ya2VyR2xvYmFsU2NvcGU+IHsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBXb3JrZXJHbG9i
YWxTY29wZUluZGV4ZWREYXRhYmFzZSgpOworICAgIGV4cGxpY2l0IFdvcmtlckdsb2JhbFNjb3Bl
SW5kZXhlZERhdGFiYXNlKFdvcmtlckdsb2JhbFNjb3BlJik7CiAgICAgdmlydHVhbCB+V29ya2Vy
R2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2UoKTsKLSAgICBzdGF0aWMgV29ya2VyR2xvYmFsU2Nv
cGVJbmRleGVkRGF0YWJhc2UqIGZyb20oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogCi0gICAg
c3RhdGljIElEQkZhY3RvcnkqIGluZGV4ZWREQihTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7Cisg
ICAgc3RhdGljIFdvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNlKiBmcm9tKFdvcmtlckds
b2JhbFNjb3BlJik7CisgICAgc3RhdGljIElEQkZhY3RvcnkqIGluZGV4ZWREQihXb3JrZXJHbG9i
YWxTY29wZSYpOwogCiBwcml2YXRlOgogICAgIElEQkZhY3RvcnkqIGluZGV4ZWREQigpOwpAQCAt
NTQsNiArNTMsNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRp
ZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLQotI2VuZGlmIC8vIFdvcmtlckdsb2JhbFNj
b3BlSW5kZXhlZERhdGFiYXNlX2gKKyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRV9J
Tl9XT1JLRVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
V29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvV29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2UuaWRsCmluZGV4
IDc1NWY1YmYuLmZjN2Y3NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL1dvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNlLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9Xb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFz
ZS5pZGwKQEAgLTI3LDYgKzI3LDYgQEAKIFsKICAgICBDb25kaXRpb25hbD1JTkRFWEVEX0RBVEFC
QVNFX0lOX1dPUktFUlMsCiBdIHBhcnRpYWwgaW50ZXJmYWNlIFdvcmtlckdsb2JhbFNjb3BlIHsK
LSAgICBbRW5hYmxlZEF0UnVudGltZT1JbmRleGVkREJdIHJlYWRvbmx5IGF0dHJpYnV0ZSBJREJG
YWN0b3J5IGluZGV4ZWREQjsKKyAgICBbRW5hYmxlZEF0UnVudGltZT1JbmRleGVkREJXb3JrZXJz
XSByZWFkb25seSBhdHRyaWJ1dGUgSURCRmFjdG9yeSBpbmRleGVkREI7CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVy
ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZl
YXR1cmVzLmNwcAppbmRleCBlMWU0YzNlLi4xY2Y0YWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAK
QEAgLTQ2LDcgKzQ2LDYgQEAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6UnVudGltZUVuYWJsZWRG
ZWF0dXJlcygpCiAgICAgLCBtX2lzQXBwbGljYXRpb25DYWNoZUVuYWJsZWQodHJ1ZSkKICAgICAs
IG1faXNEYXRhVHJhbnNmZXJJdGVtc0VuYWJsZWQodHJ1ZSkKICAgICAsIG1faXNHZW9sb2NhdGlv
bkVuYWJsZWQodHJ1ZSkKLSAgICAsIG1faXNJbmRleGVkREJFbmFibGVkKGZhbHNlKQogICAgICwg
bV9pc1RvdWNoRW5hYmxlZCh0cnVlKQogICAgICwgbV9pc0RldmljZU1vdGlvbkVuYWJsZWQodHJ1
ZSkKICAgICAsIG1faXNEZXZpY2VPcmllbnRhdGlvbkVuYWJsZWQodHJ1ZSkKQEAgLTYwLDYgKzU5
LDEyIEBAIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMoKQog
I2Vsc2UKICAgICAsIG1faXNQbHVnaW5SZXBsYWNlbWVudEVuYWJsZWQoZmFsc2UpCiAjZW5kaWYK
KyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKyAgICAsIG1faXNJbmRleGVkREJFbmFibGVk
KGZhbHNlKQorI2VuZGlmCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykK
KyAgICAsIG1faXNJbmRleGVkREJXb3JrZXJzRW5hYmxlZChmYWxzZSkKKyNlbmRpZgogI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCiAgICAgLCBtX2lzTWVkaWFTdHJlYW1FbmFibGVkKHRydWUpCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGlt
ZUVuYWJsZWRGZWF0dXJlcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50
aW1lRW5hYmxlZEZlYXR1cmVzLmgKaW5kZXggZDUyNGZjZS4uMmMyMTg1OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1
cmVzLmgKQEAgLTYyLDkgKzYyLDE2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEdlb2xvY2F0aW9u
RW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2lzR2VvbG9jYXRpb25FbmFibGVkID0gaXNFbmFi
bGVkOyB9CiAgICAgYm9vbCBnZW9sb2NhdGlvbkVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lz
R2VvbG9jYXRpb25FbmFibGVkOyB9CiAKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAg
ICB2b2lkIHNldFdlYmtpdEluZGV4ZWREQkVuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9pc0lu
ZGV4ZWREQkVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KICAgICBib29sIHdlYmtpdEluZGV4ZWREQkVu
YWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzSW5kZXhlZERCRW5hYmxlZDsgfQogICAgIGJvb2wg
aW5kZXhlZERCRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNJbmRleGVkREJFbmFibGVkOyB9
CisjZW5kaWYKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpCisgICAg
dm9pZCBzZXRJbmRleGVkREJXb3JrZXJzRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2lzSW5k
ZXhlZERCV29ya2Vyc0VuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KKyAgICBib29sIGluZGV4ZWREQldv
cmtlcnNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0luZGV4ZWREQldvcmtlcnNFbmFibGVk
OyB9CisjZW5kaWYKIAogI2lmIEVOQUJMRShDU1NfU0hBUEVTKQogICAgIHZvaWQgc2V0Q1NTU2hh
cGVzRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2lzQ1NTU2hhcGVzRW5hYmxlZCA9IGlzRW5h
YmxlZDsgfQpAQCAtMjQ3LDcgKzI1NCw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzQXBwbGlj
YXRpb25DYWNoZUVuYWJsZWQ7CiAgICAgYm9vbCBtX2lzRGF0YVRyYW5zZmVySXRlbXNFbmFibGVk
OwogICAgIGJvb2wgbV9pc0dlb2xvY2F0aW9uRW5hYmxlZDsKLSAgICBib29sIG1faXNJbmRleGVk
REJFbmFibGVkOwogICAgIGJvb2wgbV9pc1RvdWNoRW5hYmxlZDsKICAgICBib29sIG1faXNEZXZp
Y2VNb3Rpb25FbmFibGVkOwogICAgIGJvb2wgbV9pc0RldmljZU9yaWVudGF0aW9uRW5hYmxlZDsK
QEAgLTI1OCw2ICsyNjQsMTQgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNMYW5nQXR0cmlidXRl
QXdhcmVGb3JtQ29udHJvbFVJRW5hYmxlZDsKICAgICBib29sIG1faXNQbHVnaW5SZXBsYWNlbWVu
dEVuYWJsZWQ7CiAKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKyAgICBib29sIG1faXNJ
bmRleGVkREJFbmFibGVkOworI2VuZGlmCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRV9J
Tl9XT1JLRVJTKQorICAgIGJvb2wgbV9pc0luZGV4ZWREQldvcmtlcnNFbmFibGVkOworI2VuZGlm
CisKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9JMThOX0FQSSkKICAgICBib29sIG1faXNKYXZhU2Ny
aXB0STE4TkFQSUVuYWJsZWQ7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuY3BwCmluZGV4IGJhNGZhOTAuLjhkY2Q1NjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcApAQCAtMTAzLDYgKzEwMyw3IEBAIEludGVy
bmFsU2V0dGluZ3M6OkJhY2t1cDo6QmFja3VwKFNldHRpbmdzJiBzZXR0aW5ncykKICNlbmRpZgog
ICAgICwgbV9hbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrKHNldHRpbmdzLmFsbG93c0lubGluZU1l
ZGlhUGxheWJhY2soKSkKICAgICAsIG1faW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJ
bmxpbmVBdHRyaWJ1dGUoc2V0dGluZ3MuaW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJ
bmxpbmVBdHRyaWJ1dGUoKSkKKyAgICAsIG1faW5kZXhlZERCV29ya2Vyc0VuYWJsZWQoUnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5pbmRleGVkREJXb3JrZXJzRW5hYmxl
ZCgpKCkpCiB7CiB9CiAKQEAgLTE3MCw2ICsxNzEsNyBAQCB2b2lkIEludGVybmFsU2V0dGluZ3M6
OkJhY2t1cDo6cmVzdG9yZVRvKFNldHRpbmdzJiBzZXR0aW5ncykKICAgICBzZXR0aW5ncy5zZXRB
bGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrKG1fYWxsb3dzSW5saW5lTWVkaWFQbGF5YmFjayk7CiAg
ICAgc2V0dGluZ3Muc2V0SW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRy
aWJ1dGUobV9pbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGluZUF0dHJpYnV0ZSk7
CiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRQbHVnaW5S
ZXBsYWNlbWVudEVuYWJsZWQobV9wbHVnaW5SZXBsYWNlbWVudEVuYWJsZWQpOworICAgIFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0SW5kZXhlZERCV29ya2Vyc0Vu
YWJsZWQobV9pbmRleGVkREJXb3JrZXJzRW5hYmxlZCk7CiB9CiAKIGNsYXNzIEludGVybmFsU2V0
dGluZ3NXcmFwcGVyIDogcHVibGljIFN1cHBsZW1lbnQ8UGFnZT4gewpAQCAtNTQwLDYgKzU0Miwx
MiBAQCB2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldElubGluZU1lZGlhUGxheWJhY2tSZXF1aXJl
c1BsYXlzSW5saW5lQXR0cmlidXRlKGJvb2wgcgogICAgIHNldHRpbmdzKCktPnNldElubGluZU1l
ZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlKHJlcXVpcmVzKTsKIH0KIAor
dm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRJbmRleGVkREJXb3JrZXJzRW5hYmxlZChib29sIGVu
YWJsZWQsIEV4Y2VwdGlvbkNvZGUmKQoreworICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNo
YXJlZEZlYXR1cmVzKCkuc2V0SW5kZXhlZERCV29ya2Vyc0VuYWJsZWQoZW5hYmxlZCk7Cit9CisK
KwogLy8gSWYgeW91IGFkZCB0byB0aGlzIGxpc3QsIG1ha2Ugc3VyZSB0aGF0IHlvdSB1cGRhdGUg
dGhlIEJhY2t1cCBjbGFzcyBmb3IgdGVzdCByZXByb2R1Y2FiaWxpdHkhCiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKaW5kZXggZTcxN2NiYi4uMjhmYWMyZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKQEAgLTEwMCw2ICsx
MDAsNyBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICAgICAgYm9vbCBtX2FsbG93c0lubGluZU1lZGlh
UGxheWJhY2s7CiAgICAgICAgIGJvb2wgbV9pbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5
c0lubGluZUF0dHJpYnV0ZTsKKyAgICAgICAgYm9vbCBtX2luZGV4ZWREQldvcmtlcnNFbmFibGVk
OwogICAgIH07CiAKICAgICBzdGF0aWMgUmVmPEludGVybmFsU2V0dGluZ3M+IGNyZWF0ZShQYWdl
KiBwYWdlKQpAQCAtMTQ3LDYgKzE0OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNjcm9sbGlu
Z1RyZWVJbmNsdWRlc0ZyYW1lcyhib29sLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRB
bGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrKGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lk
IHNldElubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlKGJvb2ws
IEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldEluZGV4ZWREQldvcmtlcnNFbmFibGVkKGJv
b2wsIEV4Y2VwdGlvbkNvZGUmKTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBJbnRlcm5hbFNl
dHRpbmdzKFBhZ2UqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxTZXR0aW5ncy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3Mu
aWRsCmluZGV4IDg4MzIzY2YuLmUzOWU3NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbFNldHRpbmdzLmlkbApAQCAtNzcsNSArNzcsNyBAQAogICAgIFtSYWlzZXNFeGNlcHRp
b25dIHZvaWQgc2V0TWluaW11bVRpbWVySW50ZXJ2YWwodW5yZXN0cmljdGVkIGRvdWJsZSBpbnRl
cnZhbEluU2Vjb25kcyk7CiAgICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzZXRBbGxvd3NJbmxp
bmVNZWRpYVBsYXliYWNrKGJvb2xlYW4gYWxsb3dzKTsKICAgICBbUmFpc2VzRXhjZXB0aW9uXSB2
b2lkIHNldElubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlKGJv
b2xlYW4gcmVxdWlyZXMpOworCisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzZXRJbmRleGVk
REJXb3JrZXJzRW5hYmxlZChib29sZWFuIHJlcXVpcmVzKTsKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAppbmRleCAwNjMwYzFlLi44MWExZGNjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCkBAIC00NywxMzQgKzQ3
LDEzNCBAQCBjbGFzcyBDb25zb2xlTWVzc2FnZTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0g
ICAgY2xhc3MgQmxvYjsKLSAgICBjbGFzcyBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhl
YWRlcnM7Ci0gICAgY2xhc3MgU2NoZWR1bGVkQWN0aW9uOwotICAgIGNsYXNzIFdvcmtlckxvY2F0
aW9uOwotICAgIGNsYXNzIFdvcmtlck5hdmlnYXRvcjsKLSAgICBjbGFzcyBXb3JrZXJUaHJlYWQ7
Ci0KLSAgICBjbGFzcyBXb3JrZXJHbG9iYWxTY29wZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtl
ckdsb2JhbFNjb3BlPiwgcHVibGljIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHB1YmxpYyBFdmVu
dFRhcmdldFdpdGhJbmxpbmVEYXRhIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHZpcnR1YWwgfldv
cmtlckdsb2JhbFNjb3BlKCk7CitjbGFzcyBCbG9iOworY2xhc3MgQ29udGVudFNlY3VyaXR5UG9s
aWN5UmVzcG9uc2VIZWFkZXJzOworY2xhc3MgU2NoZWR1bGVkQWN0aW9uOworY2xhc3MgV29ya2Vy
TG9jYXRpb247CitjbGFzcyBXb3JrZXJOYXZpZ2F0b3I7CitjbGFzcyBXb3JrZXJUaHJlYWQ7CiAK
LSAgICAgICAgYm9vbCBpc1dvcmtlckdsb2JhbFNjb3BlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gdHJ1ZTsgfQorY2xhc3MgV29ya2VyR2xvYmFsU2NvcGUgOiBwdWJsaWMgUmVmQ291bnRlZDxX
b3JrZXJHbG9iYWxTY29wZT4sIHB1YmxpYyBTdXBwbGVtZW50YWJsZTxXb3JrZXJHbG9iYWxTY29w
ZT4sIHB1YmxpYyBTY3JpcHRFeGVjdXRpb25Db250ZXh0LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRo
SW5saW5lRGF0YSB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V29ya2VyR2xvYmFsU2NvcGUoKTsK
IAotICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gY29uc3RfY2FzdDxXb3JrZXJHbG9iYWxTY29wZSo+KHRo
aXMpOyB9CisgICAgYm9vbCBpc1dvcmtlckdsb2JhbFNjb3BlKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gdHJ1ZTsgfQogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBpc0RlZGljYXRlZFdvcmtlckds
b2JhbFNjb3BlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gY29u
c3RfY2FzdDxXb3JrZXJHbG9iYWxTY29wZSo+KHRoaXMpOyB9CiAKLSAgICAgICAgY29uc3QgVVJM
JiB1cmwoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3VybDsgfQotICAgICAgICBVUkwgY29tcGxl
dGVVUkwoY29uc3QgU3RyaW5nJikgY29uc3QgZmluYWw7CisgICAgdmlydHVhbCBib29sIGlzRGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAg
ICAgIFN0cmluZyB1c2VyQWdlbnQoY29uc3QgVVJMJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgY29u
c3QgVVJMJiB1cmwoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3VybDsgfQorICAgIFVSTCBjb21w
bGV0ZVVSTChjb25zdCBTdHJpbmcmKSBjb25zdCBmaW5hbDsKIAotICAgICAgICB2b2lkIGRpc2Fi
bGVFdmFsKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKSBvdmVycmlkZTsKKyAgICBTdHJpbmcg
dXNlckFnZW50KGNvbnN0IFVSTCYpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgICAgIGJvb2wgc2hv
dWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5KCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3k7IH0KKyAg
ICB2b2lkIGRpc2FibGVFdmFsKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKSBvdmVycmlkZTsK
IAotICAgICAgICBXb3JrZXJTY3JpcHRDb250cm9sbGVyKiBzY3JpcHQoKSB7IHJldHVybiBtX3Nj
cmlwdC5nZXQoKTsgfQotICAgICAgICB2b2lkIGNsZWFyU2NyaXB0KCkgeyBtX3NjcmlwdCA9IG51
bGxwdHI7IH0KKyAgICBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBv
bGljeSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVu
dFNlY3VyaXR5UG9saWN5OyB9CiAKLSAgICAgICAgV29ya2VyVGhyZWFkJiB0aHJlYWQoKSBjb25z
dCB7IHJldHVybiBtX3RocmVhZDsgfQorICAgIFdvcmtlclNjcmlwdENvbnRyb2xsZXIqIHNjcmlw
dCgpIHsgcmV0dXJuIG1fc2NyaXB0LmdldCgpOyB9CisgICAgdm9pZCBjbGVhclNjcmlwdCgpIHsg
bV9zY3JpcHQgPSBudWxscHRyOyB9CiAKLSAgICAgICAgdXNpbmcgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dDo6aGFzUGVuZGluZ0FjdGl2aXR5OworICAgIFdvcmtlclRocmVhZCYgdGhyZWFkKCkgY29u
c3QgeyByZXR1cm4gbV90aHJlYWQ7IH0KIAotICAgICAgICB2b2lkIHBvc3RUYXNrKFRhc2spIG92
ZXJyaWRlOyAvLyBFeGVjdXRlcyB0aGUgdGFzayBvbiBjb250ZXh0J3MgdGhyZWFkIGFzeW5jaHJv
bm91c2x5LgorICAgIHVzaW5nIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6Omhhc1BlbmRpbmdBY3Rp
dml0eTsKIAotICAgICAgICAvLyBXb3JrZXJHbG9iYWxTY29wZQotICAgICAgICBXb3JrZXJHbG9i
YWxTY29wZSogc2VsZigpIHsgcmV0dXJuIHRoaXM7IH0KLSAgICAgICAgV29ya2VyTG9jYXRpb24q
IGxvY2F0aW9uKCkgY29uc3Q7Ci0gICAgICAgIHZvaWQgY2xvc2UoKTsKKyAgICB2b2lkIHBvc3RU
YXNrKFRhc2spIG92ZXJyaWRlOyAvLyBFeGVjdXRlcyB0aGUgdGFzayBvbiBjb250ZXh0J3MgdGhy
ZWFkIGFzeW5jaHJvbm91c2x5LgogCi0gICAgICAgIC8vIFdvcmtlclV0aWxzCi0gICAgICAgIHZp
cnR1YWwgdm9pZCBpbXBvcnRTY3JpcHRzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB1cmxzLCBFeGNl
cHRpb25Db2RlJik7Ci0gICAgICAgIFdvcmtlck5hdmlnYXRvciogbmF2aWdhdG9yKCkgY29uc3Q7
CisgICAgLy8gV29ya2VyR2xvYmFsU2NvcGUKKyAgICBXb3JrZXJHbG9iYWxTY29wZSogc2VsZigp
IHsgcmV0dXJuIHRoaXM7IH0KKyAgICBXb3JrZXJMb2NhdGlvbiogbG9jYXRpb24oKSBjb25zdDsK
KyAgICB2b2lkIGNsb3NlKCk7CiAKLSAgICAgICAgLy8gVGltZXJzCi0gICAgICAgIGludCBzZXRU
aW1lb3V0KHN0ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWRBY3Rpb24+LCBpbnQgdGltZW91dCk7Ci0g
ICAgICAgIHZvaWQgY2xlYXJUaW1lb3V0KGludCB0aW1lb3V0SWQpOwotICAgICAgICBpbnQgc2V0
SW50ZXJ2YWwoc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4sIGludCB0aW1lb3V0KTsK
LSAgICAgICAgdm9pZCBjbGVhckludGVydmFsKGludCB0aW1lb3V0SWQpOworICAgIC8vIFdvcmtl
clV0aWxzCisgICAgdmlydHVhbCB2b2lkIGltcG9ydFNjcmlwdHMoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIHVybHMsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBXb3JrZXJOYXZpZ2F0b3IqIG5hdmlnYXRv
cigpIGNvbnN0OwogCi0gICAgICAgIGJvb2wgaXNDb250ZXh0VGhyZWFkKCkgY29uc3Qgb3ZlcnJp
ZGU7Ci0gICAgICAgIGJvb2wgaXNKU0V4ZWN1dGlvbkZvcmJpZGRlbigpIGNvbnN0IG92ZXJyaWRl
OworICAgIC8vIFRpbWVycworICAgIGludCBzZXRUaW1lb3V0KHN0ZDo6dW5pcXVlX3B0cjxTY2hl
ZHVsZWRBY3Rpb24+LCBpbnQgdGltZW91dCk7CisgICAgdm9pZCBjbGVhclRpbWVvdXQoaW50IHRp
bWVvdXRJZCk7CisgICAgaW50IHNldEludGVydmFsKHN0ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWRB
Y3Rpb24+LCBpbnQgdGltZW91dCk7CisgICAgdm9pZCBjbGVhckludGVydmFsKGludCB0aW1lb3V0
SWQpOwogCi0gICAgICAgIC8vIFRoZXNlIG1ldGhvZHMgYXJlIHVzZWQgZm9yIEdDIG1hcmtpbmcu
IFNlZSBKU1dvcmtlckdsb2JhbFNjb3BlOjp2aXNpdENoaWxkcmVuVmlydHVhbChTbG90VmlzaXRv
ciYpIGluCi0gICAgICAgIC8vIEpTV29ya2VyR2xvYmFsU2NvcGVDdXN0b20uY3BwLgotICAgICAg
ICBXb3JrZXJOYXZpZ2F0b3IqIG9wdGlvbmFsTmF2aWdhdG9yKCkgY29uc3QgeyByZXR1cm4gbV9u
YXZpZ2F0b3IuZ2V0KCk7IH0KLSAgICAgICAgV29ya2VyTG9jYXRpb24qIG9wdGlvbmFsTG9jYXRp
b24oKSBjb25zdCB7IHJldHVybiBtX2xvY2F0aW9uLmdldCgpOyB9CisgICAgYm9vbCBpc0NvbnRl
eHRUaHJlYWQoKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGlzSlNFeGVjdXRpb25Gb3JiaWRk
ZW4oKSBjb25zdCBvdmVycmlkZTsKIAotICAgICAgICB1c2luZyBSZWZDb3VudGVkPFdvcmtlckds
b2JhbFNjb3BlPjo6cmVmOwotICAgICAgICB1c2luZyBSZWZDb3VudGVkPFdvcmtlckdsb2JhbFNj
b3BlPjo6ZGVyZWY7CisgICAgLy8gVGhlc2UgbWV0aG9kcyBhcmUgdXNlZCBmb3IgR0MgbWFya2lu
Zy4gU2VlIEpTV29ya2VyR2xvYmFsU2NvcGU6OnZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNp
dG9yJikgaW4KKyAgICAvLyBKU1dvcmtlckdsb2JhbFNjb3BlQ3VzdG9tLmNwcC4KKyAgICBXb3Jr
ZXJOYXZpZ2F0b3IqIG9wdGlvbmFsTmF2aWdhdG9yKCkgY29uc3QgeyByZXR1cm4gbV9uYXZpZ2F0
b3IuZ2V0KCk7IH0KKyAgICBXb3JrZXJMb2NhdGlvbiogb3B0aW9uYWxMb2NhdGlvbigpIGNvbnN0
IHsgcmV0dXJuIG1fbG9jYXRpb24uZ2V0KCk7IH0KIAotICAgICAgICBib29sIGlzQ2xvc2luZygp
IHsgcmV0dXJuIG1fY2xvc2luZzsgfQorICAgIHVzaW5nIFJlZkNvdW50ZWQ8V29ya2VyR2xvYmFs
U2NvcGU+OjpyZWY7CisgICAgdXNpbmcgUmVmQ291bnRlZDxXb3JrZXJHbG9iYWxTY29wZT46OmRl
cmVmOwogCi0gICAgICAgIC8vIEFuIG9ic2VydmVyIGludGVyZmFjZSB0byBiZSBub3RpZmllZCB3
aGVuIHRoZSB3b3JrZXIgdGhyZWFkIGlzIGdldHRpbmcgc3RvcHBlZC4KLSAgICAgICAgY2xhc3Mg
T2JzZXJ2ZXIgewotICAgICAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoT2JzZXJ2ZXIpOwot
ICAgICAgICBwdWJsaWM6Ci0gICAgICAgICAgICBPYnNlcnZlcihXb3JrZXJHbG9iYWxTY29wZSop
OwotICAgICAgICAgICAgdmlydHVhbCB+T2JzZXJ2ZXIoKTsKLSAgICAgICAgICAgIHZpcnR1YWwg
dm9pZCBub3RpZnlTdG9wKCkgPSAwOwotICAgICAgICAgICAgdm9pZCBzdG9wT2JzZXJ2aW5nKCk7
Ci0gICAgICAgIHByaXZhdGU6Ci0gICAgICAgICAgICBXb3JrZXJHbG9iYWxTY29wZSogbV9jb250
ZXh0OwotICAgICAgICB9OwotICAgICAgICBmcmllbmQgY2xhc3MgT2JzZXJ2ZXI7Ci0gICAgICAg
IHZvaWQgcmVnaXN0ZXJPYnNlcnZlcihPYnNlcnZlciopOwotICAgICAgICB2b2lkIHVucmVnaXN0
ZXJPYnNlcnZlcihPYnNlcnZlciopOwotICAgICAgICB2b2lkIG5vdGlmeU9ic2VydmVyc09mU3Rv
cCgpOworICAgIGJvb2wgaXNDbG9zaW5nKCkgeyByZXR1cm4gbV9jbG9zaW5nOyB9CiAKLSAgICAg
ICAgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
dG9wT3JpZ2luLmdldCgpOyB9CisgICAgLy8gQW4gb2JzZXJ2ZXIgaW50ZXJmYWNlIHRvIGJlIG5v
dGlmaWVkIHdoZW4gdGhlIHdvcmtlciB0aHJlYWQgaXMgZ2V0dGluZyBzdG9wcGVkLgorICAgIGNs
YXNzIE9ic2VydmVyIHsKKyAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoT2JzZXJ2ZXIpOwor
ICAgIHB1YmxpYzoKKyAgICAgICAgT2JzZXJ2ZXIoV29ya2VyR2xvYmFsU2NvcGUqKTsKKyAgICAg
ICAgdmlydHVhbCB+T2JzZXJ2ZXIoKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIG5vdGlmeVN0b3Ao
KSA9IDA7CisgICAgICAgIHZvaWQgc3RvcE9ic2VydmluZygpOworICAgIHByaXZhdGU6CisgICAg
ICAgIFdvcmtlckdsb2JhbFNjb3BlKiBtX2NvbnRleHQ7CisgICAgfTsKKyAgICBmcmllbmQgY2xh
c3MgT2JzZXJ2ZXI7CisgICAgdm9pZCByZWdpc3Rlck9ic2VydmVyKE9ic2VydmVyKik7CisgICAg
dm9pZCB1bnJlZ2lzdGVyT2JzZXJ2ZXIoT2JzZXJ2ZXIqKTsKKyAgICB2b2lkIG5vdGlmeU9ic2Vy
dmVyc09mU3RvcCgpOwogCi0gICAgICAgIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2Uoc3RkOjp1bmlx
dWVfcHRyPEluc3BlY3Rvcjo6Q29uc29sZU1lc3NhZ2U+KTsKLSAgICAgICAgdm9pZCBhZGRDb25z
b2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApIG92ZXJyaWRlOworICAg
IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3Rv
cE9yaWdpbi5nZXQoKTsgfQorCisgICAgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShzdGQ6OnVuaXF1
ZV9wdHI8SW5zcGVjdG9yOjpDb25zb2xlTWVzc2FnZT4pOworICAgIHZvaWQgYWRkQ29uc29sZU1l
c3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKSBvdmVycmlkZTsKIAogI2lmIEVO
QUJMRShTVUJUTEVfQ1JZUFRPKQotICAgICAgICBib29sIHdyYXBDcnlwdG9LZXkoY29uc3QgVmVj
dG9yPHVpbnQ4X3Q+JiBrZXksIFZlY3Rvcjx1aW50OF90PiYgd3JhcHBlZEtleSkgb3ZlcnJpZGU7
Ci0gICAgICAgIGJvb2wgdW53cmFwQ3J5cHRvS2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgd3Jh
cHBlZEtleSwgVmVjdG9yPHVpbnQ4X3Q+JiBrZXkpIG92ZXJyaWRlOworICAgIGJvb2wgd3JhcENy
eXB0b0tleShjb25zdCBWZWN0b3I8dWludDhfdD4mIGtleSwgVmVjdG9yPHVpbnQ4X3Q+JiB3cmFw
cGVkS2V5KSBvdmVycmlkZTsKKyAgICBib29sIHVud3JhcENyeXB0b0tleShjb25zdCBWZWN0b3I8
dWludDhfdD4mIHdyYXBwZWRLZXksIFZlY3Rvcjx1aW50OF90PiYga2V5KSBvdmVycmlkZTsKICNl
bmRpZgogCi0gICAgcHJvdGVjdGVkOgotICAgICAgICBXb3JrZXJHbG9iYWxTY29wZShjb25zdCBV
UkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgV29ya2VyVGhyZWFkJiwgYm9vbCBzaG91bGRC
eXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFBhc3NSZWZQdHI8U2VjdXJpdHlP
cmlnaW4+IHRvcE9yaWdpbik7Ci0gICAgICAgIHZvaWQgYXBwbHlDb250ZW50U2VjdXJpdHlQb2xp
Y3lSZXNwb25zZUhlYWRlcnMoY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFk
ZXJzJik7Citwcm90ZWN0ZWQ6CisgICAgV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiwgY29u
c3QgU3RyaW5nJiB1c2VyQWdlbnQsIFdvcmtlclRocmVhZCYsIGJvb2wgc2hvdWxkQnlwYXNzTWFp
bldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0
b3BPcmlnaW4pOworICAgIHZvaWQgYXBwbHlDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhl
YWRlcnMoY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJik7CiAKLSAg
ICAgICAgdm9pZCBsb2dFeGNlcHRpb25Ub0NvbnNvbGUoY29uc3QgU3RyaW5nJiBlcnJvck1lc3Nh
Z2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBpbnQgbGluZU51bWJlciwgaW50IGNvbHVtbk51
bWJlciwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmKSBvdmVycmlkZTsKLSAg
ICAgICAgdm9pZCBhZGRNZXNzYWdlVG9Xb3JrZXJDb25zb2xlKHN0ZDo6dW5pcXVlX3B0cjxJbnNw
ZWN0b3I6OkNvbnNvbGVNZXNzYWdlPik7Ci0gICAgICAgIHZvaWQgYWRkTWVzc2FnZVRvV29ya2Vy
Q29uc29sZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVk
IGNvbHVtbk51bWJlciwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmLCBKU0M6
OkV4ZWNTdGF0ZSogPSAwLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCk7Cisg
ICAgdm9pZCBsb2dFeGNlcHRpb25Ub0NvbnNvbGUoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2Us
IGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBpbnQgbGluZU51bWJlciwgaW50IGNvbHVtbk51bWJl
ciwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmKSBvdmVycmlkZTsKKyAgICB2
b2lkIGFkZE1lc3NhZ2VUb1dvcmtlckNvbnNvbGUoc3RkOjp1bmlxdWVfcHRyPEluc3BlY3Rvcjo6
Q29uc29sZU1lc3NhZ2U+KTsKKyAgICB2b2lkIGFkZE1lc3NhZ2VUb1dvcmtlckNvbnNvbGUoTWVz
c2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0
cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1i
ZXIsIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4mJiwgSlNDOjpFeGVjU3RhdGUq
ID0gMCwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOwogCi0gICAgcHJpdmF0
ZToKLSAgICAgICAgdm9pZCByZWZTY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgb3ZlcnJpZGUgeyBy
ZWYoKTsgfQotICAgICAgICB2b2lkIGRlcmVmU2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIG92ZXJy
aWRlIHsgZGVyZWYoKTsgfQorcHJpdmF0ZToKKyAgICB2b2lkIHJlZlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSBvdmVycmlkZSB7IHJlZigpOyB9CisgICAgdm9pZCBkZXJlZlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSBvdmVycmlkZSB7IGRlcmVmKCk7IH0KIAotICAgICAgICB2b2lkIHJlZkV2ZW50
VGFyZ2V0KCkgZmluYWwgeyByZWYoKTsgfQotICAgICAgICB2b2lkIGRlcmVmRXZlbnRUYXJnZXQo
KSBmaW5hbCB7IGRlcmVmKCk7IH0KKyAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBy
ZWYoKTsgfQorICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgZGVyZWYoKTsgfQog
Ci0gICAgICAgIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxp
bmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0
Q2FsbFN0YWNrPiYmLCBKU0M6OkV4ZWNTdGF0ZSogPSAwLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJ
ZGVudGlmaWVyID0gMCkgb3ZlcnJpZGU7CisgICAgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3Vy
Y2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNv
dXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBSZWZQ
dHI8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYsIEpTQzo6RXhlY1N0YXRlKiA9IDAsIHVu
c2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKSBvdmVycmlkZTsKIAotICAgICAgICBF
dmVudFRhcmdldCogZXJyb3JFdmVudFRhcmdldCgpIG92ZXJyaWRlOworICAgIEV2ZW50VGFyZ2V0
KiBlcnJvckV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGU7CiAKLSAgICAgICAgV29ya2VyRXZlbnRRdWV1
ZSYgZXZlbnRRdWV1ZSgpIGNvbnN0IGZpbmFsOworICAgIFdvcmtlckV2ZW50UXVldWUmIGV2ZW50
UXVldWUoKSBjb25zdCBmaW5hbDsKIAotICAgICAgICBVUkwgbV91cmw7Ci0gICAgICAgIFN0cmlu
ZyBtX3VzZXJBZ2VudDsKKyAgICBVUkwgbV91cmw7CisgICAgU3RyaW5nIG1fdXNlckFnZW50Owog
Ci0gICAgICAgIG11dGFibGUgUmVmUHRyPFdvcmtlckxvY2F0aW9uPiBtX2xvY2F0aW9uOwotICAg
ICAgICBtdXRhYmxlIFJlZlB0cjxXb3JrZXJOYXZpZ2F0b3I+IG1fbmF2aWdhdG9yOworICAgIG11
dGFibGUgUmVmUHRyPFdvcmtlckxvY2F0aW9uPiBtX2xvY2F0aW9uOworICAgIG11dGFibGUgUmVm
UHRyPFdvcmtlck5hdmlnYXRvcj4gbV9uYXZpZ2F0b3I7CiAKLSAgICAgICAgc3RkOjp1bmlxdWVf
cHRyPFdvcmtlclNjcmlwdENvbnRyb2xsZXI+IG1fc2NyaXB0OwotICAgICAgICBXb3JrZXJUaHJl
YWQmIG1fdGhyZWFkOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXb3JrZXJTY3JpcHRDb250cm9sbGVy
PiBtX3NjcmlwdDsKKyAgICBXb3JrZXJUaHJlYWQmIG1fdGhyZWFkOwogCi0gICAgICAgIGJvb2wg
bV9jbG9zaW5nOwotICAgICAgICBib29sIG1fc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNl
Y3VyaXR5UG9saWN5OworICAgIGJvb2wgbV9jbG9zaW5nOworICAgIGJvb2wgbV9zaG91bGRCeXBh
c3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3k7CiAKLSAgICAgICAgSGFzaFNldDxPYnNl
cnZlcio+IG1fd29ya2VyT2JzZXJ2ZXJzOworICAgIEhhc2hTZXQ8T2JzZXJ2ZXIqPiBtX3dvcmtl
ck9ic2VydmVyczsKIAotICAgICAgICBtdXRhYmxlIFdvcmtlckV2ZW50UXVldWUgbV9ldmVudFF1
ZXVlOworICAgIG11dGFibGUgV29ya2VyRXZlbnRRdWV1ZSBtX2V2ZW50UXVldWU7CiAKLSAgICAg
ICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBtX3RvcE9yaWdpbjsKLSAgICB9OworICAgIFJlZlB0
cjxTZWN1cml0eU9yaWdpbj4gbV90b3BPcmlnaW47Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1
cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvRmVh
dHVyZURlZmluZXMueGNjb25maWcKaW5kZXggYTVlYTFmNGEuLjgzNWM4MjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnCkBAIC03Nyw3ICs3Nyw3IEBAIEVOQUJMRV9HRU9MT0NBVElPTiA9IEVOQUJMRV9HRU9M
T0NBVElPTjsKIEVOQUJMRV9JQ09OREFUQUJBU0Vbc2RrPW1hY29zeCpdID0gRU5BQkxFX0lDT05E
QVRBQkFTRTsKIEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTW3Nkaz1tYWNvc3gqXSA9IEVOQUJMRV9T
RVJWSUNFX0NPTlRST0xTOwogRU5BQkxFX0lOREVYRURfREFUQUJBU0UgPSBFTkFCTEVfSU5ERVhF
RF9EQVRBQkFTRTsKLUVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMgPSA7CitFTkFC
TEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTID0gRU5BQkxFX0lOREVYRURfREFUQUJBU0Vf
SU5fV09SS0VSUzsKIEVOQUJMRV9JTkRJRV9VSSA9IEVOQUJMRV9JTkRJRV9VSTsKIEVOQUJMRV9J
TlBVVF9UWVBFX0NPTE9SW3Nkaz1tYWNvc3gqXSA9IEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SOwog
RU5BQkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUltzZGs9bWFjb3N4Kl0gPSBFTkFCTEVfSU5Q
VVRfVFlQRV9DT0xPUl9QT1BPVkVSOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCBhNWVhMWY0YS4uODM1YzgyMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWcKQEAgLTc3LDcgKzc3LDcgQEAgRU5BQkxFX0dFT0xPQ0FUSU9OID0gRU5BQkxF
X0dFT0xPQ0FUSU9OOwogRU5BQkxFX0lDT05EQVRBQkFTRVtzZGs9bWFjb3N4Kl0gPSBFTkFCTEVf
SUNPTkRBVEFCQVNFOwogRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFNbc2RrPW1hY29zeCpdID0gRU5B
QkxFX1NFUlZJQ0VfQ09OVFJPTFM7CiBFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSA9IEVOQUJMRV9J
TkRFWEVEX0RBVEFCQVNFOwotRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUyA9IDsK
K0VOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMgPSBFTkFCTEVfSU5ERVhFRF9EQVRB
QkFTRV9JTl9XT1JLRVJTOwogRU5BQkxFX0lORElFX1VJID0gRU5BQkxFX0lORElFX1VJOwogRU5B
QkxFX0lOUFVUX1RZUEVfQ09MT1Jbc2RrPW1hY29zeCpdID0gRU5BQkxFX0lOUFVUX1RZUEVfQ09M
T1I7CiBFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSW3Nkaz1tYWNvc3gqXSA9IEVOQUJM
RV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276834</attachid>
            <date>2016-04-20 11:02:15 -0700</date>
            <delta_ts>2016-04-20 11:03:18 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>39237</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2M2VhNmYxLi4wNDNkNTRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjIgQEAKIDIwMTYtMDQt
MjAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCisgICAgICAgIE1vZGVybiBJ
REIgKFdvcmtlcnMpOiBFbmFibGUgSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTIGNvbXBpbGUg
dGltZSBmbGFnLCBidXQgZGlzYWJsZWQgaW4gUnVudGltZUVuYWJsZWRGZWF0dXJlcy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Njc4MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdGU6IE9uZSB0ZXN0
IGhhcyBzb21lICJGQUlMIiBsaW5lcyBpbiB0aGUgZXhwZWN0ZWQgcmVzdWx0cywgd2hpY2ggaXMg
aW50ZW50aW9uYWwuCisgICAgICAgIEFzIHdvcmsgb24gdGhpcyBwcm9ncmVzc2VzLCB0aG9zZSBG
QUlMcyB3aWxsIGJlY29tZSBQQVNTZXMgYW5kIHRoZSBleHBlY3RhdGlvbnMgd2lsbCBiZSB1cGRh
dGVkLgorICAgICAgICAKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3Vy
Y2VzL3dvcmtlcnMtZGlzYWJsZWQuanM6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL21vZGVybi9yZXNvdXJjZXMvd29ya2Vycy1lbmFibGUuanM6IEFkZGVkLgorICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi93b3JrZXJzLWRpc2FibGVkLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3dvcmtlcnMtZGlzYWJs
ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3dvcmtl
cnMtZW5hYmxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVk
ZGIvbW9kZXJuL3dvcmtlcnMtZW5hYmxlLmh0bWw6IEFkZGVkLgorCisyMDE2LTA0LTIwICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKwogICAgICAgICBBZGRyZXNzaW5nIGFkZGl0
aW9uYWwgcmV2aWV3IGZlZWRiYWNrIGZvcjoKICAgICAgICAgTW9kZXJuIElEQjogTG90cyBvZiBJ
REIgYmluZGluZ3MgY2xlYW51cCAoaW5jbHVkaW5nIG1ha2luZyBJREJWZXJzaW9uQ2hhbmdlRXZl
bnQgY29uc3RydWN0aWJsZSkuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTY3NjAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL21vZGVybi9yZXNvdXJjZXMvd29ya2Vycy1kaXNhYmxlZC5qcyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvd29ya2Vycy1kaXNhYmxlZC5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MTcxZWFlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy93b3JrZXJz
LWRpc2FibGVkLmpzCkBAIC0wLDAgKzEsMTAgQEAKK2lmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsK
KyAgICBpbXBvcnRTY3JpcHRzKCcuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcycpOwor
ICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uL3Jlc291cmNlcy9zaGFyZWQuanMnKTsKK30KKworZGVz
Y3JpcHRpb24oIkNoZWNrIHRvIG1ha2Ugc3VyZSBJbmRleGVkREIgaW4gd29ya2VycyBjYW4gYmUg
ZGlzYWJsZWQgYXQgcnVudGltZSIpOworCitzaG91bGRCZVVuZGVmaW5lZCgic2VsZi5pbmRleGVk
REIiKTsKKworZmluaXNoSlNUZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL3dvcmtlcnMtZW5hYmxlLmpzIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy93b3JrZXJzLWVuYWJsZS5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42N2QxODgyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy93b3Jr
ZXJzLWVuYWJsZS5qcwpAQCAtMCwwICsxLDEyIEBACitpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7
CisgICAgaW1wb3J0U2NyaXB0cygnLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMnKTsK
KyAgICBpbXBvcnRTY3JpcHRzKCcuLi8uLi9yZXNvdXJjZXMvc2hhcmVkLmpzJyk7Cit9CisKK2Rl
c2NyaXB0aW9uKCJDaGVjayB0byBtYWtlIHN1cmUgd2UgY2FuIGVuYWJsZSBJbmRleGVkREIgaW4g
d29ya2VycyB2aWEgYSBydW50aW1lIHNldHRpbmciKTsKKworc2hvdWxkQmVEZWZpbmVkKCJzZWxm
LmluZGV4ZWREQiIpOworc2hvdWxkQmVOb25OdWxsKCJzZWxmLmluZGV4ZWREQiIpOworc2hvdWxk
QmVUcnVlKCJzZWxmLmluZGV4ZWREQiBpbnN0YW5jZW9mIElEQkZhY3RvcnkiKTsKKworZmluaXNo
SlNUZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vd29ya2Vycy1kaXNhYmxlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb2Rlcm4vd29ya2Vycy1kaXNhYmxlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2MwOWE5NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi93b3JrZXJzLWRpc2FibGVkLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDExIEBACitbV29ya2VyXSBDaGVjayB0byBtYWtlIHN1cmUgSW5kZXhl
ZERCIGluIHdvcmtlcnMgY2FuIGJlIGRpc2FibGVkIGF0IHJ1bnRpbWUKKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1N0YXJ0aW5nIHdvcmtlcjogcmVzb3VyY2VzL3dvcmtlcnMtZGlz
YWJsZWQuanMKK1BBU1MgW1dvcmtlcl0gc2VsZi5pbmRleGVkREIgaXMgdW5kZWZpbmVkLgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi93b3JrZXJzLWRpc2FibGVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vd29ya2Vycy1kaXNh
YmxlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1M2YzMDQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vd29y
a2Vycy1kaXNhYmxlZC5odG1sCkBAIC0wLDAgKzEsMTcgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8c2NyaXB0PgorCisvKgorSW5kZXhlZERCIGZvciB3b3JrZXJzIGlzIGN1cnJlbnRseSBkaXNh
YmxlZCBieSBkZWZhdWx0LgorT25jZSB0aGF0IGNoYW5nZXMsIHdlJ2xsIG5lZWQgdGhlIGZvbGxv
d2luZyBjb2RlIHRvIGtlZXAgdGhpcyB0ZXN0IHBhc3NpbmcuCitpZiAod2luZG93LmludGVybmFs
cykKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldEluZGV4ZWREQldvcmtlcnNFbmFi
bGVkKGZhbHNlKTsKKyovCit3b3JrZXIgPSBzdGFydFdvcmtlcigncmVzb3VyY2VzL3dvcmtlcnMt
ZGlzYWJsZWQuanMnKTs8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi93b3JrZXJzLWVuYWJsZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vd29ya2Vycy1lbmFi
bGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwZDMx
MGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vd29ya2Vycy1lbmFibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK1tXb3JrZXJd
IENoZWNrIHRvIG1ha2Ugc3VyZSB3ZSBjYW4gZW5hYmxlIEluZGV4ZWREQiBpbiB3b3JrZXJzIHZp
YSBhIHJ1bnRpbWUgc2V0dGluZworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworU3Rh
cnRpbmcgd29ya2VyOiByZXNvdXJjZXMvd29ya2Vycy1lbmFibGUuanMKK1BBU1MgW1dvcmtlcl0g
c2VsZi5pbmRleGVkREIgaXMgZGVmaW5lZC4KK0ZBSUwgW1dvcmtlcl0gc2VsZi5pbmRleGVkREIg
c2hvdWxkIGJlIG5vbi1udWxsLiBXYXMgbnVsbAorRkFJTCBbV29ya2VyXSBzZWxmLmluZGV4ZWRE
QiBpbnN0YW5jZW9mIElEQkZhY3Rvcnkgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vd29ya2Vycy1lbmFibGUuaHRt
bCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi93b3JrZXJzLWVuYWJsZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkYWE1ZTYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vd29ya2Vycy1l
bmFibGUuaHRtbApAQCAtMCwwICsxLDEyIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlw
dD4KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0SW5kZXhlZERCV29ya2Vyc0VuYWJsZWQodHJ1ZSk7Cit3b3JrZXIgPSBzdGFydFdvcmtlcign
cmVzb3VyY2VzL3dvcmtlcnMtZW5hYmxlLmpzJyk7PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAxMjkzMmZlLi43ZGZiYzY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNi0wNC0yMCAgQnJhZHkgRWlkc29u
ICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW9kZXJuIElEQiAoV29ya2Vycyk6IEVu
YWJsZSBJTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMgY29tcGlsZSB0aW1lIGZsYWcsIGJ1dCBk
aXNhYmxlZCBpbiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2NzgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZzoKKwogMjAxNi0wNC0yMCAgU2FhbSBiYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNv
bT4KIAogICAgICAgICBSZW1vdmUgdW51c2VkIG1fd3JpdHRlblZhcmlhYmxlcyBmcm9tIHRoZSBw
YXJzZXIgYW5kIHJlbGF0ZWQgYml0cwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IGE1ZWEx
ZjRhLi44MzVjODIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJh
dGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC03Nyw3ICs3Nyw3IEBA
IEVOQUJMRV9HRU9MT0NBVElPTiA9IEVOQUJMRV9HRU9MT0NBVElPTjsKIEVOQUJMRV9JQ09OREFU
QUJBU0Vbc2RrPW1hY29zeCpdID0gRU5BQkxFX0lDT05EQVRBQkFTRTsKIEVOQUJMRV9TRVJWSUNF
X0NPTlRST0xTW3Nkaz1tYWNvc3gqXSA9IEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTOwogRU5BQkxF
X0lOREVYRURfREFUQUJBU0UgPSBFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRTsKLUVOQUJMRV9JTkRF
WEVEX0RBVEFCQVNFX0lOX1dPUktFUlMgPSA7CitFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9X
T1JLRVJTID0gRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUzsKIEVOQUJMRV9JTkRJ
RV9VSSA9IEVOQUJMRV9JTkRJRV9VSTsKIEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SW3Nkaz1tYWNv
c3gqXSA9IEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SOwogRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1Jf
UE9QT1ZFUltzZGs9bWFjb3N4Kl0gPSBFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDhiMzA0ZTMuLjgxNmVlYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSw1MiBA
QAogMjAxNi0wNC0yMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKKyAgICAg
ICAgTW9kZXJuIElEQiAoV29ya2Vycyk6IEVuYWJsZSBJTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktF
UlMgY29tcGlsZSB0aW1lIGZsYWcsIGJ1dCBkaXNhYmxlZCBpbiBSdW50aW1lRW5hYmxlZEZlYXR1
cmVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2
NzgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVz
dDogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3dvcmtlcnMtZGlzYWJsZWQuaHRtbAorICAgICAg
ICAgICAgICBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vd29ya2Vycy1lbmFibGUuaHRtbAorCisg
ICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisKKyAgICAg
ICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCBzaG91bGRuJ3QgcmVhbGx5IGJlIHN1cHBsZW1lbnRh
YmxlOgorICAgICAgICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg6CisKKyAgICAgICAg
V29ya2VyR2xvYmFsU2NvcGUgc2hvdWxkIGJlIHN1cHBsZW1lbnRhYmxlLgorICAgICAgICBBbHNv
IG1vZGVybml6ZSB0aGlzIGFyY2hhaWMgaGVhZGVyIChwcmFnbWEgb25jZSwgYW5kIHJlLWluZGVu
dCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAKKyAg
ICAgICAgVXBkYXRlIGZvciBXb3JrZXJHbG9iYWxTY29wZSBub3cgYmVpbmcgZGlyZWN0bHkgc3Vw
cGxlbWVudGFibGU6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvV29ya2VyR2xvYmFsU2Nv
cGVJbmRleGVkRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2Nv
cGVJbmRleGVkRGF0YWJhc2U6Oldvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNlKToKKyAg
ICAgICAgKFdlYkNvcmU6Oldvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNlOjpmcm9tKToK
KyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNlOjppbmRl
eGVkREIpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL1dvcmtlckdsb2JhbFNjb3BlSW5k
ZXhlZERhdGFiYXNlLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvV29ya2VyR2xvYmFs
U2NvcGVJbmRleGVkRGF0YWJhc2UuaWRsOgorICAgICAgICAqIE1vZHVsZXMvbm90aWZpY2F0aW9u
cy9Xb3JrZXJHbG9iYWxTY29wZU5vdGlmaWNhdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zOjpXb3JrZXJHbG9iYWxTY29wZU5vdGlmaWNh
dGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25z
Ojpmcm9tKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckdsb2JhbFNjb3BlTm90aWZpY2F0aW9u
czo6d2Via2l0Tm90aWZpY2F0aW9ucyk6CisgICAgICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25z
L1dvcmtlckdsb2JhbFNjb3BlTm90aWZpY2F0aW9ucy5oOgorICAgICAgICAKKyAgICAgICAgRXhw
b3NlIEluZGV4ZWREQldvcmtlcnMgdG8gUnVudGltZUVuYWJsZWRGZWF0dXJlczoKKyAgICAgICAg
KiBiaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6UnVudGltZUVuYWJsZWRGZWF0dXJlcyk6
CisgICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRJbmRleGVkREJXb3Jr
ZXJzRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpp
bmRleGVkREJXb3JrZXJzRW5hYmxlZCk6CisKKyAgICAgICAgRXhwb3NlIEluZGV4ZWREQldvcmtl
cnMgdG8gSW50ZXJuYWxTZXR0aW5nczoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGlu
Z3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpCYWNr
dXApOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpyZXN0b3Jl
VG8pOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6c2V0SW5kZXhlZERCV29y
a2Vyc0VuYWJsZWQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oOgorICAg
ICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGw6CisKKzIwMTYtMDQtMjAgIEJyYWR5
IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCiAgICAgICAgIEFkZHJlc3NpbmcgYWRkaXRp
b25hbCByZXZpZXcgZmVlZGJhY2sgZm9yOgogICAgICAgICBNb2Rlcm4gSURCOiBMb3RzIG9mIElE
QiBiaW5kaW5ncyBjbGVhbnVwIChpbmNsdWRpbmcgbWFraW5nIElEQlZlcnNpb25DaGFuZ2VFdmVu
dCBjb25zdHJ1Y3RpYmxlKS4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1Njc2MApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCBhNWVhMWY0YS4uODM1YzgyMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWcKKysrIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWcKQEAgLTc3LDcgKzc3LDcgQEAgRU5BQkxFX0dFT0xPQ0FUSU9OID0gRU5BQkxFX0dFT0xP
Q0FUSU9OOwogRU5BQkxFX0lDT05EQVRBQkFTRVtzZGs9bWFjb3N4Kl0gPSBFTkFCTEVfSUNPTkRB
VEFCQVNFOwogRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFNbc2RrPW1hY29zeCpdID0gRU5BQkxFX1NF
UlZJQ0VfQ09OVFJPTFM7CiBFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSA9IEVOQUJMRV9JTkRFWEVE
X0RBVEFCQVNFOwotRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUyA9IDsKK0VOQUJM
RV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMgPSBFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9J
Tl9XT1JLRVJTOwogRU5BQkxFX0lORElFX1VJID0gRU5BQkxFX0lORElFX1VJOwogRU5BQkxFX0lO
UFVUX1RZUEVfQ09MT1Jbc2RrPW1hY29zeCpdID0gRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1I7CiBF
TkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSW3Nkaz1tYWNvc3gqXSA9IEVOQUJMRV9JTlBV
VF9UWVBFX0NPTE9SX1BPUE9WRVI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9Xb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9Xb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFz
ZS5jcHAKaW5kZXggYTJhYjAyMC4uZjcxM2I0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvV29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL1dvcmtlckdsb2JhbFNjb3BlSW5k
ZXhlZERhdGFiYXNlLmNwcApAQCAtMzQsMTAgKzM0LDExIEBACiAjaW5jbHVkZSAiSURCRmFjdG9y
eS5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTZWN1
cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotV29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2U6Oldvcmtlckds
b2JhbFNjb3BlSW5kZXhlZERhdGFiYXNlKCkKK1dvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFi
YXNlOjpXb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZShXb3JrZXJHbG9iYWxTY29wZSYp
CiB7CiB9CiAKQEAgLTUwLDIwICs1MSwyMCBAQCBjb25zdCBjaGFyKiBXb3JrZXJHbG9iYWxTY29w
ZUluZGV4ZWREYXRhYmFzZTo6c3VwcGxlbWVudE5hbWUoKQogICAgIHJldHVybiAiV29ya2VyR2xv
YmFsU2NvcGVJbmRleGVkRGF0YWJhc2UiOwogfQogCi1Xb3JrZXJHbG9iYWxTY29wZUluZGV4ZWRE
YXRhYmFzZSogV29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2U6OmZyb20oU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCkKK1dvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNl
KiBXb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZTo6ZnJvbShXb3JrZXJHbG9iYWxTY29w
ZSYgc2NvcGUpCiB7Ci0gICAgV29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2UqIHN1cHBs
ZW1lbnQgPSBzdGF0aWNfY2FzdDxXb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZSo+KFN1
cHBsZW1lbnQ8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD46OmZyb20oY29udGV4dCwgc3VwcGxlbWVu
dE5hbWUoKSkpOworICAgIFdvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNlKiBzdXBwbGVt
ZW50ID0gc3RhdGljX2Nhc3Q8V29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2UqPihTdXBw
bGVtZW50PFdvcmtlckdsb2JhbFNjb3BlPjo6ZnJvbSgmc2NvcGUsIHN1cHBsZW1lbnROYW1lKCkp
KTsKICAgICBpZiAoIXN1cHBsZW1lbnQpIHsKLSAgICAgICAgYXV0byBuZXdTdXBwbGVtZW50ID0g
c3RkOjptYWtlX3VuaXF1ZTxXb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZT4oKTsKKyAg
ICAgICAgYXV0byBuZXdTdXBwbGVtZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxXb3JrZXJHbG9iYWxT
Y29wZUluZGV4ZWREYXRhYmFzZT4oc2NvcGUpOwogICAgICAgICBzdXBwbGVtZW50ID0gbmV3U3Vw
cGxlbWVudC5nZXQoKTsKLSAgICAgICAgcHJvdmlkZVRvKGNvbnRleHQsIHN1cHBsZW1lbnROYW1l
KCksIFdURk1vdmUobmV3U3VwcGxlbWVudCkpOworICAgICAgICBwcm92aWRlVG8oJnNjb3BlLCBz
dXBwbGVtZW50TmFtZSgpLCBXVEZNb3ZlKG5ld1N1cHBsZW1lbnQpKTsKICAgICB9CiAgICAgcmV0
dXJuIHN1cHBsZW1lbnQ7CiB9CiAKLUlEQkZhY3RvcnkqIFdvcmtlckdsb2JhbFNjb3BlSW5kZXhl
ZERhdGFiYXNlOjppbmRleGVkREIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKK0lE
QkZhY3RvcnkqIFdvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNlOjppbmRleGVkREIoV29y
a2VyR2xvYmFsU2NvcGUmIHNjb3BlKQogewotICAgIHJldHVybiBmcm9tKGNvbnRleHQpLT5pbmRl
eGVkREIoKTsKKyAgICByZXR1cm4gZnJvbShzY29wZSktPmluZGV4ZWREQigpOwogfQogCiBJREJG
YWN0b3J5KiBXb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZTo6aW5kZXhlZERCKCkKQEAg
LTczLDQgKzc0LDQgQEAgSURCRmFjdG9yeSogV29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJh
c2U6OmluZGV4ZWREQigpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEVO
QUJMRShJTkRFWEVEX0RBVEFCQVNFKQorI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNF
X0lOX1dPUktFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9Xb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZS5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvV29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2UuaAppbmRleCA5
NTZjYjY3Li5kNWFjY2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9Xb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL1dvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNlLmgK
QEAgLTI0LDggKzI0LDcgQEAKICAqCiAgKi8KIAotI2lmbmRlZiBXb3JrZXJHbG9iYWxTY29wZUlu
ZGV4ZWREYXRhYmFzZV9oCi0jZGVmaW5lIFdvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNl
X2gKKyNwcmFnbWEgb25jZQogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0VfSU5fV09SS0VS
UykKIApAQCAtMzUsMTUgKzM0LDE1IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIElE
QkZhY3Rvcnk7Ci1jbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xhc3MgV29ya2VyR2xv
YmFsU2NvcGU7CiAKLWNsYXNzIFdvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNlIDogcHVi
bGljIFN1cHBsZW1lbnQ8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD4geworY2xhc3MgV29ya2VyR2xv
YmFsU2NvcGVJbmRleGVkRGF0YWJhc2UgOiBwdWJsaWMgU3VwcGxlbWVudDxXb3JrZXJHbG9iYWxT
Y29wZT4gewogcHVibGljOgotICAgIGV4cGxpY2l0IFdvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERh
dGFiYXNlKCk7CisgICAgZXhwbGljaXQgV29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2Uo
V29ya2VyR2xvYmFsU2NvcGUmKTsKICAgICB2aXJ0dWFsIH5Xb3JrZXJHbG9iYWxTY29wZUluZGV4
ZWREYXRhYmFzZSgpOwotICAgIHN0YXRpYyBXb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFz
ZSogZnJvbShTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAKLSAgICBzdGF0aWMgSURCRmFjdG9y
eSogaW5kZXhlZERCKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKKyAgICBzdGF0aWMgV29ya2Vy
R2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2UqIGZyb20oV29ya2VyR2xvYmFsU2NvcGUmKTsKKyAg
ICBzdGF0aWMgSURCRmFjdG9yeSogaW5kZXhlZERCKFdvcmtlckdsb2JhbFNjb3BlJik7CiAKIHBy
aXZhdGU6CiAgICAgSURCRmFjdG9yeSogaW5kZXhlZERCKCk7CkBAIC01NCw2ICs1Myw0IEBAIHBy
aXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEVOQUJMRShJTkRF
WEVEX0RBVEFCQVNFKQotCi0jZW5kaWYgLy8gV29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJh
c2VfaAorI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9Xb3JrZXJHbG9iYWxTY29w
ZUluZGV4ZWREYXRhYmFzZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9X
b3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZS5pZGwKaW5kZXggNzU1ZjViZi4uZmM3Zjc3
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvV29ya2VyR2xv
YmFsU2NvcGVJbmRleGVkRGF0YWJhc2UuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL1dvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNlLmlkbApAQCAtMjcsNiAr
MjcsNiBAQAogWwogICAgIENvbmRpdGlvbmFsPUlOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUywK
IF0gcGFydGlhbCBpbnRlcmZhY2UgV29ya2VyR2xvYmFsU2NvcGUgewotICAgIFtFbmFibGVkQXRS
dW50aW1lPUluZGV4ZWREQl0gcmVhZG9ubHkgYXR0cmlidXRlIElEQkZhY3RvcnkgaW5kZXhlZERC
OworICAgIFtFbmFibGVkQXRSdW50aW1lPUluZGV4ZWREQldvcmtlcnNdIHJlYWRvbmx5IGF0dHJp
YnV0ZSBJREJGYWN0b3J5IGluZGV4ZWREQjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Xb3JrZXJHbG9iYWxTY29wZU5vdGlmaWNhdGlvbnMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL1dvcmtlckdsb2JhbFNj
b3BlTm90aWZpY2F0aW9ucy5jcHAKaW5kZXggYTk3NGVmYy4uZmE4ODY3NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL1dvcmtlckdsb2JhbFNjb3BlTm90
aWZpY2F0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25z
L1dvcmtlckdsb2JhbFNjb3BlTm90aWZpY2F0aW9ucy5jcHAKQEAgLTM2LDggKzM2LDggQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1Xb3JrZXJHbG9iYWxTY29wZU5vdGlmaWNhdGlvbnM6Oldv
cmtlckdsb2JhbFNjb3BlTm90aWZpY2F0aW9ucyhXb3JrZXJHbG9iYWxTY29wZSogY29udGV4dCkK
LSAgICA6IG1fY29udGV4dChjb250ZXh0KQorV29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25z
OjpXb3JrZXJHbG9iYWxTY29wZU5vdGlmaWNhdGlvbnMoV29ya2VyR2xvYmFsU2NvcGUmIHNjb3Bl
KQorICAgIDogbV9jb250ZXh0KCZzY29wZSkKIHsKIH0KIApAQCAtNTAsMjAgKzUwLDIwIEBAIGNv
bnN0IGNoYXIqIFdvcmtlckdsb2JhbFNjb3BlTm90aWZpY2F0aW9uczo6c3VwcGxlbWVudE5hbWUo
KQogICAgIHJldHVybiAiV29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zIjsKIH0KIAotV29y
a2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zKiBXb3JrZXJHbG9iYWxTY29wZU5vdGlmaWNhdGlv
bnM6OmZyb20oV29ya2VyR2xvYmFsU2NvcGUqIGNvbnRleHQpCitXb3JrZXJHbG9iYWxTY29wZU5v
dGlmaWNhdGlvbnMqIFdvcmtlckdsb2JhbFNjb3BlTm90aWZpY2F0aW9uczo6ZnJvbShXb3JrZXJH
bG9iYWxTY29wZSYgc2NvcGUpCiB7Ci0gICAgV29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25z
KiBzdXBwbGVtZW50ID0gc3RhdGljX2Nhc3Q8V29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25z
Kj4oU3VwcGxlbWVudDxTY3JpcHRFeGVjdXRpb25Db250ZXh0Pjo6ZnJvbShjb250ZXh0LCBzdXBw
bGVtZW50TmFtZSgpKSk7CisgICAgV29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zKiBzdXBw
bGVtZW50ID0gc3RhdGljX2Nhc3Q8V29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zKj4oU3Vw
cGxlbWVudDxXb3JrZXJHbG9iYWxTY29wZT46OmZyb20oJnNjb3BlLCBzdXBwbGVtZW50TmFtZSgp
KSk7CiAgICAgaWYgKCFzdXBwbGVtZW50KSB7Ci0gICAgICAgIGF1dG8gbmV3U3VwcGxlbWVudCA9
IHN0ZDo6bWFrZV91bmlxdWU8V29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zPihjb250ZXh0
KTsKKyAgICAgICAgYXV0byBuZXdTdXBwbGVtZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxXb3JrZXJH
bG9iYWxTY29wZU5vdGlmaWNhdGlvbnM+KHNjb3BlKTsKICAgICAgICAgc3VwcGxlbWVudCA9IG5l
d1N1cHBsZW1lbnQuZ2V0KCk7Ci0gICAgICAgIHByb3ZpZGVUbyhjb250ZXh0LCBzdXBwbGVtZW50
TmFtZSgpLCBXVEZNb3ZlKG5ld1N1cHBsZW1lbnQpKTsKKyAgICAgICAgcHJvdmlkZVRvKCZzY29w
ZSwgc3VwcGxlbWVudE5hbWUoKSwgV1RGTW92ZShuZXdTdXBwbGVtZW50KSk7CiAgICAgfQogICAg
IHJldHVybiBzdXBwbGVtZW50OwogfQogCi1Ob3RpZmljYXRpb25DZW50ZXIqIFdvcmtlckdsb2Jh
bFNjb3BlTm90aWZpY2F0aW9uczo6d2Via2l0Tm90aWZpY2F0aW9ucyhXb3JrZXJHbG9iYWxTY29w
ZSYgY29udGV4dCkKK05vdGlmaWNhdGlvbkNlbnRlciogV29ya2VyR2xvYmFsU2NvcGVOb3RpZmlj
YXRpb25zOjp3ZWJraXROb3RpZmljYXRpb25zKFdvcmtlckdsb2JhbFNjb3BlJiBzY29wZSkKIHsK
LSAgICByZXR1cm4gV29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zOjpmcm9tKCZjb250ZXh0
KS0+d2Via2l0Tm90aWZpY2F0aW9ucygpOworICAgIHJldHVybiBXb3JrZXJHbG9iYWxTY29wZU5v
dGlmaWNhdGlvbnM6OmZyb20oc2NvcGUpLT53ZWJraXROb3RpZmljYXRpb25zKCk7CiB9CiAKIE5v
dGlmaWNhdGlvbkNlbnRlciogV29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zOjp3ZWJraXRO
b3RpZmljYXRpb25zKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZp
Y2F0aW9ucy9Xb3JrZXJHbG9iYWxTY29wZU5vdGlmaWNhdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbm90aWZpY2F0aW9ucy9Xb3JrZXJHbG9iYWxTY29wZU5vdGlmaWNhdGlvbnMuaApp
bmRleCA5MGJhNTExLi4zYTk4YWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L25vdGlmaWNhdGlvbnMvV29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL1dvcmtlckdsb2JhbFNjb3BlTm90aWZp
Y2F0aW9ucy5oCkBAIC0zNywxMyArMzcsMTMgQEAgY2xhc3MgTm90aWZpY2F0aW9uQ2VudGVyOwog
Y2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFdvcmtlckdsb2JhbFNjb3BlOwog
Ci1jbGFzcyBXb3JrZXJHbG9iYWxTY29wZU5vdGlmaWNhdGlvbnMgOiBwdWJsaWMgU3VwcGxlbWVu
dDxTY3JpcHRFeGVjdXRpb25Db250ZXh0PiB7CitjbGFzcyBXb3JrZXJHbG9iYWxTY29wZU5vdGlm
aWNhdGlvbnMgOiBwdWJsaWMgU3VwcGxlbWVudDxXb3JrZXJHbG9iYWxTY29wZT4gewogcHVibGlj
OgotICAgIGV4cGxpY2l0IFdvcmtlckdsb2JhbFNjb3BlTm90aWZpY2F0aW9ucyhXb3JrZXJHbG9i
YWxTY29wZSopOworICAgIGV4cGxpY2l0IFdvcmtlckdsb2JhbFNjb3BlTm90aWZpY2F0aW9ucyhX
b3JrZXJHbG9iYWxTY29wZSYpOwogICAgIHZpcnR1YWwgfldvcmtlckdsb2JhbFNjb3BlTm90aWZp
Y2F0aW9ucygpOwogCiAgICAgc3RhdGljIE5vdGlmaWNhdGlvbkNlbnRlciogd2Via2l0Tm90aWZp
Y2F0aW9ucyhXb3JrZXJHbG9iYWxTY29wZSYpOwotICAgIHN0YXRpYyBXb3JrZXJHbG9iYWxTY29w
ZU5vdGlmaWNhdGlvbnMqIGZyb20oV29ya2VyR2xvYmFsU2NvcGUqKTsKKyAgICBzdGF0aWMgV29y
a2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zKiBmcm9tKFdvcmtlckdsb2JhbFNjb3BlJik7CiAK
IHByaXZhdGU6CiAgICAgTm90aWZpY2F0aW9uQ2VudGVyKiB3ZWJraXROb3RpZmljYXRpb25zKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFi
bGVkRmVhdHVyZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmNwcAppbmRleCBlMWU0YzNlLi4xY2Y0YWE3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0
dXJlcy5jcHAKQEAgLTQ2LDcgKzQ2LDYgQEAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6UnVudGlt
ZUVuYWJsZWRGZWF0dXJlcygpCiAgICAgLCBtX2lzQXBwbGljYXRpb25DYWNoZUVuYWJsZWQodHJ1
ZSkKICAgICAsIG1faXNEYXRhVHJhbnNmZXJJdGVtc0VuYWJsZWQodHJ1ZSkKICAgICAsIG1faXNH
ZW9sb2NhdGlvbkVuYWJsZWQodHJ1ZSkKLSAgICAsIG1faXNJbmRleGVkREJFbmFibGVkKGZhbHNl
KQogICAgICwgbV9pc1RvdWNoRW5hYmxlZCh0cnVlKQogICAgICwgbV9pc0RldmljZU1vdGlvbkVu
YWJsZWQodHJ1ZSkKICAgICAsIG1faXNEZXZpY2VPcmllbnRhdGlvbkVuYWJsZWQodHJ1ZSkKQEAg
LTYwLDYgKzU5LDEyIEBAIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OlJ1bnRpbWVFbmFibGVkRmVh
dHVyZXMoKQogI2Vsc2UKICAgICAsIG1faXNQbHVnaW5SZXBsYWNlbWVudEVuYWJsZWQoZmFsc2Up
CiAjZW5kaWYKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKyAgICAsIG1faXNJbmRleGVk
REJFbmFibGVkKGZhbHNlKQorI2VuZGlmCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0VfSU5f
V09SS0VSUykKKyAgICAsIG1faXNJbmRleGVkREJXb3JrZXJzRW5hYmxlZChmYWxzZSkKKyNlbmRp
ZgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgLCBtX2lzTWVkaWFTdHJlYW1FbmFibGVk
KHRydWUpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVy
aWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2Vu
ZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKaW5kZXggZDUyNGZjZS4uZGYyNjQ2OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZl
YXR1cmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5h
YmxlZEZlYXR1cmVzLmgKQEAgLTYyLDkgKzYyLDE2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEdl
b2xvY2F0aW9uRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2lzR2VvbG9jYXRpb25FbmFibGVk
ID0gaXNFbmFibGVkOyB9CiAgICAgYm9vbCBnZW9sb2NhdGlvbkVuYWJsZWQoKSBjb25zdCB7IHJl
dHVybiBtX2lzR2VvbG9jYXRpb25FbmFibGVkOyB9CiAKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKICAgICB2b2lkIHNldFdlYmtpdEluZGV4ZWREQkVuYWJsZWQoYm9vbCBpc0VuYWJsZWQp
IHsgbV9pc0luZGV4ZWREQkVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KICAgICBib29sIHdlYmtpdElu
ZGV4ZWREQkVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzSW5kZXhlZERCRW5hYmxlZDsgfQog
ICAgIGJvb2wgaW5kZXhlZERCRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNJbmRleGVkREJF
bmFibGVkOyB9CisjZW5kaWYKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktF
UlMpCisgICAgdm9pZCBzZXRJbmRleGVkREJXb3JrZXJzRW5hYmxlZChib29sIGlzRW5hYmxlZCkg
eyBtX2lzSW5kZXhlZERCV29ya2Vyc0VuYWJsZWQgPSBpc0VuYWJsZWQ7IGlmIChpc0VuYWJsZWQp
IHByaW50ZigiRU5BQkxFRFxuIik7fQorICAgIGJvb2wgaW5kZXhlZERCV29ya2Vyc0VuYWJsZWQo
KSBjb25zdCB7IHJldHVybiBtX2lzSW5kZXhlZERCV29ya2Vyc0VuYWJsZWQ7IH0KKyNlbmRpZgog
CiAjaWYgRU5BQkxFKENTU19TSEFQRVMpCiAgICAgdm9pZCBzZXRDU1NTaGFwZXNFbmFibGVkKGJv
b2wgaXNFbmFibGVkKSB7IG1faXNDU1NTaGFwZXNFbmFibGVkID0gaXNFbmFibGVkOyB9CkBAIC0y
NDcsNyArMjU0LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNBcHBsaWNhdGlvbkNhY2hlRW5h
YmxlZDsKICAgICBib29sIG1faXNEYXRhVHJhbnNmZXJJdGVtc0VuYWJsZWQ7CiAgICAgYm9vbCBt
X2lzR2VvbG9jYXRpb25FbmFibGVkOwotICAgIGJvb2wgbV9pc0luZGV4ZWREQkVuYWJsZWQ7CiAg
ICAgYm9vbCBtX2lzVG91Y2hFbmFibGVkOwogICAgIGJvb2wgbV9pc0RldmljZU1vdGlvbkVuYWJs
ZWQ7CiAgICAgYm9vbCBtX2lzRGV2aWNlT3JpZW50YXRpb25FbmFibGVkOwpAQCAtMjU4LDYgKzI2
NCwxNCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc0xhbmdBdHRyaWJ1dGVBd2FyZUZvcm1Db250
cm9sVUlFbmFibGVkOwogICAgIGJvb2wgbV9pc1BsdWdpblJlcGxhY2VtZW50RW5hYmxlZDsKIAor
I2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorICAgIGJvb2wgbV9pc0luZGV4ZWREQkVuYWJs
ZWQ7CisjZW5kaWYKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpCisg
ICAgYm9vbCBtX2lzSW5kZXhlZERCV29ya2Vyc0VuYWJsZWQ7CisjZW5kaWYKKwogI2lmIEVOQUJM
RShKQVZBU0NSSVBUX0kxOE5fQVBJKQogICAgIGJvb2wgbV9pc0phdmFTY3JpcHRJMThOQVBJRW5h
YmxlZDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0
LmgKaW5kZXggOWM1OWIzOS4uMDliYzE0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5oCkBAIC01Niw3ICs1Niw3IEBAIGNsYXNzIFB1YmxpY1VSTE1hbmFn
ZXI7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKIGNsYXNzIFVSTDsKIAotY2xhc3MgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCA6IHB1YmxpYyBTZWN1cml0eUNvbnRleHQsIHB1YmxpYyBTdXBwbGVtZW50
YWJsZTxTY3JpcHRFeGVjdXRpb25Db250ZXh0PiB7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250
ZXh0IDogcHVibGljIFNlY3VyaXR5Q29udGV4dCB7CiBwdWJsaWM6CiAgICAgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpOwogICAgIHZpcnR1YWwgflNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCmluZGV4IGJhNGZhOTAu
LmUwNjdkYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0
aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNw
cApAQCAtMTAzLDYgKzEwMyw3IEBAIEludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6QmFja3VwKFNl
dHRpbmdzJiBzZXR0aW5ncykKICNlbmRpZgogICAgICwgbV9hbGxvd3NJbmxpbmVNZWRpYVBsYXli
YWNrKHNldHRpbmdzLmFsbG93c0lubGluZU1lZGlhUGxheWJhY2soKSkKICAgICAsIG1faW5saW5l
TWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUoc2V0dGluZ3MuaW5saW5l
TWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUoKSkKKyAgICAsIG1faW5k
ZXhlZERCV29ya2Vyc0VuYWJsZWQoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVy
ZXMoKS5pbmRleGVkREJXb3JrZXJzRW5hYmxlZCgpKQogewogfQogCkBAIC0xNzAsNiArMTcxLDcg
QEAgdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpCYWNrdXA6OnJlc3RvcmVUbyhTZXR0aW5ncyYgc2V0
dGluZ3MpCiAgICAgc2V0dGluZ3Muc2V0QWxsb3dzSW5saW5lTWVkaWFQbGF5YmFjayhtX2FsbG93
c0lubGluZU1lZGlhUGxheWJhY2spOwogICAgIHNldHRpbmdzLnNldElubGluZU1lZGlhUGxheWJh
Y2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlKG1faW5saW5lTWVkaWFQbGF5YmFja1JlcXVp
cmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUpOwogICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNo
YXJlZEZlYXR1cmVzKCkuc2V0UGx1Z2luUmVwbGFjZW1lbnRFbmFibGVkKG1fcGx1Z2luUmVwbGFj
ZW1lbnRFbmFibGVkKTsKKyAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJl
cygpLnNldEluZGV4ZWREQldvcmtlcnNFbmFibGVkKG1faW5kZXhlZERCV29ya2Vyc0VuYWJsZWQp
OwogfQogCiBjbGFzcyBJbnRlcm5hbFNldHRpbmdzV3JhcHBlciA6IHB1YmxpYyBTdXBwbGVtZW50
PFBhZ2U+IHsKQEAgLTU0MCw2ICs1NDIsMTIgQEAgdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRJ
bmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGluZUF0dHJpYnV0ZShib29sIHIKICAg
ICBzZXR0aW5ncygpLT5zZXRJbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGluZUF0
dHJpYnV0ZShyZXF1aXJlcyk7CiB9CiAKK3ZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0SW5kZXhl
ZERCV29ya2Vyc0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJikKK3sKKyAgICBS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldEluZGV4ZWREQldvcmtl
cnNFbmFibGVkKGVuYWJsZWQpOworfQorCisKIC8vIElmIHlvdSBhZGQgdG8gdGhpcyBsaXN0LCBt
YWtlIHN1cmUgdGhhdCB5b3UgdXBkYXRlIHRoZSBCYWNrdXAgY2xhc3MgZm9yIHRlc3QgcmVwcm9k
dWNhYmlsaXR5IQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5o
CmluZGV4IGU3MTdjYmIuLjI4ZmFjMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxTZXR0aW5ncy5oCkBAIC0xMDAsNiArMTAwLDcgQEAgcHVibGljOgogI2VuZGlmCiAgICAgICAg
IGJvb2wgbV9hbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrOwogICAgICAgICBib29sIG1faW5saW5l
TWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGU7CisgICAgICAgIGJvb2wg
bV9pbmRleGVkREJXb3JrZXJzRW5hYmxlZDsKICAgICB9OwogCiAgICAgc3RhdGljIFJlZjxJbnRl
cm5hbFNldHRpbmdzPiBjcmVhdGUoUGFnZSogcGFnZSkKQEAgLTE0Nyw2ICsxNDgsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRTY3JvbGxpbmdUcmVlSW5jbHVkZXNGcmFtZXMoYm9vbCwgRXhjZXB0
aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0QWxsb3dzSW5saW5lTWVkaWFQbGF5YmFjayhib29sLCBF
eGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRJbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQ
bGF5c0lubGluZUF0dHJpYnV0ZShib29sLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzZXRJ
bmRleGVkREJXb3JrZXJzRW5hYmxlZChib29sLCBFeGNlcHRpb25Db2RlJik7CiAKIHByaXZhdGU6
CiAgICAgZXhwbGljaXQgSW50ZXJuYWxTZXR0aW5ncyhQYWdlKik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAppbmRleCA4ODMyM2NmLi5lMzllNzQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKQEAgLTc3LDUgKzc3
LDcgQEAKICAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIHNldE1pbmltdW1UaW1lckludGVydmFs
KHVucmVzdHJpY3RlZCBkb3VibGUgaW50ZXJ2YWxJblNlY29uZHMpOwogICAgIFtSYWlzZXNFeGNl
cHRpb25dIHZvaWQgc2V0QWxsb3dzSW5saW5lTWVkaWFQbGF5YmFjayhib29sZWFuIGFsbG93cyk7
CiAgICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzZXRJbmxpbmVNZWRpYVBsYXliYWNrUmVxdWly
ZXNQbGF5c0lubGluZUF0dHJpYnV0ZShib29sZWFuIHJlcXVpcmVzKTsKKworICAgIFtSYWlzZXNF
eGNlcHRpb25dIHZvaWQgc2V0SW5kZXhlZERCV29ya2Vyc0VuYWJsZWQoYm9vbGVhbiByZXF1aXJl
cyk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2Jh
bFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKaW5k
ZXggMDYzMGMxZS4uODFhMWRjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJHbG9iYWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xv
YmFsU2NvcGUuaApAQCAtNDcsMTM0ICs0NywxMzQgQEAgY2xhc3MgQ29uc29sZU1lc3NhZ2U7CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIEJsb2I7Ci0gICAgY2xhc3MgQ29udGVu
dFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzOwotICAgIGNsYXNzIFNjaGVkdWxlZEFjdGlv
bjsKLSAgICBjbGFzcyBXb3JrZXJMb2NhdGlvbjsKLSAgICBjbGFzcyBXb3JrZXJOYXZpZ2F0b3I7
Ci0gICAgY2xhc3MgV29ya2VyVGhyZWFkOwotCi0gICAgY2xhc3MgV29ya2VyR2xvYmFsU2NvcGUg
OiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrZXJHbG9iYWxTY29wZT4sIHB1YmxpYyBTY3JpcHRFeGVj
dXRpb25Db250ZXh0LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSB7Ci0gICAgcHVi
bGljOgotICAgICAgICB2aXJ0dWFsIH5Xb3JrZXJHbG9iYWxTY29wZSgpOworY2xhc3MgQmxvYjsK
K2NsYXNzIENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVyczsKK2NsYXNzIFNjaGVk
dWxlZEFjdGlvbjsKK2NsYXNzIFdvcmtlckxvY2F0aW9uOworY2xhc3MgV29ya2VyTmF2aWdhdG9y
OworY2xhc3MgV29ya2VyVGhyZWFkOwogCi0gICAgICAgIGJvb2wgaXNXb3JrZXJHbG9iYWxTY29w
ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KK2NsYXNzIFdvcmtlckdsb2JhbFNj
b3BlIDogcHVibGljIFJlZkNvdW50ZWQ8V29ya2VyR2xvYmFsU2NvcGU+LCBwdWJsaWMgU3VwcGxl
bWVudGFibGU8V29ya2VyR2xvYmFsU2NvcGU+LCBwdWJsaWMgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEgeworcHVibGljOgorICAgIHZpcnR1
YWwgfldvcmtlckdsb2JhbFNjb3BlKCk7CiAKLSAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGNvbnN0X2Nh
c3Q8V29ya2VyR2xvYmFsU2NvcGUqPih0aGlzKTsgfQorICAgIGJvb2wgaXNXb3JrZXJHbG9iYWxT
Y29wZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAotICAgICAgICB2aXJ0dWFs
IGJvb2wgaXNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIGNvbnN0X2Nhc3Q8V29ya2VyR2xvYmFsU2NvcGUqPih0aGlz
KTsgfQogCi0gICAgICAgIGNvbnN0IFVSTCYgdXJsKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV91
cmw7IH0KLSAgICAgICAgVVJMIGNvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYpIGNvbnN0IGZpbmFs
OworICAgIHZpcnR1YWwgYm9vbCBpc0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KIAotICAgICAgICBTdHJpbmcgdXNlckFnZW50KGNvbnN0IFVSTCYp
IGNvbnN0IG92ZXJyaWRlOworICAgIGNvbnN0IFVSTCYgdXJsKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gbV91cmw7IH0KKyAgICBVUkwgY29tcGxldGVVUkwoY29uc3QgU3RyaW5nJikgY29uc3QgZmlu
YWw7CiAKLSAgICAgICAgdm9pZCBkaXNhYmxlRXZhbChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2Fn
ZSkgb3ZlcnJpZGU7CisgICAgU3RyaW5nIHVzZXJBZ2VudChjb25zdCBVUkwmKSBjb25zdCBvdmVy
cmlkZTsKIAotICAgICAgICBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0
eVBvbGljeSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29u
dGVudFNlY3VyaXR5UG9saWN5OyB9CisgICAgdm9pZCBkaXNhYmxlRXZhbChjb25zdCBTdHJpbmcm
IGVycm9yTWVzc2FnZSkgb3ZlcnJpZGU7CiAKLSAgICAgICAgV29ya2VyU2NyaXB0Q29udHJvbGxl
ciogc2NyaXB0KCkgeyByZXR1cm4gbV9zY3JpcHQuZ2V0KCk7IH0KLSAgICAgICAgdm9pZCBjbGVh
clNjcmlwdCgpIHsgbV9zY3JpcHQgPSBudWxscHRyOyB9CisgICAgYm9vbCBzaG91bGRCeXBhc3NN
YWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3koKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3No
b3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeTsgfQogCi0gICAgICAgIFdv
cmtlclRocmVhZCYgdGhyZWFkKCkgY29uc3QgeyByZXR1cm4gbV90aHJlYWQ7IH0KKyAgICBXb3Jr
ZXJTY3JpcHRDb250cm9sbGVyKiBzY3JpcHQoKSB7IHJldHVybiBtX3NjcmlwdC5nZXQoKTsgfQor
ICAgIHZvaWQgY2xlYXJTY3JpcHQoKSB7IG1fc2NyaXB0ID0gbnVsbHB0cjsgfQogCi0gICAgICAg
IHVzaW5nIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6Omhhc1BlbmRpbmdBY3Rpdml0eTsKKyAgICBX
b3JrZXJUaHJlYWQmIHRocmVhZCgpIGNvbnN0IHsgcmV0dXJuIG1fdGhyZWFkOyB9CiAKLSAgICAg
ICAgdm9pZCBwb3N0VGFzayhUYXNrKSBvdmVycmlkZTsgLy8gRXhlY3V0ZXMgdGhlIHRhc2sgb24g
Y29udGV4dCdzIHRocmVhZCBhc3luY2hyb25vdXNseS4KKyAgICB1c2luZyBTY3JpcHRFeGVjdXRp
b25Db250ZXh0OjpoYXNQZW5kaW5nQWN0aXZpdHk7CiAKLSAgICAgICAgLy8gV29ya2VyR2xvYmFs
U2NvcGUKLSAgICAgICAgV29ya2VyR2xvYmFsU2NvcGUqIHNlbGYoKSB7IHJldHVybiB0aGlzOyB9
Ci0gICAgICAgIFdvcmtlckxvY2F0aW9uKiBsb2NhdGlvbigpIGNvbnN0OwotICAgICAgICB2b2lk
IGNsb3NlKCk7CisgICAgdm9pZCBwb3N0VGFzayhUYXNrKSBvdmVycmlkZTsgLy8gRXhlY3V0ZXMg
dGhlIHRhc2sgb24gY29udGV4dCdzIHRocmVhZCBhc3luY2hyb25vdXNseS4KIAotICAgICAgICAv
LyBXb3JrZXJVdGlscwotICAgICAgICB2aXJ0dWFsIHZvaWQgaW1wb3J0U2NyaXB0cyhjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgdXJscywgRXhjZXB0aW9uQ29kZSYpOwotICAgICAgICBXb3JrZXJOYXZp
Z2F0b3IqIG5hdmlnYXRvcigpIGNvbnN0OworICAgIC8vIFdvcmtlckdsb2JhbFNjb3BlCisgICAg
V29ya2VyR2xvYmFsU2NvcGUqIHNlbGYoKSB7IHJldHVybiB0aGlzOyB9CisgICAgV29ya2VyTG9j
YXRpb24qIGxvY2F0aW9uKCkgY29uc3Q7CisgICAgdm9pZCBjbG9zZSgpOwogCi0gICAgICAgIC8v
IFRpbWVycwotICAgICAgICBpbnQgc2V0VGltZW91dChzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVk
QWN0aW9uPiwgaW50IHRpbWVvdXQpOwotICAgICAgICB2b2lkIGNsZWFyVGltZW91dChpbnQgdGlt
ZW91dElkKTsKLSAgICAgICAgaW50IHNldEludGVydmFsKHN0ZDo6dW5pcXVlX3B0cjxTY2hlZHVs
ZWRBY3Rpb24+LCBpbnQgdGltZW91dCk7Ci0gICAgICAgIHZvaWQgY2xlYXJJbnRlcnZhbChpbnQg
dGltZW91dElkKTsKKyAgICAvLyBXb3JrZXJVdGlscworICAgIHZpcnR1YWwgdm9pZCBpbXBvcnRT
Y3JpcHRzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB1cmxzLCBFeGNlcHRpb25Db2RlJik7CisgICAg
V29ya2VyTmF2aWdhdG9yKiBuYXZpZ2F0b3IoKSBjb25zdDsKIAotICAgICAgICBib29sIGlzQ29u
dGV4dFRocmVhZCgpIGNvbnN0IG92ZXJyaWRlOwotICAgICAgICBib29sIGlzSlNFeGVjdXRpb25G
b3JiaWRkZW4oKSBjb25zdCBvdmVycmlkZTsKKyAgICAvLyBUaW1lcnMKKyAgICBpbnQgc2V0VGlt
ZW91dChzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiwgaW50IHRpbWVvdXQpOworICAg
IHZvaWQgY2xlYXJUaW1lb3V0KGludCB0aW1lb3V0SWQpOworICAgIGludCBzZXRJbnRlcnZhbChz
dGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiwgaW50IHRpbWVvdXQpOworICAgIHZvaWQg
Y2xlYXJJbnRlcnZhbChpbnQgdGltZW91dElkKTsKIAotICAgICAgICAvLyBUaGVzZSBtZXRob2Rz
IGFyZSB1c2VkIGZvciBHQyBtYXJraW5nLiBTZWUgSlNXb3JrZXJHbG9iYWxTY29wZTo6dmlzaXRD
aGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImKSBpbgotICAgICAgICAvLyBKU1dvcmtlckdsb2Jh
bFNjb3BlQ3VzdG9tLmNwcC4KLSAgICAgICAgV29ya2VyTmF2aWdhdG9yKiBvcHRpb25hbE5hdmln
YXRvcigpIGNvbnN0IHsgcmV0dXJuIG1fbmF2aWdhdG9yLmdldCgpOyB9Ci0gICAgICAgIFdvcmtl
ckxvY2F0aW9uKiBvcHRpb25hbExvY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9sb2NhdGlvbi5n
ZXQoKTsgfQorICAgIGJvb2wgaXNDb250ZXh0VGhyZWFkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
Ym9vbCBpc0pTRXhlY3V0aW9uRm9yYmlkZGVuKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICAgICAg
dXNpbmcgUmVmQ291bnRlZDxXb3JrZXJHbG9iYWxTY29wZT46OnJlZjsKLSAgICAgICAgdXNpbmcg
UmVmQ291bnRlZDxXb3JrZXJHbG9iYWxTY29wZT46OmRlcmVmOworICAgIC8vIFRoZXNlIG1ldGhv
ZHMgYXJlIHVzZWQgZm9yIEdDIG1hcmtpbmcuIFNlZSBKU1dvcmtlckdsb2JhbFNjb3BlOjp2aXNp
dENoaWxkcmVuVmlydHVhbChTbG90VmlzaXRvciYpIGluCisgICAgLy8gSlNXb3JrZXJHbG9iYWxT
Y29wZUN1c3RvbS5jcHAuCisgICAgV29ya2VyTmF2aWdhdG9yKiBvcHRpb25hbE5hdmlnYXRvcigp
IGNvbnN0IHsgcmV0dXJuIG1fbmF2aWdhdG9yLmdldCgpOyB9CisgICAgV29ya2VyTG9jYXRpb24q
IG9wdGlvbmFsTG9jYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2xvY2F0aW9uLmdldCgpOyB9CiAK
LSAgICAgICAgYm9vbCBpc0Nsb3NpbmcoKSB7IHJldHVybiBtX2Nsb3Npbmc7IH0KKyAgICB1c2lu
ZyBSZWZDb3VudGVkPFdvcmtlckdsb2JhbFNjb3BlPjo6cmVmOworICAgIHVzaW5nIFJlZkNvdW50
ZWQ8V29ya2VyR2xvYmFsU2NvcGU+OjpkZXJlZjsKIAotICAgICAgICAvLyBBbiBvYnNlcnZlciBp
bnRlcmZhY2UgdG8gYmUgbm90aWZpZWQgd2hlbiB0aGUgd29ya2VyIHRocmVhZCBpcyBnZXR0aW5n
IHN0b3BwZWQuCi0gICAgICAgIGNsYXNzIE9ic2VydmVyIHsKLSAgICAgICAgICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKE9ic2VydmVyKTsKLSAgICAgICAgcHVibGljOgotICAgICAgICAgICAgT2Jz
ZXJ2ZXIoV29ya2VyR2xvYmFsU2NvcGUqKTsKLSAgICAgICAgICAgIHZpcnR1YWwgfk9ic2VydmVy
KCk7Ci0gICAgICAgICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5U3RvcCgpID0gMDsKLSAgICAgICAg
ICAgIHZvaWQgc3RvcE9ic2VydmluZygpOwotICAgICAgICBwcml2YXRlOgotICAgICAgICAgICAg
V29ya2VyR2xvYmFsU2NvcGUqIG1fY29udGV4dDsKLSAgICAgICAgfTsKLSAgICAgICAgZnJpZW5k
IGNsYXNzIE9ic2VydmVyOwotICAgICAgICB2b2lkIHJlZ2lzdGVyT2JzZXJ2ZXIoT2JzZXJ2ZXIq
KTsKLSAgICAgICAgdm9pZCB1bnJlZ2lzdGVyT2JzZXJ2ZXIoT2JzZXJ2ZXIqKTsKLSAgICAgICAg
dm9pZCBub3RpZnlPYnNlcnZlcnNPZlN0b3AoKTsKKyAgICBib29sIGlzQ2xvc2luZygpIHsgcmV0
dXJuIG1fY2xvc2luZzsgfQogCi0gICAgICAgIFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4oKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBtX3RvcE9yaWdpbi5nZXQoKTsgfQorICAgIC8vIEFuIG9i
c2VydmVyIGludGVyZmFjZSB0byBiZSBub3RpZmllZCB3aGVuIHRoZSB3b3JrZXIgdGhyZWFkIGlz
IGdldHRpbmcgc3RvcHBlZC4KKyAgICBjbGFzcyBPYnNlcnZlciB7CisgICAgICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKE9ic2VydmVyKTsKKyAgICBwdWJsaWM6CisgICAgICAgIE9ic2VydmVyKFdv
cmtlckdsb2JhbFNjb3BlKik7CisgICAgICAgIHZpcnR1YWwgfk9ic2VydmVyKCk7CisgICAgICAg
IHZpcnR1YWwgdm9pZCBub3RpZnlTdG9wKCkgPSAwOworICAgICAgICB2b2lkIHN0b3BPYnNlcnZp
bmcoKTsKKyAgICBwcml2YXRlOgorICAgICAgICBXb3JrZXJHbG9iYWxTY29wZSogbV9jb250ZXh0
OworICAgIH07CisgICAgZnJpZW5kIGNsYXNzIE9ic2VydmVyOworICAgIHZvaWQgcmVnaXN0ZXJP
YnNlcnZlcihPYnNlcnZlciopOworICAgIHZvaWQgdW5yZWdpc3Rlck9ic2VydmVyKE9ic2VydmVy
Kik7CisgICAgdm9pZCBub3RpZnlPYnNlcnZlcnNPZlN0b3AoKTsKIAotICAgICAgICB2b2lkIGFk
ZENvbnNvbGVNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3I6OkNvbnNvbGVNZXNzYWdl
Pik7Ci0gICAgICAgIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2Fn
ZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50
aWZpZXIgPSAwKSBvdmVycmlkZTsKKyAgICBTZWN1cml0eU9yaWdpbiogdG9wT3JpZ2luKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV90b3BPcmlnaW4uZ2V0KCk7IH0KKworICAgIHZvaWQgYWRk
Q29uc29sZU1lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPEluc3BlY3Rvcjo6Q29uc29sZU1lc3NhZ2U+
KTsKKyAgICB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZl
bCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVy
ID0gMCkgb3ZlcnJpZGU7CiAKICNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKLSAgICAgICAgYm9v
bCB3cmFwQ3J5cHRvS2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYga2V5LCBWZWN0b3I8dWludDhf
dD4mIHdyYXBwZWRLZXkpIG92ZXJyaWRlOwotICAgICAgICBib29sIHVud3JhcENyeXB0b0tleShj
b25zdCBWZWN0b3I8dWludDhfdD4mIHdyYXBwZWRLZXksIFZlY3Rvcjx1aW50OF90PiYga2V5KSBv
dmVycmlkZTsKKyAgICBib29sIHdyYXBDcnlwdG9LZXkoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBr
ZXksIFZlY3Rvcjx1aW50OF90PiYgd3JhcHBlZEtleSkgb3ZlcnJpZGU7CisgICAgYm9vbCB1bndy
YXBDcnlwdG9LZXkoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB3cmFwcGVkS2V5LCBWZWN0b3I8dWlu
dDhfdD4mIGtleSkgb3ZlcnJpZGU7CiAjZW5kaWYKIAotICAgIHByb3RlY3RlZDoKLSAgICAgICAg
V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFdv
cmtlclRocmVhZCYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9s
aWN5LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4pOwotICAgICAgICB2b2lk
IGFwcGx5Q29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzKGNvbnN0IENvbnRlbnRT
ZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYpOworcHJvdGVjdGVkOgorICAgIFdvcmtlckds
b2JhbFNjb3BlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBXb3JrZXJUaHJl
YWQmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgUGFz
c1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luKTsKKyAgICB2b2lkIGFwcGx5Q29udGVu
dFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzKGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGlj
eVJlc3BvbnNlSGVhZGVycyYpOwogCi0gICAgICAgIHZvaWQgbG9nRXhjZXB0aW9uVG9Db25zb2xl
KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgaW50
IGxpbmVOdW1iZXIsIGludCBjb2x1bW5OdW1iZXIsIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENh
bGxTdGFjaz4mJikgb3ZlcnJpZGU7Ci0gICAgICAgIHZvaWQgYWRkTWVzc2FnZVRvV29ya2VyQ29u
c29sZShzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9yOjpDb25zb2xlTWVzc2FnZT4pOwotICAgICAg
ICB2b2lkIGFkZE1lc3NhZ2VUb1dvcmtlckNvbnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxl
dmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNp
Z25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIFJlZlB0cjxJbnNwZWN0b3I6
OlNjcmlwdENhbGxTdGFjaz4mJiwgSlNDOjpFeGVjU3RhdGUqID0gMCwgdW5zaWduZWQgbG9uZyBy
ZXF1ZXN0SWRlbnRpZmllciA9IDApOworICAgIHZvaWQgbG9nRXhjZXB0aW9uVG9Db25zb2xlKGNv
bnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgaW50IGxp
bmVOdW1iZXIsIGludCBjb2x1bW5OdW1iZXIsIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENhbGxT
dGFjaz4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhZGRNZXNzYWdlVG9Xb3JrZXJDb25zb2xlKHN0
ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3I6OkNvbnNvbGVNZXNzYWdlPik7CisgICAgdm9pZCBhZGRN
ZXNzYWdlVG9Xb3JrZXJDb25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51
bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRDYWxs
U3RhY2s+JiYsIEpTQzo6RXhlY1N0YXRlKiA9IDAsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50
aWZpZXIgPSAwKTsKIAotICAgIHByaXZhdGU6Ci0gICAgICAgIHZvaWQgcmVmU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpIG92ZXJyaWRlIHsgcmVmKCk7IH0KLSAgICAgICAgdm9pZCBkZXJlZlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSBvdmVycmlkZSB7IGRlcmVmKCk7IH0KK3ByaXZhdGU6CisgICAg
dm9pZCByZWZTY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgb3ZlcnJpZGUgeyByZWYoKTsgfQorICAg
IHZvaWQgZGVyZWZTY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgb3ZlcnJpZGUgeyBkZXJlZigpOyB9
CiAKLSAgICAgICAgdm9pZCByZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgcmVmKCk7IH0KLSAgICAg
ICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBkZXJlZigpOyB9CisgICAgdm9pZCBy
ZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgcmVmKCk7IH0KKyAgICB2b2lkIGRlcmVmRXZlbnRUYXJn
ZXQoKSBmaW5hbCB7IGRlcmVmKCk7IH0KIAotICAgICAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIs
IFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4mJiwgSlNDOjpFeGVjU3RhdGUqID0g
MCwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApIG92ZXJyaWRlOworICAgIHZv
aWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVu
c2lnbmVkIGNvbHVtbk51bWJlciwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYm
LCBKU0M6OkV4ZWNTdGF0ZSogPSAwLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0g
MCkgb3ZlcnJpZGU7CiAKLSAgICAgICAgRXZlbnRUYXJnZXQqIGVycm9yRXZlbnRUYXJnZXQoKSBv
dmVycmlkZTsKKyAgICBFdmVudFRhcmdldCogZXJyb3JFdmVudFRhcmdldCgpIG92ZXJyaWRlOwog
Ci0gICAgICAgIFdvcmtlckV2ZW50UXVldWUmIGV2ZW50UXVldWUoKSBjb25zdCBmaW5hbDsKKyAg
ICBXb3JrZXJFdmVudFF1ZXVlJiBldmVudFF1ZXVlKCkgY29uc3QgZmluYWw7CiAKLSAgICAgICAg
VVJMIG1fdXJsOwotICAgICAgICBTdHJpbmcgbV91c2VyQWdlbnQ7CisgICAgVVJMIG1fdXJsOwor
ICAgIFN0cmluZyBtX3VzZXJBZ2VudDsKIAotICAgICAgICBtdXRhYmxlIFJlZlB0cjxXb3JrZXJM
b2NhdGlvbj4gbV9sb2NhdGlvbjsKLSAgICAgICAgbXV0YWJsZSBSZWZQdHI8V29ya2VyTmF2aWdh
dG9yPiBtX25hdmlnYXRvcjsKKyAgICBtdXRhYmxlIFJlZlB0cjxXb3JrZXJMb2NhdGlvbj4gbV9s
b2NhdGlvbjsKKyAgICBtdXRhYmxlIFJlZlB0cjxXb3JrZXJOYXZpZ2F0b3I+IG1fbmF2aWdhdG9y
OwogCi0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxXb3JrZXJTY3JpcHRDb250cm9sbGVyPiBtX3Nj
cmlwdDsKLSAgICAgICAgV29ya2VyVGhyZWFkJiBtX3RocmVhZDsKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8V29ya2VyU2NyaXB0Q29udHJvbGxlcj4gbV9zY3JpcHQ7CisgICAgV29ya2VyVGhyZWFkJiBt
X3RocmVhZDsKIAotICAgICAgICBib29sIG1fY2xvc2luZzsKLSAgICAgICAgYm9vbCBtX3Nob3Vs
ZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeTsKKyAgICBib29sIG1fY2xvc2lu
ZzsKKyAgICBib29sIG1fc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5
OwogCi0gICAgICAgIEhhc2hTZXQ8T2JzZXJ2ZXIqPiBtX3dvcmtlck9ic2VydmVyczsKKyAgICBI
YXNoU2V0PE9ic2VydmVyKj4gbV93b3JrZXJPYnNlcnZlcnM7CiAKLSAgICAgICAgbXV0YWJsZSBX
b3JrZXJFdmVudFF1ZXVlIG1fZXZlbnRRdWV1ZTsKKyAgICBtdXRhYmxlIFdvcmtlckV2ZW50UXVl
dWUgbV9ldmVudFF1ZXVlOwogCi0gICAgICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gbV90b3BP
cmlnaW47Ci0gICAgfTsKKyAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG1fdG9wT3JpZ2luOwor
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNTFjYWNi
YS4uMzY4ZGFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE2LTA0LTIw
ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBNb2Rlcm4gSURC
IChXb3JrZXJzKTogRW5hYmxlIElOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUyBjb21waWxlIHRp
bWUgZmxhZywgYnV0IGRpc2FibGVkIGluIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTY3ODIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDE2LTA0LTE4ICBBbmRlcnMgQ2FybHNzb24g
IDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGJ1aWxkIHdpdGggbmV3ZXIgdmVy
c2lvbnMgb2YgY2xhbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0
aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IGE1ZWExZjRhLi44MzVjODIyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZwpAQCAtNzcsNyArNzcsNyBAQCBFTkFCTEVfR0VPTE9DQVRJT04gPSBF
TkFCTEVfR0VPTE9DQVRJT047CiBFTkFCTEVfSUNPTkRBVEFCQVNFW3Nkaz1tYWNvc3gqXSA9IEVO
QUJMRV9JQ09OREFUQUJBU0U7CiBFTkFCTEVfU0VSVklDRV9DT05UUk9MU1tzZGs9bWFjb3N4Kl0g
PSBFTkFCTEVfU0VSVklDRV9DT05UUk9MUzsKIEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFID0gRU5B
QkxFX0lOREVYRURfREFUQUJBU0U7Ci1FTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJT
ID0gOworRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUyA9IEVOQUJMRV9JTkRFWEVE
X0RBVEFCQVNFX0lOX1dPUktFUlM7CiBFTkFCTEVfSU5ESUVfVUkgPSBFTkFCTEVfSU5ESUVfVUk7
CiBFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUltzZGs9bWFjb3N4Kl0gPSBFTkFCTEVfSU5QVVRfVFlQ
RV9DT0xPUjsKIEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVJbc2RrPW1hY29zeCpdID0g
RU5BQkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5ZGM0NzE3Li44
NjMwNTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTYtMDQtMjAgIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1vZGVybiBJREIgKFdvcmtlcnMp
OiBFbmFibGUgSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTIGNvbXBpbGUgdGltZSBmbGFnLCBi
dXQgZGlzYWJsZWQgaW4gUnVudGltZUVuYWJsZWRGZWF0dXJlcy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Njc4MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWc6CisKIDIwMTYtMDQtMTkgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0
ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBGaXggQ01ha2UgYnVpbGQuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBi
L1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmlu
ZGV4IGE1ZWExZjRhLi44MzVjODIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9Db25m
aWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtNzcsNyArNzcsNyBAQCBFTkFC
TEVfR0VPTE9DQVRJT04gPSBFTkFCTEVfR0VPTE9DQVRJT047CiBFTkFCTEVfSUNPTkRBVEFCQVNF
W3Nkaz1tYWNvc3gqXSA9IEVOQUJMRV9JQ09OREFUQUJBU0U7CiBFTkFCTEVfU0VSVklDRV9DT05U
Uk9MU1tzZGs9bWFjb3N4Kl0gPSBFTkFCTEVfU0VSVklDRV9DT05UUk9MUzsKIEVOQUJMRV9JTkRF
WEVEX0RBVEFCQVNFID0gRU5BQkxFX0lOREVYRURfREFUQUJBU0U7Ci1FTkFCTEVfSU5ERVhFRF9E
QVRBQkFTRV9JTl9XT1JLRVJTID0gOworRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VS
UyA9IEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlM7CiBFTkFCTEVfSU5ESUVfVUkg
PSBFTkFCTEVfSU5ESUVfVUk7CiBFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUltzZGs9bWFjb3N4Kl0g
PSBFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUjsKIEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9W
RVJbc2RrPW1hY29zeCpdID0gRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUjsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5NTcxZDI1Li45
N2E4MzI5IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTIgQEAKKzIwMTYtMDQtMjAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBw
bGUuY29tPgorCisgICAgICAgIE1vZGVybiBJREIgKFdvcmtlcnMpOiBFbmFibGUgSU5ERVhFRF9E
QVRBQkFTRV9JTl9XT1JLRVJTIGNvbXBpbGUgdGltZSBmbGFnLCBidXQgZGlzYWJsZWQgaW4gUnVu
dGltZUVuYWJsZWRGZWF0dXJlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1Njc4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZzoKKwogMjAxNi0wNC0xOSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxl
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCBhZnRlciByMTk5NzUyLgpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWcKaW5kZXggYTVlYTFmNGEuLjgzNWM4MjIgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZwpAQCAtNzcsNyArNzcsNyBAQCBFTkFCTEVfR0VPTE9DQVRJT04gPSBFTkFCTEVfR0VPTE9D
QVRJT047CiBFTkFCTEVfSUNPTkRBVEFCQVNFW3Nkaz1tYWNvc3gqXSA9IEVOQUJMRV9JQ09OREFU
QUJBU0U7CiBFTkFCTEVfU0VSVklDRV9DT05UUk9MU1tzZGs9bWFjb3N4Kl0gPSBFTkFCTEVfU0VS
VklDRV9DT05UUk9MUzsKIEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFID0gRU5BQkxFX0lOREVYRURf
REFUQUJBU0U7Ci1FTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTID0gOworRU5BQkxF
X0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUyA9IEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lO
X1dPUktFUlM7CiBFTkFCTEVfSU5ESUVfVUkgPSBFTkFCTEVfSU5ESUVfVUk7CiBFTkFCTEVfSU5Q
VVRfVFlQRV9DT0xPUltzZGs9bWFjb3N4Kl0gPSBFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUjsKIEVO
QUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVJbc2RrPW1hY29zeCpdID0gRU5BQkxFX0lOUFVU
X1RZUEVfQ09MT1JfUE9QT1ZFUjsK
</data>
<flag name="review"
          id="301097"
          type_id="1"
          status="-"
          setter="beidson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276835</attachid>
            <date>2016-04-20 11:03:18 -0700</date>
            <delta_ts>2016-04-20 11:31:15 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>39202</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2M2VhNmYxLi4wNDNkNTRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjIgQEAKIDIwMTYtMDQt
MjAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCisgICAgICAgIE1vZGVybiBJ
REIgKFdvcmtlcnMpOiBFbmFibGUgSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTIGNvbXBpbGUg
dGltZSBmbGFnLCBidXQgZGlzYWJsZWQgaW4gUnVudGltZUVuYWJsZWRGZWF0dXJlcy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Njc4MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdGU6IE9uZSB0ZXN0
IGhhcyBzb21lICJGQUlMIiBsaW5lcyBpbiB0aGUgZXhwZWN0ZWQgcmVzdWx0cywgd2hpY2ggaXMg
aW50ZW50aW9uYWwuCisgICAgICAgIEFzIHdvcmsgb24gdGhpcyBwcm9ncmVzc2VzLCB0aG9zZSBG
QUlMcyB3aWxsIGJlY29tZSBQQVNTZXMgYW5kIHRoZSBleHBlY3RhdGlvbnMgd2lsbCBiZSB1cGRh
dGVkLgorICAgICAgICAKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3Vy
Y2VzL3dvcmtlcnMtZGlzYWJsZWQuanM6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL21vZGVybi9yZXNvdXJjZXMvd29ya2Vycy1lbmFibGUuanM6IEFkZGVkLgorICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi93b3JrZXJzLWRpc2FibGVkLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3dvcmtlcnMtZGlzYWJs
ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3dvcmtl
cnMtZW5hYmxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVk
ZGIvbW9kZXJuL3dvcmtlcnMtZW5hYmxlLmh0bWw6IEFkZGVkLgorCisyMDE2LTA0LTIwICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKwogICAgICAgICBBZGRyZXNzaW5nIGFkZGl0
aW9uYWwgcmV2aWV3IGZlZWRiYWNrIGZvcjoKICAgICAgICAgTW9kZXJuIElEQjogTG90cyBvZiBJ
REIgYmluZGluZ3MgY2xlYW51cCAoaW5jbHVkaW5nIG1ha2luZyBJREJWZXJzaW9uQ2hhbmdlRXZl
bnQgY29uc3RydWN0aWJsZSkuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTY3NjAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL21vZGVybi9yZXNvdXJjZXMvd29ya2Vycy1kaXNhYmxlZC5qcyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvd29ya2Vycy1kaXNhYmxlZC5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MTcxZWFlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy93b3JrZXJz
LWRpc2FibGVkLmpzCkBAIC0wLDAgKzEsMTAgQEAKK2lmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsK
KyAgICBpbXBvcnRTY3JpcHRzKCcuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcycpOwor
ICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uL3Jlc291cmNlcy9zaGFyZWQuanMnKTsKK30KKworZGVz
Y3JpcHRpb24oIkNoZWNrIHRvIG1ha2Ugc3VyZSBJbmRleGVkREIgaW4gd29ya2VycyBjYW4gYmUg
ZGlzYWJsZWQgYXQgcnVudGltZSIpOworCitzaG91bGRCZVVuZGVmaW5lZCgic2VsZi5pbmRleGVk
REIiKTsKKworZmluaXNoSlNUZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL3dvcmtlcnMtZW5hYmxlLmpzIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy93b3JrZXJzLWVuYWJsZS5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42N2QxODgyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy93b3Jr
ZXJzLWVuYWJsZS5qcwpAQCAtMCwwICsxLDEyIEBACitpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7
CisgICAgaW1wb3J0U2NyaXB0cygnLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMnKTsK
KyAgICBpbXBvcnRTY3JpcHRzKCcuLi8uLi9yZXNvdXJjZXMvc2hhcmVkLmpzJyk7Cit9CisKK2Rl
c2NyaXB0aW9uKCJDaGVjayB0byBtYWtlIHN1cmUgd2UgY2FuIGVuYWJsZSBJbmRleGVkREIgaW4g
d29ya2VycyB2aWEgYSBydW50aW1lIHNldHRpbmciKTsKKworc2hvdWxkQmVEZWZpbmVkKCJzZWxm
LmluZGV4ZWREQiIpOworc2hvdWxkQmVOb25OdWxsKCJzZWxmLmluZGV4ZWREQiIpOworc2hvdWxk
QmVUcnVlKCJzZWxmLmluZGV4ZWREQiBpbnN0YW5jZW9mIElEQkZhY3RvcnkiKTsKKworZmluaXNo
SlNUZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vd29ya2Vycy1kaXNhYmxlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb2Rlcm4vd29ya2Vycy1kaXNhYmxlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2MwOWE5NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi93b3JrZXJzLWRpc2FibGVkLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDExIEBACitbV29ya2VyXSBDaGVjayB0byBtYWtlIHN1cmUgSW5kZXhl
ZERCIGluIHdvcmtlcnMgY2FuIGJlIGRpc2FibGVkIGF0IHJ1bnRpbWUKKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1N0YXJ0aW5nIHdvcmtlcjogcmVzb3VyY2VzL3dvcmtlcnMtZGlz
YWJsZWQuanMKK1BBU1MgW1dvcmtlcl0gc2VsZi5pbmRleGVkREIgaXMgdW5kZWZpbmVkLgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi93b3JrZXJzLWRpc2FibGVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vd29ya2Vycy1kaXNh
YmxlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1M2YzMDQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vd29y
a2Vycy1kaXNhYmxlZC5odG1sCkBAIC0wLDAgKzEsMTcgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8c2NyaXB0PgorCisvKgorSW5kZXhlZERCIGZvciB3b3JrZXJzIGlzIGN1cnJlbnRseSBkaXNh
YmxlZCBieSBkZWZhdWx0LgorT25jZSB0aGF0IGNoYW5nZXMsIHdlJ2xsIG5lZWQgdGhlIGZvbGxv
d2luZyBjb2RlIHRvIGtlZXAgdGhpcyB0ZXN0IHBhc3NpbmcuCitpZiAod2luZG93LmludGVybmFs
cykKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldEluZGV4ZWREQldvcmtlcnNFbmFi
bGVkKGZhbHNlKTsKKyovCit3b3JrZXIgPSBzdGFydFdvcmtlcigncmVzb3VyY2VzL3dvcmtlcnMt
ZGlzYWJsZWQuanMnKTs8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi93b3JrZXJzLWVuYWJsZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vd29ya2Vycy1lbmFi
bGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwZDMx
MGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vd29ya2Vycy1lbmFibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK1tXb3JrZXJd
IENoZWNrIHRvIG1ha2Ugc3VyZSB3ZSBjYW4gZW5hYmxlIEluZGV4ZWREQiBpbiB3b3JrZXJzIHZp
YSBhIHJ1bnRpbWUgc2V0dGluZworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworU3Rh
cnRpbmcgd29ya2VyOiByZXNvdXJjZXMvd29ya2Vycy1lbmFibGUuanMKK1BBU1MgW1dvcmtlcl0g
c2VsZi5pbmRleGVkREIgaXMgZGVmaW5lZC4KK0ZBSUwgW1dvcmtlcl0gc2VsZi5pbmRleGVkREIg
c2hvdWxkIGJlIG5vbi1udWxsLiBXYXMgbnVsbAorRkFJTCBbV29ya2VyXSBzZWxmLmluZGV4ZWRE
QiBpbnN0YW5jZW9mIElEQkZhY3Rvcnkgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vd29ya2Vycy1lbmFibGUuaHRt
bCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi93b3JrZXJzLWVuYWJsZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkYWE1ZTYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vd29ya2Vycy1l
bmFibGUuaHRtbApAQCAtMCwwICsxLDEyIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlw
dD4KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0SW5kZXhlZERCV29ya2Vyc0VuYWJsZWQodHJ1ZSk7Cit3b3JrZXIgPSBzdGFydFdvcmtlcign
cmVzb3VyY2VzL3dvcmtlcnMtZW5hYmxlLmpzJyk7PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAxMjkzMmZlLi43ZGZiYzY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNi0wNC0yMCAgQnJhZHkgRWlkc29u
ICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW9kZXJuIElEQiAoV29ya2Vycyk6IEVu
YWJsZSBJTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMgY29tcGlsZSB0aW1lIGZsYWcsIGJ1dCBk
aXNhYmxlZCBpbiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2NzgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZzoKKwogMjAxNi0wNC0yMCAgU2FhbSBiYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNv
bT4KIAogICAgICAgICBSZW1vdmUgdW51c2VkIG1fd3JpdHRlblZhcmlhYmxlcyBmcm9tIHRoZSBw
YXJzZXIgYW5kIHJlbGF0ZWQgYml0cwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IGE1ZWEx
ZjRhLi44MzVjODIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJh
dGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC03Nyw3ICs3Nyw3IEBA
IEVOQUJMRV9HRU9MT0NBVElPTiA9IEVOQUJMRV9HRU9MT0NBVElPTjsKIEVOQUJMRV9JQ09OREFU
QUJBU0Vbc2RrPW1hY29zeCpdID0gRU5BQkxFX0lDT05EQVRBQkFTRTsKIEVOQUJMRV9TRVJWSUNF
X0NPTlRST0xTW3Nkaz1tYWNvc3gqXSA9IEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTOwogRU5BQkxF
X0lOREVYRURfREFUQUJBU0UgPSBFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRTsKLUVOQUJMRV9JTkRF
WEVEX0RBVEFCQVNFX0lOX1dPUktFUlMgPSA7CitFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9X
T1JLRVJTID0gRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUzsKIEVOQUJMRV9JTkRJ
RV9VSSA9IEVOQUJMRV9JTkRJRV9VSTsKIEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SW3Nkaz1tYWNv
c3gqXSA9IEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SOwogRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1Jf
UE9QT1ZFUltzZGs9bWFjb3N4Kl0gPSBFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDhiMzA0ZTMuLjgxNmVlYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSw1MiBA
QAogMjAxNi0wNC0yMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKKyAgICAg
ICAgTW9kZXJuIElEQiAoV29ya2Vycyk6IEVuYWJsZSBJTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktF
UlMgY29tcGlsZSB0aW1lIGZsYWcsIGJ1dCBkaXNhYmxlZCBpbiBSdW50aW1lRW5hYmxlZEZlYXR1
cmVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2
NzgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVz
dDogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3dvcmtlcnMtZGlzYWJsZWQuaHRtbAorICAgICAg
ICAgICAgICBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vd29ya2Vycy1lbmFibGUuaHRtbAorCisg
ICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisKKyAgICAg
ICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCBzaG91bGRuJ3QgcmVhbGx5IGJlIHN1cHBsZW1lbnRh
YmxlOgorICAgICAgICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg6CisKKyAgICAgICAg
V29ya2VyR2xvYmFsU2NvcGUgc2hvdWxkIGJlIHN1cHBsZW1lbnRhYmxlLgorICAgICAgICBBbHNv
IG1vZGVybml6ZSB0aGlzIGFyY2hhaWMgaGVhZGVyIChwcmFnbWEgb25jZSwgYW5kIHJlLWluZGVu
dCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAKKyAg
ICAgICAgVXBkYXRlIGZvciBXb3JrZXJHbG9iYWxTY29wZSBub3cgYmVpbmcgZGlyZWN0bHkgc3Vw
cGxlbWVudGFibGU6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvV29ya2VyR2xvYmFsU2Nv
cGVJbmRleGVkRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2Nv
cGVJbmRleGVkRGF0YWJhc2U6Oldvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNlKToKKyAg
ICAgICAgKFdlYkNvcmU6Oldvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNlOjpmcm9tKToK
KyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNlOjppbmRl
eGVkREIpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL1dvcmtlckdsb2JhbFNjb3BlSW5k
ZXhlZERhdGFiYXNlLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvV29ya2VyR2xvYmFs
U2NvcGVJbmRleGVkRGF0YWJhc2UuaWRsOgorICAgICAgICAqIE1vZHVsZXMvbm90aWZpY2F0aW9u
cy9Xb3JrZXJHbG9iYWxTY29wZU5vdGlmaWNhdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zOjpXb3JrZXJHbG9iYWxTY29wZU5vdGlmaWNh
dGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25z
Ojpmcm9tKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckdsb2JhbFNjb3BlTm90aWZpY2F0aW9u
czo6d2Via2l0Tm90aWZpY2F0aW9ucyk6CisgICAgICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25z
L1dvcmtlckdsb2JhbFNjb3BlTm90aWZpY2F0aW9ucy5oOgorICAgICAgICAKKyAgICAgICAgRXhw
b3NlIEluZGV4ZWREQldvcmtlcnMgdG8gUnVudGltZUVuYWJsZWRGZWF0dXJlczoKKyAgICAgICAg
KiBiaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6UnVudGltZUVuYWJsZWRGZWF0dXJlcyk6
CisgICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRJbmRleGVkREJXb3Jr
ZXJzRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpp
bmRleGVkREJXb3JrZXJzRW5hYmxlZCk6CisKKyAgICAgICAgRXhwb3NlIEluZGV4ZWREQldvcmtl
cnMgdG8gSW50ZXJuYWxTZXR0aW5nczoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGlu
Z3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpCYWNr
dXApOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpyZXN0b3Jl
VG8pOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6c2V0SW5kZXhlZERCV29y
a2Vyc0VuYWJsZWQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oOgorICAg
ICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGw6CisKKzIwMTYtMDQtMjAgIEJyYWR5
IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCiAgICAgICAgIEFkZHJlc3NpbmcgYWRkaXRp
b25hbCByZXZpZXcgZmVlZGJhY2sgZm9yOgogICAgICAgICBNb2Rlcm4gSURCOiBMb3RzIG9mIElE
QiBiaW5kaW5ncyBjbGVhbnVwIChpbmNsdWRpbmcgbWFraW5nIElEQlZlcnNpb25DaGFuZ2VFdmVu
dCBjb25zdHJ1Y3RpYmxlKS4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1Njc2MApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCBhNWVhMWY0YS4uODM1YzgyMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWcKKysrIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWcKQEAgLTc3LDcgKzc3LDcgQEAgRU5BQkxFX0dFT0xPQ0FUSU9OID0gRU5BQkxFX0dFT0xP
Q0FUSU9OOwogRU5BQkxFX0lDT05EQVRBQkFTRVtzZGs9bWFjb3N4Kl0gPSBFTkFCTEVfSUNPTkRB
VEFCQVNFOwogRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFNbc2RrPW1hY29zeCpdID0gRU5BQkxFX1NF
UlZJQ0VfQ09OVFJPTFM7CiBFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSA9IEVOQUJMRV9JTkRFWEVE
X0RBVEFCQVNFOwotRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUyA9IDsKK0VOQUJM
RV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMgPSBFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9J
Tl9XT1JLRVJTOwogRU5BQkxFX0lORElFX1VJID0gRU5BQkxFX0lORElFX1VJOwogRU5BQkxFX0lO
UFVUX1RZUEVfQ09MT1Jbc2RrPW1hY29zeCpdID0gRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1I7CiBF
TkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSW3Nkaz1tYWNvc3gqXSA9IEVOQUJMRV9JTlBV
VF9UWVBFX0NPTE9SX1BPUE9WRVI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9Xb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9Xb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFz
ZS5jcHAKaW5kZXggYTJhYjAyMC4uZjcxM2I0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvV29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL1dvcmtlckdsb2JhbFNjb3BlSW5k
ZXhlZERhdGFiYXNlLmNwcApAQCAtMzQsMTAgKzM0LDExIEBACiAjaW5jbHVkZSAiSURCRmFjdG9y
eS5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTZWN1
cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotV29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2U6Oldvcmtlckds
b2JhbFNjb3BlSW5kZXhlZERhdGFiYXNlKCkKK1dvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFi
YXNlOjpXb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZShXb3JrZXJHbG9iYWxTY29wZSYp
CiB7CiB9CiAKQEAgLTUwLDIwICs1MSwyMCBAQCBjb25zdCBjaGFyKiBXb3JrZXJHbG9iYWxTY29w
ZUluZGV4ZWREYXRhYmFzZTo6c3VwcGxlbWVudE5hbWUoKQogICAgIHJldHVybiAiV29ya2VyR2xv
YmFsU2NvcGVJbmRleGVkRGF0YWJhc2UiOwogfQogCi1Xb3JrZXJHbG9iYWxTY29wZUluZGV4ZWRE
YXRhYmFzZSogV29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2U6OmZyb20oU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCkKK1dvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNl
KiBXb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZTo6ZnJvbShXb3JrZXJHbG9iYWxTY29w
ZSYgc2NvcGUpCiB7Ci0gICAgV29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2UqIHN1cHBs
ZW1lbnQgPSBzdGF0aWNfY2FzdDxXb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZSo+KFN1
cHBsZW1lbnQ8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD46OmZyb20oY29udGV4dCwgc3VwcGxlbWVu
dE5hbWUoKSkpOworICAgIFdvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNlKiBzdXBwbGVt
ZW50ID0gc3RhdGljX2Nhc3Q8V29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2UqPihTdXBw
bGVtZW50PFdvcmtlckdsb2JhbFNjb3BlPjo6ZnJvbSgmc2NvcGUsIHN1cHBsZW1lbnROYW1lKCkp
KTsKICAgICBpZiAoIXN1cHBsZW1lbnQpIHsKLSAgICAgICAgYXV0byBuZXdTdXBwbGVtZW50ID0g
c3RkOjptYWtlX3VuaXF1ZTxXb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZT4oKTsKKyAg
ICAgICAgYXV0byBuZXdTdXBwbGVtZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxXb3JrZXJHbG9iYWxT
Y29wZUluZGV4ZWREYXRhYmFzZT4oc2NvcGUpOwogICAgICAgICBzdXBwbGVtZW50ID0gbmV3U3Vw
cGxlbWVudC5nZXQoKTsKLSAgICAgICAgcHJvdmlkZVRvKGNvbnRleHQsIHN1cHBsZW1lbnROYW1l
KCksIFdURk1vdmUobmV3U3VwcGxlbWVudCkpOworICAgICAgICBwcm92aWRlVG8oJnNjb3BlLCBz
dXBwbGVtZW50TmFtZSgpLCBXVEZNb3ZlKG5ld1N1cHBsZW1lbnQpKTsKICAgICB9CiAgICAgcmV0
dXJuIHN1cHBsZW1lbnQ7CiB9CiAKLUlEQkZhY3RvcnkqIFdvcmtlckdsb2JhbFNjb3BlSW5kZXhl
ZERhdGFiYXNlOjppbmRleGVkREIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKK0lE
QkZhY3RvcnkqIFdvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNlOjppbmRleGVkREIoV29y
a2VyR2xvYmFsU2NvcGUmIHNjb3BlKQogewotICAgIHJldHVybiBmcm9tKGNvbnRleHQpLT5pbmRl
eGVkREIoKTsKKyAgICByZXR1cm4gZnJvbShzY29wZSktPmluZGV4ZWREQigpOwogfQogCiBJREJG
YWN0b3J5KiBXb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZTo6aW5kZXhlZERCKCkKQEAg
LTczLDQgKzc0LDQgQEAgSURCRmFjdG9yeSogV29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJh
c2U6OmluZGV4ZWREQigpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEVO
QUJMRShJTkRFWEVEX0RBVEFCQVNFKQorI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNF
X0lOX1dPUktFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9Xb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZS5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvV29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2UuaAppbmRleCA5
NTZjYjY3Li5kNWFjY2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9Xb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL1dvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNlLmgK
QEAgLTI0LDggKzI0LDcgQEAKICAqCiAgKi8KIAotI2lmbmRlZiBXb3JrZXJHbG9iYWxTY29wZUlu
ZGV4ZWREYXRhYmFzZV9oCi0jZGVmaW5lIFdvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNl
X2gKKyNwcmFnbWEgb25jZQogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0VfSU5fV09SS0VS
UykKIApAQCAtMzUsMTUgKzM0LDE1IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIElE
QkZhY3Rvcnk7Ci1jbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xhc3MgV29ya2VyR2xv
YmFsU2NvcGU7CiAKLWNsYXNzIFdvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNlIDogcHVi
bGljIFN1cHBsZW1lbnQ8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD4geworY2xhc3MgV29ya2VyR2xv
YmFsU2NvcGVJbmRleGVkRGF0YWJhc2UgOiBwdWJsaWMgU3VwcGxlbWVudDxXb3JrZXJHbG9iYWxT
Y29wZT4gewogcHVibGljOgotICAgIGV4cGxpY2l0IFdvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERh
dGFiYXNlKCk7CisgICAgZXhwbGljaXQgV29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2Uo
V29ya2VyR2xvYmFsU2NvcGUmKTsKICAgICB2aXJ0dWFsIH5Xb3JrZXJHbG9iYWxTY29wZUluZGV4
ZWREYXRhYmFzZSgpOwotICAgIHN0YXRpYyBXb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFz
ZSogZnJvbShTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAKLSAgICBzdGF0aWMgSURCRmFjdG9y
eSogaW5kZXhlZERCKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKKyAgICBzdGF0aWMgV29ya2Vy
R2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2UqIGZyb20oV29ya2VyR2xvYmFsU2NvcGUmKTsKKyAg
ICBzdGF0aWMgSURCRmFjdG9yeSogaW5kZXhlZERCKFdvcmtlckdsb2JhbFNjb3BlJik7CiAKIHBy
aXZhdGU6CiAgICAgSURCRmFjdG9yeSogaW5kZXhlZERCKCk7CkBAIC01NCw2ICs1Myw0IEBAIHBy
aXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEVOQUJMRShJTkRF
WEVEX0RBVEFCQVNFKQotCi0jZW5kaWYgLy8gV29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJh
c2VfaAorI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9Xb3JrZXJHbG9iYWxTY29w
ZUluZGV4ZWREYXRhYmFzZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9X
b3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZS5pZGwKaW5kZXggNzU1ZjViZi4uZmM3Zjc3
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvV29ya2VyR2xv
YmFsU2NvcGVJbmRleGVkRGF0YWJhc2UuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL1dvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNlLmlkbApAQCAtMjcsNiAr
MjcsNiBAQAogWwogICAgIENvbmRpdGlvbmFsPUlOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUywK
IF0gcGFydGlhbCBpbnRlcmZhY2UgV29ya2VyR2xvYmFsU2NvcGUgewotICAgIFtFbmFibGVkQXRS
dW50aW1lPUluZGV4ZWREQl0gcmVhZG9ubHkgYXR0cmlidXRlIElEQkZhY3RvcnkgaW5kZXhlZERC
OworICAgIFtFbmFibGVkQXRSdW50aW1lPUluZGV4ZWREQldvcmtlcnNdIHJlYWRvbmx5IGF0dHJp
YnV0ZSBJREJGYWN0b3J5IGluZGV4ZWREQjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Xb3JrZXJHbG9iYWxTY29wZU5vdGlmaWNhdGlvbnMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL1dvcmtlckdsb2JhbFNj
b3BlTm90aWZpY2F0aW9ucy5jcHAKaW5kZXggYTk3NGVmYy4uZmE4ODY3NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL1dvcmtlckdsb2JhbFNjb3BlTm90
aWZpY2F0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25z
L1dvcmtlckdsb2JhbFNjb3BlTm90aWZpY2F0aW9ucy5jcHAKQEAgLTM2LDggKzM2LDggQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1Xb3JrZXJHbG9iYWxTY29wZU5vdGlmaWNhdGlvbnM6Oldv
cmtlckdsb2JhbFNjb3BlTm90aWZpY2F0aW9ucyhXb3JrZXJHbG9iYWxTY29wZSogY29udGV4dCkK
LSAgICA6IG1fY29udGV4dChjb250ZXh0KQorV29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25z
OjpXb3JrZXJHbG9iYWxTY29wZU5vdGlmaWNhdGlvbnMoV29ya2VyR2xvYmFsU2NvcGUmIHNjb3Bl
KQorICAgIDogbV9jb250ZXh0KCZzY29wZSkKIHsKIH0KIApAQCAtNTAsMjAgKzUwLDIwIEBAIGNv
bnN0IGNoYXIqIFdvcmtlckdsb2JhbFNjb3BlTm90aWZpY2F0aW9uczo6c3VwcGxlbWVudE5hbWUo
KQogICAgIHJldHVybiAiV29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zIjsKIH0KIAotV29y
a2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zKiBXb3JrZXJHbG9iYWxTY29wZU5vdGlmaWNhdGlv
bnM6OmZyb20oV29ya2VyR2xvYmFsU2NvcGUqIGNvbnRleHQpCitXb3JrZXJHbG9iYWxTY29wZU5v
dGlmaWNhdGlvbnMqIFdvcmtlckdsb2JhbFNjb3BlTm90aWZpY2F0aW9uczo6ZnJvbShXb3JrZXJH
bG9iYWxTY29wZSYgc2NvcGUpCiB7Ci0gICAgV29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25z
KiBzdXBwbGVtZW50ID0gc3RhdGljX2Nhc3Q8V29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25z
Kj4oU3VwcGxlbWVudDxTY3JpcHRFeGVjdXRpb25Db250ZXh0Pjo6ZnJvbShjb250ZXh0LCBzdXBw
bGVtZW50TmFtZSgpKSk7CisgICAgV29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zKiBzdXBw
bGVtZW50ID0gc3RhdGljX2Nhc3Q8V29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zKj4oU3Vw
cGxlbWVudDxXb3JrZXJHbG9iYWxTY29wZT46OmZyb20oJnNjb3BlLCBzdXBwbGVtZW50TmFtZSgp
KSk7CiAgICAgaWYgKCFzdXBwbGVtZW50KSB7Ci0gICAgICAgIGF1dG8gbmV3U3VwcGxlbWVudCA9
IHN0ZDo6bWFrZV91bmlxdWU8V29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zPihjb250ZXh0
KTsKKyAgICAgICAgYXV0byBuZXdTdXBwbGVtZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxXb3JrZXJH
bG9iYWxTY29wZU5vdGlmaWNhdGlvbnM+KHNjb3BlKTsKICAgICAgICAgc3VwcGxlbWVudCA9IG5l
d1N1cHBsZW1lbnQuZ2V0KCk7Ci0gICAgICAgIHByb3ZpZGVUbyhjb250ZXh0LCBzdXBwbGVtZW50
TmFtZSgpLCBXVEZNb3ZlKG5ld1N1cHBsZW1lbnQpKTsKKyAgICAgICAgcHJvdmlkZVRvKCZzY29w
ZSwgc3VwcGxlbWVudE5hbWUoKSwgV1RGTW92ZShuZXdTdXBwbGVtZW50KSk7CiAgICAgfQogICAg
IHJldHVybiBzdXBwbGVtZW50OwogfQogCi1Ob3RpZmljYXRpb25DZW50ZXIqIFdvcmtlckdsb2Jh
bFNjb3BlTm90aWZpY2F0aW9uczo6d2Via2l0Tm90aWZpY2F0aW9ucyhXb3JrZXJHbG9iYWxTY29w
ZSYgY29udGV4dCkKK05vdGlmaWNhdGlvbkNlbnRlciogV29ya2VyR2xvYmFsU2NvcGVOb3RpZmlj
YXRpb25zOjp3ZWJraXROb3RpZmljYXRpb25zKFdvcmtlckdsb2JhbFNjb3BlJiBzY29wZSkKIHsK
LSAgICByZXR1cm4gV29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zOjpmcm9tKCZjb250ZXh0
KS0+d2Via2l0Tm90aWZpY2F0aW9ucygpOworICAgIHJldHVybiBXb3JrZXJHbG9iYWxTY29wZU5v
dGlmaWNhdGlvbnM6OmZyb20oc2NvcGUpLT53ZWJraXROb3RpZmljYXRpb25zKCk7CiB9CiAKIE5v
dGlmaWNhdGlvbkNlbnRlciogV29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zOjp3ZWJraXRO
b3RpZmljYXRpb25zKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZp
Y2F0aW9ucy9Xb3JrZXJHbG9iYWxTY29wZU5vdGlmaWNhdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbm90aWZpY2F0aW9ucy9Xb3JrZXJHbG9iYWxTY29wZU5vdGlmaWNhdGlvbnMuaApp
bmRleCA5MGJhNTExLi4zYTk4YWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L25vdGlmaWNhdGlvbnMvV29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL1dvcmtlckdsb2JhbFNjb3BlTm90aWZp
Y2F0aW9ucy5oCkBAIC0zNywxMyArMzcsMTMgQEAgY2xhc3MgTm90aWZpY2F0aW9uQ2VudGVyOwog
Y2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFdvcmtlckdsb2JhbFNjb3BlOwog
Ci1jbGFzcyBXb3JrZXJHbG9iYWxTY29wZU5vdGlmaWNhdGlvbnMgOiBwdWJsaWMgU3VwcGxlbWVu
dDxTY3JpcHRFeGVjdXRpb25Db250ZXh0PiB7CitjbGFzcyBXb3JrZXJHbG9iYWxTY29wZU5vdGlm
aWNhdGlvbnMgOiBwdWJsaWMgU3VwcGxlbWVudDxXb3JrZXJHbG9iYWxTY29wZT4gewogcHVibGlj
OgotICAgIGV4cGxpY2l0IFdvcmtlckdsb2JhbFNjb3BlTm90aWZpY2F0aW9ucyhXb3JrZXJHbG9i
YWxTY29wZSopOworICAgIGV4cGxpY2l0IFdvcmtlckdsb2JhbFNjb3BlTm90aWZpY2F0aW9ucyhX
b3JrZXJHbG9iYWxTY29wZSYpOwogICAgIHZpcnR1YWwgfldvcmtlckdsb2JhbFNjb3BlTm90aWZp
Y2F0aW9ucygpOwogCiAgICAgc3RhdGljIE5vdGlmaWNhdGlvbkNlbnRlciogd2Via2l0Tm90aWZp
Y2F0aW9ucyhXb3JrZXJHbG9iYWxTY29wZSYpOwotICAgIHN0YXRpYyBXb3JrZXJHbG9iYWxTY29w
ZU5vdGlmaWNhdGlvbnMqIGZyb20oV29ya2VyR2xvYmFsU2NvcGUqKTsKKyAgICBzdGF0aWMgV29y
a2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zKiBmcm9tKFdvcmtlckdsb2JhbFNjb3BlJik7CiAK
IHByaXZhdGU6CiAgICAgTm90aWZpY2F0aW9uQ2VudGVyKiB3ZWJraXROb3RpZmljYXRpb25zKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFi
bGVkRmVhdHVyZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmNwcAppbmRleCBlMWU0YzNlLi4xY2Y0YWE3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0
dXJlcy5jcHAKQEAgLTQ2LDcgKzQ2LDYgQEAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6UnVudGlt
ZUVuYWJsZWRGZWF0dXJlcygpCiAgICAgLCBtX2lzQXBwbGljYXRpb25DYWNoZUVuYWJsZWQodHJ1
ZSkKICAgICAsIG1faXNEYXRhVHJhbnNmZXJJdGVtc0VuYWJsZWQodHJ1ZSkKICAgICAsIG1faXNH
ZW9sb2NhdGlvbkVuYWJsZWQodHJ1ZSkKLSAgICAsIG1faXNJbmRleGVkREJFbmFibGVkKGZhbHNl
KQogICAgICwgbV9pc1RvdWNoRW5hYmxlZCh0cnVlKQogICAgICwgbV9pc0RldmljZU1vdGlvbkVu
YWJsZWQodHJ1ZSkKICAgICAsIG1faXNEZXZpY2VPcmllbnRhdGlvbkVuYWJsZWQodHJ1ZSkKQEAg
LTYwLDYgKzU5LDEyIEBAIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OlJ1bnRpbWVFbmFibGVkRmVh
dHVyZXMoKQogI2Vsc2UKICAgICAsIG1faXNQbHVnaW5SZXBsYWNlbWVudEVuYWJsZWQoZmFsc2Up
CiAjZW5kaWYKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKyAgICAsIG1faXNJbmRleGVk
REJFbmFibGVkKGZhbHNlKQorI2VuZGlmCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0VfSU5f
V09SS0VSUykKKyAgICAsIG1faXNJbmRleGVkREJXb3JrZXJzRW5hYmxlZChmYWxzZSkKKyNlbmRp
ZgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgLCBtX2lzTWVkaWFTdHJlYW1FbmFibGVk
KHRydWUpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVy
aWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2Vu
ZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKaW5kZXggZDUyNGZjZS4uMmMyMTg1OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZl
YXR1cmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5h
YmxlZEZlYXR1cmVzLmgKQEAgLTYyLDkgKzYyLDE2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEdl
b2xvY2F0aW9uRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2lzR2VvbG9jYXRpb25FbmFibGVk
ID0gaXNFbmFibGVkOyB9CiAgICAgYm9vbCBnZW9sb2NhdGlvbkVuYWJsZWQoKSBjb25zdCB7IHJl
dHVybiBtX2lzR2VvbG9jYXRpb25FbmFibGVkOyB9CiAKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKICAgICB2b2lkIHNldFdlYmtpdEluZGV4ZWREQkVuYWJsZWQoYm9vbCBpc0VuYWJsZWQp
IHsgbV9pc0luZGV4ZWREQkVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KICAgICBib29sIHdlYmtpdElu
ZGV4ZWREQkVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzSW5kZXhlZERCRW5hYmxlZDsgfQog
ICAgIGJvb2wgaW5kZXhlZERCRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNJbmRleGVkREJF
bmFibGVkOyB9CisjZW5kaWYKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktF
UlMpCisgICAgdm9pZCBzZXRJbmRleGVkREJXb3JrZXJzRW5hYmxlZChib29sIGlzRW5hYmxlZCkg
eyBtX2lzSW5kZXhlZERCV29ya2Vyc0VuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KKyAgICBib29sIGlu
ZGV4ZWREQldvcmtlcnNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0luZGV4ZWREQldvcmtl
cnNFbmFibGVkOyB9CisjZW5kaWYKIAogI2lmIEVOQUJMRShDU1NfU0hBUEVTKQogICAgIHZvaWQg
c2V0Q1NTU2hhcGVzRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2lzQ1NTU2hhcGVzRW5hYmxl
ZCA9IGlzRW5hYmxlZDsgfQpAQCAtMjQ3LDcgKzI1NCw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBt
X2lzQXBwbGljYXRpb25DYWNoZUVuYWJsZWQ7CiAgICAgYm9vbCBtX2lzRGF0YVRyYW5zZmVySXRl
bXNFbmFibGVkOwogICAgIGJvb2wgbV9pc0dlb2xvY2F0aW9uRW5hYmxlZDsKLSAgICBib29sIG1f
aXNJbmRleGVkREJFbmFibGVkOwogICAgIGJvb2wgbV9pc1RvdWNoRW5hYmxlZDsKICAgICBib29s
IG1faXNEZXZpY2VNb3Rpb25FbmFibGVkOwogICAgIGJvb2wgbV9pc0RldmljZU9yaWVudGF0aW9u
RW5hYmxlZDsKQEAgLTI1OCw2ICsyNjQsMTQgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNMYW5n
QXR0cmlidXRlQXdhcmVGb3JtQ29udHJvbFVJRW5hYmxlZDsKICAgICBib29sIG1faXNQbHVnaW5S
ZXBsYWNlbWVudEVuYWJsZWQ7CiAKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKyAgICBi
b29sIG1faXNJbmRleGVkREJFbmFibGVkOworI2VuZGlmCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9E
QVRBQkFTRV9JTl9XT1JLRVJTKQorICAgIGJvb2wgbV9pc0luZGV4ZWREQldvcmtlcnNFbmFibGVk
OworI2VuZGlmCisKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9JMThOX0FQSSkKICAgICBib29sIG1f
aXNKYXZhU2NyaXB0STE4TkFQSUVuYWJsZWQ7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCmluZGV4IDljNTliMzkuLjA5YmMxNGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaApAQCAtNTYsNyArNTYsNyBA
QCBjbGFzcyBQdWJsaWNVUkxNYW5hZ2VyOwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CiBjbGFzcyBV
Ukw7CiAKLWNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgOiBwdWJsaWMgU2VjdXJpdHlDb250
ZXh0LCBwdWJsaWMgU3VwcGxlbWVudGFibGU8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD4geworY2xh
c3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCA6IHB1YmxpYyBTZWN1cml0eUNvbnRleHQgewogcHVi
bGljOgogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICB2aXJ0dWFsIH5TY3JpcHRF
eGVjdXRpb25Db250ZXh0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRp
bmdzLmNwcAppbmRleCBiYTRmYTkwLi5lMDY3ZGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKQEAgLTEwMyw2ICsxMDMsNyBAQCBJbnRlcm5hbFNldHRp
bmdzOjpCYWNrdXA6OkJhY2t1cChTZXR0aW5ncyYgc2V0dGluZ3MpCiAjZW5kaWYKICAgICAsIG1f
YWxsb3dzSW5saW5lTWVkaWFQbGF5YmFjayhzZXR0aW5ncy5hbGxvd3NJbmxpbmVNZWRpYVBsYXli
YWNrKCkpCiAgICAgLCBtX2lubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0
cmlidXRlKHNldHRpbmdzLmlubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0
cmlidXRlKCkpCisgICAgLCBtX2luZGV4ZWREQldvcmtlcnNFbmFibGVkKFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuaW5kZXhlZERCV29ya2Vyc0VuYWJsZWQoKSkKIHsK
IH0KIApAQCAtMTcwLDYgKzE3MSw3IEBAIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpy
ZXN0b3JlVG8oU2V0dGluZ3MmIHNldHRpbmdzKQogICAgIHNldHRpbmdzLnNldEFsbG93c0lubGlu
ZU1lZGlhUGxheWJhY2sobV9hbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrKTsKICAgICBzZXR0aW5n
cy5zZXRJbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGluZUF0dHJpYnV0ZShtX2lu
bGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlKTsKICAgICBSdW50
aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFBsdWdpblJlcGxhY2VtZW50
RW5hYmxlZChtX3BsdWdpblJlcGxhY2VtZW50RW5hYmxlZCk7CisgICAgUnVudGltZUVuYWJsZWRG
ZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRJbmRleGVkREJXb3JrZXJzRW5hYmxlZChtX2lu
ZGV4ZWREQldvcmtlcnNFbmFibGVkKTsKIH0KIAogY2xhc3MgSW50ZXJuYWxTZXR0aW5nc1dyYXBw
ZXIgOiBwdWJsaWMgU3VwcGxlbWVudDxQYWdlPiB7CkBAIC01NDAsNiArNTQyLDEyIEBAIHZvaWQg
SW50ZXJuYWxTZXR0aW5nczo6c2V0SW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxp
bmVBdHRyaWJ1dGUoYm9vbCByCiAgICAgc2V0dGluZ3MoKS0+c2V0SW5saW5lTWVkaWFQbGF5YmFj
a1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUocmVxdWlyZXMpOwogfQogCit2b2lkIEludGVy
bmFsU2V0dGluZ3M6OnNldEluZGV4ZWREQldvcmtlcnNFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhj
ZXB0aW9uQ29kZSYpCit7CisgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVy
ZXMoKS5zZXRJbmRleGVkREJXb3JrZXJzRW5hYmxlZChlbmFibGVkKTsKK30KKworCiAvLyBJZiB5
b3UgYWRkIHRvIHRoaXMgbGlzdCwgbWFrZSBzdXJlIHRoYXQgeW91IHVwZGF0ZSB0aGUgQmFja3Vw
IGNsYXNzIGZvciB0ZXN0IHJlcHJvZHVjYWJpbGl0eSEKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFsU2V0dGluZ3MuaAppbmRleCBlNzE3Y2JiLi4yOGZhYzJmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaApAQCAtMTAwLDYgKzEwMCw3IEBAIHB1
YmxpYzoKICNlbmRpZgogICAgICAgICBib29sIG1fYWxsb3dzSW5saW5lTWVkaWFQbGF5YmFjazsK
ICAgICAgICAgYm9vbCBtX2lubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0
cmlidXRlOworICAgICAgICBib29sIG1faW5kZXhlZERCV29ya2Vyc0VuYWJsZWQ7CiAgICAgfTsK
IAogICAgIHN0YXRpYyBSZWY8SW50ZXJuYWxTZXR0aW5ncz4gY3JlYXRlKFBhZ2UqIHBhZ2UpCkBA
IC0xNDcsNiArMTQ4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2Nyb2xsaW5nVHJlZUluY2x1
ZGVzRnJhbWVzKGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldEFsbG93c0lubGlu
ZU1lZGlhUGxheWJhY2soYm9vbCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0SW5saW5l
TWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUoYm9vbCwgRXhjZXB0aW9u
Q29kZSYpOworICAgIHZvaWQgc2V0SW5kZXhlZERCV29ya2Vyc0VuYWJsZWQoYm9vbCwgRXhjZXB0
aW9uQ29kZSYpOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEludGVybmFsU2V0dGluZ3MoUGFn
ZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKaW5kZXgg
ODgzMjNjZi4uZTM5ZTc0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuaWRsCkBAIC03Nyw1ICs3Nyw3IEBACiAgICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBz
ZXRNaW5pbXVtVGltZXJJbnRlcnZhbCh1bnJlc3RyaWN0ZWQgZG91YmxlIGludGVydmFsSW5TZWNv
bmRzKTsKICAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIHNldEFsbG93c0lubGluZU1lZGlhUGxh
eWJhY2soYm9vbGVhbiBhbGxvd3MpOwogICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc2V0SW5s
aW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUoYm9vbGVhbiByZXF1
aXJlcyk7CisKKyAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIHNldEluZGV4ZWREQldvcmtlcnNF
bmFibGVkKGJvb2xlYW4gcmVxdWlyZXMpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJHbG9iYWxTY29wZS5oCmluZGV4IDA2MzBjMWUuLjgxYTFkY2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKQEAgLTQ3LDEzNCArNDcsMTM0IEBAIGNs
YXNzIENvbnNvbGVNZXNzYWdlOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBC
bG9iOwotICAgIGNsYXNzIENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVyczsKLSAg
ICBjbGFzcyBTY2hlZHVsZWRBY3Rpb247Ci0gICAgY2xhc3MgV29ya2VyTG9jYXRpb247Ci0gICAg
Y2xhc3MgV29ya2VyTmF2aWdhdG9yOwotICAgIGNsYXNzIFdvcmtlclRocmVhZDsKLQotICAgIGNs
YXNzIFdvcmtlckdsb2JhbFNjb3BlIDogcHVibGljIFJlZkNvdW50ZWQ8V29ya2VyR2xvYmFsU2Nv
cGU+LCBwdWJsaWMgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgcHVibGljIEV2ZW50VGFyZ2V0V2l0
aElubGluZURhdGEgewotICAgIHB1YmxpYzoKLSAgICAgICAgdmlydHVhbCB+V29ya2VyR2xvYmFs
U2NvcGUoKTsKK2NsYXNzIEJsb2I7CitjbGFzcyBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25z
ZUhlYWRlcnM7CitjbGFzcyBTY2hlZHVsZWRBY3Rpb247CitjbGFzcyBXb3JrZXJMb2NhdGlvbjsK
K2NsYXNzIFdvcmtlck5hdmlnYXRvcjsKK2NsYXNzIFdvcmtlclRocmVhZDsKIAotICAgICAgICBi
b29sIGlzV29ya2VyR2xvYmFsU2NvcGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9
CitjbGFzcyBXb3JrZXJHbG9iYWxTY29wZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtlckdsb2Jh
bFNjb3BlPiwgcHVibGljIFN1cHBsZW1lbnRhYmxlPFdvcmtlckdsb2JhbFNjb3BlPiwgcHVibGlj
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRh
IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5Xb3JrZXJHbG9iYWxTY29wZSgpOwogCi0gICAgICAg
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBjb25zdF9jYXN0PFdvcmtlckdsb2JhbFNjb3BlKj4odGhpcyk7IH0KKyAg
ICBib29sIGlzV29ya2VyR2xvYmFsU2NvcGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVl
OyB9CiAKLSAgICAgICAgdmlydHVhbCBib29sIGlzRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBjb25zdF9jYXN0PFdv
cmtlckdsb2JhbFNjb3BlKj4odGhpcyk7IH0KIAotICAgICAgICBjb25zdCBVUkwmIHVybCgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1fdXJsOyB9Ci0gICAgICAgIFVSTCBjb21wbGV0ZVVSTChjb25z
dCBTdHJpbmcmKSBjb25zdCBmaW5hbDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNEZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICAgICAgU3RyaW5n
IHVzZXJBZ2VudChjb25zdCBVUkwmKSBjb25zdCBvdmVycmlkZTsKKyAgICBjb25zdCBVUkwmIHVy
bCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fdXJsOyB9CisgICAgVVJMIGNvbXBsZXRlVVJMKGNv
bnN0IFN0cmluZyYpIGNvbnN0IGZpbmFsOwogCi0gICAgICAgIHZvaWQgZGlzYWJsZUV2YWwoY29u
c3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpIG92ZXJyaWRlOworICAgIFN0cmluZyB1c2VyQWdlbnQo
Y29uc3QgVVJMJikgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICAgICAgYm9vbCBzaG91bGRCeXBhc3NN
YWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3koKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3No
b3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeTsgfQorICAgIHZvaWQgZGlz
YWJsZUV2YWwoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpIG92ZXJyaWRlOwogCi0gICAgICAg
IFdvcmtlclNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdCgpIHsgcmV0dXJuIG1fc2NyaXB0LmdldCgp
OyB9Ci0gICAgICAgIHZvaWQgY2xlYXJTY3JpcHQoKSB7IG1fc2NyaXB0ID0gbnVsbHB0cjsgfQor
ICAgIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5KCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQ
b2xpY3k7IH0KIAotICAgICAgICBXb3JrZXJUaHJlYWQmIHRocmVhZCgpIGNvbnN0IHsgcmV0dXJu
IG1fdGhyZWFkOyB9CisgICAgV29ya2VyU2NyaXB0Q29udHJvbGxlciogc2NyaXB0KCkgeyByZXR1
cm4gbV9zY3JpcHQuZ2V0KCk7IH0KKyAgICB2b2lkIGNsZWFyU2NyaXB0KCkgeyBtX3NjcmlwdCA9
IG51bGxwdHI7IH0KIAotICAgICAgICB1c2luZyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpoYXNQ
ZW5kaW5nQWN0aXZpdHk7CisgICAgV29ya2VyVGhyZWFkJiB0aHJlYWQoKSBjb25zdCB7IHJldHVy
biBtX3RocmVhZDsgfQogCi0gICAgICAgIHZvaWQgcG9zdFRhc2soVGFzaykgb3ZlcnJpZGU7IC8v
IEV4ZWN1dGVzIHRoZSB0YXNrIG9uIGNvbnRleHQncyB0aHJlYWQgYXN5bmNocm9ub3VzbHkuCisg
ICAgdXNpbmcgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6aGFzUGVuZGluZ0FjdGl2aXR5OwogCi0g
ICAgICAgIC8vIFdvcmtlckdsb2JhbFNjb3BlCi0gICAgICAgIFdvcmtlckdsb2JhbFNjb3BlKiBz
ZWxmKCkgeyByZXR1cm4gdGhpczsgfQotICAgICAgICBXb3JrZXJMb2NhdGlvbiogbG9jYXRpb24o
KSBjb25zdDsKLSAgICAgICAgdm9pZCBjbG9zZSgpOworICAgIHZvaWQgcG9zdFRhc2soVGFzaykg
b3ZlcnJpZGU7IC8vIEV4ZWN1dGVzIHRoZSB0YXNrIG9uIGNvbnRleHQncyB0aHJlYWQgYXN5bmNo
cm9ub3VzbHkuCiAKLSAgICAgICAgLy8gV29ya2VyVXRpbHMKLSAgICAgICAgdmlydHVhbCB2b2lk
IGltcG9ydFNjcmlwdHMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHVybHMsIEV4Y2VwdGlvbkNvZGUm
KTsKLSAgICAgICAgV29ya2VyTmF2aWdhdG9yKiBuYXZpZ2F0b3IoKSBjb25zdDsKKyAgICAvLyBX
b3JrZXJHbG9iYWxTY29wZQorICAgIFdvcmtlckdsb2JhbFNjb3BlKiBzZWxmKCkgeyByZXR1cm4g
dGhpczsgfQorICAgIFdvcmtlckxvY2F0aW9uKiBsb2NhdGlvbigpIGNvbnN0OworICAgIHZvaWQg
Y2xvc2UoKTsKIAotICAgICAgICAvLyBUaW1lcnMKLSAgICAgICAgaW50IHNldFRpbWVvdXQoc3Rk
Ojp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4sIGludCB0aW1lb3V0KTsKLSAgICAgICAgdm9p
ZCBjbGVhclRpbWVvdXQoaW50IHRpbWVvdXRJZCk7Ci0gICAgICAgIGludCBzZXRJbnRlcnZhbChz
dGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiwgaW50IHRpbWVvdXQpOwotICAgICAgICB2
b2lkIGNsZWFySW50ZXJ2YWwoaW50IHRpbWVvdXRJZCk7CisgICAgLy8gV29ya2VyVXRpbHMKKyAg
ICB2aXJ0dWFsIHZvaWQgaW1wb3J0U2NyaXB0cyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgdXJscywg
RXhjZXB0aW9uQ29kZSYpOworICAgIFdvcmtlck5hdmlnYXRvciogbmF2aWdhdG9yKCkgY29uc3Q7
CiAKLSAgICAgICAgYm9vbCBpc0NvbnRleHRUaHJlYWQoKSBjb25zdCBvdmVycmlkZTsKLSAgICAg
ICAgYm9vbCBpc0pTRXhlY3V0aW9uRm9yYmlkZGVuKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgLy8g
VGltZXJzCisgICAgaW50IHNldFRpbWVvdXQoc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlv
bj4sIGludCB0aW1lb3V0KTsKKyAgICB2b2lkIGNsZWFyVGltZW91dChpbnQgdGltZW91dElkKTsK
KyAgICBpbnQgc2V0SW50ZXJ2YWwoc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4sIGlu
dCB0aW1lb3V0KTsKKyAgICB2b2lkIGNsZWFySW50ZXJ2YWwoaW50IHRpbWVvdXRJZCk7CiAKLSAg
ICAgICAgLy8gVGhlc2UgbWV0aG9kcyBhcmUgdXNlZCBmb3IgR0MgbWFya2luZy4gU2VlIEpTV29y
a2VyR2xvYmFsU2NvcGU6OnZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJikgaW4KLSAg
ICAgICAgLy8gSlNXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHAuCi0gICAgICAgIFdvcmtlck5h
dmlnYXRvciogb3B0aW9uYWxOYXZpZ2F0b3IoKSBjb25zdCB7IHJldHVybiBtX25hdmlnYXRvci5n
ZXQoKTsgfQotICAgICAgICBXb3JrZXJMb2NhdGlvbiogb3B0aW9uYWxMb2NhdGlvbigpIGNvbnN0
IHsgcmV0dXJuIG1fbG9jYXRpb24uZ2V0KCk7IH0KKyAgICBib29sIGlzQ29udGV4dFRocmVhZCgp
IGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgaXNKU0V4ZWN1dGlvbkZvcmJpZGRlbigpIGNvbnN0
IG92ZXJyaWRlOwogCi0gICAgICAgIHVzaW5nIFJlZkNvdW50ZWQ8V29ya2VyR2xvYmFsU2NvcGU+
OjpyZWY7Ci0gICAgICAgIHVzaW5nIFJlZkNvdW50ZWQ8V29ya2VyR2xvYmFsU2NvcGU+OjpkZXJl
ZjsKKyAgICAvLyBUaGVzZSBtZXRob2RzIGFyZSB1c2VkIGZvciBHQyBtYXJraW5nLiBTZWUgSlNX
b3JrZXJHbG9iYWxTY29wZTo6dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImKSBpbgor
ICAgIC8vIEpTV29ya2VyR2xvYmFsU2NvcGVDdXN0b20uY3BwLgorICAgIFdvcmtlck5hdmlnYXRv
ciogb3B0aW9uYWxOYXZpZ2F0b3IoKSBjb25zdCB7IHJldHVybiBtX25hdmlnYXRvci5nZXQoKTsg
fQorICAgIFdvcmtlckxvY2F0aW9uKiBvcHRpb25hbExvY2F0aW9uKCkgY29uc3QgeyByZXR1cm4g
bV9sb2NhdGlvbi5nZXQoKTsgfQogCi0gICAgICAgIGJvb2wgaXNDbG9zaW5nKCkgeyByZXR1cm4g
bV9jbG9zaW5nOyB9CisgICAgdXNpbmcgUmVmQ291bnRlZDxXb3JrZXJHbG9iYWxTY29wZT46OnJl
ZjsKKyAgICB1c2luZyBSZWZDb3VudGVkPFdvcmtlckdsb2JhbFNjb3BlPjo6ZGVyZWY7CiAKLSAg
ICAgICAgLy8gQW4gb2JzZXJ2ZXIgaW50ZXJmYWNlIHRvIGJlIG5vdGlmaWVkIHdoZW4gdGhlIHdv
cmtlciB0aHJlYWQgaXMgZ2V0dGluZyBzdG9wcGVkLgotICAgICAgICBjbGFzcyBPYnNlcnZlciB7
Ci0gICAgICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShPYnNlcnZlcik7Ci0gICAgICAgIHB1
YmxpYzoKLSAgICAgICAgICAgIE9ic2VydmVyKFdvcmtlckdsb2JhbFNjb3BlKik7Ci0gICAgICAg
ICAgICB2aXJ0dWFsIH5PYnNlcnZlcigpOwotICAgICAgICAgICAgdmlydHVhbCB2b2lkIG5vdGlm
eVN0b3AoKSA9IDA7Ci0gICAgICAgICAgICB2b2lkIHN0b3BPYnNlcnZpbmcoKTsKLSAgICAgICAg
cHJpdmF0ZToKLSAgICAgICAgICAgIFdvcmtlckdsb2JhbFNjb3BlKiBtX2NvbnRleHQ7Ci0gICAg
ICAgIH07Ci0gICAgICAgIGZyaWVuZCBjbGFzcyBPYnNlcnZlcjsKLSAgICAgICAgdm9pZCByZWdp
c3Rlck9ic2VydmVyKE9ic2VydmVyKik7Ci0gICAgICAgIHZvaWQgdW5yZWdpc3Rlck9ic2VydmVy
KE9ic2VydmVyKik7Ci0gICAgICAgIHZvaWQgbm90aWZ5T2JzZXJ2ZXJzT2ZTdG9wKCk7CisgICAg
Ym9vbCBpc0Nsb3NpbmcoKSB7IHJldHVybiBtX2Nsb3Npbmc7IH0KIAotICAgICAgICBTZWN1cml0
eU9yaWdpbiogdG9wT3JpZ2luKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV90b3BPcmlnaW4u
Z2V0KCk7IH0KKyAgICAvLyBBbiBvYnNlcnZlciBpbnRlcmZhY2UgdG8gYmUgbm90aWZpZWQgd2hl
biB0aGUgd29ya2VyIHRocmVhZCBpcyBnZXR0aW5nIHN0b3BwZWQuCisgICAgY2xhc3MgT2JzZXJ2
ZXIgeworICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShPYnNlcnZlcik7CisgICAgcHVibGlj
OgorICAgICAgICBPYnNlcnZlcihXb3JrZXJHbG9iYWxTY29wZSopOworICAgICAgICB2aXJ0dWFs
IH5PYnNlcnZlcigpOworICAgICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5U3RvcCgpID0gMDsKKyAg
ICAgICAgdm9pZCBzdG9wT2JzZXJ2aW5nKCk7CisgICAgcHJpdmF0ZToKKyAgICAgICAgV29ya2Vy
R2xvYmFsU2NvcGUqIG1fY29udGV4dDsKKyAgICB9OworICAgIGZyaWVuZCBjbGFzcyBPYnNlcnZl
cjsKKyAgICB2b2lkIHJlZ2lzdGVyT2JzZXJ2ZXIoT2JzZXJ2ZXIqKTsKKyAgICB2b2lkIHVucmVn
aXN0ZXJPYnNlcnZlcihPYnNlcnZlciopOworICAgIHZvaWQgbm90aWZ5T2JzZXJ2ZXJzT2ZTdG9w
KCk7CiAKLSAgICAgICAgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8SW5z
cGVjdG9yOjpDb25zb2xlTWVzc2FnZT4pOwotICAgICAgICB2b2lkIGFkZENvbnNvbGVNZXNzYWdl
KE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNp
Z25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCkgb3ZlcnJpZGU7CisgICAgU2VjdXJpdHlP
cmlnaW4qIHRvcE9yaWdpbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fdG9wT3JpZ2luLmdl
dCgpOyB9CisKKyAgICB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxJbnNw
ZWN0b3I6OkNvbnNvbGVNZXNzYWdlPik7CisgICAgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShNZXNz
YWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQg
bG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApIG92ZXJyaWRlOwogCiAjaWYgRU5BQkxFKFNVQlRM
RV9DUllQVE8pCi0gICAgICAgIGJvb2wgd3JhcENyeXB0b0tleShjb25zdCBWZWN0b3I8dWludDhf
dD4mIGtleSwgVmVjdG9yPHVpbnQ4X3Q+JiB3cmFwcGVkS2V5KSBvdmVycmlkZTsKLSAgICAgICAg
Ym9vbCB1bndyYXBDcnlwdG9LZXkoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB3cmFwcGVkS2V5LCBW
ZWN0b3I8dWludDhfdD4mIGtleSkgb3ZlcnJpZGU7CisgICAgYm9vbCB3cmFwQ3J5cHRvS2V5KGNv
bnN0IFZlY3Rvcjx1aW50OF90PiYga2V5LCBWZWN0b3I8dWludDhfdD4mIHdyYXBwZWRLZXkpIG92
ZXJyaWRlOworICAgIGJvb2wgdW53cmFwQ3J5cHRvS2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYg
d3JhcHBlZEtleSwgVmVjdG9yPHVpbnQ4X3Q+JiBrZXkpIG92ZXJyaWRlOwogI2VuZGlmCiAKLSAg
ICBwcm90ZWN0ZWQ6Ci0gICAgICAgIFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYsIGNvbnN0
IFN0cmluZyYgdXNlckFnZW50LCBXb3JrZXJUaHJlYWQmLCBib29sIHNob3VsZEJ5cGFzc01haW5X
b3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9w
T3JpZ2luKTsKLSAgICAgICAgdm9pZCBhcHBseUNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNl
SGVhZGVycyhjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmKTsKK3By
b3RlY3RlZDoKKyAgICBXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcm
IHVzZXJBZ2VudCwgV29ya2VyVGhyZWFkJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250
ZW50U2VjdXJpdHlQb2xpY3ksIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbik7
CisgICAgdm9pZCBhcHBseUNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyhjb25z
dCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmKTsKIAotICAgICAgICB2b2lk
IGxvZ0V4Y2VwdGlvblRvQ29uc29sZShjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VVUkwsIGludCBsaW5lTnVtYmVyLCBpbnQgY29sdW1uTnVtYmVyLCBSZWZQ
dHI8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYpIG92ZXJyaWRlOwotICAgICAgICB2b2lk
IGFkZE1lc3NhZ2VUb1dvcmtlckNvbnNvbGUoc3RkOjp1bmlxdWVfcHRyPEluc3BlY3Rvcjo6Q29u
c29sZU1lc3NhZ2U+KTsKLSAgICAgICAgdm9pZCBhZGRNZXNzYWdlVG9Xb3JrZXJDb25zb2xlKE1l
c3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBT
dHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVt
YmVyLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYsIEpTQzo6RXhlY1N0YXRl
KiA9IDAsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKTsKKyAgICB2b2lkIGxv
Z0V4Y2VwdGlvblRvQ29uc29sZShjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VVUkwsIGludCBsaW5lTnVtYmVyLCBpbnQgY29sdW1uTnVtYmVyLCBSZWZQdHI8
SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgYWRkTWVz
c2FnZVRvV29ya2VyQ29uc29sZShzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9yOjpDb25zb2xlTWVz
c2FnZT4pOworICAgIHZvaWQgYWRkTWVzc2FnZVRvV29ya2VyQ29uc29sZShNZXNzYWdlU291cmNl
LCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgUmVmUHRy
PEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmLCBKU0M6OkV4ZWNTdGF0ZSogPSAwLCB1bnNp
Z25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCk7CiAKLSAgICBwcml2YXRlOgotICAgICAg
ICB2b2lkIHJlZlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBvdmVycmlkZSB7IHJlZigpOyB9Ci0g
ICAgICAgIHZvaWQgZGVyZWZTY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgb3ZlcnJpZGUgeyBkZXJl
ZigpOyB9Citwcml2YXRlOgorICAgIHZvaWQgcmVmU2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIG92
ZXJyaWRlIHsgcmVmKCk7IH0KKyAgICB2b2lkIGRlcmVmU2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
IG92ZXJyaWRlIHsgZGVyZWYoKTsgfQogCi0gICAgICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBm
aW5hbCB7IHJlZigpOyB9Ci0gICAgICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIGZpbmFsIHsg
ZGVyZWYoKTsgfQorICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IHJlZigpOyB9Cisg
ICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBkZXJlZigpOyB9CiAKLSAgICAgICAg
dm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwg
dW5zaWduZWQgY29sdW1uTnVtYmVyLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+
JiYsIEpTQzo6RXhlY1N0YXRlKiA9IDAsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIg
PSAwKSBvdmVycmlkZTsKKyAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2Fn
ZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1
bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIFJlZlB0cjxJbnNwZWN0
b3I6OlNjcmlwdENhbGxTdGFjaz4mJiwgSlNDOjpFeGVjU3RhdGUqID0gMCwgdW5zaWduZWQgbG9u
ZyByZXF1ZXN0SWRlbnRpZmllciA9IDApIG92ZXJyaWRlOwogCi0gICAgICAgIEV2ZW50VGFyZ2V0
KiBlcnJvckV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGU7CisgICAgRXZlbnRUYXJnZXQqIGVycm9yRXZl
bnRUYXJnZXQoKSBvdmVycmlkZTsKIAotICAgICAgICBXb3JrZXJFdmVudFF1ZXVlJiBldmVudFF1
ZXVlKCkgY29uc3QgZmluYWw7CisgICAgV29ya2VyRXZlbnRRdWV1ZSYgZXZlbnRRdWV1ZSgpIGNv
bnN0IGZpbmFsOwogCi0gICAgICAgIFVSTCBtX3VybDsKLSAgICAgICAgU3RyaW5nIG1fdXNlckFn
ZW50OworICAgIFVSTCBtX3VybDsKKyAgICBTdHJpbmcgbV91c2VyQWdlbnQ7CiAKLSAgICAgICAg
bXV0YWJsZSBSZWZQdHI8V29ya2VyTG9jYXRpb24+IG1fbG9jYXRpb247Ci0gICAgICAgIG11dGFi
bGUgUmVmUHRyPFdvcmtlck5hdmlnYXRvcj4gbV9uYXZpZ2F0b3I7CisgICAgbXV0YWJsZSBSZWZQ
dHI8V29ya2VyTG9jYXRpb24+IG1fbG9jYXRpb247CisgICAgbXV0YWJsZSBSZWZQdHI8V29ya2Vy
TmF2aWdhdG9yPiBtX25hdmlnYXRvcjsKIAotICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8V29ya2Vy
U2NyaXB0Q29udHJvbGxlcj4gbV9zY3JpcHQ7Ci0gICAgICAgIFdvcmtlclRocmVhZCYgbV90aHJl
YWQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdvcmtlclNjcmlwdENvbnRyb2xsZXI+IG1fc2NyaXB0
OworICAgIFdvcmtlclRocmVhZCYgbV90aHJlYWQ7CiAKLSAgICAgICAgYm9vbCBtX2Nsb3Npbmc7
Ci0gICAgICAgIGJvb2wgbV9zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xp
Y3k7CisgICAgYm9vbCBtX2Nsb3Npbmc7CisgICAgYm9vbCBtX3Nob3VsZEJ5cGFzc01haW5Xb3Js
ZENvbnRlbnRTZWN1cml0eVBvbGljeTsKIAotICAgICAgICBIYXNoU2V0PE9ic2VydmVyKj4gbV93
b3JrZXJPYnNlcnZlcnM7CisgICAgSGFzaFNldDxPYnNlcnZlcio+IG1fd29ya2VyT2JzZXJ2ZXJz
OwogCi0gICAgICAgIG11dGFibGUgV29ya2VyRXZlbnRRdWV1ZSBtX2V2ZW50UXVldWU7CisgICAg
bXV0YWJsZSBXb3JrZXJFdmVudFF1ZXVlIG1fZXZlbnRRdWV1ZTsKIAotICAgICAgICBSZWZQdHI8
U2VjdXJpdHlPcmlnaW4+IG1fdG9wT3JpZ2luOwotICAgIH07CisgICAgUmVmUHRyPFNlY3VyaXR5
T3JpZ2luPiBtX3RvcE9yaWdpbjsKK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCmluZGV4IDUxY2FjYmEuLjM2OGRhZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNi0wNC0yMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+
CisKKyAgICAgICAgTW9kZXJuIElEQiAoV29ya2Vycyk6IEVuYWJsZSBJTkRFWEVEX0RBVEFCQVNF
X0lOX1dPUktFUlMgY29tcGlsZSB0aW1lIGZsYWcsIGJ1dCBkaXNhYmxlZCBpbiBSdW50aW1lRW5h
YmxlZEZlYXR1cmVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTU2NzgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxNi0w
NC0xOCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIEZp
eCBidWlsZCB3aXRoIG5ld2VyIHZlcnNpb25zIG9mIGNsYW5nLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRl
eCBhNWVhMWY0YS4uODM1YzgyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdC9tYWMv
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTc3LDcgKzc3LDcgQEAg
RU5BQkxFX0dFT0xPQ0FUSU9OID0gRU5BQkxFX0dFT0xPQ0FUSU9OOwogRU5BQkxFX0lDT05EQVRB
QkFTRVtzZGs9bWFjb3N4Kl0gPSBFTkFCTEVfSUNPTkRBVEFCQVNFOwogRU5BQkxFX1NFUlZJQ0Vf
Q09OVFJPTFNbc2RrPW1hY29zeCpdID0gRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFM7CiBFTkFCTEVf
SU5ERVhFRF9EQVRBQkFTRSA9IEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFOwotRU5BQkxFX0lOREVY
RURfREFUQUJBU0VfSU5fV09SS0VSUyA9IDsKK0VOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dP
UktFUlMgPSBFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTOwogRU5BQkxFX0lORElF
X1VJID0gRU5BQkxFX0lORElFX1VJOwogRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1Jbc2RrPW1hY29z
eCpdID0gRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1I7CiBFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9Q
T1BPVkVSW3Nkaz1tYWNvc3gqXSA9IEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKaW5kZXggOWRjNDcxNy4uODYzMDUyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBA
CisyMDE2LTA0LTIwICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAg
ICBNb2Rlcm4gSURCIChXb3JrZXJzKTogRW5hYmxlIElOREVYRURfREFUQUJBU0VfSU5fV09SS0VS
UyBjb21waWxlIHRpbWUgZmxhZywgYnV0IGRpc2FibGVkIGluIFJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTY3
ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDE2LTA0LTE5ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4IENN
YWtlIGJ1aWxkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVh
dHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0
dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCBhNWVhMWY0YS4uODM1YzgyMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysr
IGIvU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcK
QEAgLTc3LDcgKzc3LDcgQEAgRU5BQkxFX0dFT0xPQ0FUSU9OID0gRU5BQkxFX0dFT0xPQ0FUSU9O
OwogRU5BQkxFX0lDT05EQVRBQkFTRVtzZGs9bWFjb3N4Kl0gPSBFTkFCTEVfSUNPTkRBVEFCQVNF
OwogRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFNbc2RrPW1hY29zeCpdID0gRU5BQkxFX1NFUlZJQ0Vf
Q09OVFJPTFM7CiBFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSA9IEVOQUJMRV9JTkRFWEVEX0RBVEFC
QVNFOwotRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUyA9IDsKK0VOQUJMRV9JTkRF
WEVEX0RBVEFCQVNFX0lOX1dPUktFUlMgPSBFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JL
RVJTOwogRU5BQkxFX0lORElFX1VJID0gRU5BQkxFX0lORElFX1VJOwogRU5BQkxFX0lOUFVUX1RZ
UEVfQ09MT1Jbc2RrPW1hY29zeCpdID0gRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1I7CiBFTkFCTEVf
SU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSW3Nkaz1tYWNvc3gqXSA9IEVOQUJMRV9JTlBVVF9UWVBF
X0NPTE9SX1BPUE9WRVI7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFu
Z2VMb2cKaW5kZXggOTU3MWQyNS4uOTdhODMyOSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE2LTA0LTIwICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBNb2Rlcm4gSURCIChXb3Jr
ZXJzKTogRW5hYmxlIElOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUyBjb21waWxlIHRpbWUgZmxh
ZywgYnV0IGRpc2FibGVkIGluIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTY3ODIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisKIDIwMTYtMDQtMTkgIEJyZW50IEZ1
bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBm
aXggYWZ0ZXIgcjE5OTc1Mi4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IGE1ZWExZjRhLi44MzVj
ODIyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1
cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTc3LDcgKzc3LDcgQEAgRU5BQkxFX0dFT0xP
Q0FUSU9OID0gRU5BQkxFX0dFT0xPQ0FUSU9OOwogRU5BQkxFX0lDT05EQVRBQkFTRVtzZGs9bWFj
b3N4Kl0gPSBFTkFCTEVfSUNPTkRBVEFCQVNFOwogRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFNbc2Rr
PW1hY29zeCpdID0gRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFM7CiBFTkFCTEVfSU5ERVhFRF9EQVRB
QkFTRSA9IEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFOwotRU5BQkxFX0lOREVYRURfREFUQUJBU0Vf
SU5fV09SS0VSUyA9IDsKK0VOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMgPSBFTkFC
TEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTOwogRU5BQkxFX0lORElFX1VJID0gRU5BQkxF
X0lORElFX1VJOwogRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1Jbc2RrPW1hY29zeCpdID0gRU5BQkxF
X0lOUFVUX1RZUEVfQ09MT1I7CiBFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSW3Nkaz1t
YWNvc3gqXSA9IEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVI7Cg==
</data>
<flag name="review"
          id="301098"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>