<?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>186009</bug_id>
          
          <creation_ts>2018-05-25 21:39:36 -0700</creation_ts>
          <short_desc>[iOS] Fix warnings about leaks found by clang static analyzer</short_desc>
          <delta_ts>2018-05-27 22:15:23 -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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=185887</see_also>
    
    <see_also>https://github.com/sctplab/usrsctp/issues/230</see_also>
    
    <see_also>https://github.com/xiph/opus/issues/90</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>29684</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="David Kilzer (:ddkilzer)">ddkilzer</assigned_to>
          <cc>aestes</cc>
    
    <cc>bburg</cc>
    
    <cc>dbates</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jbedard</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>joepeck</cc>
    
    <cc>jonlee</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1427673</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-05-25 21:39:36 -0700</bug_when>
    <thetext>The clang static analyzer warns leaks in WebKit when compiled for iOS devices.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1427674</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-05-25 21:39:50 -0700</bug_when>
    <thetext>&lt;rdar://problem/40574267&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1427675</commentid>
    <comment_count>2</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-05-25 21:42:10 -0700</bug_when>
    <thetext>Note that most of these leaks occur in error handling code paths, so they aren&apos;t as likely to reproduce.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1427684</commentid>
    <comment_count>3</comment_count>
      <attachid>341389</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-05-25 22:12:08 -0700</bug_when>
    <thetext>Created attachment 341389
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1427685</commentid>
    <comment_count>4</comment_count>
      <attachid>341389</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-05-25 22:17:10 -0700</bug_when>
    <thetext>Comment on attachment 341389
Patch v1

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

&gt; Source/ThirdParty/libwebrtc/ChangeLog:12
&gt; +        * Source/third_party/opus/src/src/opus_compare.c:
&gt; +        * Source/third_party/opus/src/src/opus_demo.c:
&gt; +        (main):
&gt; +        - Free allocated memory on early returns.

Since I removed both of these files from the `opus` target in the libwebrtc Xcode project, maybe we don&apos;t care about these changes?

&gt; Source/ThirdParty/libwebrtc/ChangeLog:28
&gt; +        * libwebrtc.xcodeproj/project.pbxproj: Remove opus_compare.c,
&gt; +        opus_demo.c, and repacketizer_demo.c from opus target.  This
&gt; +        code is for stand-alone tools, and although it may be removed
&gt; +        during dead code linking, we don&apos;t need to spend time compiling
&gt; +        it.

I debated on whether I should remove these 3 source files completely from the Xcode project, or just remove them from being compiled.  If they&apos;re removed from the Xcode project, should they be deleted on disk as well or kept to make future merging easier?  Thoughts?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1427686</commentid>
    <comment_count>5</comment_count>
      <attachid>341390</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-05-25 22:25:22 -0700</bug_when>
    <thetext>Created attachment 341390
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1427687</commentid>
    <comment_count>6</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-05-25 22:27:20 -0700</bug_when>
    <thetext>&gt; patch does not apply to trunk of repository

I just rebased it.  Something is wrong with EWS builders when applying patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1427691</commentid>
    <comment_count>7</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-05-25 22:30:54 -0700</bug_when>
    <thetext>(In reply to David Kilzer (:ddkilzer) from comment #6)
&gt; &gt; patch does not apply to trunk of repository
&gt; 
&gt; I just rebased it.  Something is wrong with EWS builders when applying
&gt; patches.

Hmm.  Looks like a bug in svn-apply:

&apos;&apos;&apos;
Parsed 19 diffs from patch file(s).
patching file Source/ThirdParty/libwebrtc/ChangeLog
patching file Source/WebCore/ChangeLog
patching file Source/WebKit/ChangeLog
patching file Source/WebKitLegacy/mac/ChangeLog
patching file Source/ThirdParty/libwebrtc/Source/third_party/opus/src/src/opus_compare.c
patching file Source/ThirdParty/libwebrtc/Source/third_party/opus/src/src/opus_demo.c
patching file Source/ThirdParty/libwebrtc/Source/third_party/usrsctp/usrsctplib/user_mbuf.c
patching file Source/ThirdParty/libwebrtc/Source/third_party/usrsctp/usrsctplib/user_socket.c
patching file Source/ThirdParty/libwebrtc/WebKit/patch-opus.diff
patch: **** Only garbage was found in the patch input.
rm &apos;Source/ThirdParty/libwebrtc/WebKit/patch-usrsctp&apos;
patching file Source/ThirdParty/libwebrtc/WebKit/patch-usrsctp.diff
patching file Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj
patching file Source/WebCore/Modules/webauthn/cocoa/LocalAuthenticator.mm
patching file Source/WebCore/bridge/objc/WebScriptObject.mm
patching file Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm
patching file Source/WebCore/platform/ios/wak/WAKWindow.h
patching file Source/WebKit/UIProcess/Automation/ios/WebAutomationSessionIOS.mm
patching file Source/WebKit/UIProcess/Cocoa/SystemPreviewControllerCocoa.mm
patching file Source/WebKitLegacy/mac/WebView/WebHTMLView.mm

Failed to run &quot;[u&apos;/Volumes/Data/Bindings/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/Bindings/WebKit
&apos;&apos;&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1427717</commentid>
    <comment_count>8</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-05-26 08:21:22 -0700</bug_when>
    <thetext>(In reply to David Kilzer (:ddkilzer) from comment #7)
&gt; (In reply to David Kilzer (:ddkilzer) from comment #6)
&gt; &gt; &gt; patch does not apply to trunk of repository
&gt; &gt; 
&gt; &gt; I just rebased it.  Something is wrong with EWS builders when applying
&gt; &gt; patches.
&gt; 
&gt; Hmm.  Looks like a bug in svn-apply:
&gt; 
&gt; &apos;&apos;&apos;
&gt; Parsed 19 diffs from patch file(s).
&gt; patching file Source/ThirdParty/libwebrtc/ChangeLog
&gt; patching file Source/WebCore/ChangeLog
&gt; patching file Source/WebKit/ChangeLog
&gt; patching file Source/WebKitLegacy/mac/ChangeLog
&gt; patching file
&gt; Source/ThirdParty/libwebrtc/Source/third_party/opus/src/src/opus_compare.c
&gt; patching file
&gt; Source/ThirdParty/libwebrtc/Source/third_party/opus/src/src/opus_demo.c
&gt; patching file
&gt; Source/ThirdParty/libwebrtc/Source/third_party/usrsctp/usrsctplib/user_mbuf.c
&gt; patching file
&gt; Source/ThirdParty/libwebrtc/Source/third_party/usrsctp/usrsctplib/
&gt; user_socket.c
&gt; patching file Source/ThirdParty/libwebrtc/WebKit/patch-opus.diff
&gt; patch: **** Only garbage was found in the patch input.
&gt; rm &apos;Source/ThirdParty/libwebrtc/WebKit/patch-usrsctp&apos;
&gt; patching file Source/ThirdParty/libwebrtc/WebKit/patch-usrsctp.diff
&gt; patching file Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj
&gt; patching file Source/WebCore/Modules/webauthn/cocoa/LocalAuthenticator.mm
&gt; patching file Source/WebCore/bridge/objc/WebScriptObject.mm
&gt; patching file
&gt; Source/WebCore/platform/graphics/avfoundation/objc/
&gt; MediaPlayerPrivateAVFoundationObjC.mm
&gt; patching file Source/WebCore/platform/ios/wak/WAKWindow.h
&gt; patching file
&gt; Source/WebKit/UIProcess/Automation/ios/WebAutomationSessionIOS.mm
&gt; patching file Source/WebKit/UIProcess/Cocoa/SystemPreviewControllerCocoa.mm
&gt; patching file Source/WebKitLegacy/mac/WebView/WebHTMLView.mm
&gt; 
&gt; Failed to run &quot;[u&apos;/Volumes/Data/Bindings/WebKit/Tools/Scripts/svn-apply&apos;,
&gt; &apos;--force&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/Bindings/WebKit
&gt; &apos;&apos;&apos;

Hitting Bug 29684.  I have an idea of how to fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1427739</commentid>
    <comment_count>9</comment_count>
      <attachid>341390</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-05-26 10:24:03 -0700</bug_when>
    <thetext>Comment on attachment 341390
Patch v2

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

&gt; Source/ThirdParty/libwebrtc/Source/third_party/opus/src/src/opus_compare.c:241
&gt; +    free(x);

We should upstream these fixes. For now, it’s fine that you include a patch.

&gt; Source/ThirdParty/libwebrtc/Source/third_party/usrsctp/usrsctplib/user_socket.c:2134
&gt; +	struct sockaddr *sa = NULL;

Ditto.

&gt; Source/WebCore/Modules/webauthn/cocoa/LocalAuthenticator.mm:310
&gt; +                    ASSERT(((NSData *)publicKeyDataRef.get()).length == (1 + 2*ES256KeySizeInBytes)); // 04 | X | Y

Missing spaces around *. Surprised style checker didn’t catch this.

&gt; Source/WebCore/Modules/webauthn/cocoa/LocalAuthenticator.mm:353
&gt; +                    NSData *nsSignature = (NSData *)signatureRef.get();

Could use auto here since we cast on the right hand side.

&gt; Source/WebCore/Modules/webauthn/cocoa/LocalAuthenticator.mm:510
&gt; +            NSData *nsSignature = (NSData *)signatureRef.get();

Ditto.

&gt; Source/WebCore/bridge/objc/WebScriptObject.mm:661
&gt; +        sharedUndefined.get() = adoptNS([super allocWithZone:NULL]);

NULL  =&gt; nullptr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1427838</commentid>
    <comment_count>10</comment_count>
      <attachid>341431</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-05-27 15:18:44 -0700</bug_when>
    <thetext>Created attachment 341431
Patch v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1427839</commentid>
    <comment_count>11</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-05-27 15:20:19 -0700</bug_when>
    <thetext>(In reply to David Kilzer (:ddkilzer) from comment #10)
&gt; Created attachment 341431 [details]
&gt; Patch v3

Checking to see if this patch works on EWS after the fix for Bug 29684 landed.

Also implemented suggestions from Dan&apos;s review of Patch v2 (attachment 341390).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1427881</commentid>
    <comment_count>12</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-05-27 21:23:05 -0700</bug_when>
    <thetext>Committed r232236: &lt;https://trac.webkit.org/changeset/232236&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1427888</commentid>
    <comment_count>13</comment_count>
      <attachid>341431</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-05-27 22:14:53 -0700</bug_when>
    <thetext>Comment on attachment 341431
Patch v3

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

&gt; Source/ThirdParty/libwebrtc/ChangeLog:12
&gt; +        * Source/third_party/opus/src/src/opus_compare.c:
&gt; +        * Source/third_party/opus/src/src/opus_demo.c:
&gt; +        (main):
&gt; +        - Free allocated memory on early returns.

Filed:  https://github.com/xiph/opus/issues/90

&gt; Source/ThirdParty/libwebrtc/ChangeLog:16
&gt; +        * Source/third_party/usrsctp/usrsctplib/user_mbuf.c:
&gt; +        (clust_constructor_dup):
&gt; +        (mb_ctor_clust):
&gt; +        - Free allocated memory if `m` is NULL.

The issue in clust_constructor_dup() was fixed upstream by:
https://github.com/sctplab/usrsctp/commit/389aa67d1e18dc2ba72e3cf3761ab1b87370ffef

The same code exists in mb_ctor_clust() upstream, but it is commented out, so it doesn&apos;t really matter whether it&apos;s fixed at this point.

&gt; Source/ThirdParty/libwebrtc/ChangeLog:19
&gt; +        * Source/third_party/usrsctp/usrsctplib/user_socket.c:
&gt; +        (usrsctp_connect): Free `sa` memory if getsockaddr() returns an
&gt; +        error, but still allocates memory for `sa`.

Filed:  https://github.com/sctplab/usrsctp/issues/230</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341389</attachid>
            <date>2018-05-25 22:12:08 -0700</date>
            <delta_ts>2018-05-25 22:24:42 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-186009-20180525221207.patch</filename>
            <type>text/plain</type>
            <size>37455</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyMTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCAzOWI4ODhhYjdkYjg4MDNkNGVkNDdjY2RlOTBlYTFlYzZlMjdmYjQ4Li4yZDk1
MjM0YTJkOTQzMjE2ZmJiMDI3NmUxZjRkYjE4ZTU2NTBlMTcxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxOC0wNS0yNSAgRGF2aWQgS2ls
emVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEZpeCB3YXJuaW5ncyBh
Ym91dCBsZWFrcyBmb3VuZCBieSBjbGFuZyBzdGF0aWMgYW5hbHl6ZXIKKyAgICAgICAgPGh0dHBz
Oi8vd2Via2l0Lm9yZy9iLzE4NjAwOT4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQwNTc0MjY3
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291
cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL3NyYy9vcHVzX2NvbXBhcmUuYzoKKyAgICAgICAgKiBT
b3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvc3JjL29wdXNfZGVtby5jOgorICAgICAgICAobWFp
bik6CisgICAgICAgIC0gRnJlZSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVhcmx5IHJldHVybnMuCisK
KyAgICAgICAgKiBTb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzZXJfbWJ1
Zi5jOgorICAgICAgICAoY2x1c3RfY29uc3RydWN0b3JfZHVwKToKKyAgICAgICAgKG1iX2N0b3Jf
Y2x1c3QpOgorICAgICAgICAtIEZyZWUgYWxsb2NhdGVkIG1lbW9yeSBpZiBgbWAgaXMgTlVMTC4K
KyAgICAgICAgKiBTb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzZXJfc29j
a2V0LmM6CisgICAgICAgICh1c3JzY3RwX2Nvbm5lY3QpOiBGcmVlIGBzYWAgbWVtb3J5IGlmIGdl
dHNvY2thZGRyKCkgcmV0dXJucyBhbgorICAgICAgICBlcnJvciwgYnV0IHN0aWxsIGFsbG9jYXRl
cyBtZW1vcnkgZm9yIGBzYWAuCisgICAgICAgICogV2ViS2l0L3BhdGNoLW9wdXMuZGlmZjogQWRk
IHBhdGNoIGZvciBvcHVzIGNoYW5nZXMuCisgICAgICAgICogV2ViS2l0L3BhdGNoLXVzcnNjdHA6
IFJlbmFtZSBlbXB0eSBmaWxlIHRvIHBhdGNoLXVzcnNjdHAuZGlmZi4KKyAgICAgICAgKiBXZWJL
aXQvcGF0Y2gtdXNyc2N0cC5kaWZmOiBBZGQgcGF0Y2ggZm9yIHVzcnNjdHAgY2hhbmdlcy4KKyAg
ICAgICAgKiBsaWJ3ZWJydGMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogUmVtb3ZlIG9wdXNf
Y29tcGFyZS5jLAorICAgICAgICBvcHVzX2RlbW8uYywgYW5kIHJlcGFja2V0aXplcl9kZW1vLmMg
ZnJvbSBvcHVzIHRhcmdldC4gIFRoaXMKKyAgICAgICAgY29kZSBpcyBmb3Igc3RhbmQtYWxvbmUg
dG9vbHMsIGFuZCBhbHRob3VnaCBpdCBtYXkgYmUgcmVtb3ZlZAorICAgICAgICBkdXJpbmcgZGVh
ZCBjb2RlIGxpbmtpbmcsIHdlIGRvbid0IG5lZWQgdG8gc3BlbmQgdGltZSBjb21waWxpbmcKKyAg
ICAgICAgaXQuCisKIDIwMTgtMDUtMDcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgogCiAgICAgICAgIEFjdGl2YXRlIEFSQyBmb3IgbGlid2VicnRjIE9iamVjdGl2ZSBDIGZpbGVz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggN2RmMWM1MWM4MmVhMDJjY2YxOTBiNWU3N2E3ZDJjNmMzZTNhYWY0Ni4u
YjAwNzQ4YWMxOGI2OTk5YTdhZDYxYzQxNzNiYjdjYWQzZTU3OGVhZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDM0IEBACisyMDE4LTA1LTI1ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5j
b20+CisKKyAgICAgICAgW2lPU10gRml4IHdhcm5pbmdzIGFib3V0IGxlYWtzIGZvdW5kIGJ5IGNs
YW5nIHN0YXRpYyBhbmFseXplcgorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTg2MDA5
PgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDA1NzQyNjc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2NvY29hL0xv
Y2FsQXV0aGVudGljYXRvci5tbToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsQXV0aGVudGljYXRv
cjo6bWFrZUNyZWRlbnRpYWwpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxBdXRoZW50aWNhdG9y
OjpnZXRBc3NlcnRpb24pOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxBdXRoZW50aWNhdG9yOjpp
c3N1ZUNsaWVudENlcnRpZmljYXRlIGNvbnN0KToKKyAgICAgICAgLSBEb24ndCBsZWFrIENGIG9i
amVjdHMgaW4gZWFybHkgcmV0dXJuIHBhdGhzLCBhbmQgZ2V0IHJpZCBvZgorICAgICAgICAgIGBy
ZXRhaW5lZCpgIHZhcmlhYmxlcywgYnkgbWFraW5nIG9yaWdpbmFsIHZhcmlhYmxlcyB1c2UKKyAg
ICAgICAgICBSZXRhaW5QdHI8Pi4KKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9XZWJTY3JpcHRPYmpl
Y3QubW06CisgICAgICAgICgrW1dlYlVuZGVmaW5lZCBhbGxvY1dpdGhab25lOl0pOiBNb2Rlcm5p
emUgV2ViVW5kZWZpbmVkIGJ5CisgICAgICAgIHVzaW5nIE5ldmVyRGVzdHJveWVkPFJldGFpblBy
PFdlYlVuZGVmaW5lZD4+IHR5cGUuICBFeHBsaWNpdGx5CisgICAgICAgIHJldGFpbiB0aGUgb2Jq
ZWN0IHJldHVybmVkIG9uIGVhY2ggY2FsbC4KKyAgICAgICAgKCtbV2ViVW5kZWZpbmVkIHVuZGVm
aW5lZF0pOiBFeHBsaWNpdGx5IGF1dG9yZWxhc2UgdGhlIG9iamVjdAorICAgICAgICByZXR1cm5l
ZC4gIE5vdGUgdGhhdCBuZWl0aGVyIG9mIHRoZXNlIGNoYW5nZXMgZml4ZXMgdGhlIHN0YXRpYwor
ICAgICAgICBhbmFseXplciB3YXJuaW5ncyBpbiB0aGlzIHNvdXJjZSBmaWxlLgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpleGVybmFsRGV2aWNlRGlzcGxh
eU5hbWVGb3JQbGF5ZXIpOiBVc2UgUmV0YWluUHRyPD4gdG8KKyAgICAgICAgc3RvcCBsZWFraW5n
IE5TU3RyaW5nIG9iamVjdHMgaW4gYSBsb29wLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy93YWsv
V0FLV2luZG93Lmg6CisgICAgICAgICgtW1dBS1dpbmRvdyBfbmV3Rmlyc3RSZXNwb25kZXJBZnRl
clJlc2lnbmluZ10pOiBNYXJrIGFzCisgICAgICAgIE5TX1JFVFVSTlNfTk9UX1JFVEFJTkVEIGxp
a2UgdGhlIGNvcnJlc3BvbmRpbmcgQXBwS2l0IG1ldGhvZAorICAgICAgICBzaW5jZSB0aGlzIGRv
ZXNuJ3QgcmV0dXJuIGEgbmV3IG9iamVjdC4gIFRoaXMgZml4ZXMgc29tZQorICAgICAgICBmYWxz
ZS1wb3NpdGl2ZSBsZWFrcyB3YXJuaW5ncy4KKwogMjAxOC0wNS0yMyAgRGF2aWQgS2lsemVyICA8
ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIEFkZCBhc3NlcnQgdG8gY2F0Y2gg
aW1wcm9wZXIgdXNlIG9mIFdlYkNvcmU6OlRpbWVyIGluIFVJIFByb2Nlc3MKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
ZjE5N2U2ZTAxNTJlNWFjMzJhZjZkYzBkNTQ1YjBkMzE3YjAwNTZkZC4uNjIyMzY5ZmM5ODAyZWQw
ODU0MTcxYTEzMThkMzE2NTQxZDU4Yzk3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAx
OC0wNS0yNSAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtp
T1NdIEZpeCB3YXJuaW5ncyBhYm91dCBsZWFrcyBmb3VuZCBieSBjbGFuZyBzdGF0aWMgYW5hbHl6
ZXIKKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE4NjAwOT4KKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzQwNTc0MjY3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogVUlQcm9jZXNzL0F1dG9tYXRpb24vaW9zL1dlYkF1dG9tYXRpb25TZXNz
aW9uSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZv
cm1TaW11bGF0ZUtleVNlcXVlbmNlKTogRml4CisgICAgICAgIGxlYWsgb2YgdHdvIFdlYkV2ZW50
IG9iamVjdHMgdGhhdCBoYXBwZW5lZCBpbiBhIGxvb3AuCisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1N5c3RlbVByZXZpZXdDb250cm9sbGVyQ29jb2EubW06CisgICAgICAgICgtW19XS1ByZXZp
ZXdDb250cm9sbGVyRGVsZWdhdGUgcHJldmlld0NvbnRyb2xsZXI6dHJhbnNpdGlvbkltYWdlRm9y
UHJldmlld0l0ZW06Y29udGVudFJlY3Q6XSk6CisgICAgICAgIEZpeCBsZWFrIG9mIGEgVUlJbWFn
ZS4KKwogMjAxOC0wNS0yMyAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtpT1NdIEFkZCBhc3NlcnQgdG8gY2F0Y2ggaW1wcm9wZXIgdXNlIG9mIFdlYkNvcmU6
OlRpbWVyIGluIFVJIFByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA4ZDc1
YzYyNDEzODc1MDg4NjExY2E1NGUwNGY1MzUzMjJjOWQ2Mjk0Li5jOWVhZTdiMDg0ZTk2ZDlmYjU3
YzgzOTQ0Y2MzNmNhN2VlZmI3NGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMTgtMDUtMjUgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNv
bT4KKworICAgICAgICBbaU9TXSBGaXggd2FybmluZ3MgYWJvdXQgbGVha3MgZm91bmQgYnkgY2xh
bmcgc3RhdGljIGFuYWx5emVyCisgICAgICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8xODYwMDk+
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80MDU3NDI2Nz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubW06Cisg
ICAgICAgICgtW1dlYkhUTUxWaWV3IGRvQ29tbWFuZEJ5U2VsZWN0b3I6XSk6IEZpeCB1c2Ugb2Yg
YW4KKyAgICAgICAgdW5pbml0aWFsaXplZCBib29sZWFuIHZhcmlhYmxlIChgZXZlbnRXYXNIYW5k
bGVkYCkgdGhhdCBvbmx5CisgICAgICAgIGhhcHBlbmVkIG9uIGlPUy4KKwogMjAxOC0wNS0yNSAg
RGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBpc3N1ZXMg
d2l0aCAtZGVhbGxvYyBtZXRob2RzIGZvdW5kIGJ5IGNsYW5nIHN0YXRpYyBhbmFseXplcgpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9v
cHVzL3NyYy9zcmMvb3B1c19jb21wYXJlLmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL3NyYy9vcHVzX2NvbXBhcmUuYwppbmRleCAwNmM2
N2Q3NTJmNzE1M2MxOTEzNDQ5NDdkNTk0YjM2MTE2MzZjOWY4Li42NjgyOGZkOGNhZWY2YzhmN2Nj
OTBmODdlMzc5ZTJjZmIwN2QwY2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL3NyYy9vcHVzX2NvbXBhcmUuYworKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3Jj
L3NyYy9vcHVzX2NvbXBhcmUuYwpAQCAtMjM4LDExICsyMzgsMTUgQEAgaW50IG1haW4oaW50IF9h
cmdjLGNvbnN0IGNoYXIgKipfYXJndil7CiAgIGlmKHhsZW5ndGghPXlsZW5ndGgqZG93bnNhbXBs
ZSl7CiAgICAgZnByaW50ZihzdGRlcnIsIlNhbXBsZSBjb3VudHMgZG8gbm90IG1hdGNoICglbHUh
PSVsdSkuXG4iLAogICAgICAodW5zaWduZWQgbG9uZyl4bGVuZ3RoLCh1bnNpZ25lZCBsb25nKXls
ZW5ndGgqZG93bnNhbXBsZSk7CisgICAgZnJlZSh4KTsKKyAgICBmcmVlKHkpOwogICAgIHJldHVy
biBFWElUX0ZBSUxVUkU7CiAgIH0KICAgaWYoeGxlbmd0aDxURVNUX1dJTl9TSVpFKXsKICAgICBm
cHJpbnRmKHN0ZGVyciwiSW5zdWZmaWNpZW50IHNhbXBsZSBkYXRhICglbHU8JWkpLlxuIiwKICAg
ICAgKHVuc2lnbmVkIGxvbmcpeGxlbmd0aCxURVNUX1dJTl9TSVpFKTsKKyAgICBmcmVlKHgpOwor
ICAgIGZyZWUoeSk7CiAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKICAgfQogICBuZnJhbWVzPSh4
bGVuZ3RoLVRFU1RfV0lOX1NJWkUrVEVTVF9XSU5fU1RFUCkvVEVTVF9XSU5fU1RFUDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1
cy9zcmMvc3JjL29wdXNfZGVtby5jIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9zcmMvb3B1c19kZW1vLmMKaW5kZXggN2M5MzA2OTlkNjE0
M2RlYTMxZDdkZDY5YjQzMjNhZGU4MTJhMGUzOC4uNjk4OGE4Y2IxNWQ2ZTYwOGY1ODY1Mjc3MTc4
ZTFjMDRjNjk2MWQ0YiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9zcmMvb3B1c19kZW1vLmMKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9zcmMvb3B1c19k
ZW1vLmMKQEAgLTcyMSw4ICs3MjEsMTQgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3Zb
XSkKICAgICAgICAgICAgIGlmIChsZW5bdG9nZ2xlXSA8IDApCiAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgZnByaW50ZiAoc3RkZXJyLCAib3B1c19lbmNvZGUoKSByZXR1cm5lZCAlZFxu
IiwgbGVuW3RvZ2dsZV0pOworICAgICAgICAgICAgICAgIGZyZWUoZGF0YVswXSk7CisgICAgICAg
ICAgICAgICAgaWYgKHVzZV9pbmJhbmRmZWMpCisgICAgICAgICAgICAgICAgICAgIGZyZWUoZGF0
YVsxXSk7CiAgICAgICAgICAgICAgICAgZmNsb3NlKGZpbik7CiAgICAgICAgICAgICAgICAgZmNs
b3NlKGZvdXQpOworICAgICAgICAgICAgICAgIGZyZWUoaW4pOworICAgICAgICAgICAgICAgIGZy
ZWUob3V0KTsKKyAgICAgICAgICAgICAgICBmcmVlKGZieXRlcyk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIEVYSVRfRkFJTFVSRTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGN1cnJfbW9k
ZV9jb3VudCArPSBmcmFtZV9zaXplOwpAQCAtNzQwLDYgKzc0NiwxNCBAQCBpbnQgbWFpbihpbnQg
YXJnYywgY2hhciAqYXJndltdKQogICAgICAgICAgICBpZiAoKGVyciA9IG9wdXNfcGFja2V0X3Bh
ZChkYXRhW3RvZ2dsZV0sIGxlblt0b2dnbGVdLCBuZXdfbGVuKSkgIT0gT1BVU19PSykKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgInBhZGRpbmcgZmFpbGVkOiAl
c1xuIiwgb3B1c19zdHJlcnJvcihlcnIpKTsKKyAgICAgICAgICAgICAgZnJlZShkYXRhWzBdKTsK
KyAgICAgICAgICAgICAgaWYgKHVzZV9pbmJhbmRmZWMpCisgICAgICAgICAgICAgICAgICBmcmVl
KGRhdGFbMV0pOworICAgICAgICAgICAgICBmY2xvc2UoZmluKTsKKyAgICAgICAgICAgICAgZmNs
b3NlKGZvdXQpOworICAgICAgICAgICAgICBmcmVlKGluKTsKKyAgICAgICAgICAgICAgZnJlZShv
dXQpOworICAgICAgICAgICAgICBmcmVlKGZieXRlcyk7CiAgICAgICAgICAgICAgIHJldHVybiBF
WElUX0ZBSUxVUkU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbGVuW3RvZ2dsZV0gPSBuZXdf
bGVuOwpAQCAtNzUxLDE1ICs3NjUsMzkgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3Zb
XSkKICAgICAgICAgICAgIGludF90b19jaGFyKGxlblt0b2dnbGVdLCBpbnRfZmllbGQpOwogICAg
ICAgICAgICAgaWYgKGZ3cml0ZShpbnRfZmllbGQsIDEsIDQsIGZvdXQpICE9IDQpIHsKICAgICAg
ICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRXJyb3Igd3JpdGluZy5cbiIpOworICAgICAgICAg
ICAgICAgZnJlZShkYXRhWzBdKTsKKyAgICAgICAgICAgICAgIGlmICh1c2VfaW5iYW5kZmVjKQor
ICAgICAgICAgICAgICAgICAgIGZyZWUoZGF0YVsxXSk7CisgICAgICAgICAgICAgICBmY2xvc2Uo
ZmluKTsKKyAgICAgICAgICAgICAgIGZjbG9zZShmb3V0KTsKKyAgICAgICAgICAgICAgIGZyZWUo
aW4pOworICAgICAgICAgICAgICAgZnJlZShvdXQpOworICAgICAgICAgICAgICAgZnJlZShmYnl0
ZXMpOwogICAgICAgICAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIGludF90b19jaGFyKGVuY19maW5hbF9yYW5nZVt0b2dnbGVdLCBpbnRfZmll
bGQpOwogICAgICAgICAgICAgaWYgKGZ3cml0ZShpbnRfZmllbGQsIDEsIDQsIGZvdXQpICE9IDQp
IHsKICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRXJyb3Igd3JpdGluZy5cbiIpOwor
ICAgICAgICAgICAgICAgZnJlZShkYXRhWzBdKTsKKyAgICAgICAgICAgICAgIGlmICh1c2VfaW5i
YW5kZmVjKQorICAgICAgICAgICAgICAgICAgIGZyZWUoZGF0YVsxXSk7CisgICAgICAgICAgICAg
ICBmY2xvc2UoZmluKTsKKyAgICAgICAgICAgICAgIGZjbG9zZShmb3V0KTsKKyAgICAgICAgICAg
ICAgIGZyZWUoaW4pOworICAgICAgICAgICAgICAgZnJlZShvdXQpOworICAgICAgICAgICAgICAg
ZnJlZShmYnl0ZXMpOwogICAgICAgICAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIGlmIChmd3JpdGUoZGF0YVt0b2dnbGVdLCAxLCBsZW5bdG9n
Z2xlXSwgZm91dCkgIT0gKHVuc2lnbmVkKWxlblt0b2dnbGVdKSB7CiAgICAgICAgICAgICAgICBm
cHJpbnRmKHN0ZGVyciwgIkVycm9yIHdyaXRpbmcuXG4iKTsKKyAgICAgICAgICAgICAgIGZyZWUo
ZGF0YVswXSk7CisgICAgICAgICAgICAgICBpZiAodXNlX2luYmFuZGZlYykKKyAgICAgICAgICAg
ICAgICAgICBmcmVlKGRhdGFbMV0pOworICAgICAgICAgICAgICAgZmNsb3NlKGZpbik7CisgICAg
ICAgICAgICAgICBmY2xvc2UoZm91dCk7CisgICAgICAgICAgICAgICBmcmVlKGluKTsKKyAgICAg
ICAgICAgICAgIGZyZWUob3V0KTsKKyAgICAgICAgICAgICAgIGZyZWUoZmJ5dGVzKTsKICAgICAg
ICAgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICB0b3Rfc2FtcGxlcyArPSBuYl9lbmNvZGVkOwpAQCAtODAzLDYgKzg0MSwxNCBAQCBpbnQgbWFp
bihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChmd3JpdGUoZmJ5dGVzLCBzaXplb2Yoc2hvcnQpKmNoYW5u
ZWxzLCBvdXRwdXRfc2FtcGxlcy1za2lwLCBmb3V0KSAhPSAodW5zaWduZWQpKG91dHB1dF9zYW1w
bGVzLXNraXApKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJF
cnJvciB3cml0aW5nLlxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgIGZyZWUoZGF0YVsw
XSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh1c2VfaW5iYW5kZmVjKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZnJlZShkYXRhWzFdKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgZmNsb3NlKGZpbik7CisgICAgICAgICAgICAgICAgICAgICAgICAgIGZjbG9zZShm
b3V0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZnJlZShpbik7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZyZWUob3V0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZnJlZShm
Ynl0ZXMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwog
ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHRvdF9vdXQg
Kz0gb3V0cHV0X3NhbXBsZXMtc2tpcDsKQEAgLTgyOSw4ICs4NzUsMTQgQEAgaW50IG1haW4oaW50
IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyljb3Vu
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAodW5zaWduZWQgbG9uZyllbmNfZmluYWxfcmFu
Z2VbdG9nZ2xlXnVzZV9pbmJhbmRmZWNdLAogICAgICAgICAgICAgICAgICAgICAgICAgICh1bnNp
Z25lZCBsb25nKWRlY19maW5hbF9yYW5nZSk7CisgICAgICAgICAgICBmcmVlKGRhdGFbMF0pOwor
ICAgICAgICAgICAgaWYgKHVzZV9pbmJhbmRmZWMpCisgICAgICAgICAgICAgICAgZnJlZShkYXRh
WzFdKTsKICAgICAgICAgICAgIGZjbG9zZShmaW4pOwogICAgICAgICAgICAgZmNsb3NlKGZvdXQp
OworICAgICAgICAgICAgZnJlZShpbik7CisgICAgICAgICAgICBmcmVlKG91dCk7CisgICAgICAg
ICAgICBmcmVlKGZieXRlcyk7CiAgICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwogICAg
ICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzZXJfbWJ1Zi5jIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNl
cl9tYnVmLmMKaW5kZXggN2ExYWFiYTg1NWVlNmUwZDM0MDE1ZDhhYWI4ZmZkODYyNjMxMTg0OC4u
M2ViZDhhMjdiNmI3N2QwYWI1OGE2M2M5ZTc3ZDJiY2RmMTUzMTcyYiAxMDA2NDQKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNj
dHBsaWIvdXNlcl9tYnVmLmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNlcl9tYnVmLmMKQEAgLTIzMiw3ICsy
MzIsOCBAQCBzdGF0aWMgaW50IGNsdXN0X2NvbnN0cnVjdG9yX2R1cChjYWRkcl90IG1fY2x1c3Qs
IHN0cnVjdCBtYnVmKiBtKQogCQltLT5tX2V4dC5leHRfc2l6ZSA9IHNpemU7CiAJCW0tPm1fZXh0
LmV4dF90eXBlID0gdHlwZTsKIAkJbS0+bV9leHQucmVmX2NudCA9IHJlZmNudDsKLQl9CisJfSBl
bHNlCisJCVNDVFBfWk9ORV9GUkVFKHpvbmVfZXh0X3JlZmNudCwgcmVmY250KTsKIAogCXJldHVy
biAoMCk7CiB9CkBAIC01MjcsNyArNTI4LDggQEAgbWJfY3Rvcl9jbHVzdCh2b2lkICptZW0sIHZv
aWQgKmFyZywgaW50IGZsZ3MpCiAJCW0tPm1fZXh0LmV4dF9zaXplID0gc2l6ZTsKIAkJbS0+bV9l
eHQuZXh0X3R5cGUgPSB0eXBlOwogCQltLT5tX2V4dC5yZWZfY250ID0gcmVmY250OwotCX0KKwl9
IGVsc2UKKwkJU0NUUF9aT05FX0ZSRUUoem9uZV9leHRfcmVmY250LCByZWZjbnQpOwogI2VuZGlm
CiAJcmV0dXJuICgwKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzZXJfc29ja2V0LmMgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNy
c2N0cGxpYi91c2VyX3NvY2tldC5jCmluZGV4IGE1NDk5NmVmZGQ4ODZlZDgzNTI4NTM3ZDI1N2Nj
MDg1ZDExYWE1ZDkuLmI5NGUxZTVjMjRhZjMzMGVjNjc4NzYxZTkyMGE1NWU3ZmIxOTY4MWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
dXNyc2N0cC91c3JzY3RwbGliL3VzZXJfc29ja2V0LmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNlcl9zb2Nr
ZXQuYwpAQCAtMjEzMSwxMSArMjEzMSwxNCBAQCBkb25lMToKIAogaW50IHVzcnNjdHBfY29ubmVj
dChzdHJ1Y3Qgc29ja2V0ICpzbywgc3RydWN0IHNvY2thZGRyICpuYW1lLCBpbnQgbmFtZWxlbikK
IHsKLQlzdHJ1Y3Qgc29ja2FkZHIgKnNhOworCXN0cnVjdCBzb2NrYWRkciAqc2EgPSBOVUxMOwog
CiAJZXJybm8gPSBnZXRzb2NrYWRkcigmc2EsIChjYWRkcl90KW5hbWUsIG5hbWVsZW4pOwotCWlm
IChlcnJubykKKwlpZiAoZXJybm8pIHsKKwkJaWYgKHNhKQorCQkJRlJFRShzYSwgTV9TT05BTUUp
OwogCQlyZXR1cm4gKC0xKTsKKwl9CiAKIAllcnJubyA9IHVzZXJfY29ubmVjdChzbywgc2EpOwog
CUZSRUUoc2EsIE1fU09OQU1FKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9XZWJLaXQvcGF0Y2gtb3B1cy5kaWZmIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1dlYktpdC9wYXRjaC1vcHVzLmRpZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGZkNTY0OGUzOTVkODQwZmRjMTYy
ZjVjNzBhNzExY2NmODQxNzZhMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9XZWJLaXQvcGF0Y2gtb3B1cy5kaWZmCkBAIC0wLDAgKzEsMTI0IEBACitkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9v
cHVzL3NyYy9zcmMvb3B1c19jb21wYXJlLmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL3NyYy9vcHVzX2NvbXBhcmUuYworaW5kZXggMDZj
NjdkNzUyZjcuLjY2ODI4ZmQ4Y2FlIDEwMDY0NAorLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9zcmMvb3B1c19jb21wYXJlLmMKKysr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9z
cmMvc3JjL29wdXNfY29tcGFyZS5jCitAQCAtMjM4LDExICsyMzgsMTUgQEAgaW50IG1haW4oaW50
IF9hcmdjLGNvbnN0IGNoYXIgKipfYXJndil7CisgICBpZih4bGVuZ3RoIT15bGVuZ3RoKmRvd25z
YW1wbGUpeworICAgICBmcHJpbnRmKHN0ZGVyciwiU2FtcGxlIGNvdW50cyBkbyBub3QgbWF0Y2gg
KCVsdSE9JWx1KS5cbiIsCisgICAgICAodW5zaWduZWQgbG9uZyl4bGVuZ3RoLCh1bnNpZ25lZCBs
b25nKXlsZW5ndGgqZG93bnNhbXBsZSk7CisrICAgIGZyZWUoeCk7CisrICAgIGZyZWUoeSk7Cisg
ICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CisgICB9CisgICBpZih4bGVuZ3RoPFRFU1RfV0lOX1NJ
WkUpeworICAgICBmcHJpbnRmKHN0ZGVyciwiSW5zdWZmaWNpZW50IHNhbXBsZSBkYXRhICglbHU8
JWkpLlxuIiwKKyAgICAgICh1bnNpZ25lZCBsb25nKXhsZW5ndGgsVEVTVF9XSU5fU0laRSk7Cisr
ICAgIGZyZWUoeCk7CisrICAgIGZyZWUoeSk7CisgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7Cisg
ICB9CisgICBuZnJhbWVzPSh4bGVuZ3RoLVRFU1RfV0lOX1NJWkUrVEVTVF9XSU5fU1RFUCkvVEVT
VF9XSU5fU1RFUDsKK2RpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL3NyYy9vcHVzX2RlbW8uYyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvc3JjL29wdXNfZGVtby5j
CitpbmRleCA3YzkzMDY5OWQ2MS4uNjk4OGE4Y2IxNWQgMTAwNjQ0CistLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL3NyYy9vcHVzX2Rl
bW8uYworKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9vcHVzL3NyYy9zcmMvb3B1c19kZW1vLmMKK0BAIC03MjEsOCArNzIxLDE0IEBAIGludCBtYWlu
KGludCBhcmdjLCBjaGFyICphcmd2W10pCisgICAgICAgICAgICAgaWYgKGxlblt0b2dnbGVdIDwg
MCkKKyAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIGZwcmludGYgKHN0ZGVyciwgIm9w
dXNfZW5jb2RlKCkgcmV0dXJuZWQgJWRcbiIsIGxlblt0b2dnbGVdKTsKKysgICAgICAgICAgICAg
ICAgZnJlZShkYXRhWzBdKTsKKysgICAgICAgICAgICAgICAgaWYgKHVzZV9pbmJhbmRmZWMpCisr
ICAgICAgICAgICAgICAgICAgICBmcmVlKGRhdGFbMV0pOworICAgICAgICAgICAgICAgICBmY2xv
c2UoZmluKTsKKyAgICAgICAgICAgICAgICAgZmNsb3NlKGZvdXQpOworKyAgICAgICAgICAgICAg
ICBmcmVlKGluKTsKKysgICAgICAgICAgICAgICAgZnJlZShvdXQpOworKyAgICAgICAgICAgICAg
ICBmcmVlKGZieXRlcyk7CisgICAgICAgICAgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7Cisg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgIGN1cnJfbW9kZV9jb3VudCArPSBmcmFtZV9zaXpl
OworQEAgLTc0MCw2ICs3NDYsMTQgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkK
KyAgICAgICAgICAgIGlmICgoZXJyID0gb3B1c19wYWNrZXRfcGFkKGRhdGFbdG9nZ2xlXSwgbGVu
W3RvZ2dsZV0sIG5ld19sZW4pKSAhPSBPUFVTX09LKQorICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgZnByaW50ZihzdGRlcnIsICJwYWRkaW5nIGZhaWxlZDogJXNcbiIsIG9wdXNfc3RyZXJy
b3IoZXJyKSk7CisrICAgICAgICAgICAgICBmcmVlKGRhdGFbMF0pOworKyAgICAgICAgICAgICAg
aWYgKHVzZV9pbmJhbmRmZWMpCisrICAgICAgICAgICAgICAgICAgZnJlZShkYXRhWzFdKTsKKysg
ICAgICAgICAgICAgIGZjbG9zZShmaW4pOworKyAgICAgICAgICAgICAgZmNsb3NlKGZvdXQpOwor
KyAgICAgICAgICAgICAgZnJlZShpbik7CisrICAgICAgICAgICAgICBmcmVlKG91dCk7CisrICAg
ICAgICAgICAgICBmcmVlKGZieXRlcyk7CisgICAgICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlM
VVJFOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbGVuW3RvZ2dsZV0gPSBuZXdfbGVuOwor
QEAgLTc1MSwxNSArNzY1LDM5IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCisg
ICAgICAgICAgICAgaW50X3RvX2NoYXIobGVuW3RvZ2dsZV0sIGludF9maWVsZCk7CisgICAgICAg
ICAgICAgaWYgKGZ3cml0ZShpbnRfZmllbGQsIDEsIDQsIGZvdXQpICE9IDQpIHsKKyAgICAgICAg
ICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVycm9yIHdyaXRpbmcuXG4iKTsKKysgICAgICAgICAg
ICAgICBmcmVlKGRhdGFbMF0pOworKyAgICAgICAgICAgICAgIGlmICh1c2VfaW5iYW5kZmVjKQor
KyAgICAgICAgICAgICAgICAgICBmcmVlKGRhdGFbMV0pOworKyAgICAgICAgICAgICAgIGZjbG9z
ZShmaW4pOworKyAgICAgICAgICAgICAgIGZjbG9zZShmb3V0KTsKKysgICAgICAgICAgICAgICBm
cmVlKGluKTsKKysgICAgICAgICAgICAgICBmcmVlKG91dCk7CisrICAgICAgICAgICAgICAgZnJl
ZShmYnl0ZXMpOworICAgICAgICAgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CisgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgIGludF90b19jaGFyKGVuY19maW5hbF9yYW5nZVt0b2dnbGVd
LCBpbnRfZmllbGQpOworICAgICAgICAgICAgIGlmIChmd3JpdGUoaW50X2ZpZWxkLCAxLCA0LCBm
b3V0KSAhPSA0KSB7CisgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFcnJvciB3cml0
aW5nLlxuIik7CisrICAgICAgICAgICAgICAgZnJlZShkYXRhWzBdKTsKKysgICAgICAgICAgICAg
ICBpZiAodXNlX2luYmFuZGZlYykKKysgICAgICAgICAgICAgICAgICAgZnJlZShkYXRhWzFdKTsK
KysgICAgICAgICAgICAgICBmY2xvc2UoZmluKTsKKysgICAgICAgICAgICAgICBmY2xvc2UoZm91
dCk7CisrICAgICAgICAgICAgICAgZnJlZShpbik7CisrICAgICAgICAgICAgICAgZnJlZShvdXQp
OworKyAgICAgICAgICAgICAgIGZyZWUoZmJ5dGVzKTsKKyAgICAgICAgICAgICAgICByZXR1cm4g
RVhJVF9GQUlMVVJFOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBpZiAoZndyaXRlKGRh
dGFbdG9nZ2xlXSwgMSwgbGVuW3RvZ2dsZV0sIGZvdXQpICE9ICh1bnNpZ25lZClsZW5bdG9nZ2xl
XSkgeworICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRXJyb3Igd3JpdGluZy5cbiIp
OworKyAgICAgICAgICAgICAgIGZyZWUoZGF0YVswXSk7CisrICAgICAgICAgICAgICAgaWYgKHVz
ZV9pbmJhbmRmZWMpCisrICAgICAgICAgICAgICAgICAgIGZyZWUoZGF0YVsxXSk7CisrICAgICAg
ICAgICAgICAgZmNsb3NlKGZpbik7CisrICAgICAgICAgICAgICAgZmNsb3NlKGZvdXQpOworKyAg
ICAgICAgICAgICAgIGZyZWUoaW4pOworKyAgICAgICAgICAgICAgIGZyZWUob3V0KTsKKysgICAg
ICAgICAgICAgICBmcmVlKGZieXRlcyk7CisgICAgICAgICAgICAgICAgcmV0dXJuIEVYSVRfRkFJ
TFVSRTsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgdG90X3NhbXBsZXMgKz0gbmJfZW5j
b2RlZDsKK0BAIC04MDMsNiArODQxLDE0IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2
W10pCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoZndyaXRlKGZieXRlcywgc2l6ZW9mKHNob3J0KSpjaGFubmVscywgb3V0cHV0X3NhbXBsZXMt
c2tpcCwgZm91dCkgIT0gKHVuc2lnbmVkKShvdXRwdXRfc2FtcGxlcy1za2lwKSl7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVycm9yIHdyaXRpbmcuXG4iKTsK
KysgICAgICAgICAgICAgICAgICAgICAgICAgIGZyZWUoZGF0YVswXSk7CisrICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAodXNlX2luYmFuZGZlYykKKysgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmcmVlKGRhdGFbMV0pOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgZmNsb3Nl
KGZpbik7CisrICAgICAgICAgICAgICAgICAgICAgICAgICBmY2xvc2UoZm91dCk7CisrICAgICAg
ICAgICAgICAgICAgICAgICAgICBmcmVlKGluKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAg
IGZyZWUob3V0KTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgIGZyZWUoZmJ5dGVzKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB0b3Rfb3V0ICs9IG91dHB1
dF9zYW1wbGVzLXNraXA7CitAQCAtODI5LDggKzg3NSwxNCBAQCBpbnQgbWFpbihpbnQgYXJnYywg
Y2hhciAqYXJndltdKQorICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyljb3VudCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHVuc2lnbmVkIGxvbmcpZW5jX2ZpbmFsX3JhbmdlW3Rv
Z2dsZV51c2VfaW5iYW5kZmVjXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHVuc2lnbmVk
IGxvbmcpZGVjX2ZpbmFsX3JhbmdlKTsKKysgICAgICAgICAgICBmcmVlKGRhdGFbMF0pOworKyAg
ICAgICAgICAgIGlmICh1c2VfaW5iYW5kZmVjKQorKyAgICAgICAgICAgICAgICBmcmVlKGRhdGFb
MV0pOworICAgICAgICAgICAgIGZjbG9zZShmaW4pOworICAgICAgICAgICAgIGZjbG9zZShmb3V0
KTsKKysgICAgICAgICAgICBmcmVlKGluKTsKKysgICAgICAgICAgICBmcmVlKG91dCk7CisrICAg
ICAgICAgICAgZnJlZShmYnl0ZXMpOworICAgICAgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7
CisgICAgICAgICB9CisgCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
V2ViS2l0L3BhdGNoLXVzcnNjdHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvV2ViS2l0
L3BhdGNoLXVzcnNjdHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2OWRlMjliYjJk
MWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9X
ZWJLaXQvcGF0Y2gtdXNyc2N0cC5kaWZmIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1dl
YktpdC9wYXRjaC11c3JzY3RwLmRpZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTE4YThmNWM2NDU3ODRkNmY1ZDkz
NjgyYTVmOWYxOGMyMzJjZDE1NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9XZWJLaXQvcGF0Y2gtdXNyc2N0cC5kaWZmCkBAIC0wLDAgKzEsNDUgQEAKK2Rp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L3VzcnNjdHAvdXNyc2N0cGxpYi91c2VyX21idWYuYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzZXJfbWJ1Zi5jCitp
bmRleCA3YTFhYWJhODU1ZS4uM2ViZDhhMjdiNmIgMTAwNjQ0CistLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c2Vy
X21idWYuYworKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNlcl9tYnVmLmMKK0BAIC0yMzIsNyArMjMyLDggQEAg
c3RhdGljIGludCBjbHVzdF9jb25zdHJ1Y3Rvcl9kdXAoY2FkZHJfdCBtX2NsdXN0LCBzdHJ1Y3Qg
bWJ1ZiogbSkKKyAJCW0tPm1fZXh0LmV4dF9zaXplID0gc2l6ZTsKKyAJCW0tPm1fZXh0LmV4dF90
eXBlID0gdHlwZTsKKyAJCW0tPm1fZXh0LnJlZl9jbnQgPSByZWZjbnQ7CistCX0KKysJfSBlbHNl
CisrCQlTQ1RQX1pPTkVfRlJFRSh6b25lX2V4dF9yZWZjbnQsIHJlZmNudCk7CisgCisgCXJldHVy
biAoMCk7CisgfQorQEAgLTUyNyw3ICs1MjgsOCBAQCBtYl9jdG9yX2NsdXN0KHZvaWQgKm1lbSwg
dm9pZCAqYXJnLCBpbnQgZmxncykKKyAJCW0tPm1fZXh0LmV4dF9zaXplID0gc2l6ZTsKKyAJCW0t
Pm1fZXh0LmV4dF90eXBlID0gdHlwZTsKKyAJCW0tPm1fZXh0LnJlZl9jbnQgPSByZWZjbnQ7Cist
CX0KKysJfSBlbHNlCisrCQlTQ1RQX1pPTkVfRlJFRSh6b25lX2V4dF9yZWZjbnQsIHJlZmNudCk7
CisgI2VuZGlmCisgCXJldHVybiAoMCk7CisgfQorZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzZXJf
c29ja2V0LmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L3VzcnNjdHAvdXNyc2N0cGxpYi91c2VyX3NvY2tldC5jCitpbmRleCBhNTQ5OTZlZmRkOC4uYjk0
ZTFlNWMyNGEgMTAwNjQ0CistLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c2VyX3NvY2tldC5jCisrKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0
cGxpYi91c2VyX3NvY2tldC5jCitAQCAtMjEzMSwxMSArMjEzMSwxNCBAQCBkb25lMToKKyAKKyBp
bnQgdXNyc2N0cF9jb25uZWN0KHN0cnVjdCBzb2NrZXQgKnNvLCBzdHJ1Y3Qgc29ja2FkZHIgKm5h
bWUsIGludCBuYW1lbGVuKQorIHsKKy0Jc3RydWN0IHNvY2thZGRyICpzYTsKKysJc3RydWN0IHNv
Y2thZGRyICpzYSA9IE5VTEw7CisgCisgCWVycm5vID0gZ2V0c29ja2FkZHIoJnNhLCAoY2FkZHJf
dCluYW1lLCBuYW1lbGVuKTsKKy0JaWYgKGVycm5vKQorKwlpZiAoZXJybm8pIHsKKysJCWlmIChz
YSkKKysJCQlGUkVFKHNhLCBNX1NPTkFNRSk7CisgCQlyZXR1cm4gKC0xKTsKKysJfQorIAorIAll
cnJubyA9IHVzZXJfY29ubmVjdChzbywgc2EpOworIAlGUkVFKHNhLCBNX1NPTkFNRSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvbGlid2VicnRjLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvbGlid2VicnRjLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYThlYjNiYTE1YjM1ZTZmMWQyM2RlNDE3Yjc2
MDQyNDg2YzgyMTJlMi4uZjIxN2VjMzY3Y2Y0NTUzZjJmNWE4NDc3Njk1MDU2MjczM2M2NmU2MCAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL2xpYndlYnJ0Yy54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9saWJ3
ZWJydGMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTI2MCwxNiArMTI2MCwxMyBAQAog
CQk1QzRCNEFCNzFFNDJDNTc0MDAyNjUxQzggLyogbWxwX2RhdGEuYyBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNEI0QTk1MUU0MkM1MkQwMDI2NTFDOCAv
KiBtbHBfZGF0YS5jICovOyB9OwogCQk1QzRCNEFCODFFNDJDNTc0MDAyNjUxQzggLyogbWxwLmMg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzRCNEE5NjFF
NDJDNTJEMDAyNjUxQzggLyogbWxwLmMgKi87IH07CiAJCTVDNEI0QUI5MUU0MkM1NzQwMDI2NTFD
OCAvKiBtbHAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDVDNEI0QTk3MUU0MkM1MkQwMDI2NTFDOCAvKiBtbHAuaCAqLzsgfTsKLQkJNUM0QjRBQkExRTQy
QzU3NDAwMjY1MUM4IC8qIG9wdXNfY29tcGFyZS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNUM0QjRBOTgxRTQyQzUyRDAwMjY1MUM4IC8qIG9wdXNfY29t
cGFyZS5jICovOyB9OwogCQk1QzRCNEFCQjFFNDJDNTc0MDAyNjUxQzggLyogb3B1c19kZWNvZGVy
LmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzRCNEE5
OTFFNDJDNTJEMDAyNjUxQzggLyogb3B1c19kZWNvZGVyLmMgKi87IH07Ci0JCTVDNEI0QUJDMUU0
MkM1NzQwMDI2NTFDOCAvKiBvcHVzX2RlbW8uYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDVDNEI0QTlBMUU0MkM1MkQwMDI2NTFDOCAvKiBvcHVzX2RlbW8u
YyAqLzsgfTsKIAkJNUM0QjRBQkQxRTQyQzU3NDAwMjY1MUM4IC8qIG9wdXNfZW5jb2Rlci5jIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM0QjRBOUIxRTQy
QzUyRDAwMjY1MUM4IC8qIG9wdXNfZW5jb2Rlci5jICovOyB9OwogCQk1QzRCNEFCRTFFNDJDNTc0
MDAyNjUxQzggLyogb3B1c19tdWx0aXN0cmVhbV9kZWNvZGVyLmMgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzRCNEE5QzFFNDJDNTJEMDAyNjUxQzggLyog
b3B1c19tdWx0aXN0cmVhbV9kZWNvZGVyLmMgKi87IH07CiAJCTVDNEI0QUJGMUU0MkM1NzQwMDI2
NTFDOCAvKiBvcHVzX211bHRpc3RyZWFtX2VuY29kZXIuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNEI0QTlEMUU0MkM1MkQwMDI2NTFDOCAvKiBvcHVz
X211bHRpc3RyZWFtX2VuY29kZXIuYyAqLzsgfTsKIAkJNUM0QjRBQzAxRTQyQzU3NDAwMjY1MUM4
IC8qIG9wdXNfbXVsdGlzdHJlYW0uYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDVDNEI0QTlFMUU0MkM1MkQwMDI2NTFDOCAvKiBvcHVzX211bHRpc3RyZWFt
LmMgKi87IH07CiAJCTVDNEI0QUMxMUU0MkM1NzQwMDI2NTFDOCAvKiBvcHVzX3ByaXZhdGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNEI0QTlGMUU0
MkM1MkQwMDI2NTFDOCAvKiBvcHVzX3ByaXZhdGUuaCAqLzsgfTsKIAkJNUM0QjRBQzIxRTQyQzU3
NDAwMjY1MUM4IC8qIG9wdXMuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDVDNEI0QUEwMUU0MkM1MkQwMDI2NTFDOCAvKiBvcHVzLmMgKi87IH07Ci0JCTVD
NEI0QUMzMUU0MkM1NzQwMDI2NTFDOCAvKiByZXBhY2tldGl6ZXJfZGVtby5jIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM0QjRBQTExRTQyQzUyRDAwMjY1
MUM4IC8qIHJlcGFja2V0aXplcl9kZW1vLmMgKi87IH07CiAJCTVDNEI0QUM0MUU0MkM1NzQwMDI2
NTFDOCAvKiByZXBhY2tldGl6ZXIuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDVDNEI0QUEyMUU0MkM1MkQwMDI2NTFDOCAvKiByZXBhY2tldGl6ZXIuYyAq
LzsgfTsKIAkJNUM0QjRBQzUxRTQyQzU3NDAwMjY1MUM4IC8qIHRhbnNpZ190YWJsZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM0QjRBQTMxRTQyQzUy
RDAwMjY1MUM4IC8qIHRhbnNpZ190YWJsZS5oICovOyB9OwogCQk1QzRCNEMxOTFFNDMxRjc1MDAy
NjUxQzggLyogYml0cmF0ZV9hZGp1c3Rlci5jYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDVDNEI0QzEwMUU0MzFGNzUwMDI2NTFDOCAvKiBiaXRyYXRlX2Fk
anVzdGVyLmNjICovOyB9OwpAQCAtMTI0NDksOSArMTI0NDYsNyBAQAogCQkJCTVDNUY0MDk3MUU5
NzhGREIwMEQ5NDI3OSAvKiBOU1FfZGVsX2RlY19zc2UuYyBpbiBTb3VyY2VzICovLAogCQkJCTVD
NUY0MDk4MUU5NzhGREIwMEQ5NDI3OSAvKiBOU1Ffc3NlLmMgaW4gU291cmNlcyAqLywKIAkJCQk1
QzRCNEFDMjFFNDJDNTc0MDAyNjUxQzggLyogb3B1cy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJNUM0
QjRBQkExRTQyQzU3NDAwMjY1MUM4IC8qIG9wdXNfY29tcGFyZS5jIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNUM0QjRBQkIxRTQyQzU3NDAwMjY1MUM4IC8qIG9wdXNfZGVjb2Rlci5jIGluIFNvdXJjZXMg
Ki8sCi0JCQkJNUM0QjRBQkMxRTQyQzU3NDAwMjY1MUM4IC8qIG9wdXNfZGVtby5jIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNUM0QjRBQkQxRTQyQzU3NDAwMjY1MUM4IC8qIG9wdXNfZW5jb2Rlci5jIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNUM0QjRBQzAxRTQyQzU3NDAwMjY1MUM4IC8qIG9wdXNfbXVsdGlz
dHJlYW0uYyBpbiBTb3VyY2VzICovLAogCQkJCTVDNEI0QUJFMUU0MkM1NzQwMDI2NTFDOCAvKiBv
cHVzX211bHRpc3RyZWFtX2RlY29kZXIuYyBpbiBTb3VyY2VzICovLApAQCAtMTI0NzIsNyArMTI0
NjcsNiBAQAogCQkJCTVDREQ4RjRDMUU0M0NCMUUwMDYyMUU5MiAvKiByZWd1bGFyaXplX2NvcnJl
bGF0aW9uc19GSVguYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4RUY3MUU0M0M5RjYwMDYyMUU5
MiAvKiByZWd1bGFyaXplX2NvcnJlbGF0aW9uc19GTFAuYyBpbiBTb3VyY2VzICovLAogCQkJCTVD
NEI0QUM0MUU0MkM1NzQwMDI2NTFDOCAvKiByZXBhY2tldGl6ZXIuYyBpbiBTb3VyY2VzICovLAot
CQkJCTVDNEI0QUMzMUU0MkM1NzQwMDI2NTFDOCAvKiByZXBhY2tldGl6ZXJfZGVtby5jIGluIFNv
dXJjZXMgKi8sCiAJCQkJNUNERDhFODExRTQzQzgwQzAwNjIxRTkyIC8qIHJlc2FtcGxlci5jIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNUNERDhFNzgxRTQzQzgwQzAwNjIxRTkyIC8qIHJlc2FtcGxlcl9k
b3duMi5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhFNzcxRTQzQzgwQzAwNjIxRTkyIC8qIHJl
c2FtcGxlcl9kb3duMl8zLmMgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXV0aG4vY29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9jb2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0KaW5k
ZXggNDJhYzRmYTA0YjlhMDc5NDQwODM3NGNhNzM1ZjhhNjdhMDc0ZGFkMC4uMTI1OWEzMGRjYzc2
OWZlMTcwYzA3MDUxOWQ2N2M0ZDAyZDA2MWRhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdXRobi9jb2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9jb2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0KQEAg
LTI5NiwyNyArMjk2LDI2IEBAIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjptYWtlQ3JlZGVudGlh
bChjb25zdCBWZWN0b3I8dWludDhfdD4mIGhhc2gsIGNvbnN0IFB1YmxpCiAgICAgICAgICAgICAg
ICAgYXR0ZXN0ZWRDcmVkZW50aWFsRGF0YS5hcHBlbmRWZWN0b3IoY3JlZGVudGlhbElkKTsKIAog
ICAgICAgICAgICAgICAgIC8vIGNyZWRlbnRpYWxQdWJsaWNLZXkKLSAgICAgICAgICAgICAgICBD
RkRhdGFSZWYgcHVibGljS2V5RGF0YVJlZiA9IG51bGxwdHI7CisgICAgICAgICAgICAgICAgUmV0
YWluUHRyPENGRGF0YVJlZj4gcHVibGljS2V5RGF0YVJlZjsKICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgIGF1dG8gcHVibGljS2V5ID0gYWRvcHRDRihTZWNLZXlDb3B5UHVi
bGljS2V5KHByaXZhdGVLZXkpKTsKICAgICAgICAgICAgICAgICAgICAgQ0ZFcnJvclJlZiBlcnJv
clJlZiA9IG51bGxwdHI7Ci0gICAgICAgICAgICAgICAgICAgIHB1YmxpY0tleURhdGFSZWYgPSBT
ZWNLZXlDb3B5RXh0ZXJuYWxSZXByZXNlbnRhdGlvbihwdWJsaWNLZXkuZ2V0KCksICZlcnJvclJl
Zik7CisgICAgICAgICAgICAgICAgICAgIHB1YmxpY0tleURhdGFSZWYgPSBhZG9wdENGKFNlY0tl
eUNvcHlFeHRlcm5hbFJlcHJlc2VudGF0aW9uKHB1YmxpY0tleS5nZXQoKSwgJmVycm9yUmVmKSk7
CiAgICAgICAgICAgICAgICAgICAgIGF1dG8gcmV0YWluRXJyb3IgPSBhZG9wdENGKGVycm9yUmVm
KTsKICAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yUmVmKSB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICBMT0dfRVJST1IoIkNvdWxkbid0IGV4cG9ydCB0aGUgcHVibGljIGtleTogJUAiLCAo
TlNFcnJvciopZXJyb3JSZWYpOwogICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9uQ2Fs
bGJhY2soeyBVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiVW5rbm93biBpbnRlcm5hbCBlcnJv
ci4iKSB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgICAgICBBU1NFUlQoKChOU0RhdGEgKilwdWJsaWNLZXlE
YXRhUmVmKS5sZW5ndGggPT0gKDEgKyAyKkVTMjU2S2V5U2l6ZUluQnl0ZXMpKTsgLy8gMDQgfCBY
IHwgWQorICAgICAgICAgICAgICAgICAgICBBU1NFUlQoKChOU0RhdGEgKilwdWJsaWNLZXlEYXRh
UmVmLmdldCgpKS5sZW5ndGggPT0gKDEgKyAyKkVTMjU2S2V5U2l6ZUluQnl0ZXMpKTsgLy8gMDQg
fCBYIHwgWQogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBhdXRvIHJldGFpblB1
YmxpY0tleURhdGEgPSBhZG9wdENGKHB1YmxpY0tleURhdGFSZWYpOwogCiAgICAgICAgICAgICAg
ICAgLy8gQ09TRSBFbmNvZGluZwogICAgICAgICAgICAgICAgIC8vIEZJWE1FKDE4MzUzNSk6IElt
cHJvdmUgQ0JPUiBlbmNvZGVyIHRvIHdvcmsgd2l0aCBieXRlcyBkaXJlY3RseS4KICAgICAgICAg
ICAgICAgICBWZWN0b3I8dWludDhfdD4geChFUzI1NktleVNpemVJbkJ5dGVzKTsKLSAgICAgICAg
ICAgICAgICBbKE5TRGF0YSAqKXB1YmxpY0tleURhdGFSZWYgZ2V0Qnl0ZXM6IHguZGF0YSgpIHJh
bmdlOk5TTWFrZVJhbmdlKDEsIEVTMjU2S2V5U2l6ZUluQnl0ZXMpXTsKKyAgICAgICAgICAgICAg
ICBbKE5TRGF0YSAqKXB1YmxpY0tleURhdGFSZWYuZ2V0KCkgZ2V0Qnl0ZXM6IHguZGF0YSgpIHJh
bmdlOk5TTWFrZVJhbmdlKDEsIEVTMjU2S2V5U2l6ZUluQnl0ZXMpXTsKICAgICAgICAgICAgICAg
ICBWZWN0b3I8dWludDhfdD4geShFUzI1NktleVNpemVJbkJ5dGVzKTsKLSAgICAgICAgICAgICAg
ICBbKE5TRGF0YSAqKXB1YmxpY0tleURhdGFSZWYgZ2V0Qnl0ZXM6IHkuZGF0YSgpIHJhbmdlOk5T
TWFrZVJhbmdlKDEgKyBFUzI1NktleVNpemVJbkJ5dGVzLCBFUzI1NktleVNpemVJbkJ5dGVzKV07
CisgICAgICAgICAgICAgICAgWyhOU0RhdGEgKilwdWJsaWNLZXlEYXRhUmVmLmdldCgpIGdldEJ5
dGVzOiB5LmRhdGEoKSByYW5nZTpOU01ha2VSYW5nZSgxICsgRVMyNTZLZXlTaXplSW5CeXRlcywg
RVMyNTZLZXlTaXplSW5CeXRlcyldOwogICAgICAgICAgICAgICAgIGNib3I6OkNCT1JWYWx1ZTo6
TWFwVmFsdWUgcHVibGljS2V5TWFwOwogICAgICAgICAgICAgICAgIHB1YmxpY0tleU1hcFtjYm9y
OjpDQk9SVmFsdWUoQ09TRTo6a3R5KV0gPSBjYm9yOjpDQk9SVmFsdWUoQ09TRTo6RUMyKTsKICAg
ICAgICAgICAgICAgICBwdWJsaWNLZXlNYXBbY2Jvcjo6Q0JPUlZhbHVlKENPU0U6OmFsZyldID0g
Y2Jvcjo6Q0JPUlZhbHVlKENPU0U6OkVTMjU2KTsKQEAgLTM0NCwxNSArMzQzLDE0IEBAIHZvaWQg
TG9jYWxBdXRoZW50aWNhdG9yOjptYWtlQ3JlZGVudGlhbChjb25zdCBWZWN0b3I8dWludDhfdD4m
IGhhc2gsIGNvbnN0IFB1YmxpCiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICBDRkVycm9yUmVmIGVycm9yUmVmID0gbnVsbHB0cjsKICAgICAgICAgICAgICAgICAgICAgLy8g
RklYTUUoMTgzNjUyKTogUmVkdWNlIHByb21wdCBmb3IgYmlvbWV0cmljcwotICAgICAgICAgICAg
ICAgICAgICBDRkRhdGFSZWYgc2lnbmF0dXJlUmVmID0gU2VjS2V5Q3JlYXRlU2lnbmF0dXJlKHBy
aXZhdGVLZXksIGtTZWNLZXlBbGdvcml0aG1FQ0RTQVNpZ25hdHVyZU1lc3NhZ2VYOTYyU0hBMjU2
LCAoX19icmlkZ2UgQ0ZEYXRhUmVmKVtOU0RhdGEgZGF0YVdpdGhCeXRlczphdXRoRGF0YS5kYXRh
KCkgbGVuZ3RoOmF1dGhEYXRhLnNpemUoKV0sICZlcnJvclJlZik7CisgICAgICAgICAgICAgICAg
ICAgIGF1dG8gc2lnbmF0dXJlUmVmID0gYWRvcHRDRihTZWNLZXlDcmVhdGVTaWduYXR1cmUocHJp
dmF0ZUtleSwga1NlY0tleUFsZ29yaXRobUVDRFNBU2lnbmF0dXJlTWVzc2FnZVg5NjJTSEEyNTYs
IChfX2JyaWRnZSBDRkRhdGFSZWYpW05TRGF0YSBkYXRhV2l0aEJ5dGVzOmF1dGhEYXRhLmRhdGEo
KSBsZW5ndGg6YXV0aERhdGEuc2l6ZSgpXSwgJmVycm9yUmVmKSk7CiAgICAgICAgICAgICAgICAg
ICAgIGF1dG8gcmV0YWluRXJyb3IgPSBhZG9wdENGKGVycm9yUmVmKTsKICAgICAgICAgICAgICAg
ICAgICAgaWYgKGVycm9yUmVmKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBMT0dfRVJST1Io
IkNvdWxkbid0IGdlbmVyYXRlIHRoZSBzaWduYXR1cmU6ICVAIiwgKE5TRXJyb3IqKWVycm9yUmVm
KTsKICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbkNhbGxiYWNrKHsgVW5rbm93bkVy
cm9yLCBBU0NJSUxpdGVyYWwoIlVua25vd24gaW50ZXJuYWwgZXJyb3IuIikgfSk7CiAgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICAgICAgYXV0byByZXRhaW5TaWduYXR1cmUgPSBhZG9wdENGKHNpZ25hdHVyZVJlZik7
Ci0gICAgICAgICAgICAgICAgICAgIE5TRGF0YSAqbnNTaWduYXR1cmUgPSAoTlNEYXRhICopc2ln
bmF0dXJlUmVmOworICAgICAgICAgICAgICAgICAgICBOU0RhdGEgKm5zU2lnbmF0dXJlID0gKE5T
RGF0YSAqKXNpZ25hdHVyZVJlZi5nZXQoKTsKICAgICAgICAgICAgICAgICAgICAgc2lnbmF0dXJl
LmFwcGVuZChyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihuc1NpZ25hdHVyZS5ieXRl
cyksIG5zU2lnbmF0dXJlLmxlbmd0aCk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgIGF0dGVzdGF0aW9uU3RhdGVtZW50TWFwW2Nib3I6OkNCT1JWYWx1ZSgiYWxnIildID0gY2Jv
cjo6Q0JPUlZhbHVlKENPU0U6OkVTMjU2KTsKQEAgLTUwMiwxNSArNTAwLDE0IEBAIHZvaWQgTG9j
YWxBdXRoZW50aWNhdG9yOjpnZXRBc3NlcnRpb24oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNo
LCBjb25zdCBQdWJsaWNLCiAKICAgICAgICAgICAgIENGRXJyb3JSZWYgZXJyb3JSZWYgPSBudWxs
cHRyOwogICAgICAgICAgICAgLy8gRklYTUU6IENvbnZlcnRpbmcgQ0ZUeXBlUmVmIHRvIFNlY0tl
eVJlZiBpcyBxdWl0ZSBzdWJ0bGUgaGVyZS4KLSAgICAgICAgICAgIENGRGF0YVJlZiBzaWduYXR1
cmVSZWYgPSBTZWNLZXlDcmVhdGVTaWduYXR1cmUoKF9fYnJpZGdlIFNlY0tleVJlZikoKGlkKXBy
aXZhdGVLZXlSZWYpLCBrU2VjS2V5QWxnb3JpdGhtRUNEU0FTaWduYXR1cmVNZXNzYWdlWDk2MlNI
QTI1NiwgKF9fYnJpZGdlIENGRGF0YVJlZilkYXRhVG9TaWduLCAmZXJyb3JSZWYpOworICAgICAg
ICAgICAgYXV0byBzaWduYXR1cmVSZWYgPSBhZG9wdENGKFNlY0tleUNyZWF0ZVNpZ25hdHVyZSgo
X19icmlkZ2UgU2VjS2V5UmVmKSgoaWQpcHJpdmF0ZUtleVJlZiksIGtTZWNLZXlBbGdvcml0aG1F
Q0RTQVNpZ25hdHVyZU1lc3NhZ2VYOTYyU0hBMjU2LCAoX19icmlkZ2UgQ0ZEYXRhUmVmKWRhdGFU
b1NpZ24sICZlcnJvclJlZikpOwogICAgICAgICAgICAgYXV0byByZXRhaW5FcnJvciA9IGFkb3B0
Q0YoZXJyb3JSZWYpOwogICAgICAgICAgICAgaWYgKGVycm9yUmVmKSB7CiAgICAgICAgICAgICAg
ICAgTE9HX0VSUk9SKCJDb3VsZG4ndCBnZW5lcmF0ZSB0aGUgc2lnbmF0dXJlOiAlQCIsIChOU0Vy
cm9yKillcnJvclJlZik7CiAgICAgICAgICAgICAgICAgZXhjZXB0aW9uQ2FsbGJhY2soeyBVbmtu
b3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiVW5rbm93biBpbnRlcm5hbCBlcnJvci4iKSB9KTsKICAg
ICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBhdXRvIHJl
dGFpblNpZ25hdHVyZSA9IGFkb3B0Q0Yoc2lnbmF0dXJlUmVmKTsKLSAgICAgICAgICAgIE5TRGF0
YSAqbnNTaWduYXR1cmUgPSAoTlNEYXRhICopc2lnbmF0dXJlUmVmOworICAgICAgICAgICAgTlNE
YXRhICpuc1NpZ25hdHVyZSA9IChOU0RhdGEgKilzaWduYXR1cmVSZWYuZ2V0KCk7CiAgICAgICAg
ICAgICBzaWduYXR1cmUuYXBwZW5kKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KG5z
U2lnbmF0dXJlLmJ5dGVzKSwgbnNTaWduYXR1cmUubGVuZ3RoKTsKICAgICAgICAgfQogCkBAIC01
NTQsMTAgKzU1MSwxMCBAQCB2b2lkIExvY2FsQXV0aGVudGljYXRvcjo6aXNzdWVDbGllbnRDZXJ0
aWZpY2F0ZShjb25zdCBTdHJpbmcmIHJwSWQsIGNvbnN0IFN0cmluZwogICAgIC8vIEFwcGxlIEF0
dGVzdGF0aW9uCiAgICAgQVNTRVJUKGhhc2guc2l6ZSgpIDw9IDMyKTsKIAotICAgIFNlY0FjY2Vz
c0NvbnRyb2xSZWYgYWNjZXNzQ29udHJvbFJlZjsKKyAgICBSZXRhaW5QdHI8U2VjQWNjZXNzQ29u
dHJvbFJlZj4gYWNjZXNzQ29udHJvbFJlZjsKICAgICB7CiAgICAgICAgIENGRXJyb3JSZWYgZXJy
b3JSZWYgPSBudWxscHRyOwotICAgICAgICBhY2Nlc3NDb250cm9sUmVmID0gU2VjQWNjZXNzQ29u
dHJvbENyZWF0ZVdpdGhGbGFncyhOVUxMLCBrU2VjQXR0ckFjY2Vzc2libGVXaGVuUGFzc2NvZGVT
ZXRUaGlzRGV2aWNlT25seSwga1NlY0FjY2Vzc0NvbnRyb2xQcml2YXRlS2V5VXNhZ2UgfCBrU2Vj
QWNjZXNzQ29udHJvbFVzZXJQcmVzZW5jZSwgJmVycm9yUmVmKTsKKyAgICAgICAgYWNjZXNzQ29u
dHJvbFJlZiA9IGFkb3B0Q0YoU2VjQWNjZXNzQ29udHJvbENyZWF0ZVdpdGhGbGFncyhOVUxMLCBr
U2VjQXR0ckFjY2Vzc2libGVXaGVuUGFzc2NvZGVTZXRUaGlzRGV2aWNlT25seSwga1NlY0FjY2Vz
c0NvbnRyb2xQcml2YXRlS2V5VXNhZ2UgfCBrU2VjQWNjZXNzQ29udHJvbFVzZXJQcmVzZW5jZSwg
JmVycm9yUmVmKSk7CiAgICAgICAgIGF1dG8gcmV0YWluRXJyb3IgPSBhZG9wdENGKGVycm9yUmVm
KTsKICAgICAgICAgaWYgKGVycm9yUmVmKSB7CiAgICAgICAgICAgICBMT0dfRVJST1IoIkNvdWxk
bid0IGNyZWF0ZSBBQ0w6ICVAIiwgKE5TRXJyb3IgKillcnJvclJlZik7CkBAIC01NjUsNyArNTYy
LDYgQEAgdm9pZCBMb2NhbEF1dGhlbnRpY2F0b3I6Omlzc3VlQ2xpZW50Q2VydGlmaWNhdGUoY29u
c3QgU3RyaW5nJiBycElkLCBjb25zdCBTdHJpbmcKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQogICAgIH0KLSAgICBhdXRvIHJldGFpbkFjY2Vzc0NvbnRyb2wgPSBhZG9wdENGKGFjY2Vz
c0NvbnRyb2xSZWYpOwogCiAgICAgU3RyaW5nIGxhYmVsKHVzZXJuYW1lKTsKICAgICBsYWJlbC5h
cHBlbmQoIkAiICsgcnBJZCk7CkBAIC01NzgsNyArNTc0LDcgQEAgdm9pZCBMb2NhbEF1dGhlbnRp
Y2F0b3I6Omlzc3VlQ2xpZW50Q2VydGlmaWNhdGUoY29uc3QgU3RyaW5nJiBycElkLCBjb25zdCBT
dHJpbmcKICAgICAgICAga01BT3B0aW9uc0JBQVZhbGlkaXR5OiBAKDE0NDApLCAvLyBMYXN0IG9u
ZSBkYXkuCiAgICAgICAgIGtNQU9wdGlvbnNCQUFTQ1JUQXR0ZXN0YXRpb246IEAoTk8pLAogICAg
ICAgICBrTUFPcHRpb25zQkFBTm9uY2U6IFtOU0RhdGEgZGF0YVdpdGhCeXRlczpoYXNoLmRhdGEo
KSBsZW5ndGg6aGFzaC5zaXplKCldLAotICAgICAgICBrTUFPcHRpb25zQkFBQWNjZXNzQ29udHJv
bHM6IChpZClhY2Nlc3NDb250cm9sUmVmLAorICAgICAgICBrTUFPcHRpb25zQkFBQWNjZXNzQ29u
dHJvbHM6IChpZClhY2Nlc3NDb250cm9sUmVmLmdldCgpLAogICAgICAgICBrTUFPcHRpb25zQkFB
T0lEU1RvSW5jbHVkZTogQFtrTUFPcHRpb25zQkFBT0lETm9uY2VdCiAgICAgfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tIGIvU291
cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tCmluZGV4IDE4YjE3MzVj
YTBhYjk0OTMwNWMxOTFlMzRkZjA5ZTg0NGNjN2EzYzkuLjAwYWZmZWY0ZTJlMjAxZWRhZGI5ZjFi
M2FmNDVmN2YyNjQ0MTAwYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpj
L1dlYlNjcmlwdE9iamVjdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9XZWJT
Y3JpcHRPYmplY3QubW0KQEAgLTY1NiwxMCArNjU2LDEwIEBAICsgKGlkKWFsbG9jV2l0aFpvbmU6
KE5TWm9uZSAqKXVudXNlZFpvbmUKIHsKICAgICBVTlVTRURfUEFSQU0odW51c2VkWm9uZSk7CiAK
LSAgICBzdGF0aWMgV2ViVW5kZWZpbmVkICpzaGFyZWRVbmRlZmluZWQgPSAwOwotICAgIGlmICgh
c2hhcmVkVW5kZWZpbmVkKQotICAgICAgICBzaGFyZWRVbmRlZmluZWQgPSBbc3VwZXIgYWxsb2NX
aXRoWm9uZTpOVUxMXTsKLSAgICByZXR1cm4gc2hhcmVkVW5kZWZpbmVkOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxSZXRhaW5QdHI8V2ViVW5kZWZpbmVkPj4gc2hhcmVkVW5kZWZpbmVkOwor
ICAgIGlmICghc2hhcmVkVW5kZWZpbmVkLmdldCgpKQorICAgICAgICBzaGFyZWRVbmRlZmluZWQu
Z2V0KCkgPSBhZG9wdE5TKFtzdXBlciBhbGxvY1dpdGhab25lOk5VTExdKTsKKyAgICByZXR1cm4g
W3NoYXJlZFVuZGVmaW5lZC5nZXQoKSByZXRhaW5dOwogfQogCiAtIChOU1N0cmluZyAqKWRlc2Ny
aXB0aW9uCkBAIC03MTUsNyArNzE1LDcgQEAgLSAodm9pZClkZWFsbG9jCiAKICsgKFdlYlVuZGVm
aW5lZCAqKXVuZGVmaW5lZAogewotICAgIHJldHVybiBbV2ViVW5kZWZpbmVkIGFsbG9jV2l0aFpv
bmU6TlVMTF07CisgICAgcmV0dXJuIFtbV2ViVW5kZWZpbmVkIGFsbG9jV2l0aFpvbmU6TlVMTF0g
YXV0b3JlbGVhc2VdOwogfQogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCA1YjIy
MjUxMzg5MjBlZGMzMzI2N2VlODMzNDM0MjBiZDY2ODhhMDFlLi44NGExOWJmMWUzNjk0ZmQwOGVk
MmJlNTNkNzYyYzE1YTQ0NjliNTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTI4MDIs
OCArMjgwMiwxMCBAQCBzdGF0aWMgTlNTdHJpbmcgKmV4ZXJuYWxEZXZpY2VEaXNwbGF5TmFtZUZv
clBsYXllcihBVlBsYXllclR5cGUgKnBsYXllcikKICAgICAgICAgICAgIHJldHVybiBbb3V0cHV0
Q29udGV4dCBkZXZpY2VOYW1lXTsKIAogICAgICAgICBhdXRvIG91dHB1dERldmljZU5hbWVzID0g
YWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7Ci0gICAgICAgIGZvciAoQVZP
dXRwdXREZXZpY2UgKm91dHB1dERldmljZSBpbiBbb3V0cHV0Q29udGV4dCBvdXRwdXREZXZpY2Vz
XSkKLSAgICAgICAgICAgIFtvdXRwdXREZXZpY2VOYW1lcyBhZGRPYmplY3Q6W1tvdXRwdXREZXZp
Y2UgbmFtZV0gY29weV1dOworICAgICAgICBmb3IgKEFWT3V0cHV0RGV2aWNlICpvdXRwdXREZXZp
Y2UgaW4gW291dHB1dENvbnRleHQgb3V0cHV0RGV2aWNlc10pIHsKKyAgICAgICAgICAgIGF1dG8g
b3V0cHV0RGV2aWNlTmFtZSA9IGFkb3B0TlMoW1tvdXRwdXREZXZpY2UgbmFtZV0gY29weV0pOwor
ICAgICAgICAgICAgW291dHB1dERldmljZU5hbWVzIGFkZE9iamVjdDpvdXRwdXREZXZpY2VOYW1l
LmdldCgpXTsKKyAgICAgICAgfQogCiAgICAgICAgIHJldHVybiBbb3V0cHV0RGV2aWNlTmFtZXMg
Y29tcG9uZW50c0pvaW5lZEJ5U3RyaW5nOkAiICsgIl07CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XQUtXaW5kb3cuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy93YWsvV0FLV2luZG93LmgKaW5kZXggODczOTlhMTcwZGM2MTc5OTIwNmMx
ZjkzM2Y2ZWE2MTlkYTQyY2ViZS4uNGM4ZjYxZDllM2JlOGZkOGI5N2I1ZDAyMmU3YjYwNTJkNTcz
MzA2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XQUtXaW5k
b3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dBS1dpbmRvdy5oCkBA
IC0xMTYsNyArMTE2LDcgQEAgV0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBXQUtXaW5kb3cgOiBX
QUtSZXNwb25kZXIKIC0gKHZvaWQpc2V0VmlzaWJsZTooQk9PTCl2aXNpYmxlOwogLSAoTlNTZWxl
Y3Rpb25EaXJlY3Rpb24pa2V5Vmlld1NlbGVjdGlvbkRpcmVjdGlvbjsKIC0gKEJPT0wpbWFrZUZp
cnN0UmVzcG9uZGVyOihOU1Jlc3BvbmRlciAqKWFSZXNwb25kZXI7Ci0tIChXQUtWaWV3ICopX25l
d0ZpcnN0UmVzcG9uZGVyQWZ0ZXJSZXNpZ25pbmc7CistIChXQUtWaWV3ICopX25ld0ZpcnN0UmVz
cG9uZGVyQWZ0ZXJSZXNpZ25pbmcgTlNfUkVUVVJOU19OT1RfUkVUQUlORUQ7CiAtICh2b2lkKXNl
dEZyYW1lOihOU1JlY3QpZnJhbWVSZWN0IGRpc3BsYXk6KEJPT0wpZmxhZzsKIC0gKENHUmVjdClm
cmFtZTsKIC0gKHZvaWQpc2V0Q29udGVudFJlY3Q6KENHUmVjdClyZWN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9pb3MvV2ViQXV0b21hdGlvblNlc3Np
b25JT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL2lvcy9XZWJBdXRv
bWF0aW9uU2Vzc2lvbklPUy5tbQppbmRleCBhMDgzYzI5OWUzOWY0NTc5MmQ4ZDA4OGVmN2I2NDFh
NjUwNTg4ZjJmLi5jMTFjMDM0NmVkMDNlODJlN2M3MzI0M2ZhNmYyN2EzZmMxZDZmNjc1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL2lvcy9XZWJBdXRvbWF0
aW9uU2Vzc2lvbklPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9u
L2lvcy9XZWJBdXRvbWF0aW9uU2Vzc2lvbklPUy5tbQpAQCAtMTYzLDggKzE2MywxMCBAQCB2b2lk
IFdlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVsYXRlS2V5U2VxdWVuY2UoV2ViUGFn
ZVByb3h5JiBwYWdlLCBjb25zdAogICAgIEJPT0wgaXNUYWJLZXkgPSBbdGV4dCBpc0VxdWFsVG9T
dHJpbmc6QCJcdCJdOwogCiAgICAgW3RleHQgZW51bWVyYXRlU3Vic3RyaW5nc0luUmFuZ2U6TlNN
YWtlUmFuZ2UoMCwgdGV4dC5sZW5ndGgpIG9wdGlvbnM6TlNTdHJpbmdFbnVtZXJhdGlvbkJ5Q29t
cG9zZWRDaGFyYWN0ZXJTZXF1ZW5jZXMgdXNpbmdCbG9jazpeKE5TU3RyaW5nICpzdWJzdHJpbmcs
IE5TUmFuZ2Ugc3Vic3RyaW5nUmFuZ2UsIE5TUmFuZ2UgZW5jbG9zaW5nUmFuZ2UsIEJPT0wgKnN0
b3ApIHsKLSAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbWzo6V2ViRXZlbnQgYWxs
b2NdIGluaXRXaXRoS2V5RXZlbnRUeXBlOldlYkV2ZW50S2V5RG93biB0aW1lU3RhbXA6Q0ZBYnNv
bHV0ZVRpbWVHZXRDdXJyZW50KCkgY2hhcmFjdGVyczpzdWJzdHJpbmcgY2hhcmFjdGVyc0lnbm9y
aW5nTW9kaWZpZXJzOnN1YnN0cmluZyBtb2RpZmllcnM6bV9jdXJyZW50TW9kaWZpZXJzIGlzUmVw
ZWF0aW5nOk5PIHdpdGhGbGFnczowIHdpdGhJbnB1dE1hbmFnZXJIaW50Om5pbCBrZXlDb2RlOjAg
aXNUYWJLZXk6aXNUYWJLZXldXTsKLSAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpb
Wzo6V2ViRXZlbnQgYWxsb2NdIGluaXRXaXRoS2V5RXZlbnRUeXBlOldlYkV2ZW50S2V5VXAgdGlt
ZVN0YW1wOkNGQWJzb2x1dGVUaW1lR2V0Q3VycmVudCgpIGNoYXJhY3RlcnM6c3Vic3RyaW5nIGNo
YXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpzdWJzdHJpbmcgbW9kaWZpZXJzOm1fY3VycmVudE1v
ZGlmaWVycyBpc1JlcGVhdGluZzpOTyB3aXRoRmxhZ3M6MCB3aXRoSW5wdXRNYW5hZ2VySGludDpu
aWwga2V5Q29kZTowIGlzVGFiS2V5OmlzVGFiS2V5XV07CisgICAgICAgIGF1dG8ga2V5RG93bkV2
ZW50ID0gYWRvcHROUyhbWzo6V2ViRXZlbnQgYWxsb2NdIGluaXRXaXRoS2V5RXZlbnRUeXBlOldl
YkV2ZW50S2V5RG93biB0aW1lU3RhbXA6Q0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkgY2hhcmFj
dGVyczpzdWJzdHJpbmcgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOnN1YnN0cmluZyBtb2Rp
ZmllcnM6bV9jdXJyZW50TW9kaWZpZXJzIGlzUmVwZWF0aW5nOk5PIHdpdGhGbGFnczowIHdpdGhJ
bnB1dE1hbmFnZXJIaW50Om5pbCBrZXlDb2RlOjAgaXNUYWJLZXk6aXNUYWJLZXldKTsKKyAgICAg
ICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDprZXlEb3duRXZlbnQuZ2V0KCldOworICAgICAg
ICBhdXRvIGtleVVwRXZlbnQgPSBhZG9wdE5TKFtbOjpXZWJFdmVudCBhbGxvY10gaW5pdFdpdGhL
ZXlFdmVudFR5cGU6V2ViRXZlbnRLZXlVcCB0aW1lU3RhbXA6Q0ZBYnNvbHV0ZVRpbWVHZXRDdXJy
ZW50KCkgY2hhcmFjdGVyczpzdWJzdHJpbmcgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOnN1
YnN0cmluZyBtb2RpZmllcnM6bV9jdXJyZW50TW9kaWZpZXJzIGlzUmVwZWF0aW5nOk5PIHdpdGhG
bGFnczowIHdpdGhJbnB1dE1hbmFnZXJIaW50Om5pbCBrZXlDb2RlOjAgaXNUYWJLZXk6aXNUYWJL
ZXldKTsKKyAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDprZXlVcEV2ZW50LmdldCgp
XTsKICAgICB9XTsKIAogICAgIHNlbmRTeW50aGVzaXplZEV2ZW50c1RvUGFnZShwYWdlLCBldmVu
dHNUb0JlU2VudC5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9TeXN0ZW1QcmV2aWV3Q29udHJvbGxlckNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvU3lzdGVtUHJldmlld0NvbnRyb2xsZXJDb2NvYS5tbQppbmRleCA3Mjc4OTFh
OTlhOGEwYzcxMTRmMDM2MzUwMjg0MWI4YjY1NWM4YzU5Li40MjlmYjBjM2RhNDNiOTk5NzljNzEx
ZTY5ZTg1NDAyNDNjMmM4ZTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9TeXN0ZW1QcmV2aWV3Q29udHJvbGxlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1N5c3RlbVByZXZpZXdDb250cm9sbGVyQ29jb2EubW0KQEAgLTE4Myw3
ICsxODMsNyBAQCAtIChVSUltYWdlICopcHJldmlld0NvbnRyb2xsZXI6KFFMUHJldmlld0NvbnRy
b2xsZXIgKiljb250cm9sbGVyIHRyYW5zaXRpb25JbWFnZQogICAgICAgICB9CiAgICAgfQogCi0g
ICAgcmV0dXJuIFtVSUltYWdlIG5ld107CisgICAgcmV0dXJuIFtbVUlJbWFnZSBuZXddIGF1dG9y
ZWxlYXNlXTsKIH0KIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViSFRNTFZpZXcubW0KaW5kZXggNTk3NTMyMmJhM2M0MjU5Yjc0NzJlNWZkZGJmMWRkY2U1ZDJl
ZTk1Yy4uOWQyNzBlYzFlMDRiYjMzYjVjOTI4YmUwMTgwMzEzMmU0MGRlMzFjMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC02NzU0LDgg
KzY3NTQsOCBAQCAtICh2b2lkKWRvQ29tbWFuZEJ5U2VsZWN0b3I6KFNFTClzZWxlY3RvcgogICAg
ICAgICAgICAgRWRpdG9yOjpDb21tYW5kIGNvbW1hbmQgPSBbc2VsZiBjb3JlQ29tbWFuZEJ5U2Vs
ZWN0b3I6c2VsZWN0b3JdOwogICAgICAgICAgICAgaWYgKGNvbW1hbmQuaXNTdXBwb3J0ZWQoKSkK
ICAgICAgICAgICAgICAgICBldmVudFdhc0hhbmRsZWQgPSBjb21tYW5kLmV4ZWN1dGUoZXZlbnQp
OwotI2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAgICAgIGVsc2UgeworI2lmIFBMQVRGT1JNKE1B
QykKICAgICAgICAgICAgICAgICAvLyBJZiBXZWJLaXQgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIGNv
bW1hbmQsIHdlIG5lZWQgdG8gcGFzcyB0aGUgc2VsZWN0b3IgdG8gc3VwZXIuCiAgICAgICAgICAg
ICAgICAgX3ByaXZhdGUtPnNlbGVjdG9yRm9yRG9Db21tYW5kQnlTZWxlY3RvciA9IHNlbGVjdG9y
OwogCkBAIC02NzY3LDggKzY3NjcsMTAgQEAgLSAodm9pZClkb0NvbW1hbmRCeVNlbGVjdG9yOihT
RUwpc2VsZWN0b3IKICAgICAgICAgICAgICAgICBbc2luayBkZXRhY2hdOwogCiAgICAgICAgICAg
ICAgICAgX3ByaXZhdGUtPnNlbGVjdG9yRm9yRG9Db21tYW5kQnlTZWxlY3RvciA9IDA7Ci0gICAg
ICAgICAgICB9CisjZWxzZQorICAgICAgICAgICAgICAgIGV2ZW50V2FzSGFuZGxlZCA9IGZhbHNl
OwogI2VuZGlmCisgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBpZiAocGFyYW1l
dGVycykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341390</attachid>
            <date>2018-05-25 22:25:22 -0700</date>
            <delta_ts>2018-05-27 21:23:30 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-186009-20180525222522.patch</filename>
            <type>text/plain</type>
            <size>37437</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyMjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCAzOWI4ODhhYjdkYjg4MDNkNGVkNDdjY2RlOTBlYTFlYzZlMjdmYjQ4Li44MzYw
NGIzNzExYmY1MWE3ZGJkY2ZhZmVjMGM4ZjAyY2Q2YTYwODQ5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxOC0wNS0yNSAgRGF2aWQgS2ls
emVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEZpeCB3YXJuaW5ncyBh
Ym91dCBsZWFrcyBmb3VuZCBieSBjbGFuZyBzdGF0aWMgYW5hbHl6ZXIKKyAgICAgICAgPGh0dHBz
Oi8vd2Via2l0Lm9yZy9iLzE4NjAwOT4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQwNTc0MjY3
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291
cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL3NyYy9vcHVzX2NvbXBhcmUuYzoKKyAgICAgICAgKiBT
b3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvc3JjL29wdXNfZGVtby5jOgorICAgICAgICAobWFp
bik6CisgICAgICAgIC0gRnJlZSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVhcmx5IHJldHVybnMuCisg
ICAgICAgICogU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c2VyX21idWYu
YzoKKyAgICAgICAgKGNsdXN0X2NvbnN0cnVjdG9yX2R1cCk6CisgICAgICAgIChtYl9jdG9yX2Ns
dXN0KToKKyAgICAgICAgLSBGcmVlIGFsbG9jYXRlZCBtZW1vcnkgaWYgYG1gIGlzIE5VTEwuCisg
ICAgICAgICogU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c2VyX3NvY2tl
dC5jOgorICAgICAgICAodXNyc2N0cF9jb25uZWN0KTogRnJlZSBgc2FgIG1lbW9yeSBpZiBnZXRz
b2NrYWRkcigpIHJldHVybnMgYW4KKyAgICAgICAgZXJyb3IsIGJ1dCBzdGlsbCBhbGxvY2F0ZXMg
bWVtb3J5IGZvciBgc2FgLgorICAgICAgICAqIFdlYktpdC9wYXRjaC1vcHVzLmRpZmY6IEFkZCBw
YXRjaCBmb3Igb3B1cyBjaGFuZ2VzLgorICAgICAgICAqIFdlYktpdC9wYXRjaC11c3JzY3RwOiBS
ZW5hbWUgZW1wdHkgZmlsZSB0byBwYXRjaC11c3JzY3RwLmRpZmYuCisgICAgICAgICogV2ViS2l0
L3BhdGNoLXVzcnNjdHAuZGlmZjogQWRkIHBhdGNoIGZvciB1c3JzY3RwIGNoYW5nZXMuCisgICAg
ICAgICogbGlid2VicnRjLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IFJlbW92ZSBvcHVzX2Nv
bXBhcmUuYywKKyAgICAgICAgb3B1c19kZW1vLmMsIGFuZCByZXBhY2tldGl6ZXJfZGVtby5jIGZy
b20gb3B1cyB0YXJnZXQuICBUaGlzCisgICAgICAgIGNvZGUgaXMgZm9yIHN0YW5kLWFsb25lIHRv
b2xzLCBhbmQgYWx0aG91Z2ggaXQgbWF5IGJlIHJlbW92ZWQKKyAgICAgICAgZHVyaW5nIGRlYWQg
Y29kZSBsaW5raW5nLCB3ZSBkb24ndCBuZWVkIHRvIHNwZW5kIHRpbWUgY29tcGlsaW5nCisgICAg
ICAgIGl0LgorCiAyMDE4LTA1LTA3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
IAogICAgICAgICBBY3RpdmF0ZSBBUkMgZm9yIGxpYndlYnJ0YyBPYmplY3RpdmUgQyBmaWxlcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDBiNWViN2FmN2E2N2NjNjI5MWZhNGEyZjRjYTJiNTc2MWU2NGRhNGMuLjY3
ZTIyOTdlMGJiZTc2NjVlOGJjNTQxMzcwMjBjOGNkY2VlN2ZlZTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNCBAQAorMjAxOC0wNS0yNSAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29t
PgorCisgICAgICAgIFtpT1NdIEZpeCB3YXJuaW5ncyBhYm91dCBsZWFrcyBmb3VuZCBieSBjbGFu
ZyBzdGF0aWMgYW5hbHl6ZXIKKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE4NjAwOT4K
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQwNTc0MjY3PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9jb2NvYS9Mb2Nh
bEF1dGhlbnRpY2F0b3IubW06CisgICAgICAgIChXZWJDb3JlOjpMb2NhbEF1dGhlbnRpY2F0b3I6
Om1ha2VDcmVkZW50aWFsKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsQXV0aGVudGljYXRvcjo6
Z2V0QXNzZXJ0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsQXV0aGVudGljYXRvcjo6aXNz
dWVDbGllbnRDZXJ0aWZpY2F0ZSBjb25zdCk6CisgICAgICAgIC0gRG9uJ3QgbGVhayBDRiBvYmpl
Y3RzIGluIGVhcmx5IHJldHVybiBwYXRocywgYW5kIGdldCByaWQgb2YKKyAgICAgICAgICBgcmV0
YWluZWQqYCB2YXJpYWJsZXMsIGJ5IG1ha2luZyBvcmlnaW5hbCB2YXJpYWJsZXMgdXNlCisgICAg
ICAgICAgUmV0YWluUHRyPD4uCisgICAgICAgICogYnJpZGdlL29iamMvV2ViU2NyaXB0T2JqZWN0
Lm1tOgorICAgICAgICAoK1tXZWJVbmRlZmluZWQgYWxsb2NXaXRoWm9uZTpdKTogTW9kZXJuaXpl
IFdlYlVuZGVmaW5lZCBieQorICAgICAgICB1c2luZyBOZXZlckRlc3Ryb3llZDxSZXRhaW5QcjxX
ZWJVbmRlZmluZWQ+PiB0eXBlLiAgRXhwbGljaXRseQorICAgICAgICByZXRhaW4gdGhlIG9iamVj
dCByZXR1cm5lZCBvbiBlYWNoIGNhbGwuCisgICAgICAgICgrW1dlYlVuZGVmaW5lZCB1bmRlZmlu
ZWRdKTogRXhwbGljaXRseSBhdXRvcmVsYXNlIHRoZSBvYmplY3QKKyAgICAgICAgcmV0dXJuZWQu
ICBOb3RlIHRoYXQgbmVpdGhlciBvZiB0aGVzZSBjaGFuZ2VzIGZpeGVzIHRoZSBzdGF0aWMKKyAg
ICAgICAgYW5hbHl6ZXIgd2FybmluZ3MgaW4gdGhpcyBzb3VyY2UgZmlsZS4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6ZXhlcm5hbERldmljZURpc3BsYXlO
YW1lRm9yUGxheWVyKTogVXNlIFJldGFpblB0cjw+IHRvCisgICAgICAgIHN0b3AgbGVha2luZyBO
U1N0cmluZyBvYmplY3RzIGluIGEgbG9vcC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mvd2FrL1dB
S1dpbmRvdy5oOgorICAgICAgICAoLVtXQUtXaW5kb3cgX25ld0ZpcnN0UmVzcG9uZGVyQWZ0ZXJS
ZXNpZ25pbmddKTogTWFyayBhcworICAgICAgICBOU19SRVRVUk5TX05PVF9SRVRBSU5FRCBsaWtl
IHRoZSBjb3JyZXNwb25kaW5nIEFwcEtpdCBtZXRob2QKKyAgICAgICAgc2luY2UgdGhpcyBkb2Vz
bid0IHJldHVybiBhIG5ldyBvYmplY3QuICBUaGlzIGZpeGVzIHNvbWUKKyAgICAgICAgZmFsc2Ut
cG9zaXRpdmUgbGVha3Mgd2FybmluZ3MuCisKIDIwMTgtMDUtMjUgIE15bGVzIEMuIE1heGZpZWxk
ICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXByb3ZlIHRoZSBwZXJmb3JtYW5j
ZSBvZiBGb250OjpjYW5SZW5kZXJDb21iaW5pbmdDaGFyYWN0ZXJTZXF1ZW5jZSgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IGUwMDA2ZmNkNGFjMmI5MTAwNmIyMDA1NDNmMmI3MGQ4YWFjNDMxNWIuLmVhMGQ1YzI1ZTU5
MThmNzI4ZDAzNmE0OWY1MjhmNjhhNTY2ZjRlMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTgtMDUtMjUgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KKworICAgICAg
ICBbaU9TXSBGaXggd2FybmluZ3MgYWJvdXQgbGVha3MgZm91bmQgYnkgY2xhbmcgc3RhdGljIGFu
YWx5emVyCisgICAgICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8xODYwMDk+CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS80MDU3NDI2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL2lvcy9XZWJBdXRvbWF0aW9u
U2Vzc2lvbklPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OnBs
YXRmb3JtU2ltdWxhdGVLZXlTZXF1ZW5jZSk6IEZpeAorICAgICAgICBsZWFrIG9mIHR3byBXZWJF
dmVudCBvYmplY3RzIHRoYXQgaGFwcGVuZWQgaW4gYSBsb29wLgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9TeXN0ZW1QcmV2aWV3Q29udHJvbGxlckNvY29hLm1tOgorICAgICAgICAoLVtfV0tQ
cmV2aWV3Q29udHJvbGxlckRlbGVnYXRlIHByZXZpZXdDb250cm9sbGVyOnRyYW5zaXRpb25JbWFn
ZUZvclByZXZpZXdJdGVtOmNvbnRlbnRSZWN0Ol0pOgorICAgICAgICBGaXggbGVhayBvZiBhIFVJ
SW1hZ2UuCisKIDIwMTgtMDUtMjUgIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29t
PgogCiAgICAgICAgIFNldHRpbmcgZHJhd3NCYWNrZ3JvdW5kIHRvIFlFUyBvbiBhIFdLVmlldyBk
b2Vzbid0IHRha2UgZWZmZWN0IGltbWVkaWF0ZWx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cK
aW5kZXggZTAxYjQ1M2RlZDA5YmVmMjViZmI3N2FjNTFkYTUyOGNiZmMzMGVkMy4uODFkNjY0NTJl
ZTQ5YTBhMDY3MmQ1YjU3MjU3YTQ0NTFkMjYwZWViZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE4LTA1LTI1ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHpl
ckBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gRml4IHdhcm5pbmdzIGFib3V0IGxlYWtzIGZv
dW5kIGJ5IGNsYW5nIHN0YXRpYyBhbmFseXplcgorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3Jn
L2IvMTg2MDA5PgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDA1NzQyNjc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxW
aWV3Lm1tOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBkb0NvbW1hbmRCeVNlbGVjdG9yOl0pOiBG
aXggdXNlIG9mIGFuCisgICAgICAgIHVuaW5pdGlhbGl6ZWQgYm9vbGVhbiB2YXJpYWJsZSAoYGV2
ZW50V2FzSGFuZGxlZGApIHRoYXQgb25seQorICAgICAgICBoYXBwZW5lZCBvbiBpT1MuCisKIDIw
MTgtMDUtMjUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNaW5v
ciBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZSBjbGVhbiB1cApkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9zcmMvb3B1c19j
b21wYXJlLmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L29wdXMvc3JjL3NyYy9vcHVzX2NvbXBhcmUuYwppbmRleCAwNmM2N2Q3NTJmNzE1M2MxOTEzNDQ5
NDdkNTk0YjM2MTE2MzZjOWY4Li42NjgyOGZkOGNhZWY2YzhmN2NjOTBmODdlMzc5ZTJjZmIwN2Qw
Y2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L29wdXMvc3JjL3NyYy9vcHVzX2NvbXBhcmUuYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL3NyYy9vcHVzX2NvbXBhcmUu
YwpAQCAtMjM4LDExICsyMzgsMTUgQEAgaW50IG1haW4oaW50IF9hcmdjLGNvbnN0IGNoYXIgKipf
YXJndil7CiAgIGlmKHhsZW5ndGghPXlsZW5ndGgqZG93bnNhbXBsZSl7CiAgICAgZnByaW50Zihz
dGRlcnIsIlNhbXBsZSBjb3VudHMgZG8gbm90IG1hdGNoICglbHUhPSVsdSkuXG4iLAogICAgICAo
dW5zaWduZWQgbG9uZyl4bGVuZ3RoLCh1bnNpZ25lZCBsb25nKXlsZW5ndGgqZG93bnNhbXBsZSk7
CisgICAgZnJlZSh4KTsKKyAgICBmcmVlKHkpOwogICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CiAg
IH0KICAgaWYoeGxlbmd0aDxURVNUX1dJTl9TSVpFKXsKICAgICBmcHJpbnRmKHN0ZGVyciwiSW5z
dWZmaWNpZW50IHNhbXBsZSBkYXRhICglbHU8JWkpLlxuIiwKICAgICAgKHVuc2lnbmVkIGxvbmcp
eGxlbmd0aCxURVNUX1dJTl9TSVpFKTsKKyAgICBmcmVlKHgpOworICAgIGZyZWUoeSk7CiAgICAg
cmV0dXJuIEVYSVRfRkFJTFVSRTsKICAgfQogICBuZnJhbWVzPSh4bGVuZ3RoLVRFU1RfV0lOX1NJ
WkUrVEVTVF9XSU5fU1RFUCkvVEVTVF9XSU5fU1RFUDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvc3JjL29wdXNfZGVt
by5jIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVz
L3NyYy9zcmMvb3B1c19kZW1vLmMKaW5kZXggN2M5MzA2OTlkNjE0M2RlYTMxZDdkZDY5YjQzMjNh
ZGU4MTJhMGUzOC4uNjk4OGE4Y2IxNWQ2ZTYwOGY1ODY1Mjc3MTc4ZTFjMDRjNjk2MWQ0YiAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9v
cHVzL3NyYy9zcmMvb3B1c19kZW1vLmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9zcmMvb3B1c19kZW1vLmMKQEAgLTcyMSw4ICs3
MjEsMTQgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAgICAgICAgIGlm
IChsZW5bdG9nZ2xlXSA8IDApCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgZnByaW50
ZiAoc3RkZXJyLCAib3B1c19lbmNvZGUoKSByZXR1cm5lZCAlZFxuIiwgbGVuW3RvZ2dsZV0pOwor
ICAgICAgICAgICAgICAgIGZyZWUoZGF0YVswXSk7CisgICAgICAgICAgICAgICAgaWYgKHVzZV9p
bmJhbmRmZWMpCisgICAgICAgICAgICAgICAgICAgIGZyZWUoZGF0YVsxXSk7CiAgICAgICAgICAg
ICAgICAgZmNsb3NlKGZpbik7CiAgICAgICAgICAgICAgICAgZmNsb3NlKGZvdXQpOworICAgICAg
ICAgICAgICAgIGZyZWUoaW4pOworICAgICAgICAgICAgICAgIGZyZWUob3V0KTsKKyAgICAgICAg
ICAgICAgICBmcmVlKGZieXRlcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVS
RTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGN1cnJfbW9kZV9jb3VudCArPSBmcmFtZV9z
aXplOwpAQCAtNzQwLDYgKzc0NiwxNCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltd
KQogICAgICAgICAgICBpZiAoKGVyciA9IG9wdXNfcGFja2V0X3BhZChkYXRhW3RvZ2dsZV0sIGxl
blt0b2dnbGVdLCBuZXdfbGVuKSkgIT0gT1BVU19PSykKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICBmcHJpbnRmKHN0ZGVyciwgInBhZGRpbmcgZmFpbGVkOiAlc1xuIiwgb3B1c19zdHJlcnJv
cihlcnIpKTsKKyAgICAgICAgICAgICAgZnJlZShkYXRhWzBdKTsKKyAgICAgICAgICAgICAgaWYg
KHVzZV9pbmJhbmRmZWMpCisgICAgICAgICAgICAgICAgICBmcmVlKGRhdGFbMV0pOworICAgICAg
ICAgICAgICBmY2xvc2UoZmluKTsKKyAgICAgICAgICAgICAgZmNsb3NlKGZvdXQpOworICAgICAg
ICAgICAgICBmcmVlKGluKTsKKyAgICAgICAgICAgICAgZnJlZShvdXQpOworICAgICAgICAgICAg
ICBmcmVlKGZieXRlcyk7CiAgICAgICAgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CiAgICAg
ICAgICAgIH0KICAgICAgICAgICAgbGVuW3RvZ2dsZV0gPSBuZXdfbGVuOwpAQCAtNzUxLDE1ICs3
NjUsMzkgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAgICAgICAgIGlu
dF90b19jaGFyKGxlblt0b2dnbGVdLCBpbnRfZmllbGQpOwogICAgICAgICAgICAgaWYgKGZ3cml0
ZShpbnRfZmllbGQsIDEsIDQsIGZvdXQpICE9IDQpIHsKICAgICAgICAgICAgICAgIGZwcmludGYo
c3RkZXJyLCAiRXJyb3Igd3JpdGluZy5cbiIpOworICAgICAgICAgICAgICAgZnJlZShkYXRhWzBd
KTsKKyAgICAgICAgICAgICAgIGlmICh1c2VfaW5iYW5kZmVjKQorICAgICAgICAgICAgICAgICAg
IGZyZWUoZGF0YVsxXSk7CisgICAgICAgICAgICAgICBmY2xvc2UoZmluKTsKKyAgICAgICAgICAg
ICAgIGZjbG9zZShmb3V0KTsKKyAgICAgICAgICAgICAgIGZyZWUoaW4pOworICAgICAgICAgICAg
ICAgZnJlZShvdXQpOworICAgICAgICAgICAgICAgZnJlZShmYnl0ZXMpOwogICAgICAgICAgICAg
ICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGludF90
b19jaGFyKGVuY19maW5hbF9yYW5nZVt0b2dnbGVdLCBpbnRfZmllbGQpOwogICAgICAgICAgICAg
aWYgKGZ3cml0ZShpbnRfZmllbGQsIDEsIDQsIGZvdXQpICE9IDQpIHsKICAgICAgICAgICAgICAg
IGZwcmludGYoc3RkZXJyLCAiRXJyb3Igd3JpdGluZy5cbiIpOworICAgICAgICAgICAgICAgZnJl
ZShkYXRhWzBdKTsKKyAgICAgICAgICAgICAgIGlmICh1c2VfaW5iYW5kZmVjKQorICAgICAgICAg
ICAgICAgICAgIGZyZWUoZGF0YVsxXSk7CisgICAgICAgICAgICAgICBmY2xvc2UoZmluKTsKKyAg
ICAgICAgICAgICAgIGZjbG9zZShmb3V0KTsKKyAgICAgICAgICAgICAgIGZyZWUoaW4pOworICAg
ICAgICAgICAgICAgZnJlZShvdXQpOworICAgICAgICAgICAgICAgZnJlZShmYnl0ZXMpOwogICAg
ICAgICAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIGlmIChmd3JpdGUoZGF0YVt0b2dnbGVdLCAxLCBsZW5bdG9nZ2xlXSwgZm91dCkgIT0gKHVu
c2lnbmVkKWxlblt0b2dnbGVdKSB7CiAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVy
cm9yIHdyaXRpbmcuXG4iKTsKKyAgICAgICAgICAgICAgIGZyZWUoZGF0YVswXSk7CisgICAgICAg
ICAgICAgICBpZiAodXNlX2luYmFuZGZlYykKKyAgICAgICAgICAgICAgICAgICBmcmVlKGRhdGFb
MV0pOworICAgICAgICAgICAgICAgZmNsb3NlKGZpbik7CisgICAgICAgICAgICAgICBmY2xvc2Uo
Zm91dCk7CisgICAgICAgICAgICAgICBmcmVlKGluKTsKKyAgICAgICAgICAgICAgIGZyZWUob3V0
KTsKKyAgICAgICAgICAgICAgIGZyZWUoZmJ5dGVzKTsKICAgICAgICAgICAgICAgIHJldHVybiBF
WElUX0ZBSUxVUkU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICB0b3Rfc2FtcGxlcyArPSBu
Yl9lbmNvZGVkOwpAQCAtODAzLDYgKzg0MSwxNCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAq
YXJndltdKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg
IGlmIChmd3JpdGUoZmJ5dGVzLCBzaXplb2Yoc2hvcnQpKmNoYW5uZWxzLCBvdXRwdXRfc2FtcGxl
cy1za2lwLCBmb3V0KSAhPSAodW5zaWduZWQpKG91dHB1dF9zYW1wbGVzLXNraXApKXsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFcnJvciB3cml0aW5nLlxuIik7
CisgICAgICAgICAgICAgICAgICAgICAgICAgIGZyZWUoZGF0YVswXSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmICh1c2VfaW5iYW5kZmVjKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZnJlZShkYXRhWzFdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZmNsb3NlKGZp
bik7CisgICAgICAgICAgICAgICAgICAgICAgICAgIGZjbG9zZShmb3V0KTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgZnJlZShpbik7CisgICAgICAgICAgICAgICAgICAgICAgICAgIGZyZWUo
b3V0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZnJlZShmYnl0ZXMpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwogICAgICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHRvdF9vdXQgKz0gb3V0cHV0X3NhbXBsZXMt
c2tpcDsKQEAgLTgyOSw4ICs4NzUsMTQgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3Zb
XSkKICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyljb3VudCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAodW5zaWduZWQgbG9uZyllbmNfZmluYWxfcmFuZ2VbdG9nZ2xlXnVzZV9pbmJh
bmRmZWNdLAogICAgICAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBsb25nKWRlY19maW5h
bF9yYW5nZSk7CisgICAgICAgICAgICBmcmVlKGRhdGFbMF0pOworICAgICAgICAgICAgaWYgKHVz
ZV9pbmJhbmRmZWMpCisgICAgICAgICAgICAgICAgZnJlZShkYXRhWzFdKTsKICAgICAgICAgICAg
IGZjbG9zZShmaW4pOwogICAgICAgICAgICAgZmNsb3NlKGZvdXQpOworICAgICAgICAgICAgZnJl
ZShpbik7CisgICAgICAgICAgICBmcmVlKG91dCk7CisgICAgICAgICAgICBmcmVlKGZieXRlcyk7
CiAgICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwogICAgICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0
cC91c3JzY3RwbGliL3VzZXJfbWJ1Zi5jIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNlcl9tYnVmLmMKaW5kZXggN2Ex
YWFiYTg1NWVlNmUwZDM0MDE1ZDhhYWI4ZmZkODYyNjMxMTg0OC4uM2ViZDhhMjdiNmI3N2QwYWI1
OGE2M2M5ZTc3ZDJiY2RmMTUzMTcyYiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNlcl9tYnVmLmMK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3Jz
Y3RwL3VzcnNjdHBsaWIvdXNlcl9tYnVmLmMKQEAgLTIzMiw3ICsyMzIsOCBAQCBzdGF0aWMgaW50
IGNsdXN0X2NvbnN0cnVjdG9yX2R1cChjYWRkcl90IG1fY2x1c3QsIHN0cnVjdCBtYnVmKiBtKQog
CQltLT5tX2V4dC5leHRfc2l6ZSA9IHNpemU7CiAJCW0tPm1fZXh0LmV4dF90eXBlID0gdHlwZTsK
IAkJbS0+bV9leHQucmVmX2NudCA9IHJlZmNudDsKLQl9CisJfSBlbHNlCisJCVNDVFBfWk9ORV9G
UkVFKHpvbmVfZXh0X3JlZmNudCwgcmVmY250KTsKIAogCXJldHVybiAoMCk7CiB9CkBAIC01Mjcs
NyArNTI4LDggQEAgbWJfY3Rvcl9jbHVzdCh2b2lkICptZW0sIHZvaWQgKmFyZywgaW50IGZsZ3Mp
CiAJCW0tPm1fZXh0LmV4dF9zaXplID0gc2l6ZTsKIAkJbS0+bV9leHQuZXh0X3R5cGUgPSB0eXBl
OwogCQltLT5tX2V4dC5yZWZfY250ID0gcmVmY250OwotCX0KKwl9IGVsc2UKKwkJU0NUUF9aT05F
X0ZSRUUoem9uZV9leHRfcmVmY250LCByZWZjbnQpOwogI2VuZGlmCiAJcmV0dXJuICgwKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvdXNyc2N0cC91c3JzY3RwbGliL3VzZXJfc29ja2V0LmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c2VyX3NvY2tl
dC5jCmluZGV4IGE1NDk5NmVmZGQ4ODZlZDgzNTI4NTM3ZDI1N2NjMDg1ZDExYWE1ZDkuLmI5NGUx
ZTVjMjRhZjMzMGVjNjc4NzYxZTkyMGE1NWU3ZmIxOTY4MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGli
L3VzZXJfc29ja2V0LmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNlcl9zb2NrZXQuYwpAQCAtMjEzMSwxMSAr
MjEzMSwxNCBAQCBkb25lMToKIAogaW50IHVzcnNjdHBfY29ubmVjdChzdHJ1Y3Qgc29ja2V0ICpz
bywgc3RydWN0IHNvY2thZGRyICpuYW1lLCBpbnQgbmFtZWxlbikKIHsKLQlzdHJ1Y3Qgc29ja2Fk
ZHIgKnNhOworCXN0cnVjdCBzb2NrYWRkciAqc2EgPSBOVUxMOwogCiAJZXJybm8gPSBnZXRzb2Nr
YWRkcigmc2EsIChjYWRkcl90KW5hbWUsIG5hbWVsZW4pOwotCWlmIChlcnJubykKKwlpZiAoZXJy
bm8pIHsKKwkJaWYgKHNhKQorCQkJRlJFRShzYSwgTV9TT05BTUUpOwogCQlyZXR1cm4gKC0xKTsK
Kwl9CiAKIAllcnJubyA9IHVzZXJfY29ubmVjdChzbywgc2EpOwogCUZSRUUoc2EsIE1fU09OQU1F
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9XZWJLaXQvcGF0Y2gt
b3B1cy5kaWZmIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1dlYktpdC9wYXRjaC1vcHVz
LmRpZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMGZkNTY0OGUzOTVkODQwZmRjMTYyZjVjNzBhNzExY2NmODQxNzZh
MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9XZWJLaXQv
cGF0Y2gtb3B1cy5kaWZmCkBAIC0wLDAgKzEsMTI0IEBACitkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9zcmMvb3B1c19j
b21wYXJlLmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L29wdXMvc3JjL3NyYy9vcHVzX2NvbXBhcmUuYworaW5kZXggMDZjNjdkNzUyZjcuLjY2ODI4ZmQ4
Y2FlIDEwMDY0NAorLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9vcHVzL3NyYy9zcmMvb3B1c19jb21wYXJlLmMKKysrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvc3JjL29wdXNfY29tcGFy
ZS5jCitAQCAtMjM4LDExICsyMzgsMTUgQEAgaW50IG1haW4oaW50IF9hcmdjLGNvbnN0IGNoYXIg
KipfYXJndil7CisgICBpZih4bGVuZ3RoIT15bGVuZ3RoKmRvd25zYW1wbGUpeworICAgICBmcHJp
bnRmKHN0ZGVyciwiU2FtcGxlIGNvdW50cyBkbyBub3QgbWF0Y2ggKCVsdSE9JWx1KS5cbiIsCisg
ICAgICAodW5zaWduZWQgbG9uZyl4bGVuZ3RoLCh1bnNpZ25lZCBsb25nKXlsZW5ndGgqZG93bnNh
bXBsZSk7CisrICAgIGZyZWUoeCk7CisrICAgIGZyZWUoeSk7CisgICAgIHJldHVybiBFWElUX0ZB
SUxVUkU7CisgICB9CisgICBpZih4bGVuZ3RoPFRFU1RfV0lOX1NJWkUpeworICAgICBmcHJpbnRm
KHN0ZGVyciwiSW5zdWZmaWNpZW50IHNhbXBsZSBkYXRhICglbHU8JWkpLlxuIiwKKyAgICAgICh1
bnNpZ25lZCBsb25nKXhsZW5ndGgsVEVTVF9XSU5fU0laRSk7CisrICAgIGZyZWUoeCk7CisrICAg
IGZyZWUoeSk7CisgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CisgICB9CisgICBuZnJhbWVzPSh4
bGVuZ3RoLVRFU1RfV0lOX1NJWkUrVEVTVF9XSU5fU1RFUCkvVEVTVF9XSU5fU1RFUDsKK2RpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29w
dXMvc3JjL3NyYy9vcHVzX2RlbW8uYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvc3JjL29wdXNfZGVtby5jCitpbmRleCA3YzkzMDY5OWQ2
MS4uNjk4OGE4Y2IxNWQgMTAwNjQ0CistLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL3NyYy9vcHVzX2RlbW8uYworKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9zcmMvb3B1
c19kZW1vLmMKK0BAIC03MjEsOCArNzIxLDE0IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICph
cmd2W10pCisgICAgICAgICAgICAgaWYgKGxlblt0b2dnbGVdIDwgMCkKKyAgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgIGZwcmludGYgKHN0ZGVyciwgIm9wdXNfZW5jb2RlKCkgcmV0dXJu
ZWQgJWRcbiIsIGxlblt0b2dnbGVdKTsKKysgICAgICAgICAgICAgICAgZnJlZShkYXRhWzBdKTsK
KysgICAgICAgICAgICAgICAgaWYgKHVzZV9pbmJhbmRmZWMpCisrICAgICAgICAgICAgICAgICAg
ICBmcmVlKGRhdGFbMV0pOworICAgICAgICAgICAgICAgICBmY2xvc2UoZmluKTsKKyAgICAgICAg
ICAgICAgICAgZmNsb3NlKGZvdXQpOworKyAgICAgICAgICAgICAgICBmcmVlKGluKTsKKysgICAg
ICAgICAgICAgICAgZnJlZShvdXQpOworKyAgICAgICAgICAgICAgICBmcmVlKGZieXRlcyk7Cisg
ICAgICAgICAgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CisgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgIGN1cnJfbW9kZV9jb3VudCArPSBmcmFtZV9zaXplOworQEAgLTc0MCw2ICs3NDYs
MTQgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKKyAgICAgICAgICAgIGlmICgo
ZXJyID0gb3B1c19wYWNrZXRfcGFkKGRhdGFbdG9nZ2xlXSwgbGVuW3RvZ2dsZV0sIG5ld19sZW4p
KSAhPSBPUFVTX09LKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgZnByaW50ZihzdGRl
cnIsICJwYWRkaW5nIGZhaWxlZDogJXNcbiIsIG9wdXNfc3RyZXJyb3IoZXJyKSk7CisrICAgICAg
ICAgICAgICBmcmVlKGRhdGFbMF0pOworKyAgICAgICAgICAgICAgaWYgKHVzZV9pbmJhbmRmZWMp
CisrICAgICAgICAgICAgICAgICAgZnJlZShkYXRhWzFdKTsKKysgICAgICAgICAgICAgIGZjbG9z
ZShmaW4pOworKyAgICAgICAgICAgICAgZmNsb3NlKGZvdXQpOworKyAgICAgICAgICAgICAgZnJl
ZShpbik7CisrICAgICAgICAgICAgICBmcmVlKG91dCk7CisrICAgICAgICAgICAgICBmcmVlKGZi
eXRlcyk7CisgICAgICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgbGVuW3RvZ2dsZV0gPSBuZXdfbGVuOworQEAgLTc1MSwxNSArNzY1LDM5
IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCisgICAgICAgICAgICAgaW50X3Rv
X2NoYXIobGVuW3RvZ2dsZV0sIGludF9maWVsZCk7CisgICAgICAgICAgICAgaWYgKGZ3cml0ZShp
bnRfZmllbGQsIDEsIDQsIGZvdXQpICE9IDQpIHsKKyAgICAgICAgICAgICAgICBmcHJpbnRmKHN0
ZGVyciwgIkVycm9yIHdyaXRpbmcuXG4iKTsKKysgICAgICAgICAgICAgICBmcmVlKGRhdGFbMF0p
OworKyAgICAgICAgICAgICAgIGlmICh1c2VfaW5iYW5kZmVjKQorKyAgICAgICAgICAgICAgICAg
ICBmcmVlKGRhdGFbMV0pOworKyAgICAgICAgICAgICAgIGZjbG9zZShmaW4pOworKyAgICAgICAg
ICAgICAgIGZjbG9zZShmb3V0KTsKKysgICAgICAgICAgICAgICBmcmVlKGluKTsKKysgICAgICAg
ICAgICAgICBmcmVlKG91dCk7CisrICAgICAgICAgICAgICAgZnJlZShmYnl0ZXMpOworICAgICAg
ICAgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CisgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgIGludF90b19jaGFyKGVuY19maW5hbF9yYW5nZVt0b2dnbGVdLCBpbnRfZmllbGQpOworICAg
ICAgICAgICAgIGlmIChmd3JpdGUoaW50X2ZpZWxkLCAxLCA0LCBmb3V0KSAhPSA0KSB7CisgICAg
ICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFcnJvciB3cml0aW5nLlxuIik7CisrICAgICAg
ICAgICAgICAgZnJlZShkYXRhWzBdKTsKKysgICAgICAgICAgICAgICBpZiAodXNlX2luYmFuZGZl
YykKKysgICAgICAgICAgICAgICAgICAgZnJlZShkYXRhWzFdKTsKKysgICAgICAgICAgICAgICBm
Y2xvc2UoZmluKTsKKysgICAgICAgICAgICAgICBmY2xvc2UoZm91dCk7CisrICAgICAgICAgICAg
ICAgZnJlZShpbik7CisrICAgICAgICAgICAgICAgZnJlZShvdXQpOworKyAgICAgICAgICAgICAg
IGZyZWUoZmJ5dGVzKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOworICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICBpZiAoZndyaXRlKGRhdGFbdG9nZ2xlXSwgMSwgbGVu
W3RvZ2dsZV0sIGZvdXQpICE9ICh1bnNpZ25lZClsZW5bdG9nZ2xlXSkgeworICAgICAgICAgICAg
ICAgIGZwcmludGYoc3RkZXJyLCAiRXJyb3Igd3JpdGluZy5cbiIpOworKyAgICAgICAgICAgICAg
IGZyZWUoZGF0YVswXSk7CisrICAgICAgICAgICAgICAgaWYgKHVzZV9pbmJhbmRmZWMpCisrICAg
ICAgICAgICAgICAgICAgIGZyZWUoZGF0YVsxXSk7CisrICAgICAgICAgICAgICAgZmNsb3NlKGZp
bik7CisrICAgICAgICAgICAgICAgZmNsb3NlKGZvdXQpOworKyAgICAgICAgICAgICAgIGZyZWUo
aW4pOworKyAgICAgICAgICAgICAgIGZyZWUob3V0KTsKKysgICAgICAgICAgICAgICBmcmVlKGZi
eXRlcyk7CisgICAgICAgICAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKKyAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgdG90X3NhbXBsZXMgKz0gbmJfZW5jb2RlZDsKK0BAIC04MDMsNiAr
ODQxLDE0IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCisgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZndyaXRlKGZieXRlcywg
c2l6ZW9mKHNob3J0KSpjaGFubmVscywgb3V0cHV0X3NhbXBsZXMtc2tpcCwgZm91dCkgIT0gKHVu
c2lnbmVkKShvdXRwdXRfc2FtcGxlcy1za2lwKSl7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICBmcHJpbnRmKHN0ZGVyciwgIkVycm9yIHdyaXRpbmcuXG4iKTsKKysgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZyZWUoZGF0YVswXSk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
dXNlX2luYmFuZGZlYykKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmVlKGRhdGFb
MV0pOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgZmNsb3NlKGZpbik7CisrICAgICAgICAg
ICAgICAgICAgICAgICAgICBmY2xvc2UoZm91dCk7CisrICAgICAgICAgICAgICAgICAgICAgICAg
ICBmcmVlKGluKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgIGZyZWUob3V0KTsKKysgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZyZWUoZmJ5dGVzKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgICAgICB0b3Rfb3V0ICs9IG91dHB1dF9zYW1wbGVzLXNraXA7CitA
QCAtODI5LDggKzg3NSwxNCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAobG9uZyljb3VudCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHVuc2lnbmVkIGxvbmcpZW5jX2ZpbmFsX3JhbmdlW3RvZ2dsZV51c2VfaW5iYW5kZmVj
XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHVuc2lnbmVkIGxvbmcpZGVjX2ZpbmFsX3Jh
bmdlKTsKKysgICAgICAgICAgICBmcmVlKGRhdGFbMF0pOworKyAgICAgICAgICAgIGlmICh1c2Vf
aW5iYW5kZmVjKQorKyAgICAgICAgICAgICAgICBmcmVlKGRhdGFbMV0pOworICAgICAgICAgICAg
IGZjbG9zZShmaW4pOworICAgICAgICAgICAgIGZjbG9zZShmb3V0KTsKKysgICAgICAgICAgICBm
cmVlKGluKTsKKysgICAgICAgICAgICBmcmVlKG91dCk7CisrICAgICAgICAgICAgZnJlZShmYnl0
ZXMpOworICAgICAgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CisgICAgICAgICB9CisgCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvV2ViS2l0L3BhdGNoLXVzcnNj
dHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvV2ViS2l0L3BhdGNoLXVzcnNjdHAKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2OWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFk
OGMyZTQ4YzUzOTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9XZWJLaXQvcGF0Y2gtdXNyc2N0
cC5kaWZmIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1dlYktpdC9wYXRjaC11c3JzY3Rw
LmRpZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYTE4YThmNWM2NDU3ODRkNmY1ZDkzNjgyYTVmOWYxOGMyMzJjZDE1
NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9XZWJLaXQv
cGF0Y2gtdXNyc2N0cC5kaWZmCkBAIC0wLDAgKzEsNDUgQEAKK2RpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxp
Yi91c2VyX21idWYuYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzZXJfbWJ1Zi5jCitpbmRleCA3YTFhYWJhODU1ZS4u
M2ViZDhhMjdiNmIgMTAwNjQ0CistLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c2VyX21idWYuYworKysrIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNj
dHBsaWIvdXNlcl9tYnVmLmMKK0BAIC0yMzIsNyArMjMyLDggQEAgc3RhdGljIGludCBjbHVzdF9j
b25zdHJ1Y3Rvcl9kdXAoY2FkZHJfdCBtX2NsdXN0LCBzdHJ1Y3QgbWJ1ZiogbSkKKyAJCW0tPm1f
ZXh0LmV4dF9zaXplID0gc2l6ZTsKKyAJCW0tPm1fZXh0LmV4dF90eXBlID0gdHlwZTsKKyAJCW0t
Pm1fZXh0LnJlZl9jbnQgPSByZWZjbnQ7CistCX0KKysJfSBlbHNlCisrCQlTQ1RQX1pPTkVfRlJF
RSh6b25lX2V4dF9yZWZjbnQsIHJlZmNudCk7CisgCisgCXJldHVybiAoMCk7CisgfQorQEAgLTUy
Nyw3ICs1MjgsOCBAQCBtYl9jdG9yX2NsdXN0KHZvaWQgKm1lbSwgdm9pZCAqYXJnLCBpbnQgZmxn
cykKKyAJCW0tPm1fZXh0LmV4dF9zaXplID0gc2l6ZTsKKyAJCW0tPm1fZXh0LmV4dF90eXBlID0g
dHlwZTsKKyAJCW0tPm1fZXh0LnJlZl9jbnQgPSByZWZjbnQ7CistCX0KKysJfSBlbHNlCisrCQlT
Q1RQX1pPTkVfRlJFRSh6b25lX2V4dF9yZWZjbnQsIHJlZmNudCk7CisgI2VuZGlmCisgCXJldHVy
biAoMCk7CisgfQorZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzZXJfc29ja2V0LmMgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxp
Yi91c2VyX3NvY2tldC5jCitpbmRleCBhNTQ5OTZlZmRkOC4uYjk0ZTFlNWMyNGEgMTAwNjQ0Cist
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNj
dHAvdXNyc2N0cGxpYi91c2VyX3NvY2tldC5jCisrKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c2VyX3NvY2tldC5j
CitAQCAtMjEzMSwxMSArMjEzMSwxNCBAQCBkb25lMToKKyAKKyBpbnQgdXNyc2N0cF9jb25uZWN0
KHN0cnVjdCBzb2NrZXQgKnNvLCBzdHJ1Y3Qgc29ja2FkZHIgKm5hbWUsIGludCBuYW1lbGVuKQor
IHsKKy0Jc3RydWN0IHNvY2thZGRyICpzYTsKKysJc3RydWN0IHNvY2thZGRyICpzYSA9IE5VTEw7
CisgCisgCWVycm5vID0gZ2V0c29ja2FkZHIoJnNhLCAoY2FkZHJfdCluYW1lLCBuYW1lbGVuKTsK
Ky0JaWYgKGVycm5vKQorKwlpZiAoZXJybm8pIHsKKysJCWlmIChzYSkKKysJCQlGUkVFKHNhLCBN
X1NPTkFNRSk7CisgCQlyZXR1cm4gKC0xKTsKKysJfQorIAorIAllcnJubyA9IHVzZXJfY29ubmVj
dChzbywgc2EpOworIAlGUkVFKHNhLCBNX1NPTkFNRSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvbGlid2VicnRjLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvbGlid2VicnRjLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggYThlYjNiYTE1YjM1ZTZmMWQyM2RlNDE3Yjc2MDQyNDg2YzgyMTJlMi4uZjIx
N2VjMzY3Y2Y0NTUzZjJmNWE4NDc3Njk1MDU2MjczM2M2NmU2MCAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL2xpYndlYnJ0Yy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9saWJ3ZWJydGMueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMTI2MCwxNiArMTI2MCwxMyBAQAogCQk1QzRCNEFCNzFFNDJDNTc0
MDAyNjUxQzggLyogbWxwX2RhdGEuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDVDNEI0QTk1MUU0MkM1MkQwMDI2NTFDOCAvKiBtbHBfZGF0YS5jICovOyB9
OwogCQk1QzRCNEFCODFFNDJDNTc0MDAyNjUxQzggLyogbWxwLmMgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzRCNEE5NjFFNDJDNTJEMDAyNjUxQzggLyog
bWxwLmMgKi87IH07CiAJCTVDNEI0QUI5MUU0MkM1NzQwMDI2NTFDOCAvKiBtbHAuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNEI0QTk3MUU0MkM1MkQw
MDI2NTFDOCAvKiBtbHAuaCAqLzsgfTsKLQkJNUM0QjRBQkExRTQyQzU3NDAwMjY1MUM4IC8qIG9w
dXNfY29tcGFyZS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNUM0QjRBOTgxRTQyQzUyRDAwMjY1MUM4IC8qIG9wdXNfY29tcGFyZS5jICovOyB9OwogCQk1
QzRCNEFCQjFFNDJDNTc0MDAyNjUxQzggLyogb3B1c19kZWNvZGVyLmMgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzRCNEE5OTFFNDJDNTJEMDAyNjUxQzgg
Lyogb3B1c19kZWNvZGVyLmMgKi87IH07Ci0JCTVDNEI0QUJDMUU0MkM1NzQwMDI2NTFDOCAvKiBv
cHVzX2RlbW8uYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDVDNEI0QTlBMUU0MkM1MkQwMDI2NTFDOCAvKiBvcHVzX2RlbW8uYyAqLzsgfTsKIAkJNUM0QjRB
QkQxRTQyQzU3NDAwMjY1MUM4IC8qIG9wdXNfZW5jb2Rlci5jIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM0QjRBOUIxRTQyQzUyRDAwMjY1MUM4IC8qIG9w
dXNfZW5jb2Rlci5jICovOyB9OwogCQk1QzRCNEFCRTFFNDJDNTc0MDAyNjUxQzggLyogb3B1c19t
dWx0aXN0cmVhbV9kZWNvZGVyLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1QzRCNEE5QzFFNDJDNTJEMDAyNjUxQzggLyogb3B1c19tdWx0aXN0cmVhbV9k
ZWNvZGVyLmMgKi87IH07CiAJCTVDNEI0QUJGMUU0MkM1NzQwMDI2NTFDOCAvKiBvcHVzX211bHRp
c3RyZWFtX2VuY29kZXIuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDVDNEI0QTlEMUU0MkM1MkQwMDI2NTFDOCAvKiBvcHVzX211bHRpc3RyZWFtX2VuY29k
ZXIuYyAqLzsgfTsKIAkJNUM0QjRBQzAxRTQyQzU3NDAwMjY1MUM4IC8qIG9wdXNfbXVsdGlzdHJl
YW0uYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNEI0
QTlFMUU0MkM1MkQwMDI2NTFDOCAvKiBvcHVzX211bHRpc3RyZWFtLmMgKi87IH07CiAJCTVDNEI0
QUMxMUU0MkM1NzQwMDI2NTFDOCAvKiBvcHVzX3ByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNEI0QTlGMUU0MkM1MkQwMDI2NTFDOCAvKiBv
cHVzX3ByaXZhdGUuaCAqLzsgfTsKIAkJNUM0QjRBQzIxRTQyQzU3NDAwMjY1MUM4IC8qIG9wdXMu
YyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNEI0QUEw
MUU0MkM1MkQwMDI2NTFDOCAvKiBvcHVzLmMgKi87IH07Ci0JCTVDNEI0QUMzMUU0MkM1NzQwMDI2
NTFDOCAvKiByZXBhY2tldGl6ZXJfZGVtby5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNUM0QjRBQTExRTQyQzUyRDAwMjY1MUM4IC8qIHJlcGFja2V0aXpl
cl9kZW1vLmMgKi87IH07CiAJCTVDNEI0QUM0MUU0MkM1NzQwMDI2NTFDOCAvKiByZXBhY2tldGl6
ZXIuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNEI0
QUEyMUU0MkM1MkQwMDI2NTFDOCAvKiByZXBhY2tldGl6ZXIuYyAqLzsgfTsKIAkJNUM0QjRBQzUx
RTQyQzU3NDAwMjY1MUM4IC8qIHRhbnNpZ190YWJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM0QjRBQTMxRTQyQzUyRDAwMjY1MUM4IC8qIHRhbnNp
Z190YWJsZS5oICovOyB9OwogCQk1QzRCNEMxOTFFNDMxRjc1MDAyNjUxQzggLyogYml0cmF0ZV9h
ZGp1c3Rlci5jYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDVDNEI0QzEwMUU0MzFGNzUwMDI2NTFDOCAvKiBiaXRyYXRlX2FkanVzdGVyLmNjICovOyB9OwpA
QCAtMTI0NDksOSArMTI0NDYsNyBAQAogCQkJCTVDNUY0MDk3MUU5NzhGREIwMEQ5NDI3OSAvKiBO
U1FfZGVsX2RlY19zc2UuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDNUY0MDk4MUU5NzhGREIwMEQ5
NDI3OSAvKiBOU1Ffc3NlLmMgaW4gU291cmNlcyAqLywKIAkJCQk1QzRCNEFDMjFFNDJDNTc0MDAy
NjUxQzggLyogb3B1cy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJNUM0QjRBQkExRTQyQzU3NDAwMjY1
MUM4IC8qIG9wdXNfY29tcGFyZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0QjRBQkIxRTQyQzU3
NDAwMjY1MUM4IC8qIG9wdXNfZGVjb2Rlci5jIGluIFNvdXJjZXMgKi8sCi0JCQkJNUM0QjRBQkMx
RTQyQzU3NDAwMjY1MUM4IC8qIG9wdXNfZGVtby5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0QjRB
QkQxRTQyQzU3NDAwMjY1MUM4IC8qIG9wdXNfZW5jb2Rlci5jIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NUM0QjRBQzAxRTQyQzU3NDAwMjY1MUM4IC8qIG9wdXNfbXVsdGlzdHJlYW0uYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTVDNEI0QUJFMUU0MkM1NzQwMDI2NTFDOCAvKiBvcHVzX211bHRpc3RyZWFtX2Rl
Y29kZXIuYyBpbiBTb3VyY2VzICovLApAQCAtMTI0NzIsNyArMTI0NjcsNiBAQAogCQkJCTVDREQ4
RjRDMUU0M0NCMUUwMDYyMUU5MiAvKiByZWd1bGFyaXplX2NvcnJlbGF0aW9uc19GSVguYyBpbiBT
b3VyY2VzICovLAogCQkJCTVDREQ4RUY3MUU0M0M5RjYwMDYyMUU5MiAvKiByZWd1bGFyaXplX2Nv
cnJlbGF0aW9uc19GTFAuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDNEI0QUM0MUU0MkM1NzQwMDI2
NTFDOCAvKiByZXBhY2tldGl6ZXIuYyBpbiBTb3VyY2VzICovLAotCQkJCTVDNEI0QUMzMUU0MkM1
NzQwMDI2NTFDOCAvKiByZXBhY2tldGl6ZXJfZGVtby5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNE
RDhFODExRTQzQzgwQzAwNjIxRTkyIC8qIHJlc2FtcGxlci5jIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NUNERDhFNzgxRTQzQzgwQzAwNjIxRTkyIC8qIHJlc2FtcGxlcl9kb3duMi5jIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNUNERDhFNzcxRTQzQzgwQzAwNjIxRTkyIC8qIHJlc2FtcGxlcl9kb3duMl8zLmMg
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0
aG4vY29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9jb2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0KaW5kZXggNDJhYzRmYTA0YjlhMDc5
NDQwODM3NGNhNzM1ZjhhNjdhMDc0ZGFkMC4uMTI1OWEzMGRjYzc2OWZlMTcwYzA3MDUxOWQ2N2M0
ZDAyZDA2MWRhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9j
b2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0KKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9jb2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0KQEAgLTI5NiwyNyArMjk2LDI2IEBA
IHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjptYWtlQ3JlZGVudGlhbChjb25zdCBWZWN0b3I8dWlu
dDhfdD4mIGhhc2gsIGNvbnN0IFB1YmxpCiAgICAgICAgICAgICAgICAgYXR0ZXN0ZWRDcmVkZW50
aWFsRGF0YS5hcHBlbmRWZWN0b3IoY3JlZGVudGlhbElkKTsKIAogICAgICAgICAgICAgICAgIC8v
IGNyZWRlbnRpYWxQdWJsaWNLZXkKLSAgICAgICAgICAgICAgICBDRkRhdGFSZWYgcHVibGljS2V5
RGF0YVJlZiA9IG51bGxwdHI7CisgICAgICAgICAgICAgICAgUmV0YWluUHRyPENGRGF0YVJlZj4g
cHVibGljS2V5RGF0YVJlZjsKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
IGF1dG8gcHVibGljS2V5ID0gYWRvcHRDRihTZWNLZXlDb3B5UHVibGljS2V5KHByaXZhdGVLZXkp
KTsKICAgICAgICAgICAgICAgICAgICAgQ0ZFcnJvclJlZiBlcnJvclJlZiA9IG51bGxwdHI7Ci0g
ICAgICAgICAgICAgICAgICAgIHB1YmxpY0tleURhdGFSZWYgPSBTZWNLZXlDb3B5RXh0ZXJuYWxS
ZXByZXNlbnRhdGlvbihwdWJsaWNLZXkuZ2V0KCksICZlcnJvclJlZik7CisgICAgICAgICAgICAg
ICAgICAgIHB1YmxpY0tleURhdGFSZWYgPSBhZG9wdENGKFNlY0tleUNvcHlFeHRlcm5hbFJlcHJl
c2VudGF0aW9uKHB1YmxpY0tleS5nZXQoKSwgJmVycm9yUmVmKSk7CiAgICAgICAgICAgICAgICAg
ICAgIGF1dG8gcmV0YWluRXJyb3IgPSBhZG9wdENGKGVycm9yUmVmKTsKICAgICAgICAgICAgICAg
ICAgICAgaWYgKGVycm9yUmVmKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBMT0dfRVJST1Io
IkNvdWxkbid0IGV4cG9ydCB0aGUgcHVibGljIGtleTogJUAiLCAoTlNFcnJvciopZXJyb3JSZWYp
OwogICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9uQ2FsbGJhY2soeyBVbmtub3duRXJy
b3IsIEFTQ0lJTGl0ZXJhbCgiVW5rbm93biBpbnRlcm5hbCBlcnJvci4iKSB9KTsKICAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgICAgICBBU1NFUlQoKChOU0RhdGEgKilwdWJsaWNLZXlEYXRhUmVmKS5sZW5ndGggPT0g
KDEgKyAyKkVTMjU2S2V5U2l6ZUluQnl0ZXMpKTsgLy8gMDQgfCBYIHwgWQorICAgICAgICAgICAg
ICAgICAgICBBU1NFUlQoKChOU0RhdGEgKilwdWJsaWNLZXlEYXRhUmVmLmdldCgpKS5sZW5ndGgg
PT0gKDEgKyAyKkVTMjU2S2V5U2l6ZUluQnl0ZXMpKTsgLy8gMDQgfCBYIHwgWQogICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICBhdXRvIHJldGFpblB1YmxpY0tleURhdGEgPSBhZG9w
dENGKHB1YmxpY0tleURhdGFSZWYpOwogCiAgICAgICAgICAgICAgICAgLy8gQ09TRSBFbmNvZGlu
ZwogICAgICAgICAgICAgICAgIC8vIEZJWE1FKDE4MzUzNSk6IEltcHJvdmUgQ0JPUiBlbmNvZGVy
IHRvIHdvcmsgd2l0aCBieXRlcyBkaXJlY3RseS4KICAgICAgICAgICAgICAgICBWZWN0b3I8dWlu
dDhfdD4geChFUzI1NktleVNpemVJbkJ5dGVzKTsKLSAgICAgICAgICAgICAgICBbKE5TRGF0YSAq
KXB1YmxpY0tleURhdGFSZWYgZ2V0Qnl0ZXM6IHguZGF0YSgpIHJhbmdlOk5TTWFrZVJhbmdlKDEs
IEVTMjU2S2V5U2l6ZUluQnl0ZXMpXTsKKyAgICAgICAgICAgICAgICBbKE5TRGF0YSAqKXB1Ymxp
Y0tleURhdGFSZWYuZ2V0KCkgZ2V0Qnl0ZXM6IHguZGF0YSgpIHJhbmdlOk5TTWFrZVJhbmdlKDEs
IEVTMjU2S2V5U2l6ZUluQnl0ZXMpXTsKICAgICAgICAgICAgICAgICBWZWN0b3I8dWludDhfdD4g
eShFUzI1NktleVNpemVJbkJ5dGVzKTsKLSAgICAgICAgICAgICAgICBbKE5TRGF0YSAqKXB1Ymxp
Y0tleURhdGFSZWYgZ2V0Qnl0ZXM6IHkuZGF0YSgpIHJhbmdlOk5TTWFrZVJhbmdlKDEgKyBFUzI1
NktleVNpemVJbkJ5dGVzLCBFUzI1NktleVNpemVJbkJ5dGVzKV07CisgICAgICAgICAgICAgICAg
WyhOU0RhdGEgKilwdWJsaWNLZXlEYXRhUmVmLmdldCgpIGdldEJ5dGVzOiB5LmRhdGEoKSByYW5n
ZTpOU01ha2VSYW5nZSgxICsgRVMyNTZLZXlTaXplSW5CeXRlcywgRVMyNTZLZXlTaXplSW5CeXRl
cyldOwogICAgICAgICAgICAgICAgIGNib3I6OkNCT1JWYWx1ZTo6TWFwVmFsdWUgcHVibGljS2V5
TWFwOwogICAgICAgICAgICAgICAgIHB1YmxpY0tleU1hcFtjYm9yOjpDQk9SVmFsdWUoQ09TRTo6
a3R5KV0gPSBjYm9yOjpDQk9SVmFsdWUoQ09TRTo6RUMyKTsKICAgICAgICAgICAgICAgICBwdWJs
aWNLZXlNYXBbY2Jvcjo6Q0JPUlZhbHVlKENPU0U6OmFsZyldID0gY2Jvcjo6Q0JPUlZhbHVlKENP
U0U6OkVTMjU2KTsKQEAgLTM0NCwxNSArMzQzLDE0IEBAIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9y
OjptYWtlQ3JlZGVudGlhbChjb25zdCBWZWN0b3I8dWludDhfdD4mIGhhc2gsIGNvbnN0IFB1Ymxp
CiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBDRkVycm9yUmVmIGVycm9y
UmVmID0gbnVsbHB0cjsKICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUUoMTgzNjUyKTogUmVk
dWNlIHByb21wdCBmb3IgYmlvbWV0cmljcwotICAgICAgICAgICAgICAgICAgICBDRkRhdGFSZWYg
c2lnbmF0dXJlUmVmID0gU2VjS2V5Q3JlYXRlU2lnbmF0dXJlKHByaXZhdGVLZXksIGtTZWNLZXlB
bGdvcml0aG1FQ0RTQVNpZ25hdHVyZU1lc3NhZ2VYOTYyU0hBMjU2LCAoX19icmlkZ2UgQ0ZEYXRh
UmVmKVtOU0RhdGEgZGF0YVdpdGhCeXRlczphdXRoRGF0YS5kYXRhKCkgbGVuZ3RoOmF1dGhEYXRh
LnNpemUoKV0sICZlcnJvclJlZik7CisgICAgICAgICAgICAgICAgICAgIGF1dG8gc2lnbmF0dXJl
UmVmID0gYWRvcHRDRihTZWNLZXlDcmVhdGVTaWduYXR1cmUocHJpdmF0ZUtleSwga1NlY0tleUFs
Z29yaXRobUVDRFNBU2lnbmF0dXJlTWVzc2FnZVg5NjJTSEEyNTYsIChfX2JyaWRnZSBDRkRhdGFS
ZWYpW05TRGF0YSBkYXRhV2l0aEJ5dGVzOmF1dGhEYXRhLmRhdGEoKSBsZW5ndGg6YXV0aERhdGEu
c2l6ZSgpXSwgJmVycm9yUmVmKSk7CiAgICAgICAgICAgICAgICAgICAgIGF1dG8gcmV0YWluRXJy
b3IgPSBhZG9wdENGKGVycm9yUmVmKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yUmVm
KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBMT0dfRVJST1IoIkNvdWxkbid0IGdlbmVyYXRl
IHRoZSBzaWduYXR1cmU6ICVAIiwgKE5TRXJyb3IqKWVycm9yUmVmKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgIGV4Y2VwdGlvbkNhbGxiYWNrKHsgVW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwo
IlVua25vd24gaW50ZXJuYWwgZXJyb3IuIikgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgYXV0byBy
ZXRhaW5TaWduYXR1cmUgPSBhZG9wdENGKHNpZ25hdHVyZVJlZik7Ci0gICAgICAgICAgICAgICAg
ICAgIE5TRGF0YSAqbnNTaWduYXR1cmUgPSAoTlNEYXRhICopc2lnbmF0dXJlUmVmOworICAgICAg
ICAgICAgICAgICAgICBOU0RhdGEgKm5zU2lnbmF0dXJlID0gKE5TRGF0YSAqKXNpZ25hdHVyZVJl
Zi5nZXQoKTsKICAgICAgICAgICAgICAgICAgICAgc2lnbmF0dXJlLmFwcGVuZChyZWludGVycHJl
dF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihuc1NpZ25hdHVyZS5ieXRlcyksIG5zU2lnbmF0dXJlLmxl
bmd0aCk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGF0dGVzdGF0aW9uU3Rh
dGVtZW50TWFwW2Nib3I6OkNCT1JWYWx1ZSgiYWxnIildID0gY2Jvcjo6Q0JPUlZhbHVlKENPU0U6
OkVTMjU2KTsKQEAgLTUwMiwxNSArNTAwLDE0IEBAIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjpn
ZXRBc3NlcnRpb24oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBjb25zdCBQdWJsaWNLCiAK
ICAgICAgICAgICAgIENGRXJyb3JSZWYgZXJyb3JSZWYgPSBudWxscHRyOwogICAgICAgICAgICAg
Ly8gRklYTUU6IENvbnZlcnRpbmcgQ0ZUeXBlUmVmIHRvIFNlY0tleVJlZiBpcyBxdWl0ZSBzdWJ0
bGUgaGVyZS4KLSAgICAgICAgICAgIENGRGF0YVJlZiBzaWduYXR1cmVSZWYgPSBTZWNLZXlDcmVh
dGVTaWduYXR1cmUoKF9fYnJpZGdlIFNlY0tleVJlZikoKGlkKXByaXZhdGVLZXlSZWYpLCBrU2Vj
S2V5QWxnb3JpdGhtRUNEU0FTaWduYXR1cmVNZXNzYWdlWDk2MlNIQTI1NiwgKF9fYnJpZGdlIENG
RGF0YVJlZilkYXRhVG9TaWduLCAmZXJyb3JSZWYpOworICAgICAgICAgICAgYXV0byBzaWduYXR1
cmVSZWYgPSBhZG9wdENGKFNlY0tleUNyZWF0ZVNpZ25hdHVyZSgoX19icmlkZ2UgU2VjS2V5UmVm
KSgoaWQpcHJpdmF0ZUtleVJlZiksIGtTZWNLZXlBbGdvcml0aG1FQ0RTQVNpZ25hdHVyZU1lc3Nh
Z2VYOTYyU0hBMjU2LCAoX19icmlkZ2UgQ0ZEYXRhUmVmKWRhdGFUb1NpZ24sICZlcnJvclJlZikp
OwogICAgICAgICAgICAgYXV0byByZXRhaW5FcnJvciA9IGFkb3B0Q0YoZXJyb3JSZWYpOwogICAg
ICAgICAgICAgaWYgKGVycm9yUmVmKSB7CiAgICAgICAgICAgICAgICAgTE9HX0VSUk9SKCJDb3Vs
ZG4ndCBnZW5lcmF0ZSB0aGUgc2lnbmF0dXJlOiAlQCIsIChOU0Vycm9yKillcnJvclJlZik7CiAg
ICAgICAgICAgICAgICAgZXhjZXB0aW9uQ2FsbGJhY2soeyBVbmtub3duRXJyb3IsIEFTQ0lJTGl0
ZXJhbCgiVW5rbm93biBpbnRlcm5hbCBlcnJvci4iKSB9KTsKICAgICAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBhdXRvIHJldGFpblNpZ25hdHVyZSA9IGFk
b3B0Q0Yoc2lnbmF0dXJlUmVmKTsKLSAgICAgICAgICAgIE5TRGF0YSAqbnNTaWduYXR1cmUgPSAo
TlNEYXRhICopc2lnbmF0dXJlUmVmOworICAgICAgICAgICAgTlNEYXRhICpuc1NpZ25hdHVyZSA9
IChOU0RhdGEgKilzaWduYXR1cmVSZWYuZ2V0KCk7CiAgICAgICAgICAgICBzaWduYXR1cmUuYXBw
ZW5kKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KG5zU2lnbmF0dXJlLmJ5dGVzKSwg
bnNTaWduYXR1cmUubGVuZ3RoKTsKICAgICAgICAgfQogCkBAIC01NTQsMTAgKzU1MSwxMCBAQCB2
b2lkIExvY2FsQXV0aGVudGljYXRvcjo6aXNzdWVDbGllbnRDZXJ0aWZpY2F0ZShjb25zdCBTdHJp
bmcmIHJwSWQsIGNvbnN0IFN0cmluZwogICAgIC8vIEFwcGxlIEF0dGVzdGF0aW9uCiAgICAgQVNT
RVJUKGhhc2guc2l6ZSgpIDw9IDMyKTsKIAotICAgIFNlY0FjY2Vzc0NvbnRyb2xSZWYgYWNjZXNz
Q29udHJvbFJlZjsKKyAgICBSZXRhaW5QdHI8U2VjQWNjZXNzQ29udHJvbFJlZj4gYWNjZXNzQ29u
dHJvbFJlZjsKICAgICB7CiAgICAgICAgIENGRXJyb3JSZWYgZXJyb3JSZWYgPSBudWxscHRyOwot
ICAgICAgICBhY2Nlc3NDb250cm9sUmVmID0gU2VjQWNjZXNzQ29udHJvbENyZWF0ZVdpdGhGbGFn
cyhOVUxMLCBrU2VjQXR0ckFjY2Vzc2libGVXaGVuUGFzc2NvZGVTZXRUaGlzRGV2aWNlT25seSwg
a1NlY0FjY2Vzc0NvbnRyb2xQcml2YXRlS2V5VXNhZ2UgfCBrU2VjQWNjZXNzQ29udHJvbFVzZXJQ
cmVzZW5jZSwgJmVycm9yUmVmKTsKKyAgICAgICAgYWNjZXNzQ29udHJvbFJlZiA9IGFkb3B0Q0Yo
U2VjQWNjZXNzQ29udHJvbENyZWF0ZVdpdGhGbGFncyhOVUxMLCBrU2VjQXR0ckFjY2Vzc2libGVX
aGVuUGFzc2NvZGVTZXRUaGlzRGV2aWNlT25seSwga1NlY0FjY2Vzc0NvbnRyb2xQcml2YXRlS2V5
VXNhZ2UgfCBrU2VjQWNjZXNzQ29udHJvbFVzZXJQcmVzZW5jZSwgJmVycm9yUmVmKSk7CiAgICAg
ICAgIGF1dG8gcmV0YWluRXJyb3IgPSBhZG9wdENGKGVycm9yUmVmKTsKICAgICAgICAgaWYgKGVy
cm9yUmVmKSB7CiAgICAgICAgICAgICBMT0dfRVJST1IoIkNvdWxkbid0IGNyZWF0ZSBBQ0w6ICVA
IiwgKE5TRXJyb3IgKillcnJvclJlZik7CkBAIC01NjUsNyArNTYyLDYgQEAgdm9pZCBMb2NhbEF1
dGhlbnRpY2F0b3I6Omlzc3VlQ2xpZW50Q2VydGlmaWNhdGUoY29uc3QgU3RyaW5nJiBycElkLCBj
b25zdCBTdHJpbmcKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KLSAgICBh
dXRvIHJldGFpbkFjY2Vzc0NvbnRyb2wgPSBhZG9wdENGKGFjY2Vzc0NvbnRyb2xSZWYpOwogCiAg
ICAgU3RyaW5nIGxhYmVsKHVzZXJuYW1lKTsKICAgICBsYWJlbC5hcHBlbmQoIkAiICsgcnBJZCk7
CkBAIC01NzgsNyArNTc0LDcgQEAgdm9pZCBMb2NhbEF1dGhlbnRpY2F0b3I6Omlzc3VlQ2xpZW50
Q2VydGlmaWNhdGUoY29uc3QgU3RyaW5nJiBycElkLCBjb25zdCBTdHJpbmcKICAgICAgICAga01B
T3B0aW9uc0JBQVZhbGlkaXR5OiBAKDE0NDApLCAvLyBMYXN0IG9uZSBkYXkuCiAgICAgICAgIGtN
QU9wdGlvbnNCQUFTQ1JUQXR0ZXN0YXRpb246IEAoTk8pLAogICAgICAgICBrTUFPcHRpb25zQkFB
Tm9uY2U6IFtOU0RhdGEgZGF0YVdpdGhCeXRlczpoYXNoLmRhdGEoKSBsZW5ndGg6aGFzaC5zaXpl
KCldLAotICAgICAgICBrTUFPcHRpb25zQkFBQWNjZXNzQ29udHJvbHM6IChpZClhY2Nlc3NDb250
cm9sUmVmLAorICAgICAgICBrTUFPcHRpb25zQkFBQWNjZXNzQ29udHJvbHM6IChpZClhY2Nlc3ND
b250cm9sUmVmLmdldCgpLAogICAgICAgICBrTUFPcHRpb25zQkFBT0lEU1RvSW5jbHVkZTogQFtr
TUFPcHRpb25zQkFBT0lETm9uY2VdCiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYnJpZGdlL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tIGIvU291cmNlL1dlYkNvcmUvYnJpZGdl
L29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tCmluZGV4IDE4YjE3MzVjYTBhYjk0OTMwNWMxOTFlMzRk
ZjA5ZTg0NGNjN2EzYzkuLjAwYWZmZWY0ZTJlMjAxZWRhZGI5ZjFiM2FmNDVmN2YyNjQ0MTAwYWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL1dlYlNjcmlwdE9iamVjdC5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0KQEAg
LTY1NiwxMCArNjU2LDEwIEBAICsgKGlkKWFsbG9jV2l0aFpvbmU6KE5TWm9uZSAqKXVudXNlZFpv
bmUKIHsKICAgICBVTlVTRURfUEFSQU0odW51c2VkWm9uZSk7CiAKLSAgICBzdGF0aWMgV2ViVW5k
ZWZpbmVkICpzaGFyZWRVbmRlZmluZWQgPSAwOwotICAgIGlmICghc2hhcmVkVW5kZWZpbmVkKQot
ICAgICAgICBzaGFyZWRVbmRlZmluZWQgPSBbc3VwZXIgYWxsb2NXaXRoWm9uZTpOVUxMXTsKLSAg
ICByZXR1cm4gc2hhcmVkVW5kZWZpbmVkOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZXRh
aW5QdHI8V2ViVW5kZWZpbmVkPj4gc2hhcmVkVW5kZWZpbmVkOworICAgIGlmICghc2hhcmVkVW5k
ZWZpbmVkLmdldCgpKQorICAgICAgICBzaGFyZWRVbmRlZmluZWQuZ2V0KCkgPSBhZG9wdE5TKFtz
dXBlciBhbGxvY1dpdGhab25lOk5VTExdKTsKKyAgICByZXR1cm4gW3NoYXJlZFVuZGVmaW5lZC5n
ZXQoKSByZXRhaW5dOwogfQogCiAtIChOU1N0cmluZyAqKWRlc2NyaXB0aW9uCkBAIC03MTUsNyAr
NzE1LDcgQEAgLSAodm9pZClkZWFsbG9jCiAKICsgKFdlYlVuZGVmaW5lZCAqKXVuZGVmaW5lZAog
ewotICAgIHJldHVybiBbV2ViVW5kZWZpbmVkIGFsbG9jV2l0aFpvbmU6TlVMTF07CisgICAgcmV0
dXJuIFtbV2ViVW5kZWZpbmVkIGFsbG9jV2l0aFpvbmU6TlVMTF0gYXV0b3JlbGVhc2VdOwogfQog
CiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCA1YjIyMjUxMzg5MjBlZGMzMzI2N2Vl
ODMzNDM0MjBiZDY2ODhhMDFlLi44NGExOWJmMWUzNjk0ZmQwOGVkMmJlNTNkNzYyYzE1YTQ0Njli
NTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTI4MDIsOCArMjgwMiwxMCBAQCBzdGF0
aWMgTlNTdHJpbmcgKmV4ZXJuYWxEZXZpY2VEaXNwbGF5TmFtZUZvclBsYXllcihBVlBsYXllclR5
cGUgKnBsYXllcikKICAgICAgICAgICAgIHJldHVybiBbb3V0cHV0Q29udGV4dCBkZXZpY2VOYW1l
XTsKIAogICAgICAgICBhdXRvIG91dHB1dERldmljZU5hbWVzID0gYWRvcHROUyhbW05TTXV0YWJs
ZUFycmF5IGFsbG9jXSBpbml0XSk7Ci0gICAgICAgIGZvciAoQVZPdXRwdXREZXZpY2UgKm91dHB1
dERldmljZSBpbiBbb3V0cHV0Q29udGV4dCBvdXRwdXREZXZpY2VzXSkKLSAgICAgICAgICAgIFtv
dXRwdXREZXZpY2VOYW1lcyBhZGRPYmplY3Q6W1tvdXRwdXREZXZpY2UgbmFtZV0gY29weV1dOwor
ICAgICAgICBmb3IgKEFWT3V0cHV0RGV2aWNlICpvdXRwdXREZXZpY2UgaW4gW291dHB1dENvbnRl
eHQgb3V0cHV0RGV2aWNlc10pIHsKKyAgICAgICAgICAgIGF1dG8gb3V0cHV0RGV2aWNlTmFtZSA9
IGFkb3B0TlMoW1tvdXRwdXREZXZpY2UgbmFtZV0gY29weV0pOworICAgICAgICAgICAgW291dHB1
dERldmljZU5hbWVzIGFkZE9iamVjdDpvdXRwdXREZXZpY2VOYW1lLmdldCgpXTsKKyAgICAgICAg
fQogCiAgICAgICAgIHJldHVybiBbb3V0cHV0RGV2aWNlTmFtZXMgY29tcG9uZW50c0pvaW5lZEJ5
U3RyaW5nOkAiICsgIl07CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL3dhay9XQUtXaW5kb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsv
V0FLV2luZG93LmgKaW5kZXggODczOTlhMTcwZGM2MTc5OTIwNmMxZjkzM2Y2ZWE2MTlkYTQyY2Vi
ZS4uNGM4ZjYxZDllM2JlOGZkOGI5N2I1ZDAyMmU3YjYwNTJkNTczMzA2MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XQUtXaW5kb3cuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dBS1dpbmRvdy5oCkBAIC0xMTYsNyArMTE2LDcgQEAg
V0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBXQUtXaW5kb3cgOiBXQUtSZXNwb25kZXIKIC0gKHZv
aWQpc2V0VmlzaWJsZTooQk9PTCl2aXNpYmxlOwogLSAoTlNTZWxlY3Rpb25EaXJlY3Rpb24pa2V5
Vmlld1NlbGVjdGlvbkRpcmVjdGlvbjsKIC0gKEJPT0wpbWFrZUZpcnN0UmVzcG9uZGVyOihOU1Jl
c3BvbmRlciAqKWFSZXNwb25kZXI7Ci0tIChXQUtWaWV3ICopX25ld0ZpcnN0UmVzcG9uZGVyQWZ0
ZXJSZXNpZ25pbmc7CistIChXQUtWaWV3ICopX25ld0ZpcnN0UmVzcG9uZGVyQWZ0ZXJSZXNpZ25p
bmcgTlNfUkVUVVJOU19OT1RfUkVUQUlORUQ7CiAtICh2b2lkKXNldEZyYW1lOihOU1JlY3QpZnJh
bWVSZWN0IGRpc3BsYXk6KEJPT0wpZmxhZzsKIC0gKENHUmVjdClmcmFtZTsKIC0gKHZvaWQpc2V0
Q29udGVudFJlY3Q6KENHUmVjdClyZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQXV0b21hdGlvbi9pb3MvV2ViQXV0b21hdGlvblNlc3Npb25JT1MubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL2lvcy9XZWJBdXRvbWF0aW9uU2Vzc2lvbklPUy5t
bQppbmRleCBhMDgzYzI5OWUzOWY0NTc5MmQ4ZDA4OGVmN2I2NDFhNjUwNTg4ZjJmLi5jMTFjMDM0
NmVkMDNlODJlN2M3MzI0M2ZhNmYyN2EzZmMxZDZmNjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL2lvcy9XZWJBdXRvbWF0aW9uU2Vzc2lvbklPUy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL2lvcy9XZWJBdXRvbWF0aW9u
U2Vzc2lvbklPUy5tbQpAQCAtMTYzLDggKzE2MywxMCBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNz
aW9uOjpwbGF0Zm9ybVNpbXVsYXRlS2V5U2VxdWVuY2UoV2ViUGFnZVByb3h5JiBwYWdlLCBjb25z
dAogICAgIEJPT0wgaXNUYWJLZXkgPSBbdGV4dCBpc0VxdWFsVG9TdHJpbmc6QCJcdCJdOwogCiAg
ICAgW3RleHQgZW51bWVyYXRlU3Vic3RyaW5nc0luUmFuZ2U6TlNNYWtlUmFuZ2UoMCwgdGV4dC5s
ZW5ndGgpIG9wdGlvbnM6TlNTdHJpbmdFbnVtZXJhdGlvbkJ5Q29tcG9zZWRDaGFyYWN0ZXJTZXF1
ZW5jZXMgdXNpbmdCbG9jazpeKE5TU3RyaW5nICpzdWJzdHJpbmcsIE5TUmFuZ2Ugc3Vic3RyaW5n
UmFuZ2UsIE5TUmFuZ2UgZW5jbG9zaW5nUmFuZ2UsIEJPT0wgKnN0b3ApIHsKLSAgICAgICAgW2V2
ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbWzo6V2ViRXZlbnQgYWxsb2NdIGluaXRXaXRoS2V5RXZl
bnRUeXBlOldlYkV2ZW50S2V5RG93biB0aW1lU3RhbXA6Q0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50
KCkgY2hhcmFjdGVyczpzdWJzdHJpbmcgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOnN1YnN0
cmluZyBtb2RpZmllcnM6bV9jdXJyZW50TW9kaWZpZXJzIGlzUmVwZWF0aW5nOk5PIHdpdGhGbGFn
czowIHdpdGhJbnB1dE1hbmFnZXJIaW50Om5pbCBrZXlDb2RlOjAgaXNUYWJLZXk6aXNUYWJLZXld
XTsKLSAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbWzo6V2ViRXZlbnQgYWxsb2Nd
IGluaXRXaXRoS2V5RXZlbnRUeXBlOldlYkV2ZW50S2V5VXAgdGltZVN0YW1wOkNGQWJzb2x1dGVU
aW1lR2V0Q3VycmVudCgpIGNoYXJhY3RlcnM6c3Vic3RyaW5nIGNoYXJhY3RlcnNJZ25vcmluZ01v
ZGlmaWVyczpzdWJzdHJpbmcgbW9kaWZpZXJzOm1fY3VycmVudE1vZGlmaWVycyBpc1JlcGVhdGlu
ZzpOTyB3aXRoRmxhZ3M6MCB3aXRoSW5wdXRNYW5hZ2VySGludDpuaWwga2V5Q29kZTowIGlzVGFi
S2V5OmlzVGFiS2V5XV07CisgICAgICAgIGF1dG8ga2V5RG93bkV2ZW50ID0gYWRvcHROUyhbWzo6
V2ViRXZlbnQgYWxsb2NdIGluaXRXaXRoS2V5RXZlbnRUeXBlOldlYkV2ZW50S2V5RG93biB0aW1l
U3RhbXA6Q0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkgY2hhcmFjdGVyczpzdWJzdHJpbmcgY2hh
cmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOnN1YnN0cmluZyBtb2RpZmllcnM6bV9jdXJyZW50TW9k
aWZpZXJzIGlzUmVwZWF0aW5nOk5PIHdpdGhGbGFnczowIHdpdGhJbnB1dE1hbmFnZXJIaW50Om5p
bCBrZXlDb2RlOjAgaXNUYWJLZXk6aXNUYWJLZXldKTsKKyAgICAgICAgW2V2ZW50c1RvQmVTZW50
IGFkZE9iamVjdDprZXlEb3duRXZlbnQuZ2V0KCldOworICAgICAgICBhdXRvIGtleVVwRXZlbnQg
PSBhZG9wdE5TKFtbOjpXZWJFdmVudCBhbGxvY10gaW5pdFdpdGhLZXlFdmVudFR5cGU6V2ViRXZl
bnRLZXlVcCB0aW1lU3RhbXA6Q0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkgY2hhcmFjdGVyczpz
dWJzdHJpbmcgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOnN1YnN0cmluZyBtb2RpZmllcnM6
bV9jdXJyZW50TW9kaWZpZXJzIGlzUmVwZWF0aW5nOk5PIHdpdGhGbGFnczowIHdpdGhJbnB1dE1h
bmFnZXJIaW50Om5pbCBrZXlDb2RlOjAgaXNUYWJLZXk6aXNUYWJLZXldKTsKKyAgICAgICAgW2V2
ZW50c1RvQmVTZW50IGFkZE9iamVjdDprZXlVcEV2ZW50LmdldCgpXTsKICAgICB9XTsKIAogICAg
IHNlbmRTeW50aGVzaXplZEV2ZW50c1RvUGFnZShwYWdlLCBldmVudHNUb0JlU2VudC5nZXQoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9TeXN0ZW1QcmV2aWV3
Q29udHJvbGxlckNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvU3lzdGVt
UHJldmlld0NvbnRyb2xsZXJDb2NvYS5tbQppbmRleCA3Mjc4OTFhOTlhOGEwYzcxMTRmMDM2MzUw
Mjg0MWI4YjY1NWM4YzU5Li40MjlmYjBjM2RhNDNiOTk5NzljNzExZTY5ZTg1NDAyNDNjMmM4ZTM1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9TeXN0ZW1QcmV2aWV3
Q29udHJvbGxlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1N5
c3RlbVByZXZpZXdDb250cm9sbGVyQ29jb2EubW0KQEAgLTE4Myw3ICsxODMsNyBAQCAtIChVSUlt
YWdlICopcHJldmlld0NvbnRyb2xsZXI6KFFMUHJldmlld0NvbnRyb2xsZXIgKiljb250cm9sbGVy
IHRyYW5zaXRpb25JbWFnZQogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIFtVSUltYWdl
IG5ld107CisgICAgcmV0dXJuIFtbVUlJbWFnZSBuZXddIGF1dG9yZWxlYXNlXTsKIH0KIAogQGVu
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmll
dy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5k
ZXggNTk3NTMyMmJhM2M0MjU5Yjc0NzJlNWZkZGJmMWRkY2U1ZDJlZTk1Yy4uOWQyNzBlYzFlMDRi
YjMzYjVjOTI4YmUwMTgwMzEzMmU0MGRlMzFjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC02NzU0LDggKzY3NTQsOCBAQCAtICh2b2lk
KWRvQ29tbWFuZEJ5U2VsZWN0b3I6KFNFTClzZWxlY3RvcgogICAgICAgICAgICAgRWRpdG9yOjpD
b21tYW5kIGNvbW1hbmQgPSBbc2VsZiBjb3JlQ29tbWFuZEJ5U2VsZWN0b3I6c2VsZWN0b3JdOwog
ICAgICAgICAgICAgaWYgKGNvbW1hbmQuaXNTdXBwb3J0ZWQoKSkKICAgICAgICAgICAgICAgICBl
dmVudFdhc0hhbmRsZWQgPSBjb21tYW5kLmV4ZWN1dGUoZXZlbnQpOwotI2lmIFBMQVRGT1JNKE1B
QykKICAgICAgICAgICAgIGVsc2UgeworI2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAgICAgICAg
ICAvLyBJZiBXZWJLaXQgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIGNvbW1hbmQsIHdlIG5lZWQgdG8g
cGFzcyB0aGUgc2VsZWN0b3IgdG8gc3VwZXIuCiAgICAgICAgICAgICAgICAgX3ByaXZhdGUtPnNl
bGVjdG9yRm9yRG9Db21tYW5kQnlTZWxlY3RvciA9IHNlbGVjdG9yOwogCkBAIC02NzY3LDggKzY3
NjcsMTAgQEAgLSAodm9pZClkb0NvbW1hbmRCeVNlbGVjdG9yOihTRUwpc2VsZWN0b3IKICAgICAg
ICAgICAgICAgICBbc2luayBkZXRhY2hdOwogCiAgICAgICAgICAgICAgICAgX3ByaXZhdGUtPnNl
bGVjdG9yRm9yRG9Db21tYW5kQnlTZWxlY3RvciA9IDA7Ci0gICAgICAgICAgICB9CisjZWxzZQor
ICAgICAgICAgICAgICAgIGV2ZW50V2FzSGFuZGxlZCA9IGZhbHNlOwogI2VuZGlmCisgICAgICAg
ICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBpZiAocGFyYW1ldGVycykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341431</attachid>
            <date>2018-05-27 15:18:44 -0700</date>
            <delta_ts>2018-05-27 15:19:03 -0700</delta_ts>
            <desc>Patch v3</desc>
            <filename>bug-186009-20180527151843.patch</filename>
            <type>text/plain</type>
            <size>37428</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyMjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCAzOWI4ODhhYjdkYjg4MDNkNGVkNDdjY2RlOTBlYTFlYzZlMjdmYjQ4Li5kMThh
ODY1MGFkZTc5YzA1M2RmMTMyNDllNTc1ZTRjMDZkMGRkNzFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxOC0wNS0yNyAgRGF2aWQgS2ls
emVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEZpeCB3YXJuaW5ncyBh
Ym91dCBsZWFrcyBmb3VuZCBieSBjbGFuZyBzdGF0aWMgYW5hbHl6ZXIKKyAgICAgICAgPGh0dHBz
Oi8vd2Via2l0Lm9yZy9iLzE4NjAwOT4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQwNTc0MjY3
PgorCisgICAgICAgIFJldmlld2VkIGJ5IERhbmllbCBCYXRlcy4KKworICAgICAgICAqIFNvdXJj
ZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9zcmMvb3B1c19jb21wYXJlLmM6CisgICAgICAgICogU291
cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL3NyYy9vcHVzX2RlbW8uYzoKKyAgICAgICAgKG1haW4p
OgorICAgICAgICAtIEZyZWUgYWxsb2NhdGVkIG1lbW9yeSBvbiBlYXJseSByZXR1cm5zLgorICAg
ICAgICAqIFNvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNlcl9tYnVmLmM6
CisgICAgICAgIChjbHVzdF9jb25zdHJ1Y3Rvcl9kdXApOgorICAgICAgICAobWJfY3Rvcl9jbHVz
dCk6CisgICAgICAgIC0gRnJlZSBhbGxvY2F0ZWQgbWVtb3J5IGlmIGBtYCBpcyBOVUxMLgorICAg
ICAgICAqIFNvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNlcl9zb2NrZXQu
YzoKKyAgICAgICAgKHVzcnNjdHBfY29ubmVjdCk6IEZyZWUgYHNhYCBtZW1vcnkgaWYgZ2V0c29j
a2FkZHIoKSByZXR1cm5zIGFuCisgICAgICAgIGVycm9yLCBidXQgc3RpbGwgYWxsb2NhdGVzIG1l
bW9yeSBmb3IgYHNhYC4KKyAgICAgICAgKiBXZWJLaXQvcGF0Y2gtb3B1cy5kaWZmOiBBZGQgcGF0
Y2ggZm9yIG9wdXMgY2hhbmdlcy4KKyAgICAgICAgKiBXZWJLaXQvcGF0Y2gtdXNyc2N0cDogUmVu
YW1lIGVtcHR5IGZpbGUgdG8gcGF0Y2gtdXNyc2N0cC5kaWZmLgorICAgICAgICAqIFdlYktpdC9w
YXRjaC11c3JzY3RwLmRpZmY6IEFkZCBwYXRjaCBmb3IgdXNyc2N0cCBjaGFuZ2VzLgorICAgICAg
ICAqIGxpYndlYnJ0Yy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBSZW1vdmUgb3B1c19jb21w
YXJlLmMsCisgICAgICAgIG9wdXNfZGVtby5jLCBhbmQgcmVwYWNrZXRpemVyX2RlbW8uYyBmcm9t
IG9wdXMgdGFyZ2V0LiAgVGhpcworICAgICAgICBjb2RlIGlzIGZvciBzdGFuZC1hbG9uZSB0b29s
cywgYW5kIGFsdGhvdWdoIGl0IG1heSBiZSByZW1vdmVkCisgICAgICAgIGR1cmluZyBkZWFkIGNv
ZGUgbGlua2luZywgd2UgZG9uJ3QgbmVlZCB0byBzcGVuZCB0aW1lIGNvbXBpbGluZworICAgICAg
ICBpdC4KKwogMjAxOC0wNS0wNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgQWN0aXZhdGUgQVJDIGZvciBsaWJ3ZWJydGMgT2JqZWN0aXZlIEMgZmlsZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCAwYjVlYjdhZjdhNjdjYzYyOTFmYTRhMmY0Y2EyYjU3NjFlNjRkYTRjLi5hYzAw
NTU0Y2I2ZGQyN2Y0NzUwMGMwODUwZWExODQyNzJjNjhlM2IxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzQgQEAKKzIwMTgtMDUtMjcgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4K
KworICAgICAgICBbaU9TXSBGaXggd2FybmluZ3MgYWJvdXQgbGVha3MgZm91bmQgYnkgY2xhbmcg
c3RhdGljIGFuYWx5emVyCisgICAgICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8xODYwMDk+Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS80MDU3NDI2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBE
YW5pZWwgQmF0ZXMuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2NvY29hL0xvY2FsQXV0
aGVudGljYXRvci5tbToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsQXV0aGVudGljYXRvcjo6bWFr
ZUNyZWRlbnRpYWwpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxBdXRoZW50aWNhdG9yOjpnZXRB
c3NlcnRpb24pOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxBdXRoZW50aWNhdG9yOjppc3N1ZUNs
aWVudENlcnRpZmljYXRlIGNvbnN0KToKKyAgICAgICAgLSBEb24ndCBsZWFrIENGIG9iamVjdHMg
aW4gZWFybHkgcmV0dXJuIHBhdGhzLCBhbmQgZ2V0IHJpZCBvZgorICAgICAgICAgIGByZXRhaW5l
ZCpgIHZhcmlhYmxlcywgYnkgbWFraW5nIG9yaWdpbmFsIHZhcmlhYmxlcyB1c2UKKyAgICAgICAg
ICBSZXRhaW5QdHI8Pi4KKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9XZWJTY3JpcHRPYmplY3QubW06
CisgICAgICAgICgrW1dlYlVuZGVmaW5lZCBhbGxvY1dpdGhab25lOl0pOiBNb2Rlcm5pemUgV2Vi
VW5kZWZpbmVkIGJ5CisgICAgICAgIHVzaW5nIE5ldmVyRGVzdHJveWVkPFJldGFpblByPFdlYlVu
ZGVmaW5lZD4+IHR5cGUuICBFeHBsaWNpdGx5CisgICAgICAgIHJldGFpbiB0aGUgb2JqZWN0IHJl
dHVybmVkIG9uIGVhY2ggY2FsbC4KKyAgICAgICAgKCtbV2ViVW5kZWZpbmVkIHVuZGVmaW5lZF0p
OiBFeHBsaWNpdGx5IGF1dG9yZWxhc2UgdGhlIG9iamVjdAorICAgICAgICByZXR1cm5lZC4gIE5v
dGUgdGhhdCBuZWl0aGVyIG9mIHRoZXNlIGNoYW5nZXMgZml4ZXMgdGhlIHN0YXRpYworICAgICAg
ICBhbmFseXplciB3YXJuaW5ncyBpbiB0aGlzIHNvdXJjZSBmaWxlLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpleGVybmFsRGV2aWNlRGlzcGxheU5hbWVG
b3JQbGF5ZXIpOiBVc2UgUmV0YWluUHRyPD4gdG8KKyAgICAgICAgc3RvcCBsZWFraW5nIE5TU3Ry
aW5nIG9iamVjdHMgaW4gYSBsb29wLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy93YWsvV0FLV2lu
ZG93Lmg6CisgICAgICAgICgtW1dBS1dpbmRvdyBfbmV3Rmlyc3RSZXNwb25kZXJBZnRlclJlc2ln
bmluZ10pOiBNYXJrIGFzCisgICAgICAgIE5TX1JFVFVSTlNfTk9UX1JFVEFJTkVEIGxpa2UgdGhl
IGNvcnJlc3BvbmRpbmcgQXBwS2l0IG1ldGhvZAorICAgICAgICBzaW5jZSB0aGlzIGRvZXNuJ3Qg
cmV0dXJuIGEgbmV3IG9iamVjdC4gIFRoaXMgZml4ZXMgc29tZQorICAgICAgICBmYWxzZS1wb3Np
dGl2ZSBsZWFrcyB3YXJuaW5ncy4KKwogMjAxOC0wNS0yNSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxt
bWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIEltcHJvdmUgdGhlIHBlcmZvcm1hbmNlIG9m
IEZvbnQ6OmNhblJlbmRlckNvbWJpbmluZ0NoYXJhY3RlclNlcXVlbmNlKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
ZTAwMDZmY2Q0YWMyYjkxMDA2YjIwMDU0M2YyYjcwZDhhYWM0MzE1Yi4uODMwMzJjZWU0YmJjMGRk
YTY4N2VhZmU2ODgyNTQ0NjhlMjBiZmUwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAx
OC0wNS0yNyAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtp
T1NdIEZpeCB3YXJuaW5ncyBhYm91dCBsZWFrcyBmb3VuZCBieSBjbGFuZyBzdGF0aWMgYW5hbHl6
ZXIKKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE4NjAwOT4KKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzQwNTc0MjY3PgorCisgICAgICAgIFJldmlld2VkIGJ5IERhbmllbCBCYXRlcy4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL2lvcy9XZWJBdXRvbWF0aW9uU2Vzc2lv
bklPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3Jt
U2ltdWxhdGVLZXlTZXF1ZW5jZSk6IEZpeAorICAgICAgICBsZWFrIG9mIHR3byBXZWJFdmVudCBv
YmplY3RzIHRoYXQgaGFwcGVuZWQgaW4gYSBsb29wLgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9TeXN0ZW1QcmV2aWV3Q29udHJvbGxlckNvY29hLm1tOgorICAgICAgICAoLVtfV0tQcmV2aWV3
Q29udHJvbGxlckRlbGVnYXRlIHByZXZpZXdDb250cm9sbGVyOnRyYW5zaXRpb25JbWFnZUZvclBy
ZXZpZXdJdGVtOmNvbnRlbnRSZWN0Ol0pOgorICAgICAgICBGaXggbGVhayBvZiBhIFVJSW1hZ2Uu
CisKIDIwMTgtMDUtMjUgIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgogCiAg
ICAgICAgIFNldHRpbmcgZHJhd3NCYWNrZ3JvdW5kIHRvIFlFUyBvbiBhIFdLVmlldyBkb2Vzbid0
IHRha2UgZWZmZWN0IGltbWVkaWF0ZWx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXgg
ZTAxYjQ1M2RlZDA5YmVmMjViZmI3N2FjNTFkYTUyOGNiZmMzMGVkMy4uZmM3MDhhYTg3MWRlZmY2
ZWE4NWM0NjM4OTA1MWFhOTlmNDYzNDg1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDE4LTA1LTI3ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBs
ZS5jb20+CisKKyAgICAgICAgW2lPU10gRml4IHdhcm5pbmdzIGFib3V0IGxlYWtzIGZvdW5kIGJ5
IGNsYW5nIHN0YXRpYyBhbmFseXplcgorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTg2
MDA5PgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDA1NzQyNjc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgRGFuaWVsIEJhdGVzLgorCisgICAgICAgICogV2ViVmlldy9XZWJIVE1MVmlldy5tbToK
KyAgICAgICAgKC1bV2ViSFRNTFZpZXcgZG9Db21tYW5kQnlTZWxlY3RvcjpdKTogRml4IHVzZSBv
ZiBhbgorICAgICAgICB1bmluaXRpYWxpemVkIGJvb2xlYW4gdmFyaWFibGUgKGBldmVudFdhc0hh
bmRsZWRgKSB0aGF0IG9ubHkKKyAgICAgICAgaGFwcGVuZWQgb24gaU9TLgorCiAyMDE4LTA1LTI1
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTWlub3IgQXBwbGlj
YXRpb25DYWNoZVN0b3JhZ2UgY2xlYW4gdXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvc3JjL29wdXNfY29tcGFyZS5j
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3Ny
Yy9zcmMvb3B1c19jb21wYXJlLmMKaW5kZXggMDZjNjdkNzUyZjcxNTNjMTkxMzQ0OTQ3ZDU5NGIz
NjExNjM2YzlmOC4uNjY4MjhmZDhjYWVmNmM4ZjdjYzkwZjg3ZTM3OWUyY2ZiMDdkMGNlOCAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9v
cHVzL3NyYy9zcmMvb3B1c19jb21wYXJlLmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9zcmMvb3B1c19jb21wYXJlLmMKQEAgLTIz
OCwxMSArMjM4LDE1IEBAIGludCBtYWluKGludCBfYXJnYyxjb25zdCBjaGFyICoqX2FyZ3Ypewog
ICBpZih4bGVuZ3RoIT15bGVuZ3RoKmRvd25zYW1wbGUpewogICAgIGZwcmludGYoc3RkZXJyLCJT
YW1wbGUgY291bnRzIGRvIG5vdCBtYXRjaCAoJWx1IT0lbHUpLlxuIiwKICAgICAgKHVuc2lnbmVk
IGxvbmcpeGxlbmd0aCwodW5zaWduZWQgbG9uZyl5bGVuZ3RoKmRvd25zYW1wbGUpOworICAgIGZy
ZWUoeCk7CisgICAgZnJlZSh5KTsKICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwogICB9CiAgIGlm
KHhsZW5ndGg8VEVTVF9XSU5fU0laRSl7CiAgICAgZnByaW50ZihzdGRlcnIsIkluc3VmZmljaWVu
dCBzYW1wbGUgZGF0YSAoJWx1PCVpKS5cbiIsCiAgICAgICh1bnNpZ25lZCBsb25nKXhsZW5ndGgs
VEVTVF9XSU5fU0laRSk7CisgICAgZnJlZSh4KTsKKyAgICBmcmVlKHkpOwogICAgIHJldHVybiBF
WElUX0ZBSUxVUkU7CiAgIH0KICAgbmZyYW1lcz0oeGxlbmd0aC1URVNUX1dJTl9TSVpFK1RFU1Rf
V0lOX1NURVApL1RFU1RfV0lOX1NURVA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL3NyYy9vcHVzX2RlbW8uYyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvc3Jj
L29wdXNfZGVtby5jCmluZGV4IDdjOTMwNjk5ZDYxNDNkZWEzMWQ3ZGQ2OWI0MzIzYWRlODEyYTBl
MzguLjY5ODhhOGNiMTVkNmU2MDhmNTg2NTI3NzE3OGUxYzA0YzY5NjFkNGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMv
c3JjL29wdXNfZGVtby5jCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvb3B1cy9zcmMvc3JjL29wdXNfZGVtby5jCkBAIC03MjEsOCArNzIxLDE0IEBA
IGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgICAgICAgICBpZiAobGVuW3Rv
Z2dsZV0gPCAwKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGZwcmludGYgKHN0ZGVy
ciwgIm9wdXNfZW5jb2RlKCkgcmV0dXJuZWQgJWRcbiIsIGxlblt0b2dnbGVdKTsKKyAgICAgICAg
ICAgICAgICBmcmVlKGRhdGFbMF0pOworICAgICAgICAgICAgICAgIGlmICh1c2VfaW5iYW5kZmVj
KQorICAgICAgICAgICAgICAgICAgICBmcmVlKGRhdGFbMV0pOwogICAgICAgICAgICAgICAgIGZj
bG9zZShmaW4pOwogICAgICAgICAgICAgICAgIGZjbG9zZShmb3V0KTsKKyAgICAgICAgICAgICAg
ICBmcmVlKGluKTsKKyAgICAgICAgICAgICAgICBmcmVlKG91dCk7CisgICAgICAgICAgICAgICAg
ZnJlZShmYnl0ZXMpOwogICAgICAgICAgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICBjdXJyX21vZGVfY291bnQgKz0gZnJhbWVfc2l6ZTsKQEAg
LTc0MCw2ICs3NDYsMTQgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAg
ICAgICAgaWYgKChlcnIgPSBvcHVzX3BhY2tldF9wYWQoZGF0YVt0b2dnbGVdLCBsZW5bdG9nZ2xl
XSwgbmV3X2xlbikpICE9IE9QVVNfT0spCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgZnBy
aW50ZihzdGRlcnIsICJwYWRkaW5nIGZhaWxlZDogJXNcbiIsIG9wdXNfc3RyZXJyb3IoZXJyKSk7
CisgICAgICAgICAgICAgIGZyZWUoZGF0YVswXSk7CisgICAgICAgICAgICAgIGlmICh1c2VfaW5i
YW5kZmVjKQorICAgICAgICAgICAgICAgICAgZnJlZShkYXRhWzFdKTsKKyAgICAgICAgICAgICAg
ZmNsb3NlKGZpbik7CisgICAgICAgICAgICAgIGZjbG9zZShmb3V0KTsKKyAgICAgICAgICAgICAg
ZnJlZShpbik7CisgICAgICAgICAgICAgIGZyZWUob3V0KTsKKyAgICAgICAgICAgICAgZnJlZShm
Ynl0ZXMpOwogICAgICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwogICAgICAgICAgICB9
CiAgICAgICAgICAgIGxlblt0b2dnbGVdID0gbmV3X2xlbjsKQEAgLTc1MSwxNSArNzY1LDM5IEBA
IGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgICAgICAgICBpbnRfdG9fY2hh
cihsZW5bdG9nZ2xlXSwgaW50X2ZpZWxkKTsKICAgICAgICAgICAgIGlmIChmd3JpdGUoaW50X2Zp
ZWxkLCAxLCA0LCBmb3V0KSAhPSA0KSB7CiAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwg
IkVycm9yIHdyaXRpbmcuXG4iKTsKKyAgICAgICAgICAgICAgIGZyZWUoZGF0YVswXSk7CisgICAg
ICAgICAgICAgICBpZiAodXNlX2luYmFuZGZlYykKKyAgICAgICAgICAgICAgICAgICBmcmVlKGRh
dGFbMV0pOworICAgICAgICAgICAgICAgZmNsb3NlKGZpbik7CisgICAgICAgICAgICAgICBmY2xv
c2UoZm91dCk7CisgICAgICAgICAgICAgICBmcmVlKGluKTsKKyAgICAgICAgICAgICAgIGZyZWUo
b3V0KTsKKyAgICAgICAgICAgICAgIGZyZWUoZmJ5dGVzKTsKICAgICAgICAgICAgICAgIHJldHVy
biBFWElUX0ZBSUxVUkU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpbnRfdG9fY2hhcihl
bmNfZmluYWxfcmFuZ2VbdG9nZ2xlXSwgaW50X2ZpZWxkKTsKICAgICAgICAgICAgIGlmIChmd3Jp
dGUoaW50X2ZpZWxkLCAxLCA0LCBmb3V0KSAhPSA0KSB7CiAgICAgICAgICAgICAgICBmcHJpbnRm
KHN0ZGVyciwgIkVycm9yIHdyaXRpbmcuXG4iKTsKKyAgICAgICAgICAgICAgIGZyZWUoZGF0YVsw
XSk7CisgICAgICAgICAgICAgICBpZiAodXNlX2luYmFuZGZlYykKKyAgICAgICAgICAgICAgICAg
ICBmcmVlKGRhdGFbMV0pOworICAgICAgICAgICAgICAgZmNsb3NlKGZpbik7CisgICAgICAgICAg
ICAgICBmY2xvc2UoZm91dCk7CisgICAgICAgICAgICAgICBmcmVlKGluKTsKKyAgICAgICAgICAg
ICAgIGZyZWUob3V0KTsKKyAgICAgICAgICAgICAgIGZyZWUoZmJ5dGVzKTsKICAgICAgICAgICAg
ICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAo
ZndyaXRlKGRhdGFbdG9nZ2xlXSwgMSwgbGVuW3RvZ2dsZV0sIGZvdXQpICE9ICh1bnNpZ25lZCls
ZW5bdG9nZ2xlXSkgewogICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFcnJvciB3cml0
aW5nLlxuIik7CisgICAgICAgICAgICAgICBmcmVlKGRhdGFbMF0pOworICAgICAgICAgICAgICAg
aWYgKHVzZV9pbmJhbmRmZWMpCisgICAgICAgICAgICAgICAgICAgZnJlZShkYXRhWzFdKTsKKyAg
ICAgICAgICAgICAgIGZjbG9zZShmaW4pOworICAgICAgICAgICAgICAgZmNsb3NlKGZvdXQpOwor
ICAgICAgICAgICAgICAgZnJlZShpbik7CisgICAgICAgICAgICAgICBmcmVlKG91dCk7CisgICAg
ICAgICAgICAgICBmcmVlKGZieXRlcyk7CiAgICAgICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlM
VVJFOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgdG90X3NhbXBsZXMgKz0gbmJfZW5jb2Rl
ZDsKQEAgLTgwMyw2ICs4NDEsMTQgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkK
ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZndy
aXRlKGZieXRlcywgc2l6ZW9mKHNob3J0KSpjaGFubmVscywgb3V0cHV0X3NhbXBsZXMtc2tpcCwg
Zm91dCkgIT0gKHVuc2lnbmVkKShvdXRwdXRfc2FtcGxlcy1za2lwKSl7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRXJyb3Igd3JpdGluZy5cbiIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICBmcmVlKGRhdGFbMF0pOworICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAodXNlX2luYmFuZGZlYykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZy
ZWUoZGF0YVsxXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIGZjbG9zZShmaW4pOworICAg
ICAgICAgICAgICAgICAgICAgICAgICBmY2xvc2UoZm91dCk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZyZWUoaW4pOworICAgICAgICAgICAgICAgICAgICAgICAgICBmcmVlKG91dCk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZyZWUoZmJ5dGVzKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKICAgICAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgICAgICAgICB0b3Rfb3V0ICs9IG91dHB1dF9zYW1wbGVzLXNraXA7CkBA
IC04MjksOCArODc1LDE0IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGxvbmcpY291bnQsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgKHVuc2lnbmVkIGxvbmcpZW5jX2ZpbmFsX3JhbmdlW3RvZ2dsZV51c2VfaW5iYW5kZmVjXSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAodW5zaWduZWQgbG9uZylkZWNfZmluYWxfcmFuZ2Up
OworICAgICAgICAgICAgZnJlZShkYXRhWzBdKTsKKyAgICAgICAgICAgIGlmICh1c2VfaW5iYW5k
ZmVjKQorICAgICAgICAgICAgICAgIGZyZWUoZGF0YVsxXSk7CiAgICAgICAgICAgICBmY2xvc2Uo
ZmluKTsKICAgICAgICAgICAgIGZjbG9zZShmb3V0KTsKKyAgICAgICAgICAgIGZyZWUoaW4pOwor
ICAgICAgICAgICAgZnJlZShvdXQpOworICAgICAgICAgICAgZnJlZShmYnl0ZXMpOwogICAgICAg
ICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0
cGxpYi91c2VyX21idWYuYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzZXJfbWJ1Zi5jCmluZGV4IDdhMWFhYmE4NTVl
ZTZlMGQzNDAxNWQ4YWFiOGZmZDg2MjYzMTE4NDguLjNlYmQ4YTI3YjZiNzdkMGFiNThhNjNjOWU3
N2QyYmNkZjE1MzE3MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzZXJfbWJ1Zi5jCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3Jz
Y3RwbGliL3VzZXJfbWJ1Zi5jCkBAIC0yMzIsNyArMjMyLDggQEAgc3RhdGljIGludCBjbHVzdF9j
b25zdHJ1Y3Rvcl9kdXAoY2FkZHJfdCBtX2NsdXN0LCBzdHJ1Y3QgbWJ1ZiogbSkKIAkJbS0+bV9l
eHQuZXh0X3NpemUgPSBzaXplOwogCQltLT5tX2V4dC5leHRfdHlwZSA9IHR5cGU7CiAJCW0tPm1f
ZXh0LnJlZl9jbnQgPSByZWZjbnQ7Ci0JfQorCX0gZWxzZQorCQlTQ1RQX1pPTkVfRlJFRSh6b25l
X2V4dF9yZWZjbnQsIHJlZmNudCk7CiAKIAlyZXR1cm4gKDApOwogfQpAQCAtNTI3LDcgKzUyOCw4
IEBAIG1iX2N0b3JfY2x1c3Qodm9pZCAqbWVtLCB2b2lkICphcmcsIGludCBmbGdzKQogCQltLT5t
X2V4dC5leHRfc2l6ZSA9IHNpemU7CiAJCW0tPm1fZXh0LmV4dF90eXBlID0gdHlwZTsKIAkJbS0+
bV9leHQucmVmX2NudCA9IHJlZmNudDsKLQl9CisJfSBlbHNlCisJCVNDVFBfWk9ORV9GUkVFKHpv
bmVfZXh0X3JlZmNudCwgcmVmY250KTsKICNlbmRpZgogCXJldHVybiAoMCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNj
dHAvdXNyc2N0cGxpYi91c2VyX3NvY2tldC5jIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNlcl9zb2NrZXQuYwppbmRl
eCBhNTQ5OTZlZmRkODg2ZWQ4MzUyODUzN2QyNTdjYzA4NWQxMWFhNWQ5Li5iOTRlMWU1YzI0YWYz
MzBlYzY3ODc2MWU5MjBhNTVlN2ZiMTk2ODFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c2VyX3Nv
Y2tldC5jCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvdXNyc2N0cC91c3JzY3RwbGliL3VzZXJfc29ja2V0LmMKQEAgLTIxMzEsMTEgKzIxMzEsMTQg
QEAgZG9uZTE6CiAKIGludCB1c3JzY3RwX2Nvbm5lY3Qoc3RydWN0IHNvY2tldCAqc28sIHN0cnVj
dCBzb2NrYWRkciAqbmFtZSwgaW50IG5hbWVsZW4pCiB7Ci0Jc3RydWN0IHNvY2thZGRyICpzYTsK
KwlzdHJ1Y3Qgc29ja2FkZHIgKnNhID0gTlVMTDsKIAogCWVycm5vID0gZ2V0c29ja2FkZHIoJnNh
LCAoY2FkZHJfdCluYW1lLCBuYW1lbGVuKTsKLQlpZiAoZXJybm8pCisJaWYgKGVycm5vKSB7CisJ
CWlmIChzYSkKKwkJCUZSRUUoc2EsIE1fU09OQU1FKTsKIAkJcmV0dXJuICgtMSk7CisJfQogCiAJ
ZXJybm8gPSB1c2VyX2Nvbm5lY3Qoc28sIHNhKTsKIAlGUkVFKHNhLCBNX1NPTkFNRSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvV2ViS2l0L3BhdGNoLW9wdXMuZGlm
ZiBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9XZWJLaXQvcGF0Y2gtb3B1cy5kaWZmCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjBmZDU2NDhlMzk1ZDg0MGZkYzE2MmY1YzcwYTcxMWNjZjg0MTc2YTIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvV2ViS2l0L3BhdGNoLW9w
dXMuZGlmZgpAQCAtMCwwICsxLDEyNCBAQAorZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvc3JjL29wdXNfY29tcGFyZS5j
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3Ny
Yy9zcmMvb3B1c19jb21wYXJlLmMKK2luZGV4IDA2YzY3ZDc1MmY3Li42NjgyOGZkOGNhZSAxMDA2
NDQKKy0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
b3B1cy9zcmMvc3JjL29wdXNfY29tcGFyZS5jCisrKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL3NyYy9vcHVzX2NvbXBhcmUuYworQEAg
LTIzOCwxMSArMjM4LDE1IEBAIGludCBtYWluKGludCBfYXJnYyxjb25zdCBjaGFyICoqX2FyZ3Yp
eworICAgaWYoeGxlbmd0aCE9eWxlbmd0aCpkb3duc2FtcGxlKXsKKyAgICAgZnByaW50ZihzdGRl
cnIsIlNhbXBsZSBjb3VudHMgZG8gbm90IG1hdGNoICglbHUhPSVsdSkuXG4iLAorICAgICAgKHVu
c2lnbmVkIGxvbmcpeGxlbmd0aCwodW5zaWduZWQgbG9uZyl5bGVuZ3RoKmRvd25zYW1wbGUpOwor
KyAgICBmcmVlKHgpOworKyAgICBmcmVlKHkpOworICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwor
ICAgfQorICAgaWYoeGxlbmd0aDxURVNUX1dJTl9TSVpFKXsKKyAgICAgZnByaW50ZihzdGRlcnIs
Ikluc3VmZmljaWVudCBzYW1wbGUgZGF0YSAoJWx1PCVpKS5cbiIsCisgICAgICAodW5zaWduZWQg
bG9uZyl4bGVuZ3RoLFRFU1RfV0lOX1NJWkUpOworKyAgICBmcmVlKHgpOworKyAgICBmcmVlKHkp
OworICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOworICAgfQorICAgbmZyYW1lcz0oeGxlbmd0aC1U
RVNUX1dJTl9TSVpFK1RFU1RfV0lOX1NURVApL1RFU1RfV0lOX1NURVA7CitkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9z
cmMvb3B1c19kZW1vLmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L29wdXMvc3JjL3NyYy9vcHVzX2RlbW8uYworaW5kZXggN2M5MzA2OTlkNjEuLjY5ODhh
OGNiMTVkIDEwMDY0NAorLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9vcHVzL3NyYy9zcmMvb3B1c19kZW1vLmMKKysrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvc3JjL29wdXNfZGVtby5j
CitAQCAtNzIxLDggKzcyMSwxNCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQor
ICAgICAgICAgICAgIGlmIChsZW5bdG9nZ2xlXSA8IDApCisgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICBmcHJpbnRmIChzdGRlcnIsICJvcHVzX2VuY29kZSgpIHJldHVybmVkICVkXG4i
LCBsZW5bdG9nZ2xlXSk7CisrICAgICAgICAgICAgICAgIGZyZWUoZGF0YVswXSk7CisrICAgICAg
ICAgICAgICAgIGlmICh1c2VfaW5iYW5kZmVjKQorKyAgICAgICAgICAgICAgICAgICAgZnJlZShk
YXRhWzFdKTsKKyAgICAgICAgICAgICAgICAgZmNsb3NlKGZpbik7CisgICAgICAgICAgICAgICAg
IGZjbG9zZShmb3V0KTsKKysgICAgICAgICAgICAgICAgZnJlZShpbik7CisrICAgICAgICAgICAg
ICAgIGZyZWUob3V0KTsKKysgICAgICAgICAgICAgICAgZnJlZShmYnl0ZXMpOworICAgICAgICAg
ICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICBjdXJyX21vZGVfY291bnQgKz0gZnJhbWVfc2l6ZTsKK0BAIC03NDAsNiArNzQ2LDE0IEBAIGlu
dCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCisgICAgICAgICAgICBpZiAoKGVyciA9IG9w
dXNfcGFja2V0X3BhZChkYXRhW3RvZ2dsZV0sIGxlblt0b2dnbGVdLCBuZXdfbGVuKSkgIT0gT1BV
U19PSykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAicGFk
ZGluZyBmYWlsZWQ6ICVzXG4iLCBvcHVzX3N0cmVycm9yKGVycikpOworKyAgICAgICAgICAgICAg
ZnJlZShkYXRhWzBdKTsKKysgICAgICAgICAgICAgIGlmICh1c2VfaW5iYW5kZmVjKQorKyAgICAg
ICAgICAgICAgICAgIGZyZWUoZGF0YVsxXSk7CisrICAgICAgICAgICAgICBmY2xvc2UoZmluKTsK
KysgICAgICAgICAgICAgIGZjbG9zZShmb3V0KTsKKysgICAgICAgICAgICAgIGZyZWUoaW4pOwor
KyAgICAgICAgICAgICAgZnJlZShvdXQpOworKyAgICAgICAgICAgICAgZnJlZShmYnl0ZXMpOwor
ICAgICAgICAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGxlblt0b2dnbGVdID0gbmV3X2xlbjsKK0BAIC03NTEsMTUgKzc2NSwzOSBAQCBpbnQg
bWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQorICAgICAgICAgICAgIGludF90b19jaGFyKGxl
blt0b2dnbGVdLCBpbnRfZmllbGQpOworICAgICAgICAgICAgIGlmIChmd3JpdGUoaW50X2ZpZWxk
LCAxLCA0LCBmb3V0KSAhPSA0KSB7CisgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJF
cnJvciB3cml0aW5nLlxuIik7CisrICAgICAgICAgICAgICAgZnJlZShkYXRhWzBdKTsKKysgICAg
ICAgICAgICAgICBpZiAodXNlX2luYmFuZGZlYykKKysgICAgICAgICAgICAgICAgICAgZnJlZShk
YXRhWzFdKTsKKysgICAgICAgICAgICAgICBmY2xvc2UoZmluKTsKKysgICAgICAgICAgICAgICBm
Y2xvc2UoZm91dCk7CisrICAgICAgICAgICAgICAgZnJlZShpbik7CisrICAgICAgICAgICAgICAg
ZnJlZShvdXQpOworKyAgICAgICAgICAgICAgIGZyZWUoZmJ5dGVzKTsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gRVhJVF9GQUlMVVJFOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBpbnRf
dG9fY2hhcihlbmNfZmluYWxfcmFuZ2VbdG9nZ2xlXSwgaW50X2ZpZWxkKTsKKyAgICAgICAgICAg
ICBpZiAoZndyaXRlKGludF9maWVsZCwgMSwgNCwgZm91dCkgIT0gNCkgeworICAgICAgICAgICAg
ICAgIGZwcmludGYoc3RkZXJyLCAiRXJyb3Igd3JpdGluZy5cbiIpOworKyAgICAgICAgICAgICAg
IGZyZWUoZGF0YVswXSk7CisrICAgICAgICAgICAgICAgaWYgKHVzZV9pbmJhbmRmZWMpCisrICAg
ICAgICAgICAgICAgICAgIGZyZWUoZGF0YVsxXSk7CisrICAgICAgICAgICAgICAgZmNsb3NlKGZp
bik7CisrICAgICAgICAgICAgICAgZmNsb3NlKGZvdXQpOworKyAgICAgICAgICAgICAgIGZyZWUo
aW4pOworKyAgICAgICAgICAgICAgIGZyZWUob3V0KTsKKysgICAgICAgICAgICAgICBmcmVlKGZi
eXRlcyk7CisgICAgICAgICAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKKyAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgaWYgKGZ3cml0ZShkYXRhW3RvZ2dsZV0sIDEsIGxlblt0b2dnbGVd
LCBmb3V0KSAhPSAodW5zaWduZWQpbGVuW3RvZ2dsZV0pIHsKKyAgICAgICAgICAgICAgICBmcHJp
bnRmKHN0ZGVyciwgIkVycm9yIHdyaXRpbmcuXG4iKTsKKysgICAgICAgICAgICAgICBmcmVlKGRh
dGFbMF0pOworKyAgICAgICAgICAgICAgIGlmICh1c2VfaW5iYW5kZmVjKQorKyAgICAgICAgICAg
ICAgICAgICBmcmVlKGRhdGFbMV0pOworKyAgICAgICAgICAgICAgIGZjbG9zZShmaW4pOworKyAg
ICAgICAgICAgICAgIGZjbG9zZShmb3V0KTsKKysgICAgICAgICAgICAgICBmcmVlKGluKTsKKysg
ICAgICAgICAgICAgICBmcmVlKG91dCk7CisrICAgICAgICAgICAgICAgZnJlZShmYnl0ZXMpOwor
ICAgICAgICAgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CisgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgIHRvdF9zYW1wbGVzICs9IG5iX2VuY29kZWQ7CitAQCAtODAzLDYgKzg0MSwxNCBA
QCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQorICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZ3cml0ZShmYnl0ZXMsIHNpemVvZihz
aG9ydCkqY2hhbm5lbHMsIG91dHB1dF9zYW1wbGVzLXNraXAsIGZvdXQpICE9ICh1bnNpZ25lZCko
b3V0cHV0X3NhbXBsZXMtc2tpcCkpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50
ZihzdGRlcnIsICJFcnJvciB3cml0aW5nLlxuIik7CisrICAgICAgICAgICAgICAgICAgICAgICAg
ICBmcmVlKGRhdGFbMF0pOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVzZV9pbmJh
bmRmZWMpCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJlZShkYXRhWzFdKTsKKysg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZjbG9zZShmaW4pOworKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgZmNsb3NlKGZvdXQpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgZnJlZShp
bik7CisrICAgICAgICAgICAgICAgICAgICAgICAgICBmcmVlKG91dCk7CisrICAgICAgICAgICAg
ICAgICAgICAgICAgICBmcmVlKGZieXRlcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gRVhJVF9GQUlMVVJFOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICAgICAgdG90X291dCArPSBvdXRwdXRfc2FtcGxlcy1za2lwOworQEAgLTgyOSw4
ICs4NzUsMTQgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGxvbmcpY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICh1
bnNpZ25lZCBsb25nKWVuY19maW5hbF9yYW5nZVt0b2dnbGVedXNlX2luYmFuZGZlY10sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBsb25nKWRlY19maW5hbF9yYW5nZSk7Cisr
ICAgICAgICAgICAgZnJlZShkYXRhWzBdKTsKKysgICAgICAgICAgICBpZiAodXNlX2luYmFuZGZl
YykKKysgICAgICAgICAgICAgICAgZnJlZShkYXRhWzFdKTsKKyAgICAgICAgICAgICBmY2xvc2Uo
ZmluKTsKKyAgICAgICAgICAgICBmY2xvc2UoZm91dCk7CisrICAgICAgICAgICAgZnJlZShpbik7
CisrICAgICAgICAgICAgZnJlZShvdXQpOworKyAgICAgICAgICAgIGZyZWUoZmJ5dGVzKTsKKyAg
ICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOworICAgICAgICAgfQorIApkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1dlYktpdC9wYXRjaC11c3JzY3RwIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1dlYktpdC9wYXRjaC11c3JzY3RwCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBlNjlkZTI5YmIyZDFkNjQzNGI4YjI5YWU3NzVhZDhjMmU0OGM1
MzkxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvV2ViS2l0L3BhdGNoLXVzcnNjdHAuZGlmZiBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9XZWJLaXQvcGF0Y2gtdXNyc2N0cC5kaWZmCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmExOGE4ZjVjNjQ1Nzg0ZDZmNWQ5MzY4MmE1ZjlmMThjMjMyY2QxNTUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvV2ViS2l0L3BhdGNoLXVz
cnNjdHAuZGlmZgpAQCAtMCwwICsxLDQ1IEBACitkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNlcl9t
YnVmLmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3Vz
cnNjdHAvdXNyc2N0cGxpYi91c2VyX21idWYuYworaW5kZXggN2ExYWFiYTg1NWUuLjNlYmQ4YTI3
YjZiIDEwMDY0NAorLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNlcl9tYnVmLmMKKysrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3Vz
ZXJfbWJ1Zi5jCitAQCAtMjMyLDcgKzIzMiw4IEBAIHN0YXRpYyBpbnQgY2x1c3RfY29uc3RydWN0
b3JfZHVwKGNhZGRyX3QgbV9jbHVzdCwgc3RydWN0IG1idWYqIG0pCisgCQltLT5tX2V4dC5leHRf
c2l6ZSA9IHNpemU7CisgCQltLT5tX2V4dC5leHRfdHlwZSA9IHR5cGU7CisgCQltLT5tX2V4dC5y
ZWZfY250ID0gcmVmY250OworLQl9CisrCX0gZWxzZQorKwkJU0NUUF9aT05FX0ZSRUUoem9uZV9l
eHRfcmVmY250LCByZWZjbnQpOworIAorIAlyZXR1cm4gKDApOworIH0KK0BAIC01MjcsNyArNTI4
LDggQEAgbWJfY3Rvcl9jbHVzdCh2b2lkICptZW0sIHZvaWQgKmFyZywgaW50IGZsZ3MpCisgCQlt
LT5tX2V4dC5leHRfc2l6ZSA9IHNpemU7CisgCQltLT5tX2V4dC5leHRfdHlwZSA9IHR5cGU7Cisg
CQltLT5tX2V4dC5yZWZfY250ID0gcmVmY250OworLQl9CisrCX0gZWxzZQorKwkJU0NUUF9aT05F
X0ZSRUUoem9uZV9leHRfcmVmY250LCByZWZjbnQpOworICNlbmRpZgorIAlyZXR1cm4gKDApOwor
IH0KK2RpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c2VyX3NvY2tldC5jIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNlcl9z
b2NrZXQuYworaW5kZXggYTU0OTk2ZWZkZDguLmI5NGUxZTVjMjRhIDEwMDY0NAorLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNj
dHBsaWIvdXNlcl9zb2NrZXQuYworKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNlcl9zb2NrZXQuYworQEAgLTIx
MzEsMTEgKzIxMzEsMTQgQEAgZG9uZTE6CisgCisgaW50IHVzcnNjdHBfY29ubmVjdChzdHJ1Y3Qg
c29ja2V0ICpzbywgc3RydWN0IHNvY2thZGRyICpuYW1lLCBpbnQgbmFtZWxlbikKKyB7CistCXN0
cnVjdCBzb2NrYWRkciAqc2E7CisrCXN0cnVjdCBzb2NrYWRkciAqc2EgPSBOVUxMOworIAorIAll
cnJubyA9IGdldHNvY2thZGRyKCZzYSwgKGNhZGRyX3QpbmFtZSwgbmFtZWxlbik7CistCWlmIChl
cnJubykKKysJaWYgKGVycm5vKSB7CisrCQlpZiAoc2EpCisrCQkJRlJFRShzYSwgTV9TT05BTUUp
OworIAkJcmV0dXJuICgtMSk7CisrCX0KKyAKKyAJZXJybm8gPSB1c2VyX2Nvbm5lY3Qoc28sIHNh
KTsKKyAJRlJFRShzYSwgTV9TT05BTUUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL2xpYndlYnJ0Yy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL2xpYndlYnJ0Yy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGE4ZWIzYmExNWIzNWU2ZjFkMjNkZTQxN2I3NjA0MjQ4NmM4MjEyZTIuLmYyMTdlYzM2N2Nm
NDU1M2YyZjVhODQ3NzY5NTA1NjI3MzNjNjZlNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9saWJ3ZWJydGMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvbGlid2VicnRjLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTEyNjAsMTYgKzEyNjAsMTMgQEAKIAkJNUM0QjRBQjcxRTQyQzU3NDAwMjY1MUM4
IC8qIG1scF9kYXRhLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1QzRCNEE5NTFFNDJDNTJEMDAyNjUxQzggLyogbWxwX2RhdGEuYyAqLzsgfTsKIAkJNUM0
QjRBQjgxRTQyQzU3NDAwMjY1MUM4IC8qIG1scC5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNUM0QjRBOTYxRTQyQzUyRDAwMjY1MUM4IC8qIG1scC5jICov
OyB9OwogCQk1QzRCNEFCOTFFNDJDNTc0MDAyNjUxQzggLyogbWxwLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzRCNEE5NzFFNDJDNTJEMDAyNjUxQzgg
LyogbWxwLmggKi87IH07Ci0JCTVDNEI0QUJBMUU0MkM1NzQwMDI2NTFDOCAvKiBvcHVzX2NvbXBh
cmUuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNEI0
QTk4MUU0MkM1MkQwMDI2NTFDOCAvKiBvcHVzX2NvbXBhcmUuYyAqLzsgfTsKIAkJNUM0QjRBQkIx
RTQyQzU3NDAwMjY1MUM4IC8qIG9wdXNfZGVjb2Rlci5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM0QjRBOTkxRTQyQzUyRDAwMjY1MUM4IC8qIG9wdXNf
ZGVjb2Rlci5jICovOyB9OwotCQk1QzRCNEFCQzFFNDJDNTc0MDAyNjUxQzggLyogb3B1c19kZW1v
LmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzRCNEE5
QTFFNDJDNTJEMDAyNjUxQzggLyogb3B1c19kZW1vLmMgKi87IH07CiAJCTVDNEI0QUJEMUU0MkM1
NzQwMDI2NTFDOCAvKiBvcHVzX2VuY29kZXIuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDVDNEI0QTlCMUU0MkM1MkQwMDI2NTFDOCAvKiBvcHVzX2VuY29k
ZXIuYyAqLzsgfTsKIAkJNUM0QjRBQkUxRTQyQzU3NDAwMjY1MUM4IC8qIG9wdXNfbXVsdGlzdHJl
YW1fZGVjb2Rlci5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNUM0QjRBOUMxRTQyQzUyRDAwMjY1MUM4IC8qIG9wdXNfbXVsdGlzdHJlYW1fZGVjb2Rlci5j
ICovOyB9OwogCQk1QzRCNEFCRjFFNDJDNTc0MDAyNjUxQzggLyogb3B1c19tdWx0aXN0cmVhbV9l
bmNvZGVyLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
QzRCNEE5RDFFNDJDNTJEMDAyNjUxQzggLyogb3B1c19tdWx0aXN0cmVhbV9lbmNvZGVyLmMgKi87
IH07CiAJCTVDNEI0QUMwMUU0MkM1NzQwMDI2NTFDOCAvKiBvcHVzX211bHRpc3RyZWFtLmMgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzRCNEE5RTFFNDJD
NTJEMDAyNjUxQzggLyogb3B1c19tdWx0aXN0cmVhbS5jICovOyB9OwogCQk1QzRCNEFDMTFFNDJD
NTc0MDAyNjUxQzggLyogb3B1c19wcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1QzRCNEE5RjFFNDJDNTJEMDAyNjUxQzggLyogb3B1c19wcml2
YXRlLmggKi87IH07CiAJCTVDNEI0QUMyMUU0MkM1NzQwMDI2NTFDOCAvKiBvcHVzLmMgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzRCNEFBMDFFNDJDNTJE
MDAyNjUxQzggLyogb3B1cy5jICovOyB9OwotCQk1QzRCNEFDMzFFNDJDNTc0MDAyNjUxQzggLyog
cmVwYWNrZXRpemVyX2RlbW8uYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDVDNEI0QUExMUU0MkM1MkQwMDI2NTFDOCAvKiByZXBhY2tldGl6ZXJfZGVtby5j
ICovOyB9OwogCQk1QzRCNEFDNDFFNDJDNTc0MDAyNjUxQzggLyogcmVwYWNrZXRpemVyLmMgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzRCNEFBMjFFNDJD
NTJEMDAyNjUxQzggLyogcmVwYWNrZXRpemVyLmMgKi87IH07CiAJCTVDNEI0QUM1MUU0MkM1NzQw
MDI2NTFDOCAvKiB0YW5zaWdfdGFibGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDVDNEI0QUEzMUU0MkM1MkQwMDI2NTFDOCAvKiB0YW5zaWdfdGFibGUu
aCAqLzsgfTsKIAkJNUM0QjRDMTkxRTQzMUY3NTAwMjY1MUM4IC8qIGJpdHJhdGVfYWRqdXN0ZXIu
Y2MgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzRCNEMx
MDFFNDMxRjc1MDAyNjUxQzggLyogYml0cmF0ZV9hZGp1c3Rlci5jYyAqLzsgfTsKQEAgLTEyNDQ5
LDkgKzEyNDQ2LDcgQEAKIAkJCQk1QzVGNDA5NzFFOTc4RkRCMDBEOTQyNzkgLyogTlNRX2RlbF9k
ZWNfc3NlLmMgaW4gU291cmNlcyAqLywKIAkJCQk1QzVGNDA5ODFFOTc4RkRCMDBEOTQyNzkgLyog
TlNRX3NzZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0QjRBQzIxRTQyQzU3NDAwMjY1MUM4IC8q
IG9wdXMuYyBpbiBTb3VyY2VzICovLAotCQkJCTVDNEI0QUJBMUU0MkM1NzQwMDI2NTFDOCAvKiBv
cHVzX2NvbXBhcmUuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDNEI0QUJCMUU0MkM1NzQwMDI2NTFD
OCAvKiBvcHVzX2RlY29kZXIuYyBpbiBTb3VyY2VzICovLAotCQkJCTVDNEI0QUJDMUU0MkM1NzQw
MDI2NTFDOCAvKiBvcHVzX2RlbW8uYyBpbiBTb3VyY2VzICovLAogCQkJCTVDNEI0QUJEMUU0MkM1
NzQwMDI2NTFDOCAvKiBvcHVzX2VuY29kZXIuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDNEI0QUMw
MUU0MkM1NzQwMDI2NTFDOCAvKiBvcHVzX211bHRpc3RyZWFtLmMgaW4gU291cmNlcyAqLywKIAkJ
CQk1QzRCNEFCRTFFNDJDNTc0MDAyNjUxQzggLyogb3B1c19tdWx0aXN0cmVhbV9kZWNvZGVyLmMg
aW4gU291cmNlcyAqLywKQEAgLTEyNDcyLDcgKzEyNDY3LDYgQEAKIAkJCQk1Q0REOEY0QzFFNDND
QjFFMDA2MjFFOTIgLyogcmVndWxhcml6ZV9jb3JyZWxhdGlvbnNfRklYLmMgaW4gU291cmNlcyAq
LywKIAkJCQk1Q0REOEVGNzFFNDNDOUY2MDA2MjFFOTIgLyogcmVndWxhcml6ZV9jb3JyZWxhdGlv
bnNfRkxQLmMgaW4gU291cmNlcyAqLywKIAkJCQk1QzRCNEFDNDFFNDJDNTc0MDAyNjUxQzggLyog
cmVwYWNrZXRpemVyLmMgaW4gU291cmNlcyAqLywKLQkJCQk1QzRCNEFDMzFFNDJDNTc0MDAyNjUx
QzggLyogcmVwYWNrZXRpemVyX2RlbW8uYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4RTgxMUU0
M0M4MEMwMDYyMUU5MiAvKiByZXNhbXBsZXIuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4RTc4
MUU0M0M4MEMwMDYyMUU5MiAvKiByZXNhbXBsZXJfZG93bjIuYyBpbiBTb3VyY2VzICovLAogCQkJ
CTVDREQ4RTc3MUU0M0M4MEMwMDYyMUU5MiAvKiByZXNhbXBsZXJfZG93bjJfMy5jIGluIFNvdXJj
ZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2NvY29h
L0xvY2FsQXV0aGVudGljYXRvci5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4v
Y29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tCmluZGV4IDQyYWM0ZmEwNGI5YTA3OTQ0MDgzNzRj
YTczNWY4YTY3YTA3NGRhZDAuLjc0YTE5YTM3YWQ1ODBjN2M0MjY5OGY5OTYxYmY0MmJjMDUxNDUw
ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vY29jb2EvTG9j
YWxBdXRoZW50aWNhdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4v
Y29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tCkBAIC0yOTYsMjcgKzI5NiwyNiBAQCB2b2lkIExv
Y2FsQXV0aGVudGljYXRvcjo6bWFrZUNyZWRlbnRpYWwoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBo
YXNoLCBjb25zdCBQdWJsaQogICAgICAgICAgICAgICAgIGF0dGVzdGVkQ3JlZGVudGlhbERhdGEu
YXBwZW5kVmVjdG9yKGNyZWRlbnRpYWxJZCk7CiAKICAgICAgICAgICAgICAgICAvLyBjcmVkZW50
aWFsUHVibGljS2V5Ci0gICAgICAgICAgICAgICAgQ0ZEYXRhUmVmIHB1YmxpY0tleURhdGFSZWYg
PSBudWxscHRyOworICAgICAgICAgICAgICAgIFJldGFpblB0cjxDRkRhdGFSZWY+IHB1YmxpY0tl
eURhdGFSZWY7CiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBhdXRvIHB1
YmxpY0tleSA9IGFkb3B0Q0YoU2VjS2V5Q29weVB1YmxpY0tleShwcml2YXRlS2V5KSk7CiAgICAg
ICAgICAgICAgICAgICAgIENGRXJyb3JSZWYgZXJyb3JSZWYgPSBudWxscHRyOwotICAgICAgICAg
ICAgICAgICAgICBwdWJsaWNLZXlEYXRhUmVmID0gU2VjS2V5Q29weUV4dGVybmFsUmVwcmVzZW50
YXRpb24ocHVibGljS2V5LmdldCgpLCAmZXJyb3JSZWYpOworICAgICAgICAgICAgICAgICAgICBw
dWJsaWNLZXlEYXRhUmVmID0gYWRvcHRDRihTZWNLZXlDb3B5RXh0ZXJuYWxSZXByZXNlbnRhdGlv
bihwdWJsaWNLZXkuZ2V0KCksICZlcnJvclJlZikpOwogICAgICAgICAgICAgICAgICAgICBhdXRv
IHJldGFpbkVycm9yID0gYWRvcHRDRihlcnJvclJlZik7CiAgICAgICAgICAgICAgICAgICAgIGlm
IChlcnJvclJlZikgewogICAgICAgICAgICAgICAgICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZG4n
dCBleHBvcnQgdGhlIHB1YmxpYyBrZXk6ICVAIiwgKE5TRXJyb3IqKWVycm9yUmVmKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbkNhbGxiYWNrKHsgVW5rbm93bkVycm9yLCBBU0NJ
SUxpdGVyYWwoIlVua25vd24gaW50ZXJuYWwgZXJyb3IuIikgfSk7CiAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAg
ICAgQVNTRVJUKCgoTlNEYXRhICopcHVibGljS2V5RGF0YVJlZikubGVuZ3RoID09ICgxICsgMipF
UzI1NktleVNpemVJbkJ5dGVzKSk7IC8vIDA0IHwgWCB8IFkKKyAgICAgICAgICAgICAgICAgICAg
QVNTRVJUKCgoTlNEYXRhICopcHVibGljS2V5RGF0YVJlZi5nZXQoKSkubGVuZ3RoID09ICgxICsg
MiAqIEVTMjU2S2V5U2l6ZUluQnl0ZXMpKTsgLy8gMDQgfCBYIHwgWQogICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICBhdXRvIHJldGFpblB1YmxpY0tleURhdGEgPSBhZG9wdENGKHB1
YmxpY0tleURhdGFSZWYpOwogCiAgICAgICAgICAgICAgICAgLy8gQ09TRSBFbmNvZGluZwogICAg
ICAgICAgICAgICAgIC8vIEZJWE1FKDE4MzUzNSk6IEltcHJvdmUgQ0JPUiBlbmNvZGVyIHRvIHdv
cmsgd2l0aCBieXRlcyBkaXJlY3RseS4KICAgICAgICAgICAgICAgICBWZWN0b3I8dWludDhfdD4g
eChFUzI1NktleVNpemVJbkJ5dGVzKTsKLSAgICAgICAgICAgICAgICBbKE5TRGF0YSAqKXB1Ymxp
Y0tleURhdGFSZWYgZ2V0Qnl0ZXM6IHguZGF0YSgpIHJhbmdlOk5TTWFrZVJhbmdlKDEsIEVTMjU2
S2V5U2l6ZUluQnl0ZXMpXTsKKyAgICAgICAgICAgICAgICBbKE5TRGF0YSAqKXB1YmxpY0tleURh
dGFSZWYuZ2V0KCkgZ2V0Qnl0ZXM6IHguZGF0YSgpIHJhbmdlOk5TTWFrZVJhbmdlKDEsIEVTMjU2
S2V5U2l6ZUluQnl0ZXMpXTsKICAgICAgICAgICAgICAgICBWZWN0b3I8dWludDhfdD4geShFUzI1
NktleVNpemVJbkJ5dGVzKTsKLSAgICAgICAgICAgICAgICBbKE5TRGF0YSAqKXB1YmxpY0tleURh
dGFSZWYgZ2V0Qnl0ZXM6IHkuZGF0YSgpIHJhbmdlOk5TTWFrZVJhbmdlKDEgKyBFUzI1NktleVNp
emVJbkJ5dGVzLCBFUzI1NktleVNpemVJbkJ5dGVzKV07CisgICAgICAgICAgICAgICAgWyhOU0Rh
dGEgKilwdWJsaWNLZXlEYXRhUmVmLmdldCgpIGdldEJ5dGVzOiB5LmRhdGEoKSByYW5nZTpOU01h
a2VSYW5nZSgxICsgRVMyNTZLZXlTaXplSW5CeXRlcywgRVMyNTZLZXlTaXplSW5CeXRlcyldOwog
ICAgICAgICAgICAgICAgIGNib3I6OkNCT1JWYWx1ZTo6TWFwVmFsdWUgcHVibGljS2V5TWFwOwog
ICAgICAgICAgICAgICAgIHB1YmxpY0tleU1hcFtjYm9yOjpDQk9SVmFsdWUoQ09TRTo6a3R5KV0g
PSBjYm9yOjpDQk9SVmFsdWUoQ09TRTo6RUMyKTsKICAgICAgICAgICAgICAgICBwdWJsaWNLZXlN
YXBbY2Jvcjo6Q0JPUlZhbHVlKENPU0U6OmFsZyldID0gY2Jvcjo6Q0JPUlZhbHVlKENPU0U6OkVT
MjU2KTsKQEAgLTM0NCwxNSArMzQzLDE0IEBAIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjptYWtl
Q3JlZGVudGlhbChjb25zdCBWZWN0b3I8dWludDhfdD4mIGhhc2gsIGNvbnN0IFB1YmxpCiAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBDRkVycm9yUmVmIGVycm9yUmVmID0g
bnVsbHB0cjsKICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUUoMTgzNjUyKTogUmVkdWNlIHBy
b21wdCBmb3IgYmlvbWV0cmljcwotICAgICAgICAgICAgICAgICAgICBDRkRhdGFSZWYgc2lnbmF0
dXJlUmVmID0gU2VjS2V5Q3JlYXRlU2lnbmF0dXJlKHByaXZhdGVLZXksIGtTZWNLZXlBbGdvcml0
aG1FQ0RTQVNpZ25hdHVyZU1lc3NhZ2VYOTYyU0hBMjU2LCAoX19icmlkZ2UgQ0ZEYXRhUmVmKVtO
U0RhdGEgZGF0YVdpdGhCeXRlczphdXRoRGF0YS5kYXRhKCkgbGVuZ3RoOmF1dGhEYXRhLnNpemUo
KV0sICZlcnJvclJlZik7CisgICAgICAgICAgICAgICAgICAgIGF1dG8gc2lnbmF0dXJlUmVmID0g
YWRvcHRDRihTZWNLZXlDcmVhdGVTaWduYXR1cmUocHJpdmF0ZUtleSwga1NlY0tleUFsZ29yaXRo
bUVDRFNBU2lnbmF0dXJlTWVzc2FnZVg5NjJTSEEyNTYsIChfX2JyaWRnZSBDRkRhdGFSZWYpW05T
RGF0YSBkYXRhV2l0aEJ5dGVzOmF1dGhEYXRhLmRhdGEoKSBsZW5ndGg6YXV0aERhdGEuc2l6ZSgp
XSwgJmVycm9yUmVmKSk7CiAgICAgICAgICAgICAgICAgICAgIGF1dG8gcmV0YWluRXJyb3IgPSBh
ZG9wdENGKGVycm9yUmVmKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yUmVmKSB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICBMT0dfRVJST1IoIkNvdWxkbid0IGdlbmVyYXRlIHRoZSBz
aWduYXR1cmU6ICVAIiwgKE5TRXJyb3IqKWVycm9yUmVmKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgIGV4Y2VwdGlvbkNhbGxiYWNrKHsgVW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwoIlVua25v
d24gaW50ZXJuYWwgZXJyb3IuIikgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgYXV0byByZXRhaW5T
aWduYXR1cmUgPSBhZG9wdENGKHNpZ25hdHVyZVJlZik7Ci0gICAgICAgICAgICAgICAgICAgIE5T
RGF0YSAqbnNTaWduYXR1cmUgPSAoTlNEYXRhICopc2lnbmF0dXJlUmVmOworICAgICAgICAgICAg
ICAgICAgICBhdXRvIG5zU2lnbmF0dXJlID0gKE5TRGF0YSAqKXNpZ25hdHVyZVJlZi5nZXQoKTsK
ICAgICAgICAgICAgICAgICAgICAgc2lnbmF0dXJlLmFwcGVuZChyZWludGVycHJldF9jYXN0PGNv
bnN0IHVpbnQ4X3QqPihuc1NpZ25hdHVyZS5ieXRlcyksIG5zU2lnbmF0dXJlLmxlbmd0aCk7CiAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGF0dGVzdGF0aW9uU3RhdGVtZW50TWFw
W2Nib3I6OkNCT1JWYWx1ZSgiYWxnIildID0gY2Jvcjo6Q0JPUlZhbHVlKENPU0U6OkVTMjU2KTsK
QEAgLTUwMiwxNSArNTAwLDE0IEBAIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjpnZXRBc3NlcnRp
b24oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBjb25zdCBQdWJsaWNLCiAKICAgICAgICAg
ICAgIENGRXJyb3JSZWYgZXJyb3JSZWYgPSBudWxscHRyOwogICAgICAgICAgICAgLy8gRklYTUU6
IENvbnZlcnRpbmcgQ0ZUeXBlUmVmIHRvIFNlY0tleVJlZiBpcyBxdWl0ZSBzdWJ0bGUgaGVyZS4K
LSAgICAgICAgICAgIENGRGF0YVJlZiBzaWduYXR1cmVSZWYgPSBTZWNLZXlDcmVhdGVTaWduYXR1
cmUoKF9fYnJpZGdlIFNlY0tleVJlZikoKGlkKXByaXZhdGVLZXlSZWYpLCBrU2VjS2V5QWxnb3Jp
dGhtRUNEU0FTaWduYXR1cmVNZXNzYWdlWDk2MlNIQTI1NiwgKF9fYnJpZGdlIENGRGF0YVJlZilk
YXRhVG9TaWduLCAmZXJyb3JSZWYpOworICAgICAgICAgICAgYXV0byBzaWduYXR1cmVSZWYgPSBh
ZG9wdENGKFNlY0tleUNyZWF0ZVNpZ25hdHVyZSgoX19icmlkZ2UgU2VjS2V5UmVmKSgoaWQpcHJp
dmF0ZUtleVJlZiksIGtTZWNLZXlBbGdvcml0aG1FQ0RTQVNpZ25hdHVyZU1lc3NhZ2VYOTYyU0hB
MjU2LCAoX19icmlkZ2UgQ0ZEYXRhUmVmKWRhdGFUb1NpZ24sICZlcnJvclJlZikpOwogICAgICAg
ICAgICAgYXV0byByZXRhaW5FcnJvciA9IGFkb3B0Q0YoZXJyb3JSZWYpOwogICAgICAgICAgICAg
aWYgKGVycm9yUmVmKSB7CiAgICAgICAgICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZG4ndCBnZW5l
cmF0ZSB0aGUgc2lnbmF0dXJlOiAlQCIsIChOU0Vycm9yKillcnJvclJlZik7CiAgICAgICAgICAg
ICAgICAgZXhjZXB0aW9uQ2FsbGJhY2soeyBVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiVW5r
bm93biBpbnRlcm5hbCBlcnJvci4iKSB9KTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBhdXRvIHJldGFpblNpZ25hdHVyZSA9IGFkb3B0Q0Yoc2ln
bmF0dXJlUmVmKTsKLSAgICAgICAgICAgIE5TRGF0YSAqbnNTaWduYXR1cmUgPSAoTlNEYXRhICop
c2lnbmF0dXJlUmVmOworICAgICAgICAgICAgYXV0byBuc1NpZ25hdHVyZSA9IChOU0RhdGEgKilz
aWduYXR1cmVSZWYuZ2V0KCk7CiAgICAgICAgICAgICBzaWduYXR1cmUuYXBwZW5kKHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KG5zU2lnbmF0dXJlLmJ5dGVzKSwgbnNTaWduYXR1cmUu
bGVuZ3RoKTsKICAgICAgICAgfQogCkBAIC01NTQsMTAgKzU1MSwxMCBAQCB2b2lkIExvY2FsQXV0
aGVudGljYXRvcjo6aXNzdWVDbGllbnRDZXJ0aWZpY2F0ZShjb25zdCBTdHJpbmcmIHJwSWQsIGNv
bnN0IFN0cmluZwogICAgIC8vIEFwcGxlIEF0dGVzdGF0aW9uCiAgICAgQVNTRVJUKGhhc2guc2l6
ZSgpIDw9IDMyKTsKIAotICAgIFNlY0FjY2Vzc0NvbnRyb2xSZWYgYWNjZXNzQ29udHJvbFJlZjsK
KyAgICBSZXRhaW5QdHI8U2VjQWNjZXNzQ29udHJvbFJlZj4gYWNjZXNzQ29udHJvbFJlZjsKICAg
ICB7CiAgICAgICAgIENGRXJyb3JSZWYgZXJyb3JSZWYgPSBudWxscHRyOwotICAgICAgICBhY2Nl
c3NDb250cm9sUmVmID0gU2VjQWNjZXNzQ29udHJvbENyZWF0ZVdpdGhGbGFncyhOVUxMLCBrU2Vj
QXR0ckFjY2Vzc2libGVXaGVuUGFzc2NvZGVTZXRUaGlzRGV2aWNlT25seSwga1NlY0FjY2Vzc0Nv
bnRyb2xQcml2YXRlS2V5VXNhZ2UgfCBrU2VjQWNjZXNzQ29udHJvbFVzZXJQcmVzZW5jZSwgJmVy
cm9yUmVmKTsKKyAgICAgICAgYWNjZXNzQ29udHJvbFJlZiA9IGFkb3B0Q0YoU2VjQWNjZXNzQ29u
dHJvbENyZWF0ZVdpdGhGbGFncyhOVUxMLCBrU2VjQXR0ckFjY2Vzc2libGVXaGVuUGFzc2NvZGVT
ZXRUaGlzRGV2aWNlT25seSwga1NlY0FjY2Vzc0NvbnRyb2xQcml2YXRlS2V5VXNhZ2UgfCBrU2Vj
QWNjZXNzQ29udHJvbFVzZXJQcmVzZW5jZSwgJmVycm9yUmVmKSk7CiAgICAgICAgIGF1dG8gcmV0
YWluRXJyb3IgPSBhZG9wdENGKGVycm9yUmVmKTsKICAgICAgICAgaWYgKGVycm9yUmVmKSB7CiAg
ICAgICAgICAgICBMT0dfRVJST1IoIkNvdWxkbid0IGNyZWF0ZSBBQ0w6ICVAIiwgKE5TRXJyb3Ig
KillcnJvclJlZik7CkBAIC01NjUsNyArNTYyLDYgQEAgdm9pZCBMb2NhbEF1dGhlbnRpY2F0b3I6
Omlzc3VlQ2xpZW50Q2VydGlmaWNhdGUoY29uc3QgU3RyaW5nJiBycElkLCBjb25zdCBTdHJpbmcK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KLSAgICBhdXRvIHJldGFpbkFj
Y2Vzc0NvbnRyb2wgPSBhZG9wdENGKGFjY2Vzc0NvbnRyb2xSZWYpOwogCiAgICAgU3RyaW5nIGxh
YmVsKHVzZXJuYW1lKTsKICAgICBsYWJlbC5hcHBlbmQoIkAiICsgcnBJZCk7CkBAIC01NzgsNyAr
NTc0LDcgQEAgdm9pZCBMb2NhbEF1dGhlbnRpY2F0b3I6Omlzc3VlQ2xpZW50Q2VydGlmaWNhdGUo
Y29uc3QgU3RyaW5nJiBycElkLCBjb25zdCBTdHJpbmcKICAgICAgICAga01BT3B0aW9uc0JBQVZh
bGlkaXR5OiBAKDE0NDApLCAvLyBMYXN0IG9uZSBkYXkuCiAgICAgICAgIGtNQU9wdGlvbnNCQUFT
Q1JUQXR0ZXN0YXRpb246IEAoTk8pLAogICAgICAgICBrTUFPcHRpb25zQkFBTm9uY2U6IFtOU0Rh
dGEgZGF0YVdpdGhCeXRlczpoYXNoLmRhdGEoKSBsZW5ndGg6aGFzaC5zaXplKCldLAotICAgICAg
ICBrTUFPcHRpb25zQkFBQWNjZXNzQ29udHJvbHM6IChpZClhY2Nlc3NDb250cm9sUmVmLAorICAg
ICAgICBrTUFPcHRpb25zQkFBQWNjZXNzQ29udHJvbHM6IChpZClhY2Nlc3NDb250cm9sUmVmLmdl
dCgpLAogICAgICAgICBrTUFPcHRpb25zQkFBT0lEU1RvSW5jbHVkZTogQFtrTUFPcHRpb25zQkFB
T0lETm9uY2VdCiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29i
amMvV2ViU2NyaXB0T2JqZWN0Lm1tIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvV2ViU2Ny
aXB0T2JqZWN0Lm1tCmluZGV4IDE4YjE3MzVjYTBhYjk0OTMwNWMxOTFlMzRkZjA5ZTg0NGNjN2Ez
YzkuLmEzOTY0YmJhNTU1MTJiY2QzN2E1ZTcyOWU1Y2I3ZGUxYjU5MWJiNTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0KQEAgLTY1NiwxMCArNjU2
LDEwIEBAICsgKGlkKWFsbG9jV2l0aFpvbmU6KE5TWm9uZSAqKXVudXNlZFpvbmUKIHsKICAgICBV
TlVTRURfUEFSQU0odW51c2VkWm9uZSk7CiAKLSAgICBzdGF0aWMgV2ViVW5kZWZpbmVkICpzaGFy
ZWRVbmRlZmluZWQgPSAwOwotICAgIGlmICghc2hhcmVkVW5kZWZpbmVkKQotICAgICAgICBzaGFy
ZWRVbmRlZmluZWQgPSBbc3VwZXIgYWxsb2NXaXRoWm9uZTpOVUxMXTsKLSAgICByZXR1cm4gc2hh
cmVkVW5kZWZpbmVkOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZXRhaW5QdHI8V2ViVW5k
ZWZpbmVkPj4gc2hhcmVkVW5kZWZpbmVkOworICAgIGlmICghc2hhcmVkVW5kZWZpbmVkLmdldCgp
KQorICAgICAgICBzaGFyZWRVbmRlZmluZWQuZ2V0KCkgPSBhZG9wdE5TKFtzdXBlciBhbGxvY1dp
dGhab25lOm51bGxwdHJdKTsKKyAgICByZXR1cm4gW3NoYXJlZFVuZGVmaW5lZC5nZXQoKSByZXRh
aW5dOwogfQogCiAtIChOU1N0cmluZyAqKWRlc2NyaXB0aW9uCkBAIC03MTUsNyArNzE1LDcgQEAg
LSAodm9pZClkZWFsbG9jCiAKICsgKFdlYlVuZGVmaW5lZCAqKXVuZGVmaW5lZAogewotICAgIHJl
dHVybiBbV2ViVW5kZWZpbmVkIGFsbG9jV2l0aFpvbmU6TlVMTF07CisgICAgcmV0dXJuIFtbV2Vi
VW5kZWZpbmVkIGFsbG9jV2l0aFpvbmU6TlVMTF0gYXV0b3JlbGVhc2VdOwogfQogCiBAZW5kCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCA1YjIyMjUxMzg5MjBlZGMzMzI2N2VlODMzNDM0MjBi
ZDY2ODhhMDFlLi44NGExOWJmMWUzNjk0ZmQwOGVkMmJlNTNkNzYyYzE1YTQ0NjliNTExIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTI4MDIsOCArMjgwMiwxMCBAQCBzdGF0aWMgTlNTdHJp
bmcgKmV4ZXJuYWxEZXZpY2VEaXNwbGF5TmFtZUZvclBsYXllcihBVlBsYXllclR5cGUgKnBsYXll
cikKICAgICAgICAgICAgIHJldHVybiBbb3V0cHV0Q29udGV4dCBkZXZpY2VOYW1lXTsKIAogICAg
ICAgICBhdXRvIG91dHB1dERldmljZU5hbWVzID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFs
bG9jXSBpbml0XSk7Ci0gICAgICAgIGZvciAoQVZPdXRwdXREZXZpY2UgKm91dHB1dERldmljZSBp
biBbb3V0cHV0Q29udGV4dCBvdXRwdXREZXZpY2VzXSkKLSAgICAgICAgICAgIFtvdXRwdXREZXZp
Y2VOYW1lcyBhZGRPYmplY3Q6W1tvdXRwdXREZXZpY2UgbmFtZV0gY29weV1dOworICAgICAgICBm
b3IgKEFWT3V0cHV0RGV2aWNlICpvdXRwdXREZXZpY2UgaW4gW291dHB1dENvbnRleHQgb3V0cHV0
RGV2aWNlc10pIHsKKyAgICAgICAgICAgIGF1dG8gb3V0cHV0RGV2aWNlTmFtZSA9IGFkb3B0TlMo
W1tvdXRwdXREZXZpY2UgbmFtZV0gY29weV0pOworICAgICAgICAgICAgW291dHB1dERldmljZU5h
bWVzIGFkZE9iamVjdDpvdXRwdXREZXZpY2VOYW1lLmdldCgpXTsKKyAgICAgICAgfQogCiAgICAg
ICAgIHJldHVybiBbb3V0cHV0RGV2aWNlTmFtZXMgY29tcG9uZW50c0pvaW5lZEJ5U3RyaW5nOkAi
ICsgIl07CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dh
ay9XQUtXaW5kb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsvV0FLV2luZG93
LmgKaW5kZXggODczOTlhMTcwZGM2MTc5OTIwNmMxZjkzM2Y2ZWE2MTlkYTQyY2ViZS4uNGM4ZjYx
ZDllM2JlOGZkOGI5N2I1ZDAyMmU3YjYwNTJkNTczMzA2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XQUtXaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3Mvd2FrL1dBS1dpbmRvdy5oCkBAIC0xMTYsNyArMTE2LDcgQEAgV0VCQ09SRV9F
WFBPUlQgQGludGVyZmFjZSBXQUtXaW5kb3cgOiBXQUtSZXNwb25kZXIKIC0gKHZvaWQpc2V0Vmlz
aWJsZTooQk9PTCl2aXNpYmxlOwogLSAoTlNTZWxlY3Rpb25EaXJlY3Rpb24pa2V5Vmlld1NlbGVj
dGlvbkRpcmVjdGlvbjsKIC0gKEJPT0wpbWFrZUZpcnN0UmVzcG9uZGVyOihOU1Jlc3BvbmRlciAq
KWFSZXNwb25kZXI7Ci0tIChXQUtWaWV3ICopX25ld0ZpcnN0UmVzcG9uZGVyQWZ0ZXJSZXNpZ25p
bmc7CistIChXQUtWaWV3ICopX25ld0ZpcnN0UmVzcG9uZGVyQWZ0ZXJSZXNpZ25pbmcgTlNfUkVU
VVJOU19OT1RfUkVUQUlORUQ7CiAtICh2b2lkKXNldEZyYW1lOihOU1JlY3QpZnJhbWVSZWN0IGRp
c3BsYXk6KEJPT0wpZmxhZzsKIC0gKENHUmVjdClmcmFtZTsKIC0gKHZvaWQpc2V0Q29udGVudFJl
Y3Q6KENHUmVjdClyZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0
b21hdGlvbi9pb3MvV2ViQXV0b21hdGlvblNlc3Npb25JT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BdXRvbWF0aW9uL2lvcy9XZWJBdXRvbWF0aW9uU2Vzc2lvbklPUy5tbQppbmRleCBh
MDgzYzI5OWUzOWY0NTc5MmQ4ZDA4OGVmN2I2NDFhNjUwNTg4ZjJmLi5jMTFjMDM0NmVkMDNlODJl
N2M3MzI0M2ZhNmYyN2EzZmMxZDZmNjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BdXRvbWF0aW9uL2lvcy9XZWJBdXRvbWF0aW9uU2Vzc2lvbklPUy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL2lvcy9XZWJBdXRvbWF0aW9uU2Vzc2lvbklP
Uy5tbQpAQCAtMTYzLDggKzE2MywxMCBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0
Zm9ybVNpbXVsYXRlS2V5U2VxdWVuY2UoV2ViUGFnZVByb3h5JiBwYWdlLCBjb25zdAogICAgIEJP
T0wgaXNUYWJLZXkgPSBbdGV4dCBpc0VxdWFsVG9TdHJpbmc6QCJcdCJdOwogCiAgICAgW3RleHQg
ZW51bWVyYXRlU3Vic3RyaW5nc0luUmFuZ2U6TlNNYWtlUmFuZ2UoMCwgdGV4dC5sZW5ndGgpIG9w
dGlvbnM6TlNTdHJpbmdFbnVtZXJhdGlvbkJ5Q29tcG9zZWRDaGFyYWN0ZXJTZXF1ZW5jZXMgdXNp
bmdCbG9jazpeKE5TU3RyaW5nICpzdWJzdHJpbmcsIE5TUmFuZ2Ugc3Vic3RyaW5nUmFuZ2UsIE5T
UmFuZ2UgZW5jbG9zaW5nUmFuZ2UsIEJPT0wgKnN0b3ApIHsKLSAgICAgICAgW2V2ZW50c1RvQmVT
ZW50IGFkZE9iamVjdDpbWzo6V2ViRXZlbnQgYWxsb2NdIGluaXRXaXRoS2V5RXZlbnRUeXBlOldl
YkV2ZW50S2V5RG93biB0aW1lU3RhbXA6Q0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkgY2hhcmFj
dGVyczpzdWJzdHJpbmcgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOnN1YnN0cmluZyBtb2Rp
ZmllcnM6bV9jdXJyZW50TW9kaWZpZXJzIGlzUmVwZWF0aW5nOk5PIHdpdGhGbGFnczowIHdpdGhJ
bnB1dE1hbmFnZXJIaW50Om5pbCBrZXlDb2RlOjAgaXNUYWJLZXk6aXNUYWJLZXldXTsKLSAgICAg
ICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbWzo6V2ViRXZlbnQgYWxsb2NdIGluaXRXaXRo
S2V5RXZlbnRUeXBlOldlYkV2ZW50S2V5VXAgdGltZVN0YW1wOkNGQWJzb2x1dGVUaW1lR2V0Q3Vy
cmVudCgpIGNoYXJhY3RlcnM6c3Vic3RyaW5nIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpz
dWJzdHJpbmcgbW9kaWZpZXJzOm1fY3VycmVudE1vZGlmaWVycyBpc1JlcGVhdGluZzpOTyB3aXRo
RmxhZ3M6MCB3aXRoSW5wdXRNYW5hZ2VySGludDpuaWwga2V5Q29kZTowIGlzVGFiS2V5OmlzVGFi
S2V5XV07CisgICAgICAgIGF1dG8ga2V5RG93bkV2ZW50ID0gYWRvcHROUyhbWzo6V2ViRXZlbnQg
YWxsb2NdIGluaXRXaXRoS2V5RXZlbnRUeXBlOldlYkV2ZW50S2V5RG93biB0aW1lU3RhbXA6Q0ZB
YnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkgY2hhcmFjdGVyczpzdWJzdHJpbmcgY2hhcmFjdGVyc0ln
bm9yaW5nTW9kaWZpZXJzOnN1YnN0cmluZyBtb2RpZmllcnM6bV9jdXJyZW50TW9kaWZpZXJzIGlz
UmVwZWF0aW5nOk5PIHdpdGhGbGFnczowIHdpdGhJbnB1dE1hbmFnZXJIaW50Om5pbCBrZXlDb2Rl
OjAgaXNUYWJLZXk6aXNUYWJLZXldKTsKKyAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVj
dDprZXlEb3duRXZlbnQuZ2V0KCldOworICAgICAgICBhdXRvIGtleVVwRXZlbnQgPSBhZG9wdE5T
KFtbOjpXZWJFdmVudCBhbGxvY10gaW5pdFdpdGhLZXlFdmVudFR5cGU6V2ViRXZlbnRLZXlVcCB0
aW1lU3RhbXA6Q0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkgY2hhcmFjdGVyczpzdWJzdHJpbmcg
Y2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOnN1YnN0cmluZyBtb2RpZmllcnM6bV9jdXJyZW50
TW9kaWZpZXJzIGlzUmVwZWF0aW5nOk5PIHdpdGhGbGFnczowIHdpdGhJbnB1dE1hbmFnZXJIaW50
Om5pbCBrZXlDb2RlOjAgaXNUYWJLZXk6aXNUYWJLZXldKTsKKyAgICAgICAgW2V2ZW50c1RvQmVT
ZW50IGFkZE9iamVjdDprZXlVcEV2ZW50LmdldCgpXTsKICAgICB9XTsKIAogICAgIHNlbmRTeW50
aGVzaXplZEV2ZW50c1RvUGFnZShwYWdlLCBldmVudHNUb0JlU2VudC5nZXQoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9TeXN0ZW1QcmV2aWV3Q29udHJvbGxl
ckNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvU3lzdGVtUHJldmlld0Nv
bnRyb2xsZXJDb2NvYS5tbQppbmRleCA3Mjc4OTFhOTlhOGEwYzcxMTRmMDM2MzUwMjg0MWI4YjY1
NWM4YzU5Li40MjlmYjBjM2RhNDNiOTk5NzljNzExZTY5ZTg1NDAyNDNjMmM4ZTM1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9TeXN0ZW1QcmV2aWV3Q29udHJvbGxl
ckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1N5c3RlbVByZXZp
ZXdDb250cm9sbGVyQ29jb2EubW0KQEAgLTE4Myw3ICsxODMsNyBAQCAtIChVSUltYWdlICopcHJl
dmlld0NvbnRyb2xsZXI6KFFMUHJldmlld0NvbnRyb2xsZXIgKiljb250cm9sbGVyIHRyYW5zaXRp
b25JbWFnZQogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIFtVSUltYWdlIG5ld107Cisg
ICAgcmV0dXJuIFtbVUlJbWFnZSBuZXddIGF1dG9yZWxlYXNlXTsKIH0KIAogQGVuZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggNTk3NTMy
MmJhM2M0MjU5Yjc0NzJlNWZkZGJmMWRkY2U1ZDJlZTk1Yy4uOWQyNzBlYzFlMDRiYjMzYjVjOTI4
YmUwMTgwMzEzMmU0MGRlMzFjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJIVE1MVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC02NzU0LDggKzY3NTQsOCBAQCAtICh2b2lkKWRvQ29tbWFu
ZEJ5U2VsZWN0b3I6KFNFTClzZWxlY3RvcgogICAgICAgICAgICAgRWRpdG9yOjpDb21tYW5kIGNv
bW1hbmQgPSBbc2VsZiBjb3JlQ29tbWFuZEJ5U2VsZWN0b3I6c2VsZWN0b3JdOwogICAgICAgICAg
ICAgaWYgKGNvbW1hbmQuaXNTdXBwb3J0ZWQoKSkKICAgICAgICAgICAgICAgICBldmVudFdhc0hh
bmRsZWQgPSBjb21tYW5kLmV4ZWN1dGUoZXZlbnQpOwotI2lmIFBMQVRGT1JNKE1BQykKICAgICAg
ICAgICAgIGVsc2UgeworI2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAgICAgICAgICAvLyBJZiBX
ZWJLaXQgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIGNvbW1hbmQsIHdlIG5lZWQgdG8gcGFzcyB0aGUg
c2VsZWN0b3IgdG8gc3VwZXIuCiAgICAgICAgICAgICAgICAgX3ByaXZhdGUtPnNlbGVjdG9yRm9y
RG9Db21tYW5kQnlTZWxlY3RvciA9IHNlbGVjdG9yOwogCkBAIC02NzY3LDggKzY3NjcsMTAgQEAg
LSAodm9pZClkb0NvbW1hbmRCeVNlbGVjdG9yOihTRUwpc2VsZWN0b3IKICAgICAgICAgICAgICAg
ICBbc2luayBkZXRhY2hdOwogCiAgICAgICAgICAgICAgICAgX3ByaXZhdGUtPnNlbGVjdG9yRm9y
RG9Db21tYW5kQnlTZWxlY3RvciA9IDA7Ci0gICAgICAgICAgICB9CisjZWxzZQorICAgICAgICAg
ICAgICAgIGV2ZW50V2FzSGFuZGxlZCA9IGZhbHNlOwogI2VuZGlmCisgICAgICAgICAgICB9CiAg
ICAgICAgIH0KIAogICAgICAgICBpZiAocGFyYW1ldGVycykK
</data>

          </attachment>
      

    </bug>

</bugzilla>