<?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>107205</bug_id>
          
          <creation_ts>2013-01-17 17:32:31 -0800</creation_ts>
          <short_desc>REGRESSION(r137726): Spring Loaded Pan Scrolling doesn&apos;t stop</short_desc>
          <delta_ts>2013-01-18 00:24:06 -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>UI Events</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>yosin</reporter>
          <assigned_to>yosin</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>morrita</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>809987</commentid>
    <comment_count>0</comment_count>
    <who name="">yosin</who>
    <bug_when>2013-01-17 17:32:31 -0800</bug_when>
    <thetext>Import from http://crbug.com/167238

= Re-produce steps =
1. Open scrollable page.
2. Hold middle mouse button and move pointer around to start scrolling
3. Release middle mouse button

= Result =
Continue scrolling

= Expectation =
Stop scrolling when releaseing mouse.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810190</commentid>
    <comment_count>1</comment_count>
      <attachid>183364</attachid>
    <who name="">yosin</who>
    <bug_when>2013-01-17 21:07:26 -0800</bug_when>
    <thetext>Created attachment 183364
Patch 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810191</commentid>
    <comment_count>2</comment_count>
      <attachid>183364</attachid>
    <who name="">yosin</who>
    <bug_when>2013-01-17 21:08:23 -0800</bug_when>
    <thetext>Comment on attachment 183364
Patch 1

Could you review this patch?
Thanks in advance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810269</commentid>
    <comment_count>3</comment_count>
      <attachid>183364</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-17 22:53:42 -0800</bug_when>
    <thetext>Comment on attachment 183364
Patch 1

Attachment 183364 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15937553

New failing tests:
platform/chromium-win/fast/events/panScroll-drag.html
platform/chromium-win/fast/events/panScroll-click.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810271</commentid>
    <comment_count>4</comment_count>
      <attachid>183364</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2013-01-17 22:56:59 -0800</bug_when>
    <thetext>Comment on attachment 183364
Patch 1

An approach looks good. It&apos;s great to get rid of extra flags.

About state name.
MouseDown/MouseUp is unclear here AutoScrollController doesn&apos;t handle mouse event directly for pan scroll.
It looks we have existing AutoscrollForPan and an extra state which indicates AutoscrollForPan is finishing. 
Can we just add an enum for that instead of replace AutoScroll into two state?

Also, we need TestExpectations for non-windows platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810282</commentid>
    <comment_count>5</comment_count>
      <attachid>183385</attachid>
    <who name="">yosin</who>
    <bug_when>2013-01-17 23:17:55 -0800</bug_when>
    <thetext>Created attachment 183385
Patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810285</commentid>
    <comment_count>6</comment_count>
      <attachid>183385</attachid>
    <who name="">yosin</who>
    <bug_when>2013-01-17 23:19:50 -0800</bug_when>
    <thetext>Comment on attachment 183385
Patch 2

Could you review this patch?
Thanks in advance.

= Changes since the last review =
* Update platform/chromium/TestExpecation for skipping newly added pan scroll tests.
* Use AutoscrollForPanCanStop instead of AutoscrollForPan{Before,After}MouseUp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810314</commentid>
    <comment_count>7</comment_count>
      <attachid>183385</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-18 00:24:02 -0800</bug_when>
    <thetext>Comment on attachment 183385
Patch 2

Clearing flags on attachment: 183385

Committed r140104: &lt;http://trac.webkit.org/changeset/140104&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810315</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-18 00:24:06 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183364</attachid>
            <date>2013-01-17 21:07:26 -0800</date>
            <delta_ts>2013-01-17 23:17:52 -0800</delta_ts>
            <desc>Patch 1</desc>
            <filename>bug-107205-20130118140425.patch</filename>
            <type>text/plain</type>
            <size>16138</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5OTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2U4ZDI0MmYyOTcxNGUy
MjUwMDZjMmM4MGFjMjdjZTcwMmJjYjQzMS4uMmM2MzdhYjVjOTRjODZlNTg5M2QxZDMzNjU5NDZi
NGUxYjA0NGQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEzLTAxLTE3ICBZb3No
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUkVHUkVTU0lPTihy
MTM3NzI2KTogU3ByaW5nIExvYWRlZCBQYW4gU2Nyb2xsaW5nIGRvZXNuJ3Qgc3RvcAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3MjA1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGJ1ZyBpcyBjYXVz
ZWQgYnkgZm9yZ2V0dGluZyB0byBzZXQgdHJ1ZSBtX3BhblNjcm9sbEJ1dHRvblByZXNzZWQKKyAg
ICAgICAgaW4gQXV0b3Njcm9sbENvbnRyb2xsZXI6OnN0YXJ0UGFuU2Nyb2xsKCkuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBjaGFuZ2VzIHN0YXRlIG1hbmFnbWVudCBkdXJpbmcgcGFuIHNjcm9sbCBi
eSByZXBsYWNpbmcKKyAgICAgICAgbV9wYW5TY3JvbGxCdXR0b25QcmVzc2VkIGFuZCBtX3Nwcmlu
Z0xvYWRlZFBhblNjcm9sbEluUHJvZ3Jlc3MgYnkKKyAgICAgICAgbV9hdXRvc2Nyb2xsVHlwZSB3
aXRoIGludHJvZHVjaW5nIG5ldyBBdXRvc2Nyb2xsQ29udHJvbGxlciBzdGF0ZQorICAgICAgICBB
dXRvc2Nyb2xsRm9yUGFuQmVmb3JlTW91c2VVcCBhbmQgQXV0b3Njcm9sbEZvclBhbkFmdGVyTW91
c2VVcC4KKworICAgICAgICBUZXN0czogcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3QvZXZlbnRz
L3BhblNjcm9sbC1jbGljay5odG1sCisgICAgICAgICAgICAgICBwbGF0Zm9ybS9jaHJvbWl1bS13
aW4vZmFzdC9ldmVudHMvcGFuU2Nyb2xsLWRyYWcuaHRtbAorCisgICAgICAgICogcGFnZS9BdXRv
c2Nyb2xsQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdXRvc2Nyb2xsQ29udHJv
bGxlcjo6QXV0b3Njcm9sbENvbnRyb2xsZXIpOiBDaGFuZ2VkIHRvIHJlbW92ZSBpbml0aWFsaXph
dGlvbiBvZiBtX3BhblNjcm9sbEJ1dHRvblByZXNzZWQgYW5kIG1fc3ByaW5nTG9hZGVkUGFuU2Ny
b2xsSW5Qcm9ncmVzcy4KKyAgICAgICAgKFdlYkNvcmU6OkF1dG9zY3JvbGxDb250cm9sbGVyOjpz
dG9wQXV0b3Njcm9sbFRpbWVyKTogQ2hhbmdlZCB0byByZW1vdmUgcmVzZXR0aW5nIG1fcGFuU2Ny
b2xsQnV0dG9uUHJlc3NlZCBhbmQgbV9zcHJpbmdMb2FkZWRQYW5TY3JvbGxJblByb2dyZXNzLgor
ICAgICAgICAoV2ViQ29yZTo6QXV0b3Njcm9sbENvbnRyb2xsZXI6OmRpZFBhblNjcm9sbFN0YXJ0
KTogQ2hhbmdlZCB0byB1c2UgQXV0b3Njcm9sbEZvclBhbkJlZm9yZU1vdXNlVXAuCisgICAgICAg
IChXZWJDb3JlOjpBdXRvc2Nyb2xsQ29udHJvbGxlcjo6aGFuZGxlTW91c2VSZWxlYXNlRXZlbnQp
OiBDaGFuZ2VkIHRvIGhhbmRsZSBBdXRvc2Nyb2xsRm9yUGFuQmVmb3JlTW91c2VVcCBhbmQgQXV0
b3Njcm9sbEZvclBhbkFmdGVyTW91c2VVcC4KKyAgICAgICAgKFdlYkNvcmU6OkF1dG9zY3JvbGxD
b250cm9sbGVyOjpwYW5TY3JvbGxJblByb2dyZXNzKTogQ2hhbmdlZCB0byB1c2UgQXV0b3Njcm9s
bEZvclBhbkJlZm9yZU1vdXNlVXAgYW5kIEF1dG9zY3JvbGxGb3JQYW5BZnRlck1vdXNlVXAuCisg
ICAgICAgIChXZWJDb3JlOjpBdXRvc2Nyb2xsQ29udHJvbGxlcjo6c3RhcnRQYW5TY3JvbGxpbmcp
OiBDaGFuZ2VkIHRvIHVzZSBBdXRvc2Nyb2xsRm9yUGFuQmVmb3JlTW91c2VVcC4KKyAgICAgICAg
KFdlYkNvcmU6OkF1dG9zY3JvbGxDb250cm9sbGVyOjphdXRvc2Nyb2xsVGltZXJGaXJlZCk6IENo
YW5nZWQgdG8gdXNlIEF1dG9zY3JvbGxGb3JQYW5CZWZvcmVNb3VzZVVwIGFuZCBBdXRvc2Nyb2xs
Rm9yUGFuQWZ0ZXJNb3VzZVVwLgorICAgICAgICAoV2ViQ29yZTo6QXV0b3Njcm9sbENvbnRyb2xs
ZXI6OnVwZGF0ZVBhblNjcm9sbFN0YXRlKTogZGl0dG8uCisgICAgICAgICogcGFnZS9BdXRvc2Ny
b2xsQ29udHJvbGxlci5oOgorICAgICAgICAoQXV0b3Njcm9sbENvbnRyb2xsZXIpOiBDaGFuZ2Vk
IHRvIGFkZCBBdXRvc2Nyb2xsRm9yUGFuQmVmb3JlTW91c2VVcCBhbmQgQXV0b3Njcm9sbEZvclBh
bkFmdGVyTW91c2VVcC4KKwogMjAxMy0wMS0xNiAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgU3luY2hyb25vdXMgWE1MSFRUUFJlcXVlc3RzIG5lZWQgdG8gZ28g
dG8gdGhlIE5ldHdvcmtQcm9jZXNzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9B
dXRvc2Nyb2xsQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9zY3JvbGxD
b250cm9sbGVyLmNwcAppbmRleCA0MzhlOTlkMzExYjdhYmE1MTY5NGZkNGY4ZWVkODZjZTVkMDAy
NWJlLi5kYWJkNzMzZTA2ZWRjODg0NTgyOGIzMWNiMDY5NzdmYzIxYjU0NDgwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmNwcApAQCAtNTMsMTAgKzUzLDYg
QEAgQXV0b3Njcm9sbENvbnRyb2xsZXI6OkF1dG9zY3JvbGxDb250cm9sbGVyKCkKICAgICA6IG1f
YXV0b3Njcm9sbFRpbWVyKHRoaXMsICZBdXRvc2Nyb2xsQ29udHJvbGxlcjo6YXV0b3Njcm9sbFRp
bWVyRmlyZWQpCiAgICAgLCBtX2F1dG9zY3JvbGxSZW5kZXJlcigwKQogICAgICwgbV9hdXRvc2Ny
b2xsVHlwZShOb0F1dG9zY3JvbGwpCi0jaWYgRU5BQkxFKFBBTl9TQ1JPTExJTkcpCi0gICAgLCBt
X3BhblNjcm9sbEJ1dHRvblByZXNzZWQoZmFsc2UpCi0gICAgLCBtX3NwcmluZ0xvYWRlZFBhblNj
cm9sbEluUHJvZ3Jlc3MoZmFsc2UpCi0jZW5kaWYKIHsKIH0KIApAQCAtODksMTAgKzg1LDYgQEAg
dm9pZCBBdXRvc2Nyb2xsQ29udHJvbGxlcjo6c3RvcEF1dG9zY3JvbGxUaW1lcihib29sIHJlbmRl
cmVySXNCZWluZ0Rlc3Ryb3llZCkKICAgICBtX2F1dG9zY3JvbGxUaW1lci5zdG9wKCk7CiAgICAg
bV9hdXRvc2Nyb2xsVHlwZSA9IE5vQXV0b3Njcm9sbDsKICAgICBtX2F1dG9zY3JvbGxSZW5kZXJl
ciA9IDA7Ci0jaWYgRU5BQkxFKFBBTl9TQ1JPTExJTkcpCi0gICAgbV9wYW5TY3JvbGxCdXR0b25Q
cmVzc2VkID0gZmFsc2U7Ci0gICAgbV9zcHJpbmdMb2FkZWRQYW5TY3JvbGxJblByb2dyZXNzID0g
ZmFsc2U7Ci0jZW5kaWYKIAogICAgIGlmICghc2Nyb2xsYWJsZSkKICAgICAgICAgcmV0dXJuOwpA
QCAtMTQ3LDcgKzEzOSw3IEBAIHZvaWQgQXV0b3Njcm9sbENvbnRyb2xsZXI6OnVwZGF0ZUF1dG9z
Y3JvbGxSZW5kZXJlcigpCiAjaWYgRU5BQkxFKFBBTl9TQ1JPTExJTkcpCiB2b2lkIEF1dG9zY3Jv
bGxDb250cm9sbGVyOjpkaWRQYW5TY3JvbGxTdGFydCgpCiB7Ci0gICAgbV9hdXRvc2Nyb2xsVHlw
ZSA9IEF1dG9zY3JvbGxGb3JQYW47CisgICAgbV9hdXRvc2Nyb2xsVHlwZSA9IEF1dG9zY3JvbGxG
b3JQYW5CZWZvcmVNb3VzZVVwOwogfQogCiB2b2lkIEF1dG9zY3JvbGxDb250cm9sbGVyOjpkaWRQ
YW5TY3JvbGxTdG9wKCkKQEAgLTE1NywxNSArMTQ5LDIwIEBAIHZvaWQgQXV0b3Njcm9sbENvbnRy
b2xsZXI6OmRpZFBhblNjcm9sbFN0b3AoKQogCiB2b2lkIEF1dG9zY3JvbGxDb250cm9sbGVyOjpo
YW5kbGVNb3VzZVJlbGVhc2VFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIG1vdXNlRXZl
bnQpCiB7Ci0gICAgaWYgKG1vdXNlRXZlbnQuYnV0dG9uKCkgPT0gTWlkZGxlQnV0dG9uKQotICAg
ICAgICBtX3BhblNjcm9sbEJ1dHRvblByZXNzZWQgPSBmYWxzZTsKLSAgICBpZiAobV9zcHJpbmdM
b2FkZWRQYW5TY3JvbGxJblByb2dyZXNzKQorICAgIHN3aXRjaCAobV9hdXRvc2Nyb2xsVHlwZSkg
eworICAgIGNhc2UgQXV0b3Njcm9sbEZvclBhbkJlZm9yZU1vdXNlVXA6CisgICAgICAgIGlmICht
b3VzZUV2ZW50LmJ1dHRvbigpID09IE1pZGRsZUJ1dHRvbikKKyAgICAgICAgICAgIG1fYXV0b3Nj
cm9sbFR5cGUgPSBBdXRvc2Nyb2xsRm9yUGFuQWZ0ZXJNb3VzZVVwOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIEF1dG9zY3JvbGxGb3JQYW5BZnRlck1vdXNlVXA6CiAgICAgICAgIHN0b3BBdXRv
c2Nyb2xsVGltZXIoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQogfQogCiBib29sIEF1dG9zY3Jv
bGxDb250cm9sbGVyOjpwYW5TY3JvbGxJblByb2dyZXNzKCkgY29uc3QKIHsKLSAgICByZXR1cm4g
bV9hdXRvc2Nyb2xsVHlwZSA9PSBBdXRvc2Nyb2xsRm9yUGFuOworICAgIHJldHVybiBtX2F1dG9z
Y3JvbGxUeXBlID09IEF1dG9zY3JvbGxGb3JQYW5BZnRlck1vdXNlVXAgfHwgbV9hdXRvc2Nyb2xs
VHlwZSA9PSBBdXRvc2Nyb2xsRm9yUGFuQmVmb3JlTW91c2VVcDsKIH0KIAogdm9pZCBBdXRvc2Ny
b2xsQ29udHJvbGxlcjo6c3RhcnRQYW5TY3JvbGxpbmcoUmVuZGVyQm94KiBzY3JvbGxhYmxlLCBj
b25zdCBJbnRQb2ludCYgbGFzdEtub3duTW91c2VQb3NpdGlvbikKQEAgLTE3NCwxMCArMTcxLDkg
QEAgdm9pZCBBdXRvc2Nyb2xsQ29udHJvbGxlcjo6c3RhcnRQYW5TY3JvbGxpbmcoUmVuZGVyQm94
KiBzY3JvbGxhYmxlLCBjb25zdCBJbnRQb2kKICAgICBpZiAobV9hdXRvc2Nyb2xsVGltZXIuaXNB
Y3RpdmUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9hdXRvc2Nyb2xsVHlwZSA9IEF1dG9z
Y3JvbGxGb3JQYW47CisgICAgbV9hdXRvc2Nyb2xsVHlwZSA9IEF1dG9zY3JvbGxGb3JQYW5CZWZv
cmVNb3VzZVVwOwogICAgIG1fYXV0b3Njcm9sbFJlbmRlcmVyID0gc2Nyb2xsYWJsZTsKICAgICBt
X3BhblNjcm9sbFN0YXJ0UG9zID0gbGFzdEtub3duTW91c2VQb3NpdGlvbjsKLSAgICBtX3Nwcmlu
Z0xvYWRlZFBhblNjcm9sbEluUHJvZ3Jlc3MgPSBmYWxzZTsKIAogICAgIGlmIChGcmFtZVZpZXcq
IHZpZXcgPSBzY3JvbGxhYmxlLT5mcmFtZSgpLT52aWV3KCkpCiAgICAgICAgIHZpZXctPmFkZFBh
blNjcm9sbEljb24obGFzdEtub3duTW91c2VQb3NpdGlvbik7CkBAIC0yMTAsNyArMjA2LDggQEAg
dm9pZCBBdXRvc2Nyb2xsQ29udHJvbGxlcjo6YXV0b3Njcm9sbFRpbWVyRmlyZWQoVGltZXI8QXV0
b3Njcm9sbENvbnRyb2xsZXI+KikKICAgICBjYXNlIE5vQXV0b3Njcm9sbDoKICAgICAgICAgYnJl
YWs7CiAjaWYgRU5BQkxFKFBBTl9TQ1JPTExJTkcpCi0gICAgY2FzZSBBdXRvc2Nyb2xsRm9yUGFu
OgorICAgIGNhc2UgQXV0b3Njcm9sbEZvclBhbkFmdGVyTW91c2VVcDoKKyAgICBjYXNlIEF1dG9z
Y3JvbGxGb3JQYW5CZWZvcmVNb3VzZVVwOgogICAgICAgICAvLyB3ZSB2ZXJpZnkgdGhhdCB0aGUg
bWFpbiBmcmFtZSBoYXNuJ3QgcmVjZWl2ZWQgdGhlIG9yZGVyIHRvIHN0b3AgdGhlIHBhblNjcm9s
bAogICAgICAgICBpZiAoRnJhbWUqIG1haW5GcmFtZSA9IGdldE1haW5GcmFtZShmcmFtZSkpIHsK
ICAgICAgICAgICAgIGlmICghbWFpbkZyYW1lLT5ldmVudEhhbmRsZXIoKS0+cGFuU2Nyb2xsSW5Q
cm9ncmVzcygpKSB7CkBAIC0yNDEsOCArMjM4LDggQEAgdm9pZCBBdXRvc2Nyb2xsQ29udHJvbGxl
cjo6dXBkYXRlUGFuU2Nyb2xsU3RhdGUoRnJhbWVWaWV3KiB2aWV3LCBjb25zdCBJbnRQb2ludCYK
ICAgICBib29sIG5vcnRoID0gbV9wYW5TY3JvbGxTdGFydFBvcy55KCkgPiAobGFzdEtub3duTW91
c2VQb3NpdGlvbi55KCkgKyBTY3JvbGxWaWV3Ojpub1BhblNjcm9sbFJhZGl1cyk7CiAgICAgYm9v
bCBzb3V0aCA9IG1fcGFuU2Nyb2xsU3RhcnRQb3MueSgpIDwgKGxhc3RLbm93bk1vdXNlUG9zaXRp
b24ueSgpIC0gU2Nyb2xsVmlldzo6bm9QYW5TY3JvbGxSYWRpdXMpOwogCi0gICAgaWYgKChlYXN0
IHx8IHdlc3QgfHwgbm9ydGggfHwgc291dGgpICYmIG1fcGFuU2Nyb2xsQnV0dG9uUHJlc3NlZCkK
LSAgICAgICAgbV9zcHJpbmdMb2FkZWRQYW5TY3JvbGxJblByb2dyZXNzID0gdHJ1ZTsKKyAgICBp
ZiAobV9hdXRvc2Nyb2xsVHlwZSA9PSBBdXRvc2Nyb2xsRm9yUGFuQmVmb3JlTW91c2VVcCAmJiAo
ZWFzdCB8fCB3ZXN0IHx8IG5vcnRoIHx8IHNvdXRoKSkKKyAgICAgICAgbV9hdXRvc2Nyb2xsVHlw
ZSA9IEF1dG9zY3JvbGxGb3JQYW5BZnRlck1vdXNlVXA7CiAKICAgICBpZiAobm9ydGgpIHsKICAg
ICAgICAgaWYgKGVhc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9zY3Jv
bGxDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9zY3JvbGxDb250cm9sbGVy
LmgKaW5kZXggZjY3MWYxNWQ0MzM2NTcxYWRhMmNlNTUyZjBkNzdiYWEzYjg4ODk2OC4uMTMxZGQ5
NzIwNzA5YThlODMyOWY5Mjk5YzEzNzYyMDE2YjRhYWE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQXV0b3Njcm9sbENvbnRyb2xsZXIuaApAQCAtNDIsNyArNDIsOCBAQCBlbnVtIEF1dG9zY3Jv
bGxUeXBlIHsKICAgICBOb0F1dG9zY3JvbGwsCiAgICAgQXV0b3Njcm9sbEZvclNlbGVjdGlvbiwK
ICNpZiBFTkFCTEUoUEFOX1NDUk9MTElORykKLSAgICBBdXRvc2Nyb2xsRm9yUGFuLAorICAgIEF1
dG9zY3JvbGxGb3JQYW5BZnRlck1vdXNlVXAsCisgICAgQXV0b3Njcm9sbEZvclBhbkJlZm9yZU1v
dXNlVXAsCiAjZW5kaWYKIH07CiAKQEAgLTc2LDggKzc3LDYgQEAgcHJpdmF0ZToKICAgICBBdXRv
c2Nyb2xsVHlwZSBtX2F1dG9zY3JvbGxUeXBlOwogI2lmIEVOQUJMRShQQU5fU0NST0xMSU5HKQog
ICAgIEludFBvaW50IG1fcGFuU2Nyb2xsU3RhcnRQb3M7Ci0gICAgYm9vbCBtX3BhblNjcm9sbEJ1
dHRvblByZXNzZWQ7Ci0gICAgYm9vbCBtX3NwcmluZ0xvYWRlZFBhblNjcm9sbEluUHJvZ3Jlc3M7
CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1YjY4ZDJlOTBiNTBmMjBlNDE4ZmJlOGYxYzAzODE0ZDIw
OTE5YTcyLi4yMTMxNmM2NmI5ZmRmNzI3ZDg0MWU0NTFkODRjNzI2Mzk4Y2M5ZmFmIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTMtMDEtMTcgIFlvc2hpZnVtaSBJbm91ZSAgPHlvc2luQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSRUdSRVNTSU9OKHIxMzc3MjYpOiBTcHJpbmcgTG9hZGVkIFBh
biBTY3JvbGxpbmcgZG9lc24ndCBzdG9wCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDcyMDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L2V2ZW50cy9wYW5T
Y3JvbGwtY2xpY2stZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS13aW4vZmFzdC9ldmVudHMvcGFuU2Nyb2xsLWNsaWNrLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L2V2ZW50cy9wYW5TY3JvbGwtZHJhZy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L2V2
ZW50cy9wYW5TY3JvbGwtZHJhZy5odG1sOiBBZGRlZC4KKwogMjAxMy0wMS0xNiAgVmljdG9yIENh
cmJ1bmUgIDx2Y2FyYnVuZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQ3VlcyBub3QgcmVuZGVy
ZWQgd2hlbiB0aGV5IHNob3VsZCBiZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL2Zhc3QvZXZlbnRzL3BhblNjcm9sbC1jbGljay1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9ldmVudHMvcGFuU2Nyb2xsLWNs
aWNrLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYjg5ZTBhOTExYWRiYzE2NzZkOWYyYzkyMWY2
OWVjNmU0N2Y4NjYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0td2luL2Zhc3QvZXZlbnRzL3BhblNjcm9sbC1jbGljay1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw5IEBACitGb3IgbWFudWFsIHRlc3RpbmcsIGhvbGQgbWlkZGxlIGJ1dHRvbiBpbiBzY3Jv
bGxhYmxlIGFuZCBtb3ZlIGFyb3VkbiBtb3VzZSBwb2ludGVyIGZvciBzY3JvbGxpbmcsIHRoZW4g
cmVsZWFzZSBtaWRkbGUgYnV0dG9uIHRvIHN0b3Agc2Nyb2xsaW5nLgorQ2hlY2sgcGFuIHNjcm9s
bCBieSBjbGljayBtb3VzZQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBz
Y3JvbGxhYmxlLnNjcm9sbFRvcCA+IDAKK1BBU1MgYXV0b3Njcm9sbCBzdG9wcGVkCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L2V2ZW50cy9wYW5T
Y3JvbGwtY2xpY2suaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0
L2V2ZW50cy9wYW5TY3JvbGwtY2xpY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mOWE0YTczZDY4OTU5Yzk1
YTg3OWUzNzEzYTk4NGI4MmM3NjBhZTU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3QvZXZlbnRzL3BhblNjcm9sbC1jbGljay5odG1sCkBA
IC0wLDAgKzEsMTIzIEBACis8aHRtbD4KKzxoZWFkPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4K
KyNkcmFnZ2FibGUgeworICBwYWRkaW5nOiA1cHQ7CisgIGJvcmRlcjogM3B4IHNvbGlkICMwMGNj
MDA7CisgIGJhY2tncm91bmQ6ICMwMGNjY2M7CisgIHdpZHRoOiA4MHB4OworICBjdXJzb3I6IGhh
bmQ7Cit9CisKKyNzY3JvbGxhYmxlIHsKKyAgICBoZWlnaHQ6IDIwMHB4OworICAgIG92ZXJmbG93
OiBhdXRvOworICAgIGJvcmRlcjogc29saWQgM3B4ICNjYzAwMDA7CisgICAgZm9udC1zaXplOiA4
MHB4OworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiAkKGlkKSB7IHJldHVybiBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZChpZCk7IH0KK3ZhciBNSURETEVfQlVUVE9OID0gMTsKK3ZhciBQ
QU5fU0NST0xMX1JBRElVUyA9IDE1OyAvLyBmcm9tIFdlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmll
dy5oCisKK2Z1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgJCgnY29udGFpbmVyJykuaW5uZXJI
VE1MID0gJyc7CisgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5j
dGlvbiB0ZXN0SXQoKSB7CisgICAgdmFyIHNjcm9sbGFibGUgPSAkKCdzY3JvbGxhYmxlJyk7CisK
KyAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8g
U3RhcnQgcGFuIHNjcm9sbCBieSBjbGljaworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHNj
cm9sbGFibGUub2Zmc2V0TGVmdCArIDUsIHNjcm9sbGFibGUub2Zmc2V0VG9wICsgNSk7CisgICAg
ZXZlbnRTZW5kZXIubW91c2VEb3duKE1JRERMRV9CVVRUT04pOworICAgIGV2ZW50U2VuZGVyLm1v
dXNlVXAoTUlERExFX0JVVFRPTik7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc2Nyb2xs
YWJsZS5vZmZzZXRMZWZ0ICsgNSwgc2Nyb2xsYWJsZS5vZmZzZXRUb3AgKyBQQU5fU0NST0xMX1JB
RElVUyArIDYpOworCisgICAgdmFyIHJldHJ5Q291bnQgPSAwOworICAgIHZhciBsYXN0U2Nyb2xs
VG9wID0gMDsKKworICAgIGZ1bmN0aW9uIGNoZWNrU2Nyb2xsZWQoKQorICAgIHsKKyAgICAgICAg
aWYgKHNjcm9sbGFibGUuc2Nyb2xsVG9wID4gMCkgeworICAgICAgICAgICAgdGVzdFBhc3NlZCgn
c2Nyb2xsYWJsZS5zY3JvbGxUb3AgPiAwJyk7CisgICAgICAgICAgICAvLyBTdG9wIHNwcmluZyBs
b2FkZWQgcGFuIHNjcm9sbAorICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKE1JRERM
RV9CVVRUT04pOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcChNSURETEVfQlVUVE9O
KTsKKyAgICAgICAgICAgIHJldHJ5Q291bnQgPSAwOworICAgICAgICAgICAgd2luZG93LnNldFRp
bWVvdXQoY2hlY2tTdG9wcGVkLCA1MCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KworICAgICAgICArK3JldHJ5Q291bnQ7CisgICAgICAgIGlmIChyZXRyeUNvdW50ID4gMTApIHsK
KyAgICAgICAgICAgIHRlc3RGYWlsZWQoJ05vIGF1dG9zY3JvbGwnKTsKKyAgICAgICAgICAgIGZp
bmlzaFRlc3QoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8v
IEF1dG9zY3JvbGwgaXMgb2NjdXJyZWQgZXZleSAwLjA1IHNlYy4KKyAgICAgICAgd2luZG93LnNl
dFRpbWVvdXQoY2hlY2tTY3JvbGxlZCwgNTApOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNoZWNr
U3RvcHBlZCgpCisgICAgeworICAgICAgICBpZiAobGFzdFNjcm9sbFRvcCA9PSBzY3JvbGxhYmxl
LnNjcm9sbFRvcCkgeworICAgICAgICAgICAgdGVzdFBhc3NlZCgnYXV0b3Njcm9sbCBzdG9wcGVk
Jyk7CisgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKworICAgICAgICArK3JldHJ5Q291bnQ7CisgICAgICAgIGlmIChyZXRyeUNvdW50ID4g
MTApIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoJ3N0aWxsIGF1dG9zY3JvbGwnKTsKKyAgICAg
ICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisg
ICAgICAgIGxhc3RTY3JvbGxUb3AgPSBzY3JvbGxhYmxlLnNjcm9sbFRvcDsKKyAgICAgICAgd2lu
ZG93LnNldFRpbWVvdXQoY2hlY2tTdG9wcGVkLCA1MCk7CisgICAgfQorCisgICAgY2hlY2tTY3Jv
bGxlZCgpOworfQorCitmdW5jdGlvbiBzZXRVcFRlc3QoKQoreworICAgIHZhciBzY3JvbGxhYmxl
ID0gJCgnc2Nyb2xsYWJsZScpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpIHsK
KyAgICAgIHZhciBsaW5lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICBs
aW5lLmlubmVySFRNTCA9ICJsaW5lICIgKyBpOworICAgICAgc2Nyb2xsYWJsZS5hcHBlbmRDaGls
ZChsaW5lKTsKKyAgICB9CisKKyAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAg
ICBjb25zb2xlLmxvZygnUGxlYXNlIHJ1biB3aXRoaW4gRHVtcFJlbmRlclRyZWUnKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAg
ICB3aW5kb3cuc2V0VGltZW91dCh0ZXN0SXQsIDApOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KK0ZvciBtYW51YWwgdGVzdGluZywgaG9sZCBtaWRkbGUgYnV0dG9uIGluIHNjcm9sbGFi
bGUgYW5kIG1vdmUgYXJvdWRuIG1vdXNlIHBvaW50ZXIgZm9yIHNjcm9sbGluZywgdGhlbiByZWxl
YXNlIG1pZGRsZSBidXR0b24gdG8gc3RvcCBzY3JvbGxpbmcuCis8ZGl2IGlkPSJjb250YWluZXIi
PgorU2Nyb2xsYWJsZQorPGRpdiBpZD0ic2Nyb2xsYWJsZSI+Cis8L2Rpdj4KKzwvZGl2PgorPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9u
KCdDaGVjayBwYW4gc2Nyb2xsIGJ5IGNsaWNrIG1vdXNlJyk7CitzZXRVcFRlc3QoKTsKKzwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9ldmVudHMvcGFuU2Nyb2xsLWRyYWctZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3QvZXZlbnRz
L3BhblNjcm9sbC1kcmFnLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMWMxMTdlN2Y5Yjk3NzFj
YzIxMzFjNTdkNDEyZjExNjZmODE1OWNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3QvZXZlbnRzL3BhblNjcm9sbC1kcmFnLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDkgQEAKK0ZvciBtYW51YWwgdGVzdGluZywgaG9sZCBtaWRkbGUgYnV0
dG9uIGluIHNjcm9sbGFibGUgYW5kIG1vdmUgYXJvdWRuIG1vdXNlIHBvaW50ZXIgZm9yIHNjcm9s
bGluZywgdGhlbiByZWxlYXNlIG1pZGRsZSBidXR0b24gdG8gc3RvcCBzY3JvbGxpbmcuCitDaGVj
ayBwYW4gc2Nyb2xsIGJ5IGRyYWcgbW91c2UKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1Mgc2Nyb2xsYWJsZS5zY3JvbGxUb3AgPiAwCitQQVNTIGF1dG9zY3JvbGwgc3RvcHBl
ZAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9l
dmVudHMvcGFuU2Nyb2xsLWRyYWcuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LXdpbi9mYXN0L2V2ZW50cy9wYW5TY3JvbGwtZHJhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjN2I5YzY3
ODZmYTViOWJlMWY3NDk3MGZmZmI1NjJkZTIyYTdiMmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9ldmVudHMvcGFuU2Nyb2xsLWRyYWcu
aHRtbApAQCAtMCwwICsxLDEyMSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZSB0eXBlPSJ0ZXh0
L2NzcyI+CisjZHJhZ2dhYmxlIHsKKyAgcGFkZGluZzogNXB0OworICBib3JkZXI6IDNweCBzb2xp
ZCAjMDBjYzAwOworICBiYWNrZ3JvdW5kOiAjMDBjY2NjOworICB3aWR0aDogODBweDsKKyAgY3Vy
c29yOiBoYW5kOworfQorCisjc2Nyb2xsYWJsZSB7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgICBv
dmVyZmxvdzogYXV0bzsKKyAgICBib3JkZXI6IHNvbGlkIDNweCAjY2MwMDAwOworICAgIGZvbnQt
c2l6ZTogODBweDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorZnVuY3Rpb24gJChpZCkgeyByZXR1
cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOyB9Cit2YXIgTUlERExFX0JVVFRPTiA9IDE7
Cit2YXIgUEFOX1NDUk9MTF9SQURJVVMgPSAxNTsgLy8gZnJvbSBXZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbFZpZXcuaAorCitmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICQoJ2NvbnRhaW5lcicp
LmlubmVySFRNTCA9ICcnOworICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30K
KworZnVuY3Rpb24gdGVzdEl0KCkgeworICAgIHZhciBzY3JvbGxhYmxlID0gJCgnc2Nyb2xsYWJs
ZScpOworCisgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgIHJldHVybjsKKwor
ICAgIC8vIFN0YXJ0IHBhbiBzY3JvbGwgYnkgZHJhZworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92
ZVRvKHNjcm9sbGFibGUub2Zmc2V0TGVmdCArIDUsIHNjcm9sbGFibGUub2Zmc2V0VG9wICsgNSk7
CisgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKE1JRERMRV9CVVRUT04pOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlTW92ZVRvKHNjcm9sbGFibGUub2Zmc2V0TGVmdCArIDUsIHNjcm9sbGFibGUub2Zm
c2V0VG9wICsgUEFOX1NDUk9MTF9SQURJVVMgKyA2KTsKKworICAgIHZhciByZXRyeUNvdW50ID0g
MDsKKyAgICB2YXIgbGFzdFNjcm9sbFRvcCA9IDA7CisKKyAgICBmdW5jdGlvbiBjaGVja1Njcm9s
bGVkKCkKKyAgICB7CisgICAgICAgIGlmIChzY3JvbGxhYmxlLnNjcm9sbFRvcCA+IDApIHsKKyAg
ICAgICAgICAgIHRlc3RQYXNzZWQoJ3Njcm9sbGFibGUuc2Nyb2xsVG9wID4gMCcpOworICAgICAg
ICAgICAgLy8gU3RvcCBzcHJpbmcgbG9hZGVkIHBhbiBzY3JvbGwKKyAgICAgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlVXAoTUlERExFX0JVVFRPTik7CisgICAgICAgICAgICByZXRyeUNvdW50ID0g
MDsKKyAgICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGNoZWNrU3RvcHBlZCwgNTApOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgKytyZXRyeUNvdW50OworICAg
ICAgICBpZiAocmV0cnlDb3VudCA+IDEwKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCdObyBh
dXRvc2Nyb2xsJyk7CisgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKworICAgICAgICAvLyBBdXRvc2Nyb2xsIGlzIG9jY3VycmVkIGV2ZXkg
MC4wNSBzZWMuCisgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGNoZWNrU2Nyb2xsZWQsIDUwKTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBjaGVja1N0b3BwZWQoKQorICAgIHsKKyAgICAgICAgaWYg
KGxhc3RTY3JvbGxUb3AgPT0gc2Nyb2xsYWJsZS5zY3JvbGxUb3ApIHsKKyAgICAgICAgICAgIHRl
c3RQYXNzZWQoJ2F1dG9zY3JvbGwgc3RvcHBlZCcpOworICAgICAgICAgICAgZmluaXNoVGVzdCgp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgKytyZXRyeUNvdW50
OworICAgICAgICBpZiAocmV0cnlDb3VudCA+IDEwKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVk
KCdzdGlsbCBhdXRvc2Nyb2xsJyk7CisgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBsYXN0U2Nyb2xsVG9wID0gc2Nyb2xs
YWJsZS5zY3JvbGxUb3A7CisgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGNoZWNrU3RvcHBlZCwg
NTApOworICAgIH0KKworICAgIGNoZWNrU2Nyb2xsZWQoKTsKK30KKworZnVuY3Rpb24gc2V0VXBU
ZXN0KCkKK3sKKyAgICB2YXIgc2Nyb2xsYWJsZSA9ICQoJ3Njcm9sbGFibGUnKTsKKyAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDsgKytpKSB7CisgICAgICB2YXIgbGluZSA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgbGluZS5pbm5lckhUTUwgPSAibGluZSAiICsgaTsK
KyAgICAgIHNjcm9sbGFibGUuYXBwZW5kQ2hpbGQobGluZSk7CisgICAgfQorCisgICAgaWYgKCF3
aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgY29uc29sZS5sb2coJ1BsZWFzZSBydW4gd2l0
aGluIER1bXBSZW5kZXJUcmVlJyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB3aW5k
b3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgd2luZG93LnNldFRpbWVvdXQodGVzdEl0LCAw
KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CitGb3IgbWFudWFsIHRlc3RpbmcsIGhv
bGQgbWlkZGxlIGJ1dHRvbiBpbiBzY3JvbGxhYmxlIGFuZCBtb3ZlIGFyb3VkbiBtb3VzZSBwb2lu
dGVyIGZvciBzY3JvbGxpbmcsIHRoZW4gcmVsZWFzZSBtaWRkbGUgYnV0dG9uIHRvIHN0b3Agc2Ny
b2xsaW5nLgorPGRpdiBpZD0iY29udGFpbmVyIj4KK1Njcm9sbGFibGUKKzxkaXYgaWQ9InNjcm9s
bGFibGUiPgorPC9kaXY+Cis8L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignQ2hlY2sgcGFuIHNjcm9sbCBieSBkcmFnIG1v
dXNlJyk7CitzZXRVcFRlc3QoKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183385</attachid>
            <date>2013-01-17 23:17:55 -0800</date>
            <delta_ts>2013-01-18 00:24:02 -0800</delta_ts>
            <desc>Patch 2</desc>
            <filename>bug-107205-20130118161454.patch</filename>
            <type>text/plain</type>
            <size>16479</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5OTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2U4ZDI0MmYyOTcxNGUy
MjUwMDZjMmM4MGFjMjdjZTcwMmJjYjQzMS4uMjJmMjE2YWQxZjU3N2M3YmYzMDJhMThmZTUwMTQy
YmVhMjE3ZTRhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEzLTAxLTE3ICBZb3No
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUkVHUkVTU0lPTihy
MTM3NzI2KTogU3ByaW5nIExvYWRlZCBQYW4gU2Nyb2xsaW5nIGRvZXNuJ3Qgc3RvcAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3MjA1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGJ1ZyBpcyBjYXVz
ZWQgYnkgZm9yZ2V0dGluZyB0byBzZXQgdHJ1ZSBtX3BhblNjcm9sbEJ1dHRvblByZXNzZWQKKyAg
ICAgICAgaW4gQXV0b3Njcm9sbENvbnRyb2xsZXI6OnN0YXJ0UGFuU2Nyb2xsKCkuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBjaGFuZ2VzIHN0YXRlIG1hbmFnZW1lbnQgZHVyaW5nIHBhbiBzY3JvbGwg
YnkgcmVwbGFjaW5nCisgICAgICAgIG1fcGFuU2Nyb2xsQnV0dG9uUHJlc3NlZCBhbmQgbV9zcHJp
bmdMb2FkZWRQYW5TY3JvbGxJblByb2dyZXNzIGJ5CisgICAgICAgIG1fYXV0b3Njcm9sbFR5cGUg
d2l0aCBpbnRyb2R1Y2luZyBuZXcgQXV0b3Njcm9sbENvbnRyb2xsZXIgc3RhdGUKKyAgICAgICAg
QXV0b3Njcm9sbEZvclBhbkNhblN0b3AuCisKKyAgICAgICAgVGVzdHM6IHBsYXRmb3JtL2Nocm9t
aXVtLXdpbi9mYXN0L2V2ZW50cy9wYW5TY3JvbGwtY2xpY2suaHRtbAorICAgICAgICAgICAgICAg
cGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3QvZXZlbnRzL3BhblNjcm9sbC1kcmFnLmh0bWwKKwor
ICAgICAgICAqIHBhZ2UvQXV0b3Njcm9sbENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXV0b3Njcm9sbENvbnRyb2xsZXI6OkF1dG9zY3JvbGxDb250cm9sbGVyKTogQ2hhbmdlZCB0
byByZW1vdmUgaW5pdGlhbGl6YXRpb24gb2YgbV9wYW5TY3JvbGxCdXR0b25QcmVzc2VkIGFuZCBt
X3NwcmluZ0xvYWRlZFBhblNjcm9sbEluUHJvZ3Jlc3MuCisgICAgICAgIChXZWJDb3JlOjpBdXRv
c2Nyb2xsQ29udHJvbGxlcjo6c3RvcEF1dG9zY3JvbGxUaW1lcik6IENoYW5nZWQgdG8gcmVtb3Zl
IHJlc2V0dGluZyBtX3BhblNjcm9sbEJ1dHRvblByZXNzZWQgYW5kIG1fc3ByaW5nTG9hZGVkUGFu
U2Nyb2xsSW5Qcm9ncmVzcy4KKyAgICAgICAgKFdlYkNvcmU6OkF1dG9zY3JvbGxDb250cm9sbGVy
OjpoYW5kbGVNb3VzZVJlbGVhc2VFdmVudCk6IENoYW5nZWQgdG8gaGFuZGxlIEF1dG9zY3JvbGxG
b3JQYW4gYW5kIEF1dG9zY3JvbGxGb3JQYW5DYW5TdG9wLgorICAgICAgICAoV2ViQ29yZTo6QXV0
b3Njcm9sbENvbnRyb2xsZXI6OnBhblNjcm9sbEluUHJvZ3Jlc3MpOiBDaGFuZ2VkIHRvIGNoZWNr
IEF1dG9zY3JvbGxGb3JQYW5DYW5TdG9wIHRvby4KKyAgICAgICAgKFdlYkNvcmU6OkF1dG9zY3Jv
bGxDb250cm9sbGVyOjpzdGFydFBhblNjcm9sbGluZyk6IENoYW5nZWQgdG8gcmVtb3ZlIHNldHRp
bmcgb2YgbV9zcHJpbmdMb2FkZWRQYW5TY3JvbGxJblByb2dyZXNzLgorICAgICAgICAoV2ViQ29y
ZTo6QXV0b3Njcm9sbENvbnRyb2xsZXI6OmF1dG9zY3JvbGxUaW1lckZpcmVkKTogQ2hhbmdlZCB0
byBhZGQgY2FzZSBmb3IgQXV0b3Njcm9sbEZvclBhbkNhblN0b3AuCisgICAgICAgIChXZWJDb3Jl
OjpBdXRvc2Nyb2xsQ29udHJvbGxlcjo6dXBkYXRlUGFuU2Nyb2xsU3RhdGUpOiBDaGFnbmVkIHRv
IHVzZSBBdXRvc2Nyb2xsRm9yUGFuIGFuZCBBdXRvc2Nyb2xsRm9yUGFuQ2FuU3RvcC4KKyAgICAg
ICAgKiBwYWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmg6CisgICAgICAgIChBdXRvc2Nyb2xsQ29u
dHJvbGxlcik6IENoYW5nZWQgdG8gYWRkIEF1dG9zY3JvbGxGb3JQYW5DYW5TdG9wIHRvIEF1dG9z
Y3JvbGxUeXBlLgorCiAyMDEzLTAxLTE2ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNv
bT4KIAogICAgICAgICBTeW5jaHJvbm91cyBYTUxIVFRQUmVxdWVzdHMgbmVlZCB0byBnbyB0byB0
aGUgTmV0d29ya1Byb2Nlc3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9z
Y3JvbGxDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQXV0b3Njcm9sbENvbnRy
b2xsZXIuY3BwCmluZGV4IDQzOGU5OWQzMTFiN2FiYTUxNjk0ZmQ0ZjhlZWQ4NmNlNWQwMDI1YmUu
LjJhZWI4YzQ2NGMwNGZmZGM3ODgyZWJmMzJlMGNjYWU3YzhlYzU5MTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQXV0b3Njcm9sbENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQXV0b3Njcm9sbENvbnRyb2xsZXIuY3BwCkBAIC01MywxMCArNTMsNiBAQCBB
dXRvc2Nyb2xsQ29udHJvbGxlcjo6QXV0b3Njcm9sbENvbnRyb2xsZXIoKQogICAgIDogbV9hdXRv
c2Nyb2xsVGltZXIodGhpcywgJkF1dG9zY3JvbGxDb250cm9sbGVyOjphdXRvc2Nyb2xsVGltZXJG
aXJlZCkKICAgICAsIG1fYXV0b3Njcm9sbFJlbmRlcmVyKDApCiAgICAgLCBtX2F1dG9zY3JvbGxU
eXBlKE5vQXV0b3Njcm9sbCkKLSNpZiBFTkFCTEUoUEFOX1NDUk9MTElORykKLSAgICAsIG1fcGFu
U2Nyb2xsQnV0dG9uUHJlc3NlZChmYWxzZSkKLSAgICAsIG1fc3ByaW5nTG9hZGVkUGFuU2Nyb2xs
SW5Qcm9ncmVzcyhmYWxzZSkKLSNlbmRpZgogewogfQogCkBAIC04OSwxMCArODUsNiBAQCB2b2lk
IEF1dG9zY3JvbGxDb250cm9sbGVyOjpzdG9wQXV0b3Njcm9sbFRpbWVyKGJvb2wgcmVuZGVyZXJJ
c0JlaW5nRGVzdHJveWVkKQogICAgIG1fYXV0b3Njcm9sbFRpbWVyLnN0b3AoKTsKICAgICBtX2F1
dG9zY3JvbGxUeXBlID0gTm9BdXRvc2Nyb2xsOwogICAgIG1fYXV0b3Njcm9sbFJlbmRlcmVyID0g
MDsKLSNpZiBFTkFCTEUoUEFOX1NDUk9MTElORykKLSAgICBtX3BhblNjcm9sbEJ1dHRvblByZXNz
ZWQgPSBmYWxzZTsKLSAgICBtX3NwcmluZ0xvYWRlZFBhblNjcm9sbEluUHJvZ3Jlc3MgPSBmYWxz
ZTsKLSNlbmRpZgogCiAgICAgaWYgKCFzY3JvbGxhYmxlKQogICAgICAgICByZXR1cm47CkBAIC0x
NTcsMTUgKzE0OSwyMCBAQCB2b2lkIEF1dG9zY3JvbGxDb250cm9sbGVyOjpkaWRQYW5TY3JvbGxT
dG9wKCkKIAogdm9pZCBBdXRvc2Nyb2xsQ29udHJvbGxlcjo6aGFuZGxlTW91c2VSZWxlYXNlRXZl
bnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBtb3VzZUV2ZW50KQogewotICAgIGlmIChtb3Vz
ZUV2ZW50LmJ1dHRvbigpID09IE1pZGRsZUJ1dHRvbikKLSAgICAgICAgbV9wYW5TY3JvbGxCdXR0
b25QcmVzc2VkID0gZmFsc2U7Ci0gICAgaWYgKG1fc3ByaW5nTG9hZGVkUGFuU2Nyb2xsSW5Qcm9n
cmVzcykKKyAgICBzd2l0Y2ggKG1fYXV0b3Njcm9sbFR5cGUpIHsKKyAgICBjYXNlIEF1dG9zY3Jv
bGxGb3JQYW46CisgICAgICAgIGlmIChtb3VzZUV2ZW50LmJ1dHRvbigpID09IE1pZGRsZUJ1dHRv
bikKKyAgICAgICAgICAgIG1fYXV0b3Njcm9sbFR5cGUgPSBBdXRvc2Nyb2xsRm9yUGFuQ2FuU3Rv
cDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBdXRvc2Nyb2xsRm9yUGFuQ2FuU3RvcDoKICAg
ICAgICAgc3RvcEF1dG9zY3JvbGxUaW1lcigpOworICAgICAgICBicmVhazsKKyAgICB9CiB9CiAK
IGJvb2wgQXV0b3Njcm9sbENvbnRyb2xsZXI6OnBhblNjcm9sbEluUHJvZ3Jlc3MoKSBjb25zdAog
ewotICAgIHJldHVybiBtX2F1dG9zY3JvbGxUeXBlID09IEF1dG9zY3JvbGxGb3JQYW47CisgICAg
cmV0dXJuIG1fYXV0b3Njcm9sbFR5cGUgPT0gQXV0b3Njcm9sbEZvclBhbiB8fCBtX2F1dG9zY3Jv
bGxUeXBlID09IEF1dG9zY3JvbGxGb3JQYW5DYW5TdG9wOwogfQogCiB2b2lkIEF1dG9zY3JvbGxD
b250cm9sbGVyOjpzdGFydFBhblNjcm9sbGluZyhSZW5kZXJCb3gqIHNjcm9sbGFibGUsIGNvbnN0
IEludFBvaW50JiBsYXN0S25vd25Nb3VzZVBvc2l0aW9uKQpAQCAtMTc3LDcgKzE3NCw2IEBAIHZv
aWQgQXV0b3Njcm9sbENvbnRyb2xsZXI6OnN0YXJ0UGFuU2Nyb2xsaW5nKFJlbmRlckJveCogc2Ny
b2xsYWJsZSwgY29uc3QgSW50UG9pCiAgICAgbV9hdXRvc2Nyb2xsVHlwZSA9IEF1dG9zY3JvbGxG
b3JQYW47CiAgICAgbV9hdXRvc2Nyb2xsUmVuZGVyZXIgPSBzY3JvbGxhYmxlOwogICAgIG1fcGFu
U2Nyb2xsU3RhcnRQb3MgPSBsYXN0S25vd25Nb3VzZVBvc2l0aW9uOwotICAgIG1fc3ByaW5nTG9h
ZGVkUGFuU2Nyb2xsSW5Qcm9ncmVzcyA9IGZhbHNlOwogCiAgICAgaWYgKEZyYW1lVmlldyogdmll
dyA9IHNjcm9sbGFibGUtPmZyYW1lKCktPnZpZXcoKSkKICAgICAgICAgdmlldy0+YWRkUGFuU2Ny
b2xsSWNvbihsYXN0S25vd25Nb3VzZVBvc2l0aW9uKTsKQEAgLTIxMCw2ICsyMDYsNyBAQCB2b2lk
IEF1dG9zY3JvbGxDb250cm9sbGVyOjphdXRvc2Nyb2xsVGltZXJGaXJlZChUaW1lcjxBdXRvc2Ny
b2xsQ29udHJvbGxlcj4qKQogICAgIGNhc2UgTm9BdXRvc2Nyb2xsOgogICAgICAgICBicmVhazsK
ICNpZiBFTkFCTEUoUEFOX1NDUk9MTElORykKKyAgICBjYXNlIEF1dG9zY3JvbGxGb3JQYW5DYW5T
dG9wOgogICAgIGNhc2UgQXV0b3Njcm9sbEZvclBhbjoKICAgICAgICAgLy8gd2UgdmVyaWZ5IHRo
YXQgdGhlIG1haW4gZnJhbWUgaGFzbid0IHJlY2VpdmVkIHRoZSBvcmRlciB0byBzdG9wIHRoZSBw
YW5TY3JvbGwKICAgICAgICAgaWYgKEZyYW1lKiBtYWluRnJhbWUgPSBnZXRNYWluRnJhbWUoZnJh
bWUpKSB7CkBAIC0yNDEsOCArMjM4LDggQEAgdm9pZCBBdXRvc2Nyb2xsQ29udHJvbGxlcjo6dXBk
YXRlUGFuU2Nyb2xsU3RhdGUoRnJhbWVWaWV3KiB2aWV3LCBjb25zdCBJbnRQb2ludCYKICAgICBi
b29sIG5vcnRoID0gbV9wYW5TY3JvbGxTdGFydFBvcy55KCkgPiAobGFzdEtub3duTW91c2VQb3Np
dGlvbi55KCkgKyBTY3JvbGxWaWV3Ojpub1BhblNjcm9sbFJhZGl1cyk7CiAgICAgYm9vbCBzb3V0
aCA9IG1fcGFuU2Nyb2xsU3RhcnRQb3MueSgpIDwgKGxhc3RLbm93bk1vdXNlUG9zaXRpb24ueSgp
IC0gU2Nyb2xsVmlldzo6bm9QYW5TY3JvbGxSYWRpdXMpOwogCi0gICAgaWYgKChlYXN0IHx8IHdl
c3QgfHwgbm9ydGggfHwgc291dGgpICYmIG1fcGFuU2Nyb2xsQnV0dG9uUHJlc3NlZCkKLSAgICAg
ICAgbV9zcHJpbmdMb2FkZWRQYW5TY3JvbGxJblByb2dyZXNzID0gdHJ1ZTsKKyAgICBpZiAobV9h
dXRvc2Nyb2xsVHlwZSA9PSBBdXRvc2Nyb2xsRm9yUGFuICYmIChlYXN0IHx8IHdlc3QgfHwgbm9y
dGggfHwgc291dGgpKQorICAgICAgICBtX2F1dG9zY3JvbGxUeXBlID0gQXV0b3Njcm9sbEZvclBh
bkNhblN0b3A7CiAKICAgICBpZiAobm9ydGgpIHsKICAgICAgICAgaWYgKGVhc3QpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmgKaW5kZXggZjY3MWYxNWQ0MzM2NTcx
YWRhMmNlNTUyZjBkNzdiYWEzYjg4ODk2OC4uMDJlMzVlMTY5ZTYyZDllNTk0YWI5ZjU2MWVjMTlm
NmM1YjI4NDI4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29u
dHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQXV0b3Njcm9sbENvbnRyb2xsZXIu
aApAQCAtNDIsNiArNDIsNyBAQCBlbnVtIEF1dG9zY3JvbGxUeXBlIHsKICAgICBOb0F1dG9zY3Jv
bGwsCiAgICAgQXV0b3Njcm9sbEZvclNlbGVjdGlvbiwKICNpZiBFTkFCTEUoUEFOX1NDUk9MTElO
RykKKyAgICBBdXRvc2Nyb2xsRm9yUGFuQ2FuU3RvcCwKICAgICBBdXRvc2Nyb2xsRm9yUGFuLAog
I2VuZGlmCiB9OwpAQCAtNzYsOCArNzcsNiBAQCBwcml2YXRlOgogICAgIEF1dG9zY3JvbGxUeXBl
IG1fYXV0b3Njcm9sbFR5cGU7CiAjaWYgRU5BQkxFKFBBTl9TQ1JPTExJTkcpCiAgICAgSW50UG9p
bnQgbV9wYW5TY3JvbGxTdGFydFBvczsKLSAgICBib29sIG1fcGFuU2Nyb2xsQnV0dG9uUHJlc3Nl
ZDsKLSAgICBib29sIG1fc3ByaW5nTG9hZGVkUGFuU2Nyb2xsSW5Qcm9ncmVzczsKICNlbmRpZgog
fTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDViNjhkMmU5MGI1MGYyMGU0MThmYmU4ZjFjMDM4MTRkMjA5MTlhNzIuLmY5
MTdiMDkwZTVhY2M3MGE0MGU0ZjkzM2RhODcxNTE2NzEzNzIxYWUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NiBAQAorMjAxMy0wMS0xNyAgWW9zaGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJFR1JFU1NJT04ocjEzNzcyNik6IFNwcmluZyBMb2FkZWQgUGFuIFNjcm9sbGlu
ZyBkb2Vzbid0IHN0b3AKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwNzIwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3QvZXZlbnRzL3BhblNjcm9sbC1jbGlj
ay1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9m
YXN0L2V2ZW50cy9wYW5TY3JvbGwtY2xpY2suaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0td2luL2Zhc3QvZXZlbnRzL3BhblNjcm9sbC1kcmFnLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3QvZXZlbnRzL3BhblNj
cm9sbC1kcmFnLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmcm9tL2Nocm9taXVtL1Rlc3RF
eHBlY3RhdGlvbnM6IFNraXAgcGFuU2Nyb2xsLXtjbGljayxkcmFnfS5odG1sIGZvciBBbmRyb2lk
LCBMaW51eCwgYW5kIE1hYy4KKwogMjAxMy0wMS0xNiAgVmljdG9yIENhcmJ1bmUgIDx2Y2FyYnVu
ZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQ3VlcyBub3QgcmVuZGVyZWQgd2hlbiB0aGV5IHNo
b3VsZCBiZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zh
c3QvZXZlbnRzL3BhblNjcm9sbC1jbGljay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9ldmVudHMvcGFuU2Nyb2xsLWNsaWNrLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zYjg5ZTBhOTExYWRiYzE2NzZkOWYyYzkyMWY2OWVjNmU0N2Y4NjYxCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3Qv
ZXZlbnRzL3BhblNjcm9sbC1jbGljay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitGb3Ig
bWFudWFsIHRlc3RpbmcsIGhvbGQgbWlkZGxlIGJ1dHRvbiBpbiBzY3JvbGxhYmxlIGFuZCBtb3Zl
IGFyb3VkbiBtb3VzZSBwb2ludGVyIGZvciBzY3JvbGxpbmcsIHRoZW4gcmVsZWFzZSBtaWRkbGUg
YnV0dG9uIHRvIHN0b3Agc2Nyb2xsaW5nLgorQ2hlY2sgcGFuIHNjcm9sbCBieSBjbGljayBtb3Vz
ZQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzY3JvbGxhYmxlLnNjcm9s
bFRvcCA+IDAKK1BBU1MgYXV0b3Njcm9sbCBzdG9wcGVkCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L2V2ZW50cy9wYW5TY3JvbGwtY2xpY2suaHRt
bCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L2V2ZW50cy9wYW5TY3Jv
bGwtY2xpY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mOWE0YTczZDY4OTU5Yzk1YTg3OWUzNzEzYTk4NGI4
MmM3NjBhZTU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL2Zhc3QvZXZlbnRzL3BhblNjcm9sbC1jbGljay5odG1sCkBAIC0wLDAgKzEsMTIzIEBA
Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyNkcmFnZ2FibGUgewor
ICBwYWRkaW5nOiA1cHQ7CisgIGJvcmRlcjogM3B4IHNvbGlkICMwMGNjMDA7CisgIGJhY2tncm91
bmQ6ICMwMGNjY2M7CisgIHdpZHRoOiA4MHB4OworICBjdXJzb3I6IGhhbmQ7Cit9CisKKyNzY3Jv
bGxhYmxlIHsKKyAgICBoZWlnaHQ6IDIwMHB4OworICAgIG92ZXJmbG93OiBhdXRvOworICAgIGJv
cmRlcjogc29saWQgM3B4ICNjYzAwMDA7CisgICAgZm9udC1zaXplOiA4MHB4OworfQorPC9zdHls
ZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiAkKGlkKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZChpZCk7IH0KK3ZhciBNSURETEVfQlVUVE9OID0gMTsKK3ZhciBQQU5fU0NST0xMX1JBRElV
UyA9IDE1OyAvLyBmcm9tIFdlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCisKK2Z1bmN0aW9u
IGZpbmlzaFRlc3QoKSB7CisgICAgJCgnY29udGFpbmVyJykuaW5uZXJIVE1MID0gJyc7CisgICAg
d2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiB0ZXN0SXQoKSB7
CisgICAgdmFyIHNjcm9sbGFibGUgPSAkKCdzY3JvbGxhYmxlJyk7CisKKyAgICBpZiAoIXdpbmRv
dy5ldmVudFNlbmRlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gU3RhcnQgcGFuIHNjcm9s
bCBieSBjbGljaworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHNjcm9sbGFibGUub2Zmc2V0
TGVmdCArIDUsIHNjcm9sbGFibGUub2Zmc2V0VG9wICsgNSk7CisgICAgZXZlbnRTZW5kZXIubW91
c2VEb3duKE1JRERMRV9CVVRUT04pOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoTUlERExFX0JV
VFRPTik7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc2Nyb2xsYWJsZS5vZmZzZXRMZWZ0
ICsgNSwgc2Nyb2xsYWJsZS5vZmZzZXRUb3AgKyBQQU5fU0NST0xMX1JBRElVUyArIDYpOworCisg
ICAgdmFyIHJldHJ5Q291bnQgPSAwOworICAgIHZhciBsYXN0U2Nyb2xsVG9wID0gMDsKKworICAg
IGZ1bmN0aW9uIGNoZWNrU2Nyb2xsZWQoKQorICAgIHsKKyAgICAgICAgaWYgKHNjcm9sbGFibGUu
c2Nyb2xsVG9wID4gMCkgeworICAgICAgICAgICAgdGVzdFBhc3NlZCgnc2Nyb2xsYWJsZS5zY3Jv
bGxUb3AgPiAwJyk7CisgICAgICAgICAgICAvLyBTdG9wIHNwcmluZyBsb2FkZWQgcGFuIHNjcm9s
bAorICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKE1JRERMRV9CVVRUT04pOworICAg
ICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcChNSURETEVfQlVUVE9OKTsKKyAgICAgICAgICAg
IHJldHJ5Q291bnQgPSAwOworICAgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoY2hlY2tTdG9w
cGVkLCA1MCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICArK3Jl
dHJ5Q291bnQ7CisgICAgICAgIGlmIChyZXRyeUNvdW50ID4gMTApIHsKKyAgICAgICAgICAgIHRl
c3RGYWlsZWQoJ05vIGF1dG9zY3JvbGwnKTsKKyAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEF1dG9zY3JvbGwgaXMg
b2NjdXJyZWQgZXZleSAwLjA1IHNlYy4KKyAgICAgICAgd2luZG93LnNldFRpbWVvdXQoY2hlY2tT
Y3JvbGxlZCwgNTApOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNoZWNrU3RvcHBlZCgpCisgICAg
eworICAgICAgICBpZiAobGFzdFNjcm9sbFRvcCA9PSBzY3JvbGxhYmxlLnNjcm9sbFRvcCkgewor
ICAgICAgICAgICAgdGVzdFBhc3NlZCgnYXV0b3Njcm9sbCBzdG9wcGVkJyk7CisgICAgICAgICAg
ICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAg
ICArK3JldHJ5Q291bnQ7CisgICAgICAgIGlmIChyZXRyeUNvdW50ID4gMTApIHsKKyAgICAgICAg
ICAgIHRlc3RGYWlsZWQoJ3N0aWxsIGF1dG9zY3JvbGwnKTsKKyAgICAgICAgICAgIGZpbmlzaFRl
c3QoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGxhc3RTY3Jv
bGxUb3AgPSBzY3JvbGxhYmxlLnNjcm9sbFRvcDsKKyAgICAgICAgd2luZG93LnNldFRpbWVvdXQo
Y2hlY2tTdG9wcGVkLCA1MCk7CisgICAgfQorCisgICAgY2hlY2tTY3JvbGxlZCgpOworfQorCitm
dW5jdGlvbiBzZXRVcFRlc3QoKQoreworICAgIHZhciBzY3JvbGxhYmxlID0gJCgnc2Nyb2xsYWJs
ZScpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpIHsKKyAgICAgIHZhciBsaW5l
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICBsaW5lLmlubmVySFRNTCA9
ICJsaW5lICIgKyBpOworICAgICAgc2Nyb2xsYWJsZS5hcHBlbmRDaGlsZChsaW5lKTsKKyAgICB9
CisKKyAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICBjb25zb2xlLmxvZygn
UGxlYXNlIHJ1biB3aXRoaW4gRHVtcFJlbmRlclRyZWUnKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICB3aW5kb3cuc2V0VGlt
ZW91dCh0ZXN0SXQsIDApOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KK0ZvciBtYW51
YWwgdGVzdGluZywgaG9sZCBtaWRkbGUgYnV0dG9uIGluIHNjcm9sbGFibGUgYW5kIG1vdmUgYXJv
dWRuIG1vdXNlIHBvaW50ZXIgZm9yIHNjcm9sbGluZywgdGhlbiByZWxlYXNlIG1pZGRsZSBidXR0
b24gdG8gc3RvcCBzY3JvbGxpbmcuCis8ZGl2IGlkPSJjb250YWluZXIiPgorU2Nyb2xsYWJsZQor
PGRpdiBpZD0ic2Nyb2xsYWJsZSI+Cis8L2Rpdj4KKzwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdDaGVjayBwYW4gc2Ny
b2xsIGJ5IGNsaWNrIG1vdXNlJyk7CitzZXRVcFRlc3QoKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS13aW4vZmFzdC9ldmVudHMvcGFuU2Nyb2xsLWRyYWctZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3QvZXZlbnRzL3BhblNjcm9sbC1kcmFn
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMWMxMTdlN2Y5Yjk3NzFjYzIxMzFjNTdkNDEyZjEx
NjZmODE1OWNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL2Zhc3QvZXZlbnRzL3BhblNjcm9sbC1kcmFnLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDkgQEAKK0ZvciBtYW51YWwgdGVzdGluZywgaG9sZCBtaWRkbGUgYnV0dG9uIGluIHNjcm9sbGFi
bGUgYW5kIG1vdmUgYXJvdWRuIG1vdXNlIHBvaW50ZXIgZm9yIHNjcm9sbGluZywgdGhlbiByZWxl
YXNlIG1pZGRsZSBidXR0b24gdG8gc3RvcCBzY3JvbGxpbmcuCitDaGVjayBwYW4gc2Nyb2xsIGJ5
IGRyYWcgbW91c2UKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc2Nyb2xs
YWJsZS5zY3JvbGxUb3AgPiAwCitQQVNTIGF1dG9zY3JvbGwgc3RvcHBlZAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9ldmVudHMvcGFuU2Nyb2xs
LWRyYWcuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L2V2ZW50
cy9wYW5TY3JvbGwtZHJhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjN2I5YzY3ODZmYTViOWJlMWY3NDk3
MGZmZmI1NjJkZTIyYTdiMmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS13aW4vZmFzdC9ldmVudHMvcGFuU2Nyb2xsLWRyYWcuaHRtbApAQCAtMCwwICsx
LDEyMSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisjZHJhZ2dh
YmxlIHsKKyAgcGFkZGluZzogNXB0OworICBib3JkZXI6IDNweCBzb2xpZCAjMDBjYzAwOworICBi
YWNrZ3JvdW5kOiAjMDBjY2NjOworICB3aWR0aDogODBweDsKKyAgY3Vyc29yOiBoYW5kOworfQor
Cisjc2Nyb2xsYWJsZSB7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgICBvdmVyZmxvdzogYXV0bzsK
KyAgICBib3JkZXI6IHNvbGlkIDNweCAjY2MwMDAwOworICAgIGZvbnQtc2l6ZTogODBweDsKK30K
Kzwvc3R5bGU+Cis8c2NyaXB0PgorZnVuY3Rpb24gJChpZCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoaWQpOyB9Cit2YXIgTUlERExFX0JVVFRPTiA9IDE7Cit2YXIgUEFOX1NDUk9M
TF9SQURJVVMgPSAxNTsgLy8gZnJvbSBXZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAorCitm
dW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICQoJ2NvbnRhaW5lcicpLmlubmVySFRNTCA9ICcn
OworICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gdGVz
dEl0KCkgeworICAgIHZhciBzY3JvbGxhYmxlID0gJCgnc2Nyb2xsYWJsZScpOworCisgICAgaWYg
KCF3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIFN0YXJ0IHBh
biBzY3JvbGwgYnkgZHJhZworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHNjcm9sbGFibGUu
b2Zmc2V0TGVmdCArIDUsIHNjcm9sbGFibGUub2Zmc2V0VG9wICsgNSk7CisgICAgZXZlbnRTZW5k
ZXIubW91c2VEb3duKE1JRERMRV9CVVRUT04pOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRv
KHNjcm9sbGFibGUub2Zmc2V0TGVmdCArIDUsIHNjcm9sbGFibGUub2Zmc2V0VG9wICsgUEFOX1ND
Uk9MTF9SQURJVVMgKyA2KTsKKworICAgIHZhciByZXRyeUNvdW50ID0gMDsKKyAgICB2YXIgbGFz
dFNjcm9sbFRvcCA9IDA7CisKKyAgICBmdW5jdGlvbiBjaGVja1Njcm9sbGVkKCkKKyAgICB7Cisg
ICAgICAgIGlmIChzY3JvbGxhYmxlLnNjcm9sbFRvcCA+IDApIHsKKyAgICAgICAgICAgIHRlc3RQ
YXNzZWQoJ3Njcm9sbGFibGUuc2Nyb2xsVG9wID4gMCcpOworICAgICAgICAgICAgLy8gU3RvcCBz
cHJpbmcgbG9hZGVkIHBhbiBzY3JvbGwKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAo
TUlERExFX0JVVFRPTik7CisgICAgICAgICAgICByZXRyeUNvdW50ID0gMDsKKyAgICAgICAgICAg
IHdpbmRvdy5zZXRUaW1lb3V0KGNoZWNrU3RvcHBlZCwgNTApOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKKyAgICAgICAgKytyZXRyeUNvdW50OworICAgICAgICBpZiAocmV0cnlD
b3VudCA+IDEwKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCdObyBhdXRvc2Nyb2xsJyk7Cisg
ICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KworICAgICAgICAvLyBBdXRvc2Nyb2xsIGlzIG9jY3VycmVkIGV2ZXkgMC4wNSBzZWMuCisgICAg
ICAgIHdpbmRvdy5zZXRUaW1lb3V0KGNoZWNrU2Nyb2xsZWQsIDUwKTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBjaGVja1N0b3BwZWQoKQorICAgIHsKKyAgICAgICAgaWYgKGxhc3RTY3JvbGxUb3Ag
PT0gc2Nyb2xsYWJsZS5zY3JvbGxUb3ApIHsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoJ2F1dG9z
Y3JvbGwgc3RvcHBlZCcpOworICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgKytyZXRyeUNvdW50OworICAgICAgICBpZiAo
cmV0cnlDb3VudCA+IDEwKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCdzdGlsbCBhdXRvc2Ny
b2xsJyk7CisgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKworICAgICAgICBsYXN0U2Nyb2xsVG9wID0gc2Nyb2xsYWJsZS5zY3JvbGxUb3A7
CisgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGNoZWNrU3RvcHBlZCwgNTApOworICAgIH0KKwor
ICAgIGNoZWNrU2Nyb2xsZWQoKTsKK30KKworZnVuY3Rpb24gc2V0VXBUZXN0KCkKK3sKKyAgICB2
YXIgc2Nyb2xsYWJsZSA9ICQoJ3Njcm9sbGFibGUnKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8
IDEwMDsgKytpKSB7CisgICAgICB2YXIgbGluZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rp
dicpOworICAgICAgbGluZS5pbm5lckhUTUwgPSAibGluZSAiICsgaTsKKyAgICAgIHNjcm9sbGFi
bGUuYXBwZW5kQ2hpbGQobGluZSk7CisgICAgfQorCisgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5k
ZXIpIHsKKyAgICAgICAgY29uc29sZS5sb2coJ1BsZWFzZSBydW4gd2l0aGluIER1bXBSZW5kZXJU
cmVlJyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB3aW5kb3cuanNUZXN0SXNBc3lu
YyA9IHRydWU7CisgICAgd2luZG93LnNldFRpbWVvdXQodGVzdEl0LCAwKTsKK30KKzwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+CitGb3IgbWFudWFsIHRlc3RpbmcsIGhvbGQgbWlkZGxlIGJ1dHRv
biBpbiBzY3JvbGxhYmxlIGFuZCBtb3ZlIGFyb3VkbiBtb3VzZSBwb2ludGVyIGZvciBzY3JvbGxp
bmcsIHRoZW4gcmVsZWFzZSBtaWRkbGUgYnV0dG9uIHRvIHN0b3Agc2Nyb2xsaW5nLgorPGRpdiBp
ZD0iY29udGFpbmVyIj4KK1Njcm9sbGFibGUKKzxkaXYgaWQ9InNjcm9sbGFibGUiPgorPC9kaXY+
Cis8L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbignQ2hlY2sgcGFuIHNjcm9sbCBieSBkcmFnIG1vdXNlJyk7CitzZXRVcFRl
c3QoKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwppbmRleCAyYTVjMmUz
YmI0YmVjNzRkOGUyYzg1N2E2NDAyNDI1NzNjYzBjYWI0Li4wMGY4MjdjOTA4ZmM2ZWE4YTI1ZmM4
OGJkYTM3MmZlN2RhZTdhNzdiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIwNzMsNiArMjA3Myw5IEBAIHdlYmtpdC5vcmcvYi8xMDQ5
OTEgWyBBbmRyb2lkIExpbnV4IE1hYyBdIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L2V2ZW50
cy9wYW5TCiB3ZWJraXQub3JnL2IvMTA0OTkxIFsgQW5kcm9pZCBMaW51eCBNYWMgXSBwbGF0Zm9y
bS9jaHJvbWl1bS13aW4vZmFzdC9ldmVudHMvcGFuU2Nyb2xsLWV2ZW50LWZpcmVkLmh0bWwgWyBT
a2lwIF0KIHdlYmtpdC5vcmcvYi8xMDQ5OTEgWyBBbmRyb2lkIExpbnV4IE1hYyBdIHBsYXRmb3Jt
L2Nocm9taXVtLXdpbi9mYXN0L2V2ZW50cy9wYW5TY3JvbGwtbmVzdGVkLWRpdnMuaHRtbCBbIFNr
aXAgXQogCit3ZWJraXQub3JnL2IvMTA3MjA1IFsgQW5kcm9pZCBMaW51eCBNYWMgXSBwbGF0Zm9y
bS9jaHJvbWl1bS13aW4vZmFzdC9ldmVudHMvcGFuU2Nyb2xsLWNsaWNrLmh0bWwgWyBTa2lwIF0K
K3dlYmtpdC5vcmcvYi8xMDcyMDUgWyBBbmRyb2lkIExpbnV4IE1hYyBdIHBsYXRmb3JtL2Nocm9t
aXVtLXdpbi9mYXN0L2V2ZW50cy9wYW5TY3JvbGwtZHJhZy5odG1sIFsgU2tpcCBdCisKIGNyYnVn
LmNvbS8zMTYyMyBbIFNub3dMZW9wYXJkIFdpbiBdIGh0dHAvdGVzdHMvYXBwY2FjaGUvcmVtb3Zl
LWNhY2hlLmh0bWwgWyBGYWlsdXJlIFBhc3MgVGltZW91dCBdCiAKICMgVjgncyBpbXBsZW1lbnRh
dGlvbiBvZiBnZXRPd25Qcm9wZXJ0eU5hbWVzIGhhcyBkaWZmZXJlbnQgcmVzdWx0cyBmb3IgYnVp
bHQtaW4K
</data>

          </attachment>
      

    </bug>

</bugzilla>