<?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>194820</bug_id>
          
          <creation_ts>2019-02-19 10:39:45 -0800</creation_ts>
          <short_desc>REGRESSION(r240909): Release assertion in FrameLoader::loadPostRequest when opening new window</short_desc>
          <delta_ts>2019-02-19 18:21:31 -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>Page Loading</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>japhet</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1507710</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-02-19 10:39:45 -0800</bug_when>
    <thetext>e.g.

Thread[0] EXC_BREAKPOINT (SIGTRAP) (0x0000000000000002, 0x0000000000000000)
[  0] 0x00007fff5a1b0ca3 WebCore`WTFCrashWithInfo(int, char const*, char const*, int) + 19

     0x00007fff5a1b0c97:     movq %rsi, -0x18(%rbp)
     0x00007fff5a1b0c9b:     movq %rdx, -0x10(%rbp)
     0x00007fff5a1b0c9f:     movl %ecx, -0x4(%rbp)
     0x00007fff5a1b0ca2:     int3 
 -&gt;  0x00007fff5a1b0ca3:      ud2 
     0x00007fff5a1b0ca5:     nopw %cs:(%rax,%rax)
     0x00007fff5a1b0caf:      nop 

[  1] 0x00007fff5b1293cb WebCore`WebCore::FrameLoader::loadPostRequest(WebCore::FrameLoadRequest&amp;&amp;, WTF::String const&amp;, WebCore::FrameLoadType, WebCore::Event*, WTF::RefPtr&lt;WebCore::FormState, WTF::DumbPtrTraits&lt;WebCore::FormState&gt; &gt;&amp;&amp;, WTF::CompletionHandler&lt;void ()&gt;&amp;&amp;) + 1515 at FrameLoader.cpp:2999:9
       2995	            targetFrame-&gt;loader().loadWithNavigationAction(workingResourceRequest, WTFMove(action), lockHistory, loadType, WTFMove(formState), allowNavigationToInvalidURL, WTFMove(completionHandler));
       2996	            return;
       2997	        }
       2998	
    -&gt; 2999	        RELEASE_ASSERT(!isBackForwardLoadType(policyChecker().loadType()));
       3000	        policyChecker().checkNewWindowPolicy(WTFMove(action), WTFMove(workingResourceRequest), WTFMove(formState), frameName, [this, allowNavigationToInvalidURL, openerPolicy, completionHandler = WTFMove(completionHandler)] (const ResourceRequest&amp; request, WeakPtr&lt;FormState&gt;&amp;&amp; formState, const String&amp; frameName, const NavigationAction&amp; action, ShouldContinue shouldContinue) mutable {
       3001	            continueLoadAfterNewWindowPolicy(request, formState.get(), frameName, action, shouldContinue, allowNavigationToInvalidURL, openerPolicy);
       3002	            completionHandler();
       3003	        });
    
[  2] 0x00007fff5b1253a1 WebCore`WebCore::FrameLoader::loadFrameRequest(WebCore::FrameLoadRequest&amp;&amp;, WebCore::Event*, WTF::RefPtr&lt;WebCore::FormState, WTF::DumbPtrTraits&lt;WebCore::FormState&gt; &gt;&amp;&amp;) + 817 at FrameLoader.cpp:1289:9
       1285	        }
       1286	    };
       1287	
       1288	    if (request.resourceRequest().httpMethod() == &quot;POST&quot;)
    -&gt; 1289	        loadPostRequest(WTFMove(request), referrer, loadType, event, WTFMove(formState), WTFMove(completionHandler));
       1290	    else
       1291	        loadURL(WTFMove(request), referrer, loadType, event, WTFMove(formState), WTFMove(completionHandler));
       1292	}
       1293	
    
[  3] 0x00007fff5b140c95 WebCore`WebCore::ScheduledFormSubmission::fire(WebCore::Frame&amp;) + 517 at NavigationScheduler.cpp:277:24
       273 	        if (!requestingDocument.canNavigate(&amp;frame))
       274 	            return;
       275 	        FrameLoadRequest frameLoadRequest { requestingDocument, requestingDocument.securityOrigin(), { }, { }, lockHistory(), lockBackForwardList(), MaybeSendReferrer, AllowNavigationToInvalidURL::Yes, NewFrameOpenerPolicy::Allow, shouldOpenExternalURLs(), initiatedByMainFrame() };
       276 	        m_submission-&gt;populateFrameLoadRequest(frameLoadRequest);
    -&gt; 277 	        frame.loader().loadFrameRequest(WTFMove(frameLoadRequest), m_submission-&gt;event(), m_submission-&gt;takeState());
       278 	    }
       279 	
       280 	    void didStartTimer(Frame&amp; frame, Timer&amp; timer) override
       281 	    {
    
[  4] 0x00007fff5b13c9a5 WebCore`WebCore::NavigationScheduler::timerFired() + 101 at NavigationScheduler.cpp:510:15
[  5] 0x00007fff59fcd707 WebCore`WebCore::ThreadTimers::sharedTimerFiredInternal() + 167 at ThreadTimers.cpp:129:23
[  6] 0x00007fff59fcd64e WebCore`WebCore::timerFired(__CFRunLoopTimer*, void*) + 30 at MainThreadSharedTimerCF.cpp:74:40

&lt;rdar://problem/48187427&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507711</commentid>
    <comment_count>1</comment_count>
      <attachid>362393</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-02-19 10:47:25 -0800</bug_when>
    <thetext>Created attachment 362393
Fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507712</commentid>
    <comment_count>2</comment_count>
      <attachid>362393</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-02-19 10:50:29 -0800</bug_when>
    <thetext>Comment on attachment 362393
Fixes the bug

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507771</commentid>
    <comment_count>3</comment_count>
      <attachid>362413</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-02-19 12:24:23 -0800</bug_when>
    <thetext>Created attachment 362413
Patch for safari-607 branch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507858</commentid>
    <comment_count>4</comment_count>
      <attachid>362393</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-02-19 15:07:53 -0800</bug_when>
    <thetext>Comment on attachment 362393
Fixes the bug

Clearing flags on attachment: 362393

Committed r241780: &lt;https://trac.webkit.org/changeset/241780&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507866</commentid>
    <comment_count>5</comment_count>
      <attachid>362442</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-02-19 15:15:54 -0800</bug_when>
    <thetext>Created attachment 362442
Patch for safari-607 branch with release build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507957</commentid>
    <comment_count>6</comment_count>
      <attachid>362467</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-02-19 18:21:31 -0800</bug_when>
    <thetext>Created attachment 362467
Patch for safari-607 branch with release build fix</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362393</attachid>
            <date>2019-02-19 10:47:25 -0800</date>
            <delta_ts>2019-02-19 15:07:53 -0800</delta_ts>
            <desc>Fixes the bug</desc>
            <filename>bug-194820-20190219104724.patch</filename>
            <type>text/plain</type>
            <size>7700</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MTc2MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDE5LTAyLTE5ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJFR1JFU1NJT04ocjI0MDkwOSk6
IFJlbGVhc2UgYXNzZXJ0aW9uIGluIEZyYW1lTG9hZGVyOjpsb2FkUG9zdFJlcXVlc3Qgd2hlbiBv
cGVuaW5nIG5ldyB3aW5kb3cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5NDgyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgcmVsZWFzZSBhc3NlcnRpb24gd2FzIHdyb25nLiBUaGUgaW52b2NhdGlv
biBvZiBQb2xpY3lDaGVja2VyOjpjaGVja05ld1dpbmRvd1BvbGljeSBpbiBGcmFtZUxvYWRlcgor
ICAgICAgICBkb2VzbuKAmXQgcmVxdWlyZSBQb2xpY3lDaGVja2VyJ3MgbG9hZCB0eXBlIHRvIGJl
IHNldCBpbiBQb2xpY3lDaGVja2VyIGJlY2F1c2UgRnJhbWVMb2FkZXIncworICAgICAgICBjb250
aW51ZUxvYWRBZnRlck5ld1dpbmRvd1BvbGljeSBpbnZva2VzIGxvYWRXaXRoTmF2aWdhdGlvbkFj
dGlvbiB3aGljaCBzZXRzIHRoZSBsb2FkIHR5cGUgbGF0ZXIsCisgICAgICAgIGFuZCB3ZSBkb24n
dCByZWx5IG9uIFBvbGljeUNoZWNrZXIncyBsb2FkIHR5cGUgdW50aWwgdGhlbi4KKworICAgICAg
ICBGaXhlZCB0aGUgY3Jhc2ggYnkgcmVtb3ZpbmcgcmVsZXNlIGFzc2VydHMgYmVmb3JlIGludm9r
aW5nIGNoZWNrTmV3V2luZG93UG9saWN5IGFjY29yZGluZ2x5LgorCisgICAgICAgIFRoaXMgcGF0
Y2ggcmV2ZXJ0cyByMjQxMDE1IHNpbmNlIGl0IHRvbyB3YXMgYXNzZXJ0aW5nIHRoYXQgUG9saWN5
Q2hlY2tlcidzIGxvYWQgdHlwZSBpcyBzZXQgYmVmb3JlCisgICAgICAgIGludm9raW5nIGNoZWNr
TmV3V2luZG93UG9saWN5IHdoaWNoIGlzIG5vdCB0aGUgcmlnaHQgYXNzdW1wdGlvbi4KKworICAg
ICAgICBUZXN0OiBmYXN0L2xvYWRlci9uYXZpZ2F0ZS13aXRoLXBvc3QtdG8tbmV3LXRhcmdldC1h
ZnRlci1iYWNrLWZvcndhcmQtbmF2aWdhdGlvbi5odG1sCisKKyAgICAgICAgKiBsb2FkZXIvRnJh
bWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRVUkwpOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXI6OmxvYWRQb3N0UmVxdWVzdCk6CisKIDIwMTktMDItMTkgIENvbW1pdCBRdWV1
ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxp
bmcgb3V0IHIyNDE3MjIuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJ
KHJldmlzaW9uIDI0MTc1NSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEzODEsOCArMTM4MSw2IEBAIHZvaWQgRnJhbWVMb2FkZXI6
OmxvYWRVUkwoRnJhbWVMb2FkUmVxdWUKIAogICAgIGlmICghdGFyZ2V0RnJhbWUgJiYgIWVmZmVj
dGl2ZUZyYW1lTmFtZS5pc0VtcHR5KCkpIHsKICAgICAgICAgYWN0aW9uID0gYWN0aW9uLmNvcHlX
aXRoU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeShzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5VG9BcHBseShtX2ZyYW1lLCBmcmFtZUxvYWRSZXF1ZXN0KSk7Ci0gICAgICAgIHBvbGljeUNo
ZWNrZXIoKS5zZXRMb2FkVHlwZShuZXdMb2FkVHlwZSk7Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJU
KCFpc0JhY2tGb3J3YXJkTG9hZFR5cGUocG9saWN5Q2hlY2tlcigpLmxvYWRUeXBlKCkpKTsKICAg
ICAgICAgcG9saWN5Q2hlY2tlcigpLmNoZWNrTmV3V2luZG93UG9saWN5KFdURk1vdmUoYWN0aW9u
KSwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShmb3JtU3RhdGUpLCBlZmZlY3RpdmVGcmFtZU5h
bWUsIFt0aGlzLCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIG9wZW5lclBvbGljeSwgY29t
cGxldGlvbkhhbmRsZXIgPSBjb21wbGV0aW9uSGFuZGxlckNhbGxlci5yZWxlYXNlKCldIChjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYWtQdHI8Rm9ybVN0YXRlPiYmIGZvcm1TdGF0
ZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlv
biwgU2hvdWxkQ29udGludWUgc2hvdWxkQ29udGludWUpIG11dGFibGUgewogICAgICAgICAgICAg
Y29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQb2xpY3kocmVxdWVzdCwgZm9ybVN0YXRlLmdldCgp
LCBmcmFtZU5hbWUsIGFjdGlvbiwgc2hvdWxkQ29udGludWUsIGFsbG93TmF2aWdhdGlvblRvSW52
YWxpZFVSTCwgb3BlbmVyUG9saWN5KTsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7
CkBAIC0xNDY3LDcgKzE0NjUsNiBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkKEZyYW1lTG9hZFJl
cXVlc3QmCiAKICAgICBpZiAocmVxdWVzdC5zaG91bGRDaGVja05ld1dpbmRvd1BvbGljeSgpKSB7
CiAgICAgICAgIE5hdmlnYXRpb25BY3Rpb24gYWN0aW9uIHsgcmVxdWVzdC5yZXF1ZXN0ZXIoKSwg
cmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgSW5pdGlhdGVkQnlNYWluRnJhbWU6OlVua25vd24s
IE5hdmlnYXRpb25UeXBlOjpPdGhlciwgcmVxdWVzdC5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5KCkgfTsKLSAgICAgICAgUkVMRUFTRV9BU1NFUlQoIWlzQmFja0ZvcndhcmRMb2FkVHlwZShw
b2xpY3lDaGVja2VyKCkubG9hZFR5cGUoKSkpOwogICAgICAgICBwb2xpY3lDaGVja2VyKCkuY2hl
Y2tOZXdXaW5kb3dQb2xpY3koV1RGTW92ZShhY3Rpb24pLCBXVEZNb3ZlKHJlcXVlc3QucmVzb3Vy
Y2VSZXF1ZXN0KCkpLCB7IH0sIHJlcXVlc3QuZnJhbWVOYW1lKCksIFt0aGlzXSAoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWFrUHRyPEZvcm1TdGF0ZT4mJiBmb3JtU3RhdGUsIGNv
bnN0IFN0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24sIFNo
b3VsZENvbnRpbnVlIHNob3VsZENvbnRpbnVlKSB7CiAgICAgICAgICAgICBjb250aW51ZUxvYWRB
ZnRlck5ld1dpbmRvd1BvbGljeShyZXF1ZXN0LCBmb3JtU3RhdGUuZ2V0KCksIGZyYW1lTmFtZSwg
YWN0aW9uLCBzaG91bGRDb250aW51ZSwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMs
IE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpTdXBwcmVzcyk7CiAgICAgICAgIH0pOwpAQCAtMzAyMiw3
ICszMDE5LDYgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFBvc3RSZXF1ZXN0KEZyYW1lTAogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgUkVMRUFTRV9BU1NFUlQoIWlz
QmFja0ZvcndhcmRMb2FkVHlwZShwb2xpY3lDaGVja2VyKCkubG9hZFR5cGUoKSkpOwogICAgICAg
ICBwb2xpY3lDaGVja2VyKCkuY2hlY2tOZXdXaW5kb3dQb2xpY3koV1RGTW92ZShhY3Rpb24pLCBX
VEZNb3ZlKHdvcmtpbmdSZXNvdXJjZVJlcXVlc3QpLCBXVEZNb3ZlKGZvcm1TdGF0ZSksIGZyYW1l
TmFtZSwgW3RoaXMsIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgb3BlbmVyUG9saWN5LCBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWFrUHRyPEZvcm1TdGF0ZT4mJiBmb3JtU3RhdGUsIGNv
bnN0IFN0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24sIFNo
b3VsZENvbnRpbnVlIHNob3VsZENvbnRpbnVlKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGNvbnRp
bnVlTG9hZEFmdGVyTmV3V2luZG93UG9saWN5KHJlcXVlc3QsIGZvcm1TdGF0ZS5nZXQoKSwgZnJh
bWVOYW1lLCBhY3Rpb24sIHNob3VsZENvbnRpbnVlLCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRV
UkwsIG9wZW5lclBvbGljeSk7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwpJbmRl
eDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkocmV2aXNpb24gMjQxNzU1KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTktMDItMTkgIFJ5b3N1a2UgTml3YSAgPHJuaXdh
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjQwOTA5KTogUmVsZWFzZSBhc3Nl
cnRpb24gaW4gRnJhbWVMb2FkZXI6OmxvYWRQb3N0UmVxdWVzdCB3aGVuIG9wZW5pbmcgbmV3IHdp
bmRvdworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0
ODIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
ZWQgYSByZWdyZXNzaW9uIHRlc3QuCisKKyAgICAgICAgKiBmYXN0L2xvYWRlci9uYXZpZ2F0ZS13
aXRoLXBvc3QtdG8tbmV3LXRhcmdldC1hZnRlci1iYWNrLWZvcndhcmQtbmF2aWdhdGlvbi1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbG9hZGVyL25hdmlnYXRlLXdpdGgtcG9z
dC10by1uZXctdGFyZ2V0LWFmdGVyLWJhY2stZm9yd2FyZC1uYXZpZ2F0aW9uLmh0bWw6IEFkZGVk
LgorCiAyMDE5LTAyLTE4ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgQWRqdXN0IHRlc3QgZXhwZWN0YXRpb25zIGFmdGVyIHIyNDE3NTQKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL25hdmlnYXRlLXdpdGgtcG9zdC10by1uZXctdGFy
Z2V0LWFmdGVyLWJhY2stZm9yd2FyZC1uYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9uYXZpZ2F0ZS13aXRoLXBvc3QtdG8tbmV3LXRh
cmdldC1hZnRlci1iYWNrLWZvcndhcmQtbmF2aWdhdGlvbi1leHBlY3RlZC50eHQJKG5vbmV4aXN0
ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvbmF2aWdhdGUtd2l0aC1wb3N0LXRvLW5l
dy10YXJnZXQtYWZ0ZXItYmFjay1mb3J3YXJkLW5hdmlnYXRpb24tZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsNSBAQAorQUxFUlQ6IFBBU1MKK1RoaXMgdGVzdHMgbmF2aWdh
dGluZyB2aWEgYW4gYW5jaG9yIGVsZW1lbnQgd2l0aCBhIG5vbi1leGlzdGVudCB0YXJnZXQgbmFt
ZSwgd2hpY2ggc2hvdWxkIGNyZWF0ZSBhIG5ldyB3aW5kb3cuCitXZWJLaXQgc2hvdWxkIG5vdCBo
aXQgYW55IGFzc2VydGlvbnMgYW5kIGFsZXJ0ICJQQVNTIi4KKworCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2xvYWRlci9uYXZpZ2F0ZS13aXRoLXBvc3QtdG8tbmV3LXRhcmdldC1hZnRlci1iYWNr
LWZvcndhcmQtbmF2aWdhdGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
bG9hZGVyL25hdmlnYXRlLXdpdGgtcG9zdC10by1uZXctdGFyZ2V0LWFmdGVyLWJhY2stZm9yd2Fy
ZC1uYXZpZ2F0aW9uLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9sb2Fk
ZXIvbmF2aWdhdGUtd2l0aC1wb3N0LXRvLW5ldy10YXJnZXQtYWZ0ZXItYmFjay1mb3J3YXJkLW5h
dmlnYXRpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUxIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0PgorCitpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKKyAgICB0ZXN0UnVubmVyLnNldENhbk9wZW5XaW5kb3dzKCk7CisgICAgdGVzdFJ1
bm5lci5zZXRDbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUoKTsKKyAgICB0ZXN0UnVu
bmVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0VXNlc1BhZ2VDYWNoZVByZWZlcmVuY2VLZXki
LCAxKTsKK30KKworaWYgKGxvY2F0aW9uLnNlYXJjaCA9PSAnP3RoaXJkJykgeworICAgIGFsZXJ0
KCdQQVNTJyk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKK30gZWxzZSBpZiAoc2VsZiA9PSB0b3ApIHsKKyAgICBkb2N1bWVudC53
cml0ZShgPHA+VGhpcyB0ZXN0cyBuYXZpZ2F0aW5nIHZpYSBhbiBhbmNob3IgZWxlbWVudCB3aXRo
IGEgbm9uLWV4aXN0ZW50IHRhcmdldCBuYW1lLCB3aGljaCBzaG91bGQgY3JlYXRlIGEgbmV3IHdp
bmRvdy48YnI+CitXZWJLaXQgc2hvdWxkIG5vdCBoaXQgYW55IGFzc2VydGlvbnMgYW5kIGFsZXJ0
ICJQQVNTIi48L3A+YCk7CisgICAgY29uc3QgZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdpZnJhbWUnKTsKKyAgICBmcmFtZS5zcmMgPSAnP2ZpcnN0JzsKKyAgICBsZXQgc3RlcCA9IDA7
CisgICAgZnJhbWUub25sb2FkID0gKCkgPT4geworICAgICAgICBzd2l0Y2ggKHN0ZXArKykgewor
ICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IGZyYW1lLnNyYyA9
ICc/c2Vjb25kJywgMCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxOgorICAg
ICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBoaXN0b3J5LmJhY2soKSwgMCk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk
KGZyYW1lKTsKK30gZWxzZSB7CisgICAgaWYgKGxvY2F0aW9uLnNlYXJjaCA9PSAnP2ZpcnN0Jykg
eworICAgICAgICBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xvYWRlZCcpKSB7CisgICAgICAg
ICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnbG9hZGVkJyk7CisgICAgICAgICAgICB3aW5k
b3cub25sb2FkID0gKCkgPT4geworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gZG9j
dW1lbnQucXVlcnlTZWxlY3RvcignZm9ybScpLnN1Ym1pdCgpLCAwKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnbG9hZGVk
JywgJ3RydWUnKTsKKyAgICB9CisgICAgZG9jdW1lbnQud3JpdGUobG9jYXRpb24uc2VhcmNoKTsK
KyAgICBkb2N1bWVudC53cml0ZShgIDxmb3JtIGFjdGlvbj0iP3RoaXJkIiBtZXRob2Q9InBvc3Qi
IHRhcmdldD0idW5rbm93blRhcmdldCI+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InF1ZXJ5Ij48
aW5wdXQgdHlwZT0ic3VibWl0Ij48L2E+YCk7Cit9CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362413</attachid>
            <date>2019-02-19 12:24:23 -0800</date>
            <delta_ts>2019-02-19 15:15:32 -0800</delta_ts>
            <desc>Patch for safari-607 branch</desc>
            <filename>fix194820-for-safari-607.patch</filename>
            <type>text/plain</type>
            <size>13386</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MTc2OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDE5LTAyLTE5ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJFR1JFU1NJT04ocjI0MDkwOSk6
IFJlbGVhc2UgYXNzZXJ0aW9uIGluIEZyYW1lTG9hZGVyOjpsb2FkUG9zdFJlcXVlc3Qgd2hlbiBv
cGVuaW5nIG5ldyB3aW5kb3cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5NDgyMAorCisgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgor
CisgICAgICAgIFRoaXMgcmVsZWFzZSBhc3NlcnRpb24gd2FzIHdyb25nLiBUaGUgaW52b2NhdGlv
biBvZiBQb2xpY3lDaGVja2VyOjpjaGVja05ld1dpbmRvd1BvbGljeSBpbiBGcmFtZUxvYWRlcgor
ICAgICAgICBkb2VzbuKAmXQgcmVxdWlyZSBQb2xpY3lDaGVja2VyJ3MgbG9hZCB0eXBlIHRvIGJl
IHNldCBpbiBQb2xpY3lDaGVja2VyIGJlY2F1c2UgRnJhbWVMb2FkZXIncworICAgICAgICBjb250
aW51ZUxvYWRBZnRlck5ld1dpbmRvd1BvbGljeSBpbnZva2VzIGxvYWRXaXRoTmF2aWdhdGlvbkFj
dGlvbiB3aGljaCBzZXRzIHRoZSBsb2FkIHR5cGUgbGF0ZXIsCisgICAgICAgIGFuZCB3ZSBkb24n
dCByZWx5IG9uIFBvbGljeUNoZWNrZXIncyBsb2FkIHR5cGUgdW50aWwgdGhlbi4KKworICAgICAg
ICBGaXhlZCB0aGUgY3Jhc2ggYnkgcmVtb3ZpbmcgcmVsZXNlIGFzc2VydHMgYmVmb3JlIGludm9r
aW5nIGNoZWNrTmV3V2luZG93UG9saWN5IGFjY29yZGluZ2x5LgorCisgICAgICAgIFRoaXMgcGF0
Y2ggcmV2ZXJ0cyByMjQxMDE1IHNpbmNlIGl0IHRvbyB3YXMgYXNzZXJ0aW5nIHRoYXQgUG9saWN5
Q2hlY2tlcidzIGxvYWQgdHlwZSBpcyBzZXQgYmVmb3JlCisgICAgICAgIGludm9raW5nIGNoZWNr
TmV3V2luZG93UG9saWN5IHdoaWNoIGlzIG5vdCB0aGUgcmlnaHQgYXNzdW1wdGlvbi4KKworICAg
ICAgICBUZXN0OiBmYXN0L2xvYWRlci9uYXZpZ2F0ZS13aXRoLXBvc3QtdG8tbmV3LXRhcmdldC1h
ZnRlci1iYWNrLWZvcndhcmQtbmF2aWdhdGlvbi5odG1sCisKKyAgICAgICAgKiBsb2FkZXIvRnJh
bWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRVUkwpOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXI6OmxvYWRQb3N0UmVxdWVzdCk6CisKIDIwMTktMDItMTggIEJhYmFrIFNoYWZp
ZWkgIDxic2hhZmllaUBhcHBsZS5jb20+CiAKICAgICAgICAgQXBwbHkgcGF0Y2guIHJkYXI6Ly9w
cm9ibGVtLzQ4MTIyNTUzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2Fk
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRl
ci5jcHAJKHJldmlzaW9uIDI0MTc2OCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVu
dExvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY2NCw3ICs2NjQsNyBAQCB2b2lkIERvY3Vt
ZW50TG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QoUmVzCiAKICAgICAvLyBGSVhNRTogQWRkIGEgbG9h
ZCB0eXBlIGNoZWNrLgogICAgIGF1dG8mIHBvbGljeUNoZWNrZXIgPSBmcmFtZUxvYWRlcigpLT5w
b2xpY3lDaGVja2VyKCk7Ci0gICAgUkVMRUFTRV9BU1NFUlQoIWlzQmFja0ZvcndhcmRMb2FkVHlw
ZShwb2xpY3lDaGVja2VyLmxvYWRUeXBlKCkpIHx8IGZyYW1lTG9hZGVyKCktPmhpc3RvcnkoKS5w
cm92aXNpb25hbEl0ZW0oKSk7CisgICAgQVNTRVJUKCFpc0JhY2tGb3J3YXJkTG9hZFR5cGUocG9s
aWN5Q2hlY2tlci5sb2FkVHlwZSgpKSB8fCBmcmFtZUxvYWRlcigpLT5oaXN0b3J5KCkucHJvdmlz
aW9uYWxJdGVtKCkpOwogICAgIHBvbGljeUNoZWNrZXIuY2hlY2tOYXZpZ2F0aW9uUG9saWN5KFdU
Rk1vdmUobmV3UmVxdWVzdCksIHJlZGlyZWN0UmVzcG9uc2UsIFdURk1vdmUobmF2aWdhdGlvblBv
bGljeUNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKQEAgLTg0NSw3ICs4NDUsNyBAQCB2b2lkIERv
Y3VtZW50TG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKGNvCiAgICAgYXV0byByZXF1ZXN0SWRlbnRp
ZmllciA9IFBvbGljeUNoZWNrSWRlbnRpZmllcjo6Y3JlYXRlKCk7CiAgICAgZnJhbWVMb2FkZXIo
KS0+Y2hlY2tDb250ZW50UG9saWN5KG1fcmVzcG9uc2UsIHJlcXVlc3RJZGVudGlmaWVyLCBbdGhp
cywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBtYWluUmVzb3VyY2VMb2FkZXIgPSBX
VEZNb3ZlKG1haW5SZXNvdXJjZUxvYWRlciksCiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyID0g
Y29tcGxldGlvbkhhbmRsZXJDYWxsZXIucmVsZWFzZSgpLCByZXF1ZXN0SWRlbnRpZmllcl0gKFBv
bGljeUFjdGlvbiBwb2xpY3ksIFBvbGljeUNoZWNrSWRlbnRpZmllciByZXNwb25zZUlkZW50aWZl
aXIpIG11dGFibGUgewotICAgICAgICBSRUxFQVNFX0FTU0VSVChyZXNwb25zZUlkZW50aWZlaXIu
aXNWYWxpZEZvcihyZXF1ZXN0SWRlbnRpZmllcikpOworICAgICAgICBBU1NFUlQocmVzcG9uc2VJ
ZGVudGlmZWlyLmlzVmFsaWRGb3IocmVxdWVzdElkZW50aWZpZXIpKTsKICAgICAgICAgY29udGlu
dWVBZnRlckNvbnRlbnRQb2xpY3kocG9saWN5KTsKICAgICAgICAgaWYgKG1haW5SZXNvdXJjZUxv
YWRlcikKICAgICAgICAgICAgIG1haW5SZXNvdXJjZUxvYWRlci0+ZGlkUmVjZWl2ZVJlc3BvbnNl
UG9saWN5KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHJldmlz
aW9uIDI0MTc2OCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEzNzksOCArMTM3OSw2IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRV
UkwoRnJhbWVMb2FkUmVxdWUKIAogICAgIGlmICghdGFyZ2V0RnJhbWUgJiYgIWVmZmVjdGl2ZUZy
YW1lTmFtZS5pc0VtcHR5KCkpIHsKICAgICAgICAgYWN0aW9uID0gYWN0aW9uLmNvcHlXaXRoU2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeShzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5VG9B
cHBseShtX2ZyYW1lLCBmcmFtZUxvYWRSZXF1ZXN0KSk7Ci0gICAgICAgIHBvbGljeUNoZWNrZXIo
KS5zZXRMb2FkVHlwZShuZXdMb2FkVHlwZSk7Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUKCFpc0Jh
Y2tGb3J3YXJkTG9hZFR5cGUocG9saWN5Q2hlY2tlcigpLmxvYWRUeXBlKCkpKTsKICAgICAgICAg
cG9saWN5Q2hlY2tlcigpLmNoZWNrTmV3V2luZG93UG9saWN5KFdURk1vdmUoYWN0aW9uKSwgV1RG
TW92ZShyZXF1ZXN0KSwgV1RGTW92ZShmb3JtU3RhdGUpLCBlZmZlY3RpdmVGcmFtZU5hbWUsIFt0
aGlzLCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIG9wZW5lclBvbGljeSwgY29tcGxldGlv
bkhhbmRsZXIgPSBjb21wbGV0aW9uSGFuZGxlckNhbGxlci5yZWxlYXNlKCldIChjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYWtQdHI8Rm9ybVN0YXRlPiYmIGZvcm1TdGF0ZSwgY29u
c3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgU2hv
dWxkQ29udGludWUgc2hvdWxkQ29udGludWUpIG11dGFibGUgewogICAgICAgICAgICAgY29udGlu
dWVMb2FkQWZ0ZXJOZXdXaW5kb3dQb2xpY3kocmVxdWVzdCwgZm9ybVN0YXRlLmdldCgpLCBmcmFt
ZU5hbWUsIGFjdGlvbiwgc2hvdWxkQ29udGludWUsIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVS
TCwgb3BlbmVyUG9saWN5KTsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CkBAIC0x
NDAxLDcgKzEzOTksNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkVVJMKEZyYW1lTG9hZFJlcXVl
CiAgICAgICAgIG9sZERvY3VtZW50TG9hZGVyLT5zZXRMYXN0Q2hlY2tlZFJlcXVlc3QoUmVzb3Vy
Y2VSZXF1ZXN0KCkpOwogICAgICAgICBwb2xpY3lDaGVja2VyKCkuc3RvcENoZWNrKCk7CiAgICAg
ICAgIHBvbGljeUNoZWNrZXIoKS5zZXRMb2FkVHlwZShuZXdMb2FkVHlwZSk7Ci0gICAgICAgIFJF
TEVBU0VfQVNTRVJUKCFpc0JhY2tGb3J3YXJkTG9hZFR5cGUobmV3TG9hZFR5cGUpIHx8IGhpc3Rv
cnkoKS5wcm92aXNpb25hbEl0ZW0oKSk7CisgICAgICAgIEFTU0VSVCghaXNCYWNrRm9yd2FyZExv
YWRUeXBlKG5ld0xvYWRUeXBlKSB8fCBoaXN0b3J5KCkucHJvdmlzaW9uYWxJdGVtKCkpOwogICAg
ICAgICBwb2xpY3lDaGVja2VyKCkuY2hlY2tOYXZpZ2F0aW9uUG9saWN5KFdURk1vdmUocmVxdWVz
dCksIFJlc291cmNlUmVzcG9uc2UgeyB9IC8qIHJlZGlyZWN0UmVzcG9uc2UgKi8sIG9sZERvY3Vt
ZW50TG9hZGVyLmdldCgpLCBXVEZNb3ZlKGZvcm1TdGF0ZSksIFt0aGlzLCBwcm90ZWN0ZWRGcmFt
ZSA9IG1ha2VSZWYobV9mcmFtZSldIChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdl
YWtQdHI8Rm9ybVN0YXRlPiYmLCBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24gbmF2aWdhdGlvblBv
bGljeURlY2lzaW9uKSB7CiAgICAgICAgICAgICBjb250aW51ZUZyYWdtZW50U2Nyb2xsQWZ0ZXJO
YXZpZ2F0aW9uUG9saWN5KHJlcXVlc3QsIG5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiA9PSBOYXZp
Z2F0aW9uUG9saWN5RGVjaXNpb246OkNvbnRpbnVlTG9hZCk7CiAgICAgICAgIH0sIFBvbGljeURl
Y2lzaW9uTW9kZTo6U3luY2hyb25vdXMpOwpAQCAtMTQ2NSw3ICsxNDYzLDYgQEAgdm9pZCBGcmFt
ZUxvYWRlcjo6bG9hZChGcmFtZUxvYWRSZXF1ZXN0JgogCiAgICAgaWYgKHJlcXVlc3Quc2hvdWxk
Q2hlY2tOZXdXaW5kb3dQb2xpY3koKSkgewogICAgICAgICBOYXZpZ2F0aW9uQWN0aW9uIGFjdGlv
biB7IHJlcXVlc3QucmVxdWVzdGVyKCksIHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIEluaXRp
YXRlZEJ5TWFpbkZyYW1lOjpVbmtub3duLCBOYXZpZ2F0aW9uVHlwZTo6T3RoZXIsIHJlcXVlc3Qu
c2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSgpIH07Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJU
KCFpc0JhY2tGb3J3YXJkTG9hZFR5cGUocG9saWN5Q2hlY2tlcigpLmxvYWRUeXBlKCkpKTsKICAg
ICAgICAgcG9saWN5Q2hlY2tlcigpLmNoZWNrTmV3V2luZG93UG9saWN5KFdURk1vdmUoYWN0aW9u
KSwgV1RGTW92ZShyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpKSwgeyB9LCByZXF1ZXN0LmZyYW1l
TmFtZSgpLCBbdGhpc10gKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2Vha1B0cjxG
b3JtU3RhdGU+JiYgZm9ybVN0YXRlLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgTmF2
aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBTaG91bGRDb250aW51ZSBzaG91bGRDb250aW51ZSkgewog
ICAgICAgICAgICAgY29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQb2xpY3kocmVxdWVzdCwgZm9y
bVN0YXRlLmdldCgpLCBmcmFtZU5hbWUsIGFjdGlvbiwgc2hvdWxkQ29udGludWUsIEFsbG93TmF2
aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6U3VwcHJlc3Mp
OwogICAgICAgICB9KTsKQEAgLTE1OTAsNyArMTU4Nyw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6Omxv
YWRXaXRoRG9jdW1lbnRMb2FkZXIKICAgICB9CiAKICAgICBwb2xpY3lDaGVja2VyKCkuc2V0TG9h
ZFR5cGUodHlwZSk7Ci0gICAgUkVMRUFTRV9BU1NFUlQoIWlzQmFja0ZvcndhcmRMb2FkVHlwZSh0
eXBlKSB8fCBoaXN0b3J5KCkucHJvdmlzaW9uYWxJdGVtKCkpOworICAgIEFTU0VSVCghaXNCYWNr
Rm9yd2FyZExvYWRUeXBlKHR5cGUpIHx8IGhpc3RvcnkoKS5wcm92aXNpb25hbEl0ZW0oKSk7CiAg
ICAgYm9vbCBpc0Zvcm1TdWJtaXNzaW9uID0gZm9ybVN0YXRlOwogCiAgICAgY29uc3QgU3RyaW5n
JiBodHRwTWV0aG9kID0gbG9hZGVyLT5yZXF1ZXN0KCkuaHR0cE1ldGhvZCgpOwpAQCAtMTYwMiw3
ICsxNTk5LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFdpdGhEb2N1bWVudExvYWRlcgogICAg
ICAgICBvbGREb2N1bWVudExvYWRlci0+c2V0VHJpZ2dlcmluZ0FjdGlvbihXVEZNb3ZlKGFjdGlv
bikpOwogICAgICAgICBvbGREb2N1bWVudExvYWRlci0+c2V0TGFzdENoZWNrZWRSZXF1ZXN0KFJl
c291cmNlUmVxdWVzdCgpKTsKICAgICAgICAgcG9saWN5Q2hlY2tlcigpLnN0b3BDaGVjaygpOwot
ICAgICAgICBSRUxFQVNFX0FTU0VSVCghaXNCYWNrRm9yd2FyZExvYWRUeXBlKHBvbGljeUNoZWNr
ZXIoKS5sb2FkVHlwZSgpKSB8fCBoaXN0b3J5KCkucHJvdmlzaW9uYWxJdGVtKCkpOworICAgICAg
ICBBU1NFUlQoIWlzQmFja0ZvcndhcmRMb2FkVHlwZShwb2xpY3lDaGVja2VyKCkubG9hZFR5cGUo
KSkgfHwgaGlzdG9yeSgpLnByb3Zpc2lvbmFsSXRlbSgpKTsKICAgICAgICAgcG9saWN5Q2hlY2tl
cigpLmNoZWNrTmF2aWdhdGlvblBvbGljeShSZXNvdXJjZVJlcXVlc3QobG9hZGVyLT5yZXF1ZXN0
KCkpLCBSZXNvdXJjZVJlc3BvbnNlIHsgfSAgLyogcmVkaXJlY3RSZXNwb25zZSAqLywgb2xkRG9j
dW1lbnRMb2FkZXIuZ2V0KCksIFdURk1vdmUoZm9ybVN0YXRlKSwgW3RoaXMsIHByb3RlY3RlZEZy
YW1lID0gbWFrZVJlZihtX2ZyYW1lKV0gKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
V2Vha1B0cjxGb3JtU3RhdGU+JiYsIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiBuYXZpZ2F0aW9u
UG9saWN5RGVjaXNpb24pIHsKICAgICAgICAgICAgIGNvbnRpbnVlRnJhZ21lbnRTY3JvbGxBZnRl
ck5hdmlnYXRpb25Qb2xpY3kocmVxdWVzdCwgbmF2aWdhdGlvblBvbGljeURlY2lzaW9uID09IE5h
dmlnYXRpb25Qb2xpY3lEZWNpc2lvbjo6Q29udGludWVMb2FkKTsKICAgICAgICAgfSwgUG9saWN5
RGVjaXNpb25Nb2RlOjpTeW5jaHJvbm91cyk7CkBAIC0xNjM3LDcgKzE2MzQsNyBAQCB2b2lkIEZy
YW1lTG9hZGVyOjpsb2FkV2l0aERvY3VtZW50TG9hZGVyCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBSRUxFQVNFX0FTU0VSVCghaXNCYWNrRm9yd2FyZExvYWRUeXBlKHBvbGljeUNoZWNr
ZXIoKS5sb2FkVHlwZSgpKSB8fCBoaXN0b3J5KCkucHJvdmlzaW9uYWxJdGVtKCkpOworICAgIEFT
U0VSVCghaXNCYWNrRm9yd2FyZExvYWRUeXBlKHBvbGljeUNoZWNrZXIoKS5sb2FkVHlwZSgpKSB8
fCBoaXN0b3J5KCkucHJvdmlzaW9uYWxJdGVtKCkpOwogICAgIHBvbGljeUNoZWNrZXIoKS5jaGVj
a05hdmlnYXRpb25Qb2xpY3koUmVzb3VyY2VSZXF1ZXN0KGxvYWRlci0+cmVxdWVzdCgpKSwgUmVz
b3VyY2VSZXNwb25zZSB7IH0gLyogcmVkaXJlY3RSZXNwb25zZSAqLywgbG9hZGVyLCBXVEZNb3Zl
KGZvcm1TdGF0ZSksIFt0aGlzLCBwcm90ZWN0ZWRGcmFtZSA9IG1ha2VSZWYobV9mcmFtZSksIGFs
bG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgY29tcGxldGlvbkhhbmRsZXIgPSBjb21wbGV0aW9u
SGFuZGxlckNhbGxlci5yZWxlYXNlKCldIChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IFdlYWtQdHI8Rm9ybVN0YXRlPiYmIGZvcm1TdGF0ZSwgTmF2aWdhdGlvblBvbGljeURlY2lzaW9u
IG5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbikgbXV0YWJsZSB7CiAgICAgICAgIGNvbnRpbnVlTG9h
ZEFmdGVyTmF2aWdhdGlvblBvbGljeShyZXF1ZXN0LCBmb3JtU3RhdGUuZ2V0KCksIG5hdmlnYXRp
b25Qb2xpY3lEZWNpc2lvbiwgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMKTsKICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoKTsKQEAgLTI5OTcsNyArMjk5NCw2IEBAIHZvaWQgRnJhbWVMb2Fk
ZXI6OmxvYWRQb3N0UmVxdWVzdChGcmFtZUwKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQogCi0gICAgICAgIFJFTEVBU0VfQVNTRVJUKCFpc0JhY2tGb3J3YXJkTG9hZFR5cGUocG9saWN5
Q2hlY2tlcigpLmxvYWRUeXBlKCkpKTsKICAgICAgICAgcG9saWN5Q2hlY2tlcigpLmNoZWNrTmV3
V2luZG93UG9saWN5KFdURk1vdmUoYWN0aW9uKSwgV1RGTW92ZSh3b3JraW5nUmVzb3VyY2VSZXF1
ZXN0KSwgV1RGTW92ZShmb3JtU3RhdGUpLCBmcmFtZU5hbWUsIFt0aGlzLCBhbGxvd05hdmlnYXRp
b25Ub0ludmFsaWRVUkwsIG9wZW5lclBvbGljeSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKV0gKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2Vh
a1B0cjxGb3JtU3RhdGU+JiYgZm9ybVN0YXRlLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgY29u
c3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBTaG91bGRDb250aW51ZSBzaG91bGRDb250aW51
ZSkgbXV0YWJsZSB7CiAgICAgICAgICAgICBjb250aW51ZUxvYWRBZnRlck5ld1dpbmRvd1BvbGlj
eShyZXF1ZXN0LCBmb3JtU3RhdGUuZ2V0KCksIGZyYW1lTmFtZSwgYWN0aW9uLCBzaG91bGRDb250
aW51ZSwgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBvcGVuZXJQb2xpY3kpOwogICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Q
b2xpY3lDaGVja2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9s
aWN5Q2hlY2tlci5jcHAJKHJldmlzaW9uIDI0MTc2OCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Qb2xpY3lDaGVja2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODAsOSArODAsOSBAQCBQb2xp
Y3lDaGVja0lkZW50aWZpZXIgUG9saWN5Q2hlY2tJZGVudGlmCiAKIGJvb2wgUG9saWN5Q2hlY2tJ
ZGVudGlmaWVyOjppc1ZhbGlkRm9yKFBvbGljeUNoZWNrSWRlbnRpZmllciBleHBlY3RlZElkZW50
aWZpZXIpCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9NRVNTQUdFKG1fcG9saWN5Q2hlY2ss
ICJSZWNlaXZlZCAwIGFzIHRoZSBwb2xpY3kgY2hlY2sgaWRlbnRpZmllciIpOwotICAgIFJFTEVB
U0VfQVNTRVJUX1dJVEhfTUVTU0FHRShtX3Byb2Nlc3MgPT0gZXhwZWN0ZWRJZGVudGlmaWVyLm1f
cHJvY2VzcywgIlJlY2VpdmVkIGEgcG9saWN5IGNoZWNrIHJlc3BvbnNlIGZvciBhIHdyb25nIHBy
b2Nlc3MiKTsKLSAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX01FU1NBR0UobV9wb2xpY3lDaGVjayA8
PSBleHBlY3RlZElkZW50aWZpZXIubV9wb2xpY3lDaGVjaywgIlJlY2VpdmVkIGEgcG9saWN5IGNo
ZWNrIHJlc3BvbnNlIGZyb20gdGhlIGZ1dHVyZSIpOworICAgIEFTU0VSVF9XSVRIX01FU1NBR0Uo
bV9wb2xpY3lDaGVjaywgIlJlY2VpdmVkIDAgYXMgdGhlIHBvbGljeSBjaGVjayBpZGVudGlmaWVy
Iik7CisgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShtX3Byb2Nlc3MgPT0gZXhwZWN0ZWRJZGVudGlm
aWVyLm1fcHJvY2VzcywgIlJlY2VpdmVkIGEgcG9saWN5IGNoZWNrIHJlc3BvbnNlIGZvciBhIHdy
b25nIHByb2Nlc3MiKTsKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKG1fcG9saWN5Q2hlY2sgPD0g
ZXhwZWN0ZWRJZGVudGlmaWVyLm1fcG9saWN5Q2hlY2ssICJSZWNlaXZlZCBhIHBvbGljeSBjaGVj
ayByZXNwb25zZSBmcm9tIHRoZSBmdXR1cmUiKTsKICAgICByZXR1cm4gbV9wb2xpY3lDaGVjayA9
PSBleHBlY3RlZElkZW50aWZpZXIubV9wb2xpY3lDaGVjazsKIH0KIApJbmRleDogTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNp
b24gMjQxNzY4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMTktMDItMTkgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjQwOTA5KTogUmVsZWFzZSBhc3NlcnRpb24gaW4gRnJh
bWVMb2FkZXI6OmxvYWRQb3N0UmVxdWVzdCB3aGVuIG9wZW5pbmcgbmV3IHdpbmRvdworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0ODIwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCisKKyAgICAgICAgQWRkZWQgYSByZWdyZXNz
aW9uIHRlc3QuCisKKyAgICAgICAgKiBmYXN0L2xvYWRlci9uYXZpZ2F0ZS13aXRoLXBvc3QtdG8t
bmV3LXRhcmdldC1hZnRlci1iYWNrLWZvcndhcmQtbmF2aWdhdGlvbi1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvbG9hZGVyL25hdmlnYXRlLXdpdGgtcG9zdC10by1uZXctdGFy
Z2V0LWFmdGVyLWJhY2stZm9yd2FyZC1uYXZpZ2F0aW9uLmh0bWw6IEFkZGVkLgorCiAyMDE5LTAy
LTEzICBCYWJhayBTaGFmaWVpICA8YnNoYWZpZWlAYXBwbGUuY29tPgogCiAgICAgICAgIENoZXJy
eS1waWNrIHIyNDE0OTkuIHJkYXI6Ly9wcm9ibGVtLzQ4MDY1NjM0CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2xvYWRlci9uYXZpZ2F0ZS13aXRoLXBvc3QtdG8tbmV3LXRhcmdldC1hZnRlci1iYWNr
LWZvcndhcmQtbmF2aWdhdGlvbi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9sb2FkZXIvbmF2aWdhdGUtd2l0aC1wb3N0LXRvLW5ldy10YXJnZXQtYWZ0ZXItYmFj
ay1mb3J3YXJkLW5hdmlnYXRpb24tZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91
dFRlc3RzL2Zhc3QvbG9hZGVyL25hdmlnYXRlLXdpdGgtcG9zdC10by1uZXctdGFyZ2V0LWFmdGVy
LWJhY2stZm9yd2FyZC1uYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDUgQEAKK0FMRVJUOiBQQVNTCitUaGlzIHRlc3RzIG5hdmlnYXRpbmcgdmlhIGFuIGFu
Y2hvciBlbGVtZW50IHdpdGggYSBub24tZXhpc3RlbnQgdGFyZ2V0IG5hbWUsIHdoaWNoIHNob3Vs
ZCBjcmVhdGUgYSBuZXcgd2luZG93LgorV2ViS2l0IHNob3VsZCBub3QgaGl0IGFueSBhc3NlcnRp
b25zIGFuZCBhbGVydCAiUEFTUyIuCisKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIv
bmF2aWdhdGUtd2l0aC1wb3N0LXRvLW5ldy10YXJnZXQtYWZ0ZXItYmFjay1mb3J3YXJkLW5hdmln
YXRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9uYXZpZ2F0
ZS13aXRoLXBvc3QtdG8tbmV3LXRhcmdldC1hZnRlci1iYWNrLWZvcndhcmQtbmF2aWdhdGlvbi5o
dG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL25hdmlnYXRlLXdp
dGgtcG9zdC10by1uZXctdGFyZ2V0LWFmdGVyLWJhY2stZm9yd2FyZC1uYXZpZ2F0aW9uLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
Kzxib2R5PgorPHNjcmlwdD4KKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAg
dGVzdFJ1bm5lci5zZXRDYW5PcGVuV2luZG93cygpOworICAgIHRlc3RSdW5uZXIuc2V0Q2xvc2VS
ZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlKCk7CisgICAgdGVzdFJ1bm5lci5vdmVycmlkZVBy
ZWZlcmVuY2UoIldlYktpdFVzZXNQYWdlQ2FjaGVQcmVmZXJlbmNlS2V5IiwgMSk7Cit9CisKK2lm
IChsb2NhdGlvbi5zZWFyY2ggPT0gJz90aGlyZCcpIHsKKyAgICBhbGVydCgnUEFTUycpOworICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
Cit9IGVsc2UgaWYgKHNlbGYgPT0gdG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGUoYDxwPlRoaXMg
dGVzdHMgbmF2aWdhdGluZyB2aWEgYW4gYW5jaG9yIGVsZW1lbnQgd2l0aCBhIG5vbi1leGlzdGVu
dCB0YXJnZXQgbmFtZSwgd2hpY2ggc2hvdWxkIGNyZWF0ZSBhIG5ldyB3aW5kb3cuPGJyPgorV2Vi
S2l0IHNob3VsZCBub3QgaGl0IGFueSBhc3NlcnRpb25zIGFuZCBhbGVydCAiUEFTUyIuPC9wPmAp
OworICAgIGNvbnN0IGZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7Cisg
ICAgZnJhbWUuc3JjID0gJz9maXJzdCc7CisgICAgbGV0IHN0ZXAgPSAwOworICAgIGZyYW1lLm9u
bG9hZCA9ICgpID0+IHsKKyAgICAgICAgc3dpdGNoIChzdGVwKyspIHsKKyAgICAgICAgY2FzZSAw
OgorICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBmcmFtZS5zcmMgPSAnP3NlY29uZCcsIDAp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHNldFRp
bWVvdXQoKCkgPT4gaGlzdG9yeS5iYWNrKCksIDApOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKyAgICB9CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmcmFtZSk7Cit9IGVs
c2UgeworICAgIGlmIChsb2NhdGlvbi5zZWFyY2ggPT0gJz9maXJzdCcpIHsKKyAgICAgICAgaWYg
KGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdsb2FkZWQnKSkgeworICAgICAgICAgICAgbG9jYWxTdG9y
YWdlLnJlbW92ZUl0ZW0oJ2xvYWRlZCcpOworICAgICAgICAgICAgd2luZG93Lm9ubG9hZCA9ICgp
ID0+IHsKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoJ2Zvcm0nKS5zdWJtaXQoKSwgMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2xvYWRlZCcsICd0cnVlJyk7Cisg
ICAgfQorICAgIGRvY3VtZW50LndyaXRlKGxvY2F0aW9uLnNlYXJjaCk7CisgICAgZG9jdW1lbnQu
d3JpdGUoYCA8Zm9ybSBhY3Rpb249Ij90aGlyZCIgbWV0aG9kPSJwb3N0IiB0YXJnZXQ9InVua25v
d25UYXJnZXQiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJxdWVyeSI+PGlucHV0IHR5cGU9InN1
Ym1pdCI+PC9hPmApOworfQorCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362442</attachid>
            <date>2019-02-19 15:15:54 -0800</date>
            <delta_ts>2019-02-19 18:21:13 -0800</delta_ts>
            <desc>Patch for safari-607 branch with release build fix</desc>
            <filename>fix194820-for-safari-607b.patch</filename>
            <type>text/plain</type>
            <size>13447</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MTc4MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDE5LTAyLTE5ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJFR1JFU1NJT04ocjI0MDkwOSk6
IFJlbGVhc2UgYXNzZXJ0aW9uIGluIEZyYW1lTG9hZGVyOjpsb2FkUG9zdFJlcXVlc3Qgd2hlbiBv
cGVuaW5nIG5ldyB3aW5kb3cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5NDgyMAorCisgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuIGFu
ZCBCcmFkeSBFaWRzb24uCisKKyAgICAgICAgVGhpcyByZWxlYXNlIGFzc2VydGlvbiB3YXMgd3Jv
bmcuIFRoZSBpbnZvY2F0aW9uIG9mIFBvbGljeUNoZWNrZXI6OmNoZWNrTmV3V2luZG93UG9saWN5
IGluIEZyYW1lTG9hZGVyCisgICAgICAgIGRvZXNu4oCZdCByZXF1aXJlIFBvbGljeUNoZWNrZXIn
cyBsb2FkIHR5cGUgdG8gYmUgc2V0IGluIFBvbGljeUNoZWNrZXIgYmVjYXVzZSBGcmFtZUxvYWRl
cidzCisgICAgICAgIGNvbnRpbnVlTG9hZEFmdGVyTmV3V2luZG93UG9saWN5IGludm9rZXMgbG9h
ZFdpdGhOYXZpZ2F0aW9uQWN0aW9uIHdoaWNoIHNldHMgdGhlIGxvYWQgdHlwZSBsYXRlciwKKyAg
ICAgICAgYW5kIHdlIGRvbid0IHJlbHkgb24gUG9saWN5Q2hlY2tlcidzIGxvYWQgdHlwZSB1bnRp
bCB0aGVuLgorCisgICAgICAgIEZpeGVkIHRoZSBjcmFzaCBieSByZW1vdmluZyByZWxlc2UgYXNz
ZXJ0cyBiZWZvcmUgaW52b2tpbmcgY2hlY2tOZXdXaW5kb3dQb2xpY3kgYWNjb3JkaW5nbHkuCisK
KyAgICAgICAgVGhpcyBwYXRjaCByZXZlcnRzIHIyNDEwMTUgc2luY2UgaXQgdG9vIHdhcyBhc3Nl
cnRpbmcgdGhhdCBQb2xpY3lDaGVja2VyJ3MgbG9hZCB0eXBlIGlzIHNldCBiZWZvcmUKKyAgICAg
ICAgaW52b2tpbmcgY2hlY2tOZXdXaW5kb3dQb2xpY3kgd2hpY2ggaXMgbm90IHRoZSByaWdodCBh
c3N1bXB0aW9uLgorCisgICAgICAgIFRlc3Q6IGZhc3QvbG9hZGVyL25hdmlnYXRlLXdpdGgtcG9z
dC10by1uZXctdGFyZ2V0LWFmdGVyLWJhY2stZm9yd2FyZC1uYXZpZ2F0aW9uLmh0bWwKKworICAg
ICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxv
YWRlcjo6bG9hZFVSTCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFBvc3RSZXF1ZXN0KToKKwogMjAxOS0w
Mi0xOCAgQmFiYWsgU2hhZmllaSAgPGJzaGFmaWVpQGFwcGxlLmNvbT4KIAogICAgICAgICBBcHBs
eSBwYXRjaC4gcmRhcjovL3Byb2JsZW0vNDgxMjI1NTMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudExvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50TG9hZGVyLmNwcAkocmV2aXNpb24gMjQxNzgwKQorKysgU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjY0LDcgKzY2
NCw3IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChSZXMKIAogICAgIC8v
IEZJWE1FOiBBZGQgYSBsb2FkIHR5cGUgY2hlY2suCiAgICAgYXV0byYgcG9saWN5Q2hlY2tlciA9
IGZyYW1lTG9hZGVyKCktPnBvbGljeUNoZWNrZXIoKTsKLSAgICBSRUxFQVNFX0FTU0VSVCghaXNC
YWNrRm9yd2FyZExvYWRUeXBlKHBvbGljeUNoZWNrZXIubG9hZFR5cGUoKSkgfHwgZnJhbWVMb2Fk
ZXIoKS0+aGlzdG9yeSgpLnByb3Zpc2lvbmFsSXRlbSgpKTsKKyAgICBBU1NFUlQoIWlzQmFja0Zv
cndhcmRMb2FkVHlwZShwb2xpY3lDaGVja2VyLmxvYWRUeXBlKCkpIHx8IGZyYW1lTG9hZGVyKCkt
Pmhpc3RvcnkoKS5wcm92aXNpb25hbEl0ZW0oKSk7CiAgICAgcG9saWN5Q2hlY2tlci5jaGVja05h
dmlnYXRpb25Qb2xpY3koV1RGTW92ZShuZXdSZXF1ZXN0KSwgcmVkaXJlY3RSZXNwb25zZSwgV1RG
TW92ZShuYXZpZ2F0aW9uUG9saWN5Q29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIApAQCAtODQ1LDcg
Kzg0NSw3IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQoY28KICAgICBh
dXRvIHJlcXVlc3RJZGVudGlmaWVyID0gUG9saWN5Q2hlY2tJZGVudGlmaWVyOjpjcmVhdGUoKTsK
ICAgICBmcmFtZUxvYWRlcigpLT5jaGVja0NvbnRlbnRQb2xpY3kobV9yZXNwb25zZSwgcmVxdWVz
dElkZW50aWZpZXIsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG1haW5S
ZXNvdXJjZUxvYWRlciA9IFdURk1vdmUobWFpblJlc291cmNlTG9hZGVyKSwKICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIgPSBjb21wbGV0aW9uSGFuZGxlckNhbGxlci5yZWxlYXNlKCksIHJlcXVl
c3RJZGVudGlmaWVyXSAoUG9saWN5QWN0aW9uIHBvbGljeSwgUG9saWN5Q2hlY2tJZGVudGlmaWVy
IHJlc3BvbnNlSWRlbnRpZmVpcikgbXV0YWJsZSB7Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUKHJl
c3BvbnNlSWRlbnRpZmVpci5pc1ZhbGlkRm9yKHJlcXVlc3RJZGVudGlmaWVyKSk7CisgICAgICAg
IEFTU0VSVF9VTlVTRUQocmVzcG9uc2VJZGVudGlmZWlyLCByZXNwb25zZUlkZW50aWZlaXIuaXNW
YWxpZEZvcihyZXF1ZXN0SWRlbnRpZmllcikpOwogICAgICAgICBjb250aW51ZUFmdGVyQ29udGVu
dFBvbGljeShwb2xpY3kpOwogICAgICAgICBpZiAobWFpblJlc291cmNlTG9hZGVyKQogICAgICAg
ICAgICAgbWFpblJlc291cmNlTG9hZGVyLT5kaWRSZWNlaXZlUmVzcG9uc2VQb2xpY3koKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkocmV2aXNpb24gMjQxNzgwKQor
KysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTM3OSw4ICsxMzc5LDYgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFVSTChGcmFtZUxvYWRS
ZXF1ZQogCiAgICAgaWYgKCF0YXJnZXRGcmFtZSAmJiAhZWZmZWN0aXZlRnJhbWVOYW1lLmlzRW1w
dHkoKSkgewogICAgICAgICBhY3Rpb24gPSBhY3Rpb24uY29weVdpdGhTaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5KHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb0FwcGx5KG1fZnJhbWUs
IGZyYW1lTG9hZFJlcXVlc3QpKTsKLSAgICAgICAgcG9saWN5Q2hlY2tlcigpLnNldExvYWRUeXBl
KG5ld0xvYWRUeXBlKTsKLSAgICAgICAgUkVMRUFTRV9BU1NFUlQoIWlzQmFja0ZvcndhcmRMb2Fk
VHlwZShwb2xpY3lDaGVja2VyKCkubG9hZFR5cGUoKSkpOwogICAgICAgICBwb2xpY3lDaGVja2Vy
KCkuY2hlY2tOZXdXaW5kb3dQb2xpY3koV1RGTW92ZShhY3Rpb24pLCBXVEZNb3ZlKHJlcXVlc3Qp
LCBXVEZNb3ZlKGZvcm1TdGF0ZSksIGVmZmVjdGl2ZUZyYW1lTmFtZSwgW3RoaXMsIGFsbG93TmF2
aWdhdGlvblRvSW52YWxpZFVSTCwgb3BlbmVyUG9saWN5LCBjb21wbGV0aW9uSGFuZGxlciA9IGNv
bXBsZXRpb25IYW5kbGVyQ2FsbGVyLnJlbGVhc2UoKV0gKGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgV2Vha1B0cjxGb3JtU3RhdGU+JiYgZm9ybVN0YXRlLCBjb25zdCBTdHJpbmcmIGZy
YW1lTmFtZSwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBTaG91bGRDb250aW51ZSBz
aG91bGRDb250aW51ZSkgbXV0YWJsZSB7CiAgICAgICAgICAgICBjb250aW51ZUxvYWRBZnRlck5l
d1dpbmRvd1BvbGljeShyZXF1ZXN0LCBmb3JtU3RhdGUuZ2V0KCksIGZyYW1lTmFtZSwgYWN0aW9u
LCBzaG91bGRDb250aW51ZSwgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBvcGVuZXJQb2xp
Y3kpOwogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKQEAgLTE0MDEsNyArMTM5OSw3
IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRVUkwoRnJhbWVMb2FkUmVxdWUKICAgICAgICAgb2xk
RG9jdW1lbnRMb2FkZXItPnNldExhc3RDaGVja2VkUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoKSk7
CiAgICAgICAgIHBvbGljeUNoZWNrZXIoKS5zdG9wQ2hlY2soKTsKICAgICAgICAgcG9saWN5Q2hl
Y2tlcigpLnNldExvYWRUeXBlKG5ld0xvYWRUeXBlKTsKLSAgICAgICAgUkVMRUFTRV9BU1NFUlQo
IWlzQmFja0ZvcndhcmRMb2FkVHlwZShuZXdMb2FkVHlwZSkgfHwgaGlzdG9yeSgpLnByb3Zpc2lv
bmFsSXRlbSgpKTsKKyAgICAgICAgQVNTRVJUKCFpc0JhY2tGb3J3YXJkTG9hZFR5cGUobmV3TG9h
ZFR5cGUpIHx8IGhpc3RvcnkoKS5wcm92aXNpb25hbEl0ZW0oKSk7CiAgICAgICAgIHBvbGljeUNo
ZWNrZXIoKS5jaGVja05hdmlnYXRpb25Qb2xpY3koV1RGTW92ZShyZXF1ZXN0KSwgUmVzb3VyY2VS
ZXNwb25zZSB7IH0gLyogcmVkaXJlY3RSZXNwb25zZSAqLywgb2xkRG9jdW1lbnRMb2FkZXIuZ2V0
KCksIFdURk1vdmUoZm9ybVN0YXRlKSwgW3RoaXMsIHByb3RlY3RlZEZyYW1lID0gbWFrZVJlZiht
X2ZyYW1lKV0gKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2Vha1B0cjxGb3JtU3Rh
dGU+JiYsIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiBuYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24p
IHsKICAgICAgICAgICAgIGNvbnRpbnVlRnJhZ21lbnRTY3JvbGxBZnRlck5hdmlnYXRpb25Qb2xp
Y3kocmVxdWVzdCwgbmF2aWdhdGlvblBvbGljeURlY2lzaW9uID09IE5hdmlnYXRpb25Qb2xpY3lE
ZWNpc2lvbjo6Q29udGludWVMb2FkKTsKICAgICAgICAgfSwgUG9saWN5RGVjaXNpb25Nb2RlOjpT
eW5jaHJvbm91cyk7CkBAIC0xNDY1LDcgKzE0NjMsNiBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2Fk
KEZyYW1lTG9hZFJlcXVlc3QmCiAKICAgICBpZiAocmVxdWVzdC5zaG91bGRDaGVja05ld1dpbmRv
d1BvbGljeSgpKSB7CiAgICAgICAgIE5hdmlnYXRpb25BY3Rpb24gYWN0aW9uIHsgcmVxdWVzdC5y
ZXF1ZXN0ZXIoKSwgcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgSW5pdGlhdGVkQnlNYWluRnJh
bWU6OlVua25vd24sIE5hdmlnYXRpb25UeXBlOjpPdGhlciwgcmVxdWVzdC5zaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5KCkgfTsKLSAgICAgICAgUkVMRUFTRV9BU1NFUlQoIWlzQmFja0Zvcndh
cmRMb2FkVHlwZShwb2xpY3lDaGVja2VyKCkubG9hZFR5cGUoKSkpOwogICAgICAgICBwb2xpY3lD
aGVja2VyKCkuY2hlY2tOZXdXaW5kb3dQb2xpY3koV1RGTW92ZShhY3Rpb24pLCBXVEZNb3ZlKHJl
cXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpLCB7IH0sIHJlcXVlc3QuZnJhbWVOYW1lKCksIFt0aGlz
XSAoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWFrUHRyPEZvcm1TdGF0ZT4mJiBm
b3JtU3RhdGUsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9u
JiBhY3Rpb24sIFNob3VsZENvbnRpbnVlIHNob3VsZENvbnRpbnVlKSB7CiAgICAgICAgICAgICBj
b250aW51ZUxvYWRBZnRlck5ld1dpbmRvd1BvbGljeShyZXF1ZXN0LCBmb3JtU3RhdGUuZ2V0KCks
IGZyYW1lTmFtZSwgYWN0aW9uLCBzaG91bGRDb250aW51ZSwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZh
bGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpTdXBwcmVzcyk7CiAgICAgICAgIH0p
OwpAQCAtMTU5MCw3ICsxNTg3LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFdpdGhEb2N1bWVu
dExvYWRlcgogICAgIH0KIAogICAgIHBvbGljeUNoZWNrZXIoKS5zZXRMb2FkVHlwZSh0eXBlKTsK
LSAgICBSRUxFQVNFX0FTU0VSVCghaXNCYWNrRm9yd2FyZExvYWRUeXBlKHR5cGUpIHx8IGhpc3Rv
cnkoKS5wcm92aXNpb25hbEl0ZW0oKSk7CisgICAgQVNTRVJUKCFpc0JhY2tGb3J3YXJkTG9hZFR5
cGUodHlwZSkgfHwgaGlzdG9yeSgpLnByb3Zpc2lvbmFsSXRlbSgpKTsKICAgICBib29sIGlzRm9y
bVN1Ym1pc3Npb24gPSBmb3JtU3RhdGU7CiAKICAgICBjb25zdCBTdHJpbmcmIGh0dHBNZXRob2Qg
PSBsb2FkZXItPnJlcXVlc3QoKS5odHRwTWV0aG9kKCk7CkBAIC0xNjAyLDcgKzE1OTksNyBAQCB2
b2lkIEZyYW1lTG9hZGVyOjpsb2FkV2l0aERvY3VtZW50TG9hZGVyCiAgICAgICAgIG9sZERvY3Vt
ZW50TG9hZGVyLT5zZXRUcmlnZ2VyaW5nQWN0aW9uKFdURk1vdmUoYWN0aW9uKSk7CiAgICAgICAg
IG9sZERvY3VtZW50TG9hZGVyLT5zZXRMYXN0Q2hlY2tlZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0
KCkpOwogICAgICAgICBwb2xpY3lDaGVja2VyKCkuc3RvcENoZWNrKCk7Ci0gICAgICAgIFJFTEVB
U0VfQVNTRVJUKCFpc0JhY2tGb3J3YXJkTG9hZFR5cGUocG9saWN5Q2hlY2tlcigpLmxvYWRUeXBl
KCkpIHx8IGhpc3RvcnkoKS5wcm92aXNpb25hbEl0ZW0oKSk7CisgICAgICAgIEFTU0VSVCghaXNC
YWNrRm9yd2FyZExvYWRUeXBlKHBvbGljeUNoZWNrZXIoKS5sb2FkVHlwZSgpKSB8fCBoaXN0b3J5
KCkucHJvdmlzaW9uYWxJdGVtKCkpOwogICAgICAgICBwb2xpY3lDaGVja2VyKCkuY2hlY2tOYXZp
Z2F0aW9uUG9saWN5KFJlc291cmNlUmVxdWVzdChsb2FkZXItPnJlcXVlc3QoKSksIFJlc291cmNl
UmVzcG9uc2UgeyB9ICAvKiByZWRpcmVjdFJlc3BvbnNlICovLCBvbGREb2N1bWVudExvYWRlci5n
ZXQoKSwgV1RGTW92ZShmb3JtU3RhdGUpLCBbdGhpcywgcHJvdGVjdGVkRnJhbWUgPSBtYWtlUmVm
KG1fZnJhbWUpXSAoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWFrUHRyPEZvcm1T
dGF0ZT4mJiwgTmF2aWdhdGlvblBvbGljeURlY2lzaW9uIG5hdmlnYXRpb25Qb2xpY3lEZWNpc2lv
bikgewogICAgICAgICAgICAgY29udGludWVGcmFnbWVudFNjcm9sbEFmdGVyTmF2aWdhdGlvblBv
bGljeShyZXF1ZXN0LCBuYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24gPT0gTmF2aWdhdGlvblBvbGlj
eURlY2lzaW9uOjpDb250aW51ZUxvYWQpOwogICAgICAgICB9LCBQb2xpY3lEZWNpc2lvbk1vZGU6
OlN5bmNocm9ub3VzKTsKQEAgLTE2MzcsNyArMTYzNCw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6Omxv
YWRXaXRoRG9jdW1lbnRMb2FkZXIKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFJFTEVB
U0VfQVNTRVJUKCFpc0JhY2tGb3J3YXJkTG9hZFR5cGUocG9saWN5Q2hlY2tlcigpLmxvYWRUeXBl
KCkpIHx8IGhpc3RvcnkoKS5wcm92aXNpb25hbEl0ZW0oKSk7CisgICAgQVNTRVJUKCFpc0JhY2tG
b3J3YXJkTG9hZFR5cGUocG9saWN5Q2hlY2tlcigpLmxvYWRUeXBlKCkpIHx8IGhpc3RvcnkoKS5w
cm92aXNpb25hbEl0ZW0oKSk7CiAgICAgcG9saWN5Q2hlY2tlcigpLmNoZWNrTmF2aWdhdGlvblBv
bGljeShSZXNvdXJjZVJlcXVlc3QobG9hZGVyLT5yZXF1ZXN0KCkpLCBSZXNvdXJjZVJlc3BvbnNl
IHsgfSAvKiByZWRpcmVjdFJlc3BvbnNlICovLCBsb2FkZXIsIFdURk1vdmUoZm9ybVN0YXRlKSwg
W3RoaXMsIHByb3RlY3RlZEZyYW1lID0gbWFrZVJlZihtX2ZyYW1lKSwgYWxsb3dOYXZpZ2F0aW9u
VG9JbnZhbGlkVVJMLCBjb21wbGV0aW9uSGFuZGxlciA9IGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVy
LnJlbGVhc2UoKV0gKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2Vha1B0cjxGb3Jt
U3RhdGU+JiYgZm9ybVN0YXRlLCBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24gbmF2aWdhdGlvblBv
bGljeURlY2lzaW9uKSBtdXRhYmxlIHsKICAgICAgICAgY29udGludWVMb2FkQWZ0ZXJOYXZpZ2F0
aW9uUG9saWN5KHJlcXVlc3QsIGZvcm1TdGF0ZS5nZXQoKSwgbmF2aWdhdGlvblBvbGljeURlY2lz
aW9uLCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwpOwogICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcigpOwpAQCAtMjk5Nyw3ICsyOTk0LDYgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFBvc3RS
ZXF1ZXN0KEZyYW1lTAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAg
UkVMRUFTRV9BU1NFUlQoIWlzQmFja0ZvcndhcmRMb2FkVHlwZShwb2xpY3lDaGVja2VyKCkubG9h
ZFR5cGUoKSkpOwogICAgICAgICBwb2xpY3lDaGVja2VyKCkuY2hlY2tOZXdXaW5kb3dQb2xpY3ko
V1RGTW92ZShhY3Rpb24pLCBXVEZNb3ZlKHdvcmtpbmdSZXNvdXJjZVJlcXVlc3QpLCBXVEZNb3Zl
KGZvcm1TdGF0ZSksIGZyYW1lTmFtZSwgW3RoaXMsIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVS
TCwgb3BlbmVyUG9saWN5LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXSAoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWFrUHRyPEZvcm1TdGF0
ZT4mJiBmb3JtU3RhdGUsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBOYXZpZ2F0aW9u
QWN0aW9uJiBhY3Rpb24sIFNob3VsZENvbnRpbnVlIHNob3VsZENvbnRpbnVlKSBtdXRhYmxlIHsK
ICAgICAgICAgICAgIGNvbnRpbnVlTG9hZEFmdGVyTmV3V2luZG93UG9saWN5KHJlcXVlc3QsIGZv
cm1TdGF0ZS5nZXQoKSwgZnJhbWVOYW1lLCBhY3Rpb24sIHNob3VsZENvbnRpbnVlLCBhbGxvd05h
dmlnYXRpb25Ub0ludmFsaWRVUkwsIG9wZW5lclBvbGljeSk7CiAgICAgICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcigpOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNw
cAkocmV2aXNpb24gMjQxNzgwKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNr
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MCw5ICs4MCw5IEBAIFBvbGljeUNoZWNrSWRlbnRp
ZmllciBQb2xpY3lDaGVja0lkZW50aWYKIAogYm9vbCBQb2xpY3lDaGVja0lkZW50aWZpZXI6Omlz
VmFsaWRGb3IoUG9saWN5Q2hlY2tJZGVudGlmaWVyIGV4cGVjdGVkSWRlbnRpZmllcikKIHsKLSAg
ICBSRUxFQVNFX0FTU0VSVF9XSVRIX01FU1NBR0UobV9wb2xpY3lDaGVjaywgIlJlY2VpdmVkIDAg
YXMgdGhlIHBvbGljeSBjaGVjayBpZGVudGlmaWVyIik7Ci0gICAgUkVMRUFTRV9BU1NFUlRfV0lU
SF9NRVNTQUdFKG1fcHJvY2VzcyA9PSBleHBlY3RlZElkZW50aWZpZXIubV9wcm9jZXNzLCAiUmVj
ZWl2ZWQgYSBwb2xpY3kgY2hlY2sgcmVzcG9uc2UgZm9yIGEgd3JvbmcgcHJvY2VzcyIpOwotICAg
IFJFTEVBU0VfQVNTRVJUX1dJVEhfTUVTU0FHRShtX3BvbGljeUNoZWNrIDw9IGV4cGVjdGVkSWRl
bnRpZmllci5tX3BvbGljeUNoZWNrLCAiUmVjZWl2ZWQgYSBwb2xpY3kgY2hlY2sgcmVzcG9uc2Ug
ZnJvbSB0aGUgZnV0dXJlIik7CisgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShtX3BvbGljeUNoZWNr
LCAiUmVjZWl2ZWQgMCBhcyB0aGUgcG9saWN5IGNoZWNrIGlkZW50aWZpZXIiKTsKKyAgICBBU1NF
UlRfV0lUSF9NRVNTQUdFKG1fcHJvY2VzcyA9PSBleHBlY3RlZElkZW50aWZpZXIubV9wcm9jZXNz
LCAiUmVjZWl2ZWQgYSBwb2xpY3kgY2hlY2sgcmVzcG9uc2UgZm9yIGEgd3JvbmcgcHJvY2VzcyIp
OworICAgIEFTU0VSVF9XSVRIX01FU1NBR0UobV9wb2xpY3lDaGVjayA8PSBleHBlY3RlZElkZW50
aWZpZXIubV9wb2xpY3lDaGVjaywgIlJlY2VpdmVkIGEgcG9saWN5IGNoZWNrIHJlc3BvbnNlIGZy
b20gdGhlIGZ1dHVyZSIpOwogICAgIHJldHVybiBtX3BvbGljeUNoZWNrID09IGV4cGVjdGVkSWRl
bnRpZmllci5tX3BvbGljeUNoZWNrOwogfQogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDE3ODApCisr
KyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAor
MjAxOS0wMi0xOSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBS
RUdSRVNTSU9OKHIyNDA5MDkpOiBSZWxlYXNlIGFzc2VydGlvbiBpbiBGcmFtZUxvYWRlcjo6bG9h
ZFBvc3RSZXF1ZXN0IHdoZW4gb3BlbmluZyBuZXcgd2luZG93CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTQ4MjAKKworICAgICAgICBSZXZpZXdlZCBi
eSBHZW9mZnJleSBHYXJlbiBhbmQgQnJhZHkgRWlkc29uLgorCisgICAgICAgIEFkZGVkIGEgcmVn
cmVzc2lvbiB0ZXN0LgorCisgICAgICAgICogZmFzdC9sb2FkZXIvbmF2aWdhdGUtd2l0aC1wb3N0
LXRvLW5ldy10YXJnZXQtYWZ0ZXItYmFjay1mb3J3YXJkLW5hdmlnYXRpb24tZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2xvYWRlci9uYXZpZ2F0ZS13aXRoLXBvc3QtdG8tbmV3
LXRhcmdldC1hZnRlci1iYWNrLWZvcndhcmQtbmF2aWdhdGlvbi5odG1sOiBBZGRlZC4KKwogMjAx
OS0wMi0xMyAgQmFiYWsgU2hhZmllaSAgPGJzaGFmaWVpQGFwcGxlLmNvbT4KIAogICAgICAgICBD
aGVycnktcGljayByMjQxNDk5LiByZGFyOi8vcHJvYmxlbS80ODA2NTYzNApJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9sb2FkZXIvbmF2aWdhdGUtd2l0aC1wb3N0LXRvLW5ldy10YXJnZXQtYWZ0ZXIt
YmFjay1mb3J3YXJkLW5hdmlnYXRpb24tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvbG9hZGVyL25hdmlnYXRlLXdpdGgtcG9zdC10by1uZXctdGFyZ2V0LWFmdGVy
LWJhY2stZm9yd2FyZC1uYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2xvYWRlci9uYXZpZ2F0ZS13aXRoLXBvc3QtdG8tbmV3LXRhcmdldC1h
ZnRlci1iYWNrLWZvcndhcmQtbmF2aWdhdGlvbi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw1IEBACitBTEVSVDogUEFTUworVGhpcyB0ZXN0cyBuYXZpZ2F0aW5nIHZpYSBh
biBhbmNob3IgZWxlbWVudCB3aXRoIGEgbm9uLWV4aXN0ZW50IHRhcmdldCBuYW1lLCB3aGljaCBz
aG91bGQgY3JlYXRlIGEgbmV3IHdpbmRvdy4KK1dlYktpdCBzaG91bGQgbm90IGhpdCBhbnkgYXNz
ZXJ0aW9ucyBhbmQgYWxlcnQgIlBBU1MiLgorCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbG9h
ZGVyL25hdmlnYXRlLXdpdGgtcG9zdC10by1uZXctdGFyZ2V0LWFmdGVyLWJhY2stZm9yd2FyZC1u
YXZpZ2F0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvbmF2
aWdhdGUtd2l0aC1wb3N0LXRvLW5ldy10YXJnZXQtYWZ0ZXItYmFjay1mb3J3YXJkLW5hdmlnYXRp
b24uaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9uYXZpZ2F0
ZS13aXRoLXBvc3QtdG8tbmV3LXRhcmdldC1hZnRlci1iYWNrLWZvcndhcmQtbmF2aWdhdGlvbi5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8Ym9keT4KKzxzY3JpcHQ+CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwor
ICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsKKyAgICB0ZXN0UnVubmVyLnNldENs
b3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZSgpOworICAgIHRlc3RSdW5uZXIub3ZlcnJp
ZGVQcmVmZXJlbmNlKCJXZWJLaXRVc2VzUGFnZUNhY2hlUHJlZmVyZW5jZUtleSIsIDEpOworfQor
CitpZiAobG9jYXRpb24uc2VhcmNoID09ICc/dGhpcmQnKSB7CisgICAgYWxlcnQoJ1BBU1MnKTsK
KyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9u
ZSgpOworfSBlbHNlIGlmIChzZWxmID09IHRvcCkgeworICAgIGRvY3VtZW50LndyaXRlKGA8cD5U
aGlzIHRlc3RzIG5hdmlnYXRpbmcgdmlhIGFuIGFuY2hvciBlbGVtZW50IHdpdGggYSBub24tZXhp
c3RlbnQgdGFyZ2V0IG5hbWUsIHdoaWNoIHNob3VsZCBjcmVhdGUgYSBuZXcgd2luZG93Ljxicj4K
K1dlYktpdCBzaG91bGQgbm90IGhpdCBhbnkgYXNzZXJ0aW9ucyBhbmQgYWxlcnQgIlBBU1MiLjwv
cD5gKTsKKyAgICBjb25zdCBmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScp
OworICAgIGZyYW1lLnNyYyA9ICc/Zmlyc3QnOworICAgIGxldCBzdGVwID0gMDsKKyAgICBmcmFt
ZS5vbmxvYWQgPSAoKSA9PiB7CisgICAgICAgIHN3aXRjaCAoc3RlcCsrKSB7CisgICAgICAgIGNh
c2UgMDoKKyAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gZnJhbWUuc3JjID0gJz9zZWNvbmQn
LCAwKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICBz
ZXRUaW1lb3V0KCgpID0+IGhpc3RvcnkuYmFjaygpLCAwKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisgICAgfQorICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhbWUpOwor
fSBlbHNlIHsKKyAgICBpZiAobG9jYXRpb24uc2VhcmNoID09ICc/Zmlyc3QnKSB7CisgICAgICAg
IGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbG9hZGVkJykpIHsKKyAgICAgICAgICAgIGxvY2Fs
U3RvcmFnZS5yZW1vdmVJdGVtKCdsb2FkZWQnKTsKKyAgICAgICAgICAgIHdpbmRvdy5vbmxvYWQg
PSAoKSA9PiB7CisgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCdmb3JtJykuc3VibWl0KCksIDApOworICAgICAgICAgICAgfQorICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdsb2FkZWQnLCAndHJ1ZScp
OworICAgIH0KKyAgICBkb2N1bWVudC53cml0ZShsb2NhdGlvbi5zZWFyY2gpOworICAgIGRvY3Vt
ZW50LndyaXRlKGAgPGZvcm0gYWN0aW9uPSI/dGhpcmQiIG1ldGhvZD0icG9zdCIgdGFyZ2V0PSJ1
bmtub3duVGFyZ2V0Ij48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0icXVlcnkiPjxpbnB1dCB0eXBl
PSJzdWJtaXQiPjwvYT5gKTsKK30KKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362467</attachid>
            <date>2019-02-19 18:21:31 -0800</date>
            <delta_ts>2019-02-19 18:21:31 -0800</delta_ts>
            <desc>Patch for safari-607 branch with release build fix</desc>
            <filename>fix194820-for-safari-607c.patch</filename>
            <type>text/plain</type>
            <size>13535</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MTc4MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDE5LTAyLTE5ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJFR1JFU1NJT04ocjI0MDkwOSk6
IFJlbGVhc2UgYXNzZXJ0aW9uIGluIEZyYW1lTG9hZGVyOjpsb2FkUG9zdFJlcXVlc3Qgd2hlbiBv
cGVuaW5nIG5ldyB3aW5kb3cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5NDgyMAorCisgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuIGFu
ZCBCcmFkeSBFaWRzb24uCisKKyAgICAgICAgVGhpcyByZWxlYXNlIGFzc2VydGlvbiB3YXMgd3Jv
bmcuIFRoZSBpbnZvY2F0aW9uIG9mIFBvbGljeUNoZWNrZXI6OmNoZWNrTmV3V2luZG93UG9saWN5
IGluIEZyYW1lTG9hZGVyCisgICAgICAgIGRvZXNu4oCZdCByZXF1aXJlIFBvbGljeUNoZWNrZXIn
cyBsb2FkIHR5cGUgdG8gYmUgc2V0IGluIFBvbGljeUNoZWNrZXIgYmVjYXVzZSBGcmFtZUxvYWRl
cidzCisgICAgICAgIGNvbnRpbnVlTG9hZEFmdGVyTmV3V2luZG93UG9saWN5IGludm9rZXMgbG9h
ZFdpdGhOYXZpZ2F0aW9uQWN0aW9uIHdoaWNoIHNldHMgdGhlIGxvYWQgdHlwZSBsYXRlciwKKyAg
ICAgICAgYW5kIHdlIGRvbid0IHJlbHkgb24gUG9saWN5Q2hlY2tlcidzIGxvYWQgdHlwZSB1bnRp
bCB0aGVuLgorCisgICAgICAgIEZpeGVkIHRoZSBjcmFzaCBieSByZW1vdmluZyByZWxlc2UgYXNz
ZXJ0cyBiZWZvcmUgaW52b2tpbmcgY2hlY2tOZXdXaW5kb3dQb2xpY3kgYWNjb3JkaW5nbHkuCisK
KyAgICAgICAgVGhpcyBwYXRjaCByZXZlcnRzIHIyNDEwMTUgc2luY2UgaXQgdG9vIHdhcyBhc3Nl
cnRpbmcgdGhhdCBQb2xpY3lDaGVja2VyJ3MgbG9hZCB0eXBlIGlzIHNldCBiZWZvcmUKKyAgICAg
ICAgaW52b2tpbmcgY2hlY2tOZXdXaW5kb3dQb2xpY3kgd2hpY2ggaXMgbm90IHRoZSByaWdodCBh
c3N1bXB0aW9uLgorCisgICAgICAgIFRlc3Q6IGZhc3QvbG9hZGVyL25hdmlnYXRlLXdpdGgtcG9z
dC10by1uZXctdGFyZ2V0LWFmdGVyLWJhY2stZm9yd2FyZC1uYXZpZ2F0aW9uLmh0bWwKKworICAg
ICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxv
YWRlcjo6bG9hZFVSTCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFBvc3RSZXF1ZXN0KToKKwogMjAxOS0w
Mi0xOCAgQmFiYWsgU2hhZmllaSAgPGJzaGFmaWVpQGFwcGxlLmNvbT4KIAogICAgICAgICBBcHBs
eSBwYXRjaC4gcmRhcjovL3Byb2JsZW0vNDgxMjI1NTMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudExvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50TG9hZGVyLmNwcAkocmV2aXNpb24gMjQxNzgwKQorKysgU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjY0LDcgKzY2
NCw3IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChSZXMKIAogICAgIC8v
IEZJWE1FOiBBZGQgYSBsb2FkIHR5cGUgY2hlY2suCiAgICAgYXV0byYgcG9saWN5Q2hlY2tlciA9
IGZyYW1lTG9hZGVyKCktPnBvbGljeUNoZWNrZXIoKTsKLSAgICBSRUxFQVNFX0FTU0VSVCghaXNC
YWNrRm9yd2FyZExvYWRUeXBlKHBvbGljeUNoZWNrZXIubG9hZFR5cGUoKSkgfHwgZnJhbWVMb2Fk
ZXIoKS0+aGlzdG9yeSgpLnByb3Zpc2lvbmFsSXRlbSgpKTsKKyAgICBBU1NFUlQoIWlzQmFja0Zv
cndhcmRMb2FkVHlwZShwb2xpY3lDaGVja2VyLmxvYWRUeXBlKCkpIHx8IGZyYW1lTG9hZGVyKCkt
Pmhpc3RvcnkoKS5wcm92aXNpb25hbEl0ZW0oKSk7CiAgICAgcG9saWN5Q2hlY2tlci5jaGVja05h
dmlnYXRpb25Qb2xpY3koV1RGTW92ZShuZXdSZXF1ZXN0KSwgcmVkaXJlY3RSZXNwb25zZSwgV1RG
TW92ZShuYXZpZ2F0aW9uUG9saWN5Q29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIApAQCAtODQ1LDcg
Kzg0NSwxMSBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKGNvCiAgICAg
YXV0byByZXF1ZXN0SWRlbnRpZmllciA9IFBvbGljeUNoZWNrSWRlbnRpZmllcjo6Y3JlYXRlKCk7
CiAgICAgZnJhbWVMb2FkZXIoKS0+Y2hlY2tDb250ZW50UG9saWN5KG1fcmVzcG9uc2UsIHJlcXVl
c3RJZGVudGlmaWVyLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBtYWlu
UmVzb3VyY2VMb2FkZXIgPSBXVEZNb3ZlKG1haW5SZXNvdXJjZUxvYWRlciksCiAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyID0gY29tcGxldGlvbkhhbmRsZXJDYWxsZXIucmVsZWFzZSgpLCByZXF1
ZXN0SWRlbnRpZmllcl0gKFBvbGljeUFjdGlvbiBwb2xpY3ksIFBvbGljeUNoZWNrSWRlbnRpZmll
ciByZXNwb25zZUlkZW50aWZlaXIpIG11dGFibGUgewotICAgICAgICBSRUxFQVNFX0FTU0VSVChy
ZXNwb25zZUlkZW50aWZlaXIuaXNWYWxpZEZvcihyZXF1ZXN0SWRlbnRpZmllcikpOworI2lmIEFT
U0VSVF9ESVNBQkxFRAorICAgICAgICBVTlVTRURfUEFSQU0ocmVxdWVzdElkZW50aWZpZXIpOwor
ICAgICAgICBVTlVTRURfUEFSQU0ocmVzcG9uc2VJZGVudGlmZWlyKTsKKyNlbmRpZgorICAgICAg
ICBBU1NFUlQocmVzcG9uc2VJZGVudGlmZWlyLmlzVmFsaWRGb3IocmVxdWVzdElkZW50aWZpZXIp
KTsKICAgICAgICAgY29udGludWVBZnRlckNvbnRlbnRQb2xpY3kocG9saWN5KTsKICAgICAgICAg
aWYgKG1haW5SZXNvdXJjZUxvYWRlcikKICAgICAgICAgICAgIG1haW5SZXNvdXJjZUxvYWRlci0+
ZGlkUmVjZWl2ZVJlc3BvbnNlUG9saWN5KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAJKHJldmlzaW9uIDI0MTc4MCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNzksOCArMTM3OSw2IEBAIHZvaWQg
RnJhbWVMb2FkZXI6OmxvYWRVUkwoRnJhbWVMb2FkUmVxdWUKIAogICAgIGlmICghdGFyZ2V0RnJh
bWUgJiYgIWVmZmVjdGl2ZUZyYW1lTmFtZS5pc0VtcHR5KCkpIHsKICAgICAgICAgYWN0aW9uID0g
YWN0aW9uLmNvcHlXaXRoU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeShzaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5VG9BcHBseShtX2ZyYW1lLCBmcmFtZUxvYWRSZXF1ZXN0KSk7Ci0gICAg
ICAgIHBvbGljeUNoZWNrZXIoKS5zZXRMb2FkVHlwZShuZXdMb2FkVHlwZSk7Ci0gICAgICAgIFJF
TEVBU0VfQVNTRVJUKCFpc0JhY2tGb3J3YXJkTG9hZFR5cGUocG9saWN5Q2hlY2tlcigpLmxvYWRU
eXBlKCkpKTsKICAgICAgICAgcG9saWN5Q2hlY2tlcigpLmNoZWNrTmV3V2luZG93UG9saWN5KFdU
Rk1vdmUoYWN0aW9uKSwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShmb3JtU3RhdGUpLCBlZmZl
Y3RpdmVGcmFtZU5hbWUsIFt0aGlzLCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIG9wZW5l
clBvbGljeSwgY29tcGxldGlvbkhhbmRsZXIgPSBjb21wbGV0aW9uSGFuZGxlckNhbGxlci5yZWxl
YXNlKCldIChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYWtQdHI8Rm9ybVN0YXRl
PiYmIGZvcm1TdGF0ZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25B
Y3Rpb24mIGFjdGlvbiwgU2hvdWxkQ29udGludWUgc2hvdWxkQ29udGludWUpIG11dGFibGUgewog
ICAgICAgICAgICAgY29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQb2xpY3kocmVxdWVzdCwgZm9y
bVN0YXRlLmdldCgpLCBmcmFtZU5hbWUsIGFjdGlvbiwgc2hvdWxkQ29udGludWUsIGFsbG93TmF2
aWdhdGlvblRvSW52YWxpZFVSTCwgb3BlbmVyUG9saWN5KTsKICAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKCk7CkBAIC0xNDAxLDcgKzEzOTksNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2Fk
VVJMKEZyYW1lTG9hZFJlcXVlCiAgICAgICAgIG9sZERvY3VtZW50TG9hZGVyLT5zZXRMYXN0Q2hl
Y2tlZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KCkpOwogICAgICAgICBwb2xpY3lDaGVja2VyKCku
c3RvcENoZWNrKCk7CiAgICAgICAgIHBvbGljeUNoZWNrZXIoKS5zZXRMb2FkVHlwZShuZXdMb2Fk
VHlwZSk7Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUKCFpc0JhY2tGb3J3YXJkTG9hZFR5cGUobmV3
TG9hZFR5cGUpIHx8IGhpc3RvcnkoKS5wcm92aXNpb25hbEl0ZW0oKSk7CisgICAgICAgIEFTU0VS
VCghaXNCYWNrRm9yd2FyZExvYWRUeXBlKG5ld0xvYWRUeXBlKSB8fCBoaXN0b3J5KCkucHJvdmlz
aW9uYWxJdGVtKCkpOwogICAgICAgICBwb2xpY3lDaGVja2VyKCkuY2hlY2tOYXZpZ2F0aW9uUG9s
aWN5KFdURk1vdmUocmVxdWVzdCksIFJlc291cmNlUmVzcG9uc2UgeyB9IC8qIHJlZGlyZWN0UmVz
cG9uc2UgKi8sIG9sZERvY3VtZW50TG9hZGVyLmdldCgpLCBXVEZNb3ZlKGZvcm1TdGF0ZSksIFt0
aGlzLCBwcm90ZWN0ZWRGcmFtZSA9IG1ha2VSZWYobV9mcmFtZSldIChjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIFdlYWtQdHI8Rm9ybVN0YXRlPiYmLCBOYXZpZ2F0aW9uUG9saWN5RGVj
aXNpb24gbmF2aWdhdGlvblBvbGljeURlY2lzaW9uKSB7CiAgICAgICAgICAgICBjb250aW51ZUZy
YWdtZW50U2Nyb2xsQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KHJlcXVlc3QsIG5hdmlnYXRpb25Qb2xp
Y3lEZWNpc2lvbiA9PSBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb246OkNvbnRpbnVlTG9hZCk7CiAg
ICAgICAgIH0sIFBvbGljeURlY2lzaW9uTW9kZTo6U3luY2hyb25vdXMpOwpAQCAtMTQ2NSw3ICsx
NDYzLDYgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZChGcmFtZUxvYWRSZXF1ZXN0JgogCiAgICAg
aWYgKHJlcXVlc3Quc2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3koKSkgewogICAgICAgICBOYXZp
Z2F0aW9uQWN0aW9uIGFjdGlvbiB7IHJlcXVlc3QucmVxdWVzdGVyKCksIHJlcXVlc3QucmVzb3Vy
Y2VSZXF1ZXN0KCksIEluaXRpYXRlZEJ5TWFpbkZyYW1lOjpVbmtub3duLCBOYXZpZ2F0aW9uVHlw
ZTo6T3RoZXIsIHJlcXVlc3Quc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSgpIH07Ci0gICAg
ICAgIFJFTEVBU0VfQVNTRVJUKCFpc0JhY2tGb3J3YXJkTG9hZFR5cGUocG9saWN5Q2hlY2tlcigp
LmxvYWRUeXBlKCkpKTsKICAgICAgICAgcG9saWN5Q2hlY2tlcigpLmNoZWNrTmV3V2luZG93UG9s
aWN5KFdURk1vdmUoYWN0aW9uKSwgV1RGTW92ZShyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpKSwg
eyB9LCByZXF1ZXN0LmZyYW1lTmFtZSgpLCBbdGhpc10gKGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgV2Vha1B0cjxGb3JtU3RhdGU+JiYgZm9ybVN0YXRlLCBjb25zdCBTdHJpbmcmIGZy
YW1lTmFtZSwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBTaG91bGRDb250aW51ZSBz
aG91bGRDb250aW51ZSkgewogICAgICAgICAgICAgY29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQ
b2xpY3kocmVxdWVzdCwgZm9ybVN0YXRlLmdldCgpLCBmcmFtZU5hbWUsIGFjdGlvbiwgc2hvdWxk
Q29udGludWUsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5l
clBvbGljeTo6U3VwcHJlc3MpOwogICAgICAgICB9KTsKQEAgLTE1OTAsNyArMTU4Nyw3IEBAIHZv
aWQgRnJhbWVMb2FkZXI6OmxvYWRXaXRoRG9jdW1lbnRMb2FkZXIKICAgICB9CiAKICAgICBwb2xp
Y3lDaGVja2VyKCkuc2V0TG9hZFR5cGUodHlwZSk7Ci0gICAgUkVMRUFTRV9BU1NFUlQoIWlzQmFj
a0ZvcndhcmRMb2FkVHlwZSh0eXBlKSB8fCBoaXN0b3J5KCkucHJvdmlzaW9uYWxJdGVtKCkpOwor
ICAgIEFTU0VSVCghaXNCYWNrRm9yd2FyZExvYWRUeXBlKHR5cGUpIHx8IGhpc3RvcnkoKS5wcm92
aXNpb25hbEl0ZW0oKSk7CiAgICAgYm9vbCBpc0Zvcm1TdWJtaXNzaW9uID0gZm9ybVN0YXRlOwog
CiAgICAgY29uc3QgU3RyaW5nJiBodHRwTWV0aG9kID0gbG9hZGVyLT5yZXF1ZXN0KCkuaHR0cE1l
dGhvZCgpOwpAQCAtMTYwMiw3ICsxNTk5LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFdpdGhE
b2N1bWVudExvYWRlcgogICAgICAgICBvbGREb2N1bWVudExvYWRlci0+c2V0VHJpZ2dlcmluZ0Fj
dGlvbihXVEZNb3ZlKGFjdGlvbikpOwogICAgICAgICBvbGREb2N1bWVudExvYWRlci0+c2V0TGFz
dENoZWNrZWRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCgpKTsKICAgICAgICAgcG9saWN5Q2hlY2tl
cigpLnN0b3BDaGVjaygpOwotICAgICAgICBSRUxFQVNFX0FTU0VSVCghaXNCYWNrRm9yd2FyZExv
YWRUeXBlKHBvbGljeUNoZWNrZXIoKS5sb2FkVHlwZSgpKSB8fCBoaXN0b3J5KCkucHJvdmlzaW9u
YWxJdGVtKCkpOworICAgICAgICBBU1NFUlQoIWlzQmFja0ZvcndhcmRMb2FkVHlwZShwb2xpY3lD
aGVja2VyKCkubG9hZFR5cGUoKSkgfHwgaGlzdG9yeSgpLnByb3Zpc2lvbmFsSXRlbSgpKTsKICAg
ICAgICAgcG9saWN5Q2hlY2tlcigpLmNoZWNrTmF2aWdhdGlvblBvbGljeShSZXNvdXJjZVJlcXVl
c3QobG9hZGVyLT5yZXF1ZXN0KCkpLCBSZXNvdXJjZVJlc3BvbnNlIHsgfSAgLyogcmVkaXJlY3RS
ZXNwb25zZSAqLywgb2xkRG9jdW1lbnRMb2FkZXIuZ2V0KCksIFdURk1vdmUoZm9ybVN0YXRlKSwg
W3RoaXMsIHByb3RlY3RlZEZyYW1lID0gbWFrZVJlZihtX2ZyYW1lKV0gKGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgV2Vha1B0cjxGb3JtU3RhdGU+JiYsIE5hdmlnYXRpb25Qb2xpY3lE
ZWNpc2lvbiBuYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24pIHsKICAgICAgICAgICAgIGNvbnRpbnVl
RnJhZ21lbnRTY3JvbGxBZnRlck5hdmlnYXRpb25Qb2xpY3kocmVxdWVzdCwgbmF2aWdhdGlvblBv
bGljeURlY2lzaW9uID09IE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbjo6Q29udGludWVMb2FkKTsK
ICAgICAgICAgfSwgUG9saWN5RGVjaXNpb25Nb2RlOjpTeW5jaHJvbm91cyk7CkBAIC0xNjM3LDcg
KzE2MzQsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkV2l0aERvY3VtZW50TG9hZGVyCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBSRUxFQVNFX0FTU0VSVCghaXNCYWNrRm9yd2FyZExv
YWRUeXBlKHBvbGljeUNoZWNrZXIoKS5sb2FkVHlwZSgpKSB8fCBoaXN0b3J5KCkucHJvdmlzaW9u
YWxJdGVtKCkpOworICAgIEFTU0VSVCghaXNCYWNrRm9yd2FyZExvYWRUeXBlKHBvbGljeUNoZWNr
ZXIoKS5sb2FkVHlwZSgpKSB8fCBoaXN0b3J5KCkucHJvdmlzaW9uYWxJdGVtKCkpOwogICAgIHBv
bGljeUNoZWNrZXIoKS5jaGVja05hdmlnYXRpb25Qb2xpY3koUmVzb3VyY2VSZXF1ZXN0KGxvYWRl
ci0+cmVxdWVzdCgpKSwgUmVzb3VyY2VSZXNwb25zZSB7IH0gLyogcmVkaXJlY3RSZXNwb25zZSAq
LywgbG9hZGVyLCBXVEZNb3ZlKGZvcm1TdGF0ZSksIFt0aGlzLCBwcm90ZWN0ZWRGcmFtZSA9IG1h
a2VSZWYobV9mcmFtZSksIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgY29tcGxldGlvbkhh
bmRsZXIgPSBjb21wbGV0aW9uSGFuZGxlckNhbGxlci5yZWxlYXNlKCldIChjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIFdlYWtQdHI8Rm9ybVN0YXRlPiYmIGZvcm1TdGF0ZSwgTmF2aWdh
dGlvblBvbGljeURlY2lzaW9uIG5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbikgbXV0YWJsZSB7CiAg
ICAgICAgIGNvbnRpbnVlTG9hZEFmdGVyTmF2aWdhdGlvblBvbGljeShyZXF1ZXN0LCBmb3JtU3Rh
dGUuZ2V0KCksIG5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiwgYWxsb3dOYXZpZ2F0aW9uVG9JbnZh
bGlkVVJMKTsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKQEAgLTI5OTcsNyArMjk5NCw2
IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRQb3N0UmVxdWVzdChGcmFtZUwKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIFJFTEVBU0VfQVNTRVJUKCFpc0JhY2tGb3J3
YXJkTG9hZFR5cGUocG9saWN5Q2hlY2tlcigpLmxvYWRUeXBlKCkpKTsKICAgICAgICAgcG9saWN5
Q2hlY2tlcigpLmNoZWNrTmV3V2luZG93UG9saWN5KFdURk1vdmUoYWN0aW9uKSwgV1RGTW92ZSh3
b3JraW5nUmVzb3VyY2VSZXF1ZXN0KSwgV1RGTW92ZShmb3JtU3RhdGUpLCBmcmFtZU5hbWUsIFt0
aGlzLCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIG9wZW5lclBvbGljeSwgY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgV2Vha1B0cjxGb3JtU3RhdGU+JiYgZm9ybVN0YXRlLCBjb25zdCBTdHJp
bmcmIGZyYW1lTmFtZSwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBTaG91bGRDb250
aW51ZSBzaG91bGRDb250aW51ZSkgbXV0YWJsZSB7CiAgICAgICAgICAgICBjb250aW51ZUxvYWRB
ZnRlck5ld1dpbmRvd1BvbGljeShyZXF1ZXN0LCBmb3JtU3RhdGUuZ2V0KCksIGZyYW1lTmFtZSwg
YWN0aW9uLCBzaG91bGRDb250aW51ZSwgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBvcGVu
ZXJQb2xpY3kpOwogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAJKHJldmlzaW9uIDI0MTc4MCkKKysrIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
ODAsOSArODAsOSBAQCBQb2xpY3lDaGVja0lkZW50aWZpZXIgUG9saWN5Q2hlY2tJZGVudGlmCiAK
IGJvb2wgUG9saWN5Q2hlY2tJZGVudGlmaWVyOjppc1ZhbGlkRm9yKFBvbGljeUNoZWNrSWRlbnRp
ZmllciBleHBlY3RlZElkZW50aWZpZXIpCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9NRVNT
QUdFKG1fcG9saWN5Q2hlY2ssICJSZWNlaXZlZCAwIGFzIHRoZSBwb2xpY3kgY2hlY2sgaWRlbnRp
ZmllciIpOwotICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfTUVTU0FHRShtX3Byb2Nlc3MgPT0gZXhw
ZWN0ZWRJZGVudGlmaWVyLm1fcHJvY2VzcywgIlJlY2VpdmVkIGEgcG9saWN5IGNoZWNrIHJlc3Bv
bnNlIGZvciBhIHdyb25nIHByb2Nlc3MiKTsKLSAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX01FU1NB
R0UobV9wb2xpY3lDaGVjayA8PSBleHBlY3RlZElkZW50aWZpZXIubV9wb2xpY3lDaGVjaywgIlJl
Y2VpdmVkIGEgcG9saWN5IGNoZWNrIHJlc3BvbnNlIGZyb20gdGhlIGZ1dHVyZSIpOworICAgIEFT
U0VSVF9XSVRIX01FU1NBR0UobV9wb2xpY3lDaGVjaywgIlJlY2VpdmVkIDAgYXMgdGhlIHBvbGlj
eSBjaGVjayBpZGVudGlmaWVyIik7CisgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShtX3Byb2Nlc3Mg
PT0gZXhwZWN0ZWRJZGVudGlmaWVyLm1fcHJvY2VzcywgIlJlY2VpdmVkIGEgcG9saWN5IGNoZWNr
IHJlc3BvbnNlIGZvciBhIHdyb25nIHByb2Nlc3MiKTsKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdF
KG1fcG9saWN5Q2hlY2sgPD0gZXhwZWN0ZWRJZGVudGlmaWVyLm1fcG9saWN5Q2hlY2ssICJSZWNl
aXZlZCBhIHBvbGljeSBjaGVjayByZXNwb25zZSBmcm9tIHRoZSBmdXR1cmUiKTsKICAgICByZXR1
cm4gbV9wb2xpY3lDaGVjayA9PSBleHBlY3RlZElkZW50aWZpZXIubV9wb2xpY3lDaGVjazsKIH0K
IApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gMjQxNzgwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTktMDItMTkgIFJ5b3N1a2UgTml3YSAg
PHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjQwOTA5KTogUmVsZWFz
ZSBhc3NlcnRpb24gaW4gRnJhbWVMb2FkZXI6OmxvYWRQb3N0UmVxdWVzdCB3aGVuIG9wZW5pbmcg
bmV3IHdpbmRvdworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTk0ODIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4gYW5kIEJyYWR5
IEVpZHNvbi4KKworICAgICAgICBBZGRlZCBhIHJlZ3Jlc3Npb24gdGVzdC4KKworICAgICAgICAq
IGZhc3QvbG9hZGVyL25hdmlnYXRlLXdpdGgtcG9zdC10by1uZXctdGFyZ2V0LWFmdGVyLWJhY2st
Zm9yd2FyZC1uYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9s
b2FkZXIvbmF2aWdhdGUtd2l0aC1wb3N0LXRvLW5ldy10YXJnZXQtYWZ0ZXItYmFjay1mb3J3YXJk
LW5hdmlnYXRpb24uaHRtbDogQWRkZWQuCisKIDIwMTktMDItMTMgIEJhYmFrIFNoYWZpZWkgIDxi
c2hhZmllaUBhcHBsZS5jb20+CiAKICAgICAgICAgQ2hlcnJ5LXBpY2sgcjI0MTQ5OS4gcmRhcjov
L3Byb2JsZW0vNDgwNjU2MzQKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL25hdmlnYXRl
LXdpdGgtcG9zdC10by1uZXctdGFyZ2V0LWFmdGVyLWJhY2stZm9yd2FyZC1uYXZpZ2F0aW9uLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9uYXZpZ2F0
ZS13aXRoLXBvc3QtdG8tbmV3LXRhcmdldC1hZnRlci1iYWNrLWZvcndhcmQtbmF2aWdhdGlvbi1l
eHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvbmF2
aWdhdGUtd2l0aC1wb3N0LXRvLW5ldy10YXJnZXQtYWZ0ZXItYmFjay1mb3J3YXJkLW5hdmlnYXRp
b24tZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNSBAQAorQUxFUlQ6IFBB
U1MKK1RoaXMgdGVzdHMgbmF2aWdhdGluZyB2aWEgYW4gYW5jaG9yIGVsZW1lbnQgd2l0aCBhIG5v
bi1leGlzdGVudCB0YXJnZXQgbmFtZSwgd2hpY2ggc2hvdWxkIGNyZWF0ZSBhIG5ldyB3aW5kb3cu
CitXZWJLaXQgc2hvdWxkIG5vdCBoaXQgYW55IGFzc2VydGlvbnMgYW5kIGFsZXJ0ICJQQVNTIi4K
KworCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9uYXZpZ2F0ZS13aXRoLXBvc3QtdG8t
bmV3LXRhcmdldC1hZnRlci1iYWNrLWZvcndhcmQtbmF2aWdhdGlvbi5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL25hdmlnYXRlLXdpdGgtcG9zdC10by1uZXctdGFy
Z2V0LWFmdGVyLWJhY2stZm9yd2FyZC1uYXZpZ2F0aW9uLmh0bWwJKG5vbmV4aXN0ZW50KQorKysg
TGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvbmF2aWdhdGUtd2l0aC1wb3N0LXRvLW5ldy10YXJnZXQt
YWZ0ZXItYmFjay1mb3J3YXJkLW5hdmlnYXRpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDUxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0PgorCitp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0UnVubmVyLnNldENhbk9wZW5X
aW5kb3dzKCk7CisgICAgdGVzdFJ1bm5lci5zZXRDbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29t
cGxldGUoKTsKKyAgICB0ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0VXNlc1Bh
Z2VDYWNoZVByZWZlcmVuY2VLZXkiLCAxKTsKK30KKworaWYgKGxvY2F0aW9uLnNlYXJjaCA9PSAn
P3RoaXJkJykgeworICAgIGFsZXJ0KCdQQVNTJyk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30gZWxzZSBpZiAoc2VsZiA9PSB0
b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZShgPHA+VGhpcyB0ZXN0cyBuYXZpZ2F0aW5nIHZpYSBh
biBhbmNob3IgZWxlbWVudCB3aXRoIGEgbm9uLWV4aXN0ZW50IHRhcmdldCBuYW1lLCB3aGljaCBz
aG91bGQgY3JlYXRlIGEgbmV3IHdpbmRvdy48YnI+CitXZWJLaXQgc2hvdWxkIG5vdCBoaXQgYW55
IGFzc2VydGlvbnMgYW5kIGFsZXJ0ICJQQVNTIi48L3A+YCk7CisgICAgY29uc3QgZnJhbWUgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKKyAgICBmcmFtZS5zcmMgPSAnP2ZpcnN0
JzsKKyAgICBsZXQgc3RlcCA9IDA7CisgICAgZnJhbWUub25sb2FkID0gKCkgPT4geworICAgICAg
ICBzd2l0Y2ggKHN0ZXArKykgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICBzZXRUaW1l
b3V0KCgpID0+IGZyYW1lLnNyYyA9ICc/c2Vjb25kJywgMCk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBoaXN0b3J5LmJh
Y2soKSwgMCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICBkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKGZyYW1lKTsKK30gZWxzZSB7CisgICAgaWYgKGxvY2F0aW9u
LnNlYXJjaCA9PSAnP2ZpcnN0JykgeworICAgICAgICBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0o
J2xvYWRlZCcpKSB7CisgICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnbG9hZGVk
Jyk7CisgICAgICAgICAgICB3aW5kb3cub25sb2FkID0gKCkgPT4geworICAgICAgICAgICAgICAg
IHNldFRpbWVvdXQoKCkgPT4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZm9ybScpLnN1Ym1pdCgp
LCAwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBsb2NhbFN0
b3JhZ2Uuc2V0SXRlbSgnbG9hZGVkJywgJ3RydWUnKTsKKyAgICB9CisgICAgZG9jdW1lbnQud3Jp
dGUobG9jYXRpb24uc2VhcmNoKTsKKyAgICBkb2N1bWVudC53cml0ZShgIDxmb3JtIGFjdGlvbj0i
P3RoaXJkIiBtZXRob2Q9InBvc3QiIHRhcmdldD0idW5rbm93blRhcmdldCI+PGlucHV0IHR5cGU9
InRleHQiIG5hbWU9InF1ZXJ5Ij48aW5wdXQgdHlwZT0ic3VibWl0Ij48L2E+YCk7Cit9CisKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>