<?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>120538</bug_id>
          
          <creation_ts>2013-08-30 10:35:03 -0700</creation_ts>
          <short_desc>[WK2][Mac] Drag and drop tests interfere with user&apos;s UI</short_desc>
          <delta_ts>2013-09-01 23:36:01 -0700</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>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>
          
          <blocked>68552</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>mitz</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>923057</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-08-30 10:35:03 -0700</bug_when>
    <thetext>Drag and drop happens on screen, taking away focus and sometimes even dropping text snippets into running applications. Crazy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923083</commentid>
    <comment_count>1</comment_count>
      <attachid>210136</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-08-30 11:00:15 -0700</bug_when>
    <thetext>Created attachment 210136
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923241</commentid>
    <comment_count>2</comment_count>
      <attachid>210136</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-08-30 17:47:08 -0700</bug_when>
    <thetext>Comment on attachment 210136
proposed fix

Attachment 210136 did not pass win-ews (win):
Output: http://webkit-queues.appspot.com/results/1661151</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923530</commentid>
    <comment_count>3</comment_count>
      <attachid>210136</attachid>
    <who name="">mitz</who>
    <bug_when>2013-09-01 11:05:59 -0700</bug_when>
    <thetext>Comment on attachment 210136
proposed fix

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

&gt; Source/WebKit2/ChangeLog:8
&gt; +        * UIProcess/API/mac/WKView.mm: (-[WKView _setDragImage:at:linkDrag:]): Make it possible

Missing newline after “mm:”.

&gt; Source/WebKit2/UIProcess/API/mac/WKView.mm:2761
&gt; +    [self dragImage:image
&gt;                    at:clientPoint

Now the colons are not aligned!

&gt; Tools/WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:438
&gt;  				E1C642C417CBCD4C00D66A3C /* WebKitTestRunnerPasteboard.mm */,
&gt; +				E132AA3817CD5F1000611DF0 /* WebKitTestRunnerDraggingInfo.mm */,
&gt; +				E132AA3917CD5F1000611DF0 /* WebKitTestRunnerDraggingInfo.h */,
&gt; +				E132AA3B17CE776F00611DF0 /* WebKitTestRunnerEvent.mm */,
&gt; +				E132AA3C17CE776F00611DF0 /* WebKitTestRunnerEvent.h */,

Not in alphabetical order.

&gt; Tools/WebKitTestRunner/mac/WebKitTestRunnerDraggingInfo.h:27
&gt; +#ifndef WebKitTestRunnerDraggingInfo_h
&gt; +#define WebKitTestRunnerDraggingInfo_h

Such guards aren’t needed in Objective-C headers, because implementation files should #import them.

&gt; Tools/WebKitTestRunner/mac/WebKitTestRunnerDraggingInfo.h:29
&gt; +#import &lt;Cocoa/Cocoa.h&gt;

Is this needed?

&gt; Tools/WebKitTestRunner/mac/WebKitTestRunnerDraggingInfo.h:36
&gt; +    NSSize offset;
&gt; +    NSImage *draggedImage;
&gt; +    NSPasteboard *draggingPasteboard;
&gt; +    id draggingSource;

Normally ivar names have a _ prefix.

&gt; Tools/WebKitTestRunner/mac/WebKitTestRunnerDraggingInfo.mm:37
&gt; +- (id)initWithImage:(NSImage *)anImage offset:(NSSize)o pasteboard:(NSPasteboard *)pboard source:(id)source

If you rename the ivars to start with an underscore, you could use “image”, “offset”, and “pasteboard” as the parameter names.

&gt; Tools/WebKitTestRunner/mac/WebKitTestRunnerEvent.h:27
&gt; +#ifndef WebKitTestRunnerEvent_h
&gt; +#define WebKitTestRunnerEvent_h

No need for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923601</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-09-01 23:36:01 -0700</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/r154949&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210136</attachid>
            <date>2013-08-30 11:00:15 -0700</date>
            <delta_ts>2013-09-01 11:06:41 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>DragScreenInterference.txt</filename>
            <type>text/plain</type>
            <size>26074</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NDg5NCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEzLTA4LTMwICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdW01hY10gRHJhZyBh
bmQgZHJvcCB0ZXN0cyBpbnRlcmZlcmUgd2l0aCB1c2VyJ3MgVUkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMDUzOAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3
Lm1tOiAoLVtXS1ZpZXcgX3NldERyYWdJbWFnZTphdDpsaW5rRHJhZzpdKTogTWFrZSBpdCBwb3Nz
aWJsZQorICAgICAgICB0byBvdmVycmlkZSBkcmFnIGluaXRpYXRpb24gaW4gc3ViY2xhc3Nlcy4g
SXQgaXMgYSBiaXQgdW5mb3J0dW5hdGUgdGhhdCB0aGlzIGV4cG9zZXMKKyAgICAgICAgYSBkZXBy
ZWNhdGVkIEFQSSB0aGF0IHdlIGNhbGwsIGJ1dCBwcm9iYWJseSBub3QgdW5mb3J0dW5hdGUgZW5v
dWdoIHRvIGludmVudCBhIG5ldworICAgICAgICBzY2FyeSBsb29raW5nIG5hbWUgZm9yIHRoZSBz
YW1lIGZ1bmN0aW9uLCBhbmQgY29uZGl0aW9uYWxseSBjYWxsIHRoYXQgaWYgaW1wbGVtZW50ZWQK
KyAgICAgICAgYnkgc3ViY2xhc3MuCisKIDIwMTMtMDgtMzAgIEdhYm9yIEFicmFoYW0gIDxhYnJo
bUBpbmYudS1zemVnZWQuaHU+CiAKICAgICAgICAgRml4LCByZW1vdmUgdW51c2VkIHBhcmFtZXRl
ciBpbiBVSVByb2Nlc3MvV2ViQ29sb3JQaWNrZXIuY3BwLgpJbmRleDogU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQkocmV2aXNpb24gMTU0NzUwKQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0y
NzU0LDEwICsyNzU0LDEwIEBAIC0gKHZvaWQpX3NldERyYWdJbWFnZTooTlNJbWFnZSAqKWltYWdl
IGEKICAgICBzaXplLnNjYWxlKDEuMCAvIF9kYXRhLT5fcGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3Io
KSk7CiAgICAgW2ltYWdlIHNldFNpemU6c2l6ZV07CiAgICAgCi0gICAgLy8gVGhlIGNhbGwgdG8g
c3VwZXIgY291bGQgcmVsZWFzZSB0aGlzIFdLVmlldy4KKyAgICAvLyBUaGUgY2FsbCBiZWxvdyBj
b3VsZCByZWxlYXNlIHRoaXMgV0tWaWV3LgogICAgIFJldGFpblB0cjxXS1ZpZXc+IHByb3RlY3Rv
cihzZWxmKTsKICAgICAKLSAgICBbc3VwZXIgZHJhZ0ltYWdlOmltYWdlCisgICAgW3NlbGYgZHJh
Z0ltYWdlOmltYWdlCiAgICAgICAgICAgICAgICAgICBhdDpjbGllbnRQb2ludAogICAgICAgICAg
ICAgICBvZmZzZXQ6TlNaZXJvU2l6ZQogICAgICAgICAgICAgICAgZXZlbnQ6KGxpbmtEcmFnKSA/
IFtOU0FwcCBjdXJyZW50RXZlbnRdIDpfZGF0YS0+X21vdXNlRG93bkV2ZW50CkluZGV4OiBUb29s
cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNTQ4
OTQpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0MSBAQAor
MjAxMy0wOC0zMCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAg
ICBbV0syXVtNYWNdIERyYWcgYW5kIGRyb3AgdGVzdHMgaW50ZXJmZXJlIHdpdGggdXNlcidzIFVJ
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjA1MzgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIG1h
a2VzIHJ1bm5pbmcgV2ViS2l0MiByZWdyZXNzaW9uIHRlc3RzIGxvY2FsbHkgbW9yZSB2aWFibGUu
IFRoZSBwYXRjaCBkb2Vzbid0CisgICAgICAgIGZpeCBkcmFnIGFuZCBkcm9wIHRlc3RzIHRvIHdv
cmsgYXMgZXhwZWN0ZWQsIEkgcG9zdGVkIHNvbWUgdGhvdWdodCBhYm91dCB0aGF0IGluCisgICAg
ICAgIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg1NTI+LgorCisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9FdmVudFNlbmRlclByb3h5Lmg6CisgICAgICAgIChX
VFI6OkV2ZW50U2VuZGVyUHJveHk6OnBvc2l0aW9uKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpldmVu
dFNlbmRlclByb3h5KToKKyAgICAgICAgRXhwb3NlIGEgd2F5IHRvIGdldCBjdXJyZW50IG1vdXNl
IHBvc2l0aW9uIGZyb20gYW55d2hlcmUgaW4gV0tUUiBjb2RlLgorCisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFk
ZGVkIG5ldyBmaWxlcy4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvbWFjL0V2ZW50U2Vu
ZGVyUHJveHkubW06IChXVFI6OkV2ZW50U2VuZGVyUHJveHk6Om1vdXNlVXApOgorICAgICAgICBD
b3BpZWQgYSBGSVhNRSBjb21tZW50IGZyb20gRHVtcFJlbmRlclRyZWUuCisKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW06CisgICAgICAgICgtW1Rl
c3RSdW5uZXJXS1ZpZXcgZHJhZ0ltYWdlOmF0Om9mZnNldDpldmVudDpwYXN0ZWJvYXJkOnNvdXJj
ZTpzbGlkZUJhY2s6XSk6CisgICAgICAgIE92ZXJyaWRlIGRyYWcgaW5pdGlhdGlvbiwgdXNpbmcg
YSBjdXN0b20gTlNEcmFnZ2luZ0luZm8gaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL21hYy9UZXN0Q29udHJvbGxlck1hYy5tbTogKFdUUjo6VGVzdENvbnRyb2xs
ZXI6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisgICAgICAgIFJlcGxhY2UgTlNFdmVudCB3aXRoIGEg
Y3VzdG9tIGNsYXNzLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9tYWMvV2ViS2l0VGVz
dFJ1bm5lckRyYWdnaW5nSW5mby5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L21hYy9XZWJLaXRUZXN0UnVubmVyRHJhZ2dpbmdJbmZvLm1tOiBBZGRlZC4KKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL21hYy9XZWJLaXRUZXN0UnVubmVyRXZlbnQuaDogQWRkZWQuCisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9tYWMvV2ViS2l0VGVzdFJ1bm5lckV2ZW50Lm1tOiBBZGRl
ZC4KKyAgICAgICAgTGFyZ2VseSBhIGNvcHkgb2YgRHVtcFJlbmRlclRyZWUgY2xhc3NlcywgbW9k
aWZpZWQgdG8gbm90IHVzZSBnbG9iYWwgdmFyaWFibGVzLgorICAgICAgICBXZSBzaG91bGQgY29u
c2lkZXIgbWFraW5nIHRoZXNlIHZhcmlhYmxlcyBzdGF0aWMgaW4gRXZlbnRTZW5kZXJQcm94eSB0
aG91Z2gsIGFzCisgICAgICAgIGl0J3Mgc3RyYW5nZSB0aGF0IG1vdXNlIHN0YXRlIGluIFdLVFIg
aXMgcmVzZXQgYmV0d2VlbiB0ZXN0cyB3aXRob3V0IFdlYktpdCBldmVyCisgICAgICAgIGJlaW5n
IHRvbGQgYWJvdXQgdGhhdC4KKwogMjAxMy0wOC0zMCAgR2Fib3IgQWJyYWhhbSAgPGFicmhtQGlu
Zi51LXN6ZWdlZC5odT4KIAogICAgICAgICBbUXRdIFJlbW92ZSBxdC01LjAtd2syIGZyb20gdGhl
IGJhc2VsaW5lIHNlYXJjaCBwYXRocyBiZWNhdXNlIHRoZSBtaWdyYXRpb24gb2YgZXhwZWN0YXRp
b25zIHRvIHF0LXdrMiBpcyBkb25lLgpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9FdmVu
dFNlbmRlclByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9FdmVu
dFNlbmRlclByb3h5LmgJKHJldmlzaW9uIDE1NDc1MCkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvRXZlbnRTZW5kZXJQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNywxNSArMjcsMTUgQEAK
ICNpZm5kZWYgRXZlbnRTZW5kZXJQcm94eV9oCiAjZGVmaW5lIEV2ZW50U2VuZGVyUHJveHlfaAog
CisjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CisKICNpZiBQTEFURk9STShRVCkKICNpbmNsdWRlIDxR
RXZlbnQ+CiAjaW5jbHVkZSA8UVRvdWNoRXZlbnQ+CiAjZWxpZiBQTEFURk9STShHVEspCiAjaW5j
bHVkZSA8Z2RrL2dkay5oPgotI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2VsaWYgUExBVEZPUk0o
RUZMKQogI2luY2x1ZGUgPFdlYktpdDIvRVdlYktpdDIuaD4KLSNpbmNsdWRlIDx3dGYvRGVxdWUu
aD4KICNlbmRpZgogCiBuYW1lc3BhY2UgV1RSIHsKQEAgLTUzLDYgKzUzLDggQEAgcHVibGljOgog
ICAgIGV4cGxpY2l0IEV2ZW50U2VuZGVyUHJveHkoVGVzdENvbnRyb2xsZXIqKTsKICAgICB+RXZl
bnRTZW5kZXJQcm94eSgpOwogCisgICAgV0tQb2ludCBwb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fcG9zaXRpb247IH0KKwogICAgIHZvaWQgbW91c2VEb3duKHVuc2lnbmVkIGJ1dHRvbiwgV0tF
dmVudE1vZGlmaWVycyk7CiAgICAgdm9pZCBtb3VzZVVwKHVuc2lnbmVkIGJ1dHRvbiwgV0tFdmVu
dE1vZGlmaWVycyk7CiAgICAgdm9pZCBtb3VzZU1vdmVUbyhkb3VibGUgeCwgZG91YmxlIHkpOwpJ
bmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAkocmV2aXNpb24gMTU0
NzUwKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCSh3b3JraW5n
IGNvcHkpCkBAIC02Myw2ICs2Myw4IEBAIHB1YmxpYzoKICAgICBQbGF0Zm9ybVdlYlZpZXcqIG1h
aW5XZWJWaWV3KCkgeyByZXR1cm4gbV9tYWluV2ViVmlldy5nZXQoKTsgfQogICAgIFdLQ29udGV4
dFJlZiBjb250ZXh0KCkgeyByZXR1cm4gbV9jb250ZXh0LmdldCgpOyB9CiAKKyAgICBFdmVudFNl
bmRlclByb3h5KiBldmVudFNlbmRlclByb3h5KCkgeyByZXR1cm4gbV9ldmVudFNlbmRlclByb3h5
LmdldCgpOyB9CisKICAgICB2b2lkIGVuc3VyZVZpZXdTdXBwb3J0c09wdGlvbnMoV0tEaWN0aW9u
YXJ5UmVmIG9wdGlvbnMpOwogICAgIAogICAgIC8vIFJ1bnMgdGhlIHJ1biBsb29wIHVudGlsIGBk
b25lYCBpcyB0cnVlIG9yIHRoZSB0aW1lb3V0IGVsYXBzZXMuCkluZGV4OiBUb29scy9XZWJLaXRU
ZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTU0NzUwKQorKysgVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtp
bmcgY29weSkKQEAgLTg1LDYgKzg1LDggQEAKIAkJQkNEN0QyRjgxMTkyMTI3ODAwNkRCN0VFIC8q
IFRlc3RJbnZvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDRDdEMkY3MTE5MjEyNzgwMDZEQjdFRSAvKiBUZXN0SW52b2NhdGlvbi5jcHAg
Ki87IH07CiAJCUJDREEyQjlBMTE5MTA1MUYwMEMzQkM0NyAvKiBKYXZhU2NyaXB0Q29yZS5mcmFt
ZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
Q0RBMkI5OTExOTEwNTFGMDBDM0JDNDcgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrICovOyB9
OwogCQlDMENFNzIwQjEyNDdDOTMzMDBCQzBFQzQgLyogVGVzdFJ1bm5lck1hYy5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMwQ0U3MjBBMTI0N0M5MzMw
MEJDMEVDNCAvKiBUZXN0UnVubmVyTWFjLm1tICovOyB9OworCQlFMTMyQUEzQTE3Q0Q1RjEwMDA2
MTFERjAgLyogV2ViS2l0VGVzdFJ1bm5lckRyYWdnaW5nSW5mby5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMzJBQTM4MTdDRDVGMTAwMDYxMURGMCAv
KiBXZWJLaXRUZXN0UnVubmVyRHJhZ2dpbmdJbmZvLm1tICovOyB9OworCQlFMTMyQUEzRDE3Q0U3
NzZGMDA2MTFERjAgLyogV2ViS2l0VGVzdFJ1bm5lckV2ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEzMkFBM0IxN0NFNzc2RjAwNjExREYwIC8q
IFdlYktpdFRlc3RSdW5uZXJFdmVudC5tbSAqLzsgfTsKIAkJRTFCQTY3MUUxNzQyREE2QTAwQzIw
MjUxIC8qIENhcmJvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMUJBNjcxRDE3NDJEQTVBMDBDMjAyNTEgLyogQ2FyYm9uLmZyYW1l
d29yayAqLzsgfTsKIAkJRTFDNjQyQzMxN0NCQ0M3MzAwRDY2QTNDIC8qIFBvc2VBc0NsYXNzLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFDNjQyQzEx
N0NCQ0M3MzAwRDY2QTNDIC8qIFBvc2VBc0NsYXNzLm1tICovOyB9OwogCQlFMUM2NDJDNjE3Q0JD
RDRDMDBENjZBM0MgLyogV2ViS2l0VGVzdFJ1bm5lclBhc3RlYm9hcmQubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUM2NDJDNDE3Q0JDRDRDMDBENjZB
M0MgLyogV2ViS2l0VGVzdFJ1bm5lclBhc3RlYm9hcmQubW0gKi87IH07CkBAIC0yMjEsNiArMjIz
LDEwIEBACiAJCUJDRDdEMkY3MTE5MjEyNzgwMDZEQjdFRSAvKiBUZXN0SW52b2NhdGlvbi5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXN0SW52b2NhdGlvbi5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDREEyQjk5MTE5MTA1MUYwMEMzQkM0NyAv
KiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgcGF0aCA9IEphdmFTY3JpcHRD
b3JlLmZyYW1ld29yazsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJQzBD
RTcyMEExMjQ3QzkzMzAwQkMwRUM0IC8qIFRlc3RSdW5uZXJNYWMubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBUZXN0UnVubmVyTWFjLm1tOyBwYXRoID0gbWFjL1Rl
c3RSdW5uZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxMzJBQTM4MTdD
RDVGMTAwMDYxMURGMCAvKiBXZWJLaXRUZXN0UnVubmVyRHJhZ2dpbmdJbmZvLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViS2l0VGVzdFJ1bm5lckRyYWdnaW5n
SW5mby5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTEzMkFBMzkxN0NENUYxMDAw
NjExREYwIC8qIFdlYktpdFRlc3RSdW5uZXJEcmFnZ2luZ0luZm8uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0VGVzdFJ1bm5lckRyYWdnaW5nSW5mby5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFMTMyQUEzQjE3Q0U3NzZGMDA2MTFERjAgLyogV2ViS2l0
VGVzdFJ1bm5lckV2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gV2ViS2l0VGVzdFJ1bm5lckV2ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFMTMyQUEzQzE3Q0U3NzZGMDA2MTFERjAgLyogV2ViS2l0VGVzdFJ1bm5lckV2ZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdFRlc3RSdW5uZXJFdmVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUJBNjcxRDE3NDJEQTVBMDBDMjAyNTEgLyog
Q2FyYm9uLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gQ2FyYm9uLmZyYW1ld29yazsgcGF0
aCA9IFN5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ2FyYm9uLmZyYW1ld29yazsgc291cmNlVHJl
ZSA9IFNES1JPT1Q7IH07CiAJCUUxQzY0MkMxMTdDQkNDNzMwMEQ2NkEzQyAvKiBQb3NlQXNDbGFz
cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBvc2VBc0NsYXNz
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUM2NDJDMjE3Q0JDQzczMDBENjZB
M0MgLyogUG9zZUFzQ2xhc3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUG9z
ZUFzQ2xhc3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQyNiw2ICs0MzIsMTAg
QEAKIAkJCQlFMUM2NDJDMjE3Q0JDQzczMDBENjZBM0MgLyogUG9zZUFzQ2xhc3MuaCAqLywKIAkJ
CQlCQzhDNzk1QjExRDI3ODVEMDA0NTM1QTEgLyogVGVzdENvbnRyb2xsZXJNYWMubW0gKi8sCiAJ
CQkJRTFDNjQyQzQxN0NCQ0Q0QzAwRDY2QTNDIC8qIFdlYktpdFRlc3RSdW5uZXJQYXN0ZWJvYXJk
Lm1tICovLAorCQkJCUUxMzJBQTM4MTdDRDVGMTAwMDYxMURGMCAvKiBXZWJLaXRUZXN0UnVubmVy
RHJhZ2dpbmdJbmZvLm1tICovLAorCQkJCUUxMzJBQTM5MTdDRDVGMTAwMDYxMURGMCAvKiBXZWJL
aXRUZXN0UnVubmVyRHJhZ2dpbmdJbmZvLmggKi8sCisJCQkJRTEzMkFBM0IxN0NFNzc2RjAwNjEx
REYwIC8qIFdlYktpdFRlc3RSdW5uZXJFdmVudC5tbSAqLywKKwkJCQlFMTMyQUEzQzE3Q0U3NzZG
MDA2MTFERjAgLyogV2ViS2l0VGVzdFJ1bm5lckV2ZW50LmggKi8sCiAJCQkJRTFDNjQyQzUxN0NC
Q0Q0QzAwRDY2QTNDIC8qIFdlYktpdFRlc3RSdW5uZXJQYXN0ZWJvYXJkLmggKi8sCiAJCQkpOwog
CQkJcGF0aCA9IG1hYzsKQEAgLTYxMyw2ICs2MjMsNyBAQAogCQkJZmlsZXMgPSAoCiAJCQkJNTMy
MkZCNDMxM0ZEQTBDRDAwNDFBQkNDIC8qIEN5Y2xpY1JlZHVuZGFuY3lDaGVjay5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlFMUM2NDJDMzE3Q0JDQzczMDBENjZBM0MgLyogUG9zZUFzQ2xhc3MubW0g
aW4gU291cmNlcyAqLywKKwkJCQlFMTMyQUEzRDE3Q0U3NzZGMDA2MTFERjAgLyogV2ViS2l0VGVz
dFJ1bm5lckV2ZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTY3MEI4MjgxMzg2RkNBNTAwMkVC
MzU1IC8qIEV2ZW50U2VuZGVyUHJveHkubW0gaW4gU291cmNlcyAqLywKIAkJCQkyNkQ3NThFNzE2
MEJFQ0REMDAyNjg0NzIgLyogR2VvbG9jYXRpb25Qcm92aWRlck1vY2suY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQkM3OTM0MDAxMThGN0M4NDAwNUVBOEUyIC8qIG1haW4ubW0gaW4gU291cmNlcyAq
LywKQEAgLTYyMyw2ICs2MzQsNyBAQAogCQkJCUJDOEM3OTVDMTFEMjc4NUQwMDQ1MzVBMSAvKiBU
ZXN0Q29udHJvbGxlck1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDRDdEMkY4MTE5MjEyNzgw
MDZEQjdFRSAvKiBUZXN0SW52b2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzkxOTIw
NTEzMzNFNEY4MDAzMDExREMgLyogVGVzdEludm9jYXRpb25DRy5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlFMTMyQUEzQTE3Q0Q1RjEwMDA2MTFERjAgLyogV2ViS2l0VGVzdFJ1bm5lckRyYWdnaW5n
SW5mby5tbSBpbiBTb3VyY2VzICovLAogCQkJCTMxNjRDOEYwMTVEMUFEQTEwMEVGMUZFMCAvKiBX
ZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0NDI5RkM1RjE2
MjcwODk2MDBGNjZEOEIgLyogV29ya1F1ZXVlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CSk7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9FdmVudFNlbmRlclByb3h5Lm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL0V2ZW50U2VuZGVyUHJv
eHkubW0JKHJldmlzaW9uIDE1NDc1MCkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL0V2
ZW50U2VuZGVyUHJveHkubW0JKHdvcmtpbmcgY29weSkKQEAgLTMwLDkgKzMwLDkgQEAKICNpbXBv
cnQgIlBsYXRmb3JtV2ViVmlldy5oIgogI2ltcG9ydCAiU3RyaW5nRnVuY3Rpb25zLmgiCiAjaW1w
b3J0ICJUZXN0Q29udHJvbGxlci5oIgotI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogI2ltcG9y
dCA8Q2FyYm9uL0NhcmJvbi5oPgogI2ltcG9ydCA8V2ViS2l0Mi9XS1N0cmluZy5oPgorI2ltcG9y
dCA8d3RmL1JldGFpblB0ci5oPgogCiBuYW1lc3BhY2UgV1RSIHsKIApAQCAtMTc5LDggKzE3OSwx
MSBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlVXAodW5zaWduZWQgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3N1cmU6MC4wXTsKIAogICAgIE5TVmll
dyAqdGFyZ2V0VmlldyA9IFttX3Rlc3RDb250cm9sbGVyLT5tYWluV2ViVmlldygpLT5wbGF0Zm9y
bVZpZXcoKSBoaXRUZXN0OltldmVudCBsb2NhdGlvbkluV2luZG93XV07CisgICAgLy8gRklYTUU6
IFNpbGx5IGhhY2sgdG8gdGVhY2ggV0tUUiB0byByZXNwZWN0IGNhcHR1cmluZyBtb3VzZSBldmVu
dHMgb3V0c2lkZSB0aGUgV0tWaWV3LgorICAgIC8vIFRoZSByaWdodCBzb2x1dGlvbiBpcyBqdXN0
IHRvIHVzZSBOU0FwcGxpY2F0aW9uJ3MgYnVpbHQtaW4gZXZlbnQgc2VuZGluZyBtZXRob2RzLCAK
KyAgICAvLyBpbnN0ZWFkIG9mIHJvbGxpbmcgb3VyIG93biBhbGdvcml0aG0gZm9yIHNlbGVjdGlu
ZyBhbiBldmVudCB0YXJnZXQuCiAgICAgdGFyZ2V0VmlldyA9IHRhcmdldFZpZXcgPyB0YXJnZXRW
aWV3IDogbV90ZXN0Q29udHJvbGxlci0+bWFpbldlYlZpZXcoKS0+cGxhdGZvcm1WaWV3KCk7Ci0g
ICAgYXNzZXJ0KHRhcmdldFZpZXcpOworICAgIEFTU0VSVCh0YXJnZXRWaWV3KTsKICAgICBbdGFy
Z2V0VmlldyBtb3VzZVVwOmV2ZW50XTsKICAgICBpZiAoYnV0dG9uTnVtYmVyID09IExlZnRNb3Vz
ZUJ1dHRvbikKICAgICAgICAgbV9sZWZ0TW91c2VCdXR0b25Eb3duID0gZmFsc2U7CkluZGV4OiBU
b29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tCShy
ZXZpc2lvbiAxNTQ3NTApCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0Zm9ybVdl
YlZpZXdNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMCwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDE5ICsyMywyMiBAQAogICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNs
dWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKLSNpbmNsdWRlICJUZXN0Q29udHJvbGxlci5oIgorI2lt
cG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJQbGF0Zm9ybVdlYlZpZXcuaCIKIAorI2ltcG9ydCAi
VGVzdENvbnRyb2xsZXIuaCIKKyNpbXBvcnQgIldlYktpdFRlc3RSdW5uZXJEcmFnZ2luZ0luZm8u
aCIKICNpbXBvcnQgPFdlYktpdDIvV0tJbWFnZUNHLmg+CiAjaW1wb3J0IDxXZWJLaXQyL1dLVmll
d1ByaXZhdGUuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAordXNpbmcgbmFtZXNwYWNl
IFdUUjsKKwogQGludGVyZmFjZSBXZWJLaXRUZXN0UnVubmVyV2luZG93IDogTlNXaW5kb3cgewot
ICAgIFdUUjo6UGxhdGZvcm1XZWJWaWV3KiBfcGxhdGZvcm1XZWJWaWV3OworICAgIFBsYXRmb3Jt
V2ViVmlldyogX3BsYXRmb3JtV2ViVmlldzsKICAgICBOU1BvaW50IF9mYWtlT3JpZ2luOwogfQot
QHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgV1RSOjpQbGF0Zm9ybVdlYlZpZXcqIHBsYXRm
b3JtV2ViVmlldzsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIFBsYXRmb3JtV2ViVmll
dyogcGxhdGZvcm1XZWJWaWV3OwogQGVuZAogCiBAaW50ZXJmYWNlIFRlc3RSdW5uZXJXS1ZpZXcg
OiBXS1ZpZXcgewpAQCAtNjIsNiArNjUsMTIgQEAgLSAoQk9PTClfc2hvdWxkVXNlVGlsZWREcmF3
aW5nQXJlYQogICAgIHJldHVybiBfdXNlVGlsZWREcmF3aW5nOwogfQogCistICh2b2lkKWRyYWdJ
bWFnZTooTlNJbWFnZSAqKWFuSW1hZ2UgYXQ6KE5TUG9pbnQpdmlld0xvY2F0aW9uIG9mZnNldDoo
TlNTaXplKWluaXRpYWxPZmZzZXQgZXZlbnQ6KE5TRXZlbnQgKilldmVudCBwYXN0ZWJvYXJkOihO
U1Bhc3RlYm9hcmQgKilwYm9hcmQgc291cmNlOihpZClzb3VyY2VPYmogc2xpZGVCYWNrOihCT09M
KXNsaWRlRmxhZworeworICAgIFJldGFpblB0cjxXZWJLaXRUZXN0UnVubmVyRHJhZ2dpbmdJbmZv
PiBkcmFnZ2luZ0luZm8gPSBhZG9wdE5TKFtbV2ViS2l0VGVzdFJ1bm5lckRyYWdnaW5nSW5mbyBh
bGxvY10gaW5pdFdpdGhJbWFnZTphbkltYWdlIG9mZnNldDppbml0aWFsT2Zmc2V0IHBhc3RlYm9h
cmQ6cGJvYXJkIHNvdXJjZTpzb3VyY2VPYmpdKTsKKyAgICBbc2VsZiBkcmFnZ2luZ1VwZGF0ZWQ6
ZHJhZ2dpbmdJbmZvLmdldCgpXTsKK30KKwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV2ViS2l0
VGVzdFJ1bm5lcldpbmRvdwpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVGVzdENv
bnRyb2xsZXJNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMv
VGVzdENvbnRyb2xsZXJNYWMubW0JKHJldmlzaW9uIDE1NDc1MCkKKysrIFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvbWFjL1Rlc3RDb250cm9sbGVyTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MSw2
ICs0MSw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6Om5vdGlmeURvbmUoKQogdm9pZCBUZXN0Q29u
dHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXplKCkKIHsKICAgICBwb3NlQXNDbGFzcygiV2ViS2l0
VGVzdFJ1bm5lclBhc3RlYm9hcmQiLCAiTlNQYXN0ZWJvYXJkIik7CisgICAgcG9zZUFzQ2xhc3Mo
IldlYktpdFRlc3RSdW5uZXJFdmVudCIsICJOU0V2ZW50Iik7CiB9CiAKIHZvaWQgVGVzdENvbnRy
b2xsZXI6OnBsYXRmb3JtRGVzdHJveSgpCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL21h
Yy9XZWJLaXRUZXN0UnVubmVyRHJhZ2dpbmdJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9tYWMvV2ViS2l0VGVzdFJ1bm5lckRyYWdnaW5nSW5mby5oCShyZXZpc2lv
biAwKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvV2ViS2l0VGVzdFJ1bm5lckRyYWdn
aW5nSW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDUsIDIwMDYsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFdlYktpdFRlc3RSdW5uZXJEcmFnZ2luZ0luZm9faAorI2RlZmlu
ZSBXZWJLaXRUZXN0UnVubmVyRHJhZ2dpbmdJbmZvX2gKKworI2ltcG9ydCA8Q29jb2EvQ29jb2Eu
aD4KKworQGludGVyZmFjZSBXZWJLaXRUZXN0UnVubmVyRHJhZ2dpbmdJbmZvIDogTlNPYmplY3Qg
PE5TRHJhZ2dpbmdJbmZvPiB7CitAcHJpdmF0ZQorICAgIE5TU2l6ZSBvZmZzZXQ7CisgICAgTlNJ
bWFnZSAqZHJhZ2dlZEltYWdlOworICAgIE5TUGFzdGVib2FyZCAqZHJhZ2dpbmdQYXN0ZWJvYXJk
OworICAgIGlkIGRyYWdnaW5nU291cmNlOworfQorCistIChpZClpbml0V2l0aEltYWdlOihOU0lt
YWdlICopaW1hZ2Ugb2Zmc2V0OihOU1NpemUpb2Zmc2V0IHBhc3RlYm9hcmQ6KE5TUGFzdGVib2Fy
ZCAqKXBhc3RlYm9hcmQgc291cmNlOihpZClzb3VyY2U7CisKKy0gKE5TV2luZG93ICopZHJhZ2dp
bmdEZXN0aW5hdGlvbldpbmRvdzsKKy0gKE5TRHJhZ09wZXJhdGlvbilkcmFnZ2luZ1NvdXJjZU9w
ZXJhdGlvbk1hc2s7CistIChOU1BvaW50KWRyYWdnaW5nTG9jYXRpb247CistIChOU1BvaW50KWRy
YWdnZWRJbWFnZUxvY2F0aW9uOworLSAoTlNJbWFnZSAqKWRyYWdnZWRJbWFnZTsKKy0gKE5TUGFz
dGVib2FyZCAqKWRyYWdnaW5nUGFzdGVib2FyZDsKKy0gKGlkKWRyYWdnaW5nU291cmNlOworLSAo
aW50KWRyYWdnaW5nU2VxdWVuY2VOdW1iZXI7CisKKy0gKHZvaWQpc2xpZGVEcmFnZ2VkSW1hZ2VU
bzooTlNQb2ludClzY3JlZW5Qb2ludDsKKy0gKE5TQXJyYXkgKiluYW1lc09mUHJvbWlzZWRGaWxl
c0Ryb3BwZWRBdERlc3RpbmF0aW9uOihOU1VSTCAqKWRyb3BEZXN0aW5hdGlvbjsKK0BlbmQKKwor
CisjZW5kaWYgLy8gV2ViS2l0VGVzdFJ1bm5lckRyYWdnaW5nSW5mb19oCgpQcm9wZXJ0eSBjaGFu
Z2VzIG9uOiBUb29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9XZWJLaXRUZXN0UnVubmVyRHJhZ2dp
bmdJbmZvLmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMCwwICsxICMjCitu
YXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9tYWMvV2ViS2l0VGVzdFJ1bm5lckRyYWdnaW5nSW5mby5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9XZWJLaXRUZXN0UnVubmVyRHJhZ2dpbmdJ
bmZvLm1tCShyZXZpc2lvbiAwKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvV2ViS2l0
VGVzdFJ1bm5lckRyYWdnaW5nSW5mby5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE0OSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAi
V2ViS2l0VGVzdFJ1bm5lckRyYWdnaW5nSW5mby5oIgorCisjaW1wb3J0ICJFdmVudFNlbmRlclBy
b3h5LmgiCisjaW1wb3J0ICJQbGF0Zm9ybVdlYlZpZXcuaCIKKyNpbXBvcnQgIlRlc3RDb250cm9s
bGVyLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXVFI7CisKK0BpbXBsZW1lbnRhdGlvbiBXZWJLaXRU
ZXN0UnVubmVyRHJhZ2dpbmdJbmZvCisKKy0gKGlkKWluaXRXaXRoSW1hZ2U6KE5TSW1hZ2UgKilh
bkltYWdlIG9mZnNldDooTlNTaXplKW8gcGFzdGVib2FyZDooTlNQYXN0ZWJvYXJkICopcGJvYXJk
IHNvdXJjZTooaWQpc291cmNlCit7CisgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKKyAgICBpZiAo
IXNlbGYpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBkcmFnZ2VkSW1hZ2UgPSBbYW5JbWFn
ZSByZXRhaW5dOworICAgIGRyYWdnaW5nUGFzdGVib2FyZCA9IFtwYm9hcmQgcmV0YWluXTsKKyAg
ICBkcmFnZ2luZ1NvdXJjZSA9IFtzb3VyY2UgcmV0YWluXTsKKyAgICBvZmZzZXQgPSBvOworICAg
IAorICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBbZHJhZ2dl
ZEltYWdlIHJlbGVhc2VdOworICAgIFtkcmFnZ2luZ1Bhc3RlYm9hcmQgcmVsZWFzZV07CisgICAg
W2RyYWdnaW5nU291cmNlIHJlbGVhc2VdOworICAgIFtzdXBlciBkZWFsbG9jXTsKK30KKworLSAo
TlNXaW5kb3cgKilkcmFnZ2luZ0Rlc3RpbmF0aW9uV2luZG93IAoreworICAgIHJldHVybiBbVGVz
dENvbnRyb2xsZXI6OnNoYXJlZCgpLm1haW5XZWJWaWV3KCktPnBsYXRmb3JtVmlldygpIHdpbmRv
d107Cit9CisKKy0gKE5TRHJhZ09wZXJhdGlvbilkcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2sg
Cit7CisgICAgLy8gV0tWaWV3IGN1cnJlbnRseSBpbXBsZW1lbnRzIG5laXRoZXIgZHJhZ2dpbmdT
b3VyY2VPcGVyYXRpb25NYXNrRm9yTG9jYWw6IG5vciBkcmFnZ2luZ1Nlc3Npb246c291cmNlT3Bl
cmF0aW9uTWFza0ZvckRyYWdnaW5nQ29udGV4dDouCisgICAgcmV0dXJuIE5TRHJhZ09wZXJhdGlv
bkFsbDsKK30KKworLSAoTlNQb2ludClkcmFnZ2luZ0xvY2F0aW9uCit7CisgICAgV0tQb2ludCBs
b2NhdGlvbiA9IFRlc3RDb250cm9sbGVyOjpzaGFyZWQoKS5ldmVudFNlbmRlclByb3h5KCktPnBv
c2l0aW9uKCk7CisgICAgcmV0dXJuIE5TTWFrZVBvaW50KGxvY2F0aW9uLngsIGxvY2F0aW9uLnkp
OworfQorCistIChOU1BvaW50KWRyYWdnZWRJbWFnZUxvY2F0aW9uIAoreworICAgIFdLUG9pbnQg
bG9jYXRpb24gPSBUZXN0Q29udHJvbGxlcjo6c2hhcmVkKCkuZXZlbnRTZW5kZXJQcm94eSgpLT5w
b3NpdGlvbigpOworICAgIHJldHVybiBOU01ha2VQb2ludChsb2NhdGlvbi54ICsgb2Zmc2V0Lndp
ZHRoLCBsb2NhdGlvbi55ICsgb2Zmc2V0LmhlaWdodCk7Cit9CisKKy0gKE5TSW1hZ2UgKilkcmFn
Z2VkSW1hZ2UKK3sKKyAgICByZXR1cm4gZHJhZ2dlZEltYWdlOworfQorCistIChOU1Bhc3RlYm9h
cmQgKilkcmFnZ2luZ1Bhc3RlYm9hcmQKK3sKKyAgICByZXR1cm4gZHJhZ2dpbmdQYXN0ZWJvYXJk
OworfQorCistIChpZClkcmFnZ2luZ1NvdXJjZQoreworICAgIHJldHVybiBkcmFnZ2luZ1NvdXJj
ZTsKK30KKworLSAoaW50KWRyYWdnaW5nU2VxdWVuY2VOdW1iZXIKK3sKKyAgICBOU0xvZyhAIldl
YktpdFRlc3RSdW5uZXIgZG9lc24ndCBzdXBwb3J0IGRyYWdnaW5nU2VxdWVuY2VOdW1iZXIiKTsK
KyAgICByZXR1cm4gMDsKK30KKworLSAodm9pZClzbGlkZURyYWdnZWRJbWFnZVRvOihOU1BvaW50
KXNjcmVlblBvaW50Cit7CisgICAgTlNMb2coQCJXZWJLaXRUZXN0UnVubmVyIGRvZXNuJ3Qgc3Vw
cG9ydCBzbGlkZURyYWdnZWRJbWFnZVRvOiIpOworfQorCistIChOU0FycmF5ICopbmFtZXNPZlBy
b21pc2VkRmlsZXNEcm9wcGVkQXREZXN0aW5hdGlvbjooTlNVUkwgKilkcm9wRGVzdGluYXRpb24K
K3sKKyAgICBOU0xvZyhAIldlYktpdFRlc3RSdW5uZXIgZG9lc24ndCBzdXBwb3J0IG5hbWVzT2ZQ
cm9taXNlZEZpbGVzRHJvcHBlZEF0RGVzdGluYXRpb246Iik7CisgICAgcmV0dXJuIG5pbDsKK30K
KworLSAoTlNEcmFnZ2luZ0Zvcm1hdGlvbilkcmFnZ2luZ0Zvcm1hdGlvbgoreworICAgIHJldHVy
biBOU0RyYWdnaW5nRm9ybWF0aW9uRGVmYXVsdDsKK30KKworLSAodm9pZClzZXREcmFnZ2luZ0Zv
cm1hdGlvbjooTlNEcmFnZ2luZ0Zvcm1hdGlvbilmb3JtYXRpb24KK3sKKyAgICAvLyBJZ25vcmVk
LgorfQorCistIChCT09MKWFuaW1hdGVzVG9EZXN0aW5hdGlvbgoreworICAgIHJldHVybiBOTzsK
K30KKworLSAodm9pZClzZXRBbmltYXRlc1RvRGVzdGluYXRpb246KEJPT0wpZmxhZworeworICAg
IC8vIElnbm9yZWQuCit9CisKKy0gKE5TSW50ZWdlciludW1iZXJPZlZhbGlkSXRlbXNGb3JEcm9w
Cit7CisgICAgcmV0dXJuIDE7Cit9CisKKy0gKHZvaWQpc2V0TnVtYmVyT2ZWYWxpZEl0ZW1zRm9y
RHJvcDooTlNJbnRlZ2VyKW51bWJlcgoreworICAgIC8vIElnbm9yZWQuCit9CisKKy0gKHZvaWQp
ZW51bWVyYXRlRHJhZ2dpbmdJdGVtc1dpdGhPcHRpb25zOihOU0VudW1lcmF0aW9uT3B0aW9ucyll
bnVtT3B0cyBmb3JWaWV3OihOU1ZpZXcgKil2aWV3IGNsYXNzZXM6KE5TQXJyYXkgKiljbGFzc0Fy
cmF5IHNlYXJjaE9wdGlvbnM6KE5TRGljdGlvbmFyeSAqKXNlYXJjaE9wdGlvbnMgdXNpbmdCbG9j
azoodm9pZCAoXikoTlNEcmFnZ2luZ0l0ZW0gKmRyYWdnaW5nSXRlbSwgTlNJbnRlZ2VyIGlkeCwg
Qk9PTCAqc3RvcCkpYmxvY2sKK3sKKyAgICAvLyBJZ25vcmVkLgorfQorCitAZW5kCgpQcm9wZXJ0
eSBjaGFuZ2VzIG9uOiBUb29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9XZWJLaXRUZXN0UnVubmVy
RHJhZ2dpbmdJbmZvLm1tCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTAsMCAr
MSAjIworTEYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9tYWMvV2ViS2l0VGVzdFJ1bm5lckV2ZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvV2ViS2l0VGVzdFJ1bm5lckV2ZW50LmgJKHJldmlz
aW9uIDApCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9XZWJLaXRUZXN0UnVubmVyRXZl
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBXZWJLaXRUZXN0UnVubmVyRXZlbnRfaAorI2RlZmluZSBXZWJLaXRUZXN0UnVubmVyRXZlbnRf
aAorCitAaW50ZXJmYWNlIFdlYktpdFRlc3RSdW5uZXJFdmVudCA6IE5TRXZlbnQKK0BlbmQKKwor
CisjZW5kaWYgLy8gV2ViS2l0VGVzdFJ1bm5lckV2ZW50X2gKClByb3BlcnR5IGNoYW5nZXMgb246
IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1dlYktpdFRlc3RSdW5uZXJFdmVudC5oCl9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTAsMCArMSAjIworbmF0aXZlClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFj
L1dlYktpdFRlc3RSdW5uZXJFdmVudC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0
UnVubmVyL21hYy9XZWJLaXRUZXN0UnVubmVyRXZlbnQubW0JKHJldmlzaW9uIDApCisrKyBUb29s
cy9XZWJLaXRUZXN0UnVubmVyL21hYy9XZWJLaXRUZXN0UnVubmVyRXZlbnQubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgor
I2ltcG9ydCAiV2ViS2l0VGVzdFJ1bm5lckV2ZW50LmgiCisKKyNpbXBvcnQgIkV2ZW50U2VuZGVy
UHJveHkuaCIKKyNpbXBvcnQgIlRlc3RDb250cm9sbGVyLmgiCisjaW1wb3J0ICJQbGF0Zm9ybVdl
YlZpZXcuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdUUjsKKworQGltcGxlbWVudGF0aW9uIFdlYktp
dFRlc3RSdW5uZXJFdmVudAorCisrIChOU1BvaW50KW1vdXNlTG9jYXRpb24KK3sKKyAgICBXS1Bv
aW50IGxvY2F0aW9uID0gVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLmV2ZW50U2VuZGVyUHJveHko
KS0+cG9zaXRpb24oKTsKKyAgICByZXR1cm4gW1Rlc3RDb250cm9sbGVyOjpzaGFyZWQoKS5tYWlu
V2ViVmlldygpLT5wbGF0Zm9ybVdpbmRvdygpIGNvbnZlcnRCYXNlVG9TY3JlZW46TlNNYWtlUG9p
bnQobG9jYXRpb24ueCwgbG9jYXRpb24ueSldOworfQorCitAZW5kCgpQcm9wZXJ0eSBjaGFuZ2Vz
IG9uOiBUb29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9XZWJLaXRUZXN0UnVubmVyRXZlbnQubW0K
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMCwwICsxICMjCitMRgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5Cg==
</data>
<flag name="review"
          id="232228"
          type_id="1"
          status="+"
          setter="mitz"
    />
    <flag name="commit-queue"
          id="232272"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
      

    </bug>

</bugzilla>