<?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>191762</bug_id>
          
          <creation_ts>2018-11-16 11:48:41 -0800</creation_ts>
          <short_desc>EXC_BAD_ACCESS when invoking a DownloadProxy&apos;s destination decision handler after the download has been canceled</short_desc>
          <delta_ts>2018-11-26 09:22:24 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Quesada">david_quesada</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1479533</commentid>
    <comment_count>0</comment_count>
      <attachid>355089</attachid>
    <who name="David Quesada">david_quesada</who>
    <bug_when>2018-11-16 11:48:41 -0800</bug_when>
    <thetext>Created attachment 355089
Test case

If a DownloadProxy is invalidated while the DownloadClient is deciding the destination, then the app will crash when the decision handler is called. The troublesome line of code is in DownloadProxy::decideDestinationWithSuggestedFilenameAsync:

    if (auto* networkProcess = m_processPool-&gt;networkProcess())

m_processPool is null (due to the DownloadProxyMap invalidating the proxy when the download is canceled), so you get an invalid memory access trying to get the process pool&apos;s m_networkProcess.

So if you get unlucky and the UI process gets notified that the download has been canceled while the destination decision handler is still outstanding, you have three terrible options:
- Call the decision handler and crash.
- Don&apos;t call the decision handler, and crash due to CompletionHandlerCallChecker getting upset.
- Strategically deallocate the handler block and @try/@catch the resulting exception to stay alive.

The code in decideDestinationWithSuggestedFilenameAsync()&apos;s handler should check that m_processPool in non-null before trying to access its network process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1479941</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-11-17 12:22:36 -0800</bug_when>
    <thetext>&lt;rdar://problem/46151509&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1480164</commentid>
    <comment_count>2</comment_count>
      <attachid>355258</attachid>
    <who name="David Quesada">david_quesada</who>
    <bug_when>2018-11-19 00:48:25 -0800</bug_when>
    <thetext>Created attachment 355258
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1480303</commentid>
    <comment_count>3</comment_count>
      <attachid>355258</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-19 14:52:49 -0800</bug_when>
    <thetext>Comment on attachment 355258
Patch

Clearing flags on attachment: 355258

Committed r238381: &lt;https://trac.webkit.org/changeset/238381&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1480304</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-19 14:52:50 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481541</commentid>
    <comment_count>5</comment_count>
      <attachid>355258</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-11-26 09:22:24 -0800</bug_when>
    <thetext>Comment on attachment 355258
Patch

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

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/Download.mm:30
&gt; +#if PLATFORM(MAC) || PLATFORM(IOS)

Let&apos;s just remove this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>355089</attachid>
            <date>2018-11-16 11:48:41 -0800</date>
            <delta_ts>2018-11-16 11:48:41 -0800</delta_ts>
            <desc>Test case</desc>
            <filename>DownloadCrashExample.m</filename>
            <type>text/x-objcsrc</type>
            <size>1321</size>
            <attacher name="David Quesada">david_quesada</attacher>
            
              <data encoding="base64">I2ltcG9ydCAiVmlld0NvbnRyb2xsZXIuaCIKCiNpbXBvcnQgPFdlYktpdC9XZWJLaXQuaD4KI2lt
cG9ydCA8V2ViS2l0L1dLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5oPgojaW1wb3J0IDxXZWJL
aXQvV0tQcm9jZXNzUG9vbFByaXZhdGUuaD4KI2ltcG9ydCA8V2ViS2l0L19XS0Rvd25sb2FkLmg+
CiNpbXBvcnQgPFdlYktpdC9fV0tEb3dubG9hZERlbGVnYXRlLmg+CgpAaW50ZXJmYWNlIFZpZXdD
b250cm9sbGVyICgpIDxXS05hdmlnYXRpb25EZWxlZ2F0ZSwgX1dLRG93bmxvYWREZWxlZ2F0ZT4K
CkBlbmQKCkBpbXBsZW1lbnRhdGlvbiBWaWV3Q29udHJvbGxlciB7CiAgICBXS1dlYlZpZXcgKl93
ZWJWaWV3Owp9CgotICh2b2lkKXZpZXdEaWRMb2FkCnsKICAgIFtzdXBlciB2aWV3RGlkTG9hZF07
CgogICAgX3dlYlZpZXcgPSBbW1dLV2ViVmlldyBhbGxvY10gaW5pdF07CiAgICBfd2ViVmlldy5j
b25maWd1cmF0aW9uLnByb2Nlc3NQb29sLl9kb3dubG9hZERlbGVnYXRlID0gc2VsZjsKICAgIF93
ZWJWaWV3Lm5hdmlnYXRpb25EZWxlZ2F0ZSA9IHNlbGY7CgogICAgW3NlbGYudmlldyBhZGRTdWJ2
aWV3Ol93ZWJWaWV3XTsKCiAgICBbX3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCBy
ZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHBzOi8vd2Via2l0Lm9yZyJd
XV07Cn0KCi0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0aW9u
IGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5KSlkZWNp
c2lvbkhhbmRsZXIKewogICAgZGVjaXNpb25IYW5kbGVyKF9XS05hdmlnYXRpb25BY3Rpb25Qb2xp
Y3lEb3dubG9hZCk7Cn0KCi0gKHZvaWQpX2Rvd25sb2FkOihfV0tEb3dubG9hZCAqKWRvd25sb2Fk
IGRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lOihOU1N0cmluZyAqKWZpbGVu
YW1lIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShCT09MIGFsbG93T3ZlcndyaXRlLCBOU1N0
cmluZyAqZGVzdGluYXRpb24pKWNvbXBsZXRpb25IYW5kbGVyCnsKICAgIFtkb3dubG9hZCBjYW5j
ZWxdOwogICAgZGlzcGF0Y2hfYWZ0ZXIoZGlzcGF0Y2hfdGltZShESVNQQVRDSF9USU1FX05PVywg
KGludDY0X3QpKC41ICogTlNFQ19QRVJfU0VDKSksIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCks
IF57CiAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoTk8sIEAiL2hlbGxvL3dvcmxkIik7CiAgICB9
KTsKfQoKQGVuZA==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355258</attachid>
            <date>2018-11-19 00:48:25 -0800</date>
            <delta_ts>2018-11-19 14:52:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>file_191762.txt</filename>
            <type>text/plain</type>
            <size>15062</size>
            <attacher name="David Quesada">david_quesada</attacher>
            
              <data encoding="base64">Y29tbWl0IDliMTkxZGJlY2I0ZjRjY2VkM2I3YzRlYmUwYmRkOGNhMGJhY2Q5ZGQNCkF1dGhvcjog
RGF2aWQgUXVlc2FkYSA8ZGF2aWRfcXVlc2FkYUBhcHBsZS5jb20+DQpEYXRlOiAgIE1vbiBOb3Yg
MTkgMDM6Mzc6MzAgMjAxOCAtMDUwMA0KDQogICAgRVhDX0JBRF9BQ0NFU1Mgd2hlbiBpbnZva2lu
ZyBhIERvd25sb2FkUHJveHkncyBkZXN0aW5hdGlvbiBkZWNpc2lvbiBoYW5kbGVyIGFmdGVyIHRo
ZSBkb3dubG9hZCBoYXMgYmVlbiBjYW5jZWxlZA0KICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTE3NjINCiAgICByZGFyOi8vcHJvYmxlbS80NjE1MTUwOQ0KICAg
IA0KICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KICAgIA0KICAgIFNvdXJjZS9XZWJL
aXQ6DQogICAgDQogICAgV2hlbiB0aGUgRG93bmxvYWRDbGllbnQgY2FsbHMgdGhlIGRlY2lzaW9u
IGhhbmRsZXIgd2l0aCBhIGRlc3RpbmF0aW9uIHBhdGgsIGNoZWNrIGlmDQogICAgbV9wcm9jZXNz
UG9vbCBpcyBudWxsIGJlZm9yZSB0cnlpbmcgdG8gYWNjZXNzIGl0cyBuZXR3b3JrIHByb2Nlc3Mu
IFRoaXMgY2FuIGhhcHBlbg0KICAgIGlmIGEgZG93bmxvYWQgaXMgY2FuY2VsZWQgYmVmb3JlIHRo
ZSBjbGllbnQgZGVjaWRlcyBpdHMgZGVzdGluYXRpb24uDQogICAgDQogICAgKiBVSVByb2Nlc3Mv
RG93bmxvYWRzL0Rvd25sb2FkUHJveHkuY3BwOg0KICAgIChXZWJLaXQ6OkRvd25sb2FkUHJveHk6
OmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lQXN5bmMpOg0KICAgIA0KICAg
IFRvb2xzOg0KICAgIA0KICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb3du
bG9hZC5tbToNCiAgICAgICAgRW5hYmxlIHRoZSBEb3dubG9hZCBBUEkgdGVzdCBvbiBpT1MsIHNp
bmNlIHRoZSBwbGF0Zm9ybSBzdXBwb3J0cyBkb3dubG9hZHMuIEFsbCB0aGUNCiAgICAgICAgdGVz
dHMgcGFzcyBhbHJlYWR5LCBleGNlcHQgZm9yIG9uZSB3aGljaCB3YXMgd3JpdHRlbiB1c2luZyBB
cHBLaXQtc3BlY2lmaWMgY29kZToNCiAgICBURVNUKF9XS0Rvd25sb2FkLCBSZWRpcmVjdGVkRG93
bmxvYWQpOg0KICAgICAgICBVc2UgYSBtb3JlIHBsYXRmb3JtLWFnbm9zdGljIGFwcHJvYWNoIHRv
IHN0YXJ0aW5nIHRoZSBkb3dubG9hZCBpbiB0aGlzIEFQSSB0ZXN0Lg0KICAgICAgICBJbnN0ZWFk
IG9mIG1hbnVhbGx5IHRyaWdnZXJpbmcgYW4gTlNNZW51IGl0ZW0gdG8gZG93bmxvYWQgYSBmaWxl
IGZyb20gYSBsaW5rLCB0aGUNCiAgICAgICAgdGVzdCB3aWxsIHNpbXVsYXRlIGEgdXNlci1pbml0
aWF0ZWQgY2xpY2sgb24gdGhlIGxpbmssIGFuZCB0aGUgbmF2aWdhdGlvbiBkZWxlZ2F0ZQ0KICAg
ICAgICB3aWxsIGRpcmVjdCB0aGUgd2ViIHZpZXcgdG8gc3RhcnQgYSBkb3dubG9hZCBiYXNlZCBv
biB0aGUgbGluaydzIG5hdmlnYXRpb24gYWN0aW9uLg0KICAgICAgICBBZGRpdGlvbmFsbHksIHJl
bW92ZSB0aGUgbWFudWFsIGNyZWF0aW9uIG9mIGEgbmV3IE5TV2luZG93LiBUZXN0V0tXZWJWaWV3
IG1ha2VzIGl0cw0KICAgICAgICBvd24gVUkvTlNXaW5kb3cuDQogICAgVEVTVChfV0tEb3dubG9h
ZCwgRG93bmxvYWRDYW5jZWxlZFdoaWxlRGVjaWRpbmdEZXN0aW5hdGlvbik6DQogICAgICAgIEFk
ZCBhbiBBUEkgdGVzdCBfV0tEb3dubG9hZC5Eb3dubG9hZENhbmNlbGVkV2hpbGVEZWNpZGluZ0Rl
c3RpbmF0aW9uIHRvIHNpbXVsYXRlIHRoZQ0KICAgICAgICBjb25kaXRpb25zIHRoYXQgd291bGQg
dHJpZ2dlciB0aGlzIGNyYXNoIC0gaGFuZGxpbmcgYSBkb3dubG9hZCdzIC1kZWNpZGVEZXN0aW5h
dGlvbuKApg0KICAgICAgICBkZWxlZ2F0ZSBjYWxsIGJ5IGNhbmNlbGluZyB0aGUgZG93bmxvYWQs
IHdhaXRpbmcgZm9yIHRoZSBVSSBwcm9jZXNzIHRvIGJlIG5vdGlmaWVkDQogICAgICAgIHRoYXQg
dGhlIGRvd25sb2FkIGhhcyBiZWVuIGNhbmNlbGVkLCBhbmQgY2FsbGluZyB0aGUgZGVjaXNpb24g
aGFuZGxlci4gVGhpcyBzaG91bGQNCiAgICAgICAgbm90IGNyYXNoLg0KICAgICgtW0NhbmNlbERv
d25sb2FkV2hpbGVEZWNpZGluZ0Rlc3RpbmF0aW9uRGVsZWdhdGUgX2Rvd25sb2FkRGlkRmluaXNo
Ol0pOg0KICAgICgtW0NhbmNlbERvd25sb2FkV2hpbGVEZWNpZGluZ0Rlc3RpbmF0aW9uRGVsZWdh
dGUgX2Rvd25sb2FkOmRpZEZhaWxXaXRoRXJyb3I6XSk6DQogICAgKC1bQ2FuY2VsRG93bmxvYWRX
aGlsZURlY2lkaW5nRGVzdGluYXRpb25EZWxlZ2F0ZSBfZG93bmxvYWREaWRDYW5jZWw6XSk6DQog
ICAgKC1bQ2FuY2VsRG93bmxvYWRXaGlsZURlY2lkaW5nRGVzdGluYXRpb25EZWxlZ2F0ZSBfZG93
bmxvYWQ6ZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWU6Y29tcGxldGlvbkhh
bmRsZXI6XSk6DQogICAgKC1bVUlEb3dubG9hZEFzRmlsZVRlc3REZWxlZ2F0ZSBfd2ViVmlldzpj
b250ZXh0TWVudTpmb3JFbGVtZW50Ol0pOiBEZWxldGVkLg0KICAgICogVGVzdFdlYktpdEFQSS9j
b2NvYS9UZXN0V0tXZWJWaWV3Lmg6DQogICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dl
YlZpZXcubW06DQogICAgKC1bVGVzdFdLV2ViVmlldyBvYmplY3RCeUV2YWx1YXRpbmdKYXZhU2Ny
aXB0V2l0aFVzZXJHZXN0dXJlOl0pOg0KICAgICAgICBBZGQgYSB1c2VyLWluaXRhdGVkIHZlcnNp
b24gb2YgLW9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6LiBUaGlzIGlzIG5lZWRlZCBpbg0K
ICAgICAgICBvcmRlciB0byBtYWludGFpbiB0aGUgYmVoYXZpb3Igb2YgdGhlIFJlZGlyZWN0ZWRE
b3dubG9hZCB0ZXN0LCB3aGljaCB2ZXJpZmllcyB0aGUNCiAgICAgICAgc3RhdGUgb2YgdGhlIF9X
S0Rvd25sb2FkLndhc1VzZXJJbml0aWF0ZWQgcHJvcGVydHkuDQoNCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nDQppbmRleCAxNTY2
MTNhMjU2YS4uYjdiNTYzNTA4NGMgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zw0KKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTggQEANCisyMDE4
LTExLTE4ICBEYXZpZCBRdWVzYWRhICA8ZGF2aWRfcXVlc2FkYUBhcHBsZS5jb20+DQorDQorICAg
ICAgICBFWENfQkFEX0FDQ0VTUyB3aGVuIGludm9raW5nIGEgRG93bmxvYWRQcm94eSdzIGRlc3Rp
bmF0aW9uIGRlY2lzaW9uIGhhbmRsZXIgYWZ0ZXIgdGhlIGRvd25sb2FkIGhhcyBiZWVuIGNhbmNl
bGVkDQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkx
NzYyDQorICAgICAgICByZGFyOi8vcHJvYmxlbS80NjE1MTUwOQ0KKw0KKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuDQorDQorICAgICAgICBXaGVuIHRoZSBEb3dubG9hZENsaWVu
dCBjYWxscyB0aGUgZGVjaXNpb24gaGFuZGxlciB3aXRoIGEgZGVzdGluYXRpb24gcGF0aCwgY2hl
Y2sgaWYNCisgICAgICAgIG1fcHJvY2Vzc1Bvb2wgaXMgbnVsbCBiZWZvcmUgdHJ5aW5nIHRvIGFj
Y2VzcyBpdHMgbmV0d29yayBwcm9jZXNzLiBUaGlzIGNhbiBoYXBwZW4NCisgICAgICAgIGlmIGEg
ZG93bmxvYWQgaXMgY2FuY2VsZWQgYmVmb3JlIHRoZSBjbGllbnQgZGVjaWRlcyBpdHMgZGVzdGlu
YXRpb24uDQorDQorICAgICAgICAqIFVJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5j
cHA6DQorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZFByb3h5OjpkZWNpZGVEZXN0aW5hdGlvbldp
dGhTdWdnZXN0ZWRGaWxlbmFtZUFzeW5jKToNCisNCiAyMDE4LTExLTE4ICBZdXN1a2UgU3V6dWtp
ICA8eXVzdWtlc3V6dWtpQHNsb3dzdGFydC5vcmc+DQogDQogICAgICAgICBVc2UgQm94PEJpbmFy
eVNlbWFwaG9yZT4gaW5zdGVhZCBvZiBkaXNwYXRjaF9zZW1hcGhvcmVfdA0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmNwcA0KaW5kZXgg
MWEzMzIyMzhmYzkuLmVmYjExNDkzY2ZiIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuY3BwDQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5jcHANCkBAIC0xNzAsNiArMTcwLDkgQEAg
dm9pZCBEb3dubG9hZFByb3h5OjpkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFt
ZUFzeW5jKERvd25sb2FkSUQgZG93bmwNCiAgICAgICAgIGlmICghZGVzdGluYXRpb24uaXNOdWxs
KCkpDQogICAgICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlKGRlc3RpbmF0
aW9uLCBTYW5kYm94RXh0ZW5zaW9uOjpUeXBlOjpSZWFkV3JpdGUsIHNhbmRib3hFeHRlbnNpb25I
YW5kbGUpOw0KIA0KKyAgICAgICAgaWYgKCFtX3Byb2Nlc3NQb29sKQ0KKyAgICAgICAgICAgIHJl
dHVybjsNCisNCiAgICAgICAgIGlmIChhdXRvKiBuZXR3b3JrUHJvY2VzcyA9IG1fcHJvY2Vzc1Bv
b2wtPm5ldHdvcmtQcm9jZXNzKCkpDQogICAgICAgICAgICAgbmV0d29ya1Byb2Nlc3MtPnNlbmQo
TWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpDb250aW51ZURlY2lkZVBlbmRpbmdEb3dubG9hZERl
c3RpbmF0aW9uKGRvd25sb2FkSUQsIGRlc3RpbmF0aW9uLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxl
LCBhbGxvd092ZXJ3cml0ZSA9PSBBbGxvd092ZXJ3cml0ZTo6WWVzKSwgMCk7DQogICAgIH0pOw0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZw0KaW5kZXggZWEy
YTMyNGExZGMuLjRjMGI3YjlhOTE5IDEwMDY0NA0KLS0tIGEvVG9vbHMvQ2hhbmdlTG9nDQorKysg
Yi9Ub29scy9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMzkgQEANCisyMDE4LTExLTE4ICBEYXZpZCBR
dWVzYWRhICA8ZGF2aWRfcXVlc2FkYUBhcHBsZS5jb20+DQorDQorICAgICAgICBFWENfQkFEX0FD
Q0VTUyB3aGVuIGludm9raW5nIGEgRG93bmxvYWRQcm94eSdzIGRlc3RpbmF0aW9uIGRlY2lzaW9u
IGhhbmRsZXIgYWZ0ZXIgdGhlIGRvd25sb2FkIGhhcyBiZWVuIGNhbmNlbGVkDQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxNzYyDQorICAgICAgICBy
ZGFyOi8vcHJvYmxlbS80NjE1MTUwOQ0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuDQorDQorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG93
bmxvYWQubW06DQorICAgICAgICAgICAgRW5hYmxlIHRoZSBEb3dubG9hZCBBUEkgdGVzdCBvbiBp
T1MsIHNpbmNlIHRoZSBwbGF0Zm9ybSBzdXBwb3J0cyBkb3dubG9hZHMuIEFsbCB0aGUNCisgICAg
ICAgICAgICB0ZXN0cyBwYXNzIGFscmVhZHksIGV4Y2VwdCBmb3Igb25lIHdoaWNoIHdhcyB3cml0
dGVuIHVzaW5nIEFwcEtpdC1zcGVjaWZpYyBjb2RlOg0KKyAgICAgICAgVEVTVChfV0tEb3dubG9h
ZCwgUmVkaXJlY3RlZERvd25sb2FkKToNCisgICAgICAgICAgICBVc2UgYSBtb3JlIHBsYXRmb3Jt
LWFnbm9zdGljIGFwcHJvYWNoIHRvIHN0YXJ0aW5nIHRoZSBkb3dubG9hZCBpbiB0aGlzIEFQSSB0
ZXN0Lg0KKyAgICAgICAgICAgIEluc3RlYWQgb2YgbWFudWFsbHkgdHJpZ2dlcmluZyBhbiBOU01l
bnUgaXRlbSB0byBkb3dubG9hZCBhIGZpbGUgZnJvbSBhIGxpbmssIHRoZQ0KKyAgICAgICAgICAg
IHRlc3Qgd2lsbCBzaW11bGF0ZSBhIHVzZXItaW5pdGlhdGVkIGNsaWNrIG9uIHRoZSBsaW5rLCBh
bmQgdGhlIG5hdmlnYXRpb24gZGVsZWdhdGUNCisgICAgICAgICAgICB3aWxsIGRpcmVjdCB0aGUg
d2ViIHZpZXcgdG8gc3RhcnQgYSBkb3dubG9hZCBiYXNlZCBvbiB0aGUgbGluaydzIG5hdmlnYXRp
b24gYWN0aW9uLg0KKyAgICAgICAgICAgIEFkZGl0aW9uYWxseSwgcmVtb3ZlIHRoZSBtYW51YWwg
Y3JlYXRpb24gb2YgYSBuZXcgTlNXaW5kb3cuIFRlc3RXS1dlYlZpZXcgbWFrZXMgaXRzDQorICAg
ICAgICAgICAgb3duIFVJL05TV2luZG93Lg0KKyAgICAgICAgVEVTVChfV0tEb3dubG9hZCwgRG93
bmxvYWRDYW5jZWxlZFdoaWxlRGVjaWRpbmdEZXN0aW5hdGlvbik6DQorICAgICAgICAgICAgQWRk
IGFuIEFQSSB0ZXN0IF9XS0Rvd25sb2FkLkRvd25sb2FkQ2FuY2VsZWRXaGlsZURlY2lkaW5nRGVz
dGluYXRpb24gdG8gc2ltdWxhdGUgdGhlDQorICAgICAgICAgICAgY29uZGl0aW9ucyB0aGF0IHdv
dWxkIHRyaWdnZXIgdGhpcyBjcmFzaCAtIGhhbmRsaW5nIGEgZG93bmxvYWQncyAtZGVjaWRlRGVz
dGluYXRpb27igKYNCisgICAgICAgICAgICBkZWxlZ2F0ZSBjYWxsIGJ5IGNhbmNlbGluZyB0aGUg
ZG93bmxvYWQsIHdhaXRpbmcgZm9yIHRoZSBVSSBwcm9jZXNzIHRvIGJlIG5vdGlmaWVkDQorICAg
ICAgICAgICAgdGhhdCB0aGUgZG93bmxvYWQgaGFzIGJlZW4gY2FuY2VsZWQsIGFuZCBjYWxsaW5n
IHRoZSBkZWNpc2lvbiBoYW5kbGVyLiBUaGlzIHNob3VsZA0KKyAgICAgICAgICAgIG5vdCBjcmFz
aC4NCisgICAgICAgICgtW0NhbmNlbERvd25sb2FkV2hpbGVEZWNpZGluZ0Rlc3RpbmF0aW9uRGVs
ZWdhdGUgX2Rvd25sb2FkRGlkRmluaXNoOl0pOg0KKyAgICAgICAgKC1bQ2FuY2VsRG93bmxvYWRX
aGlsZURlY2lkaW5nRGVzdGluYXRpb25EZWxlZ2F0ZSBfZG93bmxvYWQ6ZGlkRmFpbFdpdGhFcnJv
cjpdKToNCisgICAgICAgICgtW0NhbmNlbERvd25sb2FkV2hpbGVEZWNpZGluZ0Rlc3RpbmF0aW9u
RGVsZWdhdGUgX2Rvd25sb2FkRGlkQ2FuY2VsOl0pOg0KKyAgICAgICAgKC1bQ2FuY2VsRG93bmxv
YWRXaGlsZURlY2lkaW5nRGVzdGluYXRpb25EZWxlZ2F0ZSBfZG93bmxvYWQ6ZGVjaWRlRGVzdGlu
YXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWU6Y29tcGxldGlvbkhhbmRsZXI6XSk6DQorICAgICAg
ICAoLVtVSURvd25sb2FkQXNGaWxlVGVzdERlbGVnYXRlIF93ZWJWaWV3OmNvbnRleHRNZW51OmZv
ckVsZW1lbnQ6XSk6IERlbGV0ZWQuDQorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvY29jb2EvVGVz
dFdLV2ViVmlldy5oOg0KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZp
ZXcubW06DQorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFT
Y3JpcHRXaXRoVXNlckdlc3R1cmU6XSk6DQorICAgICAgICAgICAgQWRkIGEgdXNlci1pbml0YXRl
ZCB2ZXJzaW9uIG9mIC1vYmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0Oi4gVGhpcyBpcyBuZWVk
ZWQgaW4NCisgICAgICAgICAgICBvcmRlciB0byBtYWludGFpbiB0aGUgYmVoYXZpb3Igb2YgdGhl
IFJlZGlyZWN0ZWREb3dubG9hZCB0ZXN0LCB3aGljaCB2ZXJpZmllcyB0aGUNCisgICAgICAgICAg
ICBzdGF0ZSBvZiB0aGUgX1dLRG93bmxvYWQud2FzVXNlckluaXRpYXRlZCBwcm9wZXJ0eS4NCisN
CiAyMDE4LTExLTE3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPg0KIA0K
ICAgICAgICAgW2lPU10gUmVtb3ZlIGFsbCB1c2FnZXMgb2YgVUlJdGVtUHJvdmlkZXIsIFVJSXRl
bVByb3ZpZGVyUmVhZGluZywgYW5kIHJlbGF0ZWQgY2xhc3Nlcw0KZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG93bmxvYWQubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rvd25sb2FkLm1tDQppbmRleCBkZWMyMGY2MTk4
ZS4uZGFlMGQyNzEwYzggMTAwNjQ0DQotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0Rvd25sb2FkLm1tDQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0Rvd25sb2FkLm1tDQpAQCAtMjcsNyArMjcsNyBAQA0KICNpbXBvcnQgPFdlYktp
dC9XS0ZvdW5kYXRpb24uaD4NCiANCiAjaWYgV0tfQVBJX0VOQUJMRUQNCi0jaWYgUExBVEZPUk0o
TUFDKSAvLyBObyBkb3dubG9hZGluZyBvbiBpT1MNCisjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFU
Rk9STShJT1MpDQogDQogI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCINCiAjaW1wb3J0ICJU
ZXN0LmgiDQpAQCAtNDIsNyArNDIsNiBAQA0KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXcuaD4N
CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oPg0KICNpbXBvcnQgPHd0
Zi9SZXRhaW5QdHIuaD4NCi0jaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNs
YXJhdGlvbnMuaD4NCiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4NCiANCiBzdGF0aWMg
Ym9vbCBpc0RvbmU7DQpAQCAtNDM5LDIzICs0MzgsNiBAQCBURVNUKF9XS0Rvd25sb2FkLCBEb3du
bG9hZFJlcXVlc3RCbG9iVVJMKQ0KICAgICBydW5UZXN0KGFkb3B0TlMoW1tEb3dubG9hZEJsb2JV
UkxOYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKS5nZXQoKSwgYWRvcHROUyhbW0Jsb2JE
b3dubG9hZERlbGVnYXRlIGFsbG9jXSBpbml0XSkuZ2V0KCksIG9yaWdpbmFsVVJMKTsNCiB9DQog
DQotQGludGVyZmFjZSBVSURvd25sb2FkQXNGaWxlVGVzdERlbGVnYXRlIDogTlNPYmplY3QgPFdL
VUlEZWxlZ2F0ZVByaXZhdGU+DQotQGVuZA0KLQ0KLUBpbXBsZW1lbnRhdGlvbiBVSURvd25sb2Fk
QXNGaWxlVGVzdERlbGVnYXRlDQotDQotSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJkZXByZWNhdGVk
LWltcGxlbWVudGF0aW9ucyIpDQotLSAoTlNNZW51ICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgY29udGV4dE1lbnU6KE5TTWVudSAqKW1lbnUgZm9yRWxlbWVudDooX1dLQ29udGV4dE1l
bnVFbGVtZW50SW5mbyAqKWVsZW1lbnQNCi1JR05PUkVfV0FSTklOR1NfRU5EDQotew0KLSAgICBz
dGF0aWMgY29uc3QgbG9uZyBkb3dubG9hZExpbmtlZEZpbGVUYWcgPSAyOw0KLSAgICBhdXRvIGlu
ZGV4ID0gW21lbnUgaW5kZXhPZkl0ZW1XaXRoVGFnOmRvd25sb2FkTGlua2VkRmlsZVRhZ107DQot
ICAgIFttZW51IHBlcmZvcm1BY3Rpb25Gb3JJdGVtQXRJbmRleDppbmRleF07DQotICAgIHJldHVy
biBuaWw7DQotfQ0KLQ0KLUBlbmQNCi0NCiBAaW50ZXJmYWNlIFJlZGlyZWN0ZWREb3dubG9hZERl
bGVnYXRlIDogTlNPYmplY3QgPF9XS0Rvd25sb2FkRGVsZWdhdGU+DQogQGVuZA0KIA0KQEAgLTUx
NywyNSArNDk5LDIxIEBAIFRFU1QoX1dLRG93bmxvYWQsIFJlZGlyZWN0ZWREb3dubG9hZCkNCiAg
ICAgcmVkaXJlY3RDb3VudCA9IDA7DQogICAgIGlzRG9uZSA9IGZhbHNlOw0KIA0KLSAgICBhdXRv
IGRlbGVnYXRlID0gYWRvcHROUyhbW1VJRG93bmxvYWRBc0ZpbGVUZXN0RGVsZWdhdGUgYWxsb2Nd
IGluaXRdKTsNCiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsNCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAs
IDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7DQotICAgIFt3ZWJWaWV3
IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOw0KICAgICBhdXRvIGRvd25sb2FkRGVsZWdh
dGUgPSBhZG9wdE5TKFtbUmVkaXJlY3RlZERvd25sb2FkRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsN
CiAgICAgW1tbd2ViVmlldyBjb25maWd1cmF0aW9uXSBwcm9jZXNzUG9vbF0gX3NldERvd25sb2Fk
RGVsZWdhdGU6ZG93bmxvYWREZWxlZ2F0ZS5nZXQoKV07DQogDQotICAgIGF1dG8gd2luZG93ID0g
YWRvcHROUyhbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Olt3ZWJWaWV3IGZy
YW1lXSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tpbmc6TlNCYWNr
aW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsNCi0gICAgW1t3aW5kb3cgY29udGVudFZpZXdd
IGFkZFN1YnZpZXc6d2ViVmlldy5nZXQoKV07DQotDQogICAgIC8vIERvIDIgbG9hZHMgaW4gdGhl
IHNhbWUgdmlldyB0byBtYWtlIHN1cmUgdGhlIHJlZGlyZWN0IGNoYWluIGlzIHByb3Blcmx5IGNs
ZWFyZWQgYmV0d2VlbiBsb2Fkcy4NCiAgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1M
U3RyaW5nOkAiPGRpdj5GaXJzdCBsb2FkPC9kaXY+Il07DQotICAgIFt3ZWJWaWV3IHN5bmNocm9u
b3VzbHlMb2FkSFRNTFN0cmluZzpAIjxhIHN0eWxlPSdkaXNwbGF5OiBibG9jazsgaGVpZ2h0OiAx
MDAlOyB3aWR0aDogMTAwJScgaHJlZj0naHR0cDovL3JlZGlyZWN0Lz9yZWRpcmVjdC8/cGFzcyc+
dGVzdDwvYT4iXTsNCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAi
PGEgaWQ9J2xpbmsnIGhyZWY9J2h0dHA6Ly9yZWRpcmVjdC8/cmVkaXJlY3QvP3Bhc3MnPnRlc3Q8
L2E+Il07DQogDQogICAgIGV4cGVjdGVkT3JpZ2luYXRpbmdXZWJWaWV3ID0gd2ViVmlldy5nZXQo
KTsNCiAgICAgZXhwZWN0ZWRVc2VySW5pdGlhdGVkU3RhdGUgPSB0cnVlOw0KLSAgICBOU1BvaW50
IGNsaWNrUG9pbnQgPSBOU01ha2VQb2ludCgxMDAsIDEwMCk7DQotICAgIFtbd2ViVmlldyBoaXRU
ZXN0OmNsaWNrUG9pbnRdIG1vdXNlRG93bjpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNF
dmVudFR5cGVSaWdodE1vdXNlRG93biBsb2NhdGlvbjpjbGlja1BvaW50IG1vZGlmaWVyRmxhZ3M6
MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dpbmRvdyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6
bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdXTsNCi0gICAgW1t3ZWJW
aWV3IGhpdFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VVcDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5
cGU6TlNFdmVudFR5cGVSaWdodE1vdXNlVXAgbG9jYXRpb246Y2xpY2tQb2ludCBtb2RpZmllckZs
YWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cgd2luZG93TnVtYmVyXSBjb250
ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXV07DQorDQorICAg
IGF1dG8gbmF2aWdhdGlvbkRlbGVnYXRlID0gYWRvcHROUyhbW0Rvd25sb2FkTmF2aWdhdGlvbkRl
bGVnYXRlIGFsbG9jXSBpbml0XSk7DQorICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0
ZTpuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCldOw0KKyAgICBbd2ViVmlldyBvYmplY3RCeUV2YWx1
YXRpbmdKYXZhU2NyaXB0V2l0aFVzZXJHZXN0dXJlOkAiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2xpbmsnKS5jbGljaygpOyJdOw0KIA0KICAgICBpc0RvbmUgPSBmYWxzZTsNCiAgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOw0KQEAgLTU5MCw1ICs1NjgsNTcgQEAgVEVTVChf
V0tEb3dubG9hZCwgUmVkaXJlY3RlZFN1YmZyYW1lTG9hZENvbnZlcnRlZFRvRG93bmxvYWQpDQog
ICAgIFtUZXN0UHJvdG9jb2wgdW5yZWdpc3Rlcl07DQogfQ0KIA0KK3N0YXRpYyBib29sIGRvd25s
b2FkSGFzRGVjaWRlZERlc3RpbmF0aW9uOw0KKw0KK0BpbnRlcmZhY2UgQ2FuY2VsRG93bmxvYWRX
aGlsZURlY2lkaW5nRGVzdGluYXRpb25EZWxlZ2F0ZSA6IE5TT2JqZWN0IDxfV0tEb3dubG9hZERl
bGVnYXRlPg0KK0BlbmQNCisNCitAaW1wbGVtZW50YXRpb24gQ2FuY2VsRG93bmxvYWRXaGlsZURl
Y2lkaW5nRGVzdGluYXRpb25EZWxlZ2F0ZQ0KKy0gKHZvaWQpX2Rvd25sb2FkRGlkRmluaXNoOihf
V0tEb3dubG9hZCAqKWRvd25sb2FkDQorew0KKyAgICBFWFBFQ1RfVFJVRShmYWxzZSk7DQorICAg
IGlzRG9uZSA9IHRydWU7DQorfQ0KKw0KKy0gKHZvaWQpX2Rvd25sb2FkOihfV0tEb3dubG9hZCAq
KWRvd25sb2FkIGRpZEZhaWxXaXRoRXJyb3I6KE5TRXJyb3IgKillcnJvcg0KK3sNCisgICAgRVhQ
RUNUX1RSVUUoZmFsc2UpOw0KKyAgICBpc0RvbmUgPSB0cnVlOw0KK30NCisNCistICh2b2lkKV9k
b3dubG9hZERpZENhbmNlbDooX1dLRG93bmxvYWQgKilkb3dubG9hZA0KK3sNCisgICAgaXNEb25l
ID0gdHJ1ZTsNCit9DQorDQorLSAodm9pZClfZG93bmxvYWQ6KF9XS0Rvd25sb2FkICopZG93bmxv
YWQgZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWU6KE5TU3RyaW5nICopZmls
ZW5hbWUgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYWxsb3dPdmVyd3JpdGUsIE5T
U3RyaW5nICpkZXN0aW5hdGlvbikpY29tcGxldGlvbkhhbmRsZXINCit7DQorICAgIFtkb3dubG9h
ZCBjYW5jZWxdOw0KKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7DQorICAg
IGNvbXBsZXRpb25IYW5kbGVyKFlFUywgQCIvdG1wL1dlYktpdEFQSVRlc3QvX1dLRG93bmxvYWQi
KTsNCisgICAgZG93bmxvYWRIYXNEZWNpZGVkRGVzdGluYXRpb24gPSB0cnVlOw0KK30NCitAZW5k
DQorDQorVEVTVChfV0tEb3dubG9hZCwgRG93bmxvYWRDYW5jZWxlZFdoaWxlRGVjaWRpbmdEZXN0
aW5hdGlvbikNCit7DQorICAgIFtUZXN0UHJvdG9jb2wgcmVnaXN0ZXJXaXRoU2NoZW1lOkAiaHR0
cCJdOw0KKw0KKyAgICBhdXRvIG5hdmlnYXRpb25EZWxlZ2F0ZSA9IGFkb3B0TlMoW1tEb3dubG9h
ZE5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOw0KKyAgICBhdXRvIGRvd25sb2FkRGVs
ZWdhdGUgPSBhZG9wdE5TKFtbQ2FuY2VsRG93bmxvYWRXaGlsZURlY2lkaW5nRGVzdGluYXRpb25E
ZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOw0KKw0KKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDAp
XSk7DQorICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpuYXZpZ2F0aW9uRGVsZWdh
dGUuZ2V0KCldOw0KKyAgICBbW1t3ZWJWaWV3IGNvbmZpZ3VyYXRpb25dIHByb2Nlc3NQb29sXSBf
c2V0RG93bmxvYWREZWxlZ2F0ZTpkb3dubG9hZERlbGVnYXRlLmdldCgpXTsNCisNCisgICAgaXNE
b25lID0gZmFsc2U7DQorICAgIGRvd25sb2FkSGFzRGVjaWRlZERlc3RpbmF0aW9uID0gZmFsc2U7
DQorICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6
W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vcGFzcyJdXV07DQorDQorICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZG93bmxvYWRIYXNEZWNpZGVkRGVzdGluYXRpb24pOw0KKw0KKyAg
ICBbVGVzdFByb3RvY29sIHVucmVnaXN0ZXJdOw0KK30NCisNCiAjZW5kaWYNCiAjZW5kaWYNCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oDQppbmRleCBkZTUyMjkxODJm
Yi4uNTQ4ODM2OTc1NjQgMTAwNjQ0DQotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rl
c3RXS1dlYlZpZXcuaA0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJW
aWV3LmgNCkBAIC02NSw2ICs2NSw3IEBADQogLSAodm9pZClzeW5jaHJvbm91c2x5TG9hZEhUTUxT
dHJpbmc6KE5TU3RyaW5nICopaHRtbCBiYXNlVVJMOihOU1VSTCAqKXVybDsNCiAtICh2b2lkKXN5
bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDooTlNTdHJpbmcgKilwYWdlTmFtZTsNCiAtIChp
ZClvYmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OihOU1N0cmluZyAqKXNjcmlwdDsNCistIChp
ZClvYmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0V2l0aFVzZXJHZXN0dXJlOihOU1N0cmluZyAq
KXNjcmlwdDsNCiAtIChOU1N0cmluZyAqKXN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6KE5T
U3RyaW5nICopc2NyaXB0Ow0KIC0gKHZvaWQpd2FpdEZvck1lc3NhZ2U6KE5TU3RyaW5nICopbWVz
c2FnZTsNCiAtICh2b2lkKXBlcmZvcm1BZnRlckxvYWRpbmc6KGRpc3BhdGNoX2Jsb2NrX3QpYWN0
aW9uczsNCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZp
ZXcubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0NCmluZGV4
IDYyOTRkZTE0MGZlLi4wZTBkMTNjYmIxYiAxMDA2NDQNCi0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQ0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2Nv
YS9UZXN0V0tXZWJWaWV3Lm1tDQpAQCAtMjg2LDYgKzI4NiwyMSBAQCAtIChpZClvYmplY3RCeUV2
YWx1YXRpbmdKYXZhU2NyaXB0OihOU1N0cmluZyAqKXNjcmlwdA0KICAgICByZXR1cm4gZXZhbFJl
c3VsdC5hdXRvcmVsZWFzZSgpOw0KIH0NCiANCistIChpZClvYmplY3RCeUV2YWx1YXRpbmdKYXZh
U2NyaXB0V2l0aFVzZXJHZXN0dXJlOihOU1N0cmluZyAqKXNjcmlwdA0KK3sNCisgICAgYm9vbCBp
c1dhaXRpbmdGb3JKYXZhU2NyaXB0ID0gZmFsc2U7DQorICAgIFJldGFpblB0cjxpZD4gZXZhbFJl
c3VsdDsNCisgICAgW3NlbGYgZXZhbHVhdGVKYXZhU2NyaXB0OnNjcmlwdCBjb21wbGV0aW9uSGFu
ZGxlcjpbJl0gKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsNCisgICAgICAgIGV2YWxSZXN1
bHQgPSByZXN1bHQ7DQorICAgICAgICBpc1dhaXRpbmdGb3JKYXZhU2NyaXB0ID0gdHJ1ZTsNCisg
ICAgICAgIEVYUEVDVF9UUlVFKCFlcnJvcik7DQorICAgICAgICBpZiAoZXJyb3IpDQorICAgICAg
ICAgICAgTlNMb2coQCJFbmNvdW50ZXJlZCBlcnJvcjogJUAgd2hpbGUgZXZhbHVhdGluZyBzY3Jp
cHQ6ICVAIiwgZXJyb3IsIHNjcmlwdCk7DQorICAgIH1dOw0KKyAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmlzV2FpdGluZ0ZvckphdmFTY3JpcHQpOw0KKyAgICByZXR1cm4gZXZhbFJlc3Vs
dC5hdXRvcmVsZWFzZSgpOw0KK30NCisNCiAtIChOU1N0cmluZyAqKXN0cmluZ0J5RXZhbHVhdGlu
Z0phdmFTY3JpcHQ6KE5TU3RyaW5nICopc2NyaXB0DQogew0KICAgICByZXR1cm4gW05TU3RyaW5n
IHN0cmluZ1dpdGhGb3JtYXQ6QCIlQCIsIFtzZWxmIG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3Jp
cHQ6c2NyaXB0XV07DQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>