<?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>194313</bug_id>
          
          <creation_ts>2019-02-05 15:47:34 -0800</creation_ts>
          <short_desc>fast/forms/ios/force-gregorian-calendar-for-credit-card-expiry.html does not work on iPad</short_desc>
          <delta_ts>2019-02-11 11:32:01 -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>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=193767</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jonathan Bedard">jbedard</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>ap</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>lforschler</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1502566</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-02-05 15:47:34 -0800</bug_when>
    <thetext>This prevents us from running fast/forms/ios/force-gregorian-calendar-for-credit-card-expiry.html. On iPad, calendarTypeString will not be defined.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1504882</commentid>
    <comment_count>1</comment_count>
      <attachid>361684</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-02-11 09:09:53 -0800</bug_when>
    <thetext>Created attachment 361684
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1504896</commentid>
    <comment_count>2</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-02-11 09:46:40 -0800</bug_when>
    <thetext>Don&apos;t we need to un-skip this test on iPad in this patch too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1504899</commentid>
    <comment_count>3</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-02-11 09:49:29 -0800</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #2)
&gt; Don&apos;t we need to un-skip this test on iPad in this patch too?

Good catch :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1504900</commentid>
    <comment_count>4</comment_count>
      <attachid>361688</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-02-11 09:50:04 -0800</bug_when>
    <thetext>Created attachment 361688
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1504930</commentid>
    <comment_count>5</comment_count>
      <attachid>361688</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-02-11 11:01:56 -0800</bug_when>
    <thetext>Comment on attachment 361688
Patch

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1504947</commentid>
    <comment_count>6</comment_count>
      <attachid>361688</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-11 11:30:11 -0800</bug_when>
    <thetext>Comment on attachment 361688
Patch

Clearing flags on attachment: 361688

Committed r241275: &lt;https://trac.webkit.org/changeset/241275&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1504948</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-11 11:30:12 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1504950</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-02-11 11:32:01 -0800</bug_when>
    <thetext>&lt;rdar://problem/47972170&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>361684</attachid>
            <date>2019-02-11 09:09:53 -0800</date>
            <delta_ts>2019-02-11 09:50:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194313-20190211090952.patch</filename>
            <type>text/plain</type>
            <size>17969</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxMjYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU5OWNmZjE1ODEwMzc5MDc2
MTE5YWRmZDIwMGIxY2I1NzZhN2ZmMmYuLjAyZmE0M2ZkNjY0MDgwNjNmM2U2OTZiMTBmNmMyNDNm
ZmRhZDY4MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTktMDItMTEgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgZmFzdC9mb3Jtcy9pb3Mv
Zm9yY2UtZ3JlZ29yaWFuLWNhbGVuZGFyLWZvci1jcmVkaXQtY2FyZC1leHBpcnkuaHRtbCBkb2Vz
IG5vdCB3b3JrIG9uIGlQYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5NDMxMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1ha2UgYC1kYXRlVGltZVBpY2tlckNhbGVuZGFyVHlwZWAgd29yayBvbiBpUGFk
IGJ5IGhhbmRsaW5nIHRoZSBjYXNlIHdoZXJlIHRoZSBkYXRlIHBpY2tlciBjb250cm9sIGlzIGEK
KyAgICAgICAgV0tEYXRlVGltZVBvcG92ZXIuIFRoaXMgZml4ZXMgVUlTY3JpcHRDb250cm9sbGVy
OjpjYWxlbmRhclR5cGUoKSByZXR1cm5pbmcgbnVsbCBvbiBpUGFkLgorCisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1JbnB1dENvbnRyb2wubW06CisgICAgICAgICgtW1dLRm9y
bUlucHV0Q29udHJvbCBkYXRlVGltZVBpY2tlckNhbGVuZGFyVHlwZV0pOgorICAgICAgICAoLVtX
S0RhdGVUaW1lUG9wb3ZlciBjYWxlbmRhclR5cGVdKToKKwogMjAxOS0wMi0xMSAgQ2FybG9zIEdh
cmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dQRV0gRG8gbm90
IHRyeSB0byBjcmVhdGUgZW1wdHkgZWdsIHdpbmRvd3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1JbnB1dENvbnRyb2wubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtSW5wdXRDb250cm9sLm1tCmluZGV4IDk4ZTE0
Njc4ZTE3ZDQ2ZGE5OTQ1OWY1YjZkMWQwNTRlODBkNTA0NTkuLmNmZWQyZDUwYTZjOGJhMDNkNGQy
MDE5ZTExZTZhOGNkMDk4MGE0NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9mb3Jtcy9XS0Zvcm1JbnB1dENvbnRyb2wubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybUlucHV0Q29udHJvbC5tbQpAQCAtNTMsNiArNTMsNyBAQCBA
aW50ZXJmYWNlIFdLRGF0ZVRpbWVQb3BvdmVyIDogV0tGb3JtUm90YXRpbmdBY2Nlc3NvcnlQb3Bv
dmVyPFdLRm9ybUNvbnRyb2w+IHsKIH0KIC0gKGlkKWluaXRXaXRoVmlldzooV0tDb250ZW50Vmll
dyAqKXZpZXcgZGF0ZVBpY2tlck1vZGU6KFVJRGF0ZVBpY2tlck1vZGUpbW9kZTsKIC0gKFdLRGF0
ZVRpbWVQb3BvdmVyVmlld0NvbnRyb2xsZXIgKil2aWV3Q29udHJvbGxlcjsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcgKmNhbGVuZGFyVHlwZTsKIEBlbmQKIAogQGlu
dGVyZmFjZSBXS0RhdGVUaW1lUGlja2VyIDogTlNPYmplY3Q8V0tGb3JtQ29udHJvbD4gewpAQCAt
MjM5LDcgKzI0MCw3IEBAIEBlbmQKIAogLy8gV0tGb3JtSW5wdXRDb250cm9sCiBAaW1wbGVtZW50
YXRpb24gV0tGb3JtSW5wdXRDb250cm9sIHsKLSAgICBSZXRhaW5QdHI8aWQ8V0tGb3JtQ29udHJv
bD4+IF9jb250cm9sOworICAgIFJldGFpblB0cjxOU09iamVjdCA8V0tGb3JtQ29udHJvbD4+IF9j
b250cm9sOwogfQogCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhWaWV3OihXS0NvbnRlbnRWaWV3
ICopdmlldwpAQCAtMjk4LDEyICsyOTksMTggQEAgLSAoVUlWaWV3ICopYXNzaXN0YW50Vmlldwog
QGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tGb3JtSW5wdXRDb250cm9sIChXS1Rlc3RpbmcpCisK
IC0gKE5TU3RyaW5nICopZGF0ZVRpbWVQaWNrZXJDYWxlbmRhclR5cGUKIHsKLSAgICBpZiAoWyhO
U09iamVjdCAqKV9jb250cm9sLmdldCgpIGlzS2luZE9mQ2xhc3M6V0tEYXRlVGltZVBpY2tlci5j
bGFzc10pCisgICAgaWYgKFtfY29udHJvbCBpc0tpbmRPZkNsYXNzOldLRGF0ZVRpbWVQaWNrZXIu
Y2xhc3NdKQogICAgICAgICByZXR1cm4gWyhXS0RhdGVUaW1lUGlja2VyICopX2NvbnRyb2wuZ2V0
KCkgY2FsZW5kYXJUeXBlXTsKKworICAgIGlmIChbX2NvbnRyb2wgaXNLaW5kT2ZDbGFzczpXS0Rh
dGVUaW1lUG9wb3Zlci5jbGFzc10pCisgICAgICAgIHJldHVybiBbKFdLRGF0ZVRpbWVQb3BvdmVy
ICopX2NvbnRyb2wuZ2V0KCkgY2FsZW5kYXJUeXBlXTsKKwogICAgIHJldHVybiBuaWw7CiB9CisK
IEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdLRGF0ZVRpbWVQb3BvdmVyVmlld0NvbnRyb2xsZXIK
QEAgLTM4OCw2ICszOTUsMTIgQEAgLSAoVUlWaWV3ICopY29udHJvbFZpZXcKICAgICByZXR1cm4g
bmlsOwogfQogCistIChOU1N0cmluZyAqKWNhbGVuZGFyVHlwZQoreworICAgIFdLRGF0ZVRpbWVQ
aWNrZXIgKmRhdGVUaW1lUGlja2VyID0gKFdLRGF0ZVRpbWVQaWNrZXIgKilzZWxmLnZpZXdDb250
cm9sbGVyLmlubmVyQ29udHJvbDsKKyAgICByZXR1cm4gZGF0ZVRpbWVQaWNrZXIuZGF0ZVBpY2tl
ci5jYWxlbmRhci5jYWxlbmRhcklkZW50aWZpZXI7Cit9CisKIEBlbmQKIAogI2VuZGlmIC8vIFBM
QVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggMDNiYTRkYzk3NzBkNGNiMzE0MzJhNTkwNjBkOTBiZjExODA5Mjg1OS4u
M2UwMzBiZjRkNjMxOTk0Yjc1NjNjNmM5ZjBmY2YwMTdkMzllYmZlNiAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE5
LTAyLTExICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAg
IGZhc3QvZm9ybXMvaW9zL2ZvcmNlLWdyZWdvcmlhbi1jYWxlbmRhci1mb3ItY3JlZGl0LWNhcmQt
ZXhwaXJ5Lmh0bWwgZG9lcyBub3Qgd29yayBvbiBpUGFkCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTQzMTMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBoZWxwZXIgdG8gZGV0ZXJtaW5lIHdoZXRo
ZXIgdGhlIHdlYiB2aWV3IGlzIHByZXNlbnRpbmcgbW9kYWwgVUkuCisKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tOgorICAgICAgICAoV1RSOjpV
SVNjcmlwdENvbnRyb2xsZXI6OmlzUHJlc2VudGluZ01vZGFsbHkgY29uc3QpOgorICAgICAgICAq
IFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJv
bGxlci5pZGw6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlT
Y3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpp
c1ByZXNlbnRpbmdNb2RhbGx5IGNvbnN0KToKKyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVkL1VJ
U2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLm1tOgorICAgICAgICAoV1RSOjpVSVNjcmlw
dENvbnRyb2xsZXI6OmNhbGVuZGFyVHlwZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tOgorICAgICAgICAoV1RS
OjpVSVNjcmlwdENvbnRyb2xsZXI6OmlzUHJlc2VudGluZ01vZGFsbHkgY29uc3QpOgorICAgICAg
ICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmNhbGVuZGFyVHlwZSBjb25zdCk6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tOgorICAgICAg
ICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmNhbGVuZGFyVHlwZSBjb25zdCk6CisKIDIwMTkt
MDItMTEgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFtHU3RyZWFtZXJdIEdzdE1hcHBlZEJ1ZmZlciB0ZXN0c3VpdGUgYnVpbGQgZmFpbHMKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0g
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCmluZGV4
IGRiMTFhZDY0MTU2MmQxZDNhMzE2NDI5NGI2NTQ0NmRmOGY1M2EzOWMuLmUwMzBjZDY1YTA3MTNm
ZmE0NzdjZWFiZGZmMGE1NzcyNjdiZDhjNGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbQpAQCAtMTc1LDYgKzE3NSwxMSBAQCB2b2lk
IFVJU2NyaXB0Q29udHJvbGxlcjo6c2VsZWN0Rm9ybUFjY2Vzc29yeVBpY2tlclJvdyhsb25nIHJv
d0luZGV4KQogewogfQogCitib29sIFVJU2NyaXB0Q29udHJvbGxlcjo6aXNQcmVzZW50aW5nTW9k
YWxseSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gVUlTY3JpcHRDb250cm9sbGVyOjp0ZXh0Q29udGVudFR5cGUoKSBjb25zdAogewog
ICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9V
SVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbCBiL1Rvb2xzL1Rl
c3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxl
ci5pZGwKaW5kZXggZTU0NDY3ZmY0NDhhMGE3YzM3MDcwZTliN2QwZjE4ODI1Yzk0MzE0My4uM2Nl
MWViNTZmN2ZhOTU1MGQ1ZTk5MTczZWFlZmU1Yjc4ZDNkZDQxMiAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9s
bGVyLmlkbAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5k
aW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCkBAIC0yMzAsNiArMjMwLDcgQEAgaW50ZXJmYWNl
IFVJU2NyaXB0Q29udHJvbGxlciB7CiAgICAgdm9pZCBzZXRNaW5pbXVtRWZmZWN0aXZlV2lkdGgo
ZG91YmxlIGVmZmVjdGl2ZVdpZHRoKTsKIAogICAgIHZvaWQgcmVzaWduRmlyc3RSZXNwb25kZXIo
KTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBpc1ByZXNlbnRpbmdNb2RhbGx5Owog
CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZSBjb250ZW50T2Zmc2V0WDsKICAgICByZWFk
b25seSBhdHRyaWJ1dGUgZG91YmxlIGNvbnRlbnRPZmZzZXRZOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcCBi
L1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxl
ci5jcHAKaW5kZXggNGI0NWQ1NmZkYzJjYjJjYTRkYWUwZjY2ZGQxZjUyN2VlZmU3YzM5ZS4uZjZk
ODRkNjUzYzEzNzBjOTI3NjM1YzZkYjRmOWJiZTcyMzM2OGFmZiAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcAor
KysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRy
b2xsZXIuY3BwCkBAIC0zMzYsNiArMzM2LDExIEBAIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBV
SVNjcmlwdENvbnRyb2xsZXI6OmZvcm1JbnB1dExhYmVsKCkgY29uc3QKICAgICByZXR1cm4gbnVs
bHB0cjsKIH0KIAorYm9vbCBVSVNjcmlwdENvbnRyb2xsZXI6OmlzUHJlc2VudGluZ01vZGFsbHko
KSBjb25zdAoreworICAgIHJldHVybiBmYWxzZTsKK30KKwogZG91YmxlIFVJU2NyaXB0Q29udHJv
bGxlcjo6Y29udGVudE9mZnNldFgoKSBjb25zdAogewogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9s
bGVyLmggYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENv
bnRyb2xsZXIuaAppbmRleCA5NTZjMzQ1YzMyZjYxMzUxY2ZlZGUxMTQzZjRhNjFjMDBlNjZjNzQw
Li5mNzcwNTNiNWZhNGIyYzM0NGFkNGQxZjIwMzI1NDBlODA1ZDUxYWMzIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIu
aAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENv
bnRyb2xsZXIuaApAQCAtMTE0LDYgKzExNCw4IEBAIHB1YmxpYzoKIAogICAgIEpTT2JqZWN0UmVm
IGNvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbShKU1N0cmluZ1JlZikgY29uc3Q7CiAgICAgdm9p
ZCBvdmVycmlkZVByZWZlcmVuY2UoSlNTdHJpbmdSZWYgcHJlZmVyZW5jZSwgSlNTdHJpbmdSZWYg
dmFsdWUpOworCisgICAgYm9vbCBpc1ByZXNlbnRpbmdNb2RhbGx5KCkgY29uc3Q7CiAgICAgCiAg
ICAgZG91YmxlIGNvbnRlbnRPZmZzZXRYKCkgY29uc3Q7CiAgICAgZG91YmxlIGNvbnRlbnRPZmZz
ZXRZKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1VJU2NyaXB0
Q29udHJvbGxlckNvY29hLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9VSVNjcmlwdENvbnRy
b2xsZXJDb2NvYS5tbQppbmRleCA3MDJlNTE4NTUyMzMxNGJlOGQ5NzVlZGNlYTE5NGI4NDFmMGZh
NDhlLi5iMmI0NWRmZGU0Y2YzNWQwNWI2YWNmMWEzMDBhZDZiNjY0MzM2ZDc5IDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLm1tCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW0KQEAgLTE4
MCwxOSArMTgwLDYgQEAgdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNldERlZmF1bHRDYWxlbmRh
clR5cGUoSlNTdHJpbmdSZWYgY2FsZW5kYXJJZGVudGlmaWVyKQogI2VuZGlmCiB9CiAKLUpTT2Jq
ZWN0UmVmIFVJU2NyaXB0Q29udHJvbGxlcjo6Y2FsZW5kYXJUeXBlKCkgY29uc3QKLXsKLSNpZiBX
S19BUElfRU5BQkxFRAotICAgIFdLV2ViVmlldyAqd2ViVmlldyA9IFRlc3RDb250cm9sbGVyOjpz
aW5nbGV0b24oKS5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKTsKLSAgICBVSVZpZXcgKmNv
bnRlbnRWaWV3ID0gW3dlYlZpZXcgdmFsdWVGb3JLZXlQYXRoOkAiX2N1cnJlbnRDb250ZW50Vmll
dyJdOwotICAgIE5TU3RyaW5nICpjYWxlbmRhclR5cGVTdHJpbmcgPSBbY29udGVudFZpZXcgdmFs
dWVGb3JLZXlQYXRoOkAiZm9ybUlucHV0Q29udHJvbC5kYXRlVGltZVBpY2tlckNhbGVuZGFyVHlw
ZSJdOwotICAgIGF1dG8ganNDb250ZXh0ID0gbV9jb250ZXh0LT5qc0NvbnRleHQoKTsKLSAgICBy
ZXR1cm4gSlNWYWx1ZVRvT2JqZWN0KGpzQ29udGV4dCwgW0pTVmFsdWUgdmFsdWVXaXRoT2JqZWN0
OmNhbGVuZGFyVHlwZVN0cmluZyBpbkNvbnRleHQ6W0pTQ29udGV4dCBjb250ZXh0V2l0aEpTR2xv
YmFsQ29udGV4dFJlZjpqc0NvbnRleHRdXS5KU1ZhbHVlUmVmLCBudWxscHRyKTsKLSNlbHNlCi0g
ICAgcmV0dXJuIG51bGxwdHI7Ci0jZW5kaWYKLX0KLQogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IFVJU2NyaXB0Q29udHJvbGxlcjo6bGFzdFVuZG9MYWJlbCgpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IEpTU3RyaW5nQ3JlYXRlV2l0aENGU3RyaW5nKChfX2JyaWRnZSBDRlN0cmluZ1JlZilwbGF0Zm9y
bVVuZG9NYW5hZ2VyKCkudW5kb0FjdGlvbk5hbWUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCmluZGV4IDQ5NTI3NjVhMGFjZmQz
ZGUzZjE4MmJlMjhlMmZlOGUxOTM5NTY4M2IuLjZjMTBmMDZkMDMyMjViMGU1MDk0YmIxM2EzZTg3
ZDA3NzczMDMxMjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2Ny
aXB0Q29udHJvbGxlcklPUy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNj
cmlwdENvbnRyb2xsZXJJT1MubW0KQEAgLTQ1Myw2ICs0NTMsMTIgQEAgdm9pZCBVSVNjcmlwdENv
bnRyb2xsZXI6OnNldFRpbWVQaWNrZXJWYWx1ZShsb25nIGhvdXIsIGxvbmcgbWludXRlKQogICAg
IFt3ZWJWaWV3IHNldFRpbWVQaWNrZXJWYWx1ZVRvSG91cjpob3VyIG1pbnV0ZTptaW51dGVdOwog
fQogCitib29sIFVJU2NyaXB0Q29udHJvbGxlcjo6aXNQcmVzZW50aW5nTW9kYWxseSgpIGNvbnN0
Cit7CisgICAgVGVzdFJ1bm5lcldLV2ViVmlldyAqd2ViVmlldyA9IFRlc3RDb250cm9sbGVyOjpz
aW5nbGV0b24oKS5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKTsKKyAgICByZXR1cm4gISF3
ZWJWaWV3LndpbmRvdy5yb290Vmlld0NvbnRyb2xsZXIucHJlc2VudGVkVmlld0NvbnRyb2xsZXI7
Cit9CisKIHN0YXRpYyBDR1BvaW50IGNvbnRlbnRPZmZzZXRCb3VuZGVkSW5WYWxpZFJhbmdlKFVJ
U2Nyb2xsVmlldyAqc2Nyb2xsVmlldywgQ0dQb2ludCBjb250ZW50T2Zmc2V0KQogewogICAgIFVJ
RWRnZUluc2V0cyBjb250ZW50SW5zZXRzID0gc2Nyb2xsVmlldy5jb250ZW50SW5zZXQ7CkBAIC05
NTQsNiArOTYwLDE1IEBAIE5TVW5kb01hbmFnZXIgKlVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZv
cm1VbmRvTWFuYWdlcigpIGNvbnN0CiAgICAgcmV0dXJuIFsoVUlWaWV3ICopW1Rlc3RDb250cm9s
bGVyOjpzaW5nbGV0b24oKS5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKSB2YWx1ZUZvcktl
eVBhdGg6QCJfY3VycmVudENvbnRlbnRWaWV3Il0gdW5kb01hbmFnZXJdOwogfQogCitKU09iamVj
dFJlZiBVSVNjcmlwdENvbnRyb2xsZXI6OmNhbGVuZGFyVHlwZSgpIGNvbnN0Cit7CisgICAgV0tX
ZWJWaWV3ICp3ZWJWaWV3ID0gVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLm1haW5XZWJWaWV3
KCktPnBsYXRmb3JtVmlldygpOworICAgIFVJVmlldyAqY29udGVudFZpZXcgPSBbd2ViVmlldyB2
YWx1ZUZvcktleVBhdGg6QCJfY3VycmVudENvbnRlbnRWaWV3Il07CisgICAgTlNTdHJpbmcgKmNh
bGVuZGFyVHlwZVN0cmluZyA9IFtjb250ZW50VmlldyB2YWx1ZUZvcktleVBhdGg6QCJmb3JtSW5w
dXRDb250cm9sLmRhdGVUaW1lUGlja2VyQ2FsZW5kYXJUeXBlIl07CisgICAgYXV0byBqc0NvbnRl
eHQgPSBtX2NvbnRleHQtPmpzQ29udGV4dCgpOworICAgIHJldHVybiBKU1ZhbHVlVG9PYmplY3Qo
anNDb250ZXh0LCBbSlNWYWx1ZSB2YWx1ZVdpdGhPYmplY3Q6Y2FsZW5kYXJUeXBlU3RyaW5nIGlu
Q29udGV4dDpbSlNDb250ZXh0IGNvbnRleHRXaXRoSlNHbG9iYWxDb250ZXh0UmVmOmpzQ29udGV4
dF1dLkpTVmFsdWVSZWYsIG51bGxwdHIpOworfQorCiB9CiAKICNlbmRpZiAvLyBQTEFURk9STShJ
T1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVUlTY3Jp
cHRDb250cm9sbGVyTWFjLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVUlTY3JpcHRD
b250cm9sbGVyTWFjLm1tCmluZGV4IDc1N2ZhMDZiZDc4ZjE4MzNmMTNiMzhjYmM5YjAzMGY5MzQx
OTc2M2YuLjdjYzE1MzExZGJlODc0Yjk0YjIzYzQyOTE0NDNlZDExOGJhODcyZjYgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1hYy5tbQor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0K
QEAgLTIxNCw0ICsyMTQsOSBAQCBOU1VuZG9NYW5hZ2VyICpVSVNjcmlwdENvbnRyb2xsZXI6OnBs
YXRmb3JtVW5kb01hbmFnZXIoKSBjb25zdAogICAgIHJldHVybiBUZXN0Q29udHJvbGxlcjo6c2lu
Z2xldG9uKCkubWFpbldlYlZpZXcoKS0+cGxhdGZvcm1WaWV3KCkudW5kb01hbmFnZXI7CiB9CiAK
K0pTT2JqZWN0UmVmIFVJU2NyaXB0Q29udHJvbGxlcjo6Y2FsZW5kYXJUeXBlKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYmRm
YWE1Y2E0M2U1YzA0YjIxMzFhMzIwMTIwNDJjN2JmMGM3ODhjMi4uZWEzOGNkNjFlNjdlOTgxNzRi
MmE3ZWViMDcxOWE3OWI3NTZhM2VhYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE5LTAyLTEx
ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIGZhc3Qv
Zm9ybXMvaW9zL2ZvcmNlLWdyZWdvcmlhbi1jYWxlbmRhci1mb3ItY3JlZGl0LWNhcmQtZXhwaXJ5
Lmh0bWwgZG9lcyBub3Qgd29yayBvbiBpUGFkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTQzMTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGp1c3RzIGFuIGV4aXN0aW5nIGxheW91dCB0ZXN0IHRvIHdv
cmsgb24gYm90aCBpUGhvbmUgYW5kIGlQYWQgc2ltdWxhdG9ycy4KKworICAgICAgICAqIGZhc3Qv
Zm9ybXMvaW9zL2ZvcmNlLWdyZWdvcmlhbi1jYWxlbmRhci1mb3ItY3JlZGl0LWNhcmQtZXhwaXJ5
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lvcy9mb3JjZS1ncmVnb3JpYW4t
Y2FsZW5kYXItZm9yLWNyZWRpdC1jYXJkLWV4cGlyeS5odG1sOgorCisgICAgICAgIE1ha2UgdGhp
cyB0ZXN0IHdhaXQgYWZ0ZXIgYmx1cnJpbmcgdGhlIGN1cnJlbnRseSBmb2N1c2VkIGVsZW1lbnQs
IHN1Y2ggdGhhdCB0YXBwaW5nIHRvIGZvY3VzIHRoZSBuZXh0IGZvcm0KKyAgICAgICAgY29udHJv
bCBkb2Vzbid0IGZhaWwuIE5vdGFibHkgb24gaVBhZCwgbm90IHdhaXRpbmcgZm9yIHRoZSBwb3Bv
dmVyIHRvIGRpc21pc3MgbWVhbnQgdGhhdCBzdWJzZXF1ZW50IHRhcHMgd291bGQKKyAgICAgICAg
YmUgZGlzcGF0Y2hlZCB0b28gc29vbiwgYW5kIGhpdC10ZXN0IHRvIHRoZSBwb3BvdmVyIHZpZXcg
YmVpbmcgZGlzbWlzc2VkIHJhdGhlciB0aGFuIFdLV2ViVmlldy4KKworICAgICAgICAqIHJlc291
cmNlcy91aS1oZWxwZXIuanM6CisKKyAgICAgICAgQWRkIGhlbHBlcnMgdG8gcXVlcnkgd2hldGhl
ciBvciBub3QgdGhlIGtleWJvYXJkIGlzIHNob3duLCBhbmQgd2hldGhlciBvciBub3QgYSB2aWV3
IGNvbnRyb2xsZXIgaXMgYmVpbmcgbW9kYWxseQorICAgICAgICBwcmVzZW50ZWQgb3ZlciB0aGUg
Y3VycmVudCByb290IHZpZXcgY29udHJvbGxlciAodGhpcyBpcyB0aGUgY2FzZSB3aGVuIGludGVy
YWN0aW5nIHdpdGggZGF0ZSBwaWNrZXJzIG9uIGlQYWQpLgorCisgICAgICAgICh3aW5kb3cuVUlI
ZWxwZXIuaXNTaG93aW5nS2V5Ym9hcmQpOgorICAgICAgICAod2luZG93LlVJSGVscGVyLmlzUHJl
c2VudGluZ01vZGFsbHkpOgorICAgICAgICAod2luZG93LlVJSGVscGVyLmRlYWN0aXZhdGVGb3Jt
Q29udHJvbCk6CisKKyAgICAgICAgQWRkIGEgbmV3IGhlbHBlciBtZXRob2QgdG8gYmx1ciB0aGUg
Z2l2ZW4gZm9ybSBjb250cm9sIGVsZW1lbnQgYW5kIHdhaXQgZm9yIHdlYiB2aWV3IGNocm9tZSB0
byBmaW5pc2ggZGlzbWlzc2luZworICAgICAgICAob24gaU9TLCB0aGlzIGlzIGVpdGhlciB0aGUg
ZGF0ZSBwaWNrZXIgaW5wdXQgdmlldyBpbiB0aGUga2V5Ym9hcmQgb24gaVBob25lLCBvciB0aGUg
ZGF0ZSBwaWNrZXIgcG9wb3ZlciB2aWV3CisgICAgICAgIGNvbnRyb2xsZXIgb24gaVBhZCkuCisK
KyAgICAgICAgKHdpbmRvdy5VSUhlbHBlci5pc1Nob3dpbmdEYXRhTGlzdFN1Z2dlc3Rpb25zKToK
KworICAgICAgICBEcml2ZS1ieSBmaXg6IHJlbW92ZSBhbiBleHRyYW5lb3VzIHRlcm5hcnkgY29u
ZGl0aW9uYWwgc3RhdGVtZW50LgorCiAyMDE5LTAyLTExICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJz
ZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIFdQRSBnYXJkZW5pbmcuIEFkZGlu
ZyBhZGRpdGlvbmFsIGJhc2VsaW5lcyBhZnRlciBmb250IHZhcmlhdGlvbnMKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW9zL2ZvcmNlLWdyZWdvcmlhbi1jYWxlbmRhci1mb3It
Y3JlZGl0LWNhcmQtZXhwaXJ5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
aW9zL2ZvcmNlLWdyZWdvcmlhbi1jYWxlbmRhci1mb3ItY3JlZGl0LWNhcmQtZXhwaXJ5LWV4cGVj
dGVkLnR4dAppbmRleCBlNTU4Njk5M2IxMDZmYTRlYzVkZDRiNDQzYzQwZGEzNmI4MjFjYzNkLi5l
N2JhNTBlZTI1ZGVlMGRjMzY2ODYwNmQyN2I4MDhlNzQzYjU0MGY0IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9mb3JjZS1ncmVnb3JpYW4tY2FsZW5kYXItZm9yLWNyZWRp
dC1jYXJkLWV4cGlyeS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9p
b3MvZm9yY2UtZ3JlZ29yaWFuLWNhbGVuZGFyLWZvci1jcmVkaXQtY2FyZC1leHBpcnktZXhwZWN0
ZWQudHh0CkBAIC0xLDQgKzEsNSBAQAogIAorCiBEYXRlIGlucHV0IGNvbnRyb2wgbWFya2VkIGFz
ICdjYy1leHAnIChkZWZhdWx0IGNhbGVuZGFyIHNldCB0byBqYXBhbmVzZSk6CiB7IGNhbGVuZGFy
VHlwZSA9IGdyZWdvcmlhbiB9CiBEYXRlIGlucHV0IGNvbnRyb2wgbm90IG1hcmtlZCBhcyAnY2Mt
ZXhwJyAoZGVmYXVsdCBjYWxlbmRhciBzZXQgdG8gamFwYW5lc2UpOgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9pb3MvZm9yY2UtZ3JlZ29yaWFuLWNhbGVuZGFyLWZvci1jcmVk
aXQtY2FyZC1leHBpcnkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW9zL2ZvcmNlLWdy
ZWdvcmlhbi1jYWxlbmRhci1mb3ItY3JlZGl0LWNhcmQtZXhwaXJ5Lmh0bWwKaW5kZXggODYyOGI2
MmEzNjgyZTMzYWUzNGFhMDM0MjFlNGZjNjUzMGNhN2IzYS4uMTZmMjM0OTVkZjdkOTE3OTUzZTdj
ZWJlNjgwM2ZlYmQ1M2JiMTIxOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9p
b3MvZm9yY2UtZ3JlZ29yaWFuLWNhbGVuZGFyLWZvci1jcmVkaXQtY2FyZC1leHBpcnkuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9mb3JjZS1ncmVnb3JpYW4tY2FsZW5kYXIt
Zm9yLWNyZWRpdC1jYXJkLWV4cGlyeS5odG1sCkBAIC0xMSwxMiArMTEsMTQgQEAKICAgICAgICAg
fQogCiAgICAgICAgICN0YXJnZXQwLCAjdGFyZ2V0MSB7Ci0gICAgICAgICAgICBmb250LXNpemU6
IDE1MHB4OworICAgICAgICAgICAgZm9udC1zaXplOiA0MHB4OworICAgICAgICAgICAgd2lkdGg6
IDEwMCU7CiAgICAgICAgIH0KICAgICA8L3N0eWxlPgogPC9oZWFkPgogPGJvZHk+CiAgICAgPGlu
cHV0IHR5cGU9J2RhdGUnIGlkPSd0YXJnZXQwJyBhdXRvY29tcGxldGU9J2NjLWV4cCc+CisgICAg
PGJyPgogICAgIDxpbnB1dCB0eXBlPSdkYXRlJyBpZD0ndGFyZ2V0MSc+CiAgICAgPHByZSBpZD0i
b3V0cHV0Ij48L3ByZT4KICAgICA8c2NyaXB0PgpAQCAtMzIsMTMgKzM0LDcgQEAKICAgICAgICAg
ICAgIG91dHB1dC5hcHBlbmRDaGlsZChwYXJhZ3JhcGgpOwogICAgICAgICB9CiAKLSAgICAgICAg
ZnVuY3Rpb24gdG9TdHJpbmcodmFsdWUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBg
eyBjYWxlbmRhclR5cGUgPSAke3ZhbHVlfSB9YDsKLSAgICAgICAgfQotCiAgICAgICAgIChhc3lu
YyAoKSA9PiB7Ci0KICAgICAgICAgICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIgfHwgIXRlc3RS
dW5uZXIucnVuVUlTY3JpcHQpIHsKICAgICAgICAgICAgICAgICBhcHBlbmRPdXRwdXQoYFRoaXMg
dGVzdCBjaGVja3MgaWYgYSBncmVnb3JpYW4gY2FsZW5kYXIgaXMgcHJlc2VudGVkIHdoZW4gYSBk
YXRlIGlucHV0IGNvbnRyb2wgbWFya2VkCiAgICAgICAgICAgICAgICAgICAgIGFzIGEgY3JlZGl0
IGNhcmQgZXhwaXJ5IGRhdGUgZmllbGQgKGllLiB0aHJvdWdoIGF1dG9jb21wbGV0ZT0nY2MtZXhw
JykgaXMgdGFwcGVkIG9uIFNhZmFyaSBpT1MuIEZvcgpAQCAtNDYsMjMgKzQyLDE2IEBACiAgICAg
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBhd2FpdCBV
SUhlbHBlci5zZXREZWZhdWx0Q2FsZW5kYXJUeXBlKCJqYXBhbmVzZSIpOwotICAgICAgICAgICAg
YXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVFbGVtZW50KHRhcmdldDApOwotICAgICAgICAgICAgYXBw
ZW5kT3V0cHV0KCJEYXRlIGlucHV0IGNvbnRyb2wgbWFya2VkIGFzICdjYy1leHAnIChkZWZhdWx0
IGNhbGVuZGFyIHNldCB0byBqYXBhbmVzZSk6Iik7Ci0gICAgICAgICAgICBhcHBlbmRPdXRwdXQo
dG9TdHJpbmcoYXdhaXQgVUlIZWxwZXIuY2FsZW5kYXJUeXBlKCkpKTsKLQotICAgICAgICAgICAg
YXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVFbGVtZW50KHRhcmdldDEpOwotICAgICAgICAgICAgYXBw
ZW5kT3V0cHV0KCJEYXRlIGlucHV0IGNvbnRyb2wgbm90IG1hcmtlZCBhcyAnY2MtZXhwJyAoZGVm
YXVsdCBjYWxlbmRhciBzZXQgdG8gamFwYW5lc2UpOiIpOwotICAgICAgICAgICAgYXBwZW5kT3V0
cHV0KHRvU3RyaW5nKGF3YWl0IFVJSGVscGVyLmNhbGVuZGFyVHlwZSgpKSk7Ci0KLSAgICAgICAg
ICAgIGF3YWl0IFVJSGVscGVyLnNldERlZmF1bHRDYWxlbmRhclR5cGUoImdyZWdvcmlhbiIpOwot
ICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVFbGVtZW50KHRhcmdldDApOwotICAg
ICAgICAgICAgYXBwZW5kT3V0cHV0KCJEYXRlIGlucHV0IGNvbnRyb2wgbWFya2VkIGFzICdjYy1l
eHAnIChkZWZhdWx0IGNhbGVuZGFyIHNldCB0byBncmVnb3JpYW4pOiIpOwotICAgICAgICAgICAg
YXBwZW5kT3V0cHV0KHRvU3RyaW5nKGF3YWl0IFVJSGVscGVyLmNhbGVuZGFyVHlwZSgpKSk7Ci0K
LSAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2YXRlRWxlbWVudCh0YXJnZXQxKTsKLSAg
ICAgICAgICAgIGFwcGVuZE91dHB1dCgiRGF0ZSBpbnB1dCBjb250cm9sIG5vdCBtYXJrZWQgYXMg
J2NjLWV4cCcgKGRlZmF1bHQgY2FsZW5kYXIgc2V0IHRvIGdyZWdvcmlhbik6Iik7Ci0gICAgICAg
ICAgICBhcHBlbmRPdXRwdXQodG9TdHJpbmcoYXdhaXQgVUlIZWxwZXIuY2FsZW5kYXJUeXBlKCkp
KTsKKyAgICAgICAgICAgIGZvciAoY29uc3QgY2FsZW5kYXJUeXBlIG9mIFsiamFwYW5lc2UiLCAi
Z3JlZ29yaWFuIl0pIHsKKyAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5zZXREZWZhdWx0
Q2FsZW5kYXJUeXBlKGNhbGVuZGFyVHlwZSk7CisgICAgICAgICAgICAgICAgZm9yIChjb25zdCBl
bGVtZW50IG9mIFt0YXJnZXQwLCB0YXJnZXQxXSkgeworICAgICAgICAgICAgICAgICAgICBhd2Fp
dCBVSUhlbHBlci5hY3RpdmF0ZUZvcm1Db250cm9sKGVsZW1lbnQpOworICAgICAgICAgICAgICAg
ICAgICBjb25zdCBpc0NyZWRpdENhcmRGaWVsZCA9IGVsZW1lbnQuZ2V0QXR0cmlidXRlKCJhdXRv
Y29tcGxldGUiKSA9PT0gImNjLWV4cCI7CisgICAgICAgICAgICAgICAgICAgIGFwcGVuZE91dHB1
dChgRGF0ZSBpbnB1dCBjb250cm9sJHtpc0NyZWRpdENhcmRGaWVsZCA/ICIiIDogIiBub3QifSBt
YXJrZWQgYXMgJ2NjLWV4cCcgKGRlZmF1bHQgY2FsZW5kYXIgc2V0IHRvICR7Y2FsZW5kYXJUeXBl
fSk6YCk7CisgICAgICAgICAgICAgICAgICAgIGFwcGVuZE91dHB1dChgeyBjYWxlbmRhclR5cGUg
PSAke2F3YWl0IFVJSGVscGVyLmNhbGVuZGFyVHlwZSgpfSB9YCk7CisgICAgICAgICAgICAgICAg
ICAgIGF3YWl0IFVJSGVscGVyLmRlYWN0aXZhdGVGb3JtQ29udHJvbChlbGVtZW50KTsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVy
LmpzIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcwppbmRleCBmZTU0NmE4Yzg2
NTAxM2RlNGVkMDQ1ZWNjNmFjZDBlMjNiYmJlYWMzLi4zMWFhYzdlMWVmN2FmZWUwYzQ1MWEyOGMy
Mjc3ZjlmOGIyYThiNTI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVs
cGVyLmpzCisrKyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKQEAgLTIxOSw2
ICsyMTksMzcgQEAgd2luZG93LlVJSGVscGVyID0gY2xhc3MgVUlIZWxwZXIgewogICAgICAgICB9
KTsKICAgICB9CiAKKyAgICBzdGF0aWMgaXNTaG93aW5nS2V5Ym9hcmQoKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5ydW5VSVNjcmlwdCgidWlDb250cm9sbGVyLmlzU2hvd2luZ0tleWJvYXJkIiwgcmVzdWx0ID0+
IHJlc29sdmUocmVzdWx0ID09PSAidHJ1ZSIpKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAg
c3RhdGljIGlzUHJlc2VudGluZ01vZGFsbHkoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQ
cm9taXNlKHJlc29sdmUgPT4geworICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdCgi
dWlDb250cm9sbGVyLmlzUHJlc2VudGluZ01vZGFsbHkiLCByZXN1bHQgPT4gcmVzb2x2ZShyZXN1
bHQgPT09ICJ0cnVlIikpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBzdGF0aWMgZGVhY3Rp
dmF0ZUZvcm1Db250cm9sKGVsZW1lbnQpCisgICAgeworICAgICAgICBpZiAoIXRoaXMuaXNXZWJL
aXQyKCkgfHwgIXRoaXMuaXNJT1MoKSkgeworICAgICAgICAgICAgZWxlbWVudC5ibHVyKCk7Cisg
ICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7CisgICAgICAgIH0KKworICAgICAg
ICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgcmVzb2x2ZSA9PiB7CisgICAgICAgICAgICBlbGVt
ZW50LmJsdXIoKTsKKyAgICAgICAgICAgIHdoaWxlIChhd2FpdCB0aGlzLmlzUHJlc2VudGluZ01v
ZGFsbHkoKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIHdoaWxlIChh
d2FpdCB0aGlzLmlzU2hvd2luZ0tleWJvYXJkKCkpCisgICAgICAgICAgICAgICAgY29udGludWU7
CisgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIH0pOworICAgIH0KKwogICAgIHN0YXRp
YyB3YWl0Rm9yS2V5Ym9hcmRUb0hpZGUoKQogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLmlzV2Vi
S2l0MigpIHx8ICF0aGlzLmlzSU9TKCkpCkBAIC00MTgsNyArNDQ5LDcgQEAgd2luZG93LlVJSGVs
cGVyID0gY2xhc3MgVUlIZWxwZXIgewogICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2
ZSA9PiB7CiAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGAoKCkgPT4gewogICAg
ICAgICAgICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKHVpQ29udHJvbGxlci5p
c1Nob3dpbmdEYXRhTGlzdFN1Z2dlc3Rpb25zKTsKLSAgICAgICAgICAgIH0pKClgLCByZXN1bHQg
PT4gcmVzb2x2ZShyZXN1bHQgPT09ICJ0cnVlIiA/IHRydWUgOiBmYWxzZSkpOworICAgICAgICAg
ICAgfSkoKWAsIHJlc3VsdCA9PiByZXNvbHZlKHJlc3VsdCA9PT0gInRydWUiKSk7CiAgICAgICAg
IH0pOwogICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>361688</attachid>
            <date>2019-02-11 09:50:04 -0800</date>
            <delta_ts>2019-02-11 11:30:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194313-20190211095003.patch</filename>
            <type>text/plain</type>
            <size>18793</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxMjYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU5OWNmZjE1ODEwMzc5MDc2
MTE5YWRmZDIwMGIxY2I1NzZhN2ZmMmYuLjAyZmE0M2ZkNjY0MDgwNjNmM2U2OTZiMTBmNmMyNDNm
ZmRhZDY4MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTktMDItMTEgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgZmFzdC9mb3Jtcy9pb3Mv
Zm9yY2UtZ3JlZ29yaWFuLWNhbGVuZGFyLWZvci1jcmVkaXQtY2FyZC1leHBpcnkuaHRtbCBkb2Vz
IG5vdCB3b3JrIG9uIGlQYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5NDMxMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1ha2UgYC1kYXRlVGltZVBpY2tlckNhbGVuZGFyVHlwZWAgd29yayBvbiBpUGFk
IGJ5IGhhbmRsaW5nIHRoZSBjYXNlIHdoZXJlIHRoZSBkYXRlIHBpY2tlciBjb250cm9sIGlzIGEK
KyAgICAgICAgV0tEYXRlVGltZVBvcG92ZXIuIFRoaXMgZml4ZXMgVUlTY3JpcHRDb250cm9sbGVy
OjpjYWxlbmRhclR5cGUoKSByZXR1cm5pbmcgbnVsbCBvbiBpUGFkLgorCisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1JbnB1dENvbnRyb2wubW06CisgICAgICAgICgtW1dLRm9y
bUlucHV0Q29udHJvbCBkYXRlVGltZVBpY2tlckNhbGVuZGFyVHlwZV0pOgorICAgICAgICAoLVtX
S0RhdGVUaW1lUG9wb3ZlciBjYWxlbmRhclR5cGVdKToKKwogMjAxOS0wMi0xMSAgQ2FybG9zIEdh
cmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dQRV0gRG8gbm90
IHRyeSB0byBjcmVhdGUgZW1wdHkgZWdsIHdpbmRvd3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1JbnB1dENvbnRyb2wubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtSW5wdXRDb250cm9sLm1tCmluZGV4IDk4ZTE0
Njc4ZTE3ZDQ2ZGE5OTQ1OWY1YjZkMWQwNTRlODBkNTA0NTkuLmNmZWQyZDUwYTZjOGJhMDNkNGQy
MDE5ZTExZTZhOGNkMDk4MGE0NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9mb3Jtcy9XS0Zvcm1JbnB1dENvbnRyb2wubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybUlucHV0Q29udHJvbC5tbQpAQCAtNTMsNiArNTMsNyBAQCBA
aW50ZXJmYWNlIFdLRGF0ZVRpbWVQb3BvdmVyIDogV0tGb3JtUm90YXRpbmdBY2Nlc3NvcnlQb3Bv
dmVyPFdLRm9ybUNvbnRyb2w+IHsKIH0KIC0gKGlkKWluaXRXaXRoVmlldzooV0tDb250ZW50Vmll
dyAqKXZpZXcgZGF0ZVBpY2tlck1vZGU6KFVJRGF0ZVBpY2tlck1vZGUpbW9kZTsKIC0gKFdLRGF0
ZVRpbWVQb3BvdmVyVmlld0NvbnRyb2xsZXIgKil2aWV3Q29udHJvbGxlcjsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcgKmNhbGVuZGFyVHlwZTsKIEBlbmQKIAogQGlu
dGVyZmFjZSBXS0RhdGVUaW1lUGlja2VyIDogTlNPYmplY3Q8V0tGb3JtQ29udHJvbD4gewpAQCAt
MjM5LDcgKzI0MCw3IEBAIEBlbmQKIAogLy8gV0tGb3JtSW5wdXRDb250cm9sCiBAaW1wbGVtZW50
YXRpb24gV0tGb3JtSW5wdXRDb250cm9sIHsKLSAgICBSZXRhaW5QdHI8aWQ8V0tGb3JtQ29udHJv
bD4+IF9jb250cm9sOworICAgIFJldGFpblB0cjxOU09iamVjdCA8V0tGb3JtQ29udHJvbD4+IF9j
b250cm9sOwogfQogCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhWaWV3OihXS0NvbnRlbnRWaWV3
ICopdmlldwpAQCAtMjk4LDEyICsyOTksMTggQEAgLSAoVUlWaWV3ICopYXNzaXN0YW50Vmlldwog
QGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tGb3JtSW5wdXRDb250cm9sIChXS1Rlc3RpbmcpCisK
IC0gKE5TU3RyaW5nICopZGF0ZVRpbWVQaWNrZXJDYWxlbmRhclR5cGUKIHsKLSAgICBpZiAoWyhO
U09iamVjdCAqKV9jb250cm9sLmdldCgpIGlzS2luZE9mQ2xhc3M6V0tEYXRlVGltZVBpY2tlci5j
bGFzc10pCisgICAgaWYgKFtfY29udHJvbCBpc0tpbmRPZkNsYXNzOldLRGF0ZVRpbWVQaWNrZXIu
Y2xhc3NdKQogICAgICAgICByZXR1cm4gWyhXS0RhdGVUaW1lUGlja2VyICopX2NvbnRyb2wuZ2V0
KCkgY2FsZW5kYXJUeXBlXTsKKworICAgIGlmIChbX2NvbnRyb2wgaXNLaW5kT2ZDbGFzczpXS0Rh
dGVUaW1lUG9wb3Zlci5jbGFzc10pCisgICAgICAgIHJldHVybiBbKFdLRGF0ZVRpbWVQb3BvdmVy
ICopX2NvbnRyb2wuZ2V0KCkgY2FsZW5kYXJUeXBlXTsKKwogICAgIHJldHVybiBuaWw7CiB9CisK
IEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdLRGF0ZVRpbWVQb3BvdmVyVmlld0NvbnRyb2xsZXIK
QEAgLTM4OCw2ICszOTUsMTIgQEAgLSAoVUlWaWV3ICopY29udHJvbFZpZXcKICAgICByZXR1cm4g
bmlsOwogfQogCistIChOU1N0cmluZyAqKWNhbGVuZGFyVHlwZQoreworICAgIFdLRGF0ZVRpbWVQ
aWNrZXIgKmRhdGVUaW1lUGlja2VyID0gKFdLRGF0ZVRpbWVQaWNrZXIgKilzZWxmLnZpZXdDb250
cm9sbGVyLmlubmVyQ29udHJvbDsKKyAgICByZXR1cm4gZGF0ZVRpbWVQaWNrZXIuZGF0ZVBpY2tl
ci5jYWxlbmRhci5jYWxlbmRhcklkZW50aWZpZXI7Cit9CisKIEBlbmQKIAogI2VuZGlmIC8vIFBM
QVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggMDNiYTRkYzk3NzBkNGNiMzE0MzJhNTkwNjBkOTBiZjExODA5Mjg1OS4u
M2UwMzBiZjRkNjMxOTk0Yjc1NjNjNmM5ZjBmY2YwMTdkMzllYmZlNiAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE5
LTAyLTExICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAg
IGZhc3QvZm9ybXMvaW9zL2ZvcmNlLWdyZWdvcmlhbi1jYWxlbmRhci1mb3ItY3JlZGl0LWNhcmQt
ZXhwaXJ5Lmh0bWwgZG9lcyBub3Qgd29yayBvbiBpUGFkCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTQzMTMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBoZWxwZXIgdG8gZGV0ZXJtaW5lIHdoZXRo
ZXIgdGhlIHdlYiB2aWV3IGlzIHByZXNlbnRpbmcgbW9kYWwgVUkuCisKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tOgorICAgICAgICAoV1RSOjpV
SVNjcmlwdENvbnRyb2xsZXI6OmlzUHJlc2VudGluZ01vZGFsbHkgY29uc3QpOgorICAgICAgICAq
IFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJv
bGxlci5pZGw6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlT
Y3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpp
c1ByZXNlbnRpbmdNb2RhbGx5IGNvbnN0KToKKyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVkL1VJ
U2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLm1tOgorICAgICAgICAoV1RSOjpVSVNjcmlw
dENvbnRyb2xsZXI6OmNhbGVuZGFyVHlwZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tOgorICAgICAgICAoV1RS
OjpVSVNjcmlwdENvbnRyb2xsZXI6OmlzUHJlc2VudGluZ01vZGFsbHkgY29uc3QpOgorICAgICAg
ICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmNhbGVuZGFyVHlwZSBjb25zdCk6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tOgorICAgICAg
ICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmNhbGVuZGFyVHlwZSBjb25zdCk6CisKIDIwMTkt
MDItMTEgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFtHU3RyZWFtZXJdIEdzdE1hcHBlZEJ1ZmZlciB0ZXN0c3VpdGUgYnVpbGQgZmFpbHMKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0g
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCmluZGV4
IGRiMTFhZDY0MTU2MmQxZDNhMzE2NDI5NGI2NTQ0NmRmOGY1M2EzOWMuLmUwMzBjZDY1YTA3MTNm
ZmE0NzdjZWFiZGZmMGE1NzcyNjdiZDhjNGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbQpAQCAtMTc1LDYgKzE3NSwxMSBAQCB2b2lk
IFVJU2NyaXB0Q29udHJvbGxlcjo6c2VsZWN0Rm9ybUFjY2Vzc29yeVBpY2tlclJvdyhsb25nIHJv
d0luZGV4KQogewogfQogCitib29sIFVJU2NyaXB0Q29udHJvbGxlcjo6aXNQcmVzZW50aW5nTW9k
YWxseSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gVUlTY3JpcHRDb250cm9sbGVyOjp0ZXh0Q29udGVudFR5cGUoKSBjb25zdAogewog
ICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9V
SVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbCBiL1Rvb2xzL1Rl
c3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxl
ci5pZGwKaW5kZXggZTU0NDY3ZmY0NDhhMGE3YzM3MDcwZTliN2QwZjE4ODI1Yzk0MzE0My4uM2Nl
MWViNTZmN2ZhOTU1MGQ1ZTk5MTczZWFlZmU1Yjc4ZDNkZDQxMiAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9s
bGVyLmlkbAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5k
aW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCkBAIC0yMzAsNiArMjMwLDcgQEAgaW50ZXJmYWNl
IFVJU2NyaXB0Q29udHJvbGxlciB7CiAgICAgdm9pZCBzZXRNaW5pbXVtRWZmZWN0aXZlV2lkdGgo
ZG91YmxlIGVmZmVjdGl2ZVdpZHRoKTsKIAogICAgIHZvaWQgcmVzaWduRmlyc3RSZXNwb25kZXIo
KTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBpc1ByZXNlbnRpbmdNb2RhbGx5Owog
CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZSBjb250ZW50T2Zmc2V0WDsKICAgICByZWFk
b25seSBhdHRyaWJ1dGUgZG91YmxlIGNvbnRlbnRPZmZzZXRZOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcCBi
L1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxl
ci5jcHAKaW5kZXggNGI0NWQ1NmZkYzJjYjJjYTRkYWUwZjY2ZGQxZjUyN2VlZmU3YzM5ZS4uZjZk
ODRkNjUzYzEzNzBjOTI3NjM1YzZkYjRmOWJiZTcyMzM2OGFmZiAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcAor
KysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRy
b2xsZXIuY3BwCkBAIC0zMzYsNiArMzM2LDExIEBAIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBV
SVNjcmlwdENvbnRyb2xsZXI6OmZvcm1JbnB1dExhYmVsKCkgY29uc3QKICAgICByZXR1cm4gbnVs
bHB0cjsKIH0KIAorYm9vbCBVSVNjcmlwdENvbnRyb2xsZXI6OmlzUHJlc2VudGluZ01vZGFsbHko
KSBjb25zdAoreworICAgIHJldHVybiBmYWxzZTsKK30KKwogZG91YmxlIFVJU2NyaXB0Q29udHJv
bGxlcjo6Y29udGVudE9mZnNldFgoKSBjb25zdAogewogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9s
bGVyLmggYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENv
bnRyb2xsZXIuaAppbmRleCA5NTZjMzQ1YzMyZjYxMzUxY2ZlZGUxMTQzZjRhNjFjMDBlNjZjNzQw
Li5mNzcwNTNiNWZhNGIyYzM0NGFkNGQxZjIwMzI1NDBlODA1ZDUxYWMzIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIu
aAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENv
bnRyb2xsZXIuaApAQCAtMTE0LDYgKzExNCw4IEBAIHB1YmxpYzoKIAogICAgIEpTT2JqZWN0UmVm
IGNvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbShKU1N0cmluZ1JlZikgY29uc3Q7CiAgICAgdm9p
ZCBvdmVycmlkZVByZWZlcmVuY2UoSlNTdHJpbmdSZWYgcHJlZmVyZW5jZSwgSlNTdHJpbmdSZWYg
dmFsdWUpOworCisgICAgYm9vbCBpc1ByZXNlbnRpbmdNb2RhbGx5KCkgY29uc3Q7CiAgICAgCiAg
ICAgZG91YmxlIGNvbnRlbnRPZmZzZXRYKCkgY29uc3Q7CiAgICAgZG91YmxlIGNvbnRlbnRPZmZz
ZXRZKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1VJU2NyaXB0
Q29udHJvbGxlckNvY29hLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9VSVNjcmlwdENvbnRy
b2xsZXJDb2NvYS5tbQppbmRleCA3MDJlNTE4NTUyMzMxNGJlOGQ5NzVlZGNlYTE5NGI4NDFmMGZh
NDhlLi5iMmI0NWRmZGU0Y2YzNWQwNWI2YWNmMWEzMDBhZDZiNjY0MzM2ZDc5IDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLm1tCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW0KQEAgLTE4
MCwxOSArMTgwLDYgQEAgdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNldERlZmF1bHRDYWxlbmRh
clR5cGUoSlNTdHJpbmdSZWYgY2FsZW5kYXJJZGVudGlmaWVyKQogI2VuZGlmCiB9CiAKLUpTT2Jq
ZWN0UmVmIFVJU2NyaXB0Q29udHJvbGxlcjo6Y2FsZW5kYXJUeXBlKCkgY29uc3QKLXsKLSNpZiBX
S19BUElfRU5BQkxFRAotICAgIFdLV2ViVmlldyAqd2ViVmlldyA9IFRlc3RDb250cm9sbGVyOjpz
aW5nbGV0b24oKS5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKTsKLSAgICBVSVZpZXcgKmNv
bnRlbnRWaWV3ID0gW3dlYlZpZXcgdmFsdWVGb3JLZXlQYXRoOkAiX2N1cnJlbnRDb250ZW50Vmll
dyJdOwotICAgIE5TU3RyaW5nICpjYWxlbmRhclR5cGVTdHJpbmcgPSBbY29udGVudFZpZXcgdmFs
dWVGb3JLZXlQYXRoOkAiZm9ybUlucHV0Q29udHJvbC5kYXRlVGltZVBpY2tlckNhbGVuZGFyVHlw
ZSJdOwotICAgIGF1dG8ganNDb250ZXh0ID0gbV9jb250ZXh0LT5qc0NvbnRleHQoKTsKLSAgICBy
ZXR1cm4gSlNWYWx1ZVRvT2JqZWN0KGpzQ29udGV4dCwgW0pTVmFsdWUgdmFsdWVXaXRoT2JqZWN0
OmNhbGVuZGFyVHlwZVN0cmluZyBpbkNvbnRleHQ6W0pTQ29udGV4dCBjb250ZXh0V2l0aEpTR2xv
YmFsQ29udGV4dFJlZjpqc0NvbnRleHRdXS5KU1ZhbHVlUmVmLCBudWxscHRyKTsKLSNlbHNlCi0g
ICAgcmV0dXJuIG51bGxwdHI7Ci0jZW5kaWYKLX0KLQogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IFVJU2NyaXB0Q29udHJvbGxlcjo6bGFzdFVuZG9MYWJlbCgpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IEpTU3RyaW5nQ3JlYXRlV2l0aENGU3RyaW5nKChfX2JyaWRnZSBDRlN0cmluZ1JlZilwbGF0Zm9y
bVVuZG9NYW5hZ2VyKCkudW5kb0FjdGlvbk5hbWUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCmluZGV4IDQ5NTI3NjVhMGFjZmQz
ZGUzZjE4MmJlMjhlMmZlOGUxOTM5NTY4M2IuLjZjMTBmMDZkMDMyMjViMGU1MDk0YmIxM2EzZTg3
ZDA3NzczMDMxMjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2Ny
aXB0Q29udHJvbGxlcklPUy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNj
cmlwdENvbnRyb2xsZXJJT1MubW0KQEAgLTQ1Myw2ICs0NTMsMTIgQEAgdm9pZCBVSVNjcmlwdENv
bnRyb2xsZXI6OnNldFRpbWVQaWNrZXJWYWx1ZShsb25nIGhvdXIsIGxvbmcgbWludXRlKQogICAg
IFt3ZWJWaWV3IHNldFRpbWVQaWNrZXJWYWx1ZVRvSG91cjpob3VyIG1pbnV0ZTptaW51dGVdOwog
fQogCitib29sIFVJU2NyaXB0Q29udHJvbGxlcjo6aXNQcmVzZW50aW5nTW9kYWxseSgpIGNvbnN0
Cit7CisgICAgVGVzdFJ1bm5lcldLV2ViVmlldyAqd2ViVmlldyA9IFRlc3RDb250cm9sbGVyOjpz
aW5nbGV0b24oKS5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKTsKKyAgICByZXR1cm4gISF3
ZWJWaWV3LndpbmRvdy5yb290Vmlld0NvbnRyb2xsZXIucHJlc2VudGVkVmlld0NvbnRyb2xsZXI7
Cit9CisKIHN0YXRpYyBDR1BvaW50IGNvbnRlbnRPZmZzZXRCb3VuZGVkSW5WYWxpZFJhbmdlKFVJ
U2Nyb2xsVmlldyAqc2Nyb2xsVmlldywgQ0dQb2ludCBjb250ZW50T2Zmc2V0KQogewogICAgIFVJ
RWRnZUluc2V0cyBjb250ZW50SW5zZXRzID0gc2Nyb2xsVmlldy5jb250ZW50SW5zZXQ7CkBAIC05
NTQsNiArOTYwLDE1IEBAIE5TVW5kb01hbmFnZXIgKlVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZv
cm1VbmRvTWFuYWdlcigpIGNvbnN0CiAgICAgcmV0dXJuIFsoVUlWaWV3ICopW1Rlc3RDb250cm9s
bGVyOjpzaW5nbGV0b24oKS5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKSB2YWx1ZUZvcktl
eVBhdGg6QCJfY3VycmVudENvbnRlbnRWaWV3Il0gdW5kb01hbmFnZXJdOwogfQogCitKU09iamVj
dFJlZiBVSVNjcmlwdENvbnRyb2xsZXI6OmNhbGVuZGFyVHlwZSgpIGNvbnN0Cit7CisgICAgV0tX
ZWJWaWV3ICp3ZWJWaWV3ID0gVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLm1haW5XZWJWaWV3
KCktPnBsYXRmb3JtVmlldygpOworICAgIFVJVmlldyAqY29udGVudFZpZXcgPSBbd2ViVmlldyB2
YWx1ZUZvcktleVBhdGg6QCJfY3VycmVudENvbnRlbnRWaWV3Il07CisgICAgTlNTdHJpbmcgKmNh
bGVuZGFyVHlwZVN0cmluZyA9IFtjb250ZW50VmlldyB2YWx1ZUZvcktleVBhdGg6QCJmb3JtSW5w
dXRDb250cm9sLmRhdGVUaW1lUGlja2VyQ2FsZW5kYXJUeXBlIl07CisgICAgYXV0byBqc0NvbnRl
eHQgPSBtX2NvbnRleHQtPmpzQ29udGV4dCgpOworICAgIHJldHVybiBKU1ZhbHVlVG9PYmplY3Qo
anNDb250ZXh0LCBbSlNWYWx1ZSB2YWx1ZVdpdGhPYmplY3Q6Y2FsZW5kYXJUeXBlU3RyaW5nIGlu
Q29udGV4dDpbSlNDb250ZXh0IGNvbnRleHRXaXRoSlNHbG9iYWxDb250ZXh0UmVmOmpzQ29udGV4
dF1dLkpTVmFsdWVSZWYsIG51bGxwdHIpOworfQorCiB9CiAKICNlbmRpZiAvLyBQTEFURk9STShJ
T1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVUlTY3Jp
cHRDb250cm9sbGVyTWFjLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVUlTY3JpcHRD
b250cm9sbGVyTWFjLm1tCmluZGV4IDc1N2ZhMDZiZDc4ZjE4MzNmMTNiMzhjYmM5YjAzMGY5MzQx
OTc2M2YuLjdjYzE1MzExZGJlODc0Yjk0YjIzYzQyOTE0NDNlZDExOGJhODcyZjYgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1hYy5tbQor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0K
QEAgLTIxNCw0ICsyMTQsOSBAQCBOU1VuZG9NYW5hZ2VyICpVSVNjcmlwdENvbnRyb2xsZXI6OnBs
YXRmb3JtVW5kb01hbmFnZXIoKSBjb25zdAogICAgIHJldHVybiBUZXN0Q29udHJvbGxlcjo6c2lu
Z2xldG9uKCkubWFpbldlYlZpZXcoKS0+cGxhdGZvcm1WaWV3KCkudW5kb01hbmFnZXI7CiB9CiAK
K0pTT2JqZWN0UmVmIFVJU2NyaXB0Q29udHJvbGxlcjo6Y2FsZW5kYXJUeXBlKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYmRm
YWE1Y2E0M2U1YzA0YjIxMzFhMzIwMTIwNDJjN2JmMGM3ODhjMi4uZGMxNjY2OTY4M2NiYzU4YjE4
NWI5ODU3Mzc3OWY2ZGJhNGI3OTFlOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE5LTAyLTEx
ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIGZhc3Qv
Zm9ybXMvaW9zL2ZvcmNlLWdyZWdvcmlhbi1jYWxlbmRhci1mb3ItY3JlZGl0LWNhcmQtZXhwaXJ5
Lmh0bWwgZG9lcyBub3Qgd29yayBvbiBpUGFkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTQzMTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGp1c3RzIGFuIGV4aXN0aW5nIGxheW91dCB0ZXN0IHRvIHdv
cmsgb24gYm90aCBpUGhvbmUgYW5kIGlQYWQgc2ltdWxhdG9ycy4KKworICAgICAgICAqIGZhc3Qv
Zm9ybXMvaW9zL2ZvcmNlLWdyZWdvcmlhbi1jYWxlbmRhci1mb3ItY3JlZGl0LWNhcmQtZXhwaXJ5
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lvcy9mb3JjZS1ncmVnb3JpYW4t
Y2FsZW5kYXItZm9yLWNyZWRpdC1jYXJkLWV4cGlyeS5odG1sOgorCisgICAgICAgIE1ha2UgdGhp
cyB0ZXN0IHdhaXQgYWZ0ZXIgYmx1cnJpbmcgdGhlIGN1cnJlbnRseSBmb2N1c2VkIGVsZW1lbnQs
IHN1Y2ggdGhhdCB0YXBwaW5nIHRvIGZvY3VzIHRoZSBuZXh0IGZvcm0KKyAgICAgICAgY29udHJv
bCBkb2Vzbid0IGZhaWwuIE5vdGFibHkgb24gaVBhZCwgbm90IHdhaXRpbmcgZm9yIHRoZSBwb3Bv
dmVyIHRvIGRpc21pc3MgbWVhbnQgdGhhdCBzdWJzZXF1ZW50IHRhcHMgd291bGQKKyAgICAgICAg
YmUgZGlzcGF0Y2hlZCB0b28gc29vbiwgYW5kIGhpdC10ZXN0IHRvIHRoZSBwb3BvdmVyIHZpZXcg
YmVpbmcgZGlzbWlzc2VkIHJhdGhlciB0aGFuIFdLV2ViVmlldy4KKworICAgICAgICAqIHBsYXRm
b3JtL2lwYWQvVGVzdEV4cGVjdGF0aW9uczoKKworICAgICAgICBVbnNraXAgdGhlIHRlc3Qgb24g
aVBhZC4KKworICAgICAgICAqIHJlc291cmNlcy91aS1oZWxwZXIuanM6CisKKyAgICAgICAgQWRk
IGhlbHBlcnMgdG8gcXVlcnkgd2hldGhlciBvciBub3QgdGhlIGtleWJvYXJkIGlzIHNob3duLCBh
bmQgd2hldGhlciBvciBub3QgYSB2aWV3IGNvbnRyb2xsZXIgaXMgYmVpbmcgbW9kYWxseQorICAg
ICAgICBwcmVzZW50ZWQgb3ZlciB0aGUgY3VycmVudCByb290IHZpZXcgY29udHJvbGxlciAodGhp
cyBpcyB0aGUgY2FzZSB3aGVuIGludGVyYWN0aW5nIHdpdGggZGF0ZSBwaWNrZXJzIG9uIGlQYWQp
LgorCisgICAgICAgICh3aW5kb3cuVUlIZWxwZXIuaXNTaG93aW5nS2V5Ym9hcmQpOgorICAgICAg
ICAod2luZG93LlVJSGVscGVyLmlzUHJlc2VudGluZ01vZGFsbHkpOgorICAgICAgICAod2luZG93
LlVJSGVscGVyLmRlYWN0aXZhdGVGb3JtQ29udHJvbCk6CisKKyAgICAgICAgQWRkIGEgbmV3IGhl
bHBlciBtZXRob2QgdG8gYmx1ciB0aGUgZ2l2ZW4gZm9ybSBjb250cm9sIGVsZW1lbnQgYW5kIHdh
aXQgZm9yIHdlYiB2aWV3IGNocm9tZSB0byBmaW5pc2ggZGlzbWlzc2luZworICAgICAgICAob24g
aU9TLCB0aGlzIGlzIGVpdGhlciB0aGUgZGF0ZSBwaWNrZXIgaW5wdXQgdmlldyBpbiB0aGUga2V5
Ym9hcmQgb24gaVBob25lLCBvciB0aGUgZGF0ZSBwaWNrZXIgcG9wb3ZlciB2aWV3CisgICAgICAg
IGNvbnRyb2xsZXIgb24gaVBhZCkuCisKKyAgICAgICAgKHdpbmRvdy5VSUhlbHBlci5pc1Nob3dp
bmdEYXRhTGlzdFN1Z2dlc3Rpb25zKToKKworICAgICAgICBEcml2ZS1ieSBmaXg6IHJlbW92ZSBh
biBleHRyYW5lb3VzIHRlcm5hcnkgY29uZGl0aW9uYWwgc3RhdGVtZW50LgorCiAyMDE5LTAyLTEx
ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkIFdQRSBnYXJkZW5pbmcuIEFkZGluZyBhZGRpdGlvbmFsIGJhc2VsaW5lcyBhZnRlciBmb250
IHZhcmlhdGlvbnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW9zL2ZvcmNl
LWdyZWdvcmlhbi1jYWxlbmRhci1mb3ItY3JlZGl0LWNhcmQtZXhwaXJ5LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW9zL2ZvcmNlLWdyZWdvcmlhbi1jYWxlbmRhci1mb3It
Y3JlZGl0LWNhcmQtZXhwaXJ5LWV4cGVjdGVkLnR4dAppbmRleCBlNTU4Njk5M2IxMDZmYTRlYzVk
ZDRiNDQzYzQwZGEzNmI4MjFjYzNkLi5lN2JhNTBlZTI1ZGVlMGRjMzY2ODYwNmQyN2I4MDhlNzQz
YjU0MGY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9mb3JjZS1ncmVn
b3JpYW4tY2FsZW5kYXItZm9yLWNyZWRpdC1jYXJkLWV4cGlyeS1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pb3MvZm9yY2UtZ3JlZ29yaWFuLWNhbGVuZGFyLWZvci1j
cmVkaXQtY2FyZC1leHBpcnktZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNSBAQAogIAorCiBEYXRl
IGlucHV0IGNvbnRyb2wgbWFya2VkIGFzICdjYy1leHAnIChkZWZhdWx0IGNhbGVuZGFyIHNldCB0
byBqYXBhbmVzZSk6CiB7IGNhbGVuZGFyVHlwZSA9IGdyZWdvcmlhbiB9CiBEYXRlIGlucHV0IGNv
bnRyb2wgbm90IG1hcmtlZCBhcyAnY2MtZXhwJyAoZGVmYXVsdCBjYWxlbmRhciBzZXQgdG8gamFw
YW5lc2UpOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pb3MvZm9yY2UtZ3Jl
Z29yaWFuLWNhbGVuZGFyLWZvci1jcmVkaXQtY2FyZC1leHBpcnkuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvaW9zL2ZvcmNlLWdyZWdvcmlhbi1jYWxlbmRhci1mb3ItY3JlZGl0LWNhcmQt
ZXhwaXJ5Lmh0bWwKaW5kZXggODYyOGI2MmEzNjgyZTMzYWUzNGFhMDM0MjFlNGZjNjUzMGNhN2Iz
YS4uMTZmMjM0OTVkZjdkOTE3OTUzZTdjZWJlNjgwM2ZlYmQ1M2JiMTIxOCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pb3MvZm9yY2UtZ3JlZ29yaWFuLWNhbGVuZGFyLWZvci1j
cmVkaXQtY2FyZC1leHBpcnkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9m
b3JjZS1ncmVnb3JpYW4tY2FsZW5kYXItZm9yLWNyZWRpdC1jYXJkLWV4cGlyeS5odG1sCkBAIC0x
MSwxMiArMTEsMTQgQEAKICAgICAgICAgfQogCiAgICAgICAgICN0YXJnZXQwLCAjdGFyZ2V0MSB7
Ci0gICAgICAgICAgICBmb250LXNpemU6IDE1MHB4OworICAgICAgICAgICAgZm9udC1zaXplOiA0
MHB4OworICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgIH0KICAgICA8L3N0eWxlPgog
PC9oZWFkPgogPGJvZHk+CiAgICAgPGlucHV0IHR5cGU9J2RhdGUnIGlkPSd0YXJnZXQwJyBhdXRv
Y29tcGxldGU9J2NjLWV4cCc+CisgICAgPGJyPgogICAgIDxpbnB1dCB0eXBlPSdkYXRlJyBpZD0n
dGFyZ2V0MSc+CiAgICAgPHByZSBpZD0ib3V0cHV0Ij48L3ByZT4KICAgICA8c2NyaXB0PgpAQCAt
MzIsMTMgKzM0LDcgQEAKICAgICAgICAgICAgIG91dHB1dC5hcHBlbmRDaGlsZChwYXJhZ3JhcGgp
OwogICAgICAgICB9CiAKLSAgICAgICAgZnVuY3Rpb24gdG9TdHJpbmcodmFsdWUpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHJldHVybiBgeyBjYWxlbmRhclR5cGUgPSAke3ZhbHVlfSB9YDsKLSAg
ICAgICAgfQotCiAgICAgICAgIChhc3luYyAoKSA9PiB7Ci0KICAgICAgICAgICAgIGlmICghd2lu
ZG93LnRlc3RSdW5uZXIgfHwgIXRlc3RSdW5uZXIucnVuVUlTY3JpcHQpIHsKICAgICAgICAgICAg
ICAgICBhcHBlbmRPdXRwdXQoYFRoaXMgdGVzdCBjaGVja3MgaWYgYSBncmVnb3JpYW4gY2FsZW5k
YXIgaXMgcHJlc2VudGVkIHdoZW4gYSBkYXRlIGlucHV0IGNvbnRyb2wgbWFya2VkCiAgICAgICAg
ICAgICAgICAgICAgIGFzIGEgY3JlZGl0IGNhcmQgZXhwaXJ5IGRhdGUgZmllbGQgKGllLiB0aHJv
dWdoIGF1dG9jb21wbGV0ZT0nY2MtZXhwJykgaXMgdGFwcGVkIG9uIFNhZmFyaSBpT1MuIEZvcgpA
QCAtNDYsMjMgKzQyLDE2IEBACiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAg
fQogCi0gICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5zZXREZWZhdWx0Q2FsZW5kYXJUeXBlKCJq
YXBhbmVzZSIpOwotICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVFbGVtZW50KHRh
cmdldDApOwotICAgICAgICAgICAgYXBwZW5kT3V0cHV0KCJEYXRlIGlucHV0IGNvbnRyb2wgbWFy
a2VkIGFzICdjYy1leHAnIChkZWZhdWx0IGNhbGVuZGFyIHNldCB0byBqYXBhbmVzZSk6Iik7Ci0g
ICAgICAgICAgICBhcHBlbmRPdXRwdXQodG9TdHJpbmcoYXdhaXQgVUlIZWxwZXIuY2FsZW5kYXJU
eXBlKCkpKTsKLQotICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVFbGVtZW50KHRh
cmdldDEpOwotICAgICAgICAgICAgYXBwZW5kT3V0cHV0KCJEYXRlIGlucHV0IGNvbnRyb2wgbm90
IG1hcmtlZCBhcyAnY2MtZXhwJyAoZGVmYXVsdCBjYWxlbmRhciBzZXQgdG8gamFwYW5lc2UpOiIp
OwotICAgICAgICAgICAgYXBwZW5kT3V0cHV0KHRvU3RyaW5nKGF3YWl0IFVJSGVscGVyLmNhbGVu
ZGFyVHlwZSgpKSk7Ci0KLSAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLnNldERlZmF1bHRDYWxl
bmRhclR5cGUoImdyZWdvcmlhbiIpOwotICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZh
dGVFbGVtZW50KHRhcmdldDApOwotICAgICAgICAgICAgYXBwZW5kT3V0cHV0KCJEYXRlIGlucHV0
IGNvbnRyb2wgbWFya2VkIGFzICdjYy1leHAnIChkZWZhdWx0IGNhbGVuZGFyIHNldCB0byBncmVn
b3JpYW4pOiIpOwotICAgICAgICAgICAgYXBwZW5kT3V0cHV0KHRvU3RyaW5nKGF3YWl0IFVJSGVs
cGVyLmNhbGVuZGFyVHlwZSgpKSk7Ci0KLSAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2
YXRlRWxlbWVudCh0YXJnZXQxKTsKLSAgICAgICAgICAgIGFwcGVuZE91dHB1dCgiRGF0ZSBpbnB1
dCBjb250cm9sIG5vdCBtYXJrZWQgYXMgJ2NjLWV4cCcgKGRlZmF1bHQgY2FsZW5kYXIgc2V0IHRv
IGdyZWdvcmlhbik6Iik7Ci0gICAgICAgICAgICBhcHBlbmRPdXRwdXQodG9TdHJpbmcoYXdhaXQg
VUlIZWxwZXIuY2FsZW5kYXJUeXBlKCkpKTsKKyAgICAgICAgICAgIGZvciAoY29uc3QgY2FsZW5k
YXJUeXBlIG9mIFsiamFwYW5lc2UiLCAiZ3JlZ29yaWFuIl0pIHsKKyAgICAgICAgICAgICAgICBh
d2FpdCBVSUhlbHBlci5zZXREZWZhdWx0Q2FsZW5kYXJUeXBlKGNhbGVuZGFyVHlwZSk7CisgICAg
ICAgICAgICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIFt0YXJnZXQwLCB0YXJnZXQxXSkgewor
ICAgICAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5hY3RpdmF0ZUZvcm1Db250cm9sKGVs
ZW1lbnQpOworICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0NyZWRpdENhcmRGaWVsZCA9IGVs
ZW1lbnQuZ2V0QXR0cmlidXRlKCJhdXRvY29tcGxldGUiKSA9PT0gImNjLWV4cCI7CisgICAgICAg
ICAgICAgICAgICAgIGFwcGVuZE91dHB1dChgRGF0ZSBpbnB1dCBjb250cm9sJHtpc0NyZWRpdENh
cmRGaWVsZCA/ICIiIDogIiBub3QifSBtYXJrZWQgYXMgJ2NjLWV4cCcgKGRlZmF1bHQgY2FsZW5k
YXIgc2V0IHRvICR7Y2FsZW5kYXJUeXBlfSk6YCk7CisgICAgICAgICAgICAgICAgICAgIGFwcGVu
ZE91dHB1dChgeyBjYWxlbmRhclR5cGUgPSAke2F3YWl0IFVJSGVscGVyLmNhbGVuZGFyVHlwZSgp
fSB9YCk7CisgICAgICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmRlYWN0aXZhdGVGb3Jt
Q29udHJvbChlbGVtZW50KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CiAKICAg
ICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pcGFkL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9pcGFkL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZGJiYzIwOTM5ZjQ4ODA4NDk5OGI0ZTQ0NzMz
MTQ5NmJmOGZlMDU2My4uNTE1ZjYyOGM5MzBhMDM5OWY2OTE3YWM1ZTA2YWQwMzkxNjJmMTJkNCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaXBhZC9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lwYWQvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDYsNiAr
NDYsNCBAQCB3ZWJraXQub3JnL2IvMTk0MjU5IGZhc3QvZXZlbnRzL2lvcy9yb3RhdGlvbi9yZXNp
emUtaWZyYW1lLWFmdGVyLW9yaWVudGF0aW9uLWNoYQogd2Via2l0Lm9yZy9iLzE5NDI1OSBmYXN0
L2V2ZW50cy9pb3Mvcm90YXRpb24vc2FmYXJpLWxpa2Utcm90YXRpb24uaHRtbCBbIFNraXAgXQog
d2Via2l0Lm9yZy9iLzE5NDI1OSBmYXN0L2V2ZW50cy9pb3Mvdmlld3BvcnQtbm8td2lkdGgtdmFs
dWUtYWxsb3dzLWRvdWJsZS10YXAuaHRtbCBbIFNraXAgXQogCi13ZWJraXQub3JnL2IvMTk0MzEz
IGZhc3QvZm9ybXMvaW9zL2ZvcmNlLWdyZWdvcmlhbi1jYWxlbmRhci1mb3ItY3JlZGl0LWNhcmQt
ZXhwaXJ5Lmh0bWwgWyBTa2lwIF0KLQogd2Via2l0Lm9yZy9iLzE5NDMxNCBmYXN0L2Zvcm1zL2lv
cy9zY3JvbGwtdG8tcmV2ZWFsLWZvY3VzZWQtc2VsZWN0Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWkt
aGVscGVyLmpzCmluZGV4IGZlNTQ2YThjODY1MDEzZGU0ZWQwNDVlY2M2YWNkMGUyM2JiYmVhYzMu
LjMxYWFjN2UxZWY3YWZlZTBjNDUxYTI4YzIyNzdmOWY4YjJhOGI1MjkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvcmVzb3Vy
Y2VzL3VpLWhlbHBlci5qcwpAQCAtMjE5LDYgKzIxOSwzNyBAQCB3aW5kb3cuVUlIZWxwZXIgPSBj
bGFzcyBVSUhlbHBlciB7CiAgICAgICAgIH0pOwogICAgIH0KIAorICAgIHN0YXRpYyBpc1Nob3dp
bmdLZXlib2FyZCgpCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9
PiB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KCJ1aUNvbnRyb2xsZXIuaXNT
aG93aW5nS2V5Ym9hcmQiLCByZXN1bHQgPT4gcmVzb2x2ZShyZXN1bHQgPT09ICJ0cnVlIikpOwor
ICAgICAgICB9KTsKKyAgICB9CisKKyAgICBzdGF0aWMgaXNQcmVzZW50aW5nTW9kYWxseSgpCisg
ICAgeworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KCJ1aUNvbnRyb2xsZXIuaXNQcmVzZW50aW5nTW9kYWxs
eSIsIHJlc3VsdCA9PiByZXNvbHZlKHJlc3VsdCA9PT0gInRydWUiKSk7CisgICAgICAgIH0pOwor
ICAgIH0KKworICAgIHN0YXRpYyBkZWFjdGl2YXRlRm9ybUNvbnRyb2woZWxlbWVudCkKKyAgICB7
CisgICAgICAgIGlmICghdGhpcy5pc1dlYktpdDIoKSB8fCAhdGhpcy5pc0lPUygpKSB7CisgICAg
ICAgICAgICBlbGVtZW50LmJsdXIoKTsKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29s
dmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyByZXNv
bHZlID0+IHsKKyAgICAgICAgICAgIGVsZW1lbnQuYmx1cigpOworICAgICAgICAgICAgd2hpbGUg
KGF3YWl0IHRoaXMuaXNQcmVzZW50aW5nTW9kYWxseSgpKQorICAgICAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICAgICAgd2hpbGUgKGF3YWl0IHRoaXMuaXNTaG93aW5nS2V5Ym9hcmQoKSkK
KyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAg
ICAgfSk7CisgICAgfQorCiAgICAgc3RhdGljIHdhaXRGb3JLZXlib2FyZFRvSGlkZSgpCiAgICAg
ewogICAgICAgICBpZiAoIXRoaXMuaXNXZWJLaXQyKCkgfHwgIXRoaXMuaXNJT1MoKSkKQEAgLTQx
OCw3ICs0NDksNyBAQCB3aW5kb3cuVUlIZWxwZXIgPSBjbGFzcyBVSUhlbHBlciB7CiAgICAgICAg
IHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKICAgICAgICAgICAgIHRlc3RSdW5uZXIu
cnVuVUlTY3JpcHQoYCgoKSA9PiB7CiAgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2Ny
aXB0Q29tcGxldGUodWlDb250cm9sbGVyLmlzU2hvd2luZ0RhdGFMaXN0U3VnZ2VzdGlvbnMpOwot
ICAgICAgICAgICAgfSkoKWAsIHJlc3VsdCA9PiByZXNvbHZlKHJlc3VsdCA9PT0gInRydWUiID8g
dHJ1ZSA6IGZhbHNlKSk7CisgICAgICAgICAgICB9KSgpYCwgcmVzdWx0ID0+IHJlc29sdmUocmVz
dWx0ID09PSAidHJ1ZSIpKTsKICAgICAgICAgfSk7CiAgICAgfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>