<?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>185532</bug_id>
          
          <creation_ts>2018-05-10 15:46:51 -0700</creation_ts>
          <short_desc>Make sure history navigations reuse the existing process when necessary.</short_desc>
          <delta_ts>2019-01-03 08:56:03 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>aestes</cc>
    
    <cc>ajuma</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>japhet</cc>
    
    <cc>rniwa</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1422915</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2018-05-10 15:46:51 -0700</bug_when>
    <thetext>Make sure history navigations reuse the existing process when necessary.

&lt;rdar://problem/39746516&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422918</commentid>
    <comment_count>1</comment_count>
      <attachid>340140</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2018-05-10 15:55:47 -0700</bug_when>
    <thetext>Created attachment 340140
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422919</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-05-10 15:58:37 -0700</bug_when>
    <thetext>Attachment 340140 did not pass style-queue:


ERROR: Source/WebKit/Shared/NavigationActionData.cpp:119:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:1389:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:1391:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:1399:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:1404:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
Total errors found: 5 in 17 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422945</commentid>
    <comment_count>3</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2018-05-10 16:47:47 -0700</bug_when>
    <thetext>/Volumes/Data/EWS/WebKit/Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:1414:37: error: use of undeclared identifier &apos;kWKCacheModelDocumentViewer&apos;
    WKContextSetCacheModel(context, kWKCacheModelDocumentViewer);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422951</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2018-05-10 16:59:54 -0700</bug_when>
    <thetext>Dangit, can&apos;t use the C-API for this. Will add Obj-C SPI in new patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422952</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2018-05-10 16:59:57 -0700</bug_when>
    <thetext>Dangit, can&apos;t use the C-API for this. Will add Obj-C SPI in new patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422961</commentid>
    <comment_count>6</comment_count>
      <attachid>340151</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2018-05-10 17:11:02 -0700</bug_when>
    <thetext>Created attachment 340151
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422962</commentid>
    <comment_count>7</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-05-10 17:12:45 -0700</bug_when>
    <thetext>Attachment 340151 did not pass style-queue:


ERROR: Source/WebKit/Shared/NavigationActionData.cpp:119:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:1389:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:1391:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:1394:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:1399:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
Total errors found: 5 in 17 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1423145</commentid>
    <comment_count>8</comment_count>
      <attachid>340151</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-11 09:12:16 -0700</bug_when>
    <thetext>Comment on attachment 340151
Patch

Clearing flags on attachment: 340151

Committed r231704: &lt;https://trac.webkit.org/changeset/231704&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1423146</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-11 09:12:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1423147</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-05-11 09:13:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/40164172&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1423195</commentid>
    <comment_count>11</comment_count>
      <attachid>340151</attachid>
    <who name="Ali Juma">ajuma</who>
    <bug_when>2018-05-11 11:20:33 -0700</bug_when>
    <thetext>Comment on attachment 340151
Patch

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

&gt; Source/WebKit/UIProcess/WebProcessPool.cpp:2116
&gt; +                action = PolicyAction::Suspend;

I might be misunderstanding, but if we&apos;re re-using the current process wouldn&apos;t we want the action we send back to that process to be Use rather than Suspend?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1423258</commentid>
    <comment_count>12</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2018-05-11 14:16:02 -0700</bug_when>
    <thetext>This patch causes WinCairo to crash on launch (of DRT or MiniBrowser).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1423262</commentid>
    <comment_count>13</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2018-05-11 14:17:47 -0700</bug_when>
    <thetext>(In reply to Ross Kirsling from comment #12)
&gt; This patch causes WinCairo to crash on launch (of DRT or MiniBrowser).

There&apos;s no way to diagnose why or what the solution will be without a backtrace.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1423263</commentid>
    <comment_count>14</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2018-05-11 14:19:18 -0700</bug_when>
    <thetext>(In reply to Ali Juma from comment #11)
&gt; Comment on attachment 340151 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=340151&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebProcessPool.cpp:2116
&gt; &gt; +                action = PolicyAction::Suspend;
&gt; 
&gt; I might be misunderstanding, but if we&apos;re re-using the current process
&gt; wouldn&apos;t we want the action we send back to that process to be Use rather
&gt; than Suspend?

You&apos;re right. This happened to work through a series of happy accidents, but passing along the existing policy is correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1423264</commentid>
    <comment_count>15</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2018-05-11 14:21:18 -0700</bug_when>
    <thetext>(In reply to Brady Eidson from comment #13)
&gt; (In reply to Ross Kirsling from comment #12)
&gt; &gt; This patch causes WinCairo to crash on launch (of DRT or MiniBrowser).
&gt; 
&gt; There&apos;s no way to diagnose why or what the solution will be without a
&gt; backtrace.

Right, I&apos;m running a debug build to investigate right now. Just wasn&apos;t sure whether I should rollout, so I started by commenting instead. 😅</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1423268</commentid>
    <comment_count>16</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2018-05-11 14:48:37 -0700</bug_when>
    <thetext>(In reply to Ross Kirsling from comment #15)
&gt; (In reply to Brady Eidson from comment #13)
&gt; &gt; (In reply to Ross Kirsling from comment #12)
&gt; &gt; &gt; This patch causes WinCairo to crash on launch (of DRT or MiniBrowser).
&gt; &gt; 
&gt; &gt; There&apos;s no way to diagnose why or what the solution will be without a
&gt; &gt; backtrace.
&gt; 
&gt; Right, I&apos;m running a debug build to investigate right now. Just wasn&apos;t sure
&gt; whether I should rollout, so I started by commenting instead. 😅

It&apos;s generally not okay to rollout something that only affects one platform *and* there&apos;s not even bot coverage of said platform.

I&apos;m sure it will be easy to resolve, whatever it is - This was not a broad reaching change, and most of it is for a code path that is not enabled by default.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1423270</commentid>
    <comment_count>17</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2018-05-11 14:50:30 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1423271</commentid>
    <comment_count>18</comment_count>
      <attachid>340224</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2018-05-11 14:50:31 -0700</bug_when>
    <thetext>Created attachment 340224
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1423274</commentid>
    <comment_count>19</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2018-05-11 14:56:28 -0700</bug_when>
    <thetext>(In reply to Brady Eidson from comment #16)
&gt; (In reply to Ross Kirsling from comment #15)
&gt; &gt; (In reply to Brady Eidson from comment #13)
&gt; &gt; &gt; (In reply to Ross Kirsling from comment #12)
&gt; &gt; &gt; &gt; This patch causes WinCairo to crash on launch (of DRT or MiniBrowser).
&gt; &gt; &gt; 
&gt; &gt; &gt; There&apos;s no way to diagnose why or what the solution will be without a
&gt; &gt; &gt; backtrace.
&gt; &gt; 
&gt; &gt; Right, I&apos;m running a debug build to investigate right now. Just wasn&apos;t sure
&gt; &gt; whether I should rollout, so I started by commenting instead. 😅
&gt; 
&gt; It&apos;s generally not okay to rollout something that only affects one platform
&gt; *and* there&apos;s not even bot coverage of said platform.
&gt; 
&gt; I&apos;m sure it will be easy to resolve, whatever it is - This was not a broad
&gt; reaching change, and most of it is for a code path that is not enabled by
&gt; default.

(In reply to Brady Eidson from comment #16)
&gt; (In reply to Ross Kirsling from comment #15)
&gt; &gt; (In reply to Brady Eidson from comment #13)
&gt; &gt; &gt; (In reply to Ross Kirsling from comment #12)
&gt; &gt; &gt; &gt; This patch causes WinCairo to crash on launch (of DRT or MiniBrowser).
&gt; &gt; &gt; 
&gt; &gt; &gt; There&apos;s no way to diagnose why or what the solution will be without a
&gt; &gt; &gt; backtrace.
&gt; &gt; 
&gt; &gt; Right, I&apos;m running a debug build to investigate right now. Just wasn&apos;t sure
&gt; &gt; whether I should rollout, so I started by commenting instead. 😅
&gt; 
&gt; It&apos;s generally not okay to rollout something that only affects one platform
&gt; *and* there&apos;s not even bot coverage of said platform.
&gt; 
&gt; I&apos;m sure it will be easy to resolve, whatever it is - This was not a broad
&gt; reaching change, and most of it is for a code path that is not enabled by
&gt; default.

One way or another, it didn&apos;t seem like a great way to win friends, haha. 
Thankfully though, the bots are almost working! 😄

That&apos;s actually how I discovered the problem (in spite of not having a local build ready to go):
https://build.webkit.org/builders/WinCairo%2064-bit%20WKL%20Release%20%28Tests%29/builds/81/steps/layout-test/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1423288</commentid>
    <comment_count>20</comment_count>
      <attachid>340224</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-11 15:30:50 -0700</bug_when>
    <thetext>Comment on attachment 340224
Patch

Clearing flags on attachment: 340224

Committed r231723: &lt;https://trac.webkit.org/changeset/231723&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1423289</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-11 15:30:52 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1423811</commentid>
    <comment_count>22</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2018-05-14 15:18:06 -0700</bug_when>
    <thetext>(In reply to Ross Kirsling from comment #19)
&gt; One way or another, it didn&apos;t seem like a great way to win friends, haha. 
&gt; Thankfully though, the bots are almost working! 😄
&gt; 
&gt; That&apos;s actually how I discovered the problem (in spite of not having a local
&gt; build ready to go):
&gt; https://build.webkit.org/builders/WinCairo%2064-
&gt; bit%20WKL%20Release%20%28Tests%29/builds/81/steps/layout-test/logs/stdio

Evidently, this crash is some sort of incremental build issue for which r231704 serves as a good repro case. I&apos;ve created a new bug to track this: 
https://bugs.webkit.org/show_bug.cgi?id=185632</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>340140</attachid>
            <date>2018-05-10 15:55:47 -0700</date>
            <delta_ts>2018-05-10 17:11:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185532-20180510155546.patch</filename>
            <type>text/plain</type>
            <size>22641</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxNjY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDhhNWFjYmQyY2FhMmE2
N2MxNDU0MjJkNDI1NzUwOWQ0N2M5NWY1ZC4uMDc2MjM2M2UwMmIyZTllMTI5N2ZlNmMwNmJlOGRk
YjMxYmYzYTJlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE4LTA1LTEwICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIHN1cmUgaGlzdG9y
eSBuYXZpZ2F0aW9ucyByZXVzZSB0aGUgZXhpc3RpbmcgcHJvY2VzcyB3aGVuIG5lY2Vzc2FyeS4K
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM5NzQ2NTE2PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTUzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIENvdmVyZWQgYnkgbmV3IEFQSSB0ZXN0cy4KKworICAgICAg
ICBJbiBXZWJDb3JlLWxhbmQsIG1ha2Ugc3VyZSAqYWxsKiBOYXZpZ2F0aW9uQWN0aW9ucyB0byBh
IGJhY2svZm9yd2FyZCBpdGVtIGFyZSB0YWdnZWQgd2l0aAorICAgICAgICB0aGUgaXRlbSBpZGVu
dGlmaWVyLgorCisgICAgICAgICogaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIaXN0b3J5SXRlbTo6SGlzdG9yeUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6SGlz
dG9yeUl0ZW06OmxvZ1N0cmluZyBjb25zdCk6CisgICAgICAgICogaGlzdG9yeS9IaXN0b3J5SXRl
bS5oOgorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lTG9hZGVyOjpsb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKToKKworICAgICAgICAq
IGxvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRp
b25BY3Rpb246OnNldFRhcmdldEJhY2tGb3J3YXJkSXRlbSk6CisKKyAgICAgICAgKiBsb2FkZXIv
TmF2aWdhdGlvbkFjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbjo6
dGFyZ2V0QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciBjb25zdCk6CisKIDIwMTgtMDUtMTAgIE1h
dHQgQmFrZXIgIDxtYXR0YmFrZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6
IEFTU0VSVF9OT1RfUkVBQ0hFRCBpbiBQYWdlRGVidWdnZXJBZ2VudDo6ZGlkQWRkRXZlbnRMaXN0
ZW5lciB3aGVuIHBhZ2UgYWRkcyBhdHRyaWJ1dGUgZXZlbnQgbGlzdGVuZXIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
MTg4NDlhNzI3NGM0ZTliYTQ2MzcxOGU0MTAxMDZlN2ZhZDhjNmM3NS4uOTBiMzJlYjJjZmFkNGNm
NzE2NGNjOTA0MTBjNmYyNDU4YmQyMDFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAx
OC0wNS0xMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgTWFr
ZSBzdXJlIGhpc3RvcnkgbmF2aWdhdGlvbnMgcmV1c2UgdGhlIGV4aXN0aW5nIHByb2Nlc3Mgd2hl
biBuZWNlc3NhcnkuCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zOTc0NjUxNj4gYW5kIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODU1MzIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJZiBhIHZpZXcgbmF2aWdhdGVzIHRv
IGVpdGhlciBhIGRhdGE6IG9yIGJsb2I6IFVSTCwgaXQgcmV1c2VzIHRoZSBleGlzdGluZyBwcm9j
ZXNzLgorIAorICAgICAgICBJbiBzdWNoIGNhc2VzIHdlIG5lZWQgdG8gYWxzbyBlbnN1cmUgdGhh
dCBoaXN0b3J5IG5hdmlnYXRpb25zIGJhY2sgd2lsbCBhbHNvIHJldXNlIHRoZSBleGlzdGluZyBw
cm9jZXNzLgorCisgICAgICAgICogU2hhcmVkL05hdmlnYXRpb25BY3Rpb25EYXRhLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGE6OmVuY29kZSBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFNo
YXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5oOgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9B
UElOYXZpZ2F0aW9uLmg6CisgICAgICAgIChBUEk6Ok5hdmlnYXRpb246OnNldFRhcmdldEl0ZW0p
OgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tOgorICAg
ICAgICAoLVtXS1Byb2Nlc3NQb29sIF9jb250ZXh0Rm9yVGVzdGluZ10pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbEludGVybmFsLmg6CisKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpyZWNlaXZlZFBvbGljeURlY2lzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKworICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpw
cm9jZXNzRm9yTmF2aWdhdGlvbkludGVybmFsKTogSWYgdGhlIGN1cnJlbnQgYW5kIHRhcmdldCBi
YWNrL2ZvcndhcmQgaXRlbXMgYm90aAorICAgICAgICAgIGNhbWUgZnJvbSB0aGUgc2FtZSBwcm9j
ZXNzLCB0aGVuIHJldXNlIHRoZSBleGlzdGluZyBwcm9jZXNzLgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24pOgorCiAyMDE4LTA1LTEwICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5l
ckBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIFVudXNlZCBDaGluZXNlL0phcGFuZXNlIFJl
YW5hbHl6ZSBjb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJ
dGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCmluZGV4IGE1
YmE5NWU0MzU2NjQzY2I3ZWYzMjM3YWU2MjJjZTM4NzhlNjY3N2MuLmQzMDhiOTA3YzRiYzBmNWUw
M2YzOTRjYTE5ZGI5MjVlN2UyNjExOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2hpc3Rv
cnkvSGlzdG9yeUl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0
ZW0uY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5j
bHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDx3dGYvRGF0ZU1hdGguaD4KKyNpbmNsdWRlIDx3dGYv
RGVidWdVdGlsaXRpZXMuaD4KICNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9DU3RyaW5nLmg+CiAKQEAgLTEwNSw2ICsxMDYsNyBAQCBpbmxpbmUgSGlzdG9yeUl0
ZW06Okhpc3RvcnlJdGVtKGNvbnN0IEhpc3RvcnlJdGVtJiBpdGVtKQogICAgICwgbV9zY2FsZShp
dGVtLm1fc2NhbGUpCiAgICAgLCBtX3NjYWxlSXNJbml0aWFsKGl0ZW0ubV9zY2FsZUlzSW5pdGlh
bCkKICNlbmRpZgorICAgICwgbV9pZGVudGlmaWVyKGl0ZW0ubV9pZGVudGlmaWVyKQogewogICAg
IGlmIChpdGVtLm1fZm9ybURhdGEpCiAgICAgICAgIG1fZm9ybURhdGEgPSBpdGVtLm1fZm9ybURh
dGEtPmNvcHkoKTsKQEAgLTQ4OSw3ICs0OTEsMTQgQEAgaW50IEhpc3RvcnlJdGVtOjpzaG93VHJl
ZVdpdGhJbmRlbnQodW5zaWduZWQgaW5kZW50TGV2ZWwpIGNvbnN0CiB9CiAKICNlbmRpZgotICAg
ICAgICAgICAgICAgIAorCisjaWYgIUxPR19ESVNBQkxFRAorY29uc3QgY2hhciogSGlzdG9yeUl0
ZW06OmxvZ1N0cmluZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGRlYnVnU3RyaW5nKCJIaXN0b3J5
SXRlbSBjdXJyZW50IFVSTCAiLCB1cmxTdHJpbmcoKSwgIiwgaWRlbnRpZmllciAiLCBtX2lkZW50
aWZpZXIubG9nU3RyaW5nKCkpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlz
dG9yeUl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uaAppbmRleCBl
ZTQ2NmM3ZjE0ZDFiZjhlNzRjMDk1ZjEyNmNiOWE3NWE2NWY3ZTY4Li5lNzJiNTg5Mzk0OTgxZWNl
YzQxMDdmNmQ2MmI3N2M5ZDc0MzgzNTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0
b3J5L0hpc3RvcnlJdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRl
bS5oCkBAIC0yMTUsNiArMjE1LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFdhc1Jlc3RvcmVk
RnJvbVNlc3Npb24oYm9vbCB3YXNSZXN0b3JlZEZyb21TZXNzaW9uKSB7IG1fd2FzUmVzdG9yZWRG
cm9tU2Vzc2lvbiA9IHdhc1Jlc3RvcmVkRnJvbVNlc3Npb247IH0KICAgICBib29sIHdhc1Jlc3Rv
cmVkRnJvbVNlc3Npb24oKSBjb25zdCB7IHJldHVybiBtX3dhc1Jlc3RvcmVkRnJvbVNlc3Npb247
IH0KIAorI2lmICFMT0dfRElTQUJMRUQKKyAgICBjb25zdCBjaGFyKiBsb2dTdHJpbmcoKSBjb25z
dDsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIFdFQkNPUkVfRVhQT1JUIEhpc3RvcnlJdGVtKCk7
CiAgICAgV0VCQ09SRV9FWFBPUlQgSGlzdG9yeUl0ZW0oY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcs
IGNvbnN0IFN0cmluZyYgdGl0bGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAK
aW5kZXggMWI3YTA5OTMwNzMxNzM4NmFlYjU3MjE5YTc0ZDc2YTAxNTY5ODhkNC4uMGE1YWZmMjE4
MWFjZjAyZTc4OTYzZWQ0NzJkNGI2NGU2NDM1ZWI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwCkBAIC0zNTI4LDcgKzM1MjgsMTEgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9h
ZERpZmZlcmVudERvY3VtZW50SXRlbShIaXN0b3J5SXRlbSYgaXRlbSwgRnJhbWVMb2FkVHlwZSBs
b2EKICAgICBpZiAoQ2FjaGVkUGFnZSogY2FjaGVkUGFnZSA9IFBhZ2VDYWNoZTo6c2luZ2xldG9u
KCkuZ2V0KGl0ZW0sIG1fZnJhbWUucGFnZSgpKSkgewogICAgICAgICBhdXRvIGRvY3VtZW50TG9h
ZGVyID0gY2FjaGVkUGFnZS0+ZG9jdW1lbnRMb2FkZXIoKTsKICAgICAgICAgbV9jbGllbnQudXBk
YXRlQ2FjaGVkRG9jdW1lbnRMb2FkZXIoKmRvY3VtZW50TG9hZGVyKTsKLSAgICAgICAgZG9jdW1l
bnRMb2FkZXItPnNldFRyaWdnZXJpbmdBY3Rpb24oeyAqbV9mcmFtZS5kb2N1bWVudCgpLCBkb2N1
bWVudExvYWRlci0+cmVxdWVzdCgpLCBpbml0aWF0ZWRCeU1haW5GcmFtZSwgbG9hZFR5cGUsIGZh
bHNlIH0pOworCisgICAgICAgIGF1dG8gYWN0aW9uID0gTmF2aWdhdGlvbkFjdGlvbiB7ICptX2Zy
YW1lLmRvY3VtZW50KCksIGRvY3VtZW50TG9hZGVyLT5yZXF1ZXN0KCksIGluaXRpYXRlZEJ5TWFp
bkZyYW1lLCBsb2FkVHlwZSwgZmFsc2UgfTsKKyAgICAgICAgYWN0aW9uLnNldFRhcmdldEJhY2tG
b3J3YXJkSXRlbShpdGVtKTsKKyAgICAgICAgZG9jdW1lbnRMb2FkZXItPnNldFRyaWdnZXJpbmdB
Y3Rpb24oV1RGTW92ZShhY3Rpb24pKTsKKwogICAgICAgICBkb2N1bWVudExvYWRlci0+c2V0TGFz
dENoZWNrZWRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCgpKTsKICAgICAgICAgbG9hZFdpdGhEb2N1
bWVudExvYWRlcihkb2N1bWVudExvYWRlciwgbG9hZFR5cGUsIDAsIEFsbG93TmF2aWdhdGlvblRv
SW52YWxpZFVSTDo6WWVzLCBuYXZpZ2F0aW9uUG9saWN5Q2hlY2ssIFtdIHsgfSk7CiAgICAgICAg
IHJldHVybjsKQEAgLTM2MTYsNiArMzYyMCw4IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWREaWZm
ZXJlbnREb2N1bWVudEl0ZW0oSGlzdG9yeUl0ZW0mIGl0ZW0sIEZyYW1lTG9hZFR5cGUgbG9hCiAg
ICAgICAgIGFjdGlvbiA9IHsgKm1fZnJhbWUuZG9jdW1lbnQoKSwgcmVxdWVzdEZvck9yaWdpbmFs
VVJMLCBpbml0aWF0ZWRCeU1haW5GcmFtZSwgbG9hZFR5cGUsIGlzRm9ybVN1Ym1pc3Npb24sIGV2
ZW50LCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IH07CiAgICAgfQogCisgICAgYWN0aW9u
LnNldFRhcmdldEJhY2tGb3J3YXJkSXRlbShpdGVtKTsKKwogICAgIGxvYWRXaXRoTmF2aWdhdGlv
bkFjdGlvbihyZXF1ZXN0LCBhY3Rpb24sIExvY2tIaXN0b3J5OjpObywgbG9hZFR5cGUsIDAsIEFs
bG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBbXSB7IH0pOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5jcHAKaW5kZXggNzFmMTNmY2ZiYjU5OTJmZTNj
MGM3ODdmNTJjMDZjYzM3Y2NhZmEzOS4uOGZjZGI0ODYxMDk4YmM1NDk3Mzg4NTQ1NmE1ODhlNzg3
NWIyODk3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcApA
QCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXZlbnQu
aCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgorI2luY2x1ZGUgIkhpc3RvcnlJdGVtLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtOTUsNCArOTYsOSBAQCBOYXZpZ2F0aW9uQWN0aW9u
IE5hdmlnYXRpb25BY3Rpb246OmNvcHlXaXRoU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeShT
aG91bGRPcAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK3ZvaWQgTmF2aWdhdGlvbkFjdGlvbjo6
c2V0VGFyZ2V0QmFja0ZvcndhcmRJdGVtKEhpc3RvcnlJdGVtJiBpdGVtKQoreworICAgIG1fdGFy
Z2V0QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciA9IGl0ZW0uaWRlbnRpZmllcigpOworfQorCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaAppbmRleCBhNWFmMzM0NTZi
MDEyNmQ2N2RkZjYyOWRhNjdlOWUzMzk2MThlMDRjLi4yMzQxMDhiMjNmMDc4MDE4ZDQ2MmIyZDYw
NzkzODJmYjUyOWY0ZmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdh
dGlvbkFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9u
LmgKQEAgLTI4LDYgKzI4LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJCYWNrRm9y
d2FyZEl0ZW1JZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgogI2lu
Y2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9y
LmgiCkBAIC0zNyw2ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1l
bnQ7CiBjbGFzcyBFdmVudDsKK2NsYXNzIEhpc3RvcnlJdGVtOwogCiBjbGFzcyBOYXZpZ2F0aW9u
QWN0aW9uIHsKIHB1YmxpYzoKQEAgLTgwLDYgKzgyLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
T3BlbmVyKHN0ZDo6b3B0aW9uYWw8c3RkOjpwYWlyPHVpbnQ2NF90LCB1aW50NjRfdD4+JiYgb3Bl
bmVyKSB7IG1fb3BlbmVyID0gV1RGTW92ZShvcGVuZXIpOyB9CiAgICAgY29uc3Qgc3RkOjpvcHRp
b25hbDxzdGQ6OnBhaXI8dWludDY0X3QsIHVpbnQ2NF90Pj4mIG9wZW5lcigpIGNvbnN0IHsgcmV0
dXJuIG1fb3BlbmVyOyB9CiAKKyAgICB2b2lkIHNldFRhcmdldEJhY2tGb3J3YXJkSXRlbShIaXN0
b3J5SXRlbSYpOworICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8QmFja0ZvcndhcmRJdGVtSWRlbnRp
Zmllcj4mIHRhcmdldEJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBt
X3RhcmdldEJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXI7IH0KKwogcHJpdmF0ZToKICAgICBSZWZQ
dHI8RG9jdW1lbnQ+IG1fc291cmNlRG9jdW1lbnQ7CiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fcmVz
b3VyY2VSZXF1ZXN0OwpAQCAtOTIsNiArOTcsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV90cmVh
dEFzU2FtZU9yaWdpbk5hdmlnYXRpb247CiAgICAgYm9vbCBtX2lzQ3Jvc3NPcmlnaW5XaW5kb3dP
cGVuTmF2aWdhdGlvbiB7IGZhbHNlIH07CiAgICAgc3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8dWlu
dDY0X3QgLyogcGFnZUlEICovLCB1aW50NjRfdCAvKiBmcmFtZUlEICovPj4gbV9vcGVuZXI7Cisg
ICAgc3RkOjpvcHRpb25hbDxCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyPiBtX3RhcmdldEJhY2tG
b3J3YXJkSXRlbUlkZW50aWZpZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5jcHAKaW5kZXggNTEzM2M0
MmMzZTViYmMwYjEwNzQxNTY3NmRkNmFhYWExMGNhMjJiOC4uZTYxYjJhY2FhMWY3MGU3ZDA1YmNh
N2ZiNDk5MGFlZDI5NTA3MTRkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvTmF2
aWdhdGlvbkFjdGlvbkRhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdmlnYXRp
b25BY3Rpb25EYXRhLmNwcApAQCAtNTAsNiArNTAsNyBAQCB2b2lkIE5hdmlnYXRpb25BY3Rpb25E
YXRhOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwg
dHJlYXRBc1NhbWVPcmlnaW5OYXZpZ2F0aW9uOwogICAgIGVuY29kZXIgPDwgaXNDcm9zc09yaWdp
bldpbmRvd09wZW5OYXZpZ2F0aW9uOwogICAgIGVuY29kZXIgPDwgb3BlbmVyOworICAgIGVuY29k
ZXIgPDwgdGFyZ2V0QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllcjsKIH0KIAogc3RkOjpvcHRpb25h
bDxOYXZpZ2F0aW9uQWN0aW9uRGF0YT4gTmF2aWdhdGlvbkFjdGlvbkRhdGE6OmRlY29kZShJUEM6
OkRlY29kZXImIGRlY29kZXIpCkBAIC0xMTMsOSArMTE0LDE0IEBAIHN0ZDo6b3B0aW9uYWw8TmF2
aWdhdGlvbkFjdGlvbkRhdGE+IE5hdmlnYXRpb25BY3Rpb25EYXRhOjpkZWNvZGUoSVBDOjpEZWNv
ZGVyJiBkCiAgICAgaWYgKCFvcGVuZXIpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAK
KyAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8QmFja0ZvcndhcmRJdGVtSWRlbnRpZmll
cj4+IHRhcmdldEJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXI7CisgICAgZGVjb2RlciA+PiB0YXJn
ZXRCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyOworICAgIGlmICghdGFyZ2V0QmFja0ZvcndhcmRJ
dGVtSWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgCiAg
ICAgcmV0dXJuIHt7IFdURk1vdmUobmF2aWdhdGlvblR5cGUpLCBXVEZNb3ZlKG1vZGlmaWVycyks
IFdURk1vdmUobW91c2VCdXR0b24pLCBXVEZNb3ZlKHN5bnRoZXRpY0NsaWNrVHlwZSksIFdURk1v
dmUoKnVzZXJHZXN0dXJlVG9rZW5JZGVudGlmaWVyKSwKICAgICAgICAgV1RGTW92ZSgqY2FuSGFu
ZGxlUmVxdWVzdCksIFdURk1vdmUoc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSksIFdURk1v
dmUoKmRvd25sb2FkQXR0cmlidXRlKSwgV1RGTW92ZShjbGlja0xvY2F0aW9uSW5Sb290Vmlld0Nv
b3JkaW5hdGVzKSwKLSAgICAgICAgV1RGTW92ZSgqaXNSZWRpcmVjdCksICp0cmVhdEFzU2FtZU9y
aWdpbk5hdmlnYXRpb24sICppc0Nyb3NzT3JpZ2luV2luZG93T3Blbk5hdmlnYXRpb24sIFdURk1v
dmUoKm9wZW5lcikgfX07CisgICAgICAgIFdURk1vdmUoKmlzUmVkaXJlY3QpLCAqdHJlYXRBc1Nh
bWVPcmlnaW5OYXZpZ2F0aW9uLCAqaXNDcm9zc09yaWdpbldpbmRvd09wZW5OYXZpZ2F0aW9uLCBX
VEZNb3ZlKCpvcGVuZXIpLCBXVEZNb3ZlKCp0YXJnZXRCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVy
KSB9fTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
TmF2aWdhdGlvbkFjdGlvbkRhdGEuaAppbmRleCBjMjMxMzI3MTFmYmNhZjFjYTFlYjUwNDNjM2Y1
ZDVhNzMwNDBkZjIzLi5iZjczOTgyZGQ3MTBiMTUwNzY2M2FkYTMwNTA1NzMxODg4M2ZlNDkyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdmlnYXRpb25BY3Rpb25EYXRhLmgKQEAgLTI2LDYg
KzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL0JhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0Zsb2F0UG9pbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4KIApA
QCAtNTMsNiArNTQsNyBAQCBzdHJ1Y3QgTmF2aWdhdGlvbkFjdGlvbkRhdGEgewogICAgIGJvb2wg
dHJlYXRBc1NhbWVPcmlnaW5OYXZpZ2F0aW9uIHsgZmFsc2UgfTsKICAgICBib29sIGlzQ3Jvc3NP
cmlnaW5XaW5kb3dPcGVuTmF2aWdhdGlvbiB7IGZhbHNlIH07CiAgICAgc3RkOjpvcHRpb25hbDxz
dGQ6OnBhaXI8dWludDY0X3QsIHVpbnQ2NF90Pj4gb3BlbmVyOworICAgIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllcj4gdGFyZ2V0QmFja0ZvcndhcmRJdGVt
SWRlbnRpZmllcjsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElOYXZpZ2F0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2
aWdhdGlvbi5oCmluZGV4IDFlYTk0ZDZkOTI5ODhiNGNmYzhhYTlkZjliNDZjYjNjN2FhNjE3MTEu
LjllNTkxNzcxMGU1OGMzODRjYjU3YWVhZjI2ZjIxYWRhMTE5MzYzY2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb24uaApAQCAtMjYsNiArMjYsNyBAQAogI3By
YWdtYSBvbmNlCiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlICJXZWJCYWNrRm9y
d2FyZExpc3RJdGVtLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CkBAIC0zNSw3
ICszNiw2IEBAIGVudW0gY2xhc3MgRnJhbWVMb2FkVHlwZTsKIH0KIAogbmFtZXNwYWNlIFdlYktp
dCB7Ci1jbGFzcyBXZWJCYWNrRm9yd2FyZExpc3RJdGVtOwogY2xhc3MgV2ViTmF2aWdhdGlvblN0
YXRlOwogfQogCkBAIC03MSw2ICs3MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEN1cnJlbnRS
ZXF1ZXN0SXNSZWRpcmVjdChib29sIGlzUmVkaXJlY3QpIHsgbV9pc1JlZGlyZWN0ID0gaXNSZWRp
cmVjdDsgfQogICAgIGJvb2wgY3VycmVudFJlcXVlc3RJc1JlZGlyZWN0KCkgY29uc3QgeyByZXR1
cm4gbV9pc1JlZGlyZWN0OyB9CiAKKyAgICB2b2lkIHNldFRhcmdldEl0ZW0oV2ViS2l0OjpXZWJC
YWNrRm9yd2FyZExpc3RJdGVtJiBpdGVtKSB7IG1fdGFyZ2V0SXRlbSA9ICZpdGVtOyB9CiAgICAg
V2ViS2l0OjpXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiB0YXJnZXRJdGVtKCkgY29uc3QgeyByZXR1
cm4gbV90YXJnZXRJdGVtLmdldCgpOyB9CiAgICAgV2ViS2l0OjpXZWJCYWNrRm9yd2FyZExpc3RJ
dGVtKiBmcm9tSXRlbSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJvbUl0ZW0uZ2V0KCk7IH0KICAgICBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lTG9hZFR5cGU+IGJhY2tGb3J3YXJkRnJhbWVMb2Fk
VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fYmFja0ZvcndhcmRGcmFtZUxvYWRUeXBlOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCmlu
ZGV4IGEyN2E3YjVlYjRiMjMwNWY4NDUyOWY4YTE3OTgyMTVhYjI2NTU5MTcuLmE5NDA1ZjkwODEy
Zjc3ZjExODJjZGE3YWY4ODI2ZjBiYjEwMzlhMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCkBAIC0xNDcsNiArMTQ3LDExIEBA
IC0gKFdLR2VvbG9jYXRpb25Qcm92aWRlcklPUyAqKV9nZW9sb2NhdGlvblByb3ZpZGVyCiB9CiAj
ZW5kaWYgLy8gUExBVEZPUk0oSU9TKQogCistIChXS0NvbnRleHRSZWYpX2NvbnRleHRGb3JUZXN0
aW5nCit7CisgICAgcmV0dXJuIHRvQVBJKF9wcm9jZXNzUG9vbC5nZXQoKSk7Cit9CisKIEBlbmQK
IAogQGltcGxlbWVudGF0aW9uIFdLUHJvY2Vzc1Bvb2wgKFdLUHJpdmF0ZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sSW50ZXJuYWwu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sSW50ZXJu
YWwuaAppbmRleCA5NDU0ODA5MGExOTYzZmNmMWRkODg4MzFmODY0MTljYjY4YWRiZjY5Li5hNjM4
M2NiNzFlOWI5OWUyNmJiYzk2M2UxNjc2MTc3YWMxNzE2NGVmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbEludGVybmFsLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xJbnRlcm5hbC5o
CkBAIC0zNCw2ICszNCw4IEBACiBAY2xhc3MgV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TOwogI2Vu
ZGlmCiAKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQ29udGV4dCogV0tDb250ZXh0UmVm
OworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogaW5saW5lIFdLUHJvY2Vzc1Bvb2wgKndyYXBwZXIo
V2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sKQpAQCAtNTIsNiArNTQsOCBAQCBpbmxpbmUgV0tQ
cm9jZXNzUG9vbCAqd3JhcHBlcihXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wpCiAjaWYgVEFS
R0VUX09TX0lQSE9ORQogQHByb3BlcnR5KHJlYWRvbmx5KSBXS0dlb2xvY2F0aW9uUHJvdmlkZXJJ
T1MgKl9nZW9sb2NhdGlvblByb3ZpZGVyOwogI2VuZGlmCisKKy0gKFdLQ29udGV4dFJlZilfY29u
dGV4dEZvclRlc3Rpbmc7CiBAZW5kCiAKICNlbmRpZiAvLyBXS19BUElfRU5BQkxFRApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZDdkZjRjZjgxNjY5ZDIzZWM3
MGY4OWYxYTRlODdkNGZhNDA5MmFhZi4uYTY3YmEwOGVlYmU0OWVmMjFhNGEwOTU3ODFjOTRlODRm
YjcxY2QyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0y
NDIzLDcgKzI0MjMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVjZWl2ZWRQb2xpY3lEZWNpc2lv
bihQb2xpY3lBY3Rpb24gYWN0aW9uLCBXZWJGcmFtZVByb3h5JiBmcgogICAgICAgICAgICAgYXV0
byBwcm9wb3NlZFByb2Nlc3MgPSBwcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5wcm9jZXNzRm9yTmF2
aWdhdGlvbigqdGhpcywgKm5hdmlnYXRpb24sIGFjdGlvbik7CiAKICAgICAgICAgICAgIGlmIChw
cm9wb3NlZFByb2Nlc3MucHRyKCkgIT0gJnByb2Nlc3MoKSkgewotICAgICAgICAgICAgICAgIExP
RyhQcm9jZXNzU3dhcHBpbmcsICJTd2l0Y2hpbmcgZnJvbSBwcm9jZXNzICVpIHRvIG5ldyBwcm9j
ZXNzIGZvciBuYXZpZ2F0aW9uICUiIFBSSXU2NCAiICclcyciLCBwcm9jZXNzSWRlbnRpZmllcigp
LCBuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSwgbmF2aWdhdGlvbi0+bG9nZ2luZ1N0cmluZygp
KTsKKyAgICAgICAgICAgICAgICBMT0coUHJvY2Vzc1N3YXBwaW5nLCAiKFByb2Nlc3NTd2FwcGlu
ZykgU3dpdGNoaW5nIGZyb20gcHJvY2VzcyAlaSB0byBuZXcgcHJvY2VzcyAoJWkpIGZvciBuYXZp
Z2F0aW9uICUiIFBSSXU2NCAiICclcyciLCBwcm9jZXNzSWRlbnRpZmllcigpLCBwcm9wb3NlZFBy
b2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG5hdmlnYXRpb24tPm5hdmlnYXRpb25JRCgpLCBu
YXZpZ2F0aW9uLT5sb2dnaW5nU3RyaW5nKCkpOwogCiAgICAgICAgICAgICAgICAgUnVuTG9vcDo6
bWFpbigpLmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG5h
dmlnYXRpb24gPSBtYWtlUmVmKCpuYXZpZ2F0aW9uKSwgcHJvcG9zZWRQcm9jZXNzID0gV1RGTW92
ZShwcm9wb3NlZFByb2Nlc3MpXSgpIG11dGFibGUgewogICAgICAgICAgICAgICAgICAgICBjb250
aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MobmF2aWdhdGlvbi5nZXQoKSwgV1RGTW92ZShwcm9w
b3NlZFByb2Nlc3MpKTsKQEAgLTM5NjQsOCArMzk2NCwyMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBT
ZWN1cgogICAgIE1FU1NBR0VfQ0hFQ0soZnJhbWUpOwogICAgIE1FU1NBR0VfQ0hFQ0tfVVJMKHJl
cXVlc3QudXJsKCkpOwogICAgIE1FU1NBR0VfQ0hFQ0tfVVJMKG9yaWdpbmFsUmVxdWVzdC51cmwo
KSk7Ci0gICAgCi0gICAgUmVmPEFQSTo6TmF2aWdhdGlvbj4gbmF2aWdhdGlvbiA9IG5hdmlnYXRp
b25JRCA/IG1ha2VSZWYobV9uYXZpZ2F0aW9uU3RhdGUtPm5hdmlnYXRpb24obmF2aWdhdGlvbklE
KSkgOiBtX25hdmlnYXRpb25TdGF0ZS0+Y3JlYXRlTG9hZFJlcXVlc3ROYXZpZ2F0aW9uKFJlc291
cmNlUmVxdWVzdChyZXF1ZXN0KSwgbV9iYWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJdGVtKCkpOwor
CisgICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gbmF2aWdhdGlvbjsKKyAgICBpZiAobmF2aWdh
dGlvbklEKQorICAgICAgICBuYXZpZ2F0aW9uID0gbWFrZVJlZihtX25hdmlnYXRpb25TdGF0ZS0+
bmF2aWdhdGlvbihuYXZpZ2F0aW9uSUQpKTsKKworICAgIGlmIChhdXRvIHRhcmdldEJhY2tGb3J3
YXJkSXRlbUlkZW50aWZpZXIgPSBuYXZpZ2F0aW9uQWN0aW9uRGF0YS50YXJnZXRCYWNrRm9yd2Fy
ZEl0ZW1JZGVudGlmaWVyKSB7CisgICAgICAgIGlmIChhdXRvKiBpdGVtID0gbV9iYWNrRm9yd2Fy
ZExpc3QtPml0ZW1Gb3JJRCgqbmF2aWdhdGlvbkFjdGlvbkRhdGEudGFyZ2V0QmFja0ZvcndhcmRJ
dGVtSWRlbnRpZmllcikpIHsKKyAgICAgICAgICAgIGlmICghbmF2aWdhdGlvbikKKyAgICAgICAg
ICAgICAgICBuYXZpZ2F0aW9uID0gbV9uYXZpZ2F0aW9uU3RhdGUtPmNyZWF0ZUJhY2tGb3J3YXJk
TmF2aWdhdGlvbigqaXRlbSwgbV9iYWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJdGVtKCksIEZyYW1l
TG9hZFR5cGU6OkluZGV4ZWRCYWNrRm9yd2FyZCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgbmF2aWdhdGlvbi0+c2V0VGFyZ2V0SXRlbSgqaXRlbSk7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBpZiAoIW5hdmlnYXRpb24pCisgICAgICAgIG5hdmlnYXRpb24gPSBtX25hdmln
YXRpb25TdGF0ZS0+Y3JlYXRlTG9hZFJlcXVlc3ROYXZpZ2F0aW9uKFJlc291cmNlUmVxdWVzdChy
ZXF1ZXN0KSwgbV9iYWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJdGVtKCkpOwogCiAgICAgdWludDY0
X3QgbmV3TmF2aWdhdGlvbklEID0gbmF2aWdhdGlvbi0+bmF2aWdhdGlvbklEKCk7CiAgICAgbmF2
aWdhdGlvbi0+c2V0V2FzVXNlckluaXRpYXRlZCghIW5hdmlnYXRpb25BY3Rpb25EYXRhLnVzZXJH
ZXN0dXJlVG9rZW5JZGVudGlmaWVyKTsKQEAgLTM5NzcsNyArMzk5MSw3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFNlY3VyCiAgICAgbmF2aWdhdGlvbi0+c2V0T3BlbmVyKG5hdmlnYXRpb25BY3Rpb25E
YXRhLm9wZW5lcik7CiAKICAgICBhdXRvIGxpc3RlbmVyID0gbWFrZVJlZihmcmFtZS0+c2V0VXBQ
b2xpY3lMaXN0ZW5lclByb3h5KGxpc3RlbmVySUQsIFBvbGljeUxpc3RlbmVyVHlwZTo6TmF2aWdh
dGlvbkFjdGlvbikpOwotICAgIGxpc3RlbmVyLT5zZXROYXZpZ2F0aW9uKFdURk1vdmUobmF2aWdh
dGlvbikpOworICAgIGxpc3RlbmVyLT5zZXROYXZpZ2F0aW9uKG5hdmlnYXRpb24ucmVsZWFzZU5v
bk51bGwoKSk7CiAKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCiAgICAgaWYgKGZyYW1l
LT5kaWRIYW5kbGVDb250ZW50RmlsdGVyVW5ibG9ja05hdmlnYXRpb24ocmVxdWVzdCkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggMTFjYzhiZDVjMmNl
YWY1MTMyYzFiZmE0OThlOGZhOTEyOWU2MjBiMy4uZWJkZDA0NTcwNjA5ZjMzMzEyMTcyMWQxNmY3
NDY2ZjljNTIzZTc5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcApAQCAtNTksNiArNTksOCBAQAogI2luY2x1ZGUgIlVJR2FtZXBhZFByb3ZpZGVyLmgiCiAj
aW5jbHVkZSAiV0tDb250ZXh0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYkF1dG9tYXRpb25TZXNz
aW9uLmgiCisjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0LmgiCisjaW5jbHVkZSAiV2ViQmFj
a0ZvcndhcmRMaXN0SXRlbS5oIgogI2luY2x1ZGUgIldlYkNlcnRpZmljYXRlSW5mby5oIgogI2lu
Y2x1ZGUgIldlYkNvbnRleHRTdXBwbGVtZW50LmgiCiAjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdl
clByb3h5LmgiCkBAIC0yMTA2LDYgKzIxMDgsMTUgQEAgUmVmPFdlYlByb2Nlc3NQcm94eT4gV2Vi
UHJvY2Vzc1Bvb2w6OnByb2Nlc3NGb3JOYXZpZ2F0aW9uSW50ZXJuYWwoV2ViUGFnZVByb3h5Jgog
ICAgICAgICAgICAgYWN0aW9uID0gUG9saWN5QWN0aW9uOjpTdXNwZW5kOwogICAgICAgICAgICAg
cmV0dXJuICpzdXNwZW5kZWRQYWdlLT5wcm9jZXNzKCk7CiAgICAgICAgIH0KKworICAgICAgICAv
LyBJZiB0aGUgdGFyZ2V0IGJhY2svZm9yd2FyZCBpdGVtIGFuZCB0aGUgY3VycmVudCBiYWNrL2Zv
cndhcmQgaXRlbSBvcmlnaW5hdGVkCisgICAgICAgIC8vIGluIHRoZSBzYW1lIFdlYlByb2Nlc3Mg
dGhlbiB3ZSBzaG91bGQgcmV1c2UgdGhlIGN1cnJlbnQgV2ViUHJvY2Vzcy4KKyAgICAgICAgaWYg
KGF1dG8qIGN1cnJlbnRJdGVtID0gcGFnZS5iYWNrRm9yd2FyZExpc3QoKS5jdXJyZW50SXRlbSgp
KSB7CisgICAgICAgICAgICBpZiAoY3VycmVudEl0ZW0tPml0ZW1JRCgpLnByb2Nlc3NJZGVudGlm
aWVyID09IGJhY2tGb3J3YXJkTGlzdEl0ZW0tPml0ZW1JRCgpLnByb2Nlc3NJZGVudGlmaWVyKSB7
CisgICAgICAgICAgICAgICAgYWN0aW9uID0gUG9saWN5QWN0aW9uOjpTdXNwZW5kOworICAgICAg
ICAgICAgICAgIHJldHVybiBwYWdlLnByb2Nlc3MoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQogICAgIH0KIAogICAgIGlmIChuYXZpZ2F0aW9uLnRyZWF0QXNTYW1lT3JpZ2luTmF2aWdhdGlv
bigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggMzM4YjY5OTE0YTg0NTFi
Yzg0YmRhNzZhMmVlOWYwZWMzNGNlMjI4YS4uZDBmZTkxOGZiMmI3Zjg5NjA1MDYyNmFhYWZhMDg5
ZmFlNmU5N2JjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC04NjcsNiAr
ODY3LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IE5hdmlnYXQKICAgICBuYXZpZ2F0aW9uQWN0aW9uRGF0
YS50cmVhdEFzU2FtZU9yaWdpbk5hdmlnYXRpb24gPSBuYXZpZ2F0aW9uQWN0aW9uLnRyZWF0QXNT
YW1lT3JpZ2luTmF2aWdhdGlvbigpOwogICAgIG5hdmlnYXRpb25BY3Rpb25EYXRhLmlzQ3Jvc3NP
cmlnaW5XaW5kb3dPcGVuTmF2aWdhdGlvbiA9IG5hdmlnYXRpb25BY3Rpb24uaXNDcm9zc09yaWdp
bldpbmRvd09wZW5OYXZpZ2F0aW9uKCk7CiAgICAgbmF2aWdhdGlvbkFjdGlvbkRhdGEub3BlbmVy
ID0gbmF2aWdhdGlvbkFjdGlvbi5vcGVuZXIoKTsKKyAgICBuYXZpZ2F0aW9uQWN0aW9uRGF0YS50
YXJnZXRCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyID0gbmF2aWdhdGlvbkFjdGlvbi50YXJnZXRC
YWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyKCk7CiAKICAgICBXZWJDb3JlOjpGcmFtZSogY29yZUZy
YW1lID0gbV9mcmFtZS0+Y29yZUZyYW1lKCk7CiAgICAgaWYgKCFjb3JlRnJhbWUpCmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYWRjOGNmZWQyNDAy
MzM5ZWJlMzA1YTU3NTZjNzlmODBjNmY3MjA2ZC4uNWJkYWQyMzhiYjI0YmUwMzdlZGZkYmU5OTll
ZjgxY2EzMWM3MDIzMiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE4LTA1LTEwICBCcmFkeSBFaWRzb24gIDxiZWlk
c29uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIHN1cmUgaGlzdG9yeSBuYXZpZ2F0aW9ucyBy
ZXVzZSB0aGUgZXhpc3RpbmcgcHJvY2VzcyB3aGVuIG5lY2Vzc2FyeS4KKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzM5NzQ2NTE2PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4NTUzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2
aWdhdGlvbi5tbToKKwogMjAxOC0wNS0xMCAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJv
QGlnYWxpYS5jb20+CiAKICAgICAgICAgRml4IHNvbWUgLVdzdHJpbmctb3AtdHJ1bmNhdGlvbiB3
YXJuaW5ncwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KaW5kZXggNWRiNmI4NTU2OGNl
YWQwNWZhYTc5OWEzNDViOTQwYjMzNTA4M2Y0NC4uNTQ5NTA4MmIwYWU5OGViNjJhZjA2YjJjMmM5
ZmY3N2RjNGEzNWI4MCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCkBAIC01NCw2
ICs1NCwxMCBAQAogCiAjaWYgV0tfQVBJX0VOQUJMRUQKIAorQGludGVyZmFjZSBXS1Byb2Nlc3NQ
b29sICgpCistIChXS0NvbnRleHRSZWYpX2NvbnRleHRGb3JUZXN0aW5nOworQGVuZAorCiBzdGF0
aWMgYm9vbCBkb25lOwogc3RhdGljIGJvb2wgZmFpbGVkOwogc3RhdGljIGJvb2wgZGlkQ3JlYXRl
V2ViVmlldzsKQEAgLTEzODIsNCArMTM4Niw2MCBAQCBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
ZVRvSW52YWxpZFVSTCkKICAgICBFWFBFQ1RfRVEocGlkMSwgcGlkMik7CiB9CiAKK3N0YXRpYyBj
b25zdCBjaGFyKiBuYXZpZ2F0ZVRvRGF0YVVSTFRoZW5CYWNrQnl0ZXMgPSBSIlBTT05SRVNPVVJD
RSgKKzxzY3JpcHQ+CitvbnBhZ2VzaG93ID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICBpZiAoZXZl
bnQucGVyc2lzdGVkKQorICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wc29u
LnBvc3RNZXNzYWdlKCJwYWdlc2hvdyBwZXJzaXN0ZWQiKTsKKyAgICBlbHNlCisgICAgICAgIHdp
bmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBzb24ucG9zdE1lc3NhZ2UoInBhZ2VzaG93IE5P
VCBwZXJzaXN0ZWQiKTsKKworICAgIC8vIExvY2F0aW9uIGNoYW5nZXMgbmVlZCB0byBoYXBwZW4g
b3V0c2lkZSB0aGUgb25sb2FkIGhhbmRsZXIgdG8gZ2VuZXJhdGUgaGlzdG9yeSBlbnRyaWVzLgor
ICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9
ICJkYXRhOnRleHQvaHRtbCw8Ym9keSBvbmxvYWQ9J2hpc3RvcnkuYmFjaygpJz48L2JvZHk+IjsK
KyAgICB9LCAwKTsKK30KKworPC9zY3JpcHQ+CispUFNPTlJFU09VUkNFIjsKKworVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGVUb0RhdGFVUkxUaGVuQmFjaykKK3sKKyAgICBhdXRvIHByb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24g
YWxsb2NdIGluaXRdKTsKKyAgICBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCkucHJvY2Vz
c1N3YXBzT25OYXZpZ2F0aW9uID0gWUVTOworICAgIGF1dG8gcHJvY2Vzc1Bvb2wgPSBhZG9wdE5T
KFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKworICAgIC8vIERpc2FibGUgdGhlIHBhZ2UgY2FjaGUK
KyAgICBhdXRvIGNvbnRleHQgPSBbcHJvY2Vzc1Bvb2wgX2NvbnRleHRGb3JUZXN0aW5nXTsKKyAg
ICBXS0NvbnRleHRTZXRDYWNoZU1vZGVsKGNvbnRleHQsIGtXS0NhY2hlTW9kZWxEb2N1bWVudFZp
ZXdlcik7CisKKyAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRp
b24gc2V0UHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0KCldOworICAgIFJldGFpblB0cjxQU09O
U2NoZW1lPiBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUgYWxsb2NdIGluaXRXaXRoQnl0
ZXM6bmF2aWdhdGVUb0RhdGFVUkxUaGVuQmFja0J5dGVzXSk7CisgICAgW3dlYlZpZXdDb25maWd1
cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJQ
U09OIl07CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246d2Vi
Vmlld0NvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBhdXRvIG5hdmlnYXRpb25EZWxlZ2F0ZSA9
IGFkb3B0TlMoW1tQU09OTmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgW3dl
YlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOm5hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKV07CisK
KyAgICBudW1iZXJPZkRlY2lkZVBvbGljeUNhbGxzID0gMDsKKyAgICBbd2ViVmlldyBsb2FkUmVx
dWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAi
cHNvbjovL2hvc3QvbWFpbjEuaHRtbCJdXV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7CisgICAgYXV0byBwaWQxID0gW3dlYlZpZXcgX3dl
YlByb2Nlc3NJZGVudGlmaWVyXTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9u
ZSk7CisgICAgZG9uZSA9IGZhbHNlOworICAgIGF1dG8gcGlkMiA9IFt3ZWJWaWV3IF93ZWJQcm9j
ZXNzSWRlbnRpZmllcl07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwor
ICAgIGRvbmUgPSBmYWxzZTsKKyAgICBhdXRvIHBpZDMgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lk
ZW50aWZpZXJdOworCisgICAgRVhQRUNUX0VRKDMsIG51bWJlck9mRGVjaWRlUG9saWN5Q2FsbHMp
OworICAgIEVYUEVDVF9FUSgxdSwgc2VlblBJRHMuc2l6ZSgpKTsKKyAgICBFWFBFQ1RfRVEocGlk
MSwgcGlkMik7CisgICAgRVhQRUNUX0VRKHBpZDIsIHBpZDMpOworfQorCiAjZW5kaWYgLy8gV0tf
QVBJX0VOQUJMRUQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>340151</attachid>
            <date>2018-05-10 17:11:02 -0700</date>
            <delta_ts>2019-01-03 08:56:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185532-20180510171101.patch</filename>
            <type>text/plain</type>
            <size>22955</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxNjY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDhhNWFjYmQyY2FhMmE2
N2MxNDU0MjJkNDI1NzUwOWQ0N2M5NWY1ZC4uMDc2MjM2M2UwMmIyZTllMTI5N2ZlNmMwNmJlOGRk
YjMxYmYzYTJlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE4LTA1LTEwICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIHN1cmUgaGlzdG9y
eSBuYXZpZ2F0aW9ucyByZXVzZSB0aGUgZXhpc3RpbmcgcHJvY2VzcyB3aGVuIG5lY2Vzc2FyeS4K
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM5NzQ2NTE2PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTUzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIENvdmVyZWQgYnkgbmV3IEFQSSB0ZXN0cy4KKworICAgICAg
ICBJbiBXZWJDb3JlLWxhbmQsIG1ha2Ugc3VyZSAqYWxsKiBOYXZpZ2F0aW9uQWN0aW9ucyB0byBh
IGJhY2svZm9yd2FyZCBpdGVtIGFyZSB0YWdnZWQgd2l0aAorICAgICAgICB0aGUgaXRlbSBpZGVu
dGlmaWVyLgorCisgICAgICAgICogaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIaXN0b3J5SXRlbTo6SGlzdG9yeUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6SGlz
dG9yeUl0ZW06OmxvZ1N0cmluZyBjb25zdCk6CisgICAgICAgICogaGlzdG9yeS9IaXN0b3J5SXRl
bS5oOgorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lTG9hZGVyOjpsb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKToKKworICAgICAgICAq
IGxvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRp
b25BY3Rpb246OnNldFRhcmdldEJhY2tGb3J3YXJkSXRlbSk6CisKKyAgICAgICAgKiBsb2FkZXIv
TmF2aWdhdGlvbkFjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbjo6
dGFyZ2V0QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciBjb25zdCk6CisKIDIwMTgtMDUtMTAgIE1h
dHQgQmFrZXIgIDxtYXR0YmFrZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6
IEFTU0VSVF9OT1RfUkVBQ0hFRCBpbiBQYWdlRGVidWdnZXJBZ2VudDo6ZGlkQWRkRXZlbnRMaXN0
ZW5lciB3aGVuIHBhZ2UgYWRkcyBhdHRyaWJ1dGUgZXZlbnQgbGlzdGVuZXIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
MTg4NDlhNzI3NGM0ZTliYTQ2MzcxOGU0MTAxMDZlN2ZhZDhjNmM3NS4uYzk5OTg3OGZjZTZmOGMy
NTYyODUwM2I5ZTU1ZTQ0Mzk0NzlhMTYyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAx
OC0wNS0xMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgTWFr
ZSBzdXJlIGhpc3RvcnkgbmF2aWdhdGlvbnMgcmV1c2UgdGhlIGV4aXN0aW5nIHByb2Nlc3Mgd2hl
biBuZWNlc3NhcnkuCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zOTc0NjUxNj4gYW5kIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODU1MzIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJZiBhIHZpZXcgbmF2aWdhdGVzIHRv
IGVpdGhlciBhIGRhdGE6IG9yIGJsb2I6IFVSTCwgaXQgcmV1c2VzIHRoZSBleGlzdGluZyBwcm9j
ZXNzLgorIAorICAgICAgICBJbiBzdWNoIGNhc2VzIHdlIG5lZWQgdG8gYWxzbyBlbnN1cmUgdGhh
dCBoaXN0b3J5IG5hdmlnYXRpb25zIGJhY2sgd2lsbCBhbHNvIHJldXNlIHRoZSBleGlzdGluZyBw
cm9jZXNzLgorCisgICAgICAgICogU2hhcmVkL05hdmlnYXRpb25BY3Rpb25EYXRhLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGE6OmVuY29kZSBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFNo
YXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5oOgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9B
UElOYXZpZ2F0aW9uLmg6CisgICAgICAgIChBUEk6Ok5hdmlnYXRpb246OnNldFRhcmdldEl0ZW0p
OgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbi5tbToKKyAgICAgICAgKC1bX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIHBh
Z2VDYWNoZUVuYWJsZWRdKToKKyAgICAgICAgKC1bX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
IHNldFBhZ2VDYWNoZUVuYWJsZWQ6XSk6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZWNlaXZlZFBvbGljeURl
Y2lzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uKToKKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwcm9jZXNzRm9yTmF2aWdhdGlv
bkludGVybmFsKTogSWYgdGhlIGN1cnJlbnQgYW5kIHRhcmdldCBiYWNrL2ZvcndhcmQgaXRlbXMg
Ym90aAorICAgICAgICAgIGNhbWUgZnJvbSB0aGUgc2FtZSBwcm9jZXNzLCB0aGVuIHJldXNlIHRo
ZSBleGlzdGluZyBwcm9jZXNzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOgorCiAy
MDE4LTA1LTEwICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmVtb3ZlIFVudXNlZCBDaGluZXNlL0phcGFuZXNlIFJlYW5hbHl6ZSBjb2RlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCmluZGV4IGE1YmE5NWU0MzU2NjQzY2I3ZWYz
MjM3YWU2MjJjZTM4NzhlNjY3N2MuLmQzMDhiOTA3YzRiYzBmNWUwM2YzOTRjYTE5ZGI5MjVlN2Uy
NjExOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCkBAIC0zNSw2ICsz
NSw3IEBACiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSA8c3RkaW8uaD4KICNp
bmNsdWRlIDx3dGYvRGF0ZU1hdGguaD4KKyNpbmNsdWRlIDx3dGYvRGVidWdVdGlsaXRpZXMuaD4K
ICNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+
CiAKQEAgLTEwNSw2ICsxMDYsNyBAQCBpbmxpbmUgSGlzdG9yeUl0ZW06Okhpc3RvcnlJdGVtKGNv
bnN0IEhpc3RvcnlJdGVtJiBpdGVtKQogICAgICwgbV9zY2FsZShpdGVtLm1fc2NhbGUpCiAgICAg
LCBtX3NjYWxlSXNJbml0aWFsKGl0ZW0ubV9zY2FsZUlzSW5pdGlhbCkKICNlbmRpZgorICAgICwg
bV9pZGVudGlmaWVyKGl0ZW0ubV9pZGVudGlmaWVyKQogewogICAgIGlmIChpdGVtLm1fZm9ybURh
dGEpCiAgICAgICAgIG1fZm9ybURhdGEgPSBpdGVtLm1fZm9ybURhdGEtPmNvcHkoKTsKQEAgLTQ4
OSw3ICs0OTEsMTQgQEAgaW50IEhpc3RvcnlJdGVtOjpzaG93VHJlZVdpdGhJbmRlbnQodW5zaWdu
ZWQgaW5kZW50TGV2ZWwpIGNvbnN0CiB9CiAKICNlbmRpZgotICAgICAgICAgICAgICAgIAorCisj
aWYgIUxPR19ESVNBQkxFRAorY29uc3QgY2hhciogSGlzdG9yeUl0ZW06OmxvZ1N0cmluZygpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGRlYnVnU3RyaW5nKCJIaXN0b3J5SXRlbSBjdXJyZW50IFVSTCAi
LCB1cmxTdHJpbmcoKSwgIiwgaWRlbnRpZmllciAiLCBtX2lkZW50aWZpZXIubG9nU3RyaW5nKCkp
OworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2lmbmRlZiBOREVCVUcK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uaCBiL1NvdXJj
ZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uaAppbmRleCBlZTQ2NmM3ZjE0ZDFiZjhlNzRj
MDk1ZjEyNmNiOWE3NWE2NWY3ZTY4Li5lNzJiNTg5Mzk0OTgxZWNlYzQxMDdmNmQ2MmI3N2M5ZDc0
MzgzNTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5oCkBAIC0yMTUsNiArMjE1
LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFdhc1Jlc3RvcmVkRnJvbVNlc3Npb24oYm9vbCB3
YXNSZXN0b3JlZEZyb21TZXNzaW9uKSB7IG1fd2FzUmVzdG9yZWRGcm9tU2Vzc2lvbiA9IHdhc1Jl
c3RvcmVkRnJvbVNlc3Npb247IH0KICAgICBib29sIHdhc1Jlc3RvcmVkRnJvbVNlc3Npb24oKSBj
b25zdCB7IHJldHVybiBtX3dhc1Jlc3RvcmVkRnJvbVNlc3Npb247IH0KIAorI2lmICFMT0dfRElT
QUJMRUQKKyAgICBjb25zdCBjaGFyKiBsb2dTdHJpbmcoKSBjb25zdDsKKyNlbmRpZgorCiBwcml2
YXRlOgogICAgIFdFQkNPUkVfRVhQT1JUIEhpc3RvcnlJdGVtKCk7CiAgICAgV0VCQ09SRV9FWFBP
UlQgSGlzdG9yeUl0ZW0oY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0cmluZyYgdGl0
bGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggMWI3YTA5OTMwNzMx
NzM4NmFlYjU3MjE5YTc0ZDc2YTAxNTY5ODhkNC4uMGE1YWZmMjE4MWFjZjAyZTc4OTYzZWQ0NzJk
NGI2NGU2NDM1ZWI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0z
NTI4LDcgKzM1MjgsMTEgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZERpZmZlcmVudERvY3VtZW50
SXRlbShIaXN0b3J5SXRlbSYgaXRlbSwgRnJhbWVMb2FkVHlwZSBsb2EKICAgICBpZiAoQ2FjaGVk
UGFnZSogY2FjaGVkUGFnZSA9IFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkuZ2V0KGl0ZW0sIG1fZnJh
bWUucGFnZSgpKSkgewogICAgICAgICBhdXRvIGRvY3VtZW50TG9hZGVyID0gY2FjaGVkUGFnZS0+
ZG9jdW1lbnRMb2FkZXIoKTsKICAgICAgICAgbV9jbGllbnQudXBkYXRlQ2FjaGVkRG9jdW1lbnRM
b2FkZXIoKmRvY3VtZW50TG9hZGVyKTsKLSAgICAgICAgZG9jdW1lbnRMb2FkZXItPnNldFRyaWdn
ZXJpbmdBY3Rpb24oeyAqbV9mcmFtZS5kb2N1bWVudCgpLCBkb2N1bWVudExvYWRlci0+cmVxdWVz
dCgpLCBpbml0aWF0ZWRCeU1haW5GcmFtZSwgbG9hZFR5cGUsIGZhbHNlIH0pOworCisgICAgICAg
IGF1dG8gYWN0aW9uID0gTmF2aWdhdGlvbkFjdGlvbiB7ICptX2ZyYW1lLmRvY3VtZW50KCksIGRv
Y3VtZW50TG9hZGVyLT5yZXF1ZXN0KCksIGluaXRpYXRlZEJ5TWFpbkZyYW1lLCBsb2FkVHlwZSwg
ZmFsc2UgfTsKKyAgICAgICAgYWN0aW9uLnNldFRhcmdldEJhY2tGb3J3YXJkSXRlbShpdGVtKTsK
KyAgICAgICAgZG9jdW1lbnRMb2FkZXItPnNldFRyaWdnZXJpbmdBY3Rpb24oV1RGTW92ZShhY3Rp
b24pKTsKKwogICAgICAgICBkb2N1bWVudExvYWRlci0+c2V0TGFzdENoZWNrZWRSZXF1ZXN0KFJl
c291cmNlUmVxdWVzdCgpKTsKICAgICAgICAgbG9hZFdpdGhEb2N1bWVudExvYWRlcihkb2N1bWVu
dExvYWRlciwgbG9hZFR5cGUsIDAsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBu
YXZpZ2F0aW9uUG9saWN5Q2hlY2ssIFtdIHsgfSk7CiAgICAgICAgIHJldHVybjsKQEAgLTM2MTYs
NiArMzYyMCw4IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWREaWZmZXJlbnREb2N1bWVudEl0ZW0o
SGlzdG9yeUl0ZW0mIGl0ZW0sIEZyYW1lTG9hZFR5cGUgbG9hCiAgICAgICAgIGFjdGlvbiA9IHsg
Km1fZnJhbWUuZG9jdW1lbnQoKSwgcmVxdWVzdEZvck9yaWdpbmFsVVJMLCBpbml0aWF0ZWRCeU1h
aW5GcmFtZSwgbG9hZFR5cGUsIGlzRm9ybVN1Ym1pc3Npb24sIGV2ZW50LCBzaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5IH07CiAgICAgfQogCisgICAgYWN0aW9uLnNldFRhcmdldEJhY2tGb3J3
YXJkSXRlbShpdGVtKTsKKwogICAgIGxvYWRXaXRoTmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0LCBh
Y3Rpb24sIExvY2tIaXN0b3J5OjpObywgbG9hZFR5cGUsIDAsIEFsbG93TmF2aWdhdGlvblRvSW52
YWxpZFVSTDo6WWVzLCBbXSB7IH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdh
dGlvbkFjdGlvbi5jcHAKaW5kZXggNzFmMTNmY2ZiYjU5OTJmZTNjMGM3ODdmNTJjMDZjYzM3Y2Nh
ZmEzOS4uOGZjZGI0ODYxMDk4YmM1NDk3Mzg4NTQ1NmE1ODhlNzg3NWIyODk3YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcApAQCAtMzIsNiArMzIsNyBAQAog
I2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJGcmFt
ZUxvYWRlci5oIgorI2luY2x1ZGUgIkhpc3RvcnlJdGVtLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtOTUsNCArOTYsOSBAQCBOYXZpZ2F0aW9uQWN0aW9uIE5hdmlnYXRpb25BY3Rpb246
OmNvcHlXaXRoU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeShTaG91bGRPcAogICAgIHJldHVy
biByZXN1bHQ7CiB9CiAKK3ZvaWQgTmF2aWdhdGlvbkFjdGlvbjo6c2V0VGFyZ2V0QmFja0Zvcndh
cmRJdGVtKEhpc3RvcnlJdGVtJiBpdGVtKQoreworICAgIG1fdGFyZ2V0QmFja0ZvcndhcmRJdGVt
SWRlbnRpZmllciA9IGl0ZW0uaWRlbnRpZmllcigpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL05hdmlnYXRpb25BY3Rpb24uaAppbmRleCBhNWFmMzM0NTZiMDEyNmQ2N2RkZjYyOWRhNjdl
OWUzMzk2MThlMDRjLi4yMzQxMDhiMjNmMDc4MDE4ZDQ2MmIyZDYwNzkzODJmYjUyOWY0ZmNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmgKQEAgLTI4LDYgKzI4LDcg
QEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVy
LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVx
dWVzdC5oIgogI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCkBAIC0zNyw2ICszOCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBFdmVudDsK
K2NsYXNzIEhpc3RvcnlJdGVtOwogCiBjbGFzcyBOYXZpZ2F0aW9uQWN0aW9uIHsKIHB1YmxpYzoK
QEAgLTgwLDYgKzgyLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0T3BlbmVyKHN0ZDo6b3B0aW9u
YWw8c3RkOjpwYWlyPHVpbnQ2NF90LCB1aW50NjRfdD4+JiYgb3BlbmVyKSB7IG1fb3BlbmVyID0g
V1RGTW92ZShvcGVuZXIpOyB9CiAgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8dWlu
dDY0X3QsIHVpbnQ2NF90Pj4mIG9wZW5lcigpIGNvbnN0IHsgcmV0dXJuIG1fb3BlbmVyOyB9CiAK
KyAgICB2b2lkIHNldFRhcmdldEJhY2tGb3J3YXJkSXRlbShIaXN0b3J5SXRlbSYpOworICAgIGNv
bnN0IHN0ZDo6b3B0aW9uYWw8QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllcj4mIHRhcmdldEJhY2tG
b3J3YXJkSXRlbUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3RhcmdldEJhY2tGb3J3YXJk
SXRlbUlkZW50aWZpZXI7IH0KKwogcHJpdmF0ZToKICAgICBSZWZQdHI8RG9jdW1lbnQ+IG1fc291
cmNlRG9jdW1lbnQ7CiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fcmVzb3VyY2VSZXF1ZXN0OwpAQCAt
OTIsNiArOTcsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV90cmVhdEFzU2FtZU9yaWdpbk5hdmln
YXRpb247CiAgICAgYm9vbCBtX2lzQ3Jvc3NPcmlnaW5XaW5kb3dPcGVuTmF2aWdhdGlvbiB7IGZh
bHNlIH07CiAgICAgc3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8dWludDY0X3QgLyogcGFnZUlEICov
LCB1aW50NjRfdCAvKiBmcmFtZUlEICovPj4gbV9vcGVuZXI7CisgICAgc3RkOjpvcHRpb25hbDxC
YWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyPiBtX3RhcmdldEJhY2tGb3J3YXJkSXRlbUlkZW50aWZp
ZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5jcHAKaW5kZXggNTEzM2M0MmMzZTViYmMwYjEwNzQxNTY3
NmRkNmFhYWExMGNhMjJiOC4uZTYxYjJhY2FhMWY3MGU3ZDA1YmNhN2ZiNDk5MGFlZDI5NTA3MTRk
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvTmF2aWdhdGlvbkFjdGlvbkRhdGEu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdmlnYXRpb25BY3Rpb25EYXRhLmNwcApA
QCAtNTAsNiArNTAsNyBAQCB2b2lkIE5hdmlnYXRpb25BY3Rpb25EYXRhOjplbmNvZGUoSVBDOjpF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgdHJlYXRBc1NhbWVPcmlnaW5O
YXZpZ2F0aW9uOwogICAgIGVuY29kZXIgPDwgaXNDcm9zc09yaWdpbldpbmRvd09wZW5OYXZpZ2F0
aW9uOwogICAgIGVuY29kZXIgPDwgb3BlbmVyOworICAgIGVuY29kZXIgPDwgdGFyZ2V0QmFja0Zv
cndhcmRJdGVtSWRlbnRpZmllcjsKIH0KIAogc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW9uQWN0aW9u
RGF0YT4gTmF2aWdhdGlvbkFjdGlvbkRhdGE6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIp
CkBAIC0xMTMsOSArMTE0LDE0IEBAIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGlvbkFjdGlvbkRhdGE+
IE5hdmlnYXRpb25BY3Rpb25EYXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkCiAgICAgaWYgKCFv
cGVuZXIpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKKyAgICBzdGQ6Om9wdGlvbmFs
PHN0ZDo6b3B0aW9uYWw8QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllcj4+IHRhcmdldEJhY2tGb3J3
YXJkSXRlbUlkZW50aWZpZXI7CisgICAgZGVjb2RlciA+PiB0YXJnZXRCYWNrRm9yd2FyZEl0ZW1J
ZGVudGlmaWVyOworICAgIGlmICghdGFyZ2V0QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllcikKKyAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgCiAgICAgcmV0dXJuIHt7IFdURk1v
dmUobmF2aWdhdGlvblR5cGUpLCBXVEZNb3ZlKG1vZGlmaWVycyksIFdURk1vdmUobW91c2VCdXR0
b24pLCBXVEZNb3ZlKHN5bnRoZXRpY0NsaWNrVHlwZSksIFdURk1vdmUoKnVzZXJHZXN0dXJlVG9r
ZW5JZGVudGlmaWVyKSwKICAgICAgICAgV1RGTW92ZSgqY2FuSGFuZGxlUmVxdWVzdCksIFdURk1v
dmUoc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSksIFdURk1vdmUoKmRvd25sb2FkQXR0cmli
dXRlKSwgV1RGTW92ZShjbGlja0xvY2F0aW9uSW5Sb290Vmlld0Nvb3JkaW5hdGVzKSwKLSAgICAg
ICAgV1RGTW92ZSgqaXNSZWRpcmVjdCksICp0cmVhdEFzU2FtZU9yaWdpbk5hdmlnYXRpb24sICpp
c0Nyb3NzT3JpZ2luV2luZG93T3Blbk5hdmlnYXRpb24sIFdURk1vdmUoKm9wZW5lcikgfX07Cisg
ICAgICAgIFdURk1vdmUoKmlzUmVkaXJlY3QpLCAqdHJlYXRBc1NhbWVPcmlnaW5OYXZpZ2F0aW9u
LCAqaXNDcm9zc09yaWdpbldpbmRvd09wZW5OYXZpZ2F0aW9uLCBXVEZNb3ZlKCpvcGVuZXIpLCBX
VEZNb3ZlKCp0YXJnZXRCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyKSB9fTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXZpZ2F0
aW9uQWN0aW9uRGF0YS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTmF2aWdhdGlvbkFjdGlvbkRh
dGEuaAppbmRleCBjMjMxMzI3MTFmYmNhZjFjYTFlYjUwNDNjM2Y1ZDVhNzMwNDBkZjIzLi5iZjcz
OTgyZGQ3MTBiMTUwNzY2M2FkYTMwNTA1NzMxODg4M2ZlNDkyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL05hdmlnYXRpb25BY3Rpb25EYXRhLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEg
b25jZQogCiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0JhY2tGb3J3
YXJkSXRlbUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UG9pbnQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4KIApAQCAtNTMsNiArNTQsNyBAQCBz
dHJ1Y3QgTmF2aWdhdGlvbkFjdGlvbkRhdGEgewogICAgIGJvb2wgdHJlYXRBc1NhbWVPcmlnaW5O
YXZpZ2F0aW9uIHsgZmFsc2UgfTsKICAgICBib29sIGlzQ3Jvc3NPcmlnaW5XaW5kb3dPcGVuTmF2
aWdhdGlvbiB7IGZhbHNlIH07CiAgICAgc3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8dWludDY0X3Qs
IHVpbnQ2NF90Pj4gb3BlbmVyOworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6QmFja0Zvcndh
cmRJdGVtSWRlbnRpZmllcj4gdGFyZ2V0QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllcjsKIH07CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbi5oCmluZGV4IDFl
YTk0ZDZkOTI5ODhiNGNmYzhhYTlkZjliNDZjYjNjN2FhNjE3MTEuLjllNTkxNzcxMGU1OGMzODRj
YjU3YWVhZjI2ZjIxYWRhMTE5MzYzY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElOYXZpZ2F0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSU5hdmlnYXRpb24uaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNs
dWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3RJdGVtLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJl
cXVlc3QuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CkBAIC0zNSw3ICszNiw2IEBAIGVudW0gY2xh
c3MgRnJhbWVMb2FkVHlwZTsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7Ci1jbGFzcyBXZWJCYWNr
Rm9yd2FyZExpc3RJdGVtOwogY2xhc3MgV2ViTmF2aWdhdGlvblN0YXRlOwogfQogCkBAIC03MSw2
ICs3MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEN1cnJlbnRSZXF1ZXN0SXNSZWRpcmVjdChi
b29sIGlzUmVkaXJlY3QpIHsgbV9pc1JlZGlyZWN0ID0gaXNSZWRpcmVjdDsgfQogICAgIGJvb2wg
Y3VycmVudFJlcXVlc3RJc1JlZGlyZWN0KCkgY29uc3QgeyByZXR1cm4gbV9pc1JlZGlyZWN0OyB9
CiAKKyAgICB2b2lkIHNldFRhcmdldEl0ZW0oV2ViS2l0OjpXZWJCYWNrRm9yd2FyZExpc3RJdGVt
JiBpdGVtKSB7IG1fdGFyZ2V0SXRlbSA9ICZpdGVtOyB9CiAgICAgV2ViS2l0OjpXZWJCYWNrRm9y
d2FyZExpc3RJdGVtKiB0YXJnZXRJdGVtKCkgY29uc3QgeyByZXR1cm4gbV90YXJnZXRJdGVtLmdl
dCgpOyB9CiAgICAgV2ViS2l0OjpXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiBmcm9tSXRlbSgpIGNv
bnN0IHsgcmV0dXJuIG1fZnJvbUl0ZW0uZ2V0KCk7IH0KICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OkZyYW1lTG9hZFR5cGU+IGJhY2tGb3J3YXJkRnJhbWVMb2FkVHlwZSgpIGNvbnN0IHsgcmV0
dXJuIG1fYmFja0ZvcndhcmRGcmFtZUxvYWRUeXBlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uLmgKaW5kZXggNDI0ZTRmNDBlMGM3ZWJmNGQxZmU0NDE3NjI2ODEyYjU4NDg3YWQ1MC4uN2Vh
NmQ3MDBmOTMwZWZiNWFlODJlODQ5NDQ1NzZkYzI4YTNlMWNhNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24uaApAQCAtNjEsNiArNjEsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4
KDEwLjEwKSwgaW9zKDguMCkpCiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhbHdheXNLZWVw
QW5kUmV1c2VTd2FwcGVkUHJvY2Vzc2VzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgcHJvY2Vz
c1N3YXBzT25XaW5kb3dPcGVuV2l0aE9wZW5lciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHRy
YWNrTmV0d29ya0FjdGl2aXR5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgcGFnZUNhY2hlRW5h
YmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbQppbmRleCA1YjY5YjYx
OWEzYzNjOTQ1NWE3N2M1MDIxMDAzOGZjYTIwN2M0ODUwLi41NTQxNjY0NWVjOWQ4ZTExZDNmYjRk
ZmM2ZWIxNzI3ZmI4ZDdlMGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0KQEAg
LTI2Nyw2ICsyNjcsMTkgQEAgLSAodm9pZClzZXRUcmFja05ldHdvcmtBY3Rpdml0eTooQk9PTCl0
cmFjawogICAgIF9wcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24tPnNldFRyYWNrTmV0d29ya0FjdGl2
aXR5KHRyYWNrKTsKIH0KIAorLSAoQk9PTClwYWdlQ2FjaGVFbmFibGVkCit7CisgICAgcmV0dXJu
IF9wcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24tPmNhY2hlTW9kZWwoKSAhPSBXZWJLaXQ6OkNhY2hl
TW9kZWxEb2N1bWVudFZpZXdlcjsKK30KKworLSAodm9pZClzZXRQYWdlQ2FjaGVFbmFibGVkOihC
T09MKWVuYWJsZWQKK3sKKyAgICBpZiAoIWVuYWJsZWQpCisgICAgICAgIF9wcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24tPnNldENhY2hlTW9kZWwoV2ViS2l0OjpDYWNoZU1vZGVsRG9jdW1lbnRWaWV3
ZXIpOworICAgIGVsc2UgaWYgKCFbc2VsZiBwYWdlQ2FjaGVFbmFibGVkXSkKKyAgICAgICAgX3By
b2Nlc3NQb29sQ29uZmlndXJhdGlvbi0+c2V0Q2FjaGVNb2RlbChXZWJLaXQ6OkNhY2hlTW9kZWxQ
cmltYXJ5V2ViQnJvd3Nlcik7Cit9CisKICNpZiBQTEFURk9STShJT1MpCiAtIChOU1N0cmluZyAq
KUNURGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKaW5kZXggZDdkZjRjZjgxNjY5ZDIzZWM3MGY4OWYxYTRlODdkNGZhNDA5
MmFhZi4uYTY3YmEwOGVlYmU0OWVmMjFhNGEwOTU3ODFjOTRlODRmYjcxY2QyZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yNDIzLDcgKzI0MjMsNyBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6cmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihQb2xpY3lBY3Rpb24gYWN0
aW9uLCBXZWJGcmFtZVByb3h5JiBmcgogICAgICAgICAgICAgYXV0byBwcm9wb3NlZFByb2Nlc3Mg
PSBwcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5wcm9jZXNzRm9yTmF2aWdhdGlvbigqdGhpcywgKm5h
dmlnYXRpb24sIGFjdGlvbik7CiAKICAgICAgICAgICAgIGlmIChwcm9wb3NlZFByb2Nlc3MucHRy
KCkgIT0gJnByb2Nlc3MoKSkgewotICAgICAgICAgICAgICAgIExPRyhQcm9jZXNzU3dhcHBpbmcs
ICJTd2l0Y2hpbmcgZnJvbSBwcm9jZXNzICVpIHRvIG5ldyBwcm9jZXNzIGZvciBuYXZpZ2F0aW9u
ICUiIFBSSXU2NCAiICclcyciLCBwcm9jZXNzSWRlbnRpZmllcigpLCBuYXZpZ2F0aW9uLT5uYXZp
Z2F0aW9uSUQoKSwgbmF2aWdhdGlvbi0+bG9nZ2luZ1N0cmluZygpKTsKKyAgICAgICAgICAgICAg
ICBMT0coUHJvY2Vzc1N3YXBwaW5nLCAiKFByb2Nlc3NTd2FwcGluZykgU3dpdGNoaW5nIGZyb20g
cHJvY2VzcyAlaSB0byBuZXcgcHJvY2VzcyAoJWkpIGZvciBuYXZpZ2F0aW9uICUiIFBSSXU2NCAi
ICclcyciLCBwcm9jZXNzSWRlbnRpZmllcigpLCBwcm9wb3NlZFByb2Nlc3MtPnByb2Nlc3NJZGVu
dGlmaWVyKCksIG5hdmlnYXRpb24tPm5hdmlnYXRpb25JRCgpLCBuYXZpZ2F0aW9uLT5sb2dnaW5n
U3RyaW5nKCkpOwogCiAgICAgICAgICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt0
aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG5hdmlnYXRpb24gPSBtYWtlUmVm
KCpuYXZpZ2F0aW9uKSwgcHJvcG9zZWRQcm9jZXNzID0gV1RGTW92ZShwcm9wb3NlZFByb2Nlc3Mp
XSgpIG11dGFibGUgewogICAgICAgICAgICAgICAgICAgICBjb250aW51ZU5hdmlnYXRpb25Jbk5l
d1Byb2Nlc3MobmF2aWdhdGlvbi5nZXQoKSwgV1RGTW92ZShwcm9wb3NlZFByb2Nlc3MpKTsKQEAg
LTM5NjQsOCArMzk2NCwyMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cgogICAgIE1FU1NBR0Vf
Q0hFQ0soZnJhbWUpOwogICAgIE1FU1NBR0VfQ0hFQ0tfVVJMKHJlcXVlc3QudXJsKCkpOwogICAg
IE1FU1NBR0VfQ0hFQ0tfVVJMKG9yaWdpbmFsUmVxdWVzdC51cmwoKSk7Ci0gICAgCi0gICAgUmVm
PEFQSTo6TmF2aWdhdGlvbj4gbmF2aWdhdGlvbiA9IG5hdmlnYXRpb25JRCA/IG1ha2VSZWYobV9u
YXZpZ2F0aW9uU3RhdGUtPm5hdmlnYXRpb24obmF2aWdhdGlvbklEKSkgOiBtX25hdmlnYXRpb25T
dGF0ZS0+Y3JlYXRlTG9hZFJlcXVlc3ROYXZpZ2F0aW9uKFJlc291cmNlUmVxdWVzdChyZXF1ZXN0
KSwgbV9iYWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJdGVtKCkpOworCisgICAgUmVmUHRyPEFQSTo6
TmF2aWdhdGlvbj4gbmF2aWdhdGlvbjsKKyAgICBpZiAobmF2aWdhdGlvbklEKQorICAgICAgICBu
YXZpZ2F0aW9uID0gbWFrZVJlZihtX25hdmlnYXRpb25TdGF0ZS0+bmF2aWdhdGlvbihuYXZpZ2F0
aW9uSUQpKTsKKworICAgIGlmIChhdXRvIHRhcmdldEJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIg
PSBuYXZpZ2F0aW9uQWN0aW9uRGF0YS50YXJnZXRCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyKSB7
CisgICAgICAgIGlmIChhdXRvKiBpdGVtID0gbV9iYWNrRm9yd2FyZExpc3QtPml0ZW1Gb3JJRCgq
bmF2aWdhdGlvbkFjdGlvbkRhdGEudGFyZ2V0QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllcikpIHsK
KyAgICAgICAgICAgIGlmICghbmF2aWdhdGlvbikKKyAgICAgICAgICAgICAgICBuYXZpZ2F0aW9u
ID0gbV9uYXZpZ2F0aW9uU3RhdGUtPmNyZWF0ZUJhY2tGb3J3YXJkTmF2aWdhdGlvbigqaXRlbSwg
bV9iYWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJdGVtKCksIEZyYW1lTG9hZFR5cGU6OkluZGV4ZWRC
YWNrRm9yd2FyZCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbmF2aWdhdGlv
bi0+c2V0VGFyZ2V0SXRlbSgqaXRlbSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoIW5h
dmlnYXRpb24pCisgICAgICAgIG5hdmlnYXRpb24gPSBtX25hdmlnYXRpb25TdGF0ZS0+Y3JlYXRl
TG9hZFJlcXVlc3ROYXZpZ2F0aW9uKFJlc291cmNlUmVxdWVzdChyZXF1ZXN0KSwgbV9iYWNrRm9y
d2FyZExpc3QtPmN1cnJlbnRJdGVtKCkpOwogCiAgICAgdWludDY0X3QgbmV3TmF2aWdhdGlvbklE
ID0gbmF2aWdhdGlvbi0+bmF2aWdhdGlvbklEKCk7CiAgICAgbmF2aWdhdGlvbi0+c2V0V2FzVXNl
ckluaXRpYXRlZCghIW5hdmlnYXRpb25BY3Rpb25EYXRhLnVzZXJHZXN0dXJlVG9rZW5JZGVudGlm
aWVyKTsKQEAgLTM5NzcsNyArMzk5MSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyCiAgICAg
bmF2aWdhdGlvbi0+c2V0T3BlbmVyKG5hdmlnYXRpb25BY3Rpb25EYXRhLm9wZW5lcik7CiAKICAg
ICBhdXRvIGxpc3RlbmVyID0gbWFrZVJlZihmcmFtZS0+c2V0VXBQb2xpY3lMaXN0ZW5lclByb3h5
KGxpc3RlbmVySUQsIFBvbGljeUxpc3RlbmVyVHlwZTo6TmF2aWdhdGlvbkFjdGlvbikpOwotICAg
IGxpc3RlbmVyLT5zZXROYXZpZ2F0aW9uKFdURk1vdmUobmF2aWdhdGlvbikpOworICAgIGxpc3Rl
bmVyLT5zZXROYXZpZ2F0aW9uKG5hdmlnYXRpb24ucmVsZWFzZU5vbk51bGwoKSk7CiAKICNpZiBF
TkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCiAgICAgaWYgKGZyYW1lLT5kaWRIYW5kbGVDb250ZW50
RmlsdGVyVW5ibG9ja05hdmlnYXRpb24ocmVxdWVzdCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggMTFjYzhiZDVjMmNlYWY1MTMyYzFiZmE0OThlOGZh
OTEyOWU2MjBiMy4uZWJkZDA0NTcwNjA5ZjMzMzEyMTcyMWQxNmY3NDY2ZjljNTIzZTc5ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtNTksNiArNTks
OCBAQAogI2luY2x1ZGUgIlVJR2FtZXBhZFByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV0tDb250ZXh0
UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9uLmgiCisjaW5jbHVkZSAi
V2ViQmFja0ZvcndhcmRMaXN0LmgiCisjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5o
IgogI2luY2x1ZGUgIldlYkNlcnRpZmljYXRlSW5mby5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRT
dXBwbGVtZW50LmgiCiAjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlclByb3h5LmgiCkBAIC0yMTA2
LDYgKzIxMDgsMTUgQEAgUmVmPFdlYlByb2Nlc3NQcm94eT4gV2ViUHJvY2Vzc1Bvb2w6OnByb2Nl
c3NGb3JOYXZpZ2F0aW9uSW50ZXJuYWwoV2ViUGFnZVByb3h5JgogICAgICAgICAgICAgYWN0aW9u
ID0gUG9saWN5QWN0aW9uOjpTdXNwZW5kOwogICAgICAgICAgICAgcmV0dXJuICpzdXNwZW5kZWRQ
YWdlLT5wcm9jZXNzKCk7CiAgICAgICAgIH0KKworICAgICAgICAvLyBJZiB0aGUgdGFyZ2V0IGJh
Y2svZm9yd2FyZCBpdGVtIGFuZCB0aGUgY3VycmVudCBiYWNrL2ZvcndhcmQgaXRlbSBvcmlnaW5h
dGVkCisgICAgICAgIC8vIGluIHRoZSBzYW1lIFdlYlByb2Nlc3MgdGhlbiB3ZSBzaG91bGQgcmV1
c2UgdGhlIGN1cnJlbnQgV2ViUHJvY2Vzcy4KKyAgICAgICAgaWYgKGF1dG8qIGN1cnJlbnRJdGVt
ID0gcGFnZS5iYWNrRm9yd2FyZExpc3QoKS5jdXJyZW50SXRlbSgpKSB7CisgICAgICAgICAgICBp
ZiAoY3VycmVudEl0ZW0tPml0ZW1JRCgpLnByb2Nlc3NJZGVudGlmaWVyID09IGJhY2tGb3J3YXJk
TGlzdEl0ZW0tPml0ZW1JRCgpLnByb2Nlc3NJZGVudGlmaWVyKSB7CisgICAgICAgICAgICAgICAg
YWN0aW9uID0gUG9saWN5QWN0aW9uOjpTdXNwZW5kOworICAgICAgICAgICAgICAgIHJldHVybiBw
YWdlLnByb2Nlc3MoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgIH0KIAogICAgIGlm
IChuYXZpZ2F0aW9uLnRyZWF0QXNTYW1lT3JpZ2luTmF2aWdhdGlvbigpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5jcHAKaW5kZXggMzM4YjY5OTE0YTg0NTFiYzg0YmRhNzZhMmVlOWYwZWMz
NGNlMjI4YS4uZDBmZTkxOGZiMmI3Zjg5NjA1MDYyNmFhYWZhMDg5ZmFlNmU5N2JjYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC04NjcsNiArODY3LDcgQEAgdm9pZCBXZWJG
cmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
KGNvbnN0IE5hdmlnYXQKICAgICBuYXZpZ2F0aW9uQWN0aW9uRGF0YS50cmVhdEFzU2FtZU9yaWdp
bk5hdmlnYXRpb24gPSBuYXZpZ2F0aW9uQWN0aW9uLnRyZWF0QXNTYW1lT3JpZ2luTmF2aWdhdGlv
bigpOwogICAgIG5hdmlnYXRpb25BY3Rpb25EYXRhLmlzQ3Jvc3NPcmlnaW5XaW5kb3dPcGVuTmF2
aWdhdGlvbiA9IG5hdmlnYXRpb25BY3Rpb24uaXNDcm9zc09yaWdpbldpbmRvd09wZW5OYXZpZ2F0
aW9uKCk7CiAgICAgbmF2aWdhdGlvbkFjdGlvbkRhdGEub3BlbmVyID0gbmF2aWdhdGlvbkFjdGlv
bi5vcGVuZXIoKTsKKyAgICBuYXZpZ2F0aW9uQWN0aW9uRGF0YS50YXJnZXRCYWNrRm9yd2FyZEl0
ZW1JZGVudGlmaWVyID0gbmF2aWdhdGlvbkFjdGlvbi50YXJnZXRCYWNrRm9yd2FyZEl0ZW1JZGVu
dGlmaWVyKCk7CiAKICAgICBXZWJDb3JlOjpGcmFtZSogY29yZUZyYW1lID0gbV9mcmFtZS0+Y29y
ZUZyYW1lKCk7CiAgICAgaWYgKCFjb3JlRnJhbWUpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYWRjOGNmZWQyNDAyMzM5ZWJlMzA1YTU3NTZjNzlm
ODBjNmY3MjA2ZC4uNWJkYWQyMzhiYjI0YmUwMzdlZGZkYmU5OTllZjgxY2EzMWM3MDIzMiAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEyIEBACisyMDE4LTA1LTEwICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKwor
ICAgICAgICBNYWtlIHN1cmUgaGlzdG9yeSBuYXZpZ2F0aW9ucyByZXVzZSB0aGUgZXhpc3Rpbmcg
cHJvY2VzcyB3aGVuIG5lY2Vzc2FyeS4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM5NzQ2NTE2
PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTUzMgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbToKKwogMjAx
OC0wNS0xMCAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgRml4IHNvbWUgLVdzdHJpbmctb3AtdHJ1bmNhdGlvbiB3YXJuaW5ncwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2
aWdhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vz
c1N3YXBPbk5hdmlnYXRpb24ubW0KaW5kZXggNWRiNmI4NTU2OGNlYWQwNWZhYTc5OWEzNDViOTQw
YjMzNTA4M2Y0NC4uZGQ1OTA1MjRmZmU4OTA4MzY5MmJmM2I0YjMyYTA4NDA3N2JjYzkzYyAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dh
cE9uTmF2aWdhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCkBAIC01NCw2ICs1NCwxMCBAQAogCiAjaWYg
V0tfQVBJX0VOQUJMRUQKIAorQGludGVyZmFjZSBXS1Byb2Nlc3NQb29sICgpCistIChXS0NvbnRl
eHRSZWYpX2NvbnRleHRGb3JUZXN0aW5nOworQGVuZAorCiBzdGF0aWMgYm9vbCBkb25lOwogc3Rh
dGljIGJvb2wgZmFpbGVkOwogc3RhdGljIGJvb2wgZGlkQ3JlYXRlV2ViVmlldzsKQEAgLTEzODIs
NCArMTM4Niw1MiBAQCBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0ZVRvSW52YWxpZFVSTCkKICAg
ICBFWFBFQ1RfRVEocGlkMSwgcGlkMik7CiB9CiAKK3N0YXRpYyBjb25zdCBjaGFyKiBuYXZpZ2F0
ZVRvRGF0YVVSTFRoZW5CYWNrQnl0ZXMgPSBSIlBTT05SRVNPVVJDRSgKKzxzY3JpcHQ+CitvbnBh
Z2VzaG93ID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAvLyBMb2NhdGlvbiBjaGFuZ2VzIG5lZWQg
dG8gaGFwcGVuIG91dHNpZGUgdGhlIG9ubG9hZCBoYW5kbGVyIHRvIGdlbmVyYXRlIGhpc3Rvcnkg
ZW50cmllcy4KKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgd2luZG93LmxvY2F0
aW9uLmhyZWYgPSAiZGF0YTp0ZXh0L2h0bWwsPGJvZHkgb25sb2FkPSdoaXN0b3J5LmJhY2soKSc+
PC9ib2R5PiI7CisgICAgfSwgMCk7Cit9CisKKzwvc2NyaXB0PgorKVBTT05SRVNPVVJDRSI7CisK
K1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRlVG9EYXRhVVJMVGhlbkJhY2spCit7CisgICAgYXV0
byBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbX1dLUHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmdl
dCgpLnByb2Nlc3NTd2Fwc09uTmF2aWdhdGlvbiA9IFlFUzsKKyAgICBwcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24uZ2V0KCkucGFnZUNhY2hlRW5hYmxlZCA9IE5POworICAgIGF1dG8gcHJvY2Vzc1Bv
b2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlv
bjpwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKworICAgIGF1dG8gd2ViVmlld0Nv
bmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5p
dF0pOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDpwcm9jZXNzUG9v
bC5nZXQoKV07CisgICAgUmV0YWluUHRyPFBTT05TY2hlbWU+IGhhbmRsZXIgPSBhZG9wdE5TKFtb
UFNPTlNjaGVtZSBhbGxvY10gaW5pdFdpdGhCeXRlczpuYXZpZ2F0ZVRvRGF0YVVSTFRoZW5CYWNr
Qnl0ZXNdKTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpo
YW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIlBTT04iXTsKKworICAgIGF1dG8gd2ViVmlldyA9
IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAw
LCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjp3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKV0pOwor
ICAgIGF1dG8gbmF2aWdhdGlvbkRlbGVnYXRlID0gYWRvcHROUyhbW1BTT05OYXZpZ2F0aW9uRGVs
ZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6
bmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpXTsKKworICAgIG51bWJlck9mRGVjaWRlUG9saWN5Q2Fs
bHMgPSAwOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdp
dGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vaG9zdC9tYWluMS5odG1sIl1dXTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsK
KyAgICBhdXRvIHBpZDEgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOworCisgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7CisgICAg
YXV0byBwaWQyID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKworICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworICAgIGF1dG8g
cGlkMyA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisKKyAgICBFWFBFQ1RfRVEo
MywgbnVtYmVyT2ZEZWNpZGVQb2xpY3lDYWxscyk7CisgICAgRVhQRUNUX0VRKDF1LCBzZWVuUElE
cy5zaXplKCkpOworICAgIEVYUEVDVF9FUShwaWQxLCBwaWQyKTsKKyAgICBFWFBFQ1RfRVEocGlk
MiwgcGlkMyk7Cit9CisKICNlbmRpZiAvLyBXS19BUElfRU5BQkxFRAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>340224</attachid>
            <date>2018-05-11 14:50:31 -0700</date>
            <delta_ts>2018-05-11 15:30:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185532-20180511145030.patch</filename>
            <type>text/plain</type>
            <size>1769</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxNzEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDViNTcxYWY4MDNiZGYyNTY3
ZGFkYTQyMjUxZjIxMWNiNTZiODMwMmIuLjU2NmM2MDAxOWI5MThhNDg2MGExYmZmYTNhN2Q5MGI3
MDEzZjE2MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTgtMDUtMTEgIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIEZvbGxvd3VwIHRvOiBNYWtlIHN1
cmUgaGlzdG9yeSBuYXZpZ2F0aW9ucyByZXVzZSB0aGUgZXhpc3RpbmcgcHJvY2VzcyB3aGVuIG5l
Y2Vzc2FyeS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4NTUzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Bvb2w6OnByb2Nlc3NGb3JOYXZpZ2F0aW9uSW50ZXJuYWwpOiBXaGVuIHJlLXVzaW5nIHRo
ZSBzYW1lIHByb2Nlc3MsCisgICAgICAgICAgZG9uJ3QgY2hhbmdlIHRoZSBwb2xpY3kgYWN0aW9u
LgorCiAyMDE4LTA1LTExICBDaGFybGVzIFZhemFjICA8Y3ZhemFjQGdtYWlsLmNvbT4KIAogICAg
ICAgICBSdW50aW1lIGZlYXR1cmUgZmxhZyBmb3IgU2VydmVyLVRpbWluZwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IGViZGQwNDU3MDYwOWYzMzMxMjE3
MjFkMTZmNzQ2NmY5YzUyM2U3OWUuLmE3M2NlY2Q2NTE0Yzk2ZWUxM2I2YzFjNWUxZGM1MzdlYzgx
ZjNjZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAg
LTIxMTIsMTAgKzIxMTIsOCBAQCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiBXZWJQcm9jZXNzUG9vbDo6
cHJvY2Vzc0Zvck5hdmlnYXRpb25JbnRlcm5hbChXZWJQYWdlUHJveHkmCiAgICAgICAgIC8vIElm
IHRoZSB0YXJnZXQgYmFjay9mb3J3YXJkIGl0ZW0gYW5kIHRoZSBjdXJyZW50IGJhY2svZm9yd2Fy
ZCBpdGVtIG9yaWdpbmF0ZWQKICAgICAgICAgLy8gaW4gdGhlIHNhbWUgV2ViUHJvY2VzcyB0aGVu
IHdlIHNob3VsZCByZXVzZSB0aGUgY3VycmVudCBXZWJQcm9jZXNzLgogICAgICAgICBpZiAoYXV0
byogY3VycmVudEl0ZW0gPSBwYWdlLmJhY2tGb3J3YXJkTGlzdCgpLmN1cnJlbnRJdGVtKCkpIHsK
LSAgICAgICAgICAgIGlmIChjdXJyZW50SXRlbS0+aXRlbUlEKCkucHJvY2Vzc0lkZW50aWZpZXIg
PT0gYmFja0ZvcndhcmRMaXN0SXRlbS0+aXRlbUlEKCkucHJvY2Vzc0lkZW50aWZpZXIpIHsKLSAg
ICAgICAgICAgICAgICBhY3Rpb24gPSBQb2xpY3lBY3Rpb246OlN1c3BlbmQ7CisgICAgICAgICAg
ICBpZiAoY3VycmVudEl0ZW0tPml0ZW1JRCgpLnByb2Nlc3NJZGVudGlmaWVyID09IGJhY2tGb3J3
YXJkTGlzdEl0ZW0tPml0ZW1JRCgpLnByb2Nlc3NJZGVudGlmaWVyKQogICAgICAgICAgICAgICAg
IHJldHVybiBwYWdlLnByb2Nlc3MoKTsKLSAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0K
IAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>