<?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>202716</bug_id>
          
          <creation_ts>2019-10-08 19:02:21 -0700</creation_ts>
          <short_desc>Make WebInspector&apos;s remote debug EventLoop code into RunLoop</short_desc>
          <delta_ts>2020-04-10 11:04:16 -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>Web Inspector</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=203873</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>
          
          <blocked>164193</blocked>
    
    <blocked>210177</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>annulen</cc>
    
    <cc>bburg</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rakuco</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>saam</cc>
    
    <cc>sergio</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1578049</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-08 19:02:21 -0700</bug_when>
    <thetext>It&apos;s confusing to have a class called EventLoop which spins a run loop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578052</commentid>
    <comment_count>1</comment_count>
      <attachid>380492</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-08 19:09:36 -0700</bug_when>
    <thetext>Created attachment 380492
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578059</commentid>
    <comment_count>2</comment_count>
      <attachid>380494</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-08 19:27:41 -0700</bug_when>
    <thetext>Created attachment 380494
Fix GTK+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578064</commentid>
    <comment_count>3</comment_count>
      <attachid>380495</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-08 19:46:59 -0700</bug_when>
    <thetext>Created attachment 380495
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578340</commentid>
    <comment_count>4</comment_count>
      <attachid>380495</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-10-09 12:26:02 -0700</bug_when>
    <thetext>Comment on attachment 380495
Patch

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

r=me, this looks fine to me, but I&apos;d suggest asking Joe to take a look as he&apos;s more familiar with this code

&gt; Source/JavaScriptCore/inspector/JSGlobalObjectScriptDebugServer.cpp:79
&gt; +    return &quot;com.apple.JavaScriptCore.remote-inspector-runloop-mode&quot;;

`_s`?

&gt; Source/JavaScriptCore/inspector/JSGlobalObjectScriptDebugServer.h:41
&gt; +    static String runLoopMode();

NIT: I think we should move this to `RemoteInspectionTarget` since it&apos;s more &quot;generic&quot; than `JSGlobalObjectScriptDebugServer` (`RemoteInspectionTarget` is also used when inspecting webpages, which doesn&apos;t use `JSGlobalObjectScriptDebugServer`).

&gt; Source/WTF/wtf/win/RunLoopWin.cpp:125
&gt; +    MSG msg;

NIT: we should call this `message` to match the rest of the file

&gt; Source/WTF/wtf/win/RunLoopWin.cpp:127
&gt; +        m_ended = true;

This no longer exists.

&gt; Source/WTF/wtf/win/RunLoopWin.cpp:132
&gt; +    TranslateMessage(&amp;msg);
&gt; +    DispatchMessage(&amp;msg);

Should these be `::TranslateMessage` and `::DispatchMessage`?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578365</commentid>
    <comment_count>5</comment_count>
      <attachid>380495</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-10-09 13:25:32 -0700</bug_when>
    <thetext>Comment on attachment 380495
Patch

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

&gt;&gt; Source/JavaScriptCore/inspector/JSGlobalObjectScriptDebugServer.h:41
&gt;&gt; +    static String runLoopMode();
&gt; 
&gt; NIT: I think we should move this to `RemoteInspectionTarget` since it&apos;s more &quot;generic&quot; than `JSGlobalObjectScriptDebugServer` (`RemoteInspectionTarget` is also used when inspecting webpages, which doesn&apos;t use `JSGlobalObjectScriptDebugServer`).

WebCore uses a slightly different EventLoop with different modes. Only JSContext debugging used the special mode which pauses the world.

&gt; Source/WTF/wtf/cf/RunLoopCF.cpp:70
&gt; +RunLoop::CycleResult RunLoop::cycle(String mode)
&gt; +{
&gt; +    CFTimeInterval timeInterval = 0.05;
&gt; +    CFRunLoopRunInMode(mode.isNull() ? kCFRunLoopDefaultMode : mode.createCFString().get(), timeInterval, true);
&gt; +    return CycleResult::Continue;
&gt; +}

According to r151562 (bug 117596)
https://trac.webkit.org/changeset/151562/webkit

This would produce hangs while paused in Web Inspector in other apps.

Might want to do the following for PLATFORM(MAC):

    [NSApp setWindowsNeedUpdate:YES];
    [NSApp sendEvent:[NSApp nextEventMatchingMask:NSAnyEventMask untilDate:[NSDate dateWithTimeIntervalSinceNow:0.05] inMode:NSDefaultRunLoopMode dequeue:YES]];</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578366</commentid>
    <comment_count>6</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-10-09 13:25:50 -0700</bug_when>
    <thetext>&gt;     [NSApp setWindowsNeedUpdate:YES];
&gt;     [NSApp sendEvent:[NSApp nextEventMatchingMask:NSAnyEventMask
&gt; untilDate:[NSDate dateWithTimeIntervalSinceNow:0.05]
&gt; inMode:NSDefaultRunLoopMode dequeue:YES]];

Err, obviously respecting the `mode` passed in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578415</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-09 15:24:17 -0700</bug_when>
    <thetext>(In reply to Devin Rousso from comment #4)
&gt; Comment on attachment 380495 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=380495&amp;action=review
&gt; 
&gt; r=me, this looks fine to me, but I&apos;d suggest asking Joe to take a look as
&gt; he&apos;s more familiar with this code
&gt; 
&gt; &gt; Source/JavaScriptCore/inspector/JSGlobalObjectScriptDebugServer.cpp:79
&gt; &gt; +    return &quot;com.apple.JavaScriptCore.remote-inspector-runloop-mode&quot;;
&gt; 
&gt; `_s`?

Fixed.

&gt; &gt; Source/JavaScriptCore/inspector/JSGlobalObjectScriptDebugServer.h:41
&gt; &gt; +    static String runLoopMode();
&gt; 
&gt; NIT: I think we should move this to `RemoteInspectionTarget` since it&apos;s more
&gt; &quot;generic&quot; than `JSGlobalObjectScriptDebugServer` (`RemoteInspectionTarget`
&gt; is also used when inspecting webpages, which doesn&apos;t use
&gt; `JSGlobalObjectScriptDebugServer`).

We can&apos;t doe that because RemoteInspectionTarget isn&apos;t always enabled but JSGlobalObjectScriptDebugServer is.

&gt; &gt; Source/WTF/wtf/win/RunLoopWin.cpp:125
&gt; &gt; +    MSG msg;
&gt; 
&gt; NIT: we should call this `message` to match the rest of the file

Fixed.

&gt; &gt; Source/WTF/wtf/win/RunLoopWin.cpp:127
&gt; &gt; +        m_ended = true;
&gt; 
&gt; This no longer exists.

Removed.

&gt; &gt; Source/WTF/wtf/win/RunLoopWin.cpp:132
&gt; &gt; +    TranslateMessage(&amp;msg);
&gt; &gt; +    DispatchMessage(&amp;msg);
&gt; 
&gt; Should these be `::TranslateMessage` and `::DispatchMessage`?

I&apos;ll do that although it shouldn&apos;t matter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578444</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-09 16:25:43 -0700</bug_when>
    <thetext>(In reply to Joseph Pecoraro from comment #5)
&gt; Comment on attachment 380495 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=380495&amp;action=review
&gt;
&gt; &gt; Source/WTF/wtf/cf/RunLoopCF.cpp:70
&gt; &gt; +RunLoop::CycleResult RunLoop::cycle(String mode)
&gt; &gt; +{
&gt; &gt; +    CFTimeInterval timeInterval = 0.05;
&gt; &gt; +    CFRunLoopRunInMode(mode.isNull() ? kCFRunLoopDefaultMode : mode.createCFString().get(), timeInterval, true);
&gt; &gt; +    return CycleResult::Continue;
&gt; &gt; +}
&gt; 
&gt; According to r151562 (bug 117596)
&gt; https://trac.webkit.org/changeset/151562/webkit
&gt; 
&gt; This would produce hangs while paused in Web Inspector in other apps.
&gt; 
&gt; Might want to do the following for PLATFORM(MAC):
&gt; 
&gt;     [NSApp setWindowsNeedUpdate:YES];
&gt;     [NSApp sendEvent:[NSApp nextEventMatchingMask:NSAnyEventMask
&gt; untilDate:[NSDate dateWithTimeIntervalSinceNow:0.05]
&gt; inMode:NSDefaultRunLoopMode dequeue:YES]];

Ugh... we can&apos;t do that because JavaScriptCore can&apos;t link against AppKit :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578973</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-10 19:44:46 -0700</bug_when>
    <thetext>(In reply to Joseph Pecoraro from comment #5)
&gt; Comment on attachment 380495 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=380495&amp;action=review
&gt;
&gt; &gt; Source/WTF/wtf/cf/RunLoopCF.cpp:70
&gt; &gt; +RunLoop::CycleResult RunLoop::cycle(String mode)
&gt; &gt; +{
&gt; &gt; +    CFTimeInterval timeInterval = 0.05;
&gt; &gt; +    CFRunLoopRunInMode(mode.isNull() ? kCFRunLoopDefaultMode : mode.createCFString().get(), timeInterval, true);
&gt; &gt; +    return CycleResult::Continue;
&gt; &gt; +}
&gt; 
&gt; According to r151562 (bug 117596)
&gt; https://trac.webkit.org/changeset/151562/webkit
&gt; 
&gt; This would produce hangs while paused in Web Inspector in other apps.

Looks like this fix is no longer needed. I&apos;ve tested both Mini Browser WK1 as well as the app attached on &lt;rdar://problem/14133001&gt; and they both seem to work fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578977</commentid>
    <comment_count>10</comment_count>
      <attachid>380716</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-10 19:49:13 -0700</bug_when>
    <thetext>Created attachment 380716
Updated</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1579214</commentid>
    <comment_count>11</comment_count>
      <attachid>380716</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-10-11 13:34:47 -0700</bug_when>
    <thetext>Comment on attachment 380716
Updated

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

r=me

&gt; Source/WTF/wtf/RunLoop.h:65
&gt; +    WTF_EXPORT_PRIVATE CycleResult static cycle(String = { });

Can this be a `const String&amp;` or does it need to be a `String` for a particular reason?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1579218</commentid>
    <comment_count>12</comment_count>
      <attachid>380716</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-10-11 13:35:26 -0700</bug_when>
    <thetext>Comment on attachment 380716
Updated

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

&gt; ChangeLog:8
&gt; +        * WebKit.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:

This doesn&apos;t look like it was modified. Might be an accident, so this file can be unmodified.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1579357</commentid>
    <comment_count>13</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-11 19:51:34 -0700</bug_when>
    <thetext>Committed r251036: &lt;https://trac.webkit.org/changeset/251036&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580354</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-15 16:16:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/56312647&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580535</commentid>
    <comment_count>15</comment_count>
      <attachid>380495</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2019-10-16 08:58:22 -0700</bug_when>
    <thetext>Comment on attachment 380495
Patch

Good cleanup. I&apos;ll keep my eyes open for regressions that come in. In particular, auto-inspect and remote debugging 3rd party apps seem most affected by RunLoop modes.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380492</attachid>
            <date>2019-10-08 19:09:36 -0700</date>
            <delta_ts>2019-10-08 19:27:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202716-20191008190936.patch</filename>
            <type>text/plain</type>
            <size>32692</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDI1MDg1
MCkKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDE5LTEw
LTA4ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIE1ha2UgV2Vi
SW5zcGVjdG9yJ3MgcmVtb3RlIGRlYnVnIEV2ZW50TG9vcCBjb2RlIGludG8gUnVuTG9vcAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNzE2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXQueGN3
b3Jrc3BhY2UveGNzaGFyZWRkYXRhL1dvcmtzcGFjZVNldHRpbmdzLnhjc2V0dGluZ3M6CisKIDIw
MTktMTAtMDQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQuIFVwZGF0ZSBPcHRpb25zR1RLLmNtYWtlIGFuZCBORVdTIGZvciAy
LjI3LjEgcmVsZWFzZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTA4
ODMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjggQEAKKzIwMTktMTAtMDggIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgTWFrZSBXZWJJbnNwZWN0b3IncyByZW1vdGUgZGVidWcgRXZlbnRMb29w
IGNvZGUgaW50byBSdW5Mb29wCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDI3MTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBVcGRhdGVkIHRoZSBjb2RlIHRvIHVzZSBSdW5Mb29wOjpjeWNsZSBpbnN0ZWFk
IG9mIG5vdyBkZWxldGVkIEV2ZW50TG9vcCBjbGFzcy4KKworICAgICAgICBUaGUgcnVubG9vcCBt
b2RlIHVzZWQgaW4gQXBwbGUncyBwb3J0IGlzIG1vdmVkIHRvIFJlbW90ZUluc3BlY3Rpb25UYXJn
ZXQ6OnJ1bkxvb3BNb2RlCisgICAgICAgIHdpdGggYSBzcGVjaWFsIGNhc2UgZm9yIHdhdGNoT1Mu
CisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9KU0dsb2JhbE9iamVj
dFNjcmlwdERlYnVnU2VydmVyLmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNHbG9iYWxPYmpl
Y3RTY3JpcHREZWJ1Z1NlcnZlcjo6cnVuRXZlbnRMb29wV2hpbGVQYXVzZWQpOgorICAgICAgICAq
IGluc3BlY3Rvci9yZW1vdGUvUmVtb3RlSW5zcGVjdGlvblRhcmdldC5jcHA6CisgICAgICAgIChJ
bnNwZWN0b3I6OlJlbW90ZUluc3BlY3Rpb25UYXJnZXQ6OnBhdXNlV2FpdGluZ0ZvckF1dG9tYXRp
Y0luc3BlY3Rpb24pOgorICAgICAgICAoSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0aW9uVGFyZ2V0
OjpydW5Mb29wTW9kZSk6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9yZW1vdGUvUmVtb3Rl
SW5zcGVjdGlvblRhcmdldC5oOgorICAgICAgICAqIGluc3BlY3Rvci9yZW1vdGUvY29jb2EvUmVt
b3RlQ29ubmVjdGlvblRvVGFyZ2V0Q29jb2EubW06CisgICAgICAgIChJbnNwZWN0b3I6OlJlbW90
ZVRhcmdldEluaXRpYWxpemVHbG9iYWxRdWV1ZSk6CisgICAgICAgIChJbnNwZWN0b3I6OlJlbW90
ZUNvbm5lY3Rpb25Ub1RhcmdldDo6c2V0dXBSdW5Mb29wKToKKyAgICAgICAgKEluc3BlY3Rvcjo6
UmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0Ojp0ZWFyZG93blJ1bkxvb3ApOgorCiAyMDE5LTEwLTA4
ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbCBvdXQgcjI1MDg0OApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAkocmV2
aXNpb24gMjUwODUwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC01NTMsNyArNTUzLDYgQEAgaGVhcC9Xcml0ZUJhcnJpZXJTdXBwb3J0LmNw
cAogaW5zcGVjdG9yL0FzeW5jU3RhY2tUcmFjZS5jcHAKIGluc3BlY3Rvci9Db25zb2xlTWVzc2Fn
ZS5jcHAKIGluc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbGl0aWVzLmNwcAotaW5zcGVjdG9yL0V2
ZW50TG9vcC5jcHAKIGluc3BlY3Rvci9JZGVudGlmaWVyc0ZhY3RvcnkuY3BwCiBpbnNwZWN0b3Iv
SW5qZWN0ZWRTY3JpcHQuY3BwCiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRCYXNlLmNwcApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI1MDg1MCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CSh3b3JraW5nIGNvcHkpCkBAIC0xNDA0LDcgKzE0MDQsNiBAQAogCQlBNTM5OEZBQjFDNzUwREE0
MDA2MEE5NjMgLyogSGVhcFByb2ZpbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBNTM5OEZBQTFDNzUwRDk1MDA2MEE5NjMgLyogSGVhcFByb2ZpbGVy
LmggKi87IH07CiAJCUE1M0NFMDhBMThCQzIxQzMwMEJFREY3NiAvKiBDb25zb2xlQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTNDRTA4OTE4
QkMyMUMzMDBCRURGNzYgLyogQ29uc29sZUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE1M0YxQUMwMThDOTBGOEYwMDcyRUI2RCAvKiBm
cmFtZXdvcmsuc2IgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE1M0YxQUJFMThDOTBFQzcwMDcyRUI2RCAvKiBmcmFtZXdvcmsuc2IgKi87IH07Ci0JCUE1
NDk4MjA0MTg5MUQwQjAwMDgxRTVCOCAvKiBFdmVudExvb3AuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1NDk4MjAyMTg5MUQwQjAwMDgxRTVCOCAvKiBF
dmVudExvb3AuaCAqLzsgfTsKIAkJQTU0QzJBQjExQzY1NDRGMjAwQTE4RDc4IC8qIEhlYXBTbmFw
c2hvdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU0
QzJBQUYxQzY1NDREMTAwQTE4RDc4IC8qIEhlYXBTbmFwc2hvdC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE1NENGMkY2MTg0RUFCMjQwMDIzN0Yx
OSAvKiBTY3JpcHRWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTU0Q0YyRjMxODRFQUIyNDAwMjM3RjE5IC8qIFNjcmlwdFZhbHVlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTU0Q0YyRkExODRF
QUVEQTAwMjM3RjE5IC8qIFNjcmlwdE9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTU0Q0YyRjgxODRFQUVEQTAwMjM3RjE5IC8qIFNjcmlwdE9i
amVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBA
IC00MzM2LDggKzQzMzUsNiBAQAogCQlBNTM5OEZBQTFDNzUwRDk1MDA2MEE5NjMgLyogSGVhcFBy
b2ZpbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhlYXBQcm9maWxlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNTNDRTA4OTE4QkMyMUMzMDBCRURGNzYg
LyogQ29uc29sZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb25z
b2xlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1M0YxQUJFMThDOTBF
QzcwMDcyRUI2RCAvKiBmcmFtZXdvcmsuc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gZnJhbWV3b3JrLnNiOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlBNTQ5ODIwMTE4OTFEMEIwMDA4MUU1QjggLyogRXZlbnRMb29w
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV2ZW50TG9vcC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE1NDk4MjAyMTg5MUQwQjAwMDgxRTVCOCAv
KiBFdmVudExvb3AuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnRMb29w
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1NEMyQUFFMUM2NTQ0RDEwMEExOEQ3
OCAvKiBIZWFwU25hcHNob3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSGVhcFNuYXBzaG90LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTU0QzJB
QUYxQzY1NDREMTAwQTE4RDc4IC8qIEhlYXBTbmFwc2hvdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBIZWFwU25hcHNob3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTU0Q0YyRjIxODRFQUIyNDAwMjM3RjE5IC8qIFNjcmlwdFZhbHVlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdFZhbHVlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTg0MTMsOCArODQxMCw2IEBACiAJCQkJQTVGRDAwNzgxODlCMDUx
MDAwNjMzMjMxIC8qIENvbnNvbGVNZXNzYWdlLmggKi8sCiAJCQkJQTU3RDIzRUYxODkxQjVCNDAw
MzFDN0ZBIC8qIENvbnRlbnRTZWFyY2hVdGlsaXRpZXMuY3BwICovLAogCQkJCUE1N0QyM0YwMTg5
MUI1QjQwMDMxQzdGQSAvKiBDb250ZW50U2VhcmNoVXRpbGl0aWVzLmggKi8sCi0JCQkJQTU0OTgy
MDExODkxRDBCMDAwODFFNUI4IC8qIEV2ZW50TG9vcC5jcHAgKi8sCi0JCQkJQTU0OTgyMDIxODkx
RDBCMDAwODFFNUI4IC8qIEV2ZW50TG9vcC5oICovLAogCQkJCUE1RkQwMDcyMTg5QjAzOEMwMDYz
MzIzMSAvKiBJZGVudGlmaWVyc0ZhY3RvcnkuY3BwICovLAogCQkJCUE1RkQwMDczMTg5QjAzOEMw
MDYzMzIzMSAvKiBJZGVudGlmaWVyc0ZhY3RvcnkuaCAqLywKIAkJCQlBNTEzRTVCNTE4NUI4QkQz
MDA3RTk1QUQgLyogSW5qZWN0ZWRTY3JpcHQuY3BwICovLApAQCAtOTMyMCw3ICs5MzE1LDYgQEAK
IAkJCQlFM0VFMTM3NjIxRkJENDM1MDBEODNDNEIgLyogRXJyb3JUeXBlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxNEFEOTEwQzFEQ0E5Mjk0MDAxNEY5RkUgLyogRXZhbENvZGVCbG9jay5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMTQ3MzQxRDIxREMwMkUyRTAwQUEyOUJBIC8qIEV2YWxFeGVjdXRhYmxl
LmggaW4gSGVhZGVycyAqLywKLQkJCQlBNTQ5ODIwNDE4OTFEMEIwMDA4MUU1QjggLyogRXZlbnRM
b29wLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTFDMEZGRDFCMTkzRTk4MDBCNTNGQ0EgLyogRXhj
ZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTYwMjlEOTFENkUxRTRGMDAzMDIwNEQgLyog
RXhjZXB0aW9uRXZlbnRMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYxMkRFMTAxOTc5
RDVGRDAwMDZGRjRFIC8qIEV4Y2VwdGlvbkZ1enouaCBpbiBIZWFkZXJzICovLApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdFNjcmlwdERlYnVnU2Vy
dmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pT
R2xvYmFsT2JqZWN0U2NyaXB0RGVidWdTZXJ2ZXIuY3BwCShyZXZpc2lvbiAyNTA4NTApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0U2NyaXB0RGVidWdT
ZXJ2ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw5ICsyNiwxMCBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0U2NyaXB0RGVidWdTZXJ2ZXIuaCIKIAot
I2luY2x1ZGUgIkV2ZW50TG9vcC5oIgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVk
ZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTTG9jay5oIgorI2luY2x1ZGUgIlJlbW90ZUlu
c3BlY3Rpb25UYXJnZXQuaCIKIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIApAQCAtNTcsOSArNTgs
MTAgQEAgdm9pZCBKU0dsb2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyOjpydQogICAgIC8vIERy
b3AgYWxsIGxvY2tzIHNvIGFub3RoZXIgdGhyZWFkIGNhbiB3b3JrIGluIHRoZSBWTSB3aGlsZSB3
ZSBhcmUgbmVzdGVkLgogICAgIEpTQzo6SlNMb2NrOjpEcm9wQWxsTG9ja3MgZHJvcEFsbExvY2tz
KCZtX2dsb2JhbE9iamVjdC52bSgpKTsKIAotICAgIEV2ZW50TG9vcCBsb29wOwotICAgIHdoaWxl
ICghbV9kb25lUHJvY2Vzc2luZ0RlYnVnZ2VyRXZlbnRzICYmICFsb29wLmVuZGVkKCkpCi0gICAg
ICAgIGxvb3AuY3ljbGUoKTsKKyAgICB3aGlsZSAoIW1fZG9uZVByb2Nlc3NpbmdEZWJ1Z2dlckV2
ZW50cykgeworICAgICAgICBpZiAoUnVuTG9vcDo6Y3ljbGUoUmVtb3RlSW5zcGVjdGlvblRhcmdl
dDo6cnVuTG9vcE1vZGUoKSkgPT0gUnVuTG9vcDo6Q3ljbGVSZXN1bHQ6OlN0b3ApCisgICAgICAg
ICAgICBicmVhazsKKyAgICB9CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEluc3BlY3RvcgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlSW5zcGVjdGlvblRh
cmdldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9y
ZW1vdGUvUmVtb3RlSW5zcGVjdGlvblRhcmdldC5jcHAJKHJldmlzaW9uIDI1MDg1MCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUluc3BlY3Rpb25UYXJn
ZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw4ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoUkVN
T1RFX0lOU1BFQ1RPUikKIAotI2luY2x1ZGUgIkV2ZW50TG9vcC5oIgogI2luY2x1ZGUgIlJlbW90
ZUluc3BlY3Rvci5oIgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKIG5hbWVzcGFjZSBJbnNw
ZWN0b3IgewogCkBAIC01Nyw5ICs1NywyOCBAQCB2b2lkIFJlbW90ZUluc3BlY3Rpb25UYXJnZXQ6
OnBhdXNlV2FpdGluCiAgICAgQVNTRVJUKG1fYWxsb3dlZCk7CiAgICAgQVNTRVJUKGF1dG9tYXRp
Y0luc3BlY3Rpb25BbGxvd2VkKCkpOwogCi0gICAgRXZlbnRMb29wIGxvb3A7Ci0gICAgd2hpbGUg
KFJlbW90ZUluc3BlY3Rvcjo6c2luZ2xldG9uKCkud2FpdGluZ0ZvckF1dG9tYXRpY0luc3BlY3Rp
b24odGFyZ2V0SWRlbnRpZmllcigpKSAmJiAhbG9vcC5lbmRlZCgpKQotICAgICAgICBsb29wLmN5
Y2xlKCk7CisgICAgd2hpbGUgKFJlbW90ZUluc3BlY3Rvcjo6c2luZ2xldG9uKCkud2FpdGluZ0Zv
ckF1dG9tYXRpY0luc3BlY3Rpb24odGFyZ2V0SWRlbnRpZmllcigpKSkgeworICAgICAgICBpZiAo
UnVuTG9vcDo6Y3ljbGUocnVuTG9vcE1vZGUoKSkgPT0gUnVuTG9vcDo6Q3ljbGVSZXN1bHQ6OlN0
b3ApCisgICAgICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK1N0cmluZyBSZW1vdGVJbnNwZWN0
aW9uVGFyZ2V0OjpydW5Mb29wTW9kZSgpCit7CisjaWYgVVNFKENGKSAmJiAhUExBVEZPUk0oV0FU
Q0hPUykKKyAgICAvLyBSdW4gdGhlIFJ1bkxvb3AgaW4gYSBjdXN0b20gcnVuIGxvb3AgbW9kZSB0
byBwcmV2ZW50IGRlZmF1bHQgb2JzZXJ2ZXJzCisgICAgLy8gdG8gcnVuIGFuZCBwb3RlbnRpYWxs
eSBldmFsdWF0ZSBKYXZhU2NyaXB0IGluIHRoaXMgY29udGV4dCB3aGlsZSB3ZSBhcmUKKyAgICAv
LyBuZXN0ZWQuIE9ubHkgdGhlIGRlYnVnZ2VyIHNob3VsZCBjb250cm9sIHRoaW5ncyB1bnRpbCB3
ZSBjb250aW51ZS4KKyAgICAvLyBGSVhNRTogVGhpcyBpcyBub3QgYSBwZXJmZWN0IHNvbHV0aW9u
LCBhcyBiYWNrZ3JvdW5kIHRocmVhZHMgYXJlIG5vdAorICAgIC8vIHBhdXNlZCBhbmQgY2FuIHN0
aWxsIGFjY2VzcyBhbmQgZXZhbHV0ZSBzY3JpcHQgaW4gdGhlIEpTQ29udGV4dC4KKworICAgIC8v
IEZJWE1FOiA8cmRhcjovL3Byb2JsZW0vMjU5NzI3Nzc+LiBPbiB3YXRjaE9TLCBpbiBvcmRlciBm
b3IgYXV0by1hdHRhY2ggdG8gd29yaywKKyAgICAvLyB3ZSBuZWVkIHRvIHJ1biBpbiB0aGUgZGVm
YXVsdCBydW4gbG9vcCBtb2RlIG90aGVyd2lzZSB3ZSBkbyBub3QgcmVjZWl2ZSB0aGUgWFBDIG1l
c3NhZ2VzCisgICAgLy8gbmVjZXNzYXJ5IHRvIHNldHVwIHRoZSByZWxheSBjb25uZWN0aW9uIGFu
ZCBuZWdvdGlhdGUgYW4gYXV0by1hdHRhY2ggZGVidWdnZXIuCisgICAgcmV0dXJuICJjb20uYXBw
bGUuSmF2YVNjcmlwdENvcmUucmVtb3RlLWluc3BlY3Rvci1ydW5sb29wLW1vZGUiOworI2Vsc2UK
KyAgICByZXR1cm4geyB9OworI2VuZGlmCiB9CiAKIHZvaWQgUmVtb3RlSW5zcGVjdGlvblRhcmdl
dDo6dW5wYXVzZUZvckluaXRpYWxpemVkSW5zcGVjdG9yKCkKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUluc3BlY3Rpb25UYXJnZXQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVJbnNw
ZWN0aW9uVGFyZ2V0LmgJKHJldmlzaW9uIDI1MDg1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUluc3BlY3Rpb25UYXJnZXQuaAkod29ya2luZyBjb3B5
KQpAQCAtNTksNiArNTksOCBAQCBwdWJsaWM6CiAgICAgLy8gUmVtb3RlQ29udHJvbGxhYmxlVGFy
Z2V0IG92ZXJyaWRlcy4KICAgICBib29sIHJlbW90ZUNvbnRyb2xBbGxvd2VkKCkgY29uc3QgZmlu
YWw7CiAKKyAgICBzdGF0aWMgU3RyaW5nIHJ1bkxvb3BNb2RlKCk7CisKIHByaXZhdGU6CiAgICAg
Ym9vbCBtX2FsbG93ZWQgeyBmYWxzZSB9OwogI2lmIFVTRShDRikKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL2NvY29hL1JlbW90ZUNvbm5lY3Rpb25Ub1Rhcmdl
dENvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
cmVtb3RlL2NvY29hL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldENvY29hLm1tCShyZXZpc2lvbiAy
NTA4NTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9jb2NvYS9S
ZW1vdGVDb25uZWN0aW9uVG9UYXJnZXRDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMjgsMTIg
KzI4LDEyIEBACiAKICNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKIAotI2ltcG9ydCAiRXZl
bnRMb29wLmgiCiAjaW1wb3J0ICJSZW1vdGVBdXRvbWF0aW9uVGFyZ2V0LmgiCiAjaW1wb3J0ICJS
ZW1vdGVJbnNwZWN0aW9uVGFyZ2V0LmgiCiAjaW1wb3J0ICJSZW1vdGVJbnNwZWN0b3IuaCIKICNp
bXBvcnQgPGRpc3BhdGNoL2Rpc3BhdGNoLmg+CiAjaW1wb3J0IDx3dGYvT3B0aW9uYWwuaD4KKyNp
bXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogI2ltcG9y
dCA8d3RmL2lvcy9XZWJDb3JlVGhyZWFkLmg+CkBAIC04Nyw3ICs4Nyw3IEBAIHN0YXRpYyB2b2lk
IFJlbW90ZVRhcmdldEluaXRpYWxpemVHbG9iYWwKIAogICAgICAgICAvLyBBZGQgdG8gdGhlIGRl
ZmF1bHQgcnVuIGxvb3AgbW9kZSBmb3IgZGVmYXVsdCBoYW5kbGluZywgYW5kIHRoZSBKU0NvbnRl
eHQgcmVtb3RlIGluc3BlY3RvciBydW4gbG9vcCBtb2RlIHdoZW4gcGF1c2VkLgogICAgICAgICBD
RlJ1bkxvb3BBZGRTb3VyY2UoQ0ZSdW5Mb29wR2V0TWFpbigpLCByd2lSdW5Mb29wU291cmNlLCBr
Q0ZSdW5Mb29wRGVmYXVsdE1vZGUpOwotICAgICAgICBDRlJ1bkxvb3BBZGRTb3VyY2UoQ0ZSdW5M
b29wR2V0TWFpbigpLCByd2lSdW5Mb29wU291cmNlLCBFdmVudExvb3A6OnJlbW90ZUluc3BlY3Rv
clJ1bkxvb3BNb2RlKCkpOworICAgICAgICBDRlJ1bkxvb3BBZGRTb3VyY2UoQ0ZSdW5Mb29wR2V0
TWFpbigpLCByd2lSdW5Mb29wU291cmNlLCBSZW1vdGVJbnNwZWN0aW9uVGFyZ2V0OjpydW5Mb29w
TW9kZSgpLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpOwogICAgIH0pOwogfQogCkBAIC0yNTgsNyAr
MjU4LDcgQEAgdm9pZCBSZW1vdGVDb25uZWN0aW9uVG9UYXJnZXQ6OnNldHVwUnVuTAogICAgIG1f
cnVuTG9vcFNvdXJjZSA9IGFkb3B0Q0YoQ0ZSdW5Mb29wU291cmNlQ3JlYXRlKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIDEsICZydW5Mb29wU291cmNlQ29udGV4dCkpOwogCiAgICAgQ0ZSdW5Mb29wQWRk
U291cmNlKG1fcnVuTG9vcC5nZXQoKSwgbV9ydW5Mb29wU291cmNlLmdldCgpLCBrQ0ZSdW5Mb29w
RGVmYXVsdE1vZGUpOwotICAgIENGUnVuTG9vcEFkZFNvdXJjZShtX3J1bkxvb3AuZ2V0KCksIG1f
cnVuTG9vcFNvdXJjZS5nZXQoKSwgRXZlbnRMb29wOjpyZW1vdGVJbnNwZWN0b3JSdW5Mb29wTW9k
ZSgpKTsKKyAgICBDRlJ1bkxvb3BBZGRTb3VyY2UobV9ydW5Mb29wLmdldCgpLCBtX3J1bkxvb3BT
b3VyY2UuZ2V0KCksIFJlbW90ZUluc3BlY3Rpb25UYXJnZXQ6OnJ1bkxvb3BNb2RlKCkuY3JlYXRl
Q0ZTdHJpbmcoKS5nZXQoKSk7CiB9CiAKIHZvaWQgUmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0Ojp0
ZWFyZG93blJ1bkxvb3AoKQpAQCAtMjY3LDcgKzI2Nyw3IEBAIHZvaWQgUmVtb3RlQ29ubmVjdGlv
blRvVGFyZ2V0Ojp0ZWFyZG93blIKICAgICAgICAgcmV0dXJuOwogCiAgICAgQ0ZSdW5Mb29wUmVt
b3ZlU291cmNlKG1fcnVuTG9vcC5nZXQoKSwgbV9ydW5Mb29wU291cmNlLmdldCgpLCBrQ0ZSdW5M
b29wRGVmYXVsdE1vZGUpOwotICAgIENGUnVuTG9vcFJlbW92ZVNvdXJjZShtX3J1bkxvb3AuZ2V0
KCksIG1fcnVuTG9vcFNvdXJjZS5nZXQoKSwgRXZlbnRMb29wOjpyZW1vdGVJbnNwZWN0b3JSdW5M
b29wTW9kZSgpKTsKKyAgICBDRlJ1bkxvb3BSZW1vdmVTb3VyY2UobV9ydW5Mb29wLmdldCgpLCBt
X3J1bkxvb3BTb3VyY2UuZ2V0KCksIFJlbW90ZUluc3BlY3Rpb25UYXJnZXQ6OnJ1bkxvb3BNb2Rl
KCkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7CiAKICAgICBtX3J1bkxvb3AgPSBudWxscHRyOwog
ICAgIG1fcnVuTG9vcFNvdXJjZSA9IG51bGxwdHI7CkluZGV4OiBTb3VyY2UvV1RGL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL0NoYW5nZUxvZwkocmV2aXNpb24gMjUwODUwKQor
KysgU291cmNlL1dURi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMyBAQAor
MjAxOS0xMC0wOCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBN
YWtlIFdlYkluc3BlY3RvcidzIHJlbW90ZSBkZWJ1ZyBFdmVudExvb3AgY29kZSBpbnRvIFJ1bkxv
b3AKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjcx
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggbWVyZ2VzIFdlYkluc3BlY3RvcidzIEV2ZW50TG9vcCBjb2RlIGludG8gUnVuTG9vcCBh
cyBhIHN0YXRpYyBmdW5jdGlvbi4KKworICAgICAgICAqIHd0Zi9SdW5Mb29wLmg6CisgICAgICAg
IChXVEY6OlJ1bkxvb3A6OmN5Y2xlKToKKyAgICAgICAgKiB3dGYvY2YvUnVuTG9vcENGLmNwcDoK
KyAgICAgICAgKFdURjo6UnVuTG9vcDo6Y3ljbGUpOiBBZGRlZC4KKyAgICAgICAgKiB3dGYvZ2Vu
ZXJpYy9SdW5Mb29wR2VuZXJpYy5jcHA6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OmN5Y2xlKTog
QWRkZWQuCisgICAgICAgICogd3RmL2dsaWIvUnVuTG9vcEdMaWIuY3BwOgorICAgICAgICAoV1RG
OjpSdW5Mb29wOjpjeWNsZSk6IEFkZGVkLgorICAgICAgICAqIHd0Zi93aW4vUnVuTG9vcFdpbi5j
cHA6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OmN5Y2xlKTogQWRkZWQuCisKIDIwMTktMTAtMDcg
IEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgQnVpbGQgZmFp
bHVyZSBpbiBXZWJIVE1MVmlldy5tbSB3aXRoIHRoZSBwdWJsaWMgU0RLIChYY29kZSAxMSBhbmQg
TW9qYXZlKQpJbmRleDogU291cmNlL1dURi93dGYvUnVuTG9vcC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XVEYvd3RmL1J1bkxvb3AuaAkocmV2aXNpb24gMjUwODUwKQorKysgU291cmNlL1dURi93
dGYvUnVuTG9vcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSA8
d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CiAjaW5jbHVkZSA8d3Rm
L1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
IAogI2lmIFVTRShHTElCX0VWRU5UX0xPT1ApCiAjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5o
PgpAQCAtNjAsNiArNjEsOSBAQCBwdWJsaWM6CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQg
c3RvcCgpOwogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHdha2VVcCgpOwogCisgICAgZW51
bSBjbGFzcyBDeWNsZVJlc3VsdCB7IENvbnRpbnVlLCBTdG9wIH07CisgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIEN5Y2xlUmVzdWx0IHN0YXRpYyBjeWNsZShTdHJpbmcgPSB7IH0pOworCiAjaWYgVVNF
KENPQ09BX0VWRU5UX0xPT1ApCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgcnVuRm9yRHVy
YXRpb24oU2Vjb25kcyBkdXJhdGlvbik7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL2Nm
L1J1bkxvb3BDRi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvY2YvUnVuTG9vcENG
LmNwcAkocmV2aXNpb24gMjUwODUwKQorKysgU291cmNlL1dURi93dGYvY2YvUnVuTG9vcENGLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNjIsNiArNjIsMTMgQEAgdm9pZCBSdW5Mb29wOjp3YWtlVXAo
KQogICAgIENGUnVuTG9vcFdha2VVcChtX3J1bkxvb3AuZ2V0KCkpOwogfQogCitSdW5Mb29wOjpD
eWNsZVJlc3VsdCBSdW5Mb29wOjpjeWNsZShTdHJpbmcgbW9kZSkKK3sKKyAgICBDRlRpbWVJbnRl
cnZhbCB0aW1lSW50ZXJ2YWwgPSAwLjA1OworICAgIENGUnVuTG9vcFJ1bkluTW9kZShtb2RlLmlz
TnVsbCgpID8ga0NGUnVuTG9vcERlZmF1bHRNb2RlIDogbW9kZS5jcmVhdGVDRlN0cmluZygpLmdl
dCgpLCB0aW1lSW50ZXJ2YWwsIHRydWUpOworICAgIHJldHVybiBDeWNsZVJlc3VsdDo6Q29udGlu
dWU7Cit9CisKIHZvaWQgUnVuTG9vcDo6cnVuKCkKIHsKICAgICBBdXRvZHJhaW5lZFBvb2wgcG9v
bDsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL2dlbmVyaWMvUnVuTG9vcEdlbmVyaWMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL2dlbmVyaWMvUnVuTG9vcEdlbmVyaWMuY3BwCShyZXZp
c2lvbiAyNTA4NTApCisrKyBTb3VyY2UvV1RGL3d0Zi9nZW5lcmljL1J1bkxvb3BHZW5lcmljLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjE4LDYgKzIxOCwxMSBAQCB2b2lkIFJ1bkxvb3A6Ondha2VV
cCgpCiAgICAgd2FrZVVwKGxvY2tlcik7CiB9CiAKK3ZvaWQgUnVuTG9vcDo6Y3ljbGUoU3RyaW5n
KQoreworICAgIGl0ZXJhdGUoKTsKK30KKwogdm9pZCBSdW5Mb29wOjpzY2hlZHVsZShjb25zdCBB
YnN0cmFjdExvY2tlciYsIFJlZjxUaW1lckJhc2U6OlNjaGVkdWxlZFRhc2s+JiYgdGFzaykKIHsK
ICAgICBtX3NjaGVkdWxlcy5hcHBlbmQodGFzay5wdHIoKSk7CkluZGV4OiBTb3VyY2UvV1RGL3d0
Zi9nbGliL1J1bkxvb3BHTGliLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9nbGli
L1J1bkxvb3BHTGliLmNwcAkocmV2aXNpb24gMjUwODUwKQorKysgU291cmNlL1dURi93dGYvZ2xp
Yi9SdW5Mb29wR0xpYi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMyw2ICsxMjMsMTIgQEAgdm9p
ZCBSdW5Mb29wOjp3YWtlVXAoKQogICAgIGdfc291cmNlX3NldF9yZWFkeV90aW1lKG1fc291cmNl
LmdldCgpLCAwKTsKIH0KIAorUnVuTG9vcDo6Q3ljbGVSZXN1bHQgUnVuTG9vcDo6Y3ljbGUoU3Ry
aW5nKQoreworICAgIGdfbWFpbl9jb250ZXh0X2l0ZXJhdGlvbihOVUxMLCBGQUxTRSk7CisgICAg
cmV0dXJuIEN5Y2xlUmVzdWx0OjpDb250aW51ZTsKK30KKwogY2xhc3MgRGlzcGF0Y2hBZnRlckNv
bnRleHQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpJbmRleDogU291
cmNlL1dURi93dGYvd2luL1J1bkxvb3BXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYv
d3RmL3dpbi9SdW5Mb29wV2luLmNwcAkocmV2aXNpb24gMjUwODUwKQorKysgU291cmNlL1dURi93
dGYvd2luL1J1bkxvb3BXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjAsNiArMTIwLDIwIEBA
IHZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKICAgICA6OlBvc3RNZXNzYWdlKG1fcnVuTG9vcE1lc3Nh
Z2VXaW5kb3csIFBlcmZvcm1Xb3JrTWVzc2FnZSwgcmVpbnRlcnByZXRfY2FzdDxXUEFSQU0+KHRo
aXMpLCAwKTsKIH0KIAorUnVuTG9vcDo6Q3ljbGVSZXN1bHQgUnVuTG9vcDo6Y3ljbGUoU3RyaW5n
KQoreworICAgIE1TRyBtc2c7CisgICAgaWYgKCFHZXRNZXNzYWdlKCZtc2csIDAsIDAsIDApKSB7
CisgICAgICAgIG1fZW5kZWQgPSB0cnVlOworICAgICAgICByZXR1cm4gQ3ljbGVSZXN1bHQ6OlN0
b3A7CisgICAgfQorCisgICAgVHJhbnNsYXRlTWVzc2FnZSgmbXNnKTsKKyAgICBEaXNwYXRjaE1l
c3NhZ2UoJm1zZyk7CisKKyAgICByZXR1cm4gQ3ljbGVSZXN1bHQ6OkNvbnRpbnVlOworfQorCiAv
LyBSdW5Mb29wOjpUaW1lcgogCiB2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZCgp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTA4NTApCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNCBAQAorMjAxOS0xMC0wOCAgUnlvc3Vr
ZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBNYWtlIFdlYkluc3BlY3Rvcidz
IHJlbW90ZSBkZWJ1ZyBFdmVudExvb3AgY29kZSBpbnRvIFJ1bkxvb3AKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjcxNgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBSdW5Mb29wOjpjeWNsZS4KKwor
ICAgICAgICAqIFBsYXRmb3JtRlRXLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtUGxheVN0YXRp
b24uY21ha2U6CisgICAgICAgICogUGxhdGZvcm1XaW4uY21ha2U6CisgICAgICAgICogU291cmNl
c0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogaW5zcGVjdG9yL1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQYWdlU2NyaXB0RGVidWdTZXJ2ZXI6OnJ1bkV2ZW50TG9vcFdoaWxlUGF1c2Vk
SW50ZXJuYWwpOgorICAgICAgICAqIHBsYXRmb3JtL1NvdXJjZXNHTGliLnR4dDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9nbGliL0V2ZW50TG9vcEdsaWIuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBs
YXRmb3JtL3BsYXlzdGF0aW9uL0V2ZW50TG9vcFBsYXlTdGF0aW9uLmNwcDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS93aW4vRXZlbnRMb29wV2luLmNwcDogUmVtb3ZlZC4KKwogMjAxOS0x
MC0wOCAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CiAKICAgICAgICAg
QWNjZXB0IHR3byB2YWx1ZXMgaW4gdGhlIG92ZXJmbG93IHNob3J0aGFuZApJbmRleDogU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1GVFcuY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
UGxhdGZvcm1GVFcuY21ha2UJKHJldmlzaW9uIDI1MDg1MCkKKysrIFNvdXJjZS9XZWJDb3JlL1Bs
YXRmb3JtRlRXLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0xMTcsNyArMTE3LDYgQEAgbGlzdChB
UFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vd2luL0RyYWdEYXRhV2luLmNwcAog
ICAgIHBsYXRmb3JtL3dpbi9EcmFnSW1hZ2VEaXJlY3QyRC5jcHAKICAgICBwbGF0Zm9ybS93aW4v
RHJhZ0ltYWdlV2luLmNwcAotICAgIHBsYXRmb3JtL3dpbi9FdmVudExvb3BXaW4uY3BwCiAgICAg
cGxhdGZvcm0vd2luL0dESU9iamVjdENvdW50ZXIuY3BwCiAgICAgcGxhdGZvcm0vd2luL0dESVV0
aWxpdGllcy5jcHAKICAgICBwbGF0Zm9ybS93aW4vSW1wb3J0ZWRGdW5jdGlvbnNFbnVtZXJhdG9y
LmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvUGxhdGZvcm1QbGF5U3RhdGlvbi5jbWFrZQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVBsYXlTdGF0aW9uLmNtYWtlCShyZXZp
c2lvbiAyNTA4NTApCisrKyBTb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVBsYXlTdGF0aW9uLmNtYWtl
CSh3b3JraW5nIGNvcHkpCkBAIC01OCw3ICs1OCw2IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09V
UkNFUwogICAgIHBsYXRmb3JtL25ldHdvcmsvcGxheXN0YXRpb24vQ3VybFNTTEhhbmRsZVBsYXlT
dGF0aW9uLmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsvcGxheXN0YXRpb24vTmV0d29ya1N0YXRl
Tm90aWZpZXJQbGF5U3RhdGlvbi5jcHAKIAotICAgIHBsYXRmb3JtL3BsYXlzdGF0aW9uL0V2ZW50
TG9vcFBsYXlTdGF0aW9uLmNwcAogICAgIHBsYXRmb3JtL3BsYXlzdGF0aW9uL01JTUVUeXBlUmVn
aXN0cnlQbGF5U3RhdGlvbi5jcHAKICAgICBwbGF0Zm9ybS9wbGF5c3RhdGlvbi9QbGF0Zm9ybVNj
cmVlblBsYXlTdGF0aW9uLmNwcAogICAgIHBsYXRmb3JtL3BsYXlzdGF0aW9uL1Njcm9sbGJhclRo
ZW1lUGxheVN0YXRpb24uY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFr
ZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQkocmV2aXNp
b24gMjUwODUwKQorKysgU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW4uY21ha2UJKHdvcmtpbmcg
Y29weSkKQEAgLTgyLDcgKzgyLDYgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAg
cGxhdGZvcm0vd2luL0RlZlduZFByb2NXaW5kb3dDbGFzcy5jcHAKICAgICBwbGF0Zm9ybS93aW4v
RHJhZ0RhdGFXaW4uY3BwCiAgICAgcGxhdGZvcm0vd2luL0RyYWdJbWFnZVdpbi5jcHAKLSAgICBw
bGF0Zm9ybS93aW4vRXZlbnRMb29wV2luLmNwcAogICAgIHBsYXRmb3JtL3dpbi9HRElPYmplY3RD
b3VudGVyLmNwcAogICAgIHBsYXRmb3JtL3dpbi9HRElVdGlsaXRpZXMuY3BwCiAgICAgcGxhdGZv
cm0vd2luL0tleUV2ZW50V2luLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29h
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CShyZXZp
c2lvbiAyNTA4NTApCisrKyBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0zODUsNyArMzg1LDYgQEAgcGxhdGZvcm0vaW9zL0RldmljZS5jcHAKIHBsYXRm
b3JtL2lvcy9EZXZpY2VNb3Rpb25DbGllbnRJT1MubW0KIHBsYXRmb3JtL2lvcy9EZXZpY2VPcmll
bnRhdGlvbkNsaWVudElPUy5tbQogcGxhdGZvcm0vaW9zL0RyYWdJbWFnZUlPUy5tbQotcGxhdGZv
cm0vaW9zL0V2ZW50TG9vcElPUy5tbQogcGxhdGZvcm0vaW9zL0tleUV2ZW50SU9TLm1tCiBwbGF0
Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hlLm1tCiBwbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUdyaWQu
bW0KQEAgLTQzNSw3ICs0MzQsNiBAQCBwbGF0Zm9ybS9tYWMvQmxhY2tsaXN0VXBkYXRlci5tbQog
cGxhdGZvcm0vbWFjL0N1cnNvck1hYy5tbQogcGxhdGZvcm0vbWFjL0RyYWdEYXRhTWFjLm1tCiBw
bGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCi1wbGF0Zm9ybS9tYWMvRXZlbnRMb29wTWFjLm1t
CiBwbGF0Zm9ybS9tYWMvS2V5RXZlbnRNYWMubW0gQG5vLXVuaWZ5CiBwbGF0Zm9ybS9tYWMvUGxh
eWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjLm1tIEBuby11bmlmeQogcGxhdGZvcm0vbWFjL0xvY2Fs
Q3VycmVudEdyYXBoaWNzQ29udGV4dC5tbQpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjUwODUwKQorKysgU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC02MTksNyArNjE5LDYgQEAKIAkJMUM3M0E3MTUyMTg1NzU4NzAwNENDRUE1IC8qIFRl
eHREZWNvcmF0aW9uVGhpY2tuZXNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQ0I2QjRGODIxN0I4MzkzMDA5M0I5Q0QgLyogVGV4dERlY29yYXRpb25U
aGlja25lc3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkxQzgxQjk1QTBFOTczMzA4MDAyNjZFMDcgLyogSW5zcGVjdG9yQ29udHJvbGxlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM4MUI5NTYwRTk3
MzMwODAwMjY2RTA3IC8qIEluc3BlY3RvckNvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQzgxQjk1QzBFOTczMzA4MDAyNjZFMDcg
LyogSW5zcGVjdG9yQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQzgxQjk1ODBFOTczMzA4MDAyNjZFMDcgLyogSW5zcGVjdG9yQ2xpZW50Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMUNBMTlF
MTYwREMyNTVDQTAwNjVBOTk0IC8qIEV2ZW50TG9vcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBMTlFMTUwREMyNTVDQTAwNjVBOTk0IC8qIEV2ZW50
TG9vcC5oICovOyB9OwogCQkxQ0FGMzQ4MTBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2Jq
ZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FG
MzQ3RTBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUNBRjM0ODIwQTZDNDA1MjAwQUJF
MDZFIC8qIFdlYlNjcmlwdE9iamVjdC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFDQUYzNDdGMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmpl
Y3QubW0gKi87IH07CiAJCTFDQUYzNDgzMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmpl
Y3RQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQ0FGMzQ4MDBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC02Mzk0LDgg
KzYzOTMsNiBAQAogCQkxQ0EwQzJFNTIxRUVEMTJBMDBBMTE4NjAgLyogV0hMU0xGdW5jdGlvblN0
YWdlQ2hlY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTEZ1bmN0aW9uU3RhZ2VDaGVja2VyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQTBDMkVBMjFFRUQ2RjUwMEExMTg2MCAv
KiBXSExTTExpdGVyYWxUeXBlQ2hlY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTExpdGVyYWxU
eXBlQ2hlY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0EwQzJFQzIxRUVE
NkY2MDBBMTE4NjAgLyogV0hMU0xMaXRlcmFsVHlwZUNoZWNrZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV0hMU0xMaXRlcmFsVHlwZUNoZWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQkxQ0ExOUUwMzBEQzI1NTk1MDA2NUE5OTQgLyogRXZlbnRMb29wTWFjLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRXZlbnRMb29wTWFjLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxQ0ExOUUxNTBEQzI1NUNBMDA2NUE5OTQgLyogRXZl
bnRMb29wLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50TG9vcC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FBODJGNjIyNDJBRTA1MDBFODRCQkIgLyog
V0hMU0xQcm9wZXJ0eVJlc29sdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdITFNMUHJvcGVy
dHlSZXNvbHZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQUE4MkY3MjI0
MkFFMDUwMEU4NEJCQiAvKiBXSExTTFByb3BlcnR5UmVzb2x2ZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V0hMU0xQcm9wZXJ0eVJlc29sdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFD
QUYzNDdFMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU2NyaXB0T2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC02NTI1LDcgKzY1MjIsNiBAQAogCQkyNkYwQzg5QTFBMkVDMTEwMDAyNzk0
RjggLyogQ29udGVudEV4dGVuc2lvblJ1bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ29udGVudEV4dGVuc2lvblJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMjZGMEM4OUQxQTJFQzNCRTAwMjc5NEY4IC8qIENvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb250ZW50RXh0ZW5zaW9u
c0JhY2tlbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNkYwQzg5RTFBMkVD
M0JFMDAyNzk0RjggLyogQ29udGVudEV4dGVuc2lvbnNCYWNrZW5kLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQkyNkY0MEQ0OTE0OTA0QTYzMDBDQTY3QzQgLyogRXZlbnRMb29w
SU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRXZlbnRMb29w
SU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNkY3NTZBRTFCM0I2NUFDMDAw
NURENzkgLyogTXV0YWJsZVJhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE11dGFibGVSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNkY3NTZBRjFC
M0I2NUFDMDAwNURENzkgLyogTXV0YWJsZVJhbmdlTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNdXRhYmxlUmFuZ2VMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTI2Rjc1NkIyMUIzQjY2RjcwMDA1REQ3OSAvKiBJbW11dGFibGVORkEuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1tdXRhYmxlTkZBLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yMDE3MSw3ICsyMDE2Nyw2IEBACiAJCQkJQTc5NTQ2M0QwQjVDNEM4
MDAwN0I0MzhGIC8qIERyYWdEYXRhTWFjLm1tICovLAogCQkJCUE3Q0ZCM0Q0MEI3RUQxMTgwMDcw
QzMyRCAvKiBEcmFnSW1hZ2VNYWMubW0gKi8sCiAJCQkJRTFCQTY2RjAxNzQyQkQ4NjAwQzIwMjUx
IC8qIER5bmFtaWNMaW5rZXJJbnRlcnBvc2luZy5oICovLAotCQkJCTFDQTE5RTAzMERDMjU1OTUw
MDY1QTk5NCAvKiBFdmVudExvb3BNYWMubW0gKi8sCiAJCQkJOTM1QzQ3NkUwOUFDNEQ3MzAwQTZB
QUI0IC8qIEtleUV2ZW50TWFjLm1tICovLAogCQkJCUY0NEE1RjU3MUZFRDM4MzAwMDdGNTk0NCAv
KiBMZWdhY3lOU1Bhc3RlYm9hcmRUeXBlcy5oICovLAogCQkJCTA2RTgxRUQ2MEFCNUQ1RTkwMEM4
NzgzNyAvKiBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQuaCAqLywKQEAgLTIyNTM5LDcgKzIy
NTM0LDYgQEAKIAkJCQkzMTQwMzc5OTEyNEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRp
b25DbGllbnRJT1MuaCAqLywKIAkJCQkzMTQwMzc5QTEyNEJFQTdGMDBBRjQwRTQgLyogRGV2aWNl
T3JpZW50YXRpb25DbGllbnRJT1MubW0gKi8sCiAJCQkJMEZEQTdDMjIxODgzMzBBOTAwQzk1NEI1
IC8qIERyYWdJbWFnZUlPUy5tbSAqLywKLQkJCQkyNkY0MEQ0OTE0OTA0QTYzMDBDQTY3QzQgLyog
RXZlbnRMb29wSU9TLm1tICovLAogCQkJCTI2NTU0MTM3MTQ4OTgxMUMwMDBERkM1RCAvKiBLZXlF
dmVudENvZGVzSU9TLmggKi8sCiAJCQkJMjY1NTQxMzgxNDg5ODExQzAwMERGQzVEIC8qIEtleUV2
ZW50SU9TLm1tICovLAogCQkJCUU0QzNCMUY5MEYwRTQxNjEwMDk2OTNGNiAvKiBMZWdhY3lUaWxl
Q2FjaGUuaCAqLywKQEAgLTI1NTIyLDcgKzI1NTE2LDYgQEAKIAkJCQlBN0NGQjNDRjBCN0VEMTBB
MDA3MEMzMkQgLyogRHJhZ0ltYWdlLmNwcCAqLywKIAkJCQlBN0NGQjNEMDBCN0VEMTBBMDA3MEMz
MkQgLyogRHJhZ0ltYWdlLmggKi8sCiAJCQkJMUFGNUU0RDcxRTU2NzdBOTAwNEExRjAxIC8qIERy
YWdJdGVtLmggKi8sCi0JCQkJMUNBMTlFMTUwREMyNTVDQTAwNjVBOTk0IC8qIEV2ZW50TG9vcC5o
ICovLAogCQkJCTI2MkVDNDFDMUQxMTBCMUYwMEJBNzhGQyAvKiBFdmVudFRyYWNraW5nUmVnaW9u
cy5jcHAgKi8sCiAJCQkJMjYyRUM0MTkxRDA3OEYzRDAwQkE3OEZDIC8qIEV2ZW50VHJhY2tpbmdS
ZWdpb25zLmggKi8sCiAJCQkJOTM0RkU5RTQwQjVDQTUzOTAwM0U0QTczIC8qIEZpbGVDaG9vc2Vy
LmNwcCAqLywKQEAgLTI5MzMxLDcgKzI5MzI0LDYgQEAKIAkJCQk5NzBCNzI4QTE0NEZGQUM2MDBG
MDBBMzcgLyogRXZlbnRJbnRlcmZhY2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzVGQkM0NTA5
QkEwMEI5MDBFMjMwQjEgLyogRXZlbnRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUQ0
NDk1RjQxNDFGQzA4OTAwNTQxRURGIC8qIEV2ZW50TGlzdGVuZXJNYXAuaCBpbiBIZWFkZXJzICov
LAotCQkJCTFDQTE5RTE2MERDMjU1Q0EwMDY1QTk5NCAvKiBFdmVudExvb3AuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTgzRkU3Q0E4MURBOUYxQjYwMDM3MjM3QyAvKiBFdmVudE1vZGlmaWVySW5pdC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTM5ODg1QzQwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFt
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTlCNzE0RTIxMUM5MTE2NjkwMEFDMEU5MiAvKiBFdmVu
dFBhdGguaCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1Bh
Z2VTY3JpcHREZWJ1Z1NlcnZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5jcHAJKHJldmlzaW9uIDI1MDg1MCkKKysrIFNv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yOSw3ICsyOSw2IEBACiAKICNpbmNsdWRlICJDb21tb25WTS5oIgogI2luY2x1
ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiRXZlbnRMb29wLmgiCiAjaW5jbHVkZSAiRnJhbWUu
aCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVy
LmgiCkBAIC0xMTYsOSArMTE1LDEwIEBAIHZvaWQgUGFnZVNjcmlwdERlYnVnU2VydmVyOjpydW5F
dmVudExvb3AKIAogICAgIG1fcGFnZS5pbmNyZW1lbnROZXN0ZWRSdW5Mb29wQ291bnQoKTsKIAot
ICAgIEV2ZW50TG9vcCBsb29wOwotICAgIHdoaWxlICghbV9kb25lUHJvY2Vzc2luZ0RlYnVnZ2Vy
RXZlbnRzICYmICFsb29wLmVuZGVkKCkpCi0gICAgICAgIGxvb3AuY3ljbGUoKTsKKyAgICB3aGls
ZSAoIW1fZG9uZVByb2Nlc3NpbmdEZWJ1Z2dlckV2ZW50cykgeworICAgICAgICBpZiAoUnVuTG9v
cDo6Y3ljbGUoKSA9PSBSdW5Mb29wOjpDeWNsZVJlc3VsdDo6U3RvcCkKKyAgICAgICAgICAgIGJy
ZWFrOworICAgIH0KIAogICAgIG1fcGFnZS5kZWNyZW1lbnROZXN0ZWRSdW5Mb29wQ291bnQoKTsK
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NvdXJjZXNHTGliLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Tb3VyY2VzR0xpYi50eHQJKHJldmlzaW9u
IDI1MDg1MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NvdXJjZXNHTGliLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMjQsNyArMjQsNiBAQAogcGxhdGZvcm0vYXVkaW8vZ2xpYi9BdWRpb0J1
c0dMaWIuY3BwCiAKIHBsYXRmb3JtL2dsaWIvRXZlbnRIYW5kbGVyR0xpYi5jcHAKLXBsYXRmb3Jt
L2dsaWIvRXZlbnRMb29wR2xpYi5jcHAKIHBsYXRmb3JtL2dsaWIvRmlsZU1vbml0b3JHTGliLmNw
cAogcGxhdGZvcm0vZ2xpYi9LZXllZERlY29kZXJHbGliLmNwcAogcGxhdGZvcm0vZ2xpYi9LZXll
ZEVuY29kZXJHbGliLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9FdmVu
dExvb3BHbGliLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGli
L0V2ZW50TG9vcEdsaWIuY3BwCShyZXZpc2lvbiAyNTA4NTApCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9nbGliL0V2ZW50TG9vcEdsaWIuY3BwCShub25leGlzdGVudCkKQEAgLTEsMzIgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBOdWFudGkgTHRkLgotICoKLSAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
LSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAiRXZlbnRMb29wLmgiCi0KLSNpbmNsdWRlIDxnbGliLmg+Ci0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotdm9pZCBFdmVudExvb3A6OmN5Y2xlKCkKLXsKLSAgICBnX21h
aW5fY29udGV4dF9pdGVyYXRpb24oTlVMTCwgRkFMU0UpOwotfQotCi19IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGli
L0V2ZW50TG9vcEdsaWIuY3BwCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAt
MSArMCwwICMjCi1uYXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcGxheXN0YXRpb24vRXZlbnRMb29wUGxheVN0YXRpb24u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3BsYXlzdGF0aW9uL0V2
ZW50TG9vcFBsYXlTdGF0aW9uLmNwcAkocmV2aXNpb24gMjUwODUwKQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vcGxheXN0YXRpb24vRXZlbnRMb29wUGxheVN0YXRpb24uY3BwCShub25leGlz
dGVudCkKQEAgLTEsMzggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBTb255IElu
dGVyYWN0aXZlIEVudGVydGFpbm1lbnQgSW5jLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
Ci0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiRXZlbnRMb29wLmgiCi0KLSNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXZvaWQgRXZlbnRMb29wOjpjeWNsZSgpCi17Ci0gICAg
UnVuTG9vcDo6aXRlcmF0ZSgpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRXZlbnRMb29wV2luLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRXZlbnRMb29wV2luLmNwcAkocmV2aXNpb24g
MjUwODUwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0V2ZW50TG9vcFdpbi5jcHAJ
KG5vbmV4aXN0ZW50KQpAQCAtMSw0NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4
IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkV2ZW50
TG9vcC5oIgotCi0jaW5jbHVkZSA8d2luZG93cy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LXZvaWQgRXZlbnRMb29wOjpjeWNsZSgpCi17Ci0gICAgTVNHIG1zZzsKLSAgICBpZiAoIUdldE1l
c3NhZ2UoJm1zZywgMCwgMCwgMCkpIHsKLSAgICAgICAgbV9lbmRlZCA9IHRydWU7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0KLSAgICBUcmFuc2xhdGVNZXNzYWdlKCZtc2cpOwotICAgIERpc3Bh
dGNoTWVzc2FnZSgmbXNnKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQoKUHJvcGVydHkg
Y2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0V2ZW50TG9vcFdpbi5jcHAK
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0xICswLDAgIyMKLW5hdGl2ZQpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380494</attachid>
            <date>2019-10-08 19:27:41 -0700</date>
            <delta_ts>2019-10-08 19:46:58 -0700</delta_ts>
            <desc>Fix GTK+</desc>
            <filename>bug-202716-20191008192740.patch</filename>
            <type>text/plain</type>
            <size>32708</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDI1MDg1
MCkKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDE5LTEw
LTA4ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIE1ha2UgV2Vi
SW5zcGVjdG9yJ3MgcmVtb3RlIGRlYnVnIEV2ZW50TG9vcCBjb2RlIGludG8gUnVuTG9vcAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNzE2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXQueGN3
b3Jrc3BhY2UveGNzaGFyZWRkYXRhL1dvcmtzcGFjZVNldHRpbmdzLnhjc2V0dGluZ3M6CisKIDIw
MTktMTAtMDQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQuIFVwZGF0ZSBPcHRpb25zR1RLLmNtYWtlIGFuZCBORVdTIGZvciAy
LjI3LjEgcmVsZWFzZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTA4
ODMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjggQEAKKzIwMTktMTAtMDggIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgTWFrZSBXZWJJbnNwZWN0b3IncyByZW1vdGUgZGVidWcgRXZlbnRMb29w
IGNvZGUgaW50byBSdW5Mb29wCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDI3MTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBVcGRhdGVkIHRoZSBjb2RlIHRvIHVzZSBSdW5Mb29wOjpjeWNsZSBpbnN0ZWFk
IG9mIG5vdyBkZWxldGVkIEV2ZW50TG9vcCBjbGFzcy4KKworICAgICAgICBUaGUgcnVubG9vcCBt
b2RlIHVzZWQgaW4gQXBwbGUncyBwb3J0IGlzIG1vdmVkIHRvIFJlbW90ZUluc3BlY3Rpb25UYXJn
ZXQ6OnJ1bkxvb3BNb2RlCisgICAgICAgIHdpdGggYSBzcGVjaWFsIGNhc2UgZm9yIHdhdGNoT1Mu
CisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9KU0dsb2JhbE9iamVj
dFNjcmlwdERlYnVnU2VydmVyLmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNHbG9iYWxPYmpl
Y3RTY3JpcHREZWJ1Z1NlcnZlcjo6cnVuRXZlbnRMb29wV2hpbGVQYXVzZWQpOgorICAgICAgICAq
IGluc3BlY3Rvci9yZW1vdGUvUmVtb3RlSW5zcGVjdGlvblRhcmdldC5jcHA6CisgICAgICAgIChJ
bnNwZWN0b3I6OlJlbW90ZUluc3BlY3Rpb25UYXJnZXQ6OnBhdXNlV2FpdGluZ0ZvckF1dG9tYXRp
Y0luc3BlY3Rpb24pOgorICAgICAgICAoSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0aW9uVGFyZ2V0
OjpydW5Mb29wTW9kZSk6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9yZW1vdGUvUmVtb3Rl
SW5zcGVjdGlvblRhcmdldC5oOgorICAgICAgICAqIGluc3BlY3Rvci9yZW1vdGUvY29jb2EvUmVt
b3RlQ29ubmVjdGlvblRvVGFyZ2V0Q29jb2EubW06CisgICAgICAgIChJbnNwZWN0b3I6OlJlbW90
ZVRhcmdldEluaXRpYWxpemVHbG9iYWxRdWV1ZSk6CisgICAgICAgIChJbnNwZWN0b3I6OlJlbW90
ZUNvbm5lY3Rpb25Ub1RhcmdldDo6c2V0dXBSdW5Mb29wKToKKyAgICAgICAgKEluc3BlY3Rvcjo6
UmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0Ojp0ZWFyZG93blJ1bkxvb3ApOgorCiAyMDE5LTEwLTA4
ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbCBvdXQgcjI1MDg0OApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAkocmV2
aXNpb24gMjUwODUwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC01NTMsNyArNTUzLDYgQEAgaGVhcC9Xcml0ZUJhcnJpZXJTdXBwb3J0LmNw
cAogaW5zcGVjdG9yL0FzeW5jU3RhY2tUcmFjZS5jcHAKIGluc3BlY3Rvci9Db25zb2xlTWVzc2Fn
ZS5jcHAKIGluc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbGl0aWVzLmNwcAotaW5zcGVjdG9yL0V2
ZW50TG9vcC5jcHAKIGluc3BlY3Rvci9JZGVudGlmaWVyc0ZhY3RvcnkuY3BwCiBpbnNwZWN0b3Iv
SW5qZWN0ZWRTY3JpcHQuY3BwCiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRCYXNlLmNwcApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI1MDg1MCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CSh3b3JraW5nIGNvcHkpCkBAIC0xNDA0LDcgKzE0MDQsNiBAQAogCQlBNTM5OEZBQjFDNzUwREE0
MDA2MEE5NjMgLyogSGVhcFByb2ZpbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBNTM5OEZBQTFDNzUwRDk1MDA2MEE5NjMgLyogSGVhcFByb2ZpbGVy
LmggKi87IH07CiAJCUE1M0NFMDhBMThCQzIxQzMwMEJFREY3NiAvKiBDb25zb2xlQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTNDRTA4OTE4
QkMyMUMzMDBCRURGNzYgLyogQ29uc29sZUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE1M0YxQUMwMThDOTBGOEYwMDcyRUI2RCAvKiBm
cmFtZXdvcmsuc2IgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE1M0YxQUJFMThDOTBFQzcwMDcyRUI2RCAvKiBmcmFtZXdvcmsuc2IgKi87IH07Ci0JCUE1
NDk4MjA0MTg5MUQwQjAwMDgxRTVCOCAvKiBFdmVudExvb3AuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1NDk4MjAyMTg5MUQwQjAwMDgxRTVCOCAvKiBF
dmVudExvb3AuaCAqLzsgfTsKIAkJQTU0QzJBQjExQzY1NDRGMjAwQTE4RDc4IC8qIEhlYXBTbmFw
c2hvdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU0
QzJBQUYxQzY1NDREMTAwQTE4RDc4IC8qIEhlYXBTbmFwc2hvdC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE1NENGMkY2MTg0RUFCMjQwMDIzN0Yx
OSAvKiBTY3JpcHRWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTU0Q0YyRjMxODRFQUIyNDAwMjM3RjE5IC8qIFNjcmlwdFZhbHVlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTU0Q0YyRkExODRF
QUVEQTAwMjM3RjE5IC8qIFNjcmlwdE9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTU0Q0YyRjgxODRFQUVEQTAwMjM3RjE5IC8qIFNjcmlwdE9i
amVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBA
IC00MzM2LDggKzQzMzUsNiBAQAogCQlBNTM5OEZBQTFDNzUwRDk1MDA2MEE5NjMgLyogSGVhcFBy
b2ZpbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhlYXBQcm9maWxlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNTNDRTA4OTE4QkMyMUMzMDBCRURGNzYg
LyogQ29uc29sZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb25z
b2xlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1M0YxQUJFMThDOTBF
QzcwMDcyRUI2RCAvKiBmcmFtZXdvcmsuc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gZnJhbWV3b3JrLnNiOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlBNTQ5ODIwMTE4OTFEMEIwMDA4MUU1QjggLyogRXZlbnRMb29w
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV2ZW50TG9vcC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE1NDk4MjAyMTg5MUQwQjAwMDgxRTVCOCAv
KiBFdmVudExvb3AuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnRMb29w
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1NEMyQUFFMUM2NTQ0RDEwMEExOEQ3
OCAvKiBIZWFwU25hcHNob3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSGVhcFNuYXBzaG90LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTU0QzJB
QUYxQzY1NDREMTAwQTE4RDc4IC8qIEhlYXBTbmFwc2hvdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBIZWFwU25hcHNob3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTU0Q0YyRjIxODRFQUIyNDAwMjM3RjE5IC8qIFNjcmlwdFZhbHVlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdFZhbHVlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTg0MTMsOCArODQxMCw2IEBACiAJCQkJQTVGRDAwNzgxODlCMDUx
MDAwNjMzMjMxIC8qIENvbnNvbGVNZXNzYWdlLmggKi8sCiAJCQkJQTU3RDIzRUYxODkxQjVCNDAw
MzFDN0ZBIC8qIENvbnRlbnRTZWFyY2hVdGlsaXRpZXMuY3BwICovLAogCQkJCUE1N0QyM0YwMTg5
MUI1QjQwMDMxQzdGQSAvKiBDb250ZW50U2VhcmNoVXRpbGl0aWVzLmggKi8sCi0JCQkJQTU0OTgy
MDExODkxRDBCMDAwODFFNUI4IC8qIEV2ZW50TG9vcC5jcHAgKi8sCi0JCQkJQTU0OTgyMDIxODkx
RDBCMDAwODFFNUI4IC8qIEV2ZW50TG9vcC5oICovLAogCQkJCUE1RkQwMDcyMTg5QjAzOEMwMDYz
MzIzMSAvKiBJZGVudGlmaWVyc0ZhY3RvcnkuY3BwICovLAogCQkJCUE1RkQwMDczMTg5QjAzOEMw
MDYzMzIzMSAvKiBJZGVudGlmaWVyc0ZhY3RvcnkuaCAqLywKIAkJCQlBNTEzRTVCNTE4NUI4QkQz
MDA3RTk1QUQgLyogSW5qZWN0ZWRTY3JpcHQuY3BwICovLApAQCAtOTMyMCw3ICs5MzE1LDYgQEAK
IAkJCQlFM0VFMTM3NjIxRkJENDM1MDBEODNDNEIgLyogRXJyb3JUeXBlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxNEFEOTEwQzFEQ0E5Mjk0MDAxNEY5RkUgLyogRXZhbENvZGVCbG9jay5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMTQ3MzQxRDIxREMwMkUyRTAwQUEyOUJBIC8qIEV2YWxFeGVjdXRhYmxl
LmggaW4gSGVhZGVycyAqLywKLQkJCQlBNTQ5ODIwNDE4OTFEMEIwMDA4MUU1QjggLyogRXZlbnRM
b29wLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTFDMEZGRDFCMTkzRTk4MDBCNTNGQ0EgLyogRXhj
ZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTYwMjlEOTFENkUxRTRGMDAzMDIwNEQgLyog
RXhjZXB0aW9uRXZlbnRMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYxMkRFMTAxOTc5
RDVGRDAwMDZGRjRFIC8qIEV4Y2VwdGlvbkZ1enouaCBpbiBIZWFkZXJzICovLApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdFNjcmlwdERlYnVnU2Vy
dmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pT
R2xvYmFsT2JqZWN0U2NyaXB0RGVidWdTZXJ2ZXIuY3BwCShyZXZpc2lvbiAyNTA4NTApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0U2NyaXB0RGVidWdT
ZXJ2ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw5ICsyNiwxMCBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0U2NyaXB0RGVidWdTZXJ2ZXIuaCIKIAot
I2luY2x1ZGUgIkV2ZW50TG9vcC5oIgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVk
ZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTTG9jay5oIgorI2luY2x1ZGUgIlJlbW90ZUlu
c3BlY3Rpb25UYXJnZXQuaCIKIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIApAQCAtNTcsOSArNTgs
MTAgQEAgdm9pZCBKU0dsb2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyOjpydQogICAgIC8vIERy
b3AgYWxsIGxvY2tzIHNvIGFub3RoZXIgdGhyZWFkIGNhbiB3b3JrIGluIHRoZSBWTSB3aGlsZSB3
ZSBhcmUgbmVzdGVkLgogICAgIEpTQzo6SlNMb2NrOjpEcm9wQWxsTG9ja3MgZHJvcEFsbExvY2tz
KCZtX2dsb2JhbE9iamVjdC52bSgpKTsKIAotICAgIEV2ZW50TG9vcCBsb29wOwotICAgIHdoaWxl
ICghbV9kb25lUHJvY2Vzc2luZ0RlYnVnZ2VyRXZlbnRzICYmICFsb29wLmVuZGVkKCkpCi0gICAg
ICAgIGxvb3AuY3ljbGUoKTsKKyAgICB3aGlsZSAoIW1fZG9uZVByb2Nlc3NpbmdEZWJ1Z2dlckV2
ZW50cykgeworICAgICAgICBpZiAoUnVuTG9vcDo6Y3ljbGUoUmVtb3RlSW5zcGVjdGlvblRhcmdl
dDo6cnVuTG9vcE1vZGUoKSkgPT0gUnVuTG9vcDo6Q3ljbGVSZXN1bHQ6OlN0b3ApCisgICAgICAg
ICAgICBicmVhazsKKyAgICB9CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEluc3BlY3RvcgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlSW5zcGVjdGlvblRh
cmdldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9y
ZW1vdGUvUmVtb3RlSW5zcGVjdGlvblRhcmdldC5jcHAJKHJldmlzaW9uIDI1MDg1MCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUluc3BlY3Rpb25UYXJn
ZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw4ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoUkVN
T1RFX0lOU1BFQ1RPUikKIAotI2luY2x1ZGUgIkV2ZW50TG9vcC5oIgogI2luY2x1ZGUgIlJlbW90
ZUluc3BlY3Rvci5oIgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKIG5hbWVzcGFjZSBJbnNw
ZWN0b3IgewogCkBAIC01Nyw5ICs1NywyOCBAQCB2b2lkIFJlbW90ZUluc3BlY3Rpb25UYXJnZXQ6
OnBhdXNlV2FpdGluCiAgICAgQVNTRVJUKG1fYWxsb3dlZCk7CiAgICAgQVNTRVJUKGF1dG9tYXRp
Y0luc3BlY3Rpb25BbGxvd2VkKCkpOwogCi0gICAgRXZlbnRMb29wIGxvb3A7Ci0gICAgd2hpbGUg
KFJlbW90ZUluc3BlY3Rvcjo6c2luZ2xldG9uKCkud2FpdGluZ0ZvckF1dG9tYXRpY0luc3BlY3Rp
b24odGFyZ2V0SWRlbnRpZmllcigpKSAmJiAhbG9vcC5lbmRlZCgpKQotICAgICAgICBsb29wLmN5
Y2xlKCk7CisgICAgd2hpbGUgKFJlbW90ZUluc3BlY3Rvcjo6c2luZ2xldG9uKCkud2FpdGluZ0Zv
ckF1dG9tYXRpY0luc3BlY3Rpb24odGFyZ2V0SWRlbnRpZmllcigpKSkgeworICAgICAgICBpZiAo
UnVuTG9vcDo6Y3ljbGUocnVuTG9vcE1vZGUoKSkgPT0gUnVuTG9vcDo6Q3ljbGVSZXN1bHQ6OlN0
b3ApCisgICAgICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK1N0cmluZyBSZW1vdGVJbnNwZWN0
aW9uVGFyZ2V0OjpydW5Mb29wTW9kZSgpCit7CisjaWYgVVNFKENGKSAmJiAhUExBVEZPUk0oV0FU
Q0hPUykKKyAgICAvLyBSdW4gdGhlIFJ1bkxvb3AgaW4gYSBjdXN0b20gcnVuIGxvb3AgbW9kZSB0
byBwcmV2ZW50IGRlZmF1bHQgb2JzZXJ2ZXJzCisgICAgLy8gdG8gcnVuIGFuZCBwb3RlbnRpYWxs
eSBldmFsdWF0ZSBKYXZhU2NyaXB0IGluIHRoaXMgY29udGV4dCB3aGlsZSB3ZSBhcmUKKyAgICAv
LyBuZXN0ZWQuIE9ubHkgdGhlIGRlYnVnZ2VyIHNob3VsZCBjb250cm9sIHRoaW5ncyB1bnRpbCB3
ZSBjb250aW51ZS4KKyAgICAvLyBGSVhNRTogVGhpcyBpcyBub3QgYSBwZXJmZWN0IHNvbHV0aW9u
LCBhcyBiYWNrZ3JvdW5kIHRocmVhZHMgYXJlIG5vdAorICAgIC8vIHBhdXNlZCBhbmQgY2FuIHN0
aWxsIGFjY2VzcyBhbmQgZXZhbHV0ZSBzY3JpcHQgaW4gdGhlIEpTQ29udGV4dC4KKworICAgIC8v
IEZJWE1FOiA8cmRhcjovL3Byb2JsZW0vMjU5NzI3Nzc+LiBPbiB3YXRjaE9TLCBpbiBvcmRlciBm
b3IgYXV0by1hdHRhY2ggdG8gd29yaywKKyAgICAvLyB3ZSBuZWVkIHRvIHJ1biBpbiB0aGUgZGVm
YXVsdCBydW4gbG9vcCBtb2RlIG90aGVyd2lzZSB3ZSBkbyBub3QgcmVjZWl2ZSB0aGUgWFBDIG1l
c3NhZ2VzCisgICAgLy8gbmVjZXNzYXJ5IHRvIHNldHVwIHRoZSByZWxheSBjb25uZWN0aW9uIGFu
ZCBuZWdvdGlhdGUgYW4gYXV0by1hdHRhY2ggZGVidWdnZXIuCisgICAgcmV0dXJuICJjb20uYXBw
bGUuSmF2YVNjcmlwdENvcmUucmVtb3RlLWluc3BlY3Rvci1ydW5sb29wLW1vZGUiOworI2Vsc2UK
KyAgICByZXR1cm4geyB9OworI2VuZGlmCiB9CiAKIHZvaWQgUmVtb3RlSW5zcGVjdGlvblRhcmdl
dDo6dW5wYXVzZUZvckluaXRpYWxpemVkSW5zcGVjdG9yKCkKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUluc3BlY3Rpb25UYXJnZXQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVJbnNw
ZWN0aW9uVGFyZ2V0LmgJKHJldmlzaW9uIDI1MDg1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUluc3BlY3Rpb25UYXJnZXQuaAkod29ya2luZyBjb3B5
KQpAQCAtNTksNiArNTksOCBAQCBwdWJsaWM6CiAgICAgLy8gUmVtb3RlQ29udHJvbGxhYmxlVGFy
Z2V0IG92ZXJyaWRlcy4KICAgICBib29sIHJlbW90ZUNvbnRyb2xBbGxvd2VkKCkgY29uc3QgZmlu
YWw7CiAKKyAgICBzdGF0aWMgU3RyaW5nIHJ1bkxvb3BNb2RlKCk7CisKIHByaXZhdGU6CiAgICAg
Ym9vbCBtX2FsbG93ZWQgeyBmYWxzZSB9OwogI2lmIFVTRShDRikKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL2NvY29hL1JlbW90ZUNvbm5lY3Rpb25Ub1Rhcmdl
dENvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
cmVtb3RlL2NvY29hL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldENvY29hLm1tCShyZXZpc2lvbiAy
NTA4NTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9jb2NvYS9S
ZW1vdGVDb25uZWN0aW9uVG9UYXJnZXRDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMjgsMTIg
KzI4LDEyIEBACiAKICNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKIAotI2ltcG9ydCAiRXZl
bnRMb29wLmgiCiAjaW1wb3J0ICJSZW1vdGVBdXRvbWF0aW9uVGFyZ2V0LmgiCiAjaW1wb3J0ICJS
ZW1vdGVJbnNwZWN0aW9uVGFyZ2V0LmgiCiAjaW1wb3J0ICJSZW1vdGVJbnNwZWN0b3IuaCIKICNp
bXBvcnQgPGRpc3BhdGNoL2Rpc3BhdGNoLmg+CiAjaW1wb3J0IDx3dGYvT3B0aW9uYWwuaD4KKyNp
bXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogI2ltcG9y
dCA8d3RmL2lvcy9XZWJDb3JlVGhyZWFkLmg+CkBAIC04Nyw3ICs4Nyw3IEBAIHN0YXRpYyB2b2lk
IFJlbW90ZVRhcmdldEluaXRpYWxpemVHbG9iYWwKIAogICAgICAgICAvLyBBZGQgdG8gdGhlIGRl
ZmF1bHQgcnVuIGxvb3AgbW9kZSBmb3IgZGVmYXVsdCBoYW5kbGluZywgYW5kIHRoZSBKU0NvbnRl
eHQgcmVtb3RlIGluc3BlY3RvciBydW4gbG9vcCBtb2RlIHdoZW4gcGF1c2VkLgogICAgICAgICBD
RlJ1bkxvb3BBZGRTb3VyY2UoQ0ZSdW5Mb29wR2V0TWFpbigpLCByd2lSdW5Mb29wU291cmNlLCBr
Q0ZSdW5Mb29wRGVmYXVsdE1vZGUpOwotICAgICAgICBDRlJ1bkxvb3BBZGRTb3VyY2UoQ0ZSdW5M
b29wR2V0TWFpbigpLCByd2lSdW5Mb29wU291cmNlLCBFdmVudExvb3A6OnJlbW90ZUluc3BlY3Rv
clJ1bkxvb3BNb2RlKCkpOworICAgICAgICBDRlJ1bkxvb3BBZGRTb3VyY2UoQ0ZSdW5Mb29wR2V0
TWFpbigpLCByd2lSdW5Mb29wU291cmNlLCBSZW1vdGVJbnNwZWN0aW9uVGFyZ2V0OjpydW5Mb29w
TW9kZSgpLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpOwogICAgIH0pOwogfQogCkBAIC0yNTgsNyAr
MjU4LDcgQEAgdm9pZCBSZW1vdGVDb25uZWN0aW9uVG9UYXJnZXQ6OnNldHVwUnVuTAogICAgIG1f
cnVuTG9vcFNvdXJjZSA9IGFkb3B0Q0YoQ0ZSdW5Mb29wU291cmNlQ3JlYXRlKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIDEsICZydW5Mb29wU291cmNlQ29udGV4dCkpOwogCiAgICAgQ0ZSdW5Mb29wQWRk
U291cmNlKG1fcnVuTG9vcC5nZXQoKSwgbV9ydW5Mb29wU291cmNlLmdldCgpLCBrQ0ZSdW5Mb29w
RGVmYXVsdE1vZGUpOwotICAgIENGUnVuTG9vcEFkZFNvdXJjZShtX3J1bkxvb3AuZ2V0KCksIG1f
cnVuTG9vcFNvdXJjZS5nZXQoKSwgRXZlbnRMb29wOjpyZW1vdGVJbnNwZWN0b3JSdW5Mb29wTW9k
ZSgpKTsKKyAgICBDRlJ1bkxvb3BBZGRTb3VyY2UobV9ydW5Mb29wLmdldCgpLCBtX3J1bkxvb3BT
b3VyY2UuZ2V0KCksIFJlbW90ZUluc3BlY3Rpb25UYXJnZXQ6OnJ1bkxvb3BNb2RlKCkuY3JlYXRl
Q0ZTdHJpbmcoKS5nZXQoKSk7CiB9CiAKIHZvaWQgUmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0Ojp0
ZWFyZG93blJ1bkxvb3AoKQpAQCAtMjY3LDcgKzI2Nyw3IEBAIHZvaWQgUmVtb3RlQ29ubmVjdGlv
blRvVGFyZ2V0Ojp0ZWFyZG93blIKICAgICAgICAgcmV0dXJuOwogCiAgICAgQ0ZSdW5Mb29wUmVt
b3ZlU291cmNlKG1fcnVuTG9vcC5nZXQoKSwgbV9ydW5Mb29wU291cmNlLmdldCgpLCBrQ0ZSdW5M
b29wRGVmYXVsdE1vZGUpOwotICAgIENGUnVuTG9vcFJlbW92ZVNvdXJjZShtX3J1bkxvb3AuZ2V0
KCksIG1fcnVuTG9vcFNvdXJjZS5nZXQoKSwgRXZlbnRMb29wOjpyZW1vdGVJbnNwZWN0b3JSdW5M
b29wTW9kZSgpKTsKKyAgICBDRlJ1bkxvb3BSZW1vdmVTb3VyY2UobV9ydW5Mb29wLmdldCgpLCBt
X3J1bkxvb3BTb3VyY2UuZ2V0KCksIFJlbW90ZUluc3BlY3Rpb25UYXJnZXQ6OnJ1bkxvb3BNb2Rl
KCkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7CiAKICAgICBtX3J1bkxvb3AgPSBudWxscHRyOwog
ICAgIG1fcnVuTG9vcFNvdXJjZSA9IG51bGxwdHI7CkluZGV4OiBTb3VyY2UvV1RGL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL0NoYW5nZUxvZwkocmV2aXNpb24gMjUwODUwKQor
KysgU291cmNlL1dURi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMyBAQAor
MjAxOS0xMC0wOCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBN
YWtlIFdlYkluc3BlY3RvcidzIHJlbW90ZSBkZWJ1ZyBFdmVudExvb3AgY29kZSBpbnRvIFJ1bkxv
b3AKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjcx
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggbWVyZ2VzIFdlYkluc3BlY3RvcidzIEV2ZW50TG9vcCBjb2RlIGludG8gUnVuTG9vcCBh
cyBhIHN0YXRpYyBmdW5jdGlvbi4KKworICAgICAgICAqIHd0Zi9SdW5Mb29wLmg6CisgICAgICAg
IChXVEY6OlJ1bkxvb3A6OmN5Y2xlKToKKyAgICAgICAgKiB3dGYvY2YvUnVuTG9vcENGLmNwcDoK
KyAgICAgICAgKFdURjo6UnVuTG9vcDo6Y3ljbGUpOiBBZGRlZC4KKyAgICAgICAgKiB3dGYvZ2Vu
ZXJpYy9SdW5Mb29wR2VuZXJpYy5jcHA6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OmN5Y2xlKTog
QWRkZWQuCisgICAgICAgICogd3RmL2dsaWIvUnVuTG9vcEdMaWIuY3BwOgorICAgICAgICAoV1RG
OjpSdW5Mb29wOjpjeWNsZSk6IEFkZGVkLgorICAgICAgICAqIHd0Zi93aW4vUnVuTG9vcFdpbi5j
cHA6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OmN5Y2xlKTogQWRkZWQuCisKIDIwMTktMTAtMDcg
IEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgQnVpbGQgZmFp
bHVyZSBpbiBXZWJIVE1MVmlldy5tbSB3aXRoIHRoZSBwdWJsaWMgU0RLIChYY29kZSAxMSBhbmQg
TW9qYXZlKQpJbmRleDogU291cmNlL1dURi93dGYvUnVuTG9vcC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XVEYvd3RmL1J1bkxvb3AuaAkocmV2aXNpb24gMjUwODUwKQorKysgU291cmNlL1dURi93
dGYvUnVuTG9vcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSA8
d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CiAjaW5jbHVkZSA8d3Rm
L1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
IAogI2lmIFVTRShHTElCX0VWRU5UX0xPT1ApCiAjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5o
PgpAQCAtNjAsNiArNjEsOSBAQCBwdWJsaWM6CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQg
c3RvcCgpOwogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHdha2VVcCgpOwogCisgICAgZW51
bSBjbGFzcyBDeWNsZVJlc3VsdCB7IENvbnRpbnVlLCBTdG9wIH07CisgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIEN5Y2xlUmVzdWx0IHN0YXRpYyBjeWNsZShTdHJpbmcgPSB7IH0pOworCiAjaWYgVVNF
KENPQ09BX0VWRU5UX0xPT1ApCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgcnVuRm9yRHVy
YXRpb24oU2Vjb25kcyBkdXJhdGlvbik7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL2Nm
L1J1bkxvb3BDRi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvY2YvUnVuTG9vcENG
LmNwcAkocmV2aXNpb24gMjUwODUwKQorKysgU291cmNlL1dURi93dGYvY2YvUnVuTG9vcENGLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNjIsNiArNjIsMTMgQEAgdm9pZCBSdW5Mb29wOjp3YWtlVXAo
KQogICAgIENGUnVuTG9vcFdha2VVcChtX3J1bkxvb3AuZ2V0KCkpOwogfQogCitSdW5Mb29wOjpD
eWNsZVJlc3VsdCBSdW5Mb29wOjpjeWNsZShTdHJpbmcgbW9kZSkKK3sKKyAgICBDRlRpbWVJbnRl
cnZhbCB0aW1lSW50ZXJ2YWwgPSAwLjA1OworICAgIENGUnVuTG9vcFJ1bkluTW9kZShtb2RlLmlz
TnVsbCgpID8ga0NGUnVuTG9vcERlZmF1bHRNb2RlIDogbW9kZS5jcmVhdGVDRlN0cmluZygpLmdl
dCgpLCB0aW1lSW50ZXJ2YWwsIHRydWUpOworICAgIHJldHVybiBDeWNsZVJlc3VsdDo6Q29udGlu
dWU7Cit9CisKIHZvaWQgUnVuTG9vcDo6cnVuKCkKIHsKICAgICBBdXRvZHJhaW5lZFBvb2wgcG9v
bDsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL2dlbmVyaWMvUnVuTG9vcEdlbmVyaWMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL2dlbmVyaWMvUnVuTG9vcEdlbmVyaWMuY3BwCShyZXZp
c2lvbiAyNTA4NTApCisrKyBTb3VyY2UvV1RGL3d0Zi9nZW5lcmljL1J1bkxvb3BHZW5lcmljLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjE4LDYgKzIxOCwxMSBAQCB2b2lkIFJ1bkxvb3A6Ondha2VV
cCgpCiAgICAgd2FrZVVwKGxvY2tlcik7CiB9CiAKK1J1bkxvb3A6OkN5Y2xlUmVzdWx0IFJ1bkxv
b3A6OmN5Y2xlKFN0cmluZykKK3sKKyAgICBpdGVyYXRlKCk7Cit9CisKIHZvaWQgUnVuTG9vcDo6
c2NoZWR1bGUoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBSZWY8VGltZXJCYXNlOjpTY2hlZHVsZWRU
YXNrPiYmIHRhc2spCiB7CiAgICAgbV9zY2hlZHVsZXMuYXBwZW5kKHRhc2sucHRyKCkpOwpJbmRl
eDogU291cmNlL1dURi93dGYvZ2xpYi9SdW5Mb29wR0xpYi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dURi93dGYvZ2xpYi9SdW5Mb29wR0xpYi5jcHAJKHJldmlzaW9uIDI1MDg1MCkKKysrIFNv
dXJjZS9XVEYvd3RmL2dsaWIvUnVuTG9vcEdMaWIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjMs
NiArMTIzLDEyIEBAIHZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKICAgICBnX3NvdXJjZV9zZXRfcmVh
ZHlfdGltZShtX3NvdXJjZS5nZXQoKSwgMCk7CiB9CiAKK1J1bkxvb3A6OkN5Y2xlUmVzdWx0IFJ1
bkxvb3A6OmN5Y2xlKFN0cmluZykKK3sKKyAgICBnX21haW5fY29udGV4dF9pdGVyYXRpb24oTlVM
TCwgRkFMU0UpOworICAgIHJldHVybiBDeWNsZVJlc3VsdDo6Q29udGludWU7Cit9CisKIGNsYXNz
IERpc3BhdGNoQWZ0ZXJDb250ZXh0IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1
YmxpYzoKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL3dpbi9SdW5Mb29wV2luLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV1RGL3d0Zi93aW4vUnVuTG9vcFdpbi5jcHAJKHJldmlzaW9uIDI1MDg1MCkK
KysrIFNvdXJjZS9XVEYvd3RmL3dpbi9SdW5Mb29wV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTIwLDYgKzEyMCwyMCBAQCB2b2lkIFJ1bkxvb3A6Ondha2VVcCgpCiAgICAgOjpQb3N0TWVzc2Fn
ZShtX3J1bkxvb3BNZXNzYWdlV2luZG93LCBQZXJmb3JtV29ya01lc3NhZ2UsIHJlaW50ZXJwcmV0
X2Nhc3Q8V1BBUkFNPih0aGlzKSwgMCk7CiB9CiAKK1J1bkxvb3A6OkN5Y2xlUmVzdWx0IFJ1bkxv
b3A6OmN5Y2xlKFN0cmluZykKK3sKKyAgICBNU0cgbXNnOworICAgIGlmICghR2V0TWVzc2FnZSgm
bXNnLCAwLCAwLCAwKSkgeworICAgICAgICBtX2VuZGVkID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJu
IEN5Y2xlUmVzdWx0OjpTdG9wOworICAgIH0KKworICAgIFRyYW5zbGF0ZU1lc3NhZ2UoJm1zZyk7
CisgICAgRGlzcGF0Y2hNZXNzYWdlKCZtc2cpOworCisgICAgcmV0dXJuIEN5Y2xlUmVzdWx0OjpD
b250aW51ZTsKK30KKwogLy8gUnVuTG9vcDo6VGltZXIKIAogdm9pZCBSdW5Mb29wOjpUaW1lckJh
c2U6OnRpbWVyRmlyZWQoKQpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjUwODUwKQorKysgU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIw
MTktMTAtMDggIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTWFr
ZSBXZWJJbnNwZWN0b3IncyByZW1vdGUgZGVidWcgRXZlbnRMb29wIGNvZGUgaW50byBSdW5Mb29w
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI3MTYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgUnVu
TG9vcDo6Y3ljbGUuCisKKyAgICAgICAgKiBQbGF0Zm9ybUZUVy5jbWFrZToKKyAgICAgICAgKiBQ
bGF0Zm9ybVBsYXlTdGF0aW9uLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtV2luLmNtYWtlOgor
ICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGluc3BlY3Rvci9QYWdlU2NyaXB0RGVidWdTZXJ2
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZVNjcmlwdERlYnVnU2VydmVyOjpydW5FdmVu
dExvb3BXaGlsZVBhdXNlZEludGVybmFsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9Tb3VyY2VzR0xp
Yi50eHQ6CisgICAgICAgICogcGxhdGZvcm0vZ2xpYi9FdmVudExvb3BHbGliLmNwcDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9wbGF5c3RhdGlvbi9FdmVudExvb3BQbGF5U3RhdGlvbi5j
cHA6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vd2luL0V2ZW50TG9vcFdpbi5jcHA6IFJl
bW92ZWQuCisKIDIwMTktMTAtMDggIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwu
Y29tPgogCiAgICAgICAgIEFjY2VwdCB0d28gdmFsdWVzIGluIHRoZSBvdmVyZmxvdyBzaG9ydGhh
bmQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRlRXLmNtYWtlCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRlRXLmNtYWtlCShyZXZpc2lvbiAyNTA4NTApCisrKyBT
b3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUZUVy5jbWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTE3LDcg
KzExNyw2IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL3dpbi9E
cmFnRGF0YVdpbi5jcHAKICAgICBwbGF0Zm9ybS93aW4vRHJhZ0ltYWdlRGlyZWN0MkQuY3BwCiAg
ICAgcGxhdGZvcm0vd2luL0RyYWdJbWFnZVdpbi5jcHAKLSAgICBwbGF0Zm9ybS93aW4vRXZlbnRM
b29wV2luLmNwcAogICAgIHBsYXRmb3JtL3dpbi9HRElPYmplY3RDb3VudGVyLmNwcAogICAgIHBs
YXRmb3JtL3dpbi9HRElVdGlsaXRpZXMuY3BwCiAgICAgcGxhdGZvcm0vd2luL0ltcG9ydGVkRnVu
Y3Rpb25zRW51bWVyYXRvci5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BsYXRmb3JtUGxheVN0
YXRpb24uY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvUGxhdGZvcm1QbGF5U3Rh
dGlvbi5jbWFrZQkocmV2aXNpb24gMjUwODUwKQorKysgU291cmNlL1dlYkNvcmUvUGxhdGZvcm1Q
bGF5U3RhdGlvbi5jbWFrZQkod29ya2luZyBjb3B5KQpAQCAtNTgsNyArNTgsNiBAQCBsaXN0KEFQ
UEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9uZXR3b3JrL3BsYXlzdGF0aW9uL0N1
cmxTU0xIYW5kbGVQbGF5U3RhdGlvbi5jcHAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL3BsYXlzdGF0
aW9uL05ldHdvcmtTdGF0ZU5vdGlmaWVyUGxheVN0YXRpb24uY3BwCiAKLSAgICBwbGF0Zm9ybS9w
bGF5c3RhdGlvbi9FdmVudExvb3BQbGF5U3RhdGlvbi5jcHAKICAgICBwbGF0Zm9ybS9wbGF5c3Rh
dGlvbi9NSU1FVHlwZVJlZ2lzdHJ5UGxheVN0YXRpb24uY3BwCiAgICAgcGxhdGZvcm0vcGxheXN0
YXRpb24vUGxhdGZvcm1TY3JlZW5QbGF5U3RhdGlvbi5jcHAKICAgICBwbGF0Zm9ybS9wbGF5c3Rh
dGlvbi9TY3JvbGxiYXJUaGVtZVBsYXlTdGF0aW9uLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUv
UGxhdGZvcm1XaW4uY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvUGxhdGZvcm1X
aW4uY21ha2UJKHJldmlzaW9uIDI1MDg1MCkKKysrIFNvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2lu
LmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC04Miw3ICs4Miw2IEBAIGxpc3QoQVBQRU5EIFdlYkNv
cmVfU09VUkNFUwogICAgIHBsYXRmb3JtL3dpbi9EZWZXbmRQcm9jV2luZG93Q2xhc3MuY3BwCiAg
ICAgcGxhdGZvcm0vd2luL0RyYWdEYXRhV2luLmNwcAogICAgIHBsYXRmb3JtL3dpbi9EcmFnSW1h
Z2VXaW4uY3BwCi0gICAgcGxhdGZvcm0vd2luL0V2ZW50TG9vcFdpbi5jcHAKICAgICBwbGF0Zm9y
bS93aW4vR0RJT2JqZWN0Q291bnRlci5jcHAKICAgICBwbGF0Zm9ybS93aW4vR0RJVXRpbGl0aWVz
LmNwcAogICAgIHBsYXRmb3JtL3dpbi9LZXlFdmVudFdpbi5jcHAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL1NvdXJjZXNDb2NvYS50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvU291cmNl
c0NvY29hLnR4dAkocmV2aXNpb24gMjUwODUwKQorKysgU291cmNlL1dlYkNvcmUvU291cmNlc0Nv
Y29hLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMzg1LDcgKzM4NSw2IEBAIHBsYXRmb3JtL2lvcy9E
ZXZpY2UuY3BwCiBwbGF0Zm9ybS9pb3MvRGV2aWNlTW90aW9uQ2xpZW50SU9TLm1tCiBwbGF0Zm9y
bS9pb3MvRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MubW0KIHBsYXRmb3JtL2lvcy9EcmFnSW1h
Z2VJT1MubW0KLXBsYXRmb3JtL2lvcy9FdmVudExvb3BJT1MubW0KIHBsYXRmb3JtL2lvcy9LZXlF
dmVudElPUy5tbQogcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVDYWNoZS5tbQogcGxhdGZvcm0vaW9z
L0xlZ2FjeVRpbGVHcmlkLm1tCkBAIC00MzUsNyArNDM0LDYgQEAgcGxhdGZvcm0vbWFjL0JsYWNr
bGlzdFVwZGF0ZXIubW0KIHBsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0KIHBsYXRmb3JtL21hYy9E
cmFnRGF0YU1hYy5tbQogcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbQotcGxhdGZvcm0vbWFj
L0V2ZW50TG9vcE1hYy5tbQogcGxhdGZvcm0vbWFjL0tleUV2ZW50TWFjLm1tIEBuby11bmlmeQog
cGxhdGZvcm0vbWFjL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYy5tbSBAbm8tdW5pZnkKIHBs
YXRmb3JtL21hYy9Mb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQubW0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9u
IDI1MDg1MCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtNjE5LDcgKzYxOSw2IEBACiAJCTFDNzNBNzE1MjE4NTc1
ODcwMDRDQ0VBNSAvKiBUZXh0RGVjb3JhdGlvblRoaWNrbmVzcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNCNkI0RjgyMTdCODM5MzAwOTNCOUNEIC8q
IFRleHREZWNvcmF0aW9uVGhpY2tuZXNzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUM4MUI5NUEwRTk3MzMwODAwMjY2RTA3IC8qIEluc3BlY3Rv
ckNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFDODFCOTU2MEU5NzMzMDgwMDI2NkUwNyAvKiBJbnNwZWN0b3JDb250cm9sbGVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUM4MUI5NUMw
RTk3MzMwODAwMjY2RTA3IC8qIEluc3BlY3RvckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM4MUI5NTgwRTk3MzMwODAwMjY2RTA3IC8qIElu
c3BlY3RvckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07Ci0JCTFDQTE5RTE2MERDMjU1Q0EwMDY1QTk5NCAvKiBFdmVudExvb3AuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQTE5RTE1MERDMjU1Q0Ew
MDY1QTk5NCAvKiBFdmVudExvb3AuaCAqLzsgfTsKIAkJMUNBRjM0ODEwQTZDNDA1MjAwQUJFMDZF
IC8qIFdlYlNjcmlwdE9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUNBRjM0N0UwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFDQUYz
NDgyMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FGMzQ3RjBBNkM0MDUyMDBBQkUwNkUg
LyogV2ViU2NyaXB0T2JqZWN0Lm1tICovOyB9OwogCQkxQ0FGMzQ4MzBBNkM0MDUyMDBBQkUwNkUg
LyogV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUNBRjM0ODAwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9i
amVjdFByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwpAQCAtNjM5NCw4ICs2MzkzLDYgQEAKIAkJMUNBMEMyRTUyMUVFRDEyQTAwQTExODYwIC8q
IFdITFNMRnVuY3Rpb25TdGFnZUNoZWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xGdW5jdGlv
blN0YWdlQ2hlY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0EwQzJFQTIx
RUVENkY1MDBBMTE4NjAgLyogV0hMU0xMaXRlcmFsVHlwZUNoZWNrZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV0hMU0xMaXRlcmFsVHlwZUNoZWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMUNBMEMyRUMyMUVFRDZGNjAwQTExODYwIC8qIFdITFNMTGl0ZXJhbFR5cGVDaGVja2VyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdITFNMTGl0ZXJhbFR5cGVDaGVja2VyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUNBMTlFMDMwREMyNTU5NTAwNjVBOTk0IC8qIEV2ZW50
TG9vcE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEV2ZW50
TG9vcE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUNBMTlFMTUwREMyNTVD
QTAwNjVBOTk0IC8qIEV2ZW50TG9vcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBFdmVudExvb3AuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBQTgyRjYyMjQy
QUUwNTAwRTg0QkJCIC8qIFdITFNMUHJvcGVydHlSZXNvbHZlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXSExTTFByb3BlcnR5UmVzb2x2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxQ0FBODJGNzIyNDJBRTA1MDBFODRCQkIgLyogV0hMU0xQcm9wZXJ0eVJlc29sdmVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdITFNMUHJvcGVydHlSZXNvbHZlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQ0FGMzQ3RTBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNjcmlwdE9iamVjdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjUyNSw3ICs2NTIyLDYgQEAKIAkJMjZGMEM4
OUExQTJFQzExMDAwMjc5NEY4IC8qIENvbnRlbnRFeHRlbnNpb25SdWxlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnRlbnRFeHRlbnNpb25SdWxlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTI2RjBDODlEMUEyRUMzQkUwMDI3OTRGOCAvKiBDb250ZW50RXh0
ZW5zaW9uc0JhY2tlbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Q29udGVudEV4dGVuc2lvbnNCYWNrZW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMjZGMEM4OUUxQTJFQzNCRTAwMjc5NEY4IC8qIENvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb250ZW50RXh0ZW5zaW9uc0JhY2tl
bmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMjZGNDBENDkxNDkwNEE2MzAwQ0E2
N0M0IC8qIEV2ZW50TG9vcElPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IEV2ZW50TG9vcElPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjZG
NzU2QUUxQjNCNjVBQzAwMDVERDc5IC8qIE11dGFibGVSYW5nZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBNdXRhYmxlUmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMjZGNzU2QUYxQjNCNjVBQzAwMDVERDc5IC8qIE11dGFibGVSYW5nZUxpc3QuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTXV0YWJsZVJhbmdlTGlzdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkyNkY3NTZCMjFCM0I2NkY3MDAwNURENzkgLyogSW1tdXRh
YmxlTkZBLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltbXV0YWJsZU5GQS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjAxNzEsNyArMjAxNjcsNiBAQAogCQkJ
CUE3OTU0NjNEMEI1QzRDODAwMDdCNDM4RiAvKiBEcmFnRGF0YU1hYy5tbSAqLywKIAkJCQlBN0NG
QjNENDBCN0VEMTE4MDA3MEMzMkQgLyogRHJhZ0ltYWdlTWFjLm1tICovLAogCQkJCUUxQkE2NkYw
MTc0MkJEODYwMEMyMDI1MSAvKiBEeW5hbWljTGlua2VySW50ZXJwb3NpbmcuaCAqLywKLQkJCQkx
Q0ExOUUwMzBEQzI1NTk1MDA2NUE5OTQgLyogRXZlbnRMb29wTWFjLm1tICovLAogCQkJCTkzNUM0
NzZFMDlBQzRENzMwMEE2QUFCNCAvKiBLZXlFdmVudE1hYy5tbSAqLywKIAkJCQlGNDRBNUY1NzFG
RUQzODMwMDA3RjU5NDQgLyogTGVnYWN5TlNQYXN0ZWJvYXJkVHlwZXMuaCAqLywKIAkJCQkwNkU4
MUVENjBBQjVENUU5MDBDODc4MzcgLyogTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0LmggKi8s
CkBAIC0yMjUzOSw3ICsyMjUzNCw2IEBACiAJCQkJMzE0MDM3OTkxMjRCRUE3RjAwQUY0MEU0IC8q
IERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmggKi8sCiAJCQkJMzE0MDM3OUExMjRCRUE3RjAw
QUY0MEU0IC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLm1tICovLAogCQkJCTBGREE3QzIy
MTg4MzMwQTkwMEM5NTRCNSAvKiBEcmFnSW1hZ2VJT1MubW0gKi8sCi0JCQkJMjZGNDBENDkxNDkw
NEE2MzAwQ0E2N0M0IC8qIEV2ZW50TG9vcElPUy5tbSAqLywKIAkJCQkyNjU1NDEzNzE0ODk4MTFD
MDAwREZDNUQgLyogS2V5RXZlbnRDb2Rlc0lPUy5oICovLAogCQkJCTI2NTU0MTM4MTQ4OTgxMUMw
MDBERkM1RCAvKiBLZXlFdmVudElPUy5tbSAqLywKIAkJCQlFNEMzQjFGOTBGMEU0MTYxMDA5Njkz
RjYgLyogTGVnYWN5VGlsZUNhY2hlLmggKi8sCkBAIC0yNTUyMiw3ICsyNTUxNiw2IEBACiAJCQkJ
QTdDRkIzQ0YwQjdFRDEwQTAwNzBDMzJEIC8qIERyYWdJbWFnZS5jcHAgKi8sCiAJCQkJQTdDRkIz
RDAwQjdFRDEwQTAwNzBDMzJEIC8qIERyYWdJbWFnZS5oICovLAogCQkJCTFBRjVFNEQ3MUU1Njc3
QTkwMDRBMUYwMSAvKiBEcmFnSXRlbS5oICovLAotCQkJCTFDQTE5RTE1MERDMjU1Q0EwMDY1QTk5
NCAvKiBFdmVudExvb3AuaCAqLywKIAkJCQkyNjJFQzQxQzFEMTEwQjFGMDBCQTc4RkMgLyogRXZl
bnRUcmFja2luZ1JlZ2lvbnMuY3BwICovLAogCQkJCTI2MkVDNDE5MUQwNzhGM0QwMEJBNzhGQyAv
KiBFdmVudFRyYWNraW5nUmVnaW9ucy5oICovLAogCQkJCTkzNEZFOUU0MEI1Q0E1MzkwMDNFNEE3
MyAvKiBGaWxlQ2hvb3Nlci5jcHAgKi8sCkBAIC0yOTMzMSw3ICsyOTMyNCw2IEBACiAJCQkJOTcw
QjcyOEExNDRGRkFDNjAwRjAwQTM3IC8qIEV2ZW50SW50ZXJmYWNlcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTM1RkJDNDUwOUJBMDBCOTAwRTIzMEIxIC8qIEV2ZW50TGlzdGVuZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUFENDQ5NUY0MTQxRkMwODkwMDU0MUVERiAvKiBFdmVudExpc3RlbmVyTWFw
LmggaW4gSGVhZGVycyAqLywKLQkJCQkxQ0ExOUUxNjBEQzI1NUNBMDA2NUE5OTQgLyogRXZlbnRM
b29wLmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0ZFN0NBODFEQTlGMUI2MDAzNzIzN0MgLyogRXZl
bnRNb2RpZmllckluaXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzOTg4NUM0MDhCN0UzRDEwMEU3
MDdDNCAvKiBFdmVudE5hbWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5QjcxNEUyMTFDOTExNjY5
MDBBQzBFOTIgLyogRXZlbnRQYXRoLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9QYWdlU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCShyZXZpc2lv
biAyNTA4NTApCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVNjcmlwdERlYnVnU2Vy
dmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNiBAQAogCiAjaW5jbHVkZSAiQ29t
bW9uVk0uaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkV2ZW50TG9vcC5oIgog
I2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSW5z
cGVjdG9yQ29udHJvbGxlci5oIgpAQCAtMTE2LDkgKzExNSwxMCBAQCB2b2lkIFBhZ2VTY3JpcHRE
ZWJ1Z1NlcnZlcjo6cnVuRXZlbnRMb29wCiAKICAgICBtX3BhZ2UuaW5jcmVtZW50TmVzdGVkUnVu
TG9vcENvdW50KCk7CiAKLSAgICBFdmVudExvb3AgbG9vcDsKLSAgICB3aGlsZSAoIW1fZG9uZVBy
b2Nlc3NpbmdEZWJ1Z2dlckV2ZW50cyAmJiAhbG9vcC5lbmRlZCgpKQotICAgICAgICBsb29wLmN5
Y2xlKCk7CisgICAgd2hpbGUgKCFtX2RvbmVQcm9jZXNzaW5nRGVidWdnZXJFdmVudHMpIHsKKyAg
ICAgICAgaWYgKFJ1bkxvb3A6OmN5Y2xlKCkgPT0gUnVuTG9vcDo6Q3ljbGVSZXN1bHQ6OlN0b3Ap
CisgICAgICAgICAgICBicmVhazsKKyAgICB9CiAKICAgICBtX3BhZ2UuZGVjcmVtZW50TmVzdGVk
UnVuTG9vcENvdW50KCk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Tb3VyY2Vz
R0xpYi50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU291cmNlc0dM
aWIudHh0CShyZXZpc2lvbiAyNTA4NTApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Tb3Vy
Y2VzR0xpYi50eHQJKHdvcmtpbmcgY29weSkKQEAgLTI0LDcgKzI0LDYgQEAKIHBsYXRmb3JtL2F1
ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcAogCiBwbGF0Zm9ybS9nbGliL0V2ZW50SGFuZGxlckdM
aWIuY3BwCi1wbGF0Zm9ybS9nbGliL0V2ZW50TG9vcEdsaWIuY3BwCiBwbGF0Zm9ybS9nbGliL0Zp
bGVNb25pdG9yR0xpYi5jcHAKIHBsYXRmb3JtL2dsaWIvS2V5ZWREZWNvZGVyR2xpYi5jcHAKIHBs
YXRmb3JtL2dsaWIvS2V5ZWRFbmNvZGVyR2xpYi5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dsaWIvRXZlbnRMb29wR2xpYi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ2xpYi9FdmVudExvb3BHbGliLmNwcAkocmV2aXNpb24gMjUwODUwKQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9FdmVudExvb3BHbGliLmNwcAkobm9uZXhpc3Rl
bnQpCkBAIC0xLDMyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggTnVhbnRpIEx0
ZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
Ci0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkV2ZW50TG9vcC5oIgotCi0jaW5jbHVk
ZSA8Z2xpYi5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXZvaWQgRXZlbnRMb29wOjpjeWNs
ZSgpCi17Ci0gICAgZ19tYWluX2NvbnRleHRfaXRlcmF0aW9uKE5VTEwsIEZBTFNFKTsKLX0KLQot
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ2xpYi9FdmVudExvb3BHbGliLmNwcApfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2
bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
cHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3BsYXlzdGF0aW9uL0V2ZW50
TG9vcFBsYXlTdGF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9wbGF5c3RhdGlvbi9FdmVudExvb3BQbGF5U3RhdGlvbi5jcHAJKHJldmlzaW9uIDI1MDg1MCkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3BsYXlzdGF0aW9uL0V2ZW50TG9vcFBsYXlTdGF0
aW9uLmNwcAkobm9uZXhpc3RlbnQpCkBAIC0xLDM4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTggU29ueSBJbnRlcmFjdGl2ZSBFbnRlcnRhaW5tZW50IEluYy4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkV2ZW50TG9vcC5oIgotCi0jaW5jbHVkZSA8
d3RmL1J1bkxvb3AuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi12b2lkIEV2ZW50TG9vcDo6
Y3ljbGUoKQotewotICAgIFJ1bkxvb3A6Oml0ZXJhdGUoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0V2ZW50TG9vcFdpbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0V2ZW50TG9vcFdp
bi5jcHAJKHJldmlzaW9uIDI1MDg1MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9F
dmVudExvb3BXaW4uY3BwCShub25leGlzdGVudCkKQEAgLTEsNDUgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIK
LSNpbmNsdWRlICJFdmVudExvb3AuaCIKLQotI2luY2x1ZGUgPHdpbmRvd3MuaD4KLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi12b2lkIEV2ZW50TG9vcDo6Y3ljbGUoKQotewotICAgIE1TRyBtc2c7
Ci0gICAgaWYgKCFHZXRNZXNzYWdlKCZtc2csIDAsIDAsIDApKSB7Ci0gICAgICAgIG1fZW5kZWQg
PSB0cnVlOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgVHJhbnNsYXRlTWVzc2FnZSgm
bXNnKTsKLSAgICBEaXNwYXRjaE1lc3NhZ2UoJm1zZyk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9F
dmVudExvb3BXaW4uY3BwCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSAr
MCwwICMjCi1uYXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380495</attachid>
            <date>2019-10-08 19:46:59 -0700</date>
            <delta_ts>2019-10-10 19:49:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202716-20191008194659.patch</filename>
            <type>text/plain</type>
            <size>45217</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDI1MDg1
MCkKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDE5LTEw
LTA4ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIE1ha2UgV2Vi
SW5zcGVjdG9yJ3MgcmVtb3RlIGRlYnVnIEV2ZW50TG9vcCBjb2RlIGludG8gUnVuTG9vcAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNzE2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXQueGN3
b3Jrc3BhY2UveGNzaGFyZWRkYXRhL1dvcmtzcGFjZVNldHRpbmdzLnhjc2V0dGluZ3M6CisKIDIw
MTktMTAtMDQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQuIFVwZGF0ZSBPcHRpb25zR1RLLmNtYWtlIGFuZCBORVdTIGZvciAy
LjI3LjEgcmVsZWFzZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTA4
ODQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMTktMTAtMDggIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgTWFrZSBXZWJJbnNwZWN0b3IncyByZW1vdGUgZGVidWcgRXZlbnRMb29w
IGNvZGUgaW50byBSdW5Mb29wCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDI3MTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBVcGRhdGVkIHRoZSBjb2RlIHRvIHVzZSBSdW5Mb29wOjpjeWNsZSBpbnN0ZWFk
IG9mIG5vdyBkZWxldGVkIEV2ZW50TG9vcCBjbGFzcy4KKworICAgICAgICBUaGUgcnVubG9vcCBt
b2RlIHVzZWQgaW4gQXBwbGUncyBwb3J0IGlzIG1vdmVkIHRvIFJlbW90ZUluc3BlY3Rpb25UYXJn
ZXQ6OnJ1bkxvb3BNb2RlCisgICAgICAgIHdpdGggYSBzcGVjaWFsIGNhc2UgZm9yIHdhdGNoT1Mu
CisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9KU0dsb2JhbE9iamVj
dFNjcmlwdERlYnVnU2VydmVyLmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNHbG9iYWxPYmpl
Y3RTY3JpcHREZWJ1Z1NlcnZlcjo6cnVuRXZlbnRMb29wV2hpbGVQYXVzZWQpOgorICAgICAgICAo
SW5zcGVjdG9yOjpKU0dsb2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyOjpydW5Mb29wTW9kZSk6
IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9yZW1vdGUvUmVtb3RlSW5zcGVjdGlvblRhcmdl
dC5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3Rpb25UYXJnZXQ6OnBhdXNl
V2FpdGluZ0ZvckF1dG9tYXRpY0luc3BlY3Rpb24pOgorICAgICAgICBJbnZva2UgQ0ZSdW5Mb29w
QWRkU291cmNlIHdpdGggdGhlIHJ1bmxvb3AgbW9kZSBvbmx5IGV4cGNldCBvbiB3YXRjaE9TIHdo
ZXJlCisgICAgICAgIHdlIHVzZSB0aGUgZGVmYXVsdCBydW5sb29wIGFueXdheS4KKyAgICAgICAg
KiBpbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUluc3BlY3Rpb25UYXJnZXQuaDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvcmVtb3RlL2NvY29hL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldENvY29hLm1tOgor
ICAgICAgICAoSW5zcGVjdG9yOjpSZW1vdGVUYXJnZXRJbml0aWFsaXplR2xvYmFsUXVldWUpOgor
ICAgICAgICAoSW5zcGVjdG9yOjpSZW1vdGVDb25uZWN0aW9uVG9UYXJnZXQ6OnNldHVwUnVuTG9v
cCk6CisgICAgICAgIChJbnNwZWN0b3I6OlJlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldDo6dGVhcmRv
d25SdW5Mb29wKToKKwogMjAxOS0xMC0wOCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUu
Y29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGwgb3V0IHIyNTA4NDgKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvU291cmNlcy50eHQJKHJldmlzaW9uIDI1MDg1MCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9Tb3VyY2VzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNTUzLDcgKzU1Myw2IEBAIGhl
YXAvV3JpdGVCYXJyaWVyU3VwcG9ydC5jcHAKIGluc3BlY3Rvci9Bc3luY1N0YWNrVHJhY2UuY3Bw
CiBpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCiBpbnNwZWN0b3IvQ29udGVudFNlYXJjaFV0
aWxpdGllcy5jcHAKLWluc3BlY3Rvci9FdmVudExvb3AuY3BwCiBpbnNwZWN0b3IvSWRlbnRpZmll
cnNGYWN0b3J5LmNwcAogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcAogaW5zcGVjdG9yL0lu
amVjdGVkU2NyaXB0QmFzZS5jcHAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShy
ZXZpc2lvbiAyNTA4NTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTQwNCw3ICsxNDA0
LDYgQEAKIAkJQTUzOThGQUIxQzc1MERBNDAwNjBBOTYzIC8qIEhlYXBQcm9maWxlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTUzOThGQUExQzc1MEQ5
NTAwNjBBOTYzIC8qIEhlYXBQcm9maWxlci5oICovOyB9OwogCQlBNTNDRTA4QTE4QkMyMUMzMDBC
RURGNzYgLyogQ29uc29sZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTUzQ0UwODkxOEJDMjFDMzAwQkVERjc2IC8qIENvbnNvbGVDbGllbnQu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNTNG
MUFDMDE4QzkwRjhGMDA3MkVCNkQgLyogZnJhbWV3b3JrLnNiIGluIFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTNGMUFCRTE4QzkwRUM3MDA3MkVCNkQgLyog
ZnJhbWV3b3JrLnNiICovOyB9OwotCQlBNTQ5ODIwNDE4OTFEMEIwMDA4MUU1QjggLyogRXZlbnRM
b29wLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTQ5
ODIwMjE4OTFEMEIwMDA4MUU1QjggLyogRXZlbnRMb29wLmggKi87IH07CiAJCUE1NEMyQUIxMUM2
NTQ0RjIwMEExOEQ3OCAvKiBIZWFwU25hcHNob3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1NEMyQUFGMUM2NTQ0RDEwMEExOEQ3OCAvKiBIZWFwU25h
cHNob3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlBNTRDRjJGNjE4NEVBQjI0MDAyMzdGMTkgLyogU2NyaXB0VmFsdWUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1NENGMkYzMTg0RUFCMjQwMDIzN0Yx
OSAvKiBTY3JpcHRWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUE1NENGMkZBMTg0RUFFREEwMDIzN0YxOSAvKiBTY3JpcHRPYmplY3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1NENGMkY4MTg0
RUFFREEwMDIzN0YxOSAvKiBTY3JpcHRPYmplY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNDMzNiw4ICs0MzM1LDYgQEAKIAkJQTUzOThGQUEx
Qzc1MEQ5NTAwNjBBOTYzIC8qIEhlYXBQcm9maWxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBIZWFwUHJvZmlsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QTUzQ0UwODkxOEJDMjFDMzAwQkVERjc2IC8qIENvbnNvbGVDbGllbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ29uc29sZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBNTNGMUFCRTE4QzkwRUM3MDA3MkVCNkQgLyogZnJhbWV3b3JrLnNiICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IGZyYW1ld29yay5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTU0OTgyMDExODkx
RDBCMDAwODFFNUI4IC8qIEV2ZW50TG9vcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBFdmVudExvb3AuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlB
NTQ5ODIwMjE4OTFEMEIwMDA4MUU1QjggLyogRXZlbnRMb29wLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEV2ZW50TG9vcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBNTRDMkFBRTFDNjU0NEQxMDBBMThENzggLyogSGVhcFNuYXBzaG90LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhlYXBTbmFwc2hvdC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE1NEMyQUFGMUM2NTQ0RDEwMEExOEQ3OCAvKiBIZWFwU25hcHNo
b3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSGVhcFNuYXBzaG90Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1NENGMkYyMTg0RUFCMjQwMDIzN0YxOSAvKiBT
Y3JpcHRWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3Jp
cHRWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04NDEzLDggKzg0MTAs
NiBAQAogCQkJCUE1RkQwMDc4MTg5QjA1MTAwMDYzMzIzMSAvKiBDb25zb2xlTWVzc2FnZS5oICov
LAogCQkJCUE1N0QyM0VGMTg5MUI1QjQwMDMxQzdGQSAvKiBDb250ZW50U2VhcmNoVXRpbGl0aWVz
LmNwcCAqLywKIAkJCQlBNTdEMjNGMDE4OTFCNUI0MDAzMUM3RkEgLyogQ29udGVudFNlYXJjaFV0
aWxpdGllcy5oICovLAotCQkJCUE1NDk4MjAxMTg5MUQwQjAwMDgxRTVCOCAvKiBFdmVudExvb3Au
Y3BwICovLAotCQkJCUE1NDk4MjAyMTg5MUQwQjAwMDgxRTVCOCAvKiBFdmVudExvb3AuaCAqLywK
IAkJCQlBNUZEMDA3MjE4OUIwMzhDMDA2MzMyMzEgLyogSWRlbnRpZmllcnNGYWN0b3J5LmNwcCAq
LywKIAkJCQlBNUZEMDA3MzE4OUIwMzhDMDA2MzMyMzEgLyogSWRlbnRpZmllcnNGYWN0b3J5Lmgg
Ki8sCiAJCQkJQTUxM0U1QjUxODVCOEJEMzAwN0U5NUFEIC8qIEluamVjdGVkU2NyaXB0LmNwcCAq
LywKQEAgLTkzMjAsNyArOTMxNSw2IEBACiAJCQkJRTNFRTEzNzYyMUZCRDQzNTAwRDgzQzRCIC8q
IEVycm9yVHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRBRDkxMEMxRENBOTI5NDAwMTRGOUZF
IC8qIEV2YWxDb2RlQmxvY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTE0NzM0MUQyMURDMDJFMkUw
MEFBMjlCQSAvKiBFdmFsRXhlY3V0YWJsZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTU0OTgyMDQx
ODkxRDBCMDAwODFFNUI4IC8qIEV2ZW50TG9vcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkUxQzBG
RkQxQjE5M0U5ODAwQjUzRkNBIC8qIEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkU2
MDI5RDkxRDZFMUU0RjAwMzAyMDREIC8qIEV4Y2VwdGlvbkV2ZW50TG9jYXRpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGMTJERTEwMTk3OUQ1RkQwMDA2RkY0RSAvKiBFeGNlcHRpb25GdXp6Lmgg
aW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvRXZl
bnRMb29wLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0V2ZW50TG9vcC5jcHAJKHJldmlzaW9uIDI1MDg1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvRXZlbnRMb29wLmNwcAkobm9uZXhpc3RlbnQpCkBAIC0xLDczICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0g
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW5jbHVkZSAiRXZlbnRMb29wLmgiCi0KLSNpZiBPUyhXSU5ET1dTKQotI2lu
Y2x1ZGUgPHdpbmRvd3MuaD4KLSNlbGlmIFVTRShHTElCKQotI2luY2x1ZGUgPGdsaWIuaD4KLSNl
bmRpZgotCi1uYW1lc3BhY2UgSW5zcGVjdG9yIHsKLQotI2lmIFVTRShDRikgJiYgIU9TKFdJTkRP
V1MpCi1DRlN0cmluZ1JlZiBFdmVudExvb3A6OnJlbW90ZUluc3BlY3RvclJ1bkxvb3BNb2RlKCkK
LXsKLSAgICByZXR1cm4gQ0ZTVFIoImNvbS5hcHBsZS5KYXZhU2NyaXB0Q29yZS5yZW1vdGUtaW5z
cGVjdG9yLXJ1bmxvb3AtbW9kZSIpOwotfQotI2VuZGlmCi0KLXZvaWQgRXZlbnRMb29wOjpjeWNs
ZSgpCi17Ci0jaWYgT1MoV0lORE9XUykKLSAgICBNU0cgbXNnOwotICAgIGlmICghR2V0TWVzc2Fn
ZSgmbXNnLCAwLCAwLCAwKSkgewotICAgICAgICBtX2VuZGVkID0gdHJ1ZTsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KLSAgICBUcmFuc2xhdGVNZXNzYWdlKCZtc2cpOwotICAgIERpc3BhdGNoTWVz
c2FnZSgmbXNnKTsKLSNlbGlmIFBMQVRGT1JNKFdBVENIT1MpCi0gICAgLy8gRklYTUU6IDxyZGFy
Oi8vcHJvYmxlbS8yNTk3Mjc3Nz4uIEluIG9yZGVyIGZvciBhdXRvLWF0dGFjaCB0byB3b3JrLCB3
ZSBuZWVkIHRvCi0gICAgLy8gcnVuIGluIHRoZSBkZWZhdWx0IHJ1biBsb29wIG1vZGUgb3RoZXJ3
aXNlIHdlIGRvIG5vdCByZWNlaXZlIHRoZSBYUEMgbWVzc2FnZXMKLSAgICAvLyBuZWNlc3Nhcnkg
dG8gc2V0dXAgdGhlIHJlbGF5IGNvbm5lY3Rpb24gYW5kIG5lZ290aWF0ZSBhbiBhdXRvLWF0dGFj
aCBkZWJ1Z2dlci4KLSAgICBDRlRpbWVJbnRlcnZhbCB0aW1lSW50ZXJ2YWwgPSAwLjA1OwotICAg
IENGUnVuTG9vcFJ1bkluTW9kZShrQ0ZSdW5Mb29wRGVmYXVsdE1vZGUsIHRpbWVJbnRlcnZhbCwg
dHJ1ZSk7Ci0jZWxpZiBVU0UoQ0YpCi0gICAgLy8gUnVuIHRoZSBSdW5Mb29wIGluIGEgY3VzdG9t
IHJ1biBsb29wIG1vZGUgdG8gcHJldmVudCBkZWZhdWx0IG9ic2VydmVycwotICAgIC8vIHRvIHJ1
biBhbmQgcG90ZW50aWFsbHkgZXZhbHVhdGUgSmF2YVNjcmlwdCBpbiB0aGlzIGNvbnRleHQgd2hp
bGUgd2UgYXJlCi0gICAgLy8gbmVzdGVkLiBPbmx5IHRoZSBkZWJ1Z2dlciBzaG91bGQgY29udHJv
bCB0aGluZ3MgdW50aWwgd2UgY29udGludWUuCi0gICAgLy8gRklYTUU6IFRoaXMgaXMgbm90IGEg
cGVyZmVjdCBzb2x1dGlvbiwgYXMgYmFja2dyb3VuZCB0aHJlYWRzIGFyZSBub3QKLSAgICAvLyBw
YXVzZWQgYW5kIGNhbiBzdGlsbCBhY2Nlc3MgYW5kIGV2YWx1dGUgc2NyaXB0IGluIHRoZSBKU0Nv
bnRleHQuCi0gICAgQ0ZUaW1lSW50ZXJ2YWwgdGltZUludGVydmFsID0gMC4wNTsKLSAgICBDRlJ1
bkxvb3BSdW5Jbk1vZGUocmVtb3RlSW5zcGVjdG9yUnVuTG9vcE1vZGUoKSwgdGltZUludGVydmFs
LCB0cnVlKTsKLSNlbGlmIFVTRShHTElCKQotICAgIGdfbWFpbl9jb250ZXh0X2l0ZXJhdGlvbihO
VUxMLCBGQUxTRSk7Ci0jZW5kaWYKLX0KLQotfSAvLyBuYW1lc3BhY2UgSW5zcGVjdG9yCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0V2ZW50TG9vcC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvRXZlbnRMb29wLmgJKHJldmlzaW9u
IDI1MDg1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvRXZlbnRMb29wLmgJ
KG5vbmV4aXN0ZW50KQpAQCAtMSw1NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4
IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlIDx3dGYvTm9uY29w
eWFibGUuaD4KLQotI2lmIFVTRShDRikgJiYgIU9TKFdJTkRPV1MpCi0jaW5jbHVkZSA8Q29yZUZv
dW5kYXRpb24vQ0ZSdW5Mb29wLmg+Ci0jZW5kaWYKLQotbmFtZXNwYWNlIEluc3BlY3RvciB7Ci0K
LWNsYXNzIEV2ZW50TG9vcCB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRXZlbnRMb29wKTsK
LXB1YmxpYzoKLSAgICBFdmVudExvb3AoKQotICAgICAgICA6IG1fZW5kZWQoZmFsc2UpCi0gICAg
ewotICAgIH0KLQotICAgIHZvaWQgY3ljbGUoKTsKLSAgICBib29sIGVuZGVkKCkgY29uc3QgeyBy
ZXR1cm4gbV9lbmRlZDsgfQotCi0jaWYgVVNFKENGKSAmJiAhT1MoV0lORE9XUykKLSAgICBzdGF0
aWMgQ0ZTdHJpbmdSZWYgcmVtb3RlSW5zcGVjdG9yUnVuTG9vcE1vZGUoKTsKLSNlbmRpZgotCi1w
cml2YXRlOgotICAgIGJvb2wgbV9lbmRlZDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIEluc3BlY3Rv
cgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdFNj
cmlwdERlYnVnU2VydmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0U2NyaXB0RGVidWdTZXJ2ZXIuY3BwCShyZXZpc2lvbiAy
NTA4NTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0
U2NyaXB0RGVidWdTZXJ2ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw5ICsyNiwxMCBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0U2NyaXB0RGVidWdT
ZXJ2ZXIuaCIKIAotI2luY2x1ZGUgIkV2ZW50TG9vcC5oIgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29w
Lmg+CiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTTG9jay5oIgorI2luY2x1
ZGUgIlJlbW90ZUluc3BlY3Rpb25UYXJnZXQuaCIKIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIApA
QCAtNTcsOSArNTgsMjggQEAgdm9pZCBKU0dsb2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyOjpy
dQogICAgIC8vIERyb3AgYWxsIGxvY2tzIHNvIGFub3RoZXIgdGhyZWFkIGNhbiB3b3JrIGluIHRo
ZSBWTSB3aGlsZSB3ZSBhcmUgbmVzdGVkLgogICAgIEpTQzo6SlNMb2NrOjpEcm9wQWxsTG9ja3Mg
ZHJvcEFsbExvY2tzKCZtX2dsb2JhbE9iamVjdC52bSgpKTsKIAotICAgIEV2ZW50TG9vcCBsb29w
OwotICAgIHdoaWxlICghbV9kb25lUHJvY2Vzc2luZ0RlYnVnZ2VyRXZlbnRzICYmICFsb29wLmVu
ZGVkKCkpCi0gICAgICAgIGxvb3AuY3ljbGUoKTsKKyAgICB3aGlsZSAoIW1fZG9uZVByb2Nlc3Np
bmdEZWJ1Z2dlckV2ZW50cykgeworICAgICAgICBpZiAoUnVuTG9vcDo6Y3ljbGUoSlNHbG9iYWxP
YmplY3RTY3JpcHREZWJ1Z1NlcnZlcjo6cnVuTG9vcE1vZGUoKSkgPT0gUnVuTG9vcDo6Q3ljbGVS
ZXN1bHQ6OlN0b3ApCisgICAgICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK1N0cmluZyBKU0ds
b2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyOjpydW5Mb29wTW9kZSgpCit7CisjaWYgVVNFKENG
KSAmJiAhUExBVEZPUk0oV0FUQ0hPUykKKyAgICAvLyBSdW4gdGhlIFJ1bkxvb3AgaW4gYSBjdXN0
b20gcnVuIGxvb3AgbW9kZSB0byBwcmV2ZW50IGRlZmF1bHQgb2JzZXJ2ZXJzCisgICAgLy8gdG8g
cnVuIGFuZCBwb3RlbnRpYWxseSBldmFsdWF0ZSBKYXZhU2NyaXB0IGluIHRoaXMgY29udGV4dCB3
aGlsZSB3ZSBhcmUKKyAgICAvLyBuZXN0ZWQuIE9ubHkgdGhlIGRlYnVnZ2VyIHNob3VsZCBjb250
cm9sIHRoaW5ncyB1bnRpbCB3ZSBjb250aW51ZS4KKyAgICAvLyBGSVhNRTogVGhpcyBpcyBub3Qg
YSBwZXJmZWN0IHNvbHV0aW9uLCBhcyBiYWNrZ3JvdW5kIHRocmVhZHMgYXJlIG5vdAorICAgIC8v
IHBhdXNlZCBhbmQgY2FuIHN0aWxsIGFjY2VzcyBhbmQgZXZhbHV0ZSBzY3JpcHQgaW4gdGhlIEpT
Q29udGV4dC4KKworICAgIC8vIEZJWE1FOiA8cmRhcjovL3Byb2JsZW0vMjU5NzI3Nzc+LiBPbiB3
YXRjaE9TLCBpbiBvcmRlciBmb3IgYXV0by1hdHRhY2ggdG8gd29yaywKKyAgICAvLyB3ZSBuZWVk
IHRvIHJ1biBpbiB0aGUgZGVmYXVsdCBydW4gbG9vcCBtb2RlIG90aGVyd2lzZSB3ZSBkbyBub3Qg
cmVjZWl2ZSB0aGUgWFBDIG1lc3NhZ2VzCisgICAgLy8gbmVjZXNzYXJ5IHRvIHNldHVwIHRoZSBy
ZWxheSBjb25uZWN0aW9uIGFuZCBuZWdvdGlhdGUgYW4gYXV0by1hdHRhY2ggZGVidWdnZXIuCisg
ICAgcmV0dXJuICJjb20uYXBwbGUuSmF2YVNjcmlwdENvcmUucmVtb3RlLWluc3BlY3Rvci1ydW5s
b29wLW1vZGUiOworI2Vsc2UKKyAgICByZXR1cm4geyB9OworI2VuZGlmCiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIEluc3BlY3RvcgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9K
U0dsb2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyLmgJ
KHJldmlzaW9uIDI1MDg1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNH
bG9iYWxPYmplY3RTY3JpcHREZWJ1Z1NlcnZlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICsz
OCw4IEBAIHB1YmxpYzoKIAogICAgIEpTQzo6SlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCgp
IGNvbnN0IHsgcmV0dXJuIG1fZ2xvYmFsT2JqZWN0OyB9CiAKKyAgICBzdGF0aWMgU3RyaW5nIHJ1
bkxvb3BNb2RlKCk7CisKIHByaXZhdGU6CiAgICAgdm9pZCBhdHRhY2hEZWJ1Z2dlcigpIG92ZXJy
aWRlOwogICAgIHZvaWQgZGV0YWNoRGVidWdnZXIoYm9vbCBpc0JlaW5nRGVzdHJveWVkKSBvdmVy
cmlkZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90
ZUluc3BlY3Rpb25UYXJnZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUluc3BlY3Rpb25UYXJnZXQuY3BwCShyZXZpc2lvbiAy
NTA4NTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVJ
bnNwZWN0aW9uVGFyZ2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsOCArMjgsOSBAQAogCiAj
aWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCiAKLSNpbmNsdWRlICJFdmVudExvb3AuaCIKKyNp
bmNsdWRlICJKU0dsb2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyLmgiCiAjaW5jbHVkZSAiUmVt
b3RlSW5zcGVjdG9yLmgiCisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNwYWNlIElu
c3BlY3RvciB7CiAKQEAgLTU3LDkgKzU4LDEwIEBAIHZvaWQgUmVtb3RlSW5zcGVjdGlvblRhcmdl
dDo6cGF1c2VXYWl0aW4KICAgICBBU1NFUlQobV9hbGxvd2VkKTsKICAgICBBU1NFUlQoYXV0b21h
dGljSW5zcGVjdGlvbkFsbG93ZWQoKSk7CiAKLSAgICBFdmVudExvb3AgbG9vcDsKLSAgICB3aGls
ZSAoUmVtb3RlSW5zcGVjdG9yOjpzaW5nbGV0b24oKS53YWl0aW5nRm9yQXV0b21hdGljSW5zcGVj
dGlvbih0YXJnZXRJZGVudGlmaWVyKCkpICYmICFsb29wLmVuZGVkKCkpCi0gICAgICAgIGxvb3Au
Y3ljbGUoKTsKKyAgICB3aGlsZSAoUmVtb3RlSW5zcGVjdG9yOjpzaW5nbGV0b24oKS53YWl0aW5n
Rm9yQXV0b21hdGljSW5zcGVjdGlvbih0YXJnZXRJZGVudGlmaWVyKCkpKSB7CisgICAgICAgIGlm
IChSdW5Mb29wOjpjeWNsZShKU0dsb2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyOjpydW5Mb29w
TW9kZSgpKSA9PSBSdW5Mb29wOjpDeWNsZVJlc3VsdDo6U3RvcCkKKyAgICAgICAgICAgIGJyZWFr
OworICAgIH0KIH0KIAogdm9pZCBSZW1vdGVJbnNwZWN0aW9uVGFyZ2V0Ojp1bnBhdXNlRm9ySW5p
dGlhbGl6ZWRJbnNwZWN0b3IoKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9yZW1vdGUvY29jb2EvUmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0Q29jb2EubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvY29jb2EvUmVtb3Rl
Q29ubmVjdGlvblRvVGFyZ2V0Q29jb2EubW0JKHJldmlzaW9uIDI1MDg1MCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL2NvY29hL1JlbW90ZUNvbm5lY3Rpb25Ub1Rh
cmdldENvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxMiArMjgsMTMgQEAKIAogI2lmIEVO
QUJMRShSRU1PVEVfSU5TUEVDVE9SKQogCi0jaW1wb3J0ICJFdmVudExvb3AuaCIKKyNpbXBvcnQg
IkpTR2xvYmFsT2JqZWN0U2NyaXB0RGVidWdTZXJ2ZXIuaCIKICNpbXBvcnQgIlJlbW90ZUF1dG9t
YXRpb25UYXJnZXQuaCIKICNpbXBvcnQgIlJlbW90ZUluc3BlY3Rpb25UYXJnZXQuaCIKICNpbXBv
cnQgIlJlbW90ZUluc3BlY3Rvci5oIgogI2ltcG9ydCA8ZGlzcGF0Y2gvZGlzcGF0Y2guaD4KICNp
bXBvcnQgPHd0Zi9PcHRpb25hbC5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiAjaW1wb3J0IDx3dGYvaW9zL1dlYkNvcmVUaHJlYWQuaD4KQEAg
LTg3LDcgKzg4LDkgQEAgc3RhdGljIHZvaWQgUmVtb3RlVGFyZ2V0SW5pdGlhbGl6ZUdsb2JhbAog
CiAgICAgICAgIC8vIEFkZCB0byB0aGUgZGVmYXVsdCBydW4gbG9vcCBtb2RlIGZvciBkZWZhdWx0
IGhhbmRsaW5nLCBhbmQgdGhlIEpTQ29udGV4dCByZW1vdGUgaW5zcGVjdG9yIHJ1biBsb29wIG1v
ZGUgd2hlbiBwYXVzZWQuCiAgICAgICAgIENGUnVuTG9vcEFkZFNvdXJjZShDRlJ1bkxvb3BHZXRN
YWluKCksIHJ3aVJ1bkxvb3BTb3VyY2UsIGtDRlJ1bkxvb3BEZWZhdWx0TW9kZSk7Ci0gICAgICAg
IENGUnVuTG9vcEFkZFNvdXJjZShDRlJ1bkxvb3BHZXRNYWluKCksIHJ3aVJ1bkxvb3BTb3VyY2Us
IEV2ZW50TG9vcDo6cmVtb3RlSW5zcGVjdG9yUnVuTG9vcE1vZGUoKSk7CisgICAgICAgIGF1dG8g
bW9kZSA9IEpTR2xvYmFsT2JqZWN0U2NyaXB0RGVidWdTZXJ2ZXI6OnJ1bkxvb3BNb2RlKCk7Cisg
ICAgICAgIGlmICghbW9kZS5pc051bGwoKSkKKyAgICAgICAgICAgIENGUnVuTG9vcEFkZFNvdXJj
ZShDRlJ1bkxvb3BHZXRNYWluKCksIHJ3aVJ1bkxvb3BTb3VyY2UsIG1vZGUuY3JlYXRlQ0ZTdHJp
bmcoKS5nZXQoKSk7CiAgICAgfSk7CiB9CiAKQEAgLTI1OCw3ICsyNjEsOSBAQCB2b2lkIFJlbW90
ZUNvbm5lY3Rpb25Ub1RhcmdldDo6c2V0dXBSdW5MCiAgICAgbV9ydW5Mb29wU291cmNlID0gYWRv
cHRDRihDRlJ1bkxvb3BTb3VyY2VDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMSwgJnJ1bkxv
b3BTb3VyY2VDb250ZXh0KSk7CiAKICAgICBDRlJ1bkxvb3BBZGRTb3VyY2UobV9ydW5Mb29wLmdl
dCgpLCBtX3J1bkxvb3BTb3VyY2UuZ2V0KCksIGtDRlJ1bkxvb3BEZWZhdWx0TW9kZSk7Ci0gICAg
Q0ZSdW5Mb29wQWRkU291cmNlKG1fcnVuTG9vcC5nZXQoKSwgbV9ydW5Mb29wU291cmNlLmdldCgp
LCBFdmVudExvb3A6OnJlbW90ZUluc3BlY3RvclJ1bkxvb3BNb2RlKCkpOworICAgIGF1dG8gbW9k
ZSA9IEpTR2xvYmFsT2JqZWN0U2NyaXB0RGVidWdTZXJ2ZXI6OnJ1bkxvb3BNb2RlKCk7CisgICAg
aWYgKCFtb2RlLmlzTnVsbCgpKQorICAgICAgICBDRlJ1bkxvb3BBZGRTb3VyY2UobV9ydW5Mb29w
LmdldCgpLCBtX3J1bkxvb3BTb3VyY2UuZ2V0KCksIG1vZGUuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQo
KSk7CiB9CiAKIHZvaWQgUmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0Ojp0ZWFyZG93blJ1bkxvb3Ao
KQpAQCAtMjY3LDcgKzI3Miw5IEBAIHZvaWQgUmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0Ojp0ZWFy
ZG93blIKICAgICAgICAgcmV0dXJuOwogCiAgICAgQ0ZSdW5Mb29wUmVtb3ZlU291cmNlKG1fcnVu
TG9vcC5nZXQoKSwgbV9ydW5Mb29wU291cmNlLmdldCgpLCBrQ0ZSdW5Mb29wRGVmYXVsdE1vZGUp
OwotICAgIENGUnVuTG9vcFJlbW92ZVNvdXJjZShtX3J1bkxvb3AuZ2V0KCksIG1fcnVuTG9vcFNv
dXJjZS5nZXQoKSwgRXZlbnRMb29wOjpyZW1vdGVJbnNwZWN0b3JSdW5Mb29wTW9kZSgpKTsKKyAg
ICBhdXRvIG1vZGUgPSBKU0dsb2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyOjpydW5Mb29wTW9k
ZSgpOworICAgIGlmICghbW9kZS5pc051bGwoKSkKKyAgICAgICAgQ0ZSdW5Mb29wUmVtb3ZlU291
cmNlKG1fcnVuTG9vcC5nZXQoKSwgbV9ydW5Mb29wU291cmNlLmdldCgpLCBtb2RlLmNyZWF0ZUNG
U3RyaW5nKCkuZ2V0KCkpOwogCiAgICAgbV9ydW5Mb29wID0gbnVsbHB0cjsKICAgICBtX3J1bkxv
b3BTb3VyY2UgPSBudWxscHRyOwpJbmRleDogU291cmNlL1dURi9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dURi9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MDg4NCkKKysrIFNvdXJjZS9X
VEYvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTktMTAtMDgg
IFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTWFrZSBXZWJJbnNw
ZWN0b3IncyByZW1vdGUgZGVidWcgRXZlbnRMb29wIGNvZGUgaW50byBSdW5Mb29wCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI3MTYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIG1lcmdl
cyBXZWJJbnNwZWN0b3IncyBFdmVudExvb3AgY29kZSBpbnRvIFJ1bkxvb3AgYXMgYSBzdGF0aWMg
ZnVuY3Rpb24uCisKKyAgICAgICAgKiB3dGYvUnVuTG9vcC5oOgorICAgICAgICAoV1RGOjpSdW5M
b29wOjpjeWNsZSk6CisgICAgICAgICogd3RmL2NmL1J1bkxvb3BDRi5jcHA6CisgICAgICAgIChX
VEY6OlJ1bkxvb3A6OmN5Y2xlKTogQWRkZWQuCisgICAgICAgICogd3RmL2dlbmVyaWMvUnVuTG9v
cEdlbmVyaWMuY3BwOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpjeWNsZSk6IEFkZGVkLgorICAg
ICAgICAqIHd0Zi9nbGliL1J1bkxvb3BHTGliLmNwcDoKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6
Y3ljbGUpOiBBZGRlZC4KKyAgICAgICAgKiB3dGYvd2luL1J1bkxvb3BXaW4uY3BwOgorICAgICAg
ICAoV1RGOjpSdW5Mb29wOjpjeWNsZSk6IEFkZGVkLgorCiAyMDE5LTEwLTA4ICBSb2JpbiBNb3Jp
c3NldCAgPHJtb3Jpc3NldEBhcHBsZS5jb20+CiAKICAgICAgICAgZGF0YUxvZ0lmIHNob3VsZCBi
ZSBBTFdBWVNfSU5MSU5FCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dURi93dGYvUnVuTG9vcC5oCShyZXZpc2lvbiAyNTA4NTApCisrKyBTb3Vy
Y2UvV1RGL3d0Zi9SdW5Mb29wLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAKICNp
bmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KICNpbmNs
dWRlIDx3dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCiAjaWYgVVNFKEdMSUJfRVZFTlRfTE9PUCkKICNpbmNsdWRlIDx3dGYvZ2xpYi9H
UmVmUHRyLmg+CkBAIC02MCw2ICs2MSw5IEBAIHB1YmxpYzoKICAgICBXVEZfRVhQT1JUX1BSSVZB
VEUgdm9pZCBzdG9wKCk7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgd2FrZVVwKCk7CiAK
KyAgICBlbnVtIGNsYXNzIEN5Y2xlUmVzdWx0IHsgQ29udGludWUsIFN0b3AgfTsKKyAgICBXVEZf
RVhQT1JUX1BSSVZBVEUgQ3ljbGVSZXN1bHQgc3RhdGljIGN5Y2xlKFN0cmluZyA9IHsgfSk7CisK
ICNpZiBVU0UoQ09DT0FfRVZFTlRfTE9PUCkKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBy
dW5Gb3JEdXJhdGlvbihTZWNvbmRzIGR1cmF0aW9uKTsKICNlbmRpZgpJbmRleDogU291cmNlL1dU
Ri93dGYvY2YvUnVuTG9vcENGLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9jZi9S
dW5Mb29wQ0YuY3BwCShyZXZpc2lvbiAyNTA4NTApCisrKyBTb3VyY2UvV1RGL3d0Zi9jZi9SdW5M
b29wQ0YuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Miw2ICs2MiwxMyBAQCB2b2lkIFJ1bkxvb3A6
Ondha2VVcCgpCiAgICAgQ0ZSdW5Mb29wV2FrZVVwKG1fcnVuTG9vcC5nZXQoKSk7CiB9CiAKK1J1
bkxvb3A6OkN5Y2xlUmVzdWx0IFJ1bkxvb3A6OmN5Y2xlKFN0cmluZyBtb2RlKQoreworICAgIENG
VGltZUludGVydmFsIHRpbWVJbnRlcnZhbCA9IDAuMDU7CisgICAgQ0ZSdW5Mb29wUnVuSW5Nb2Rl
KG1vZGUuaXNOdWxsKCkgPyBrQ0ZSdW5Mb29wRGVmYXVsdE1vZGUgOiBtb2RlLmNyZWF0ZUNGU3Ry
aW5nKCkuZ2V0KCksIHRpbWVJbnRlcnZhbCwgdHJ1ZSk7CisgICAgcmV0dXJuIEN5Y2xlUmVzdWx0
OjpDb250aW51ZTsKK30KKwogdm9pZCBSdW5Mb29wOjpydW4oKQogewogICAgIEF1dG9kcmFpbmVk
UG9vbCBwb29sOwpJbmRleDogU291cmNlL1dURi93dGYvZ2VuZXJpYy9SdW5Mb29wR2VuZXJpYy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvZ2VuZXJpYy9SdW5Mb29wR2VuZXJpYy5j
cHAJKHJldmlzaW9uIDI1MDg1MCkKKysrIFNvdXJjZS9XVEYvd3RmL2dlbmVyaWMvUnVuTG9vcEdl
bmVyaWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTgsNiArMjE4LDExIEBAIHZvaWQgUnVuTG9v
cDo6d2FrZVVwKCkKICAgICB3YWtlVXAobG9ja2VyKTsKIH0KIAorUnVuTG9vcDo6Q3ljbGVSZXN1
bHQgUnVuTG9vcDo6Y3ljbGUoU3RyaW5nKQoreworICAgIGl0ZXJhdGUoKTsKK30KKwogdm9pZCBS
dW5Mb29wOjpzY2hlZHVsZShjb25zdCBBYnN0cmFjdExvY2tlciYsIFJlZjxUaW1lckJhc2U6OlNj
aGVkdWxlZFRhc2s+JiYgdGFzaykKIHsKICAgICBtX3NjaGVkdWxlcy5hcHBlbmQodGFzay5wdHIo
KSk7CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9nbGliL1J1bkxvb3BHTGliLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV1RGL3d0Zi9nbGliL1J1bkxvb3BHTGliLmNwcAkocmV2aXNpb24gMjUwODUw
KQorKysgU291cmNlL1dURi93dGYvZ2xpYi9SdW5Mb29wR0xpYi5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEyMyw2ICsxMjMsMTIgQEAgdm9pZCBSdW5Mb29wOjp3YWtlVXAoKQogICAgIGdfc291cmNl
X3NldF9yZWFkeV90aW1lKG1fc291cmNlLmdldCgpLCAwKTsKIH0KIAorUnVuTG9vcDo6Q3ljbGVS
ZXN1bHQgUnVuTG9vcDo6Y3ljbGUoU3RyaW5nKQoreworICAgIGdfbWFpbl9jb250ZXh0X2l0ZXJh
dGlvbihOVUxMLCBGQUxTRSk7CisgICAgcmV0dXJuIEN5Y2xlUmVzdWx0OjpDb250aW51ZTsKK30K
KwogY2xhc3MgRGlzcGF0Y2hBZnRlckNvbnRleHQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgpJbmRleDogU291cmNlL1dURi93dGYvd2luL1J1bkxvb3BXaW4uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL3dpbi9SdW5Mb29wV2luLmNwcAkocmV2aXNpb24g
MjUwODUwKQorKysgU291cmNlL1dURi93dGYvd2luL1J1bkxvb3BXaW4uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMjAsNiArMTIwLDIwIEBAIHZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKICAgICA6OlBv
c3RNZXNzYWdlKG1fcnVuTG9vcE1lc3NhZ2VXaW5kb3csIFBlcmZvcm1Xb3JrTWVzc2FnZSwgcmVp
bnRlcnByZXRfY2FzdDxXUEFSQU0+KHRoaXMpLCAwKTsKIH0KIAorUnVuTG9vcDo6Q3ljbGVSZXN1
bHQgUnVuTG9vcDo6Y3ljbGUoU3RyaW5nKQoreworICAgIE1TRyBtc2c7CisgICAgaWYgKCFHZXRN
ZXNzYWdlKCZtc2csIDAsIDAsIDApKSB7CisgICAgICAgIG1fZW5kZWQgPSB0cnVlOworICAgICAg
ICByZXR1cm4gQ3ljbGVSZXN1bHQ6OlN0b3A7CisgICAgfQorCisgICAgVHJhbnNsYXRlTWVzc2Fn
ZSgmbXNnKTsKKyAgICBEaXNwYXRjaE1lc3NhZ2UoJm1zZyk7CisKKyAgICByZXR1cm4gQ3ljbGVS
ZXN1bHQ6OkNvbnRpbnVlOworfQorCiAvLyBSdW5Mb29wOjpUaW1lcgogCiB2b2lkIFJ1bkxvb3A6
OlRpbWVyQmFzZTo6dGltZXJGaXJlZCgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTA4NTAp
CisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwy
NCBAQAorMjAxOS0xMC0wOCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAg
ICAgICBNYWtlIFdlYkluc3BlY3RvcidzIHJlbW90ZSBkZWJ1ZyBFdmVudExvb3AgY29kZSBpbnRv
IFJ1bkxvb3AKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwMjcxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFVzZSBSdW5Mb29wOjpjeWNsZS4KKworICAgICAgICAqIFBsYXRmb3JtRlRXLmNtYWtlOgorICAg
ICAgICAqIFBsYXRmb3JtUGxheVN0YXRpb24uY21ha2U6CisgICAgICAgICogUGxhdGZvcm1XaW4u
Y21ha2U6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogaW5zcGVjdG9yL1BhZ2VTY3JpcHRE
ZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlU2NyaXB0RGVidWdTZXJ2ZXI6
OnJ1bkV2ZW50TG9vcFdoaWxlUGF1c2VkSW50ZXJuYWwpOgorICAgICAgICAqIHBsYXRmb3JtL1Nv
dXJjZXNHTGliLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9nbGliL0V2ZW50TG9vcEdsaWIuY3Bw
OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL3BsYXlzdGF0aW9uL0V2ZW50TG9vcFBsYXlT
dGF0aW9uLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vRXZlbnRMb29wV2lu
LmNwcDogUmVtb3ZlZC4KKwogMjAxOS0xMC0wOCAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVz
aEBnbWFpbC5jb20+CiAKICAgICAgICAgQWNjZXB0IHR3byB2YWx1ZXMgaW4gdGhlIG92ZXJmbG93
IHNob3J0aGFuZApJbmRleDogU291cmNlL1dlYkNvcmUvUGxhdGZvcm1GVFcuY21ha2UKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvUGxhdGZvcm1GVFcuY21ha2UJKHJldmlzaW9uIDI1MDg1
MCkKKysrIFNvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRlRXLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBA
IC0xMTcsNyArMTE3LDYgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZv
cm0vd2luL0RyYWdEYXRhV2luLmNwcAogICAgIHBsYXRmb3JtL3dpbi9EcmFnSW1hZ2VEaXJlY3Qy
RC5jcHAKICAgICBwbGF0Zm9ybS93aW4vRHJhZ0ltYWdlV2luLmNwcAotICAgIHBsYXRmb3JtL3dp
bi9FdmVudExvb3BXaW4uY3BwCiAgICAgcGxhdGZvcm0vd2luL0dESU9iamVjdENvdW50ZXIuY3Bw
CiAgICAgcGxhdGZvcm0vd2luL0dESVV0aWxpdGllcy5jcHAKICAgICBwbGF0Zm9ybS93aW4vSW1w
b3J0ZWRGdW5jdGlvbnNFbnVtZXJhdG9yLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvUGxhdGZv
cm1QbGF5U3RhdGlvbi5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9QbGF0Zm9y
bVBsYXlTdGF0aW9uLmNtYWtlCShyZXZpc2lvbiAyNTA4NTApCisrKyBTb3VyY2UvV2ViQ29yZS9Q
bGF0Zm9ybVBsYXlTdGF0aW9uLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC01OCw3ICs1OCw2IEBA
IGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL25ldHdvcmsvcGxheXN0
YXRpb24vQ3VybFNTTEhhbmRsZVBsYXlTdGF0aW9uLmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsv
cGxheXN0YXRpb24vTmV0d29ya1N0YXRlTm90aWZpZXJQbGF5U3RhdGlvbi5jcHAKIAotICAgIHBs
YXRmb3JtL3BsYXlzdGF0aW9uL0V2ZW50TG9vcFBsYXlTdGF0aW9uLmNwcAogICAgIHBsYXRmb3Jt
L3BsYXlzdGF0aW9uL01JTUVUeXBlUmVnaXN0cnlQbGF5U3RhdGlvbi5jcHAKICAgICBwbGF0Zm9y
bS9wbGF5c3RhdGlvbi9QbGF0Zm9ybVNjcmVlblBsYXlTdGF0aW9uLmNwcAogICAgIHBsYXRmb3Jt
L3BsYXlzdGF0aW9uL1Njcm9sbGJhclRoZW1lUGxheVN0YXRpb24uY3BwCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Q
bGF0Zm9ybVdpbi5jbWFrZQkocmV2aXNpb24gMjUwODUwKQorKysgU291cmNlL1dlYkNvcmUvUGxh
dGZvcm1XaW4uY21ha2UJKHdvcmtpbmcgY29weSkKQEAgLTgyLDcgKzgyLDYgQEAgbGlzdChBUFBF
TkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vd2luL0RlZlduZFByb2NXaW5kb3dDbGFz
cy5jcHAKICAgICBwbGF0Zm9ybS93aW4vRHJhZ0RhdGFXaW4uY3BwCiAgICAgcGxhdGZvcm0vd2lu
L0RyYWdJbWFnZVdpbi5jcHAKLSAgICBwbGF0Zm9ybS93aW4vRXZlbnRMb29wV2luLmNwcAogICAg
IHBsYXRmb3JtL3dpbi9HRElPYmplY3RDb3VudGVyLmNwcAogICAgIHBsYXRmb3JtL3dpbi9HRElV
dGlsaXRpZXMuY3BwCiAgICAgcGxhdGZvcm0vd2luL0tleUV2ZW50V2luLmNwcApJbmRleDogU291
cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzQ29jb2EudHh0CShyZXZpc2lvbiAyNTA4NTApCisrKyBTb3VyY2UvV2ViQ29yZS9T
b3VyY2VzQ29jb2EudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zODUsNyArMzg1LDYgQEAgcGxhdGZv
cm0vaW9zL0RldmljZS5jcHAKIHBsYXRmb3JtL2lvcy9EZXZpY2VNb3Rpb25DbGllbnRJT1MubW0K
IHBsYXRmb3JtL2lvcy9EZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5tbQogcGxhdGZvcm0vaW9z
L0RyYWdJbWFnZUlPUy5tbQotcGxhdGZvcm0vaW9zL0V2ZW50TG9vcElPUy5tbQogcGxhdGZvcm0v
aW9zL0tleUV2ZW50SU9TLm1tCiBwbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hlLm1tCiBwbGF0
Zm9ybS9pb3MvTGVnYWN5VGlsZUdyaWQubW0KQEAgLTQzNSw3ICs0MzQsNiBAQCBwbGF0Zm9ybS9t
YWMvQmxhY2tsaXN0VXBkYXRlci5tbQogcGxhdGZvcm0vbWFjL0N1cnNvck1hYy5tbQogcGxhdGZv
cm0vbWFjL0RyYWdEYXRhTWFjLm1tCiBwbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCi1wbGF0
Zm9ybS9tYWMvRXZlbnRMb29wTWFjLm1tCiBwbGF0Zm9ybS9tYWMvS2V5RXZlbnRNYWMubW0gQG5v
LXVuaWZ5CiBwbGF0Zm9ybS9tYWMvUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjLm1tIEBuby11
bmlmeQogcGxhdGZvcm0vbWFjL0xvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5tbQpJbmRleDog
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
cmV2aXNpb24gMjUwODUwKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC02MTksNyArNjE5LDYgQEAKIAkJMUM3M0E3
MTUyMTg1NzU4NzAwNENDRUE1IC8qIFRleHREZWNvcmF0aW9uVGhpY2tuZXNzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0I2QjRGODIxN0I4MzkzMDA5
M0I5Q0QgLyogVGV4dERlY29yYXRpb25UaGlja25lc3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQzgxQjk1QTBFOTczMzA4MDAyNjZFMDcgLyog
SW5zcGVjdG9yQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUM4MUI5NTYwRTk3MzMwODAwMjY2RTA3IC8qIEluc3BlY3RvckNvbnRyb2xs
ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkx
QzgxQjk1QzBFOTczMzA4MDAyNjZFMDcgLyogSW5zcGVjdG9yQ2xpZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzgxQjk1ODBFOTczMzA4MDAyNjZF
MDcgLyogSW5zcGVjdG9yQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKLQkJMUNBMTlFMTYwREMyNTVDQTAwNjVBOTk0IC8qIEV2ZW50TG9vcC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBMTlFMTUw
REMyNTVDQTAwNjVBOTk0IC8qIEV2ZW50TG9vcC5oICovOyB9OwogCQkxQ0FGMzQ4MTBBNkM0MDUy
MDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FGMzQ3RTBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0
T2JqZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMUNBRjM0ODIwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdC5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUYzNDdGMEE2QzQwNTIw
MEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QubW0gKi87IH07CiAJCTFDQUYzNDgzMEE2QzQwNTIw
MEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3RQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FGMzQ4MDBBNkM0MDUyMDBBQkUwNkUgLyogV2Vi
U2NyaXB0T2JqZWN0UHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC02Mzk0LDggKzYzOTMsNiBAQAogCQkxQ0EwQzJFNTIxRUVEMTJBMDBB
MTE4NjAgLyogV0hMU0xGdW5jdGlvblN0YWdlQ2hlY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExT
TEZ1bmN0aW9uU3RhZ2VDaGVja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFD
QTBDMkVBMjFFRUQ2RjUwMEExMTg2MCAvKiBXSExTTExpdGVyYWxUeXBlQ2hlY2tlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXSExTTExpdGVyYWxUeXBlQ2hlY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxQ0EwQzJFQzIxRUVENkY2MDBBMTE4NjAgLyogV0hMU0xMaXRlcmFsVHlwZUNo
ZWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0hMU0xMaXRlcmFsVHlwZUNoZWNrZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxQ0ExOUUwMzBEQzI1NTk1MDA2NUE5OTQg
LyogRXZlbnRMb29wTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gRXZlbnRMb29wTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxQ0ExOUUx
NTBEQzI1NUNBMDA2NUE5OTQgLyogRXZlbnRMb29wLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEV2ZW50TG9vcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FB
ODJGNjIyNDJBRTA1MDBFODRCQkIgLyogV0hMU0xQcm9wZXJ0eVJlc29sdmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdITFNMUHJvcGVydHlSZXNvbHZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFDQUE4MkY3MjI0MkFFMDUwMEU4NEJCQiAvKiBXSExTTFByb3BlcnR5UmVz
b2x2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xQcm9wZXJ0eVJlc29sdmVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQUYzNDdFMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3Jp
cHRPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU2NyaXB0T2Jq
ZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02NTI1LDcgKzY1MjIsNiBAQAog
CQkyNkYwQzg5QTFBMkVDMTEwMDAyNzk0RjggLyogQ29udGVudEV4dGVuc2lvblJ1bGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGVudEV4dGVuc2lvblJ1bGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjZGMEM4OUQxQTJFQzNCRTAwMjc5NEY4IC8qIENv
bnRlbnRFeHRlbnNpb25zQmFja2VuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDb250ZW50RXh0ZW5zaW9uc0JhY2tlbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkyNkYwQzg5RTFBMkVDM0JFMDAyNzk0RjggLyogQ29udGVudEV4dGVuc2lvbnNC
YWNrZW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnRlbnRFeHRlbnNp
b25zQmFja2VuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyNkY0MEQ0OTE0OTA0
QTYzMDBDQTY3QzQgLyogRXZlbnRMb29wSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gRXZlbnRMb29wSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkyNkY3NTZBRTFCM0I2NUFDMDAwNURENzkgLyogTXV0YWJsZVJhbmdlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE11dGFibGVSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkyNkY3NTZBRjFCM0I2NUFDMDAwNURENzkgLyogTXV0YWJsZVJhbmdlTGlz
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNdXRhYmxlUmFuZ2VMaXN0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2Rjc1NkIyMUIzQjY2RjcwMDA1REQ3OSAv
KiBJbW11dGFibGVORkEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1tdXRh
YmxlTkZBLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDE3MSw3ICsyMDE2Nyw2
IEBACiAJCQkJQTc5NTQ2M0QwQjVDNEM4MDAwN0I0MzhGIC8qIERyYWdEYXRhTWFjLm1tICovLAog
CQkJCUE3Q0ZCM0Q0MEI3RUQxMTgwMDcwQzMyRCAvKiBEcmFnSW1hZ2VNYWMubW0gKi8sCiAJCQkJ
RTFCQTY2RjAxNzQyQkQ4NjAwQzIwMjUxIC8qIER5bmFtaWNMaW5rZXJJbnRlcnBvc2luZy5oICov
LAotCQkJCTFDQTE5RTAzMERDMjU1OTUwMDY1QTk5NCAvKiBFdmVudExvb3BNYWMubW0gKi8sCiAJ
CQkJOTM1QzQ3NkUwOUFDNEQ3MzAwQTZBQUI0IC8qIEtleUV2ZW50TWFjLm1tICovLAogCQkJCUY0
NEE1RjU3MUZFRDM4MzAwMDdGNTk0NCAvKiBMZWdhY3lOU1Bhc3RlYm9hcmRUeXBlcy5oICovLAog
CQkJCTA2RTgxRUQ2MEFCNUQ1RTkwMEM4NzgzNyAvKiBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRl
eHQuaCAqLywKQEAgLTIyNTM5LDcgKzIyNTM0LDYgQEAKIAkJCQkzMTQwMzc5OTEyNEJFQTdGMDBB
RjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MuaCAqLywKIAkJCQkzMTQwMzc5QTEy
NEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MubW0gKi8sCiAJCQkJ
MEZEQTdDMjIxODgzMzBBOTAwQzk1NEI1IC8qIERyYWdJbWFnZUlPUy5tbSAqLywKLQkJCQkyNkY0
MEQ0OTE0OTA0QTYzMDBDQTY3QzQgLyogRXZlbnRMb29wSU9TLm1tICovLAogCQkJCTI2NTU0MTM3
MTQ4OTgxMUMwMDBERkM1RCAvKiBLZXlFdmVudENvZGVzSU9TLmggKi8sCiAJCQkJMjY1NTQxMzgx
NDg5ODExQzAwMERGQzVEIC8qIEtleUV2ZW50SU9TLm1tICovLAogCQkJCUU0QzNCMUY5MEYwRTQx
NjEwMDk2OTNGNiAvKiBMZWdhY3lUaWxlQ2FjaGUuaCAqLywKQEAgLTI1NTIyLDcgKzI1NTE2LDYg
QEAKIAkJCQlBN0NGQjNDRjBCN0VEMTBBMDA3MEMzMkQgLyogRHJhZ0ltYWdlLmNwcCAqLywKIAkJ
CQlBN0NGQjNEMDBCN0VEMTBBMDA3MEMzMkQgLyogRHJhZ0ltYWdlLmggKi8sCiAJCQkJMUFGNUU0
RDcxRTU2NzdBOTAwNEExRjAxIC8qIERyYWdJdGVtLmggKi8sCi0JCQkJMUNBMTlFMTUwREMyNTVD
QTAwNjVBOTk0IC8qIEV2ZW50TG9vcC5oICovLAogCQkJCTI2MkVDNDFDMUQxMTBCMUYwMEJBNzhG
QyAvKiBFdmVudFRyYWNraW5nUmVnaW9ucy5jcHAgKi8sCiAJCQkJMjYyRUM0MTkxRDA3OEYzRDAw
QkE3OEZDIC8qIEV2ZW50VHJhY2tpbmdSZWdpb25zLmggKi8sCiAJCQkJOTM0RkU5RTQwQjVDQTUz
OTAwM0U0QTczIC8qIEZpbGVDaG9vc2VyLmNwcCAqLywKQEAgLTI5MzMxLDcgKzI5MzI0LDYgQEAK
IAkJCQk5NzBCNzI4QTE0NEZGQUM2MDBGMDBBMzcgLyogRXZlbnRJbnRlcmZhY2VzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5MzVGQkM0NTA5QkEwMEI5MDBFMjMwQjEgLyogRXZlbnRMaXN0ZW5lci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQUQ0NDk1RjQxNDFGQzA4OTAwNTQxRURGIC8qIEV2ZW50TGlz
dGVuZXJNYXAuaCBpbiBIZWFkZXJzICovLAotCQkJCTFDQTE5RTE2MERDMjU1Q0EwMDY1QTk5NCAv
KiBFdmVudExvb3AuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzRkU3Q0E4MURBOUYxQjYwMDM3MjM3
QyAvKiBFdmVudE1vZGlmaWVySW5pdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM5ODg1QzQwOEI3
RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTlCNzE0RTIx
MUM5MTE2NjkwMEFDMEU5MiAvKiBFdmVudFBhdGguaCBpbiBIZWFkZXJzICovLApJbmRleDogU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5jcHAJ
KHJldmlzaW9uIDI1MDg1MCkKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlU2NyaXB0
RGVidWdTZXJ2ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw2IEBACiAKICNpbmNs
dWRlICJDb21tb25WTS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiRXZlbnRM
b29wLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNs
dWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCkBAIC0xMTYsOSArMTE1LDEwIEBAIHZvaWQgUGFn
ZVNjcmlwdERlYnVnU2VydmVyOjpydW5FdmVudExvb3AKIAogICAgIG1fcGFnZS5pbmNyZW1lbnRO
ZXN0ZWRSdW5Mb29wQ291bnQoKTsKIAotICAgIEV2ZW50TG9vcCBsb29wOwotICAgIHdoaWxlICgh
bV9kb25lUHJvY2Vzc2luZ0RlYnVnZ2VyRXZlbnRzICYmICFsb29wLmVuZGVkKCkpCi0gICAgICAg
IGxvb3AuY3ljbGUoKTsKKyAgICB3aGlsZSAoIW1fZG9uZVByb2Nlc3NpbmdEZWJ1Z2dlckV2ZW50
cykgeworICAgICAgICBpZiAoUnVuTG9vcDo6Y3ljbGUoKSA9PSBSdW5Mb29wOjpDeWNsZVJlc3Vs
dDo6U3RvcCkKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KIAogICAgIG1fcGFnZS5kZWNyZW1l
bnROZXN0ZWRSdW5Mb29wQ291bnQoKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0V2ZW50TG9vcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0V2ZW50
TG9vcC5oCShyZXZpc2lvbiAyNTA4NTApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVu
dExvb3AuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDUwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEV2ZW50TG9vcF9oCi0jZGVmaW5l
IEV2ZW50TG9vcF9oCi0KLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotCi0gICAgY2xhc3MgRXZlbnRMb29wIHsKLSAgICAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoRXZlbnRMb29wKTsKLSAgICBwdWJsaWM6Ci0gICAgICAgIEV2ZW50TG9vcCgpCi0g
ICAgICAgICAgICA6IG1fZW5kZWQoZmFsc2UpCi0gICAgICAgIHsKLSAgICAgICAgfQotCi0gICAg
ICAgIHZvaWQgY3ljbGUoKTsKLSAgICAgICAgYm9vbCBlbmRlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZW5kZWQ7IH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAgIGJvb2wgbV9lbmRlZDsKLSAgICB9Owot
Ci19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFdmVudExvb3BfaAoKUHJvcGVy
dHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXZlbnRMb29wLmgKX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
b3VyY2VzR0xpYi50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU291
cmNlc0dMaWIudHh0CShyZXZpc2lvbiAyNTA4NTApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Tb3VyY2VzR0xpYi50eHQJKHdvcmtpbmcgY29weSkKQEAgLTI0LDcgKzI0LDYgQEAKIHBsYXRm
b3JtL2F1ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcAogCiBwbGF0Zm9ybS9nbGliL0V2ZW50SGFu
ZGxlckdMaWIuY3BwCi1wbGF0Zm9ybS9nbGliL0V2ZW50TG9vcEdsaWIuY3BwCiBwbGF0Zm9ybS9n
bGliL0ZpbGVNb25pdG9yR0xpYi5jcHAKIHBsYXRmb3JtL2dsaWIvS2V5ZWREZWNvZGVyR2xpYi5j
cHAKIHBsYXRmb3JtL2dsaWIvS2V5ZWRFbmNvZGVyR2xpYi5jcHAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dsaWIvRXZlbnRMb29wR2xpYi5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9FdmVudExvb3BHbGliLmNwcAkocmV2aXNpb24gMjUwODUw
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9FdmVudExvb3BHbGliLmNwcAkobm9u
ZXhpc3RlbnQpCkBAIC0xLDMyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggTnVh
bnRpIEx0ZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICog
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
Ci0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkV2ZW50TG9vcC5oIgotCi0j
aW5jbHVkZSA8Z2xpYi5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXZvaWQgRXZlbnRMb29w
OjpjeWNsZSgpCi17Ci0gICAgZ19tYWluX2NvbnRleHRfaXRlcmF0aW9uKE5VTEwsIEZBTFNFKTsK
LX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9FdmVudExvb3BHbGliLmNwcApfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0
ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0aXZlClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9FdmVudExv
b3BJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0V2ZW50
TG9vcElPUy5tbQkocmV2aXNpb24gMjUwODUwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL0V2ZW50TG9vcElPUy5tbQkobm9uZXhpc3RlbnQpCkBAIC0xLDQzICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiRXZlbnRMb29wLmgiCi0KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQot
Ci0jaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ0ZSdW5Mb29wLmg+Ci0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotdm9pZCBFdmVudExvb3A6OmN5Y2xlKCkKLXsKLSAgICBDRlRpbWVJbnRlcnZhbCB0
aW1lSW50ZXJ2YWwgPSAwLjA1OwotICAgIENGUnVuTG9vcFJ1bkluTW9kZShrQ0ZSdW5Mb29wRGVm
YXVsdE1vZGUsIHRpbWVJbnRlcnZhbCwgdHJ1ZSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKLQotI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvRXZlbnRMb29wTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9FdmVudExvb3BNYWMubW0JKHJldmlzaW9uIDI1MDg1MCkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9FdmVudExvb3BNYWMubW0JKG5vbmV4aXN0ZW50KQpA
QCAtMSw1MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTggQXBwbGUgSW5j
LiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRXZlbnRMb29wLmgiCi0K
LSNpbmNsdWRlIDx3dGYvUHJvY2Vzc1ByaXZpbGVnZS5oPgotCi0jaWYgUExBVEZPUk0oTUFDKQot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXZvaWQgRXZlbnRMb29wOjpjeWNsZSgpCi17Ci0jaWYg
RU5BQkxFKFdFQlBST0NFU1NfTlNSVU5MT09QKQotICAgIGlmICghW05TQXBwIGlzUnVubmluZ10p
IHsKLSAgICAgICAgW1tOU1J1bkxvb3AgY3VycmVudFJ1bkxvb3BdIHJ1blVudGlsRGF0ZTpbTlNE
YXRlIGRhdGVXaXRoVGltZUludGVydmFsU2luY2VOb3c6MC4wNV1dOwotICAgICAgICByZXR1cm47
Ci0gICAgfQotICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6
OkNhbkNvbW11bmljYXRlV2l0aFdpbmRvd1NlcnZlcikpOwotI2VuZGlmCi0gICAgW05TQXBwIHNl
dFdpbmRvd3NOZWVkVXBkYXRlOllFU107Ci0gICAgaWYgKE5TRXZlbnQgKmV2ZW50ID0gW05TQXBw
IG5leHRFdmVudE1hdGNoaW5nTWFzazpOU0V2ZW50TWFza0FueSB1bnRpbERhdGU6W05TRGF0ZSBk
YXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNlTm93OjAuMDVdIGluTW9kZTpOU0RlZmF1bHRSdW5Mb29w
TW9kZSBkZXF1ZXVlOllFU10pCi0gICAgICAgIFtOU0FwcCBzZW5kRXZlbnQ6ZXZlbnRdOwotfQot
Ci19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBQTEFURk9STShNQUMpCgpQcm9w
ZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRXZlbnRMb29wTWFj
Lm1tCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1uYXRp
dmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vcGxheXN0YXRpb24vRXZlbnRMb29wUGxheVN0YXRpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3BsYXlzdGF0aW9uL0V2ZW50TG9vcFBsYXlTdGF0
aW9uLmNwcAkocmV2aXNpb24gMjUwODUwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcGxh
eXN0YXRpb24vRXZlbnRMb29wUGxheVN0YXRpb24uY3BwCShub25leGlzdGVudCkKQEAgLTEsMzgg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBTb255IEludGVyYWN0aXZlIEVudGVy
dGFpbm1lbnQgSW5jLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
RXZlbnRMb29wLmgiCi0KLSNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLXZvaWQgRXZlbnRMb29wOjpjeWNsZSgpCi17Ci0gICAgUnVuTG9vcDo6aXRlcmF0
ZSgpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93aW4vRXZlbnRMb29wV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS93aW4vRXZlbnRMb29wV2luLmNwcAkocmV2aXNpb24gMjUwODUwKQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0V2ZW50TG9vcFdpbi5jcHAJKG5vbmV4aXN0ZW50KQpA
QCAtMSw0NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkV2ZW50TG9vcC5oIgotCi0jaW5j
bHVkZSA8d2luZG93cy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXZvaWQgRXZlbnRMb29w
OjpjeWNsZSgpCi17Ci0gICAgTVNHIG1zZzsKLSAgICBpZiAoIUdldE1lc3NhZ2UoJm1zZywgMCwg
MCwgMCkpIHsKLSAgICAgICAgbV9lbmRlZCA9IHRydWU7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICBUcmFuc2xhdGVNZXNzYWdlKCZtc2cpOwotICAgIERpc3BhdGNoTWVzc2FnZSgmbXNn
KTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0V2ZW50TG9vcFdpbi5jcHAKX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxl
dGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIHByb3BlcnR5Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380716</attachid>
            <date>2019-10-10 19:49:13 -0700</date>
            <delta_ts>2019-10-11 13:34:47 -0700</delta_ts>
            <desc>Updated</desc>
            <filename>bug-202716-20191010194913.patch</filename>
            <type>text/plain</type>
            <size>45684</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDI1MDk5
OSkKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDE5LTEw
LTA4ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIE1ha2UgV2Vi
SW5zcGVjdG9yJ3MgcmVtb3RlIGRlYnVnIEV2ZW50TG9vcCBjb2RlIGludG8gUnVuTG9vcAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNzE2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXQueGN3
b3Jrc3BhY2UveGNzaGFyZWRkYXRhL1dvcmtzcGFjZVNldHRpbmdzLnhjc2V0dGluZ3M6CisKIDIw
MTktMTAtMDggIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkLiBVcGRhdGUgT3B0aW9uc1dQRS5jbWFrZSBhbmQgTkVXUyBmb3Ig
dGhlIDIuMjcuMSByZWxlYXNlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9u
IDI1MDk5OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwzMCBAQAorMjAxOS0xMC0wOCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Vi
a2l0Lm9yZz4KKworICAgICAgICBNYWtlIFdlYkluc3BlY3RvcidzIHJlbW90ZSBkZWJ1ZyBFdmVu
dExvb3AgY29kZSBpbnRvIFJ1bkxvb3AKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwMjcxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVwZGF0ZWQgdGhlIGNvZGUgdG8gdXNlIFJ1bkxvb3A6OmN5Y2xlIGlu
c3RlYWQgb2Ygbm93IGRlbGV0ZWQgRXZlbnRMb29wIGNsYXNzLgorCisgICAgICAgIFRoZSBydW5s
b29wIG1vZGUgdXNlZCBpbiBBcHBsZSdzIHBvcnQgaXMgbW92ZWQgdG8gUmVtb3RlSW5zcGVjdGlv
blRhcmdldDo6cnVuTG9vcE1vZGUKKyAgICAgICAgd2l0aCBhIHNwZWNpYWwgY2FzZSBmb3Igd2F0
Y2hPUy4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL0pTR2xvYmFs
T2JqZWN0U2NyaXB0RGVidWdTZXJ2ZXIuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpKU0dsb2Jh
bE9iamVjdFNjcmlwdERlYnVnU2VydmVyOjpydW5FdmVudExvb3BXaGlsZVBhdXNlZCk6CisgICAg
ICAgIChJbnNwZWN0b3I6OkpTR2xvYmFsT2JqZWN0U2NyaXB0RGVidWdTZXJ2ZXI6OnJ1bkxvb3BN
b2RlKTogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVJbnNwZWN0aW9u
VGFyZ2V0LmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdGlvblRhcmdldDo6
cGF1c2VXYWl0aW5nRm9yQXV0b21hdGljSW5zcGVjdGlvbik6CisgICAgICAgIEludm9rZSBDRlJ1
bkxvb3BBZGRTb3VyY2Ugd2l0aCB0aGUgcnVubG9vcCBtb2RlIG9ubHkgZXhwY2V0IG9uIHdhdGNo
T1Mgd2hlcmUKKyAgICAgICAgd2UgdXNlIHRoZSBkZWZhdWx0IHJ1bmxvb3AgYW55d2F5LgorICAg
ICAgICAqIGluc3BlY3Rvci9yZW1vdGUvUmVtb3RlSW5zcGVjdGlvblRhcmdldC5oOgorICAgICAg
ICAqIGluc3BlY3Rvci9yZW1vdGUvY29jb2EvUmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0Q29jb2Eu
bW06CisgICAgICAgIChJbnNwZWN0b3I6OlJlbW90ZVRhcmdldEluaXRpYWxpemVHbG9iYWxRdWV1
ZSk6CisgICAgICAgIChJbnNwZWN0b3I6OlJlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldDo6c2V0dXBS
dW5Mb29wKToKKyAgICAgICAgKEluc3BlY3Rvcjo6UmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0Ojp0
ZWFyZG93blJ1bkxvb3ApOgorCiAyMDE5LTEwLTEwICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxs
ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEdlbmVyYXRlQW5kQWxsb2NhdGVSZWdpc3RlcnMgY2Fu
IHRyaXZpYWxseSBlbGlkZSBzZWxmIG1vdmVzIGF0IGVuZCBvZiBsaXZlbmVzcwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAkocmV2aXNpb24gMjUwOTk5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL1NvdXJjZXMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01NTMsNyArNTUzLDYgQEAg
aGVhcC9Xcml0ZUJhcnJpZXJTdXBwb3J0LmNwcAogaW5zcGVjdG9yL0FzeW5jU3RhY2tUcmFjZS5j
cHAKIGluc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKIGluc3BlY3Rvci9Db250ZW50U2VhcmNo
VXRpbGl0aWVzLmNwcAotaW5zcGVjdG9yL0V2ZW50TG9vcC5jcHAKIGluc3BlY3Rvci9JZGVudGlm
aWVyc0ZhY3RvcnkuY3BwCiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3BwCiBpbnNwZWN0b3Iv
SW5qZWN0ZWRTY3JpcHRCYXNlLmNwcApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHJldmlzaW9uIDI1MDk5OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xNDA0LDcgKzE0
MDQsNiBAQAogCQlBNTM5OEZBQjFDNzUwREE0MDA2MEE5NjMgLyogSGVhcFByb2ZpbGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTM5OEZBQTFDNzUw
RDk1MDA2MEE5NjMgLyogSGVhcFByb2ZpbGVyLmggKi87IH07CiAJCUE1M0NFMDhBMThCQzIxQzMw
MEJFREY3NiAvKiBDb25zb2xlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBNTNDRTA4OTE4QkMyMUMzMDBCRURGNzYgLyogQ29uc29sZUNsaWVu
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE1
M0YxQUMwMThDOTBGOEYwMDcyRUI2RCAvKiBmcmFtZXdvcmsuc2IgaW4gUmVzb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1M0YxQUJFMThDOTBFQzcwMDcyRUI2RCAv
KiBmcmFtZXdvcmsuc2IgKi87IH07Ci0JCUE1NDk4MjA0MTg5MUQwQjAwMDgxRTVCOCAvKiBFdmVu
dExvb3AuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1
NDk4MjAyMTg5MUQwQjAwMDgxRTVCOCAvKiBFdmVudExvb3AuaCAqLzsgfTsKIAkJQTU0QzJBQjEx
QzY1NDRGMjAwQTE4RDc4IC8qIEhlYXBTbmFwc2hvdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU0QzJBQUYxQzY1NDREMTAwQTE4RDc4IC8qIEhlYXBT
bmFwc2hvdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUE1NENGMkY2MTg0RUFCMjQwMDIzN0YxOSAvKiBTY3JpcHRWYWx1ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU0Q0YyRjMxODRFQUIyNDAwMjM3
RjE5IC8qIFNjcmlwdFZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJQTU0Q0YyRkExODRFQUVEQTAwMjM3RjE5IC8qIFNjcmlwdE9iamVjdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU0Q0YyRjgx
ODRFQUVEQTAwMjM3RjE5IC8qIFNjcmlwdE9iamVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC00MzM2LDggKzQzMzUsNiBAQAogCQlBNTM5OEZB
QTFDNzUwRDk1MDA2MEE5NjMgLyogSGVhcFByb2ZpbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEhlYXBQcm9maWxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBNTNDRTA4OTE4QkMyMUMzMDBCRURGNzYgLyogQ29uc29sZUNsaWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDb25zb2xlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE1M0YxQUJFMThDOTBFQzcwMDcyRUI2RCAvKiBmcmFtZXdvcmsuc2IgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gZnJhbWV3b3JrLnNiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNTQ5ODIwMTE4
OTFEMEIwMDA4MUU1QjggLyogRXZlbnRMb29wLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEV2ZW50TG9vcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUE1NDk4MjAyMTg5MUQwQjAwMDgxRTVCOCAvKiBFdmVudExvb3AuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRXZlbnRMb29wLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE1NEMyQUFFMUM2NTQ0RDEwMEExOEQ3OCAvKiBIZWFwU25hcHNob3QuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSGVhcFNuYXBzaG90LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTU0QzJBQUYxQzY1NDREMTAwQTE4RDc4IC8qIEhlYXBTbmFw
c2hvdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIZWFwU25hcHNob3QuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTU0Q0YyRjIxODRFQUIyNDAwMjM3RjE5IC8q
IFNjcmlwdFZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNj
cmlwdFZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg0MTMsOCArODQx
MCw2IEBACiAJCQkJQTVGRDAwNzgxODlCMDUxMDAwNjMzMjMxIC8qIENvbnNvbGVNZXNzYWdlLmgg
Ki8sCiAJCQkJQTU3RDIzRUYxODkxQjVCNDAwMzFDN0ZBIC8qIENvbnRlbnRTZWFyY2hVdGlsaXRp
ZXMuY3BwICovLAogCQkJCUE1N0QyM0YwMTg5MUI1QjQwMDMxQzdGQSAvKiBDb250ZW50U2VhcmNo
VXRpbGl0aWVzLmggKi8sCi0JCQkJQTU0OTgyMDExODkxRDBCMDAwODFFNUI4IC8qIEV2ZW50TG9v
cC5jcHAgKi8sCi0JCQkJQTU0OTgyMDIxODkxRDBCMDAwODFFNUI4IC8qIEV2ZW50TG9vcC5oICov
LAogCQkJCUE1RkQwMDcyMTg5QjAzOEMwMDYzMzIzMSAvKiBJZGVudGlmaWVyc0ZhY3RvcnkuY3Bw
ICovLAogCQkJCUE1RkQwMDczMTg5QjAzOEMwMDYzMzIzMSAvKiBJZGVudGlmaWVyc0ZhY3Rvcnku
aCAqLywKIAkJCQlBNTEzRTVCNTE4NUI4QkQzMDA3RTk1QUQgLyogSW5qZWN0ZWRTY3JpcHQuY3Bw
ICovLApAQCAtOTMyMCw3ICs5MzE1LDYgQEAKIAkJCQlFM0VFMTM3NjIxRkJENDM1MDBEODNDNEIg
LyogRXJyb3JUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNEFEOTEwQzFEQ0E5Mjk0MDAxNEY5
RkUgLyogRXZhbENvZGVCbG9jay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQ3MzQxRDIxREMwMkUy
RTAwQUEyOUJBIC8qIEV2YWxFeGVjdXRhYmxlLmggaW4gSGVhZGVycyAqLywKLQkJCQlBNTQ5ODIw
NDE4OTFEMEIwMDA4MUU1QjggLyogRXZlbnRMb29wLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTFD
MEZGRDFCMTkzRTk4MDBCNTNGQ0EgLyogRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlG
RTYwMjlEOTFENkUxRTRGMDAzMDIwNEQgLyogRXhjZXB0aW9uRXZlbnRMb2NhdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEYxMkRFMTAxOTc5RDVGRDAwMDZGRjRFIC8qIEV4Y2VwdGlvbkZ1enou
aCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9F
dmVudExvb3AuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvRXZlbnRMb29wLmNwcAkocmV2aXNpb24gMjUwOTk5KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9FdmVudExvb3AuY3BwCShub25leGlzdGVudCkKQEAgLTEsNzMgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJFdmVudExvb3AuaCIKLQotI2lmIE9TKFdJTkRPV1MpCi0j
aW5jbHVkZSA8d2luZG93cy5oPgotI2VsaWYgVVNFKEdMSUIpCi0jaW5jbHVkZSA8Z2xpYi5oPgot
I2VuZGlmCi0KLW5hbWVzcGFjZSBJbnNwZWN0b3IgewotCi0jaWYgVVNFKENGKSAmJiAhT1MoV0lO
RE9XUykKLUNGU3RyaW5nUmVmIEV2ZW50TG9vcDo6cmVtb3RlSW5zcGVjdG9yUnVuTG9vcE1vZGUo
KQotewotICAgIHJldHVybiBDRlNUUigiY29tLmFwcGxlLkphdmFTY3JpcHRDb3JlLnJlbW90ZS1p
bnNwZWN0b3ItcnVubG9vcC1tb2RlIik7Ci19Ci0jZW5kaWYKLQotdm9pZCBFdmVudExvb3A6OmN5
Y2xlKCkKLXsKLSNpZiBPUyhXSU5ET1dTKQotICAgIE1TRyBtc2c7Ci0gICAgaWYgKCFHZXRNZXNz
YWdlKCZtc2csIDAsIDAsIDApKSB7Ci0gICAgICAgIG1fZW5kZWQgPSB0cnVlOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotICAgIFRyYW5zbGF0ZU1lc3NhZ2UoJm1zZyk7Ci0gICAgRGlzcGF0Y2hN
ZXNzYWdlKCZtc2cpOwotI2VsaWYgUExBVEZPUk0oV0FUQ0hPUykKLSAgICAvLyBGSVhNRTogPHJk
YXI6Ly9wcm9ibGVtLzI1OTcyNzc3Pi4gSW4gb3JkZXIgZm9yIGF1dG8tYXR0YWNoIHRvIHdvcmss
IHdlIG5lZWQgdG8KLSAgICAvLyBydW4gaW4gdGhlIGRlZmF1bHQgcnVuIGxvb3AgbW9kZSBvdGhl
cndpc2Ugd2UgZG8gbm90IHJlY2VpdmUgdGhlIFhQQyBtZXNzYWdlcwotICAgIC8vIG5lY2Vzc2Fy
eSB0byBzZXR1cCB0aGUgcmVsYXkgY29ubmVjdGlvbiBhbmQgbmVnb3RpYXRlIGFuIGF1dG8tYXR0
YWNoIGRlYnVnZ2VyLgotICAgIENGVGltZUludGVydmFsIHRpbWVJbnRlcnZhbCA9IDAuMDU7Ci0g
ICAgQ0ZSdW5Mb29wUnVuSW5Nb2RlKGtDRlJ1bkxvb3BEZWZhdWx0TW9kZSwgdGltZUludGVydmFs
LCB0cnVlKTsKLSNlbGlmIFVTRShDRikKLSAgICAvLyBSdW4gdGhlIFJ1bkxvb3AgaW4gYSBjdXN0
b20gcnVuIGxvb3AgbW9kZSB0byBwcmV2ZW50IGRlZmF1bHQgb2JzZXJ2ZXJzCi0gICAgLy8gdG8g
cnVuIGFuZCBwb3RlbnRpYWxseSBldmFsdWF0ZSBKYXZhU2NyaXB0IGluIHRoaXMgY29udGV4dCB3
aGlsZSB3ZSBhcmUKLSAgICAvLyBuZXN0ZWQuIE9ubHkgdGhlIGRlYnVnZ2VyIHNob3VsZCBjb250
cm9sIHRoaW5ncyB1bnRpbCB3ZSBjb250aW51ZS4KLSAgICAvLyBGSVhNRTogVGhpcyBpcyBub3Qg
YSBwZXJmZWN0IHNvbHV0aW9uLCBhcyBiYWNrZ3JvdW5kIHRocmVhZHMgYXJlIG5vdAotICAgIC8v
IHBhdXNlZCBhbmQgY2FuIHN0aWxsIGFjY2VzcyBhbmQgZXZhbHV0ZSBzY3JpcHQgaW4gdGhlIEpT
Q29udGV4dC4KLSAgICBDRlRpbWVJbnRlcnZhbCB0aW1lSW50ZXJ2YWwgPSAwLjA1OwotICAgIENG
UnVuTG9vcFJ1bkluTW9kZShyZW1vdGVJbnNwZWN0b3JSdW5Mb29wTW9kZSgpLCB0aW1lSW50ZXJ2
YWwsIHRydWUpOwotI2VsaWYgVVNFKEdMSUIpCi0gICAgZ19tYWluX2NvbnRleHRfaXRlcmF0aW9u
KE5VTEwsIEZBTFNFKTsKLSNlbmRpZgotfQotCi19IC8vIG5hbWVzcGFjZSBJbnNwZWN0b3IKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvRXZlbnRMb29wLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9FdmVudExvb3AuaAkocmV2aXNp
b24gMjUwOTk5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9FdmVudExvb3Au
aAkobm9uZXhpc3RlbnQpCkBAIC0xLDU1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgPHd0Zi9Ob25j
b3B5YWJsZS5oPgotCi0jaWYgVVNFKENGKSAmJiAhT1MoV0lORE9XUykKLSNpbmNsdWRlIDxDb3Jl
Rm91bmRhdGlvbi9DRlJ1bkxvb3AuaD4KLSNlbmRpZgotCi1uYW1lc3BhY2UgSW5zcGVjdG9yIHsK
LQotY2xhc3MgRXZlbnRMb29wIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShFdmVudExvb3Ap
OwotcHVibGljOgotICAgIEV2ZW50TG9vcCgpCi0gICAgICAgIDogbV9lbmRlZChmYWxzZSkKLSAg
ICB7Ci0gICAgfQotCi0gICAgdm9pZCBjeWNsZSgpOwotICAgIGJvb2wgZW5kZWQoKSBjb25zdCB7
IHJldHVybiBtX2VuZGVkOyB9Ci0KLSNpZiBVU0UoQ0YpICYmICFPUyhXSU5ET1dTKQotICAgIHN0
YXRpYyBDRlN0cmluZ1JlZiByZW1vdGVJbnNwZWN0b3JSdW5Mb29wTW9kZSgpOwotI2VuZGlmCi0K
LXByaXZhdGU6Ci0gICAgYm9vbCBtX2VuZGVkOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgSW5zcGVj
dG9yCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0
U2NyaXB0RGVidWdTZXJ2ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RTY3JpcHREZWJ1Z1NlcnZlci5jcHAJKHJldmlzaW9u
IDI1MDk5OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmpl
Y3RTY3JpcHREZWJ1Z1NlcnZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDkgKzI2LDEwIEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3RTY3JpcHREZWJ1
Z1NlcnZlci5oIgogCi0jaW5jbHVkZSAiRXZlbnRMb29wLmgiCisjaW5jbHVkZSA8d3RmL1J1bkxv
b3AuaD4KICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNMb2NrLmgiCisjaW5j
bHVkZSAiUmVtb3RlSW5zcGVjdGlvblRhcmdldC5oIgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwog
CkBAIC01Nyw5ICs1OCwyOCBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0U2NyaXB0RGVidWdTZXJ2ZXI6
OnJ1CiAgICAgLy8gRHJvcCBhbGwgbG9ja3Mgc28gYW5vdGhlciB0aHJlYWQgY2FuIHdvcmsgaW4g
dGhlIFZNIHdoaWxlIHdlIGFyZSBuZXN0ZWQuCiAgICAgSlNDOjpKU0xvY2s6OkRyb3BBbGxMb2Nr
cyBkcm9wQWxsTG9ja3MoJm1fZ2xvYmFsT2JqZWN0LnZtKCkpOwogCi0gICAgRXZlbnRMb29wIGxv
b3A7Ci0gICAgd2hpbGUgKCFtX2RvbmVQcm9jZXNzaW5nRGVidWdnZXJFdmVudHMgJiYgIWxvb3Au
ZW5kZWQoKSkKLSAgICAgICAgbG9vcC5jeWNsZSgpOworICAgIHdoaWxlICghbV9kb25lUHJvY2Vz
c2luZ0RlYnVnZ2VyRXZlbnRzKSB7CisgICAgICAgIGlmIChSdW5Mb29wOjpjeWNsZShKU0dsb2Jh
bE9iamVjdFNjcmlwdERlYnVnU2VydmVyOjpydW5Mb29wTW9kZSgpKSA9PSBSdW5Mb29wOjpDeWNs
ZVJlc3VsdDo6U3RvcCkKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KK30KKworU3RyaW5nIEpT
R2xvYmFsT2JqZWN0U2NyaXB0RGVidWdTZXJ2ZXI6OnJ1bkxvb3BNb2RlKCkKK3sKKyNpZiBVU0Uo
Q0YpICYmICFQTEFURk9STShXQVRDSE9TKQorICAgIC8vIFJ1biB0aGUgUnVuTG9vcCBpbiBhIGN1
c3RvbSBydW4gbG9vcCBtb2RlIHRvIHByZXZlbnQgZGVmYXVsdCBvYnNlcnZlcnMKKyAgICAvLyB0
byBydW4gYW5kIHBvdGVudGlhbGx5IGV2YWx1YXRlIEphdmFTY3JpcHQgaW4gdGhpcyBjb250ZXh0
IHdoaWxlIHdlIGFyZQorICAgIC8vIG5lc3RlZC4gT25seSB0aGUgZGVidWdnZXIgc2hvdWxkIGNv
bnRyb2wgdGhpbmdzIHVudGlsIHdlIGNvbnRpbnVlLgorICAgIC8vIEZJWE1FOiBUaGlzIGlzIG5v
dCBhIHBlcmZlY3Qgc29sdXRpb24sIGFzIGJhY2tncm91bmQgdGhyZWFkcyBhcmUgbm90CisgICAg
Ly8gcGF1c2VkIGFuZCBjYW4gc3RpbGwgYWNjZXNzIGFuZCBldmFsdXRlIHNjcmlwdCBpbiB0aGUg
SlNDb250ZXh0LgorCisgICAgLy8gRklYTUU6IDxyZGFyOi8vcHJvYmxlbS8yNTk3Mjc3Nz4uIE9u
IHdhdGNoT1MsIGluIG9yZGVyIGZvciBhdXRvLWF0dGFjaCB0byB3b3JrLAorICAgIC8vIHdlIG5l
ZWQgdG8gcnVuIGluIHRoZSBkZWZhdWx0IHJ1biBsb29wIG1vZGUgb3RoZXJ3aXNlIHdlIGRvIG5v
dCByZWNlaXZlIHRoZSBYUEMgbWVzc2FnZXMKKyAgICAvLyBuZWNlc3NhcnkgdG8gc2V0dXAgdGhl
IHJlbGF5IGNvbm5lY3Rpb24gYW5kIG5lZ290aWF0ZSBhbiBhdXRvLWF0dGFjaCBkZWJ1Z2dlci4K
KyAgICByZXR1cm4gImNvbS5hcHBsZS5KYXZhU2NyaXB0Q29yZS5yZW1vdGUtaW5zcGVjdG9yLXJ1
bmxvb3AtbW9kZSJfczsKKyNlbHNlCisgICAgcmV0dXJuIHsgfTsKKyNlbmRpZgogfQogCiB9IC8v
IG5hbWVzcGFjZSBJbnNwZWN0b3IKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvSlNHbG9iYWxPYmplY3RTY3JpcHREZWJ1Z1NlcnZlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RTY3JpcHREZWJ1Z1NlcnZl
ci5oCShyZXZpc2lvbiAyNTA5OTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0pTR2xvYmFsT2JqZWN0U2NyaXB0RGVidWdTZXJ2ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzgs
NiArMzgsOCBAQCBwdWJsaWM6CiAKICAgICBKU0M6OkpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmpl
Y3QoKSBjb25zdCB7IHJldHVybiBtX2dsb2JhbE9iamVjdDsgfQogCisgICAgc3RhdGljIFN0cmlu
ZyBydW5Mb29wTW9kZSgpOworCiBwcml2YXRlOgogICAgIHZvaWQgYXR0YWNoRGVidWdnZXIoKSBv
dmVycmlkZTsKICAgICB2b2lkIGRldGFjaERlYnVnZ2VyKGJvb2wgaXNCZWluZ0Rlc3Ryb3llZCkg
b3ZlcnJpZGU7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9S
ZW1vdGVJbnNwZWN0aW9uVGFyZ2V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVJbnNwZWN0aW9uVGFyZ2V0LmNwcAkocmV2aXNp
b24gMjUwOTk5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVt
b3RlSW5zcGVjdGlvblRhcmdldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDggKzI4LDkgQEAK
IAogI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQogCi0jaW5jbHVkZSAiRXZlbnRMb29wLmgi
CisjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3RTY3JpcHREZWJ1Z1NlcnZlci5oIgogI2luY2x1ZGUg
IlJlbW90ZUluc3BlY3Rvci5oIgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKIG5hbWVzcGFj
ZSBJbnNwZWN0b3IgewogCkBAIC01Nyw5ICs1OCwxMCBAQCB2b2lkIFJlbW90ZUluc3BlY3Rpb25U
YXJnZXQ6OnBhdXNlV2FpdGluCiAgICAgQVNTRVJUKG1fYWxsb3dlZCk7CiAgICAgQVNTRVJUKGF1
dG9tYXRpY0luc3BlY3Rpb25BbGxvd2VkKCkpOwogCi0gICAgRXZlbnRMb29wIGxvb3A7Ci0gICAg
d2hpbGUgKFJlbW90ZUluc3BlY3Rvcjo6c2luZ2xldG9uKCkud2FpdGluZ0ZvckF1dG9tYXRpY0lu
c3BlY3Rpb24odGFyZ2V0SWRlbnRpZmllcigpKSAmJiAhbG9vcC5lbmRlZCgpKQotICAgICAgICBs
b29wLmN5Y2xlKCk7CisgICAgd2hpbGUgKFJlbW90ZUluc3BlY3Rvcjo6c2luZ2xldG9uKCkud2Fp
dGluZ0ZvckF1dG9tYXRpY0luc3BlY3Rpb24odGFyZ2V0SWRlbnRpZmllcigpKSkgeworICAgICAg
ICBpZiAoUnVuTG9vcDo6Y3ljbGUoSlNHbG9iYWxPYmplY3RTY3JpcHREZWJ1Z1NlcnZlcjo6cnVu
TG9vcE1vZGUoKSkgPT0gUnVuTG9vcDo6Q3ljbGVSZXN1bHQ6OlN0b3ApCisgICAgICAgICAgICBi
cmVhazsKKyAgICB9CiB9CiAKIHZvaWQgUmVtb3RlSW5zcGVjdGlvblRhcmdldDo6dW5wYXVzZUZv
ckluaXRpYWxpemVkSW5zcGVjdG9yKCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvcmVtb3RlL2NvY29hL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldENvY29hLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL2NvY29hL1Jl
bW90ZUNvbm5lY3Rpb25Ub1RhcmdldENvY29hLm1tCShyZXZpc2lvbiAyNTA5OTkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9jb2NvYS9SZW1vdGVDb25uZWN0aW9u
VG9UYXJnZXRDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMjgsMTIgKzI4LDEzIEBACiAKICNp
ZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKIAotI2ltcG9ydCAiRXZlbnRMb29wLmgiCisjaW1w
b3J0ICJKU0dsb2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyLmgiCiAjaW1wb3J0ICJSZW1vdGVB
dXRvbWF0aW9uVGFyZ2V0LmgiCiAjaW1wb3J0ICJSZW1vdGVJbnNwZWN0aW9uVGFyZ2V0LmgiCiAj
aW1wb3J0ICJSZW1vdGVJbnNwZWN0b3IuaCIKICNpbXBvcnQgPGRpc3BhdGNoL2Rpc3BhdGNoLmg+
CiAjaW1wb3J0IDx3dGYvT3B0aW9uYWwuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKICNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQogI2ltcG9ydCA8d3RmL2lvcy9XZWJDb3JlVGhyZWFkLmg+
CkBAIC04Nyw3ICs4OCw5IEBAIHN0YXRpYyB2b2lkIFJlbW90ZVRhcmdldEluaXRpYWxpemVHbG9i
YWwKIAogICAgICAgICAvLyBBZGQgdG8gdGhlIGRlZmF1bHQgcnVuIGxvb3AgbW9kZSBmb3IgZGVm
YXVsdCBoYW5kbGluZywgYW5kIHRoZSBKU0NvbnRleHQgcmVtb3RlIGluc3BlY3RvciBydW4gbG9v
cCBtb2RlIHdoZW4gcGF1c2VkLgogICAgICAgICBDRlJ1bkxvb3BBZGRTb3VyY2UoQ0ZSdW5Mb29w
R2V0TWFpbigpLCByd2lSdW5Mb29wU291cmNlLCBrQ0ZSdW5Mb29wRGVmYXVsdE1vZGUpOwotICAg
ICAgICBDRlJ1bkxvb3BBZGRTb3VyY2UoQ0ZSdW5Mb29wR2V0TWFpbigpLCByd2lSdW5Mb29wU291
cmNlLCBFdmVudExvb3A6OnJlbW90ZUluc3BlY3RvclJ1bkxvb3BNb2RlKCkpOworICAgICAgICBh
dXRvIG1vZGUgPSBKU0dsb2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyOjpydW5Mb29wTW9kZSgp
OworICAgICAgICBpZiAoIW1vZGUuaXNOdWxsKCkpCisgICAgICAgICAgICBDRlJ1bkxvb3BBZGRT
b3VyY2UoQ0ZSdW5Mb29wR2V0TWFpbigpLCByd2lSdW5Mb29wU291cmNlLCBtb2RlLmNyZWF0ZUNG
U3RyaW5nKCkuZ2V0KCkpOwogICAgIH0pOwogfQogCkBAIC0yNTgsNyArMjYxLDkgQEAgdm9pZCBS
ZW1vdGVDb25uZWN0aW9uVG9UYXJnZXQ6OnNldHVwUnVuTAogICAgIG1fcnVuTG9vcFNvdXJjZSA9
IGFkb3B0Q0YoQ0ZSdW5Mb29wU291cmNlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDEsICZy
dW5Mb29wU291cmNlQ29udGV4dCkpOwogCiAgICAgQ0ZSdW5Mb29wQWRkU291cmNlKG1fcnVuTG9v
cC5nZXQoKSwgbV9ydW5Mb29wU291cmNlLmdldCgpLCBrQ0ZSdW5Mb29wRGVmYXVsdE1vZGUpOwot
ICAgIENGUnVuTG9vcEFkZFNvdXJjZShtX3J1bkxvb3AuZ2V0KCksIG1fcnVuTG9vcFNvdXJjZS5n
ZXQoKSwgRXZlbnRMb29wOjpyZW1vdGVJbnNwZWN0b3JSdW5Mb29wTW9kZSgpKTsKKyAgICBhdXRv
IG1vZGUgPSBKU0dsb2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyOjpydW5Mb29wTW9kZSgpOwor
ICAgIGlmICghbW9kZS5pc051bGwoKSkKKyAgICAgICAgQ0ZSdW5Mb29wQWRkU291cmNlKG1fcnVu
TG9vcC5nZXQoKSwgbV9ydW5Mb29wU291cmNlLmdldCgpLCBtb2RlLmNyZWF0ZUNGU3RyaW5nKCku
Z2V0KCkpOwogfQogCiB2b2lkIFJlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldDo6dGVhcmRvd25SdW5M
b29wKCkKQEAgLTI2Nyw3ICsyNzIsOSBAQCB2b2lkIFJlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldDo6
dGVhcmRvd25SCiAgICAgICAgIHJldHVybjsKIAogICAgIENGUnVuTG9vcFJlbW92ZVNvdXJjZSht
X3J1bkxvb3AuZ2V0KCksIG1fcnVuTG9vcFNvdXJjZS5nZXQoKSwga0NGUnVuTG9vcERlZmF1bHRN
b2RlKTsKLSAgICBDRlJ1bkxvb3BSZW1vdmVTb3VyY2UobV9ydW5Mb29wLmdldCgpLCBtX3J1bkxv
b3BTb3VyY2UuZ2V0KCksIEV2ZW50TG9vcDo6cmVtb3RlSW5zcGVjdG9yUnVuTG9vcE1vZGUoKSk7
CisgICAgYXV0byBtb2RlID0gSlNHbG9iYWxPYmplY3RTY3JpcHREZWJ1Z1NlcnZlcjo6cnVuTG9v
cE1vZGUoKTsKKyAgICBpZiAoIW1vZGUuaXNOdWxsKCkpCisgICAgICAgIENGUnVuTG9vcFJlbW92
ZVNvdXJjZShtX3J1bkxvb3AuZ2V0KCksIG1fcnVuTG9vcFNvdXJjZS5nZXQoKSwgbW9kZS5jcmVh
dGVDRlN0cmluZygpLmdldCgpKTsKIAogICAgIG1fcnVuTG9vcCA9IG51bGxwdHI7CiAgICAgbV9y
dW5Mb29wU291cmNlID0gbnVsbHB0cjsKSW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTA5OTkpCisrKyBTb3Vy
Y2UvV1RGL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDE5LTEw
LTA4ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIE1ha2UgV2Vi
SW5zcGVjdG9yJ3MgcmVtb3RlIGRlYnVnIEV2ZW50TG9vcCBjb2RlIGludG8gUnVuTG9vcAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNzE2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBt
ZXJnZXMgV2ViSW5zcGVjdG9yJ3MgRXZlbnRMb29wIGNvZGUgaW50byBSdW5Mb29wIGFzIGEgc3Rh
dGljIGZ1bmN0aW9uLgorCisgICAgICAgICogd3RmL1J1bkxvb3AuaDoKKyAgICAgICAgKFdURjo6
UnVuTG9vcDo6Y3ljbGUpOgorICAgICAgICAqIHd0Zi9jZi9SdW5Mb29wQ0YuY3BwOgorICAgICAg
ICAoV1RGOjpSdW5Mb29wOjpjeWNsZSk6IEFkZGVkLgorICAgICAgICAqIHd0Zi9nZW5lcmljL1J1
bkxvb3BHZW5lcmljLmNwcDoKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6Y3ljbGUpOiBBZGRlZC4K
KyAgICAgICAgKiB3dGYvZ2xpYi9SdW5Mb29wR0xpYi5jcHA6CisgICAgICAgIChXVEY6OlJ1bkxv
b3A6OmN5Y2xlKTogQWRkZWQuCisgICAgICAgICogd3RmL3dpbi9SdW5Mb29wV2luLmNwcDoKKyAg
ICAgICAgKFdURjo6UnVuTG9vcDo6Y3ljbGUpOiBBZGRlZC4KKwogMjAxOS0xMC0wOSAgS2VpdGgg
Um9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHNvbWUgc3VwcG9y
dCBmb3IgPCBpT1MgMTMKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtTWFjLmNtYWtlCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtTWFjLmNtYWtlCShyZXZpc2lvbiAy
NTA5OTkpCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybU1hYy5jbWFrZQkod29ya2luZyBjb3B5
KQpAQCAtNjQsNiArNjQsNyBAQCBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwogCiAgICAgbWFjL0Rl
cHJlY2F0ZWRTeW1ib2xzVXNlZEJ5U2FmYXJpLm1tCiAgICAgbWFjL0ZpbGVTeXN0ZW1NYWMubW0K
KyAgICBtYWMvUnVuTG9vcE1hYy5tbQogICAgIG1hYy9TY2hlZHVsZVBhaXJNYWMubW0KIAogICAg
IHBvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1J1bkxvb3Au
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmgJKHJldmlzaW9uIDI1MDk5
OSkKKysrIFNvdXJjZS9XVEYvd3RmL1J1bkxvb3AuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiAr
MzUsNyBAQAogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvU2Vjb25k
cy5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBVU0UoR0xJQl9FVkVOVF9MT09QKQogI2luY2x1ZGUg
PHd0Zi9nbGliL0dSZWZQdHIuaD4KQEAgLTYwLDYgKzYxLDkgQEAgcHVibGljOgogICAgIFdURl9F
WFBPUlRfUFJJVkFURSB2b2lkIHN0b3AoKTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCB3
YWtlVXAoKTsKIAorICAgIGVudW0gY2xhc3MgQ3ljbGVSZXN1bHQgeyBDb250aW51ZSwgU3RvcCB9
OworICAgIFdURl9FWFBPUlRfUFJJVkFURSBDeWNsZVJlc3VsdCBzdGF0aWMgY3ljbGUoU3RyaW5n
ID0geyB9KTsKKwogI2lmIFVTRShDT0NPQV9FVkVOVF9MT09QKQogICAgIFdURl9FWFBPUlRfUFJJ
VkFURSB2b2lkIHJ1bkZvckR1cmF0aW9uKFNlY29uZHMgZHVyYXRpb24pOwogI2VuZGlmCkluZGV4
OiBTb3VyY2UvV1RGL3d0Zi9jZi9SdW5Mb29wQ0YuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
VEYvd3RmL2NmL1J1bkxvb3BDRi5jcHAJKHJldmlzaW9uIDI1MDk5OSkKKysrIFNvdXJjZS9XVEYv
d3RmL2NmL1J1bkxvb3BDRi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYyLDYgKzYyLDEzIEBAIHZv
aWQgUnVuTG9vcDo6d2FrZVVwKCkKICAgICBDRlJ1bkxvb3BXYWtlVXAobV9ydW5Mb29wLmdldCgp
KTsKIH0KIAorUnVuTG9vcDo6Q3ljbGVSZXN1bHQgUnVuTG9vcDo6Y3ljbGUoU3RyaW5nIG1vZGUp
Cit7CisgICAgQ0ZUaW1lSW50ZXJ2YWwgdGltZUludGVydmFsID0gMC4wNTsKKyAgICBDRlJ1bkxv
b3BSdW5Jbk1vZGUobW9kZS5pc051bGwoKSA/IGtDRlJ1bkxvb3BEZWZhdWx0TW9kZSA6IG1vZGUu
Y3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgdGltZUludGVydmFsLCB0cnVlKTsKKyAgICByZXR1cm4g
Q3ljbGVSZXN1bHQ6OkNvbnRpbnVlOworfQorCiB2b2lkIFJ1bkxvb3A6OnJ1bigpCiB7CiAgICAg
QXV0b2RyYWluZWRQb29sIHBvb2w7CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9nZW5lcmljL1J1bkxv
b3BHZW5lcmljLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9nZW5lcmljL1J1bkxv
b3BHZW5lcmljLmNwcAkocmV2aXNpb24gMjUwOTk5KQorKysgU291cmNlL1dURi93dGYvZ2VuZXJp
Yy9SdW5Mb29wR2VuZXJpYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxOCw2ICsyMTgsMTEgQEAg
dm9pZCBSdW5Mb29wOjp3YWtlVXAoKQogICAgIHdha2VVcChsb2NrZXIpOwogfQogCitSdW5Mb29w
OjpDeWNsZVJlc3VsdCBSdW5Mb29wOjpjeWNsZShTdHJpbmcpCit7CisgICAgaXRlcmF0ZSgpOwor
fQorCiB2b2lkIFJ1bkxvb3A6OnNjaGVkdWxlKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgUmVmPFRp
bWVyQmFzZTo6U2NoZWR1bGVkVGFzaz4mJiB0YXNrKQogewogICAgIG1fc2NoZWR1bGVzLmFwcGVu
ZCh0YXNrLnB0cigpKTsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL2dsaWIvUnVuTG9vcEdMaWIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL2dsaWIvUnVuTG9vcEdMaWIuY3BwCShyZXZp
c2lvbiAyNTA5OTkpCisrKyBTb3VyY2UvV1RGL3d0Zi9nbGliL1J1bkxvb3BHTGliLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTIzLDYgKzEyMywxMiBAQCB2b2lkIFJ1bkxvb3A6Ondha2VVcCgpCiAg
ICAgZ19zb3VyY2Vfc2V0X3JlYWR5X3RpbWUobV9zb3VyY2UuZ2V0KCksIDApOwogfQogCitSdW5M
b29wOjpDeWNsZVJlc3VsdCBSdW5Mb29wOjpjeWNsZShTdHJpbmcpCit7CisgICAgZ19tYWluX2Nv
bnRleHRfaXRlcmF0aW9uKE5VTEwsIEZBTFNFKTsKKyAgICByZXR1cm4gQ3ljbGVSZXN1bHQ6OkNv
bnRpbnVlOworfQorCiBjbGFzcyBEaXNwYXRjaEFmdGVyQ29udGV4dCB7CiAgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi93aW4vUnVuTG9v
cFdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvd2luL1J1bkxvb3BXaW4uY3Bw
CShyZXZpc2lvbiAyNTA5OTkpCisrKyBTb3VyY2UvV1RGL3d0Zi93aW4vUnVuTG9vcFdpbi5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEyMCw2ICsxMjAsMTggQEAgdm9pZCBSdW5Mb29wOjp3YWtlVXAo
KQogICAgIDo6UG9zdE1lc3NhZ2UobV9ydW5Mb29wTWVzc2FnZVdpbmRvdywgUGVyZm9ybVdvcmtN
ZXNzYWdlLCByZWludGVycHJldF9jYXN0PFdQQVJBTT4odGhpcyksIDApOwogfQogCitSdW5Mb29w
OjpDeWNsZVJlc3VsdCBSdW5Mb29wOjpjeWNsZShTdHJpbmcpCit7CisgICAgTVNHIG1lc3NhZ2U7
CisgICAgaWYgKCE6OkdldE1lc3NhZ2UoJm1lc3NhZ2UsIDAsIDAsIDApKQorICAgICAgICByZXR1
cm4gQ3ljbGVSZXN1bHQ6OlN0b3A7CisKKyAgICA6OlRyYW5zbGF0ZU1lc3NhZ2UoJm1lc3NhZ2Up
OworICAgIDo6RGlzcGF0Y2hNZXNzYWdlKCZtZXNzYWdlKTsKKworICAgIHJldHVybiBDeWNsZVJl
c3VsdDo6Q29udGludWU7Cit9CisKIC8vIFJ1bkxvb3A6OlRpbWVyCiAKIHZvaWQgUnVuTG9vcDo6
VGltZXJCYXNlOjp0aW1lckZpcmVkKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MDk5OSkK
KysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0
IEBACisyMDE5LTEwLTA4ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAg
ICAgIE1ha2UgV2ViSW5zcGVjdG9yJ3MgcmVtb3RlIGRlYnVnIEV2ZW50TG9vcCBjb2RlIGludG8g
UnVuTG9vcAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjAyNzE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VXNlIFJ1bkxvb3A6OmN5Y2xlLgorCisgICAgICAgICogUGxhdGZvcm1GVFcuY21ha2U6CisgICAg
ICAgICogUGxhdGZvcm1QbGF5U3RhdGlvbi5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybVdpbi5j
bWFrZToKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBpbnNwZWN0b3IvUGFnZVNjcmlwdERl
YnVnU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6
cnVuRXZlbnRMb29wV2hpbGVQYXVzZWRJbnRlcm5hbCk6CisgICAgICAgICogcGxhdGZvcm0vU291
cmNlc0dMaWIudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2dsaWIvRXZlbnRMb29wR2xpYi5jcHA6
IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vcGxheXN0YXRpb24vRXZlbnRMb29wUGxheVN0
YXRpb24uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9FdmVudExvb3BXaW4u
Y3BwOiBSZW1vdmVkLgorCiAyMDE5LTEwLTEwICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHVzZSBtb3JlIEMrKyBrZXl3b3Jk
cyBmb3IgZGVmaW5pbmcgYWdlbnRzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUZUVy5j
bWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUZUVy5jbWFrZQkocmV2
aXNpb24gMjUwOTk5KQorKysgU291cmNlL1dlYkNvcmUvUGxhdGZvcm1GVFcuY21ha2UJKHdvcmtp
bmcgY29weSkKQEAgLTExNyw3ICsxMTcsNiBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMK
ICAgICBwbGF0Zm9ybS93aW4vRHJhZ0RhdGFXaW4uY3BwCiAgICAgcGxhdGZvcm0vd2luL0RyYWdJ
bWFnZURpcmVjdDJELmNwcAogICAgIHBsYXRmb3JtL3dpbi9EcmFnSW1hZ2VXaW4uY3BwCi0gICAg
cGxhdGZvcm0vd2luL0V2ZW50TG9vcFdpbi5jcHAKICAgICBwbGF0Zm9ybS93aW4vR0RJT2JqZWN0
Q291bnRlci5jcHAKICAgICBwbGF0Zm9ybS93aW4vR0RJVXRpbGl0aWVzLmNwcAogICAgIHBsYXRm
b3JtL3dpbi9JbXBvcnRlZEZ1bmN0aW9uc0VudW1lcmF0b3IuY3BwCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybVBsYXlTdGF0aW9uLmNtYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL1BsYXRmb3JtUGxheVN0YXRpb24uY21ha2UJKHJldmlzaW9uIDI1MDk5OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL1BsYXRmb3JtUGxheVN0YXRpb24uY21ha2UJKHdvcmtpbmcgY29weSkKQEAgLTU4
LDcgKzU4LDYgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vbmV0
d29yay9wbGF5c3RhdGlvbi9DdXJsU1NMSGFuZGxlUGxheVN0YXRpb24uY3BwCiAgICAgcGxhdGZv
cm0vbmV0d29yay9wbGF5c3RhdGlvbi9OZXR3b3JrU3RhdGVOb3RpZmllclBsYXlTdGF0aW9uLmNw
cAogCi0gICAgcGxhdGZvcm0vcGxheXN0YXRpb24vRXZlbnRMb29wUGxheVN0YXRpb24uY3BwCiAg
ICAgcGxhdGZvcm0vcGxheXN0YXRpb24vTUlNRVR5cGVSZWdpc3RyeVBsYXlTdGF0aW9uLmNwcAog
ICAgIHBsYXRmb3JtL3BsYXlzdGF0aW9uL1BsYXRmb3JtU2NyZWVuUGxheVN0YXRpb24uY3BwCiAg
ICAgcGxhdGZvcm0vcGxheXN0YXRpb24vU2Nyb2xsYmFyVGhlbWVQbGF5U3RhdGlvbi5jcHAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luLmNtYWtlCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL1BsYXRmb3JtV2luLmNtYWtlCShyZXZpc2lvbiAyNTA5OTkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQkod29ya2luZyBjb3B5KQpAQCAtODIsNyArODIsNiBA
QCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS93aW4vRGVmV25kUHJv
Y1dpbmRvd0NsYXNzLmNwcAogICAgIHBsYXRmb3JtL3dpbi9EcmFnRGF0YVdpbi5jcHAKICAgICBw
bGF0Zm9ybS93aW4vRHJhZ0ltYWdlV2luLmNwcAotICAgIHBsYXRmb3JtL3dpbi9FdmVudExvb3BX
aW4uY3BwCiAgICAgcGxhdGZvcm0vd2luL0dESU9iamVjdENvdW50ZXIuY3BwCiAgICAgcGxhdGZv
cm0vd2luL0dESVV0aWxpdGllcy5jcHAKICAgICBwbGF0Zm9ybS93aW4vS2V5RXZlbnRXaW4uY3Bw
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQJKHJldmlzaW9uIDI1MDk5OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQJKHdvcmtpbmcgY29weSkKQEAgLTM4Niw3ICszODYs
NiBAQCBwbGF0Zm9ybS9pb3MvRGV2aWNlLmNwcAogcGxhdGZvcm0vaW9zL0RldmljZU1vdGlvbkNs
aWVudElPUy5tbQogcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLm1tCiBw
bGF0Zm9ybS9pb3MvRHJhZ0ltYWdlSU9TLm1tCi1wbGF0Zm9ybS9pb3MvRXZlbnRMb29wSU9TLm1t
CiBwbGF0Zm9ybS9pb3MvS2V5RXZlbnRJT1MubW0KIHBsYXRmb3JtL2lvcy9MZWdhY3lUaWxlQ2Fj
aGUubW0KIHBsYXRmb3JtL2lvcy9MZWdhY3lUaWxlR3JpZC5tbQpAQCAtNDM2LDcgKzQzNSw2IEBA
IHBsYXRmb3JtL21hYy9CbGFja2xpc3RVcGRhdGVyLm1tCiBwbGF0Zm9ybS9tYWMvQ3Vyc29yTWFj
Lm1tCiBwbGF0Zm9ybS9tYWMvRHJhZ0RhdGFNYWMubW0KIHBsYXRmb3JtL21hYy9EcmFnSW1hZ2VN
YWMubW0KLXBsYXRmb3JtL21hYy9FdmVudExvb3BNYWMubW0KIHBsYXRmb3JtL21hYy9LZXlFdmVu
dE1hYy5tbSBAbm8tdW5pZnkKIHBsYXRmb3JtL21hYy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VN
YWMubW0gQG5vLXVuaWZ5CiBwbGF0Zm9ybS9tYWMvTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0
Lm1tCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCShyZXZpc2lvbiAyNTA5OTkpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTYxOSw3ICs2MTksNiBA
QAogCQkxQzczQTcxNTIxODU3NTg3MDA0Q0NFQTUgLyogVGV4dERlY29yYXRpb25UaGlja25lc3Mu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQjZCNEY4
MjE3QjgzOTMwMDkzQjlDRCAvKiBUZXh0RGVjb3JhdGlvblRoaWNrbmVzcy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFDODFCOTVBMEU5NzMzMDgw
MDI2NkUwNyAvKiBJbnNwZWN0b3JDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzgxQjk1NjBFOTczMzA4MDAyNjZFMDcgLyogSW5zcGVj
dG9yQ29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTFDODFCOTVDMEU5NzMzMDgwMDI2NkUwNyAvKiBJbnNwZWN0b3JDbGllbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDODFCOTU4MEU5
NzMzMDgwMDI2NkUwNyAvKiBJbnNwZWN0b3JDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkxQ0ExOUUxNjBEQzI1NUNBMDA2NUE5OTQgLyog
RXZlbnRMb29wLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQ0ExOUUxNTBEQzI1NUNBMDA2NUE5OTQgLyogRXZlbnRMb29wLmggKi87IH07CiAJCTFDQUYz
NDgxMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUYzNDdFMEE2QzQwNTIwMEFCRTA2RSAv
KiBXZWJTY3JpcHRPYmplY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkxQ0FGMzQ4MjBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBRjM0
N0YwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdC5tbSAqLzsgfTsKIAkJMUNBRjM0
ODMwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdFByaXZhdGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUYzNDgwMEE2QzQwNTIwMEFC
RTA2RSAvKiBXZWJTY3JpcHRPYmplY3RQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTYzOTksOCArNjM5OCw2IEBACiAJCTFDQTBDMkU1
MjFFRUQxMkEwMEExMTg2MCAvKiBXSExTTEZ1bmN0aW9uU3RhZ2VDaGVja2VyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdITFNMRnVuY3Rpb25TdGFnZUNoZWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMUNBMEMyRUEyMUVFRDZGNTAwQTExODYwIC8qIFdITFNMTGl0ZXJhbFR5cGVDaGVj
a2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdITFNMTGl0ZXJhbFR5cGVDaGVja2VyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQTBDMkVDMjFFRUQ2RjYwMEExMTg2MCAvKiBXSExTTExp
dGVyYWxUeXBlQ2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXSExTTExpdGVyYWxUeXBl
Q2hlY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFDQTE5RTAzMERDMjU1
OTUwMDY1QTk5NCAvKiBFdmVudExvb3BNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBFdmVudExvb3BNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTFDQTE5RTE1MERDMjU1Q0EwMDY1QTk5NCAvKiBFdmVudExvb3AuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnRMb29wLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTFDQUE4MkY2MjI0MkFFMDUwMEU4NEJCQiAvKiBXSExTTFByb3BlcnR5UmVzb2x2ZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0hMU0xQcm9wZXJ0eVJlc29sdmVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBQTgyRjcyMjQyQUUwNTAwRTg0QkJCIC8qIFdITFNM
UHJvcGVydHlSZXNvbHZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTFByb3BlcnR5UmVzb2x2ZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBRjM0N0UwQTZDNDA1MjAwQUJFMDZF
IC8qIFdlYlNjcmlwdE9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJTY3JpcHRPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY1MzAsNyAr
NjUyNyw2IEBACiAJCTI2RjBDODlBMUEyRUMxMTAwMDI3OTRGOCAvKiBDb250ZW50RXh0ZW5zaW9u
UnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb250ZW50RXh0ZW5zaW9u
UnVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNkYwQzg5RDFBMkVDM0JFMDAy
Nzk0RjggLyogQ29udGVudEV4dGVuc2lvbnNCYWNrZW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IENvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2RjBDODlFMUEyRUMzQkUwMDI3OTRGOCAvKiBDb250ZW50
RXh0ZW5zaW9uc0JhY2tlbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29u
dGVudEV4dGVuc2lvbnNCYWNrZW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTI2
RjQwRDQ5MTQ5MDRBNjMwMENBNjdDNCAvKiBFdmVudExvb3BJT1MubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBFdmVudExvb3BJT1MubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTI2Rjc1NkFFMUIzQjY1QUMwMDA1REQ3OSAvKiBNdXRhYmxlUmFuZ2Uu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTXV0YWJsZVJhbmdlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2Rjc1NkFGMUIzQjY1QUMwMDA1REQ3OSAvKiBNdXRh
YmxlUmFuZ2VMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE11dGFibGVS
YW5nZUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjZGNzU2QjIxQjNCNjZG
NzAwMDVERDc5IC8qIEltbXV0YWJsZU5GQS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBJbW11dGFibGVORkEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIwMTg4
LDcgKzIwMTg0LDYgQEAKIAkJCQlBNzk1NDYzRDBCNUM0QzgwMDA3QjQzOEYgLyogRHJhZ0RhdGFN
YWMubW0gKi8sCiAJCQkJQTdDRkIzRDQwQjdFRDExODAwNzBDMzJEIC8qIERyYWdJbWFnZU1hYy5t
bSAqLywKIAkJCQlFMUJBNjZGMDE3NDJCRDg2MDBDMjAyNTEgLyogRHluYW1pY0xpbmtlckludGVy
cG9zaW5nLmggKi8sCi0JCQkJMUNBMTlFMDMwREMyNTU5NTAwNjVBOTk0IC8qIEV2ZW50TG9vcE1h
Yy5tbSAqLywKIAkJCQk5MzVDNDc2RTA5QUM0RDczMDBBNkFBQjQgLyogS2V5RXZlbnRNYWMubW0g
Ki8sCiAJCQkJRjQ0QTVGNTcxRkVEMzgzMDAwN0Y1OTQ0IC8qIExlZ2FjeU5TUGFzdGVib2FyZFR5
cGVzLmggKi8sCiAJCQkJMDZFODFFRDYwQUI1RDVFOTAwQzg3ODM3IC8qIExvY2FsQ3VycmVudEdy
YXBoaWNzQ29udGV4dC5oICovLApAQCAtMjI1NTksNyArMjI1NTQsNiBAQAogCQkJCTMxNDAzNzk5
MTI0QkVBN0YwMEFGNDBFNCAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oICovLAogCQkJ
CTMxNDAzNzlBMTI0QkVBN0YwMEFGNDBFNCAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5t
bSAqLywKIAkJCQkwRkRBN0MyMjE4ODMzMEE5MDBDOTU0QjUgLyogRHJhZ0ltYWdlSU9TLm1tICov
LAotCQkJCTI2RjQwRDQ5MTQ5MDRBNjMwMENBNjdDNCAvKiBFdmVudExvb3BJT1MubW0gKi8sCiAJ
CQkJMjY1NTQxMzcxNDg5ODExQzAwMERGQzVEIC8qIEtleUV2ZW50Q29kZXNJT1MuaCAqLywKIAkJ
CQkyNjU1NDEzODE0ODk4MTFDMDAwREZDNUQgLyogS2V5RXZlbnRJT1MubW0gKi8sCiAJCQkJRTRD
M0IxRjkwRjBFNDE2MTAwOTY5M0Y2IC8qIExlZ2FjeVRpbGVDYWNoZS5oICovLApAQCAtMjU1NDMs
NyArMjU1MzcsNiBAQAogCQkJCUE3Q0ZCM0NGMEI3RUQxMEEwMDcwQzMyRCAvKiBEcmFnSW1hZ2Uu
Y3BwICovLAogCQkJCUE3Q0ZCM0QwMEI3RUQxMEEwMDcwQzMyRCAvKiBEcmFnSW1hZ2UuaCAqLywK
IAkJCQkxQUY1RTRENzFFNTY3N0E5MDA0QTFGMDEgLyogRHJhZ0l0ZW0uaCAqLywKLQkJCQkxQ0Ex
OUUxNTBEQzI1NUNBMDA2NUE5OTQgLyogRXZlbnRMb29wLmggKi8sCiAJCQkJMjYyRUM0MUMxRDEx
MEIxRjAwQkE3OEZDIC8qIEV2ZW50VHJhY2tpbmdSZWdpb25zLmNwcCAqLywKIAkJCQkyNjJFQzQx
OTFEMDc4RjNEMDBCQTc4RkMgLyogRXZlbnRUcmFja2luZ1JlZ2lvbnMuaCAqLywKIAkJCQk5MzRG
RTlFNDBCNUNBNTM5MDAzRTRBNzMgLyogRmlsZUNob29zZXIuY3BwICovLApAQCAtMjkzNTQsNyAr
MjkzNDcsNiBAQAogCQkJCTk3MEI3MjhBMTQ0RkZBQzYwMEYwMEEzNyAvKiBFdmVudEludGVyZmFj
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNUZCQzQ1MDlCQTAwQjkwMEUyMzBCMSAvKiBFdmVu
dExpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBRDQ0OTVGNDE0MUZDMDg5MDA1NDFFREYg
LyogRXZlbnRMaXN0ZW5lck1hcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMUNBMTlFMTYwREMyNTVD
QTAwNjVBOTk0IC8qIEV2ZW50TG9vcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNGRTdDQTgxREE5
RjFCNjAwMzcyMzdDIC8qIEV2ZW50TW9kaWZpZXJJbml0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5
Mzk4ODVDNDA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOUI3MTRFMjExQzkxMTY2OTAwQUMwRTkyIC8qIEV2ZW50UGF0aC5oIGluIEhlYWRlcnMgKi8s
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVNjcmlwdERlYnVnU2VydmVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVNjcmlwdERlYnVn
U2VydmVyLmNwcAkocmV2aXNpb24gMjUwOTk5KQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDYg
QEAKIAogI2luY2x1ZGUgIkNvbW1vblZNLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNs
dWRlICJFdmVudExvb3AuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lVmll
dy5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKQEAgLTExNiw5ICsxMTUsMTAg
QEAgdm9pZCBQYWdlU2NyaXB0RGVidWdTZXJ2ZXI6OnJ1bkV2ZW50TG9vcAogCiAgICAgbV9wYWdl
LmluY3JlbWVudE5lc3RlZFJ1bkxvb3BDb3VudCgpOwogCi0gICAgRXZlbnRMb29wIGxvb3A7Ci0g
ICAgd2hpbGUgKCFtX2RvbmVQcm9jZXNzaW5nRGVidWdnZXJFdmVudHMgJiYgIWxvb3AuZW5kZWQo
KSkKLSAgICAgICAgbG9vcC5jeWNsZSgpOworICAgIHdoaWxlICghbV9kb25lUHJvY2Vzc2luZ0Rl
YnVnZ2VyRXZlbnRzKSB7CisgICAgICAgIGlmIChSdW5Mb29wOjpjeWNsZSgpID09IFJ1bkxvb3A6
OkN5Y2xlUmVzdWx0OjpTdG9wKQorICAgICAgICAgICAgYnJlYWs7CisgICAgfQogCiAgICAgbV9w
YWdlLmRlY3JlbWVudE5lc3RlZFJ1bkxvb3BDb3VudCgpOwogfQpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vRXZlbnRMb29wLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vRXZlbnRMb29wLmgJKHJldmlzaW9uIDI1MDk5OSkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0V2ZW50TG9vcC5oCShub25leGlzdGVudCkKQEAgLTEsNTAgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgRXZlbnRMb29w
X2gKLSNkZWZpbmUgRXZlbnRMb29wX2gKLQotI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLSAgICBjbGFzcyBFdmVudExvb3AgewotICAgICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShFdmVudExvb3ApOwotICAgIHB1YmxpYzoKLSAgICAgICAgRXZl
bnRMb29wKCkKLSAgICAgICAgICAgIDogbV9lbmRlZChmYWxzZSkKLSAgICAgICAgewotICAgICAg
ICB9Ci0KLSAgICAgICAgdm9pZCBjeWNsZSgpOwotICAgICAgICBib29sIGVuZGVkKCkgY29uc3Qg
eyByZXR1cm4gbV9lbmRlZDsgfQotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgYm9vbCBtX2VuZGVk
OwotICAgIH07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEV2ZW50TG9v
cF9oCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudExv
b3AuaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0
aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1NvdXJjZXNHTGliLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9Tb3VyY2VzR0xpYi50eHQJKHJldmlzaW9uIDI1MDk5OSkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1NvdXJjZXNHTGliLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjQsNyArMjQs
NiBAQAogcGxhdGZvcm0vYXVkaW8vZ2xpYi9BdWRpb0J1c0dMaWIuY3BwCiAKIHBsYXRmb3JtL2ds
aWIvRXZlbnRIYW5kbGVyR0xpYi5jcHAKLXBsYXRmb3JtL2dsaWIvRXZlbnRMb29wR2xpYi5jcHAK
IHBsYXRmb3JtL2dsaWIvRmlsZU1vbml0b3JHTGliLmNwcAogcGxhdGZvcm0vZ2xpYi9LZXllZERl
Y29kZXJHbGliLmNwcAogcGxhdGZvcm0vZ2xpYi9LZXllZEVuY29kZXJHbGliLmNwcApJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9FdmVudExvb3BHbGliLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0V2ZW50TG9vcEdsaWIuY3BwCShyZXZp
c2lvbiAyNTA5OTkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0V2ZW50TG9vcEds
aWIuY3BwCShub25leGlzdGVudCkKQEAgLTEsMzIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwOCBOdWFudGkgTHRkLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRXZlbnRM
b29wLmgiCi0KLSNpbmNsdWRlIDxnbGliLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdm9p
ZCBFdmVudExvb3A6OmN5Y2xlKCkKLXsKLSAgICBnX21haW5fY29udGV4dF9pdGVyYXRpb24oTlVM
TCwgRkFMU0UpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCgpQcm9wZXJ0eSBjaGFuZ2Vz
IG9uOiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0V2ZW50TG9vcEdsaWIuY3BwCl9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1uYXRpdmUKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL0V2ZW50TG9vcElPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvRXZlbnRMb29wSU9TLm1tCShyZXZpc2lvbiAyNTA5OTkpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvRXZlbnRMb29wSU9TLm1tCShub25leGlzdGVudCkKQEAgLTEsNDMgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgot
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJFdmVudExvb3AuaCIKLQotI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCi0KLSNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9DRlJ1bkxvb3AuaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi12b2lkIEV2ZW50TG9vcDo6Y3ljbGUoKQotewotICAgIENGVGlt
ZUludGVydmFsIHRpbWVJbnRlcnZhbCA9IDAuMDU7Ci0gICAgQ0ZSdW5Mb29wUnVuSW5Nb2RlKGtD
RlJ1bkxvb3BEZWZhdWx0TW9kZSwgdGltZUludGVydmFsLCB0cnVlKTsKLX0KLQotfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9FdmVudExvb3BNYWMubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0V2ZW50TG9vcE1hYy5tbQkocmV2aXNpb24gMjUw
OTk5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0V2ZW50TG9vcE1hYy5tbQkobm9u
ZXhpc3RlbnQpCkBAIC0xLDUxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAx
OCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJFdmVu
dExvb3AuaCIKLQotI2luY2x1ZGUgPHd0Zi9Qcm9jZXNzUHJpdmlsZWdlLmg+Ci0KLSNpZiBQTEFU
Rk9STShNQUMpCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdm9pZCBFdmVudExvb3A6OmN5Y2xl
KCkKLXsKLSNpZiBFTkFCTEUoV0VCUFJPQ0VTU19OU1JVTkxPT1ApCi0gICAgaWYgKCFbTlNBcHAg
aXNSdW5uaW5nXSkgewotICAgICAgICBbW05TUnVuTG9vcCBjdXJyZW50UnVuTG9vcF0gcnVuVW50
aWxEYXRlOltOU0RhdGUgZGF0ZVdpdGhUaW1lSW50ZXJ2YWxTaW5jZU5vdzowLjA1XV07Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0gICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vz
c1ByaXZpbGVnZTo6Q2FuQ29tbXVuaWNhdGVXaXRoV2luZG93U2VydmVyKSk7Ci0jZW5kaWYKLSAg
ICBbTlNBcHAgc2V0V2luZG93c05lZWRVcGRhdGU6WUVTXTsKLSAgICBpZiAoTlNFdmVudCAqZXZl
bnQgPSBbTlNBcHAgbmV4dEV2ZW50TWF0Y2hpbmdNYXNrOk5TRXZlbnRNYXNrQW55IHVudGlsRGF0
ZTpbTlNEYXRlIGRhdGVXaXRoVGltZUludGVydmFsU2luY2VOb3c6MC4wNV0gaW5Nb2RlOk5TRGVm
YXVsdFJ1bkxvb3BNb2RlIGRlcXVldWU6WUVTXSkKLSAgICAgICAgW05TQXBwIHNlbmRFdmVudDpl
dmVudF07Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFBMQVRGT1JN
KE1BQykKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9F
dmVudExvb3BNYWMubW0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0xICsw
LDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9wbGF5c3RhdGlvbi9FdmVudExvb3BQbGF5U3RhdGlvbi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcGxheXN0YXRpb24vRXZlbnRM
b29wUGxheVN0YXRpb24uY3BwCShyZXZpc2lvbiAyNTA5OTkpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9wbGF5c3RhdGlvbi9FdmVudExvb3BQbGF5U3RhdGlvbi5jcHAJKG5vbmV4aXN0ZW50
KQpAQCAtMSwzOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IFNvbnkgSW50ZXJh
Y3RpdmUgRW50ZXJ0YWlubWVudCBJbmMuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwot
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIK
LSNpbmNsdWRlICJFdmVudExvb3AuaCIKLQotI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+Ci0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotdm9pZCBFdmVudExvb3A6OmN5Y2xlKCkKLXsKLSAgICBSdW5M
b29wOjppdGVyYXRlKCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9FdmVudExvb3BXaW4uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9FdmVudExvb3BXaW4uY3BwCShyZXZpc2lvbiAyNTA5
OTkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRXZlbnRMb29wV2luLmNwcAkobm9u
ZXhpc3RlbnQpCkBAIC0xLDQ1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBw
bGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRXZlbnRMb29w
LmgiCi0KLSNpbmNsdWRlIDx3aW5kb3dzLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdm9p
ZCBFdmVudExvb3A6OmN5Y2xlKCkKLXsKLSAgICBNU0cgbXNnOwotICAgIGlmICghR2V0TWVzc2Fn
ZSgmbXNnLCAwLCAwLCAwKSkgewotICAgICAgICBtX2VuZGVkID0gdHJ1ZTsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KLQotICAgIFRyYW5zbGF0ZU1lc3NhZ2UoJm1zZyk7Ci0gICAgRGlzcGF0Y2hN
ZXNzYWdlKCZtc2cpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCgpQcm9wZXJ0eSBjaGFu
Z2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRXZlbnRMb29wV2luLmNwcApfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0aXZlClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkK
</data>
<flag name="review"
          id="396474"
          type_id="1"
          status="+"
          setter="joepeck"
    />
          </attachment>
      

    </bug>

</bugzilla>