<?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>158977</bug_id>
          
          <creation_ts>2016-06-20 23:48:10 -0700</creation_ts>
          <short_desc>[Mac] Inline some picture-in-picture code</short_desc>
          <delta_ts>2016-06-21 06:16:10 -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>Media</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to>mitz</assigned_to>
          <cc>adachan</cc>
    
    <cc>andersca</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jer.noble</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1204063</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2016-06-20 23:48:10 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204067</commentid>
    <comment_count>1</comment_count>
      <attachid>281721</attachid>
    <who name="">mitz</who>
    <bug_when>2016-06-20 23:57:21 -0700</bug_when>
    <thetext>Created attachment 281721
Inline the code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204072</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-20 23:59:07 -0700</bug_when>
    <thetext>Attachment 281721 did not pass style-queue:


ERROR: Source/WebCore/platform/mac/WebVideoFullscreenInterfaceMac.mm:294:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebCore/platform/mac/WebVideoFullscreenInterfaceMac.mm:342:  The parameter name &quot;playbackSessionModel&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204115</commentid>
    <comment_count>3</comment_count>
      <attachid>281721</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2016-06-21 06:07:20 -0700</bug_when>
    <thetext>Comment on attachment 281721
Inline the code

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

&gt; Source/WebCore/platform/mac/WebVideoFullscreenInterfaceMac.mm:108
&gt; +    WebCore::WebVideoFullscreenInterfaceMac* _webVideoFullscreenInterfaceMac;
&gt; +
&gt; +    NSSize _videoDimensions;
&gt; +    BOOL _playing;
&gt; +
&gt; +    RetainPtr&lt;PIPViewController&gt; _pipViewController;
&gt; +    RetainPtr&lt;NSViewController&gt; _videoViewContainerController;
&gt; +    RetainPtr&lt;WebVideoViewContainer&gt; _videoViewContainer;
&gt; +    PIPState _pipState;
&gt; +    BOOL _didRequestExitingPIP;
&gt; +    BOOL _exitingToStandardFullscreen;
&gt; +    RetainPtr&lt;NSWindow&gt; _returningWindow;
&gt; +    NSRect _returningRect;

Minor nits: I don&apos;t t think the blank lines add anything. I would prefer to have the BOOLs grouped at the end of the interface defn.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204117</commentid>
    <comment_count>4</comment_count>
    <who name="">mitz</who>
    <bug_when>2016-06-21 06:16:10 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 281721 [details]
&gt; Inline the code
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=281721&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/mac/WebVideoFullscreenInterfaceMac.mm:108
&gt; &gt; +    WebCore::WebVideoFullscreenInterfaceMac* _webVideoFullscreenInterfaceMac;
&gt; &gt; +
&gt; &gt; +    NSSize _videoDimensions;
&gt; &gt; +    BOOL _playing;
&gt; &gt; +
&gt; &gt; +    RetainPtr&lt;PIPViewController&gt; _pipViewController;
&gt; &gt; +    RetainPtr&lt;NSViewController&gt; _videoViewContainerController;
&gt; &gt; +    RetainPtr&lt;WebVideoViewContainer&gt; _videoViewContainer;
&gt; &gt; +    PIPState _pipState;
&gt; &gt; +    BOOL _didRequestExitingPIP;
&gt; &gt; +    BOOL _exitingToStandardFullscreen;
&gt; &gt; +    RetainPtr&lt;NSWindow&gt; _returningWindow;
&gt; &gt; +    NSRect _returningRect;
&gt; 
&gt; Minor nits: I don&apos;t t think the blank lines add anything. I would prefer to
&gt; have the BOOLs grouped at the end of the interface defn.

Done.

Committed &lt;http://trac.webkit.org/r202274&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281721</attachid>
            <date>2016-06-20 23:57:21 -0700</date>
            <delta_ts>2016-06-21 06:07:20 -0700</delta_ts>
            <desc>Inline the code</desc>
            <filename>bug-158977-20160620235714.patch</filename>
            <type>text/plain</type>
            <size>46133</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMjI3MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ2IEBACisyMDE2LTA2LTIwICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgSW5saW5lZCBzb21lIHBpY3R1cmUt
aW4tcGljdHVyZSBjb2RlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTU4OTc3CisKKyAgICAgICAgVGhpcyBjb2RlIHdhcyB3cml0dGVuIHByaW1hcmls
eSBieSBBZGEgQ2hhbiwgYW5kIG9yaWdpbmFsbHkgcmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNl
biwKKyAgICAgICAgQW5kZXJzIENhcmxzc29uLCBDb25yYWQgU2h1bHR6LCBEYW4gQmVybnN0ZWlu
LCBFcmljIENhcmxzb24sIEplciBOb2JsZSwgSmVyZW15IEpvbmVzLAorICAgICAgICBKb24gTGVl
LCBSZW15IERlbWFyZXN0LCBhbmQgWmFjaCBMaS4KKworICAgICAgICAqIEVuZ2xpc2gubHByb2ov
TG9jYWxpemFibGUuc3RyaW5nczoKKyAgICAgICAgICBVcGRhdGVkIHVzaW5nIHVwZGF0ZS13ZWJr
aXQtbG9jYWxpemFibGUtc3RyaW5ncy4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFjb250cm9s
cy9tZWRpYUNvbnRyb2xzQXBwbGUuY3NzOgorICAgICAgICAodmlkZW86LXdlYmtpdC1mdWxsLXNj
cmVlbjo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCAucGljdHVyZS1pbi1waWN0dXJlLWJ1
dHRvbik6CisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvbWVkaWFDb250cm9sc0Fw
cGxlLmpzOgorICAgICAgICAoQ29udHJvbGxlci5wcm90b3R5cGUuY29uZmlndXJlRnVsbFNjcmVl
bkNvbnRyb2xzKToKKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajogQWRkZWQgUElQU1BJLmguCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
OiBJbmxpbmVkIGNvZGUgZnJvbSBIVE1MTWVkaWFFbGVtZW50QWRkaXRpb25zLmNwcC4KKworICAg
ICAgICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHA6IElubGluZWQgY29kZSBmcm9tIEhUTUxW
aWRlb0VsZW1lbnRTdXBwb3J0c0Z1bGxzY3JlZW5BZGRpdGlvbnMuY3BwLgorCisgICAgICAgICog
cGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0
TWVudUl0ZW1UYWdFbnRlclZpZGVvRW5oYW5jZWRGdWxsc2NyZWVuKTogQnJvdWdodCBpbiBmcm9t
IENvbnRleHRNZW51TG9jYWxpemVkU3RyaW5nc0FkZGl0aW9ucy5jcHAuCisgICAgICAgIChXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdFeGl0VmlkZW9FbmhhbmNlZEZ1bGxzY3JlZW4pOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OkFYQVJJQUNvbnRlbnRHcm91cFRleHQpOiBNYWRlIHVwZGF0
ZXMgdGhhdCBzaG91bGQgaGF2ZSBiZWVuIHBhcnQgb2YgcjE5ODU0My4KKworICAgICAgICAqIHBs
YXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaDogUmVtb3ZlZCBVU0Uo
QVBQTEVfSU5URVJOQUxfU0RLKSBndWFyZHMuCisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbTogSW5saW5lZCBXZWJWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VNYWNBZGRpdGlvbnMubW0uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9zcGkvbWFjL1BJ
UFNQSS5oOiBBZGRlZC4KKworICAgICAgICAqIHJlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcDog
SW5saW5lZCBIaXRUZXN0UmVzdWx0QWRkaXRpb25zLmNwcC4KKworICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJUaGVtZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpt
ZWRpYUNvbnRyb2xzU3R5bGVTaGVldCk6IFJlbW92ZWQgaW5jbHVkZSBvZgorICAgICAgICAgIFJl
bmRlclRoZW1lTWFjTWVkaWFDb250cm9sc1N0eWxlU2hlZXRBZGRpdGlvbnMubW0gbm93IHRoYXQg
dGhlIGNvbnRlbnQgaXMgaW4KKyAgICAgICAgICBtZWRpYUNvbnRyb2xzQXBwbGUuY3NzLgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6Om1lZGlhQ29udHJvbHNTY3JpcHQpOiBSZW1v
dmVkIGluY2x1ZGUgb2YKKyAgICAgICAgICBSZW5kZXJUaGVtZU1hY01lZGlhQ29udHJvbHNTY3Jp
cHRBZGRpdGlvbnMubW0gbm93IHRoYXQgdGhlIGNvbnRlbnQgaXMgaW4gbWVkaWFDb250cm9sc0Fw
cGxlLmpzLgorCiAyMDE2LTA2LTE5ICBHYXZpbiAmIEVsbGllIEJhcnJhY2xvdWdoICA8YmFycmFj
bG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIERvbid0IGVhZ2VybHkgcmVpZnkgRE9NIFByb3Rv
dHlwZSBwcm9wZXJ0aWVzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL0xvY2Fs
aXphYmxlLnN0cmluZ3MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJv
ai9Mb2NhbGl6YWJsZS5zdHJpbmdzCShyZXZpc2lvbiAyMDIyNzApCisrKyBTb3VyY2UvV2ViQ29y
ZS9FbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MJKHdvcmtpbmcgY29weSkKQEAgLTIz
OCw5ICsyMzgsMTUgQEAKIC8qIFZpZGVvIEVudGVyIEZ1bGxzY3JlZW4gY29udGV4dCBtZW51IGl0
ZW0gKi8KICJFbnRlciBGdWxsIFNjcmVlbiIgPSAiRW50ZXIgRnVsbCBTY3JlZW4iOwogCisvKiBt
ZW51IGl0ZW0gKi8KKyJFbnRlciBQaWN0dXJlLWluLVBpY3R1cmUiID0gIkVudGVyIFBpY3R1cmUt
aW4tUGljdHVyZSI7CisKIC8qIFZpZGVvIEV4aXQgRnVsbHNjcmVlbiBjb250ZXh0IG1lbnUgaXRl
bSAqLwogIkV4aXQgRnVsbCBTY3JlZW4iID0gIkV4aXQgRnVsbCBTY3JlZW4iOwogCisvKiBtZW51
IGl0ZW0gKi8KKyJFeGl0IFBpY3R1cmUtaW4tUGljdHVyZSIgPSAiRXhpdCBQaWN0dXJlLWluLVBp
Y3R1cmUiOworCiAvKiBEZWZhdWx0IGFwcGxpY2F0aW9uIG5hbWUgZm9yIE9wZW4gV2l0aCBjb250
ZXh0IG1lbnUgKi8KICJGaW5kZXIiID0gIkZpbmRlciI7CiAKQEAgLTcxMiwxMiArNzE4LDYgQEAK
IC8qIEFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gYWxlcnQuICov
CiAiYWxlcnQiID0gImFsZXJ0IjsKIAotLyogQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRo
YXQgYWN0cyBhcyBhbiBhbGVydCBkaWFsb2cuICovCi0iYWxlcnQgZGlhbG9nIiA9ICJ3ZWIgYWxl
cnQgZGlhbG9nIjsKLQotLyogQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBh
cyBhbiBhcHBsaWNhdGlvbi4gKi8KLSJ3ZWIgYXBwbGljYXRpb24iID0gIndlYiBhcHBsaWNhdGlv
biI7Ci0KIC8qIEFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYSBzdGF0
dXMgdXBkYXRlLiAqLwogImFwcGxpY2F0aW9uIHN0YXR1cyIgPSAiYXBwbGljYXRpb24gc3RhdHVz
IjsKIApAQCAtNzkwLDkgKzc5MCw2IEBACiAvKiBhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRp
b24gb2YgYSBkZXNjcmlwdGlvbiBsaXN0ICovCiAiZGVzY3JpcHRpb24gbGlzdCIgPSAiZGVzY3Jp
cHRpb24gbGlzdCI7CiAKLS8qIEFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMg
YXMgYW4gZGlhbG9nLiAqLwotImRpYWxvZyIgPSAid2ViIGRpYWxvZyI7Ci0KIC8qIEFuIEFSSUEg
YWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYSBkb2N1bWVudC4gKi8KICJkb2N1bWVu
dCIgPSAiZG9jdW1lbnQiOwogCkBAIC0xMTExLDMgKzExMDgsMTIgQEAKIC8qIGFjY2Vzc2liaWxp
dHkgbGFiZWwgZm9yIHZpZGVvIGVsZW1lbnQgY29udHJvbGxlciAqLwogInZpZGVvIHBsYXliYWNr
IiA9ICJ2aWRlbyBwbGF5YmFjayI7CiAKKy8qIEFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0
aGF0IGFjdHMgYXMgYW4gYWxlcnQgZGlhbG9nLiAqLworIndlYiBhbGVydCBkaWFsb2ciID0gIndl
YiBhbGVydCBkaWFsb2ciOworCisvKiBBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBh
Y3RzIGFzIGFuIGFwcGxpY2F0aW9uLiAqLworIndlYiBhcHBsaWNhdGlvbiIgPSAid2ViIGFwcGxp
Y2F0aW9uIjsKKworLyogQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBh
biBkaWFsb2cuICovCisid2ViIGRpYWxvZyIgPSAid2ViIGRpYWxvZyI7CisKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9tZWRpYUNvbnRyb2xzQXBwbGUuY3NzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9tZWRpYUNv
bnRyb2xzQXBwbGUuY3NzCShyZXZpc2lvbiAyMDIyNzApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhY29udHJvbHMvbWVkaWFDb250cm9sc0FwcGxlLmNzcwkod29ya2luZyBjb3B5KQpA
QCAtMTEzNiwzICsxMTM2LDkgQEAgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwu
cGljdAogICAgIG9wYWNpdHk6IDA7CiAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiB9CisKK3Zp
ZGVvOi13ZWJraXQtZnVsbC1zY3JlZW46Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwgLnBp
Y3R1cmUtaW4tcGljdHVyZS1idXR0b24geworICAgIG1hcmdpbi10b3A6IDdweDsKKyAgICBtYXJn
aW4tcmlnaHQ6IDI0cHg7CisgICAgbWFyZ2luLWxlZnQ6IDBweDsKK30KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9tZWRpYUNvbnRyb2xzQXBwbGUuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL21lZGlhQ29udHJv
bHNBcHBsZS5qcwkocmV2aXNpb24gMjAyMjcwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYWNvbnRyb2xzL21lZGlhQ29udHJvbHNBcHBsZS5qcwkod29ya2luZyBjb3B5KQpAQCAtNjI0
LDggKzYyNCwxMCBAQCBDb250cm9sbGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5jb250
cm9scy5wYW5lbC5hcHBlbmRDaGlsZCh0aGlzLmNvbnRyb2xzLnNlZWtGb3J3YXJkQnV0dG9uKTsK
ICAgICAgICAgdGhpcy5jb250cm9scy5wYW5lbC5hcHBlbmRDaGlsZCh0aGlzLmNvbnRyb2xzLndp
cmVsZXNzVGFyZ2V0UGlja2VyKTsKICAgICAgICAgdGhpcy5jb250cm9scy5wYW5lbC5hcHBlbmRD
aGlsZCh0aGlzLmNvbnRyb2xzLmNhcHRpb25CdXR0b24pOwotICAgICAgICBpZiAoIXRoaXMuaXNB
dWRpbygpKQorICAgICAgICBpZiAoIXRoaXMuaXNBdWRpbygpKSB7CisgICAgICAgICAgICB0aGlz
LnVwZGF0ZVBpY3R1cmVJblBpY3R1cmVCdXR0b24oKTsKICAgICAgICAgICAgIHRoaXMuY29udHJv
bHMucGFuZWwuYXBwZW5kQ2hpbGQodGhpcy5jb250cm9scy5mdWxsc2NyZWVuQnV0dG9uKTsKKyAg
ICAgICAgfQogICAgICAgICBpZiAoIXRoaXMuaXNMaXZlKSB7CiAgICAgICAgICAgICB0aGlzLmNv
bnRyb2xzLnBhbmVsLmFwcGVuZENoaWxkKHRoaXMuY29udHJvbHMudGltZWxpbmVCb3gpOwogICAg
ICAgICAgICAgdGhpcy5jb250cm9scy50aW1lbGluZUJveC5hcHBlbmRDaGlsZCh0aGlzLmNvbnRy
b2xzLmN1cnJlbnRUaW1lKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIwMjI3MCkKKysrIFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAt
MTQ1Miw2ICsxNDUyLDcgQEAKIAkJMzc5RTYxQ0IxMjZDQTVDNDAwQjYzRThEIC8qIEJhc2VDaGVj
a2FibGVJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMzc5RTYxQzcxMjZDQTVDMzAwQjYzRThEIC8qIEJhc2VDaGVja2FibGVJbnB1dFR5
cGUuY3BwICovOyB9OwogCQkzNzlFNjFDQzEyNkNBNUM0MDBCNjNFOEQgLyogQmFzZUNoZWNrYWJs
ZUlucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMzc5RTYxQzgxMjZDQTVDMzAwQjYzRThEIC8qIEJhc2VDaGVja2FibGVJbnB1dFR5cGUuaCAq
LzsgfTsKIAkJMzdBQ0NGNjkwREE0MTRFNzAwODlFNjAyIC8qIEZvbnREZXNjcmlwdGlvbi5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0FDQ0U2MjBE
QTJBQTk2MDA4OUU2MDIgLyogRm9udERlc2NyaXB0aW9uLmNwcCAqLzsgfTsKKwkJMzdCMzI3RDMx
RDE3MDk2QTAwNTczN0ZBIC8qIFBJUFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzdCMzI3RDIxRDE3MDk2QTAwNTczN0ZBIC8qIFBJUFNQSS5oICov
OyB9OwogCQkzN0JBQUU1ODE5ODBEMUREMDA1REZFNzEgLyogUHJvdGVjdGlvblNwYWNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0JBQUU1NzE5ODBE
MUREMDA1REZFNzEgLyogUHJvdGVjdGlvblNwYWNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzdDMjM2MTAxMDk3RUU3NzAwRUY5RjcyIC8qIENv
bXBsZXhUZXh0Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzN0MyMzYwRTEwOTdFRTc3MDBFRjlGNzIgLyogQ29tcGxleFRleHRDb250
cm9sbGVyLmNwcCAqLzsgfTsKIAkJMzdDMjM2MTExMDk3RUU3NzAwRUY5RjcyIC8qIENvbXBsZXhU
ZXh0Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzdDMjM2MEYxMDk3RUU3NzAwRUY5RjcyIC8qIENvbXBsZXhUZXh0Q29udHJvbGxlci5o
ICovOyB9OwpAQCAtODk3NCw2ICs4OTc1LDcgQEAKIAkJMzc5RTYxQzcxMjZDQTVDMzAwQjYzRThE
IC8qIEJhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTM3OUU2MUM4MTI2Q0E1QzMwMEI2M0U4RCAvKiBCYXNlQ2hlY2thYmxlSW5w
dXRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhc2VDaGVja2FibGVJ
bnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzdBQ0NFNjIwREEyQUE5
NjAwODlFNjAyIC8qIEZvbnREZXNjcmlwdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBGb250RGVzY3JpcHRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkzN0IzMjdEMjFEMTcwOTZBMDA1NzM3RkEgLyogUElQU1BJLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBJUFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkzN0JBQUU1NzE5ODBEMUREMDA1REZFNzEgLyogUHJvdGVjdGlvblNwYWNlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByb3RlY3Rpb25TcGFjZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkzN0MyMzYwRTEwOTdFRTc3MDBFRjlGNzIgLyogQ29tcGxleFRl
eHRDb250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENv
bXBsZXhUZXh0Q29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTM3
QzIzNjBGMTA5N0VFNzcwMEVGOUY3MiAvKiBDb21wbGV4VGV4dENvbnRyb2xsZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29tcGxleFRleHRDb250cm9sbGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTA2Niw2ICsxOTA2OCw3IEBACiAJCQkJMkQ3N0FD
MjgxQkYyQjk4NjAwNzI0NzBBIC8qIE5TVGV4dEZpbmRlclNQSS5oICovLAogCQkJCTJENzdBQzJD
MUJGMkI5QTAwMDcyNDcwQSAvKiBOU1ZpZXdTUEkuaCAqLywKIAkJCQkyRDBDRjgxNjFCQ0Y1REUx
MDA3QTQ5MzcgLyogTlNXaW5kb3dTUEkuaCAqLywKKwkJCQkzN0IzMjdEMjFEMTcwOTZBMDA1NzM3
RkEgLyogUElQU1BJLmggKi8sCiAJCQkJMUFBNkJDNEYxQ0Y0RjY5NTAwM0Y2Mzk2IC8qIFFUS2l0
U1BJLmggKi8sCiAJCQkJOTM3RjRDQ0IxQTJENDhDMTAwQkIzOUY1IC8qIFF1aWNrTG9va01hY1NQ
SS5oICovLAogCQkJCTJEMjMyQkZGMUEzMjZFRjkwMDZCRjJEQiAvKiBUVUNhbGxTUEkuaCAqLywK
QEAgLTI1NTIwLDYgKzI1NTIzLDcgQEAKIAkJCQlBODBFNkNGMjBBMTk4OUNBMDA3RkI4QzUgLyog
Q1NTUnVsZUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3MUY1MUExMEQyNjJGQTAwMEVDRTBE
NSAvKiBDU1NTZWdtZW50ZWRGb250RmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTczNTIw
QTE5OUM3NzAwN0ZCOEM1IC8qIENTU1NlbGVjdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQkzN0Iz
MjdEMzFEMTcwOTZBMDA1NzM3RkEgLyogUElQU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEMx
Nzg5QjBFRTY5MDM4MDA4MjRENjkgLyogQ1NTU2VsZWN0b3JMaXN0LmggaW4gSGVhZGVycyAqLywK
IAkJCQlBODBFNkNFODBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTU2hhZG93VmFsdWUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE4MEU2RTBGMEExOTkxMUMwMDdGQjhDNSAvKiBDU1NTdHlsZURlY2xhcmF0
aW9uLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcAkocmV2aXNpb24gMjAyMjcwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU1LDEwICsxNTUsNiBAQAogI2lu
Y2x1ZGUgPGJpbmRpbmdzL1NjcmlwdE9iamVjdC5oPgogI2VuZGlmCiAKLSNpZiBVU0UoQVBQTEVf
SU5URVJOQUxfU0RLKQotI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9IVE1MTWVkaWFFbGVtZW50
QWRkaXRpb25zLmNwcD4KLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBj
b25zdCBkb3VibGUgU2Vla1JlcGVhdERlbGF5ID0gMC4xOwpAQCAtNzEwMSw3ICs3MDk3LDYgQEAg
dm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVQbGF5YmFja0NvbgogICAgICAgICBwYWdlLT5j
aHJvbWUoKS5jbGllbnQoKS5jbGVhclBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKCp0aGlzKTsKIH0K
IAotI2lmICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogYm9vbCBIVE1MTWVkaWFFbGVtZW50Ojpz
aG91bGRPdmVycmlkZUJhY2tncm91bmRMb2FkaW5nUmVzdHJpY3Rpb24oKSBjb25zdAogewogI2lm
IEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCkBAIC03MTA5LDE0ICs3MTA0LDE3IEBA
IGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6c2hvdWxkT3ZlcnJpZGVCYWMKICAgICAgICAgcmV0dXJu
IHRydWU7CiAjZW5kaWYKIAotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gbV92aWRlb0Z1
bGxzY3JlZW5Nb2RlID09IFZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJlSW5QaWN0dXJlOwogfQog
CiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZChWaWRlb0Z1bGxz
Y3JlZW5Nb2RlIG1vZGUpCiB7CisgICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTW9kZSA9PSBtb2Rl
KQorICAgICAgICByZXR1cm47CisKICAgICBtX3ZpZGVvRnVsbHNjcmVlbk1vZGUgPSBtb2RlOwor
ICAgIG1fbWVkaWFTZXNzaW9uLT5zY2hlZHVsZUNsaWVudERhdGFCdWZmZXJpbmdDaGVjaygpOwog
fQotI2VuZGlmCiAKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1l
bnQuY3BwCShyZXZpc2lvbiAyMDIyNzApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRl
b0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDksOSArMTQ5LDggQEAgdm9pZCBIVE1M
VmlkZW9FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjbwogCiBib29sIEhUTUxWaWRlb0VsZW1lbnQ6
OnN1cHBvcnRzRnVsbHNjcmVlbihIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVl
bk1vZGUgdmlkZW9GdWxsc2NyZWVuTW9kZSkgY29uc3QKIHsKLSNpZiBVU0UoQVBQTEVfSU5URVJO
QUxfU0RLKQotI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9IVE1MVmlkZW9FbGVtZW50U3VwcG9y
dHNGdWxsc2NyZWVuQWRkaXRpb25zLmNwcD4KLSNlbmRpZgorICAgIGlmICh2aWRlb0Z1bGxzY3Jl
ZW5Nb2RlID09IEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZVBpY3R1
cmVJblBpY3R1cmUgJiYgIW1lZGlhU2Vzc2lvbigpLmFsbG93c1BpY3R1cmVJblBpY3R1cmUoKnRo
aXMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBQYWdlKiBwYWdlID0gZG9jdW1lbnQo
KS5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKSAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0xvY2FsaXplZFN0cmluZ3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCShyZXZpc2lvbiAyMDIyNzApCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTA5
LDE5ICs1MDksMTUgQEAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0V4aXRWaWRlb0Z1bGxzYwog
CiAjaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCiAK
LSNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQotI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9D
b250ZXh0TWVudUxvY2FsaXplZFN0cmluZ3NBZGRpdGlvbnMuY3BwPgotI2Vsc2UKIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRW5oYW5jZWRGdWxsc2NyZWVuKCkKIHsKLSAgICBy
ZXR1cm4geyB9OworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJFbnRlciBQaWN0dXJlLWluLVBp
Y3R1cmUiLCAibWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdFeGl0
VmlkZW9FbmhhbmNlZEZ1bGxzY3JlZW4oKQogewotICAgIHJldHVybiB7IH07CisgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIkV4aXQgUGljdHVyZS1pbi1QaWN0dXJlIiwgIm1lbnUgaXRlbSIpOwog
fQotI2VuZGlmCiAKICNlbmRpZgogCkBAIC02OTMsOSArNjg5LDkgQEAgU3RyaW5nIEFYQVJJQUNv
bnRlbnRHcm91cFRleHQoY29uc3QgU3RyaQogICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUFwcGxp
Y2F0aW9uQWxlcnQiKQogICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiYWxlcnQiLCAiQW4g
QVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhbiBhbGVydC4iKTsKICAgICBp
ZiAoYXJpYVR5cGUgPT0gIkFSSUFBcHBsaWNhdGlvbkFsZXJ0RGlhbG9nIikKLSAgICAgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoImFsZXJ0IGRpYWxvZyIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkg
Z3JvdXAgdGhhdCBhY3RzIGFzIGFuIGFsZXJ0IGRpYWxvZy4iKTsKKyAgICAgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoIndlYiBhbGVydCBkaWFsb2ciLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdy
b3VwIHRoYXQgYWN0cyBhcyBhbiBhbGVydCBkaWFsb2cuIik7CiAgICAgaWYgKGFyaWFUeXBlID09
ICJBUklBQXBwbGljYXRpb25EaWFsb2ciKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
ZGlhbG9nIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gZGlh
bG9nLiIpOworICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygid2ViIGRpYWxvZyIsICJBbiBB
UklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGFuIGRpYWxvZy4iKTsKICAgICBp
ZiAoYXJpYVR5cGUgPT0gIkFSSUFBcHBsaWNhdGlvbkxvZyIpCiAgICAgICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJsb2ciLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBh
cyBhIGNvbnNvbGUgbG9nLiIpOwogICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUFwcGxpY2F0aW9u
TWFycXVlZSIpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlTWFjLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oCShyZXZpc2lvbiAyMDIyNzAp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlTWFjLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDEwICszNiw3IEBACiAjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CiAKIE9CSkNfQ0xBU1MgTlNXaW5kb3c7Ci0KLSNpZiBVU0UoQVBQ
TEVfSU5URVJOQUxfU0RLKQogT0JKQ19DTEFTUyBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VN
YWNPYmpDOwotI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEludFJlY3Q7CkBA
IC0xMDAsOSArOTcsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJhdGVDaGFuZ2VkKGJvb2wgaXNQ
bGF5aW5nLCBmbG9hdCBwbGF5YmFja1JhdGUpIG92ZXJyaWRlOwogCi0jaWYgVVNFKEFQUExFX0lO
VEVSTkFMX1NESykKICAgICBXRUJDT1JFX0VYUE9SVCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VNYWNPYmpDICp2aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VPYmpDKCk7Ci0jZW5kaWYKIAogcHJp
dmF0ZToKICAgICBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMoV2ViUGxheWJhY2tTZXNz
aW9uSW50ZXJmYWNlTWFjJik7CkBAIC0xMTAsMTAgKzEwNSw3IEBAIHByaXZhdGU6CiAgICAgV2Vi
VmlkZW9GdWxsc2NyZWVuTW9kZWwqIG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwgeyBudWxscHRyIH07
CiAgICAgV2ViVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIqIG1fZnVsbHNjcmVlbkNoYW5n
ZU9ic2VydmVyIHsgbnVsbHB0ciB9OwogICAgIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9G
dWxsc2NyZWVuTW9kZSBtX21vZGUgeyBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNj
cmVlbk1vZGVOb25lIH07Ci0KLSNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogICAgIFJldGFp
blB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWNPYmpDPiBtX3dlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZU9iakM7Ci0jZW5kaWYKIH07CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZU1hYy5tbQkocmV2aXNpb24gMjAyMjcwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAt
MzAsNyArMzAsOSBAQAogCiAjaW1wb3J0ICJBVktpdFNQSS5oIgogI2ltcG9ydCAiSW50UmVjdC5o
IgorI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmgi
CisjaW1wb3J0ICJQSVBTUEkuaCIKICNpbXBvcnQgIlRpbWVSYW5nZXMuaCIKICNpbXBvcnQgIldl
YlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYy5oIgogI2ltcG9ydCAiV2ViVmlkZW9GdWxsc2Ny
ZWVuQ2hhbmdlT2JzZXJ2ZXIuaCIKQEAgLTQyLDkgKzQ0LDMwOSBAQAogU09GVF9MSU5LX0ZSQU1F
V09SS19PUFRJT05BTChBVktpdCkKIFNPRlRfTElOS19DTEFTU19PUFRJT05BTChBVktpdCwgQVZW
YWx1ZVRpbWluZykKIAotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0jaW5jbHVkZSA8V2Vi
S2l0QWRkaXRpb25zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hY0FkZGl0aW9ucy5tbT4K
LSNlbmRpZgorU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLX09QVElPTkFMKFBJUCkKK1NPRlRf
TElOS19DTEFTU19PUFRJT05BTChQSVAsIFBJUFZpZXdDb250cm9sbGVyKQorCit1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKKworQGNsYXNzIFdlYlZpZGVvVmlld0NvbnRhaW5lcjsKKworQHByb3Rv
Y29sIFdlYlZpZGVvVmlld0NvbnRhaW5lckRlbGVnYXRlIDxOU09iamVjdD4KKworLSAodm9pZCli
b3VuZHNEaWRDaGFuZ2VGb3JWaWRlb1ZpZXdDb250YWluZXI6KFdlYlZpZGVvVmlld0NvbnRhaW5l
ciAqKXZpZGVvVmlld0NvbnRhaW5lcjsKKy0gKHZvaWQpc3VwZXJ2aWV3RGlkQ2hhbmdlRm9yVmlk
ZW9WaWV3Q29udGFpbmVyOihXZWJWaWRlb1ZpZXdDb250YWluZXIgKil2aWRlb1ZpZXdDb250YWlu
ZXI7CisKK0BlbmQKKworQGludGVyZmFjZSBXZWJWaWRlb1ZpZXdDb250YWluZXIgOiBOU1ZpZXcg
eworICAgIGlkIDxXZWJWaWRlb1ZpZXdDb250YWluZXJEZWxlZ2F0ZT4gX3ZpZGVvVmlld0NvbnRh
aW5lckRlbGVnYXRlOworfQorCitAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWduKSBpZCA8V2Vi
VmlkZW9WaWV3Q29udGFpbmVyRGVsZWdhdGU+IHZpZGVvVmlld0NvbnRhaW5lckRlbGVnYXRlOwor
CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXZWJWaWRlb1ZpZXdDb250YWluZXIKKworQHN5bnRo
ZXNpemUgdmlkZW9WaWV3Q29udGFpbmVyRGVsZWdhdGU9X3ZpZGVvVmlld0NvbnRhaW5lckRlbGVn
YXRlOworCistICh2b2lkKXJlc2l6ZVdpdGhPbGRTdXBlcnZpZXdTaXplOihOU1NpemUpb2xkQm91
bmRzU2l6ZQoreworICAgIFtzdXBlciByZXNpemVXaXRoT2xkU3VwZXJ2aWV3U2l6ZTpvbGRCb3Vu
ZHNTaXplXTsKKworICAgIFtfdmlkZW9WaWV3Q29udGFpbmVyRGVsZWdhdGUgYm91bmRzRGlkQ2hh
bmdlRm9yVmlkZW9WaWV3Q29udGFpbmVyOnNlbGZdOworfQorCistICh2b2lkKXZpZXdEaWRNb3Zl
VG9TdXBlcnZpZXcKK3sKKyAgICBbc3VwZXIgdmlld0RpZE1vdmVUb1N1cGVydmlld107CisKKyAg
ICBbX3ZpZGVvVmlld0NvbnRhaW5lckRlbGVnYXRlIHN1cGVydmlld0RpZENoYW5nZUZvclZpZGVv
Vmlld0NvbnRhaW5lcjpzZWxmXTsKK30KKworQGVuZAorCitlbnVtIGNsYXNzIFBJUFN0YXRlIHsK
KyAgICBOb3RJblBJUCwKKyAgICBJblBJUCwKKyAgICBFeGl0aW5nUElQCit9OworCitAaW50ZXJm
YWNlIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hY09iakMgOiBOU09iamVjdCA8UElQVmll
d0NvbnRyb2xsZXJEZWxlZ2F0ZSwgV2ViVmlkZW9WaWV3Q29udGFpbmVyRGVsZWdhdGU+IHsKKyAg
ICBXZWJDb3JlOjpXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMqIF93ZWJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VNYWM7CisKKyAgICBOU1NpemUgX3ZpZGVvRGltZW5zaW9uczsKKyAgICBC
T09MIF9wbGF5aW5nOworCisgICAgUmV0YWluUHRyPFBJUFZpZXdDb250cm9sbGVyPiBfcGlwVmll
d0NvbnRyb2xsZXI7CisgICAgUmV0YWluUHRyPE5TVmlld0NvbnRyb2xsZXI+IF92aWRlb1ZpZXdD
b250YWluZXJDb250cm9sbGVyOworICAgIFJldGFpblB0cjxXZWJWaWRlb1ZpZXdDb250YWluZXI+
IF92aWRlb1ZpZXdDb250YWluZXI7CisgICAgUElQU3RhdGUgX3BpcFN0YXRlOworICAgIEJPT0wg
X2RpZFJlcXVlc3RFeGl0aW5nUElQOworICAgIEJPT0wgX2V4aXRpbmdUb1N0YW5kYXJkRnVsbHNj
cmVlbjsKKyAgICBSZXRhaW5QdHI8TlNXaW5kb3c+IF9yZXR1cm5pbmdXaW5kb3c7CisgICAgTlNS
ZWN0IF9yZXR1cm5pbmdSZWN0OworfQorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhXZWJWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM6KFdlYkNvcmU6OldlYlZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZU1hYyopd2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjOworLSAodm9pZClpbnZhbGlk
YXRlRnVsbHNjcmVlblN0YXRlOworLSAodm9pZClpbnZhbGlkYXRlOworCisvLyBUcmFja2luZyB2
aWRlbyBwbGF5YmFjayBzdGF0ZQorQHByb3BlcnR5IChub25hdG9taWMpIE5TU2l6ZSB2aWRlb0Rp
bWVuc2lvbnM7CitAcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPWlzUGxheWluZykgQk9PTCBw
bGF5aW5nOworLSAodm9pZCl1cGRhdGVJc1BsYXlpbmc6KEJPT0wpaXNQbGF5aW5nIG5ld1BsYXli
YWNrUmF0ZTooZmxvYXQpcGxheWJhY2tSYXRlOworCisvLyBIYW5kbGluZyBQSVAgdHJhbnNpdGlv
bnMKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBkaWRSZXF1ZXN0RXhpdGlu
Z1BJUDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9aXNFeGl0aW5nVG9TdGFuZGFyZEZ1
bGxzY3JlZW4pIEJPT0wgZXhpdGluZ1RvU3RhbmRhcmRGdWxsc2NyZWVuOworCistICh2b2lkKXNl
dFVwUElQRm9yVmlkZW9WaWV3OihOU1ZpZXcgKil2aWRlb1ZpZXcgd2l0aEZyYW1lOihOU1JlY3Qp
ZnJhbWUgaW5XaW5kb3c6KE5TV2luZG93ICopd2luZG93OworLSAodm9pZCllbnRlclBJUDsKKy0g
KHZvaWQpZXhpdFBJUDsKKy0gKHZvaWQpZXhpdFBJUEFuaW1hdGluZ1RvUmVjdDooTlNSZWN0KXJl
Y3QgaW5XaW5kb3c6KE5TV2luZG93ICopd2luZG93OworCitAZW5kCisKK0BpbXBsZW1lbnRhdGlv
biBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWNPYmpDCisKK0BzeW50aGVzaXplIHBsYXlp
bmc9X3BsYXlpbmc7CitAc3ludGhlc2l6ZSB2aWRlb0RpbWVuc2lvbnM9X3ZpZGVvRGltZW5zaW9u
czsKK0BzeW50aGVzaXplIGRpZFJlcXVlc3RFeGl0aW5nUElQPV9kaWRSZXF1ZXN0RXhpdGluZ1BJ
UDsKK0BzeW50aGVzaXplIGV4aXRpbmdUb1N0YW5kYXJkRnVsbHNjcmVlbj1fZXhpdGluZ1RvU3Rh
bmRhcmRGdWxsc2NyZWVuOworCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhXZWJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VNYWM6KFdlYkNvcmU6OldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1h
Yyopd2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjCit7CisgICAgaWYgKCEoc2VsZiA9IFtz
dXBlciBpbml0XSkpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBfd2ViVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlTWFjID0gd2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjOworICAgIF9w
aXBTdGF0ZSA9IFBJUFN0YXRlOjpOb3RJblBJUDsKKworICAgIHJldHVybiBzZWxmOworfQorCist
ICh2b2lkKWludmFsaWRhdGVGdWxsc2NyZWVuU3RhdGUKK3sKKyAgICBbX3BpcFZpZXdDb250cm9s
bGVyIHNldERlbGVnYXRlOm5pbF07CisgICAgX3BpcFZpZXdDb250cm9sbGVyID0gbmlsOworICAg
IFtfdmlkZW9WaWV3Q29udGFpbmVyIHJlbW92ZUZyb21TdXBlcnZpZXddOworICAgIFtfdmlkZW9W
aWV3Q29udGFpbmVyIHNldFZpZGVvVmlld0NvbnRhaW5lckRlbGVnYXRlOm5pbF07CisgICAgX3Zp
ZGVvVmlld0NvbnRhaW5lciA9IG5pbDsKKyAgICBfdmlkZW9WaWV3Q29udGFpbmVyQ29udHJvbGxl
ciA9IG5pbDsKKyAgICBfcGlwU3RhdGUgPSBQSVBTdGF0ZTo6Tm90SW5QSVA7CisgICAgX2RpZFJl
cXVlc3RFeGl0aW5nUElQID0gTk87CisgICAgX2V4aXRpbmdUb1N0YW5kYXJkRnVsbHNjcmVlbiA9
IE5POworICAgIF9yZXR1cm5pbmdXaW5kb3cgPSBuaWw7CisgICAgX3JldHVybmluZ1JlY3QgPSBO
U1plcm9SZWN0OworfQorCistICh2b2lkKWludmFsaWRhdGUKK3sKKyAgICBbc2VsZiBpbnZhbGlk
YXRlRnVsbHNjcmVlblN0YXRlXTsKKyAgICBfd2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFj
ID0gbnVsbHB0cjsKKyAgICBfdmlkZW9EaW1lbnNpb25zID0gTlNaZXJvU2l6ZTsKK30KKworLSAo
dm9pZCl1cGRhdGVJc1BsYXlpbmc6KEJPT0wpaXNQbGF5aW5nIG5ld1BsYXliYWNrUmF0ZTooZmxv
YXQpcGxheWJhY2tSYXRlCit7CisgICAgX3BsYXlpbmcgPSBpc1BsYXlpbmcgJiYgcGxheWJhY2tS
YXRlOworCisgICAgaWYgKFtfcGlwVmlld0NvbnRyb2xsZXIgcmVzcG9uZHNUb1NlbGVjdG9yOkBz
ZWxlY3RvcihzZXRQbGF5aW5nOildKQorICAgICAgICBbX3BpcFZpZXdDb250cm9sbGVyIHNldFBs
YXlpbmc6X3BsYXlpbmddOworfQorCistICh2b2lkKXNldFZpZGVvRGltZW5zaW9uczooTlNTaXpl
KXZpZGVvRGltZW5zaW9ucworeworICAgIF92aWRlb0RpbWVuc2lvbnMgPSB2aWRlb0RpbWVuc2lv
bnM7CisKKyAgICBpZiAoW19waXBWaWV3Q29udHJvbGxlciByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKHNldEFzcGVjdFJhdGlvOildKQorICAgICAgICBbX3BpcFZpZXdDb250cm9sbGVyIHNl
dEFzcGVjdFJhdGlvOl92aWRlb0RpbWVuc2lvbnNdOworfQorCistICh2b2lkKXNldFVwUElQRm9y
VmlkZW9WaWV3OihOU1ZpZXcgKil2aWRlb1ZpZXcgd2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgaW5X
aW5kb3c6KE5TV2luZG93ICopd2luZG93Cit7CisgICAgQVNTRVJUKCFfcGlwVmlld0NvbnRyb2xs
ZXIpOworICAgIEFTU0VSVCghX3ZpZGVvVmlld0NvbnRhaW5lckNvbnRyb2xsZXIpOworICAgIEFT
U0VSVCghX3ZpZGVvVmlld0NvbnRhaW5lcik7CisKKyAgICBfcGlwVmlld0NvbnRyb2xsZXIgPSBh
ZG9wdE5TKFtbZ2V0UElQVmlld0NvbnRyb2xsZXJDbGFzcygpIGFsbG9jXSBpbml0XSk7CisgICAg
W19waXBWaWV3Q29udHJvbGxlciBzZXREZWxlZ2F0ZTpzZWxmXTsKKyAgICBpZiAoW19waXBWaWV3
Q29udHJvbGxlciByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNldFVzZXJDYW5SZXNpemU6
KV0pCisgICAgICAgIFtfcGlwVmlld0NvbnRyb2xsZXIgc2V0VXNlckNhblJlc2l6ZTpZRVNdOwor
ICAgIGlmIChbX3BpcFZpZXdDb250cm9sbGVyIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Io
c2V0UGxheWluZzopXSkKKyAgICAgICAgW19waXBWaWV3Q29udHJvbGxlciBzZXRQbGF5aW5nOl9w
bGF5aW5nXTsKKyAgICBbc2VsZiBzZXRWaWRlb0RpbWVuc2lvbnM6TlNFcXVhbFNpemVzKF92aWRl
b0RpbWVuc2lvbnMsIE5TWmVyb1NpemUpID8gZnJhbWUuc2l6ZSA6IF92aWRlb0RpbWVuc2lvbnNd
OworICAgIGlmIChfd2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjICYmIF93ZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VNYWMtPndlYlZpZGVvRnVsbHNjcmVlbk1vZGVsKCkpCisgICAgICAg
IF93ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMtPndlYlZpZGVvRnVsbHNjcmVlbk1vZGVs
KCktPnNldFZpZGVvTGF5ZXJHcmF2aXR5KFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsOjpWaWRlb0dy
YXZpdHlSZXNpemVBc3BlY3RGaWxsKTsKKworICAgIF92aWRlb1ZpZXdDb250YWluZXIgPSBhZG9w
dE5TKFtbV2ViVmlkZW9WaWV3Q29udGFpbmVyIGFsbG9jXSBpbml0V2l0aEZyYW1lOmZyYW1lXSk7
CisgICAgW192aWRlb1ZpZXdDb250YWluZXIgc2V0VmlkZW9WaWV3Q29udGFpbmVyRGVsZWdhdGU6
c2VsZl07CisgICAgW192aWRlb1ZpZXdDb250YWluZXIgYWRkU3Vidmlldzp2aWRlb1ZpZXddOwor
ICAgIHZpZGVvVmlldy5mcmFtZSA9IFtfdmlkZW9WaWV3Q29udGFpbmVyIGJvdW5kc107CisgICAg
dmlkZW9WaWV3LmF1dG9yZXNpemluZ01hc2sgPSBOU1ZpZXdXaWR0aFNpemFibGUgfCBOU1ZpZXdI
ZWlnaHRTaXphYmxlOworCisgICAgX3ZpZGVvVmlld0NvbnRhaW5lckNvbnRyb2xsZXIgPSBhZG9w
dE5TKFtbTlNWaWV3Q29udHJvbGxlciBhbGxvY10gaW5pdF0pOworICAgIFtfdmlkZW9WaWV3Q29u
dGFpbmVyQ29udHJvbGxlciBzZXRWaWV3Ol92aWRlb1ZpZXdDb250YWluZXIuZ2V0KCldOworICAg
IFt3aW5kb3cuY29udGVudFZpZXcgYWRkU3VidmlldzpfdmlkZW9WaWV3Q29udGFpbmVyLmdldCgp
IHBvc2l0aW9uZWQ6TlNXaW5kb3dBYm92ZSByZWxhdGl2ZVRvOm5pbF07Cit9CisKKy0gKHZvaWQp
ZW50ZXJQSVAKK3sKKyAgICBpZiAoX3BpcFN0YXRlID09IFBJUFN0YXRlOjpJblBJUCkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgW192aWRlb1ZpZXdDb250YWluZXJDb250cm9sbGVyIHZpZXddLmxh
eWVyLmJhY2tncm91bmRDb2xvciA9IENHQ29sb3JHZXRDb25zdGFudENvbG9yKGtDR0NvbG9yQmxh
Y2spOworICAgIFtfcGlwVmlld0NvbnRyb2xsZXIgcHJlc2VudFZpZXdDb250cm9sbGVyQXNQaWN0
dXJlSW5QaWN0dXJlOl92aWRlb1ZpZXdDb250YWluZXJDb250cm9sbGVyLmdldCgpXTsKKyAgICBf
cGlwU3RhdGUgPSBQSVBTdGF0ZTo6SW5QSVA7Cit9CisKKy0gKHZvaWQpZXhpdFBJUAoreworICAg
IGlmIChfcGlwU3RhdGUgIT0gUElQU3RhdGU6OkluUElQIHx8ICFfcGlwVmlld0NvbnRyb2xsZXIg
fHwgIV92aWRlb1ZpZXdDb250YWluZXJDb250cm9sbGVyKQorICAgICAgICByZXR1cm47CisKKyAg
ICBfZGlkUmVxdWVzdEV4aXRpbmdQSVAgPSBZRVM7CisgICAgW192aWRlb1ZpZXdDb250YWluZXJD
b250cm9sbGVyIHZpZXddLmxheWVyLmJhY2tncm91bmRDb2xvciA9IENHQ29sb3JHZXRDb25zdGFu
dENvbG9yKGtDR0NvbG9yQ2xlYXIpOworICAgIFtfcGlwVmlld0NvbnRyb2xsZXIgZGlzbWlzc1Zp
ZXdDb250cm9sbGVyOl92aWRlb1ZpZXdDb250YWluZXJDb250cm9sbGVyLmdldCgpXTsKKyAgICBf
cGlwU3RhdGUgPSBQSVBTdGF0ZTo6RXhpdGluZ1BJUDsKK30KKworLSAodm9pZClleGl0UElQQW5p
bWF0aW5nVG9SZWN0OihOU1JlY3QpcmVjdCBpbldpbmRvdzooTlNXaW5kb3cgKil3aW5kb3cKK3sK
KyAgICBfcmV0dXJuaW5nV2luZG93ID0gd2luZG93OworICAgIF9yZXR1cm5pbmdSZWN0ID0gcmVj
dDsKKyAgICAKKyAgICBbX3BpcFZpZXdDb250cm9sbGVyIHNldFJlcGxhY2VtZW50UmVjdDpyZWN0
XTsKKyAgICBbX3BpcFZpZXdDb250cm9sbGVyIHNldFJlcGxhY2VtZW50V2luZG93OndpbmRvd107
CisKKyAgICBbc2VsZiBleGl0UElQXTsKK30KKworLy8gV2ViVmlkZW9WaWV3Q29udGFpbmVyRGVs
ZWdhdGUKKworLSAodm9pZClib3VuZHNEaWRDaGFuZ2VGb3JWaWRlb1ZpZXdDb250YWluZXI6KFdl
YlZpZGVvVmlld0NvbnRhaW5lciAqKXZpZGVvVmlld0NvbnRhaW5lcgoreworICAgIGlmICghX3Zp
ZGVvVmlld0NvbnRhaW5lciB8fCAhX3BpcFZpZXdDb250cm9sbGVyKQorICAgICAgICByZXR1cm47
CisKKyAgICBBU1NFUlRfVU5VU0VEKHZpZGVvVmlld0NvbnRhaW5lciwgdmlkZW9WaWV3Q29udGFp
bmVyID09IF92aWRlb1ZpZXdDb250YWluZXIpOworCisgICAgaWYgKF93ZWJWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VNYWMgJiYgX3dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy0+d2ViVmlk
ZW9GdWxsc2NyZWVuTW9kZWwoKSkKKyAgICAgICAgX3dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZU1hYy0+d2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwoKS0+c2V0VmlkZW9MYXllckZyYW1lKFtfdmlk
ZW9WaWV3Q29udGFpbmVyIGJvdW5kc10pOworfQorCistICh2b2lkKXN1cGVydmlld0RpZENoYW5n
ZUZvclZpZGVvVmlld0NvbnRhaW5lcjooV2ViVmlkZW9WaWV3Q29udGFpbmVyICopdmlkZW9WaWV3
Q29udGFpbmVyCit7CisgICAgaWYgKCFfdmlkZW9WaWV3Q29udGFpbmVyIHx8ICFfcGlwVmlld0Nv
bnRyb2xsZXIpCisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VSVCh2aWRlb1ZpZXdDb250YWlu
ZXIgPT0gX3ZpZGVvVmlld0NvbnRhaW5lcik7CisKKyAgICBpZiAoIVt2aWRlb1ZpZXdDb250YWlu
ZXIgaXNEZXNjZW5kYW50T2Y6W19waXBWaWV3Q29udHJvbGxlciB2aWV3XV0pCisgICAgICAgIHJl
dHVybjsKKworICAgIC8vIE9uY2UgdGhlIHZpZXcgaXMgbW92ZWQgaW50byB0aGUgcGlwIHZpZXcs
IG1ha2Ugc3VyZSBpdCByZXNpemVzIHdpdGggdGhlIHBpcCB2aWV3LgorICAgIHZpZGVvVmlld0Nv
bnRhaW5lci5mcmFtZSA9IFt2aWRlb1ZpZXdDb250YWluZXIgc3VwZXJ2aWV3XS5ib3VuZHM7Cisg
ICAgdmlkZW9WaWV3Q29udGFpbmVyLmF1dG9yZXNpemluZ01hc2sgPSBOU1ZpZXdXaWR0aFNpemFi
bGUgfCBOU1ZpZXdIZWlnaHRTaXphYmxlOworfQorCisvLyBQSVBWaWV3Q29udHJvbGxlckRlbGVn
YXRlCisKKy0gKEJPT0wpcGlwU2hvdWxkQ2xvc2U6KFBJUFZpZXdDb250cm9sbGVyICopcGlwCit7
CisgICAgQVNTRVJUX1VOVVNFRChwaXAsIHBpcCA9PSBfcGlwVmlld0NvbnRyb2xsZXIpOworCisg
ICAgaWYgKCFfd2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjIHx8ICFfd2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlTWFjLT53ZWJWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcigpKQor
ICAgICAgICByZXR1cm4gWUVTOworCisgICAgX2RpZFJlcXVlc3RFeGl0aW5nUElQID0gWUVTOwor
ICAgIF93ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMtPndlYlZpZGVvRnVsbHNjcmVlbkNo
YW5nZU9ic2VydmVyKCktPmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpOworCisgICAgcmV0
dXJuIE5POworfQorCistICh2b2lkKXBpcERpZENsb3NlOihQSVBWaWV3Q29udHJvbGxlciAqKXBp
cAoreworICAgIEFTU0VSVF9VTlVTRUQocGlwLCBwaXAgPT0gX3BpcFZpZXdDb250cm9sbGVyKTsK
KworICAgIGlmIChfd2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjICYmIF93ZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VNYWMtPndlYlZpZGVvRnVsbHNjcmVlbk1vZGVsKCkgJiYgX3ZpZGVv
Vmlld0NvbnRhaW5lciAmJiBfcmV0dXJuaW5nV2luZG93ICYmICFOU0VxdWFsUmVjdHMoX3JldHVy
bmluZ1JlY3QsIE5TWmVyb1JlY3QpKSB7CisgICAgICAgIFtOU0FuaW1hdGlvbkNvbnRleHQgcnVu
QW5pbWF0aW9uR3JvdXA6XihOU0FuaW1hdGlvbkNvbnRleHQgKmNvbnRleHQpIHsKKyAgICAgICAg
ICAgIGNvbnRleHQuYWxsb3dzSW1wbGljaXRBbmltYXRpb24gPSBOTzsKKyAgICAgICAgICAgIFtf
dmlkZW9WaWV3Q29udGFpbmVyIHNldEZyYW1lOl9yZXR1cm5pbmdSZWN0XTsKKyAgICAgICAgICAg
IF93ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMtPndlYlZpZGVvRnVsbHNjcmVlbk1vZGVs
KCktPnNldFZpZGVvTGF5ZXJGcmFtZShbX3ZpZGVvVmlld0NvbnRhaW5lciBib3VuZHNdKTsKKyAg
ICAgICAgICAgIF93ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMtPndlYlZpZGVvRnVsbHNj
cmVlbk1vZGVsKCktPnNldFZpZGVvTGF5ZXJHcmF2aXR5KFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVs
OjpWaWRlb0dyYXZpdHlSZXNpemVBc3BlY3QpOworCisgICAgICAgICAgICBbW19yZXR1cm5pbmdX
aW5kb3cgY29udGVudFZpZXddIGFkZFN1YnZpZXc6X3ZpZGVvVmlld0NvbnRhaW5lci5nZXQoKSBw
b3NpdGlvbmVkOk5TV2luZG93QWJvdmUgcmVsYXRpdmVUbzpuaWxdOworICAgICAgICB9IGNvbXBs
ZXRpb25IYW5kbGVyOm5pbF07CisgICAgfQorCisgICAgaWYgKF93ZWJWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VNYWMpIHsKKyAgICAgICAgaWYgKCFzZWxmLmlzRXhpdGluZ1RvU3RhbmRhcmRGdWxs
c2NyZWVuKSB7CisgICAgICAgICAgICBpZiAoV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwqIHZpZGVv
RnVsbHNjcmVlbk1vZGVsID0gX3dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy0+d2ViVmlk
ZW9GdWxsc2NyZWVuTW9kZWwoKSkgeworICAgICAgICAgICAgICAgIHZpZGVvRnVsbHNjcmVlbk1v
ZGVsLT5yZXF1ZXN0RnVsbHNjcmVlbk1vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1
bGxzY3JlZW5Nb2RlTm9uZSk7CisgICAgICAgICAgICAgICAgdmlkZW9GdWxsc2NyZWVuTW9kZWwt
PnNldFZpZGVvTGF5ZXJHcmF2aXR5KFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsOjpWaWRlb0dyYXZp
dHlSZXNpemVBc3BlY3QpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgX3dl
YlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy0+Y2xlYXJNb2RlKEhUTUxNZWRpYUVsZW1lbnRF
bnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZVBpY3R1cmVJblBpY3R1cmUpOworCisgICAgICAgIGlm
IChXZWJWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlciogZnVsbHNjcmVlbkNoYW5nZU9ic2Vy
dmVyID0gX3dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy0+d2ViVmlkZW9GdWxsc2NyZWVu
Q2hhbmdlT2JzZXJ2ZXIoKSkKKyAgICAgICAgICAgIGZ1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci0+
ZGlkRXhpdEZ1bGxzY3JlZW4oKTsKKyAgICB9Cit9CisKKy0gKHZvaWQpcGlwQWN0aW9uUGxheToo
UElQVmlld0NvbnRyb2xsZXIgKilwaXAKK3sKKyAgICBBU1NFUlRfVU5VU0VEKHBpcCwgcGlwID09
IF9waXBWaWV3Q29udHJvbGxlcik7CisKKyAgICBpZiAoX3dlYlZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZU1hYyAmJiBfd2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLT53ZWJQbGF5YmFja1Nl
c3Npb25Nb2RlbCgpKQorICAgICAgICBfd2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLT53
ZWJQbGF5YmFja1Nlc3Npb25Nb2RlbCgpLT5wbGF5KCk7Cit9CisKKy0gKHZvaWQpcGlwQWN0aW9u
UGF1c2U6KFBJUFZpZXdDb250cm9sbGVyICopcGlwCit7CisgICAgQVNTRVJUX1VOVVNFRChwaXAs
IHBpcCA9PSBfcGlwVmlld0NvbnRyb2xsZXIpOworCisgICAgaWYgKF93ZWJWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VNYWMgJiYgX3dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy0+d2ViUGxh
eWJhY2tTZXNzaW9uTW9kZWwoKSkKKyAgICAgICAgX3dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZU1hYy0+d2ViUGxheWJhY2tTZXNzaW9uTW9kZWwoKS0+cGF1c2UoKTsKK30KKworLSAodm9pZClw
aXBBY3Rpb25TdG9wOihQSVBWaWV3Q29udHJvbGxlciAqKXBpcAoreworICAgIEFTU0VSVF9VTlVT
RUQocGlwLCBwaXAgPT0gX3BpcFZpZXdDb250cm9sbGVyKTsKKworICAgIGlmICghX3dlYlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZU1hYykKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKFdlYlBs
YXliYWNrU2Vzc2lvbk1vZGVsKiBwbGF5YmFja1Nlc3Npb25Nb2RlbCA9IF93ZWJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VNYWMtPndlYlBsYXliYWNrU2Vzc2lvbk1vZGVsKCkpCisgICAgICAgIHBs
YXliYWNrU2Vzc2lvbk1vZGVsLT5wYXVzZSgpOworCisgICAgLy8gRklYTUUgMjUwOTYxNzA6IFNo
b3VsZCBhbmltYXRlIG9ubHkgaWYgdGhlIHBhZ2Ugd2l0aCB0aGUgdmlkZW8gaXMgdW5vYnNjdXJl
ZC4gRm9yIG5vdywgYWx3YXlzIGNsb3NlIHdpdGhvdXQgYW5pbWF0aW9uLgorICAgIFtzZWxmIGV4
aXRQSVBdOworfQorCitAZW5kCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTA5LDEyICs0
MTEsNyBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6c2V0CiAKIHZvaWQg
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjOjpyYXRlQ2hhbmdlZChib29sIGlzUGxheWlu
ZywgZmxvYXQgcGxheWJhY2tSYXRlKQogewotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAg
ICAgW3ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU9iakMoKSB1cGRhdGVJc1BsYXlpbmc6aXNQbGF5
aW5nIG5ld1BsYXliYWNrUmF0ZTpwbGF5YmFja1JhdGVdOwotI2Vsc2UKLSAgICBVTlVTRURfUEFS
QU0oaXNQbGF5aW5nKTsKLSAgICBVTlVTRURfUEFSQU0ocGxheWJhY2tSYXRlKTsKLSNlbmRpZgog
fQogCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6c2V0U2Vla2FibGVSYW5n
ZXMoY29uc3QgVGltZVJhbmdlcyYgdGltZVJhbmdlcykKQEAgLTEzNyw1MyArNDM0LDE0NCBAQCB2
b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6ZW5zCiAgICAgbV9wbGF5YmFja1Nl
c3Npb25JbnRlcmZhY2UtPmVuc3VyZUNvbnRyb2xzTWFuYWdlcigpOwogfQogCi0jaWYgIVVTRShB
UFBMRV9JTlRFUk5BTF9TREspCi12b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6
c2V0dXBGdWxsc2NyZWVuKE5TVmlldyYsIGNvbnN0IEludFJlY3QmLCBOU1dpbmRvdyAqLCBIVE1M
TWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUsIGJvb2wpCitXZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VNYWNPYmpDICpXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM6
OnZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU9iakMoKQogeworICAgIGlmICghbV93ZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VPYmpDKQorICAgICAgICBtX3dlYlZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZU9iakMgPSBhZG9wdE5TKFtbV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjT2JqQyBh
bGxvY10gaW5pdFdpdGhXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM6dGhpc10pOworCisg
ICAgcmV0dXJuIG1fd2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlT2JqQy5nZXQoKTsKK30KKwor
dm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM6OnNldHVwRnVsbHNjcmVlbihOU1Zp
ZXcmIGxheWVySG9zdGVkVmlldywgY29uc3QgSW50UmVjdCYgaW5pdGlhbFJlY3QsIE5TV2luZG93
ICpwYXJlbnRXaW5kb3csIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9k
ZSBtb2RlLCBib29sIGFsbG93c1BpY3R1cmVJblBpY3R1cmVQbGF5YmFjaykKK3sKKyAgICBMT0co
RnVsbHNjcmVlbiwgIldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6c2V0dXBGdWxsc2Ny
ZWVuKCVwKSwgaW5pdGlhbFJlY3Q6eyVkLCAlZCwgJWQsICVkfSwgcGFyZW50V2luZG93OiVwLCBt
b2RlOiVkIiwgdGhpcywgaW5pdGlhbFJlY3QueCgpLCBpbml0aWFsUmVjdC55KCksIGluaXRpYWxS
ZWN0LndpZHRoKCksIGluaXRpYWxSZWN0LmhlaWdodCgpLCBwYXJlbnRXaW5kb3csIG1vZGUpOwor
CisgICAgVU5VU0VEX1BBUkFNKGFsbG93c1BpY3R1cmVJblBpY3R1cmVQbGF5YmFjayk7CisgICAg
QVNTRVJUKG1vZGUgPT0gSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2Rl
UGljdHVyZUluUGljdHVyZSk7CisKKyAgICBtX21vZGUgPSBtb2RlOworCisgICAgW3ZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZU9iakMoKSBzZXRVcFBJUEZvclZpZGVvVmlldzombGF5ZXJIb3N0ZWRW
aWV3IHdpdGhGcmFtZTooTlNSZWN0KWluaXRpYWxSZWN0IGluV2luZG93OnBhcmVudFdpbmRvd107
CisKKyAgICBSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjPiBwcm90ZWN0ZWRU
aGlzKHRoaXMpOworICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCks
IFtwcm90ZWN0ZWRUaGlzLCB0aGlzXSB7CisgICAgICAgIGlmIChtX2Z1bGxzY3JlZW5DaGFuZ2VP
YnNlcnZlcikKKyAgICAgICAgICAgIG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLT5kaWRTZXR1
cEZ1bGxzY3JlZW4oKTsKKyAgICB9KTsKIH0KIAogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VNYWM6OmVudGVyRnVsbHNjcmVlbigpCiB7CisgICAgTE9HKEZ1bGxzY3JlZW4sICJXZWJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM6OmVudGVyRnVsbHNjcmVlbiglcCkiLCB0aGlzKTsK
KworICAgIGlmIChtb2RlKCkgPT0gSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlUGljdHVyZUluUGljdHVyZSkgeworICAgICAgICBbbV93ZWJWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VPYmpDIGVudGVyUElQXTsKKworICAgICAgICBpZiAobV9mdWxsc2NyZWVuQ2hhbmdl
T2JzZXJ2ZXIpCisgICAgICAgICAgICBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci0+ZGlkRW50
ZXJGdWxsc2NyZWVuKCk7CisgICAgfSBlbHNlCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogfQogCi12b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6ZXhpdEZ1bGxzY3Jl
ZW4oY29uc3QgSW50UmVjdCYsIE5TV2luZG93ICopCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZU1hYzo6ZXhpdEZ1bGxzY3JlZW4oY29uc3QgSW50UmVjdCYgZmluYWxSZWN0LCBOU1dp
bmRvdyAqcGFyZW50V2luZG93KQogeworICAgIExPRyhGdWxsc2NyZWVuLCAiV2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlTWFjOjpleGl0RnVsbHNjcmVlbiglcCksIGZpbmFsUmVjdDp7JWQsICVk
LCAlZCwgJWR9LCBwYXJlbnRXaW5kb3c6JXAiLCB0aGlzLCBmaW5hbFJlY3QueCgpLCBmaW5hbFJl
Y3QueSgpLCBmaW5hbFJlY3Qud2lkdGgoKSwgZmluYWxSZWN0LmhlaWdodCgpLCBwYXJlbnRXaW5k
b3cpOworCisgICAgaWYgKFttX3dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU9iakMgZGlkUmVx
dWVzdEV4aXRpbmdQSVBdKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoZmluYWxSZWN0Lmlz
RW1wdHkoKSkKKyAgICAgICAgW21fd2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlT2JqQyBleGl0
UElQXTsKKyAgICBlbHNlCisgICAgICAgIFttX3dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU9i
akMgZXhpdFBJUEFuaW1hdGluZ1RvUmVjdDpmaW5hbFJlY3QgaW5XaW5kb3c6cGFyZW50V2luZG93
XTsKIH0KIAotdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM6OmV4aXRGdWxsc2Ny
ZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVs
bHNjcmVlbk1vZGUpCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6ZXhpdEZ1
bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6Vmlk
ZW9GdWxsc2NyZWVuTW9kZSBtb2RlKQogeworICAgIExPRyhGdWxsc2NyZWVuLCAiV2ViVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlTWFjOjpleGl0RnVsbHNjcmVlbldpdGhvdXRBbmltYXRpb25Ub01v
ZGUoJXApLCBtb2RlOiVkIiwgdGhpcywgbW9kZSk7CisKKyAgICBpZiAoW21fd2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlT2JqQyBkaWRSZXF1ZXN0RXhpdGluZ1BJUF0pCisgICAgICAgIHJldHVy
bjsKKworICAgIFttX3dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU9iakMgc2V0RXhpdGluZ1Rv
U3RhbmRhcmRGdWxsc2NyZWVuOm1vZGUgPT0gSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1
bGxzY3JlZW5Nb2RlU3RhbmRhcmRdOworICAgIFttX3dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZU9iakMgZXhpdFBJUF07CiB9CiAKIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFj
OjpjbGVhbnVwRnVsbHNjcmVlbigpCiB7CisgICAgTE9HKEZ1bGxzY3JlZW4sICJXZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VNYWM6OmNsZWFudXBGdWxsc2NyZWVuKCVwKSIsIHRoaXMpOworCisg
ICAgW21fd2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlT2JqQyBleGl0UElQXTsKKyAgICBbbV93
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VPYmpDIGludmFsaWRhdGVGdWxsc2NyZWVuU3RhdGVd
OworCisgICAgaWYgKG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKQorICAgICAgICBtX2Z1bGxz
Y3JlZW5DaGFuZ2VPYnNlcnZlci0+ZGlkQ2xlYW51cEZ1bGxzY3JlZW4oKTsKIH0KIAogdm9pZCBX
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM6OmludmFsaWRhdGUoKQogeworICAgIExPRyhG
dWxsc2NyZWVuLCAiV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjOjppbnZhbGlkYXRlKCVw
KSIsIHRoaXMpOworCisgICAgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlbCA9IG5pbDsKKyAgICBtX2Z1
bGxzY3JlZW5DaGFuZ2VPYnNlcnZlciA9IG5pbDsKKworICAgIGNsZWFudXBGdWxsc2NyZWVuKCk7
CisKKyAgICBbbV93ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VPYmpDIGludmFsaWRhdGVdOwor
ICAgIG1fd2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlT2JqQyA9IG5pbDsKIH0KIAotdm9pZCBX
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZShi
b29sLCBjb25zdCBJbnRSZWN0JiwgTlNXaW5kb3cgKikKKyNpZiAhTE9HX0RJU0FCTEVECitzdGF0
aWMgY29uc3QgY2hhciogYm9vbFN0cmluZyhib29sIHZhbCkKIHsKKyAgICByZXR1cm4gdmFsID8g
InRydWUiIDogImZhbHNlIjsKIH0KKyNlbmRpZgogCi12b2lkIFdlYlZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZU1hYzo6c2V0VmlkZW9EaW1lbnNpb25zKGJvb2wsIGZsb2F0LCBmbG9hdCkKK3ZvaWQg
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjOjpwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUo
Ym9vbCB2aXNpYmxlLCBjb25zdCBJbnRSZWN0JiBpbmxpbmVSZWN0LCBOU1dpbmRvdyAqcGFyZW50
V2luZG93KQogeworICAgIExPRyhGdWxsc2NyZWVuLCAiV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlTWFjOjpwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUoJXApLCB2aXNpYmxlOiVzLCBpbmxpbmVS
ZWN0OnslZCwgJWQsICVkLCAlZH0sIHBhcmVudFdpbmRvdzolcCIsIHRoaXMsIGJvb2xTdHJpbmco
dmlzaWJsZSksIGlubGluZVJlY3QueCgpLCBpbmxpbmVSZWN0LnkoKSwgaW5saW5lUmVjdC53aWR0
aCgpLCBpbmxpbmVSZWN0LmhlaWdodCgpLCBwYXJlbnRXaW5kb3cpOworCisgICAgaWYgKCF2aXNp
YmxlKSB7CisgICAgICAgIFttX3dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU9iakMgZXhpdFBJ
UF07CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBBU1NFUlQocGFyZW50V2luZG93KTsK
KyAgICBbbV93ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VPYmpDIGV4aXRQSVBBbmltYXRpbmdU
b1JlY3Q6KE5TUmVjdClpbmxpbmVSZWN0IGluV2luZG93OnBhcmVudFdpbmRvd107CiB9CiAKLWJv
b2wgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjOjppc1BsYXlpbmdWaWRlb0luRW5oYW5j
ZWRGdWxsc2NyZWVuKCkgY29uc3QKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFj
OjpzZXRFeHRlcm5hbFBsYXliYWNrKGJvb2wgZW5hYmxlZCwgRXh0ZXJuYWxQbGF5YmFja1Rhcmdl
dFR5cGUsIFN0cmluZykKIHsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgTE9HKEZ1bGxzY3JlZW4s
ICJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM6OnNldEV4dGVybmFsUGxheWJhY2soJXAp
LCBlbmFibGVkOiVzIiwgdGhpcywgYm9vbFN0cmluZyhlbmFibGVkKSk7CisKKyAgICBpZiAoZW5h
YmxlZCAmJiBtX21vZGUgPT0gSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5N
b2RlUGljdHVyZUluUGljdHVyZSkKKyAgICAgICAgZXhpdEZ1bGxzY3JlZW4oSW50UmVjdCgpLCBu
aWwpOwogfQogCi12b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6c2V0RXh0ZXJu
YWxQbGF5YmFjayhib29sLCBFeHRlcm5hbFBsYXliYWNrVGFyZ2V0VHlwZSwgU3RyaW5nKQordm9p
ZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM6OnNldFZpZGVvRGltZW5zaW9ucyhib29s
IGhhc1ZpZGVvLCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KQogeworICAgIExPRyhGdWxsc2Ny
ZWVuLCAiV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjOjpzZXRWaWRlb0RpbWVuc2lvbnMo
JXApLCBoYXNWaWRlbzolcywgd2lkdGg6JS4wZiwgaGVpZ2h0OiUuMGYiLCB0aGlzLCBib29sU3Ry
aW5nKGhhc1ZpZGVvKSwgd2lkdGgsIGhlaWdodCk7CisKKyAgICBpZiAoIWhhc1ZpZGVvKSB7Cisg
ICAgICAgIGV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZShIVE1MTWVkaWFFbGVt
ZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVOb25lKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIC8vIFdpZHRoIGFuZCBoZWlnaHQgY2FuIGJlIHplcm8gd2hlbiB3ZSBhcmUgdHJh
bnNpdGlvbmluZyBmcm9tIG9uZSB2aWRlbyB0byBhbm90aGVyLiBJZ25vcmUgemVybyB2YWx1ZXMu
CisgICAgaWYgKHdpZHRoICYmIGhlaWdodCkKKyAgICAgICAgW21fd2ViVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlT2JqQyBzZXRWaWRlb0RpbWVuc2lvbnM6TlNNYWtlU2l6ZSh3aWR0aCwgaGVpZ2h0
KV07Cit9CisKK2Jvb2wgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjOjppc1BsYXlpbmdW
aWRlb0luRW5oYW5jZWRGdWxsc2NyZWVuKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaGFzTW9kZShX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJl
SW5QaWN0dXJlKSAmJiBbbV93ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VPYmpDIGlzUGxheWlu
Z107CiB9CiAKIGJvb2wgc3VwcG9ydHNQaWN0dXJlSW5QaWN0dXJlKCkKIHsKLSAgICByZXR1cm4g
ZmFsc2U7CisgICAgcmV0dXJuIFBJUExpYnJhcnkoKSAmJiBnZXRQSVBWaWV3Q29udHJvbGxlckNs
YXNzKCk7CiB9Ci0jZW5kaWYKIAogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9z
cGkvbWFjL1BJUFNQSS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Nw
aS9tYWMvUElQU1BJLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
c3BpL21hYy9QSVBTUEkuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDYyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDEyMDAKKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW1wb3J0IDxQSVAv
UElQVmlld0NvbnRyb2xsZXJQcml2YXRlLmg+CisjZWxzZQorCitOU19BU1NVTUVfTk9OTlVMTF9C
RUdJTgorCitAcHJvdG9jb2wgUElQVmlld0NvbnRyb2xsZXJEZWxlZ2F0ZTsKKworQGludGVyZmFj
ZSBQSVBWaWV3Q29udHJvbGxlciA6IE5TVmlld0NvbnRyb2xsZXIKKworQHByb3BlcnR5IChub25h
dG9taWMsIHdlYWssIG51bGxhYmxlKSBpZDxQSVBWaWV3Q29udHJvbGxlckRlbGVnYXRlPiBkZWxl
Z2F0ZTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCB3ZWFrLCBudWxsYWJsZSkgTlNXaW5kb3cgKnJl
cGxhY2VtZW50V2luZG93OworQHByb3BlcnR5IChub25hdG9taWMpIE5TUmVjdCByZXBsYWNlbWVu
dFJlY3Q7CitAcHJvcGVydHkgKG5vbmF0b21pYykgYm9vbCBwbGF5aW5nOworQHByb3BlcnR5IChu
b25hdG9taWMpIGJvb2wgdXNlckNhblJlc2l6ZTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBOU1Np
emUgYXNwZWN0UmF0aW87CisKKy0gKHZvaWQpcHJlc2VudFZpZXdDb250cm9sbGVyQXNQaWN0dXJl
SW5QaWN0dXJlOihOU1ZpZXdDb250cm9sbGVyICopdmlld0NvbnRyb2xsZXI7CisKK0BlbmQKKwor
QHByb3RvY29sIFBJUFZpZXdDb250cm9sbGVyRGVsZWdhdGUgPE5TT2JqZWN0PgorQG9wdGlvbmFs
CistIChCT09MKXBpcFNob3VsZENsb3NlOihQSVBWaWV3Q29udHJvbGxlciAqKXBpcDsKKy0gKHZv
aWQpcGlwRGlkQ2xvc2U6KFBJUFZpZXdDb250cm9sbGVyICopcGlwOworLSAodm9pZClwaXBBY3Rp
b25QbGF5OihQSVBWaWV3Q29udHJvbGxlciAqKXBpcDsKKy0gKHZvaWQpcGlwQWN0aW9uUGF1c2U6
KFBJUFZpZXdDb250cm9sbGVyICopcGlwOworLSAodm9pZClwaXBBY3Rpb25TdG9wOihQSVBWaWV3
Q29udHJvbGxlciAqKXBpcDsKK0BlbmQKKworTlNfQVNTVU1FX05PTk5VTExfRU5ECisKKyNlbmRp
ZgorCisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMTIwMApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RS
ZXN1bHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0
UmVzdWx0LmNwcAkocmV2aXNpb24gMjAyMjcwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0hpdFRlc3RSZXN1bHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03ODYsMjIgKzc4Niw0MCBAQCBF
bGVtZW50KiBIaXRUZXN0UmVzdWx0Ojppbm5lck5vblNoYXJlZEVsCiAgICAgcmV0dXJuIG5vZGUt
PnBhcmVudEVsZW1lbnQoKTsKIH0KIAotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0jaW5j
bHVkZSA8V2ViS2l0QWRkaXRpb25zL0hpdFRlc3RSZXN1bHRBZGRpdGlvbnMuY3BwPgotI2Vsc2UK
IGJvb2wgSGl0VGVzdFJlc3VsdDo6bWVkaWFTdXBwb3J0c0VuaGFuY2VkRnVsbHNjcmVlbigpIGNv
bnN0CiB7CisjaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU8pICYmIEVOQUJMRShWSURF
T19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsdChtZWRp
YUVsZW1lbnQoKSk7CisgICAgcmV0dXJuIGlzPEhUTUxWaWRlb0VsZW1lbnQ+KG1lZGlhRWx0KSAm
JiBtZWRpYUVsdC0+c3VwcG9ydHNGdWxsc2NyZWVuKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6Vmlk
ZW9GdWxsc2NyZWVuTW9kZVBpY3R1cmVJblBpY3R1cmUpOworI2Vsc2UKICAgICByZXR1cm4gZmFs
c2U7CisjZW5kaWYKIH0KIAogYm9vbCBIaXRUZXN0UmVzdWx0OjptZWRpYUlzSW5FbmhhbmNlZEZ1
bGxzY3JlZW4oKSBjb25zdAogeworI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPKSAm
JiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisgICAgSFRNTE1lZGlhRWxlbWVudCog
bWVkaWFFbHQobWVkaWFFbGVtZW50KCkpOworICAgIHJldHVybiBpczxIVE1MVmlkZW9FbGVtZW50
PihtZWRpYUVsdCkgJiYgbWVkaWFFbHQtPmZ1bGxzY3JlZW5Nb2RlKCkgPT0gSFRNTE1lZGlhRWxl
bWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlUGljdHVyZUluUGljdHVyZTsKKyNlbHNlCiAg
ICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCiB9CiAKIHZvaWQgSGl0VGVzdFJlc3VsdDo6dG9nZ2xl
RW5oYW5jZWRGdWxsc2NyZWVuRm9yVmlkZW8oKSBjb25zdAogewotfQorI2lmIFBMQVRGT1JNKE1B
QykgJiYgRU5BQkxFKFZJREVPKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisg
ICAgSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50KHRoaXMtPm1lZGlhRWxlbWVudCgpKTsK
KyAgICBpZiAoIWlzPEhUTUxWaWRlb0VsZW1lbnQ+KG1lZGlhRWxlbWVudCkgfHwgIW1lZGlhRWxl
bWVudC0+c3VwcG9ydHNGdWxsc2NyZWVuKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxs
c2NyZWVuTW9kZVBpY3R1cmVJblBpY3R1cmUpKQorICAgICAgICByZXR1cm47CisKKyAgICBIVE1M
VmlkZW9FbGVtZW50JiB2aWRlb0VsZW1lbnQgPSBkb3duY2FzdDxIVE1MVmlkZW9FbGVtZW50Pigq
bWVkaWFFbGVtZW50KTsKKyAgICBVc2VyR2VzdHVyZUluZGljYXRvciBpbmRpY2F0b3IoRGVmaW5p
dGVseVByb2Nlc3NpbmdVc2VyR2VzdHVyZSwgJm1lZGlhRWxlbWVudC0+ZG9jdW1lbnQoKSk7Cisg
ICAgaWYgKHZpZGVvRWxlbWVudC5mdWxsc2NyZWVuTW9kZSgpID09IEhUTUxNZWRpYUVsZW1lbnRF
bnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZVBpY3R1cmVJblBpY3R1cmUpCisgICAgICAgIHZpZGVv
RWxlbWVudC5leGl0RnVsbHNjcmVlbigpOworICAgIGVsc2UKKyAgICAgICAgdmlkZW9FbGVtZW50
LmVudGVyRnVsbHNjcmVlbihIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1v
ZGVQaWN0dXJlSW5QaWN0dXJlKTsKICNlbmRpZgorfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCShyZXZp
c2lvbiAyMDIyNzApCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTIzNiwxMSArMjM2LDYgQEAgU3RyaW5nIFJlbmRlclRoZW1l
TWFjOjptZWRpYUNvbnRyb2xzU3R5bAogICAgIGlmIChtX21lZGlhQ29udHJvbHNTdHlsZVNoZWV0
LmlzRW1wdHkoKSkgewogICAgICAgICBTdHJpbmdCdWlsZGVyIHN0eWxlU2hlZXRCdWlsZGVyOwog
ICAgICAgICBzdHlsZVNoZWV0QnVpbGRlci5hcHBlbmQoW05TU3RyaW5nIHN0cmluZ1dpdGhDb250
ZW50c09mRmlsZTpbW05TQnVuZGxlIGJ1bmRsZUZvckNsYXNzOltXZWJDb3JlUmVuZGVyVGhlbWVC
dW5kbGUgY2xhc3NdXSBwYXRoRm9yUmVzb3VyY2U6QCJtZWRpYUNvbnRyb2xzQXBwbGUiIG9mVHlw
ZTpAImNzcyJdIGVuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nIGVycm9yOm5pbF0pOwotCi0j
aWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLSNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9SZW5k
ZXJUaGVtZU1hY01lZGlhQ29udHJvbHNTdHlsZVNoZWV0QWRkaXRpb25zLm1tPgotI2VuZGlmCi0K
ICAgICAgICAgbV9tZWRpYUNvbnRyb2xzU3R5bGVTaGVldCA9IHN0eWxlU2hlZXRCdWlsZGVyLnRv
U3RyaW5nKCk7CiAgICAgfQogICAgIHJldHVybiBtX21lZGlhQ29udHJvbHNTdHlsZVNoZWV0OwpA
QCAtMjU2LDExICsyNTEsNiBAQCBTdHJpbmcgUmVuZGVyVGhlbWVNYWM6Om1lZGlhQ29udHJvbHNT
Y3JpCiAgICAgICAgIFN0cmluZ0J1aWxkZXIgc2NyaXB0QnVpbGRlcjsKICAgICAgICAgc2NyaXB0
QnVpbGRlci5hcHBlbmQoW05TU3RyaW5nIHN0cmluZ1dpdGhDb250ZW50c09mRmlsZTpbW05TQnVu
ZGxlIGJ1bmRsZUZvckNsYXNzOltXZWJDb3JlUmVuZGVyVGhlbWVCdW5kbGUgY2xhc3NdXSBwYXRo
Rm9yUmVzb3VyY2U6QCJtZWRpYUNvbnRyb2xzTG9jYWxpemVkU3RyaW5ncyIgb2ZUeXBlOkAianMi
XSBlbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZyBlcnJvcjpuaWxdKTsKICAgICAgICAgc2Ny
aXB0QnVpbGRlci5hcHBlbmQoW05TU3RyaW5nIHN0cmluZ1dpdGhDb250ZW50c09mRmlsZTpbW05T
QnVuZGxlIGJ1bmRsZUZvckNsYXNzOltXZWJDb3JlUmVuZGVyVGhlbWVCdW5kbGUgY2xhc3NdXSBw
YXRoRm9yUmVzb3VyY2U6QCJtZWRpYUNvbnRyb2xzQXBwbGUiIG9mVHlwZTpAImpzIl0gZW5jb2Rp
bmc6TlNVVEY4U3RyaW5nRW5jb2RpbmcgZXJyb3I6bmlsXSk7Ci0KLSNpZiBVU0UoQVBQTEVfSU5U
RVJOQUxfU0RLKQotI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1JlbmRlclRoZW1lTWFjTWVkaWFD
b250cm9sc1NjcmlwdEFkZGl0aW9ucy5tbT4KLSNlbmRpZgotICAgICAgICAKICAgICAgICAgbV9t
ZWRpYUNvbnRyb2xzU2NyaXB0ID0gc2NyaXB0QnVpbGRlci50b1N0cmluZygpOwogICAgIH0KICAg
ICByZXR1cm4gbV9tZWRpYUNvbnRyb2xzU2NyaXB0OwpJbmRleDogU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24g
MjAyMjcxKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMjQgQEAKKzIwMTYtMDYtMjAgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4K
KworICAgICAgICBJbmxpbmVkIHNvbWUgcGljdHVyZS1pbi1waWN0dXJlIGNvZGUuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg5NzcKKworICAgICAg
ICBUaGlzIGNvZGUgd2FzIHdyaXR0ZW4gcHJpbWFyaWx5IGJ5IEFkYSBDaGFuLCBhbmQgb3JpZ2lu
YWxseSByZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLAorICAgICAgICBBbmRlcnMgQ2FybHNz
b24sIENvbnJhZCBTaHVsdHosIERhbiBCZXJuc3RlaW4sIEVyaWMgQ2FybHNvbiwgSmVyIE5vYmxl
LCBKZXJlbXkgSm9uZXMsCisgICAgICAgIEpvbiBMZWUsIFJlbXkgRGVtYXJlc3QsIGFuZCBaYWNo
IExpLgorCisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmVEZWZhdWx0c0FkZGl0
aW9ucy5jcHA6CisgICAgICAgICAgRGVmaW5lIGFuZCB1c2UgREVGQVVMVF9BTExPV1NfUElDVFVS
RV9JTl9QSUNUVVJFX01FRElBX1BMQVlCQUNLLgorCisgICAgICAgICogU2hhcmVkL1dlYlByZWZl
cmVuY2VzU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0cyk6IFJlbW92ZWQgaW5j
bHVkZSBvZiBXZWJQcmVmZXJlbmNlc1N0b3JlRGVmYXVsdHNBZGRpdGlvbnMuY3BwIG5vdyB0aGF0
IHRoZQorICAgICAgICAgIGRlZmF1bHQgaXMgZGVmaW5lZCBjb3JyZWN0bHkgaW4gV2ViUHJlZmVy
ZW5jZXNTdG9yZURlZmF1bHRzQWRkaXRpb25zLmNwcC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XS1ByZWZlcmVuY2VzLmNwcDogSW5saW5lZCBXS1ByZWZlcmVuY2VzQWRkaXRpb25zLmNw
cC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaDog
RGl0dG8uCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXIubW06IElubGluZWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclN1cHBvcnRzVmlkZW9G
dWxsc2NyZWVuTWFjLm1tLgorCiAyMDE2LTA2LTIwICBDb21taXQgUXVldWUgIDxjb21taXQtcXVl
dWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjAyMjQz
LgpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZp
bml0aW9ucy5oCShyZXZpc2lvbiAyMDIyNzApCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
UHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC02Myw2ICs2Myw3IEBA
CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPUykKKyNkZWZpbmUgREVGQVVMVF9BTExPV1NfUElD
VFVSRV9JTl9QSUNUVVJFX01FRElBX1BMQVlCQUNLIHRydWUKICNkZWZpbmUgREVGQVVMVF9CQUNL
U1BBQ0VfS0VZX05BVklHQVRJT05fRU5BQkxFRCBmYWxzZQogI2RlZmluZSBERUZBVUxUX0ZSQU1F
X0ZMQVRURU5JTkdfRU5BQkxFRCB0cnVlCiAjZGVmaW5lIERFRkFVTFRfU0hPVUxEX1BSSU5UX0JB
Q0tHUk9VTkRTIHRydWUKQEAgLTc5LDYgKzgwLDcgQEAKICNkZWZpbmUgREVGQVVMVF9URU1QT1JB
UllfVElMRV9DT0hPUlRfUkVURU5USU9OX0VOQUJMRUQgZmFsc2UKICNkZWZpbmUgREVGQVVMVF9S
RVFVSVJFU19VU0VSX0dFU1RVUkVfRk9SX0FVRElPX1BMQVlCQUNLIHRydWUKICNlbHNlCisjZGVm
aW5lIERFRkFVTFRfQUxMT1dTX1BJQ1RVUkVfSU5fUElDVFVSRV9NRURJQV9QTEFZQkFDSyBmYWxz
ZQogI2RlZmluZSBERUZBVUxUX0JBQ0tTUEFDRV9LRVlfTkFWSUdBVElPTl9FTkFCTEVEIHRydWUK
ICNkZWZpbmUgREVGQVVMVF9GUkFNRV9GTEFUVEVOSU5HX0VOQUJMRUQgZmFsc2UKICNkZWZpbmUg
REVGQVVMVF9TSE9VTERfUFJJTlRfQkFDS0dST1VORFMgZmFsc2UKQEAgLTE2MSw3ICsxNjMsNyBA
QAogICAgIG1hY3JvKElubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmli
dXRlLCBpbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGluZUF0dHJpYnV0ZSwgQm9v
bCwgYm9vbCwgREVGQVVMVF9JTkxJTkVfTUVESUFfUExBWUJBQ0tfUkVRVUlSRVNfUExBWVNfSU5M
SU5FX0FUVFJJQlVURSwgIiIsICIiKSBcCiAgICAgbWFjcm8oSW52aXNpYmxlQXV0b3BsYXlOb3RQ
ZXJtaXR0ZWQsIGludmlzaWJsZUF1dG9wbGF5Tm90UGVybWl0dGVkLCBCb29sLCBib29sLCBERUZB
VUxUX0lOVklTSUJMRV9BVVRPUExBWV9OT1RfUEVSTUlUVEVELCAiIiwgIiIpIFwKICAgICBtYWNy
byhNZWRpYURhdGFMb2Fkc0F1dG9tYXRpY2FsbHksIG1lZGlhRGF0YUxvYWRzQXV0b21hdGljYWxs
eSwgQm9vbCwgYm9vbCwgREVGQVVMVF9NRURJQV9EQVRBX0xPQURTX0FVVE9NQVRJQ0FMTFksICIi
LCAiIikgXAotICAgIG1hY3JvKEFsbG93c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrLCBh
bGxvd3NQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjaywgQm9vbCwgYm9vbCwgdHJ1ZSwgIiIs
ICIiKSBcCisgICAgbWFjcm8oQWxsb3dzUGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2ssIGFs
bG93c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrLCBCb29sLCBib29sLCBERUZBVUxUX0FM
TE9XU19QSUNUVVJFX0lOX1BJQ1RVUkVfTUVESUFfUExBWUJBQ0ssICIiLCAiIikgXAogICAgIG1h
Y3JvKEFsbG93c0FpclBsYXlGb3JNZWRpYVBsYXliYWNrLCBhbGxvd3NBaXJQbGF5Rm9yTWVkaWFQ
bGF5YmFjaywgQm9vbCwgYm9vbCwgdHJ1ZSwgIiIsICIiKSBcCiAgICAgbWFjcm8oTWVkaWFDb250
cm9sc1NjYWxlV2l0aFBhZ2Vab29tLCBtZWRpYUNvbnRyb2xzU2NhbGVXaXRoUGFnZVpvb20sIEJv
b2wsIGJvb2wsIERFRkFVTFRfTUVESUFfQ09OVFJPTFNfU0NBTEVfV0lUSF9QQUdFX1pPT00sICIi
LCAiIikgXAogICAgIG1hY3JvKEluc3BlY3RvclN0YXJ0c0F0dGFjaGVkLCBpbnNwZWN0b3JTdGFy
dHNBdHRhY2hlZCwgQm9vbCwgYm9vbCwgdHJ1ZSwgIiIsICIiKSBcCkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuY3BwCShyZXZpc2lvbiAyMDIyNzAp
CisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTE2NSw5ICsxNjUsNiBAQCBzdGF0aWMgV2ViUHJlZmVyZW5jZXNTdG9yZTo6
VmFsdWVNYXAmIGRlCiAgICAgICAgIEZPUl9FQUNIX1dFQktJVF9ERUJVR19QUkVGRVJFTkNFKERF
RklORV9ERUZBVUxUUykKICAgICAgICAgRk9SX0VBQ0hfV0VCS0lUX0VYUEVSSU1FTlRBTF9GRUFU
VVJFX1BSRUZFUkVOQ0UoREVGSU5FX0RFRkFVTFRTKQogI3VuZGVmIERFRklORV9ERUZBVUxUUwot
I2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0jaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL1dl
YlByZWZlcmVuY2VzU3RvcmVEZWZhdWx0c0FkZGl0aW9ucy5jcHA+Ci0jZW5kaWYKICAgICB9CiAK
ICAgICByZXR1cm4gZGVmYXVsdHM7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tQcmVmZXJlbmNlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCShyZXZpc2lvbiAyMDIyNzApCisrKyBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM1LDEwICszNSw2IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKLSNpZiBVU0Uo
QVBQTEVfSU5URVJOQUxfU0RLKQotI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9XS1ByZWZlcmVu
Y2VzQWRkaXRpb25zLmNwcD4KLSNlbmRpZgotCiBXS1R5cGVJRCBXS1ByZWZlcmVuY2VzR2V0VHlw
ZUlEKCkKIHsKICAgICByZXR1cm4gdG9BUEkoV2ViUHJlZmVyZW5jZXM6OkFQSVR5cGUpOwpAQCAt
MTUyNSwzICsxNTIxLDEzIEBAIGJvb2wgV0tQcmVmZXJlbmNlc0dldFNlbGVjdGlvblBhaW50aW5n
V2kKIHsKICAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2VsZWN0aW9uUGFpbnRp
bmdXaXRob3V0U2VsZWN0aW9uR2Fwc0VuYWJsZWQoKTsKIH0KKwordm9pZCBXS1ByZWZlcmVuY2Vz
U2V0QWxsb3dzUGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2soV0tQcmVmZXJlbmNlc1JlZiBw
cmVmZXJlbmNlc1JlZiwgYm9vbCBlbmFibGVkKQoreworICAgIHRvSW1wbChwcmVmZXJlbmNlc1Jl
ZiktPnNldEFsbG93c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrKGVuYWJsZWQpOworfQor
Citib29sIFdLUHJlZmVyZW5jZXNHZXRBbGxvd3NQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFj
ayhXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQoreworICAgIHJldHVybiB0b0ltcGwo
cHJlZmVyZW5jZXNSZWYpLT5hbGxvd3NQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjaygpOwor
fQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQ
cml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
UHJlZmVyZW5jZXNSZWZQcml2YXRlLmgJKHJldmlzaW9uIDIwMjI3MCkKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC00MjEsNiArNDIxLDEwIEBAIFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRE
b3dubG9hZEEKIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRTZWxlY3Rpb25QYWludGlu
Z1dpdGhvdXRTZWxlY3Rpb25HYXBzRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmLCBib29sIGZsYWcp
OwogV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldFNlbGVjdGlvblBhaW50aW5nV2l0aG91
dFNlbGVjdGlvbkdhcHNFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYpOwogCisvLyBEZWZhdWx0cyB0
byBmYWxzZS4KK1dLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRBbGxvd3NQaWN0dXJlSW5Q
aWN0dXJlTWVkaWFQbGF5YmFjayhXS1ByZWZlcmVuY2VzUmVmLCBib29sIGZsYWcpOworV0tfRVhQ
T1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldEFsbG93c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXli
YWNrKFdLUHJlZmVyZW5jZXNSZWYpOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpJ
bmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2Ev
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQkocmV2aXNpb24gMjAyMjcwKQorKysgU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0yNTYsMTAgKzI1Niw4IEBAIGJvb2wgV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlcjo6c3VwcG9ydHMKICNpZiBQTEFURk9STShJT1MpCiAgICAgVU5VU0VEX1BBUkFNKG1v
ZGUpOwogICAgIHJldHVybiBTZXR0aW5nczo6YXZLaXRFbmFibGVkKCk7Ci0jZWxpZiBVU0UoQVBQ
TEVfSU5URVJOQUxfU0RLKQotI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJTdXBwb3J0c1ZpZGVvRnVsbHNjcmVlbk1hYy5tbT4KICNlbHNlCi0gICAgcmV0
dXJuIGZhbHNlOworICAgIHJldHVybiBtb2RlID09IEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6Vmlk
ZW9GdWxsc2NyZWVuTW9kZVBpY3R1cmVJblBpY3R1cmUgJiYgc3VwcG9ydHNQaWN0dXJlSW5QaWN0
dXJlKCk7CiAjZW5kaWYKIH0KIAo=
</data>
<flag name="review"
          id="305544"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
      

    </bug>

</bugzilla>