<?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>88874</bug_id>
          
          <creation_ts>2012-06-12 07:48:05 -0700</creation_ts>
          <short_desc>[Qt][Win]QtTestBrowser somehow picks up DumpRenderTree&apos;s main.cpp, causing a failure to link</short_desc>
          <delta_ts>2012-06-13 01:02:02 -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>New Bugs</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>88300</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Joel Dillon">joel.dillon</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>hausmann</cc>
    
    <cc>ossy</cc>
    
    <cc>vestbo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>646929</commentid>
    <comment_count>0</comment_count>
      <attachid>147085</attachid>
    <who name="Joel Dillon">joel.dillon</who>
    <bug_when>2012-06-12 07:48:05 -0700</bug_when>
    <thetext>Created attachment 147085
Patch to rename main.cpp in QtTestBrowser to qttestbrowser.cpp

As title. The symptom is link errors regarding DumpRenderTree (not DumpRenderTreeSupportQt). Attached is a proposed patch which simply renames main.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646932</commentid>
    <comment_count>1</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-06-12 07:51:33 -0700</bug_when>
    <thetext>Hmmm ... It is strange, but true.

I got strange link errors with unresolved DRT symbols,
but I didn&apos;t have time for investigation. But I think we 
should find nicer way to fix it. I&apos;ll check it soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646939</commentid>
    <comment_count>2</comment_count>
      <attachid>147085</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-06-12 07:57:52 -0700</bug_when>
    <thetext>Comment on attachment 147085
Patch to rename main.cpp in QtTestBrowser to qttestbrowser.cpp

It looks like the patch is missing the actual deletion of main.cpp. In a git diff it should just show up as a rename.

Can you also add a ChangeLog?

Finally set the r? flag to indicate that this is the patch you&apos;d like to have reviewed and consequently landed in SVN.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646954</commentid>
    <comment_count>3</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-06-12 08:18:54 -0700</bug_when>
    <thetext>Now it worked for me without any hack. (nmake in WebKitBuild/Release/Tools)
And I got QtTestBrowser.exe, DumpRenderTree.exe and ImageDiff.exe ... but
unfortunately they doesn&apos;t work. They terminate immediately without any error
or warning message.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646978</commentid>
    <comment_count>4</comment_count>
      <attachid>147092</attachid>
    <who name="Joel Dillon">joel.dillon</who>
    <bug_when>2012-06-12 08:47:57 -0700</bug_when>
    <thetext>Created attachment 147092
Revised version of patch to rename QtTestBrowser&apos;s main.cpp to qttestbrowser.cpp

Revised version of patch as requested. Problem occurs with VS 2010 for me; perhaps it doesn&apos;t with VS 2008?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647197</commentid>
    <comment_count>5</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-06-12 12:55:04 -0700</bug_when>
    <thetext>I got it again. It seems it is a crazy qmake bug.

here is parts of the Makefile:
SOURCES       = f:\WebKit\Tools\DumpRenderTree\qt\QtInitializeTestFonts.cpp \
		f:\WebKit\Tools\QtTestBrowser\locationedit.cpp \
		f:\WebKit\Tools\QtTestBrowser\launcherwindow.cpp \
		f:\WebKit\Tools\QtTestBrowser\main.cpp \
...
OBJECTS       = obj\release\QtInitializeTestFonts.obj \
		obj\release\locationedit.obj \
		obj\release\launcherwindow.obj \
		obj\release\main.obj \
...
{f:\WebKit\Tools\DumpRenderTree\qt}.cpp{obj\debug\}.obj::
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -Foobj\debug\ @&lt;&lt;
	$&lt;
&lt;&lt;

{f:\WebKit\Tools\QtTestBrowser}.cpp{obj\debug\}.obj::
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -Foobj\debug\ @&lt;&lt;
	$&lt;
&lt;&lt;

...

The problem is that the object name is obj\release\main.obj and it can
be generated from both of the rule. And unfortunately nmake choice the
wrong one. Oh, what a silly makefile generation in qmake ... 

In this case renaming can be a good solution, but it would only paper
over the problem, and it can be occur in the future again and again.
I&apos;ll try to reproduce it in a small example and will file a qmake bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647200</commentid>
    <comment_count>6</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-06-12 12:56:08 -0700</bug_when>
    <thetext>cc Tor Arne, our qmake and build system guru. I bet you haven&apos;t seen this kind of crazy bug before. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647760</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-06-13 00:21:30 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; cc Tor Arne, our qmake and build system guru. I bet you haven&apos;t seen this kind of crazy bug before. :)

I have and I&apos;m afraid it&apos;s a WONTFIX ;(. The only workaround I know of is to either do what Joel did (my preferred solution) or disable batch builds (there&apos;s a CONFIG += no_batch IIRC). But in essence this is how batch builds work with nmake and there&apos;s no way around it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647765</commentid>
    <comment_count>8</comment_count>
      <attachid>147092</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-06-13 00:25:23 -0700</bug_when>
    <thetext>Comment on attachment 147092
Revised version of patch to rename QtTestBrowser&apos;s main.cpp to qttestbrowser.cpp

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

r=me, but I&apos;ll land it manually with adjusted ChangeLog.

&gt; ChangeLog:4
&gt; +        Rename main.cpp in QtTestBrowser because on Windows
&gt; +        it conflicts with main.cpp from DumpRenderTree.

The format of this file isn&apos;t quite correct. I&apos;ll fix it when landing this manually. Joel, you can use Tools/Scripts/prepare-ChangeLog to create a template entry in all affected ChangeLogs to suite the WebKit style.

&gt; Tools/QtTestBrowser/main.cpp:-6
&gt; -/*
&gt; - * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies)
&gt; - * Copyright (C) 2009 Girish Ramakrishnan &lt;girish@forwardbias.in&gt;
&gt; - * Copyright (C) 2006 George Staikos &lt;staikos@kde.org&gt;
&gt; - * Copyright (C) 2006 Dirk Mueller &lt;mueller@kde.org&gt;
&gt; -- 

This looks incomplete to me, the file has more lines than that. In git status (or git show --name-status HEAD) this should really show up as file rename, and then it should appear here also.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647775</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-06-13 00:36:08 -0700</bug_when>
    <thetext>Committed r120166: &lt;http://trac.webkit.org/changeset/120166&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647786</commentid>
    <comment_count>10</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-06-13 01:02:02 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; cc Tor Arne, our qmake and build system guru. I bet you haven&apos;t seen this kind of crazy bug before. :)
&gt; 
&gt; I have and I&apos;m afraid it&apos;s a WONTFIX ;(. The only workaround I know of is to either do what Joel did (my preferred solution) or disable batch builds (there&apos;s a CONFIG += no_batch IIRC). But in essence this is how batch builds work with nmake and there&apos;s no way around it.

I found the related qmake bug: https://bugreports.qt-project.org/browse/QTBUG-13496 (and commented it with some suggestions)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147085</attachid>
            <date>2012-06-12 07:48:05 -0700</date>
            <delta_ts>2012-06-12 07:57:51 -0700</delta_ts>
            <desc>Patch to rename main.cpp in QtTestBrowser to qttestbrowser.cpp</desc>
            <filename>For-some-reason-on-Windows-the-build-system-picks-up.patch</filename>
            <type>text/plain</type>
            <size>12788</size>
            <attacher name="Joel Dillon">joel.dillon</attacher>
            
              <data encoding="base64">RnJvbSBjYzVmYjAwZWI1ZTQ5MjBiOTAyODU1ODhlZmNjODFmZjkwYWMyZWFjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2VsIERpbGxvbiA8am9lbC5kaWxsb25AY29kZXRoaW5rLmNv
LnVrPgpEYXRlOiBUaHUsIDcgSnVuIDIwMTIgMTY6MzU6NTIgKzAxMDAKU3ViamVjdDogW1BBVENI
XSBGb3Igc29tZSByZWFzb24sIG9uIFdpbmRvd3MgdGhlIGJ1aWxkIHN5c3RlbSBwaWNrcyB1cAog
dGhlIHdyb25nIG1haW4uY3BwICh0aGUgb25lIGZyb20gRHVtcFJlbmRlclRyZWUuCiBDaG9vc2lu
ZyBhIGRpZmZlcmVudCBuYW1lIGF2b2lkcyB0aGlzIHByb2JsZW0KCi0tLQogVG9vbHMvUXRUZXN0
QnJvd3Nlci9RdFRlc3RCcm93c2VyLnBybyB8ICAgIDIgKy0KIFRvb2xzL1F0VGVzdEJyb3dzZXIv
cXR0ZXN0YnJvd3Nlci5jcHAgIHwgIDMyMSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysKIDIgZmlsZXMgY2hhbmdlZCwgMzIyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBUb29scy9RdFRlc3RCcm93c2VyL3F0dGVzdGJyb3dzZXIuY3BwCgpk
aWZmIC0tZ2l0IGEvVG9vbHMvUXRUZXN0QnJvd3Nlci9RdFRlc3RCcm93c2VyLnBybyBiL1Rvb2xz
L1F0VGVzdEJyb3dzZXIvUXRUZXN0QnJvd3Nlci5wcm8KaW5kZXggNmQ4YTQxYi4uNzg3YjgwYyAx
MDA2NDQKLS0tIGEvVG9vbHMvUXRUZXN0QnJvd3Nlci9RdFRlc3RCcm93c2VyLnBybworKysgYi9U
b29scy9RdFRlc3RCcm93c2VyL1F0VGVzdEJyb3dzZXIucHJvCkBAIC0xNyw3ICsxNyw3IEBAIFNP
VVJDRVMgKz0gXAogICAgICQke1JPT1RfV0VCS0lUX0RJUn0vVG9vbHMvRHVtcFJlbmRlclRyZWUv
cXQvUXRJbml0aWFsaXplVGVzdEZvbnRzLmNwcCBcCiAgICAgbG9jYXRpb25lZGl0LmNwcCBcCiAg
ICAgbGF1bmNoZXJ3aW5kb3cuY3BwIFwKLSAgICBtYWluLmNwcCBcCisgICAgcXR0ZXN0YnJvd3Nl
ci5jcHAgXAogICAgIG1haW53aW5kb3cuY3BwIFwKICAgICB1cmxsb2FkZXIuY3BwIFwKICAgICB1
dGlscy5jcHAgXApkaWZmIC0tZ2l0IGEvVG9vbHMvUXRUZXN0QnJvd3Nlci9xdHRlc3Ricm93c2Vy
LmNwcCBiL1Rvb2xzL1F0VGVzdEJyb3dzZXIvcXR0ZXN0YnJvd3Nlci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzE1NzFhNAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L1F0VGVzdEJyb3dzZXIvcXR0ZXN0YnJvd3Nlci5jcHAKQEAgLTAsMCArMSwzMjEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDkgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR2lyaXNoIFJhbWFrcmlzaG5hbiA8Z2ly
aXNoQGZvcndhcmRiaWFzLmluPgorICogQ29weXJpZ2h0IChDKSAyMDA2IEdlb3JnZSBTdGFpa29z
IDxzdGFpa29zQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgRGlyayBNdWVsbGVyIDxt
dWVsbGVyQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgWmFjayBSdXNpbiA8emFja0Br
ZGUub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA2IFNpbW9uIEhhdXNtYW5uIDxoYXVzbWFubkBr
ZGUub3JnPgorICoKKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgIkR1
bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgiCisjaW5jbHVkZSAiUXRJbml0aWFsaXplVGVzdEZvbnRz
LmgiCisjaW5jbHVkZSAibGF1bmNoZXJ3aW5kb3cuaCIKKyNpbmNsdWRlICJ1cmxsb2FkZXIuaCIK
KworV2luZG93T3B0aW9ucyB3aW5kb3dPcHRpb25zOworCisjaW5jbHVkZSA8UUFwcGxpY2F0aW9u
PgorI2luY2x1ZGUgPFFEaXI+CisjaW5jbHVkZSA8UUZpbGU+CisjaW5jbHVkZSA8UUZpbGVJbmZv
PgorI2luY2x1ZGUgPFFGb250RGF0YWJhc2U+CisKK2ludCBsYXVuY2hlck1haW4oY29uc3QgUUFw
cGxpY2F0aW9uJiBhcHApCit7CisjaWZuZGVmIE5ERUJVRworICAgIGludCByZXRWYWwgPSBhcHAu
ZXhlYygpOworICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpnYXJiYWdlQ29sbGVjdG9yQ29s
bGVjdCgpOworICAgIFFXZWJTZXR0aW5nczo6Y2xlYXJNZW1vcnlDYWNoZXMoKTsKKyAgICByZXR1
cm4gcmV0VmFsOworI2Vsc2UKKyAgICByZXR1cm4gYXBwLmV4ZWMoKTsKKyNlbmRpZgorfQorCitj
bGFzcyBMYXVuY2hlckFwcGxpY2F0aW9uIDogcHVibGljIFFBcHBsaWNhdGlvbiB7CisgICAgUV9P
QkpFQ1QKKworcHVibGljOgorICAgIExhdW5jaGVyQXBwbGljYXRpb24oaW50JiBhcmdjLCBjaGFy
KiogYXJndik7CisgICAgUVN0cmluZ0xpc3QgdXJscygpIGNvbnN0IHsgcmV0dXJuIG1fdXJsczsg
fQorICAgIGJvb2wgaXNSb2JvdGl6ZWQoKSBjb25zdCB7IHJldHVybiBtX2lzUm9ib3RpemVkOyB9
CisgICAgaW50IHJvYm90VGltZW91dCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9ib3RUaW1lb3V0U2Vj
b25kczsgfQorICAgIGludCByb2JvdEV4dHJhVGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fcm9ib3RF
eHRyYVRpbWVTZWNvbmRzOyB9CisKK3ByaXZhdGU6CisgICAgdm9pZCBoYW5kbGVVc2VyT3B0aW9u
cygpOworICAgIHZvaWQgYXBwbHlEZWZhdWx0U2V0dGluZ3MoKTsKKworcHJpdmF0ZToKKyAgICBi
b29sIG1faXNSb2JvdGl6ZWQ7CisgICAgaW50IG1fcm9ib3RUaW1lb3V0U2Vjb25kczsKKyAgICBp
bnQgbV9yb2JvdEV4dHJhVGltZVNlY29uZHM7CisgICAgUVN0cmluZ0xpc3QgbV91cmxzOworfTsK
Kwordm9pZCBMYXVuY2hlckFwcGxpY2F0aW9uOjphcHBseURlZmF1bHRTZXR0aW5ncygpCit7Cisg
ICAgUVdlYlNldHRpbmdzOjpzZXRNYXhpbXVtUGFnZXNJbkNhY2hlKDQpOworCisgICAgUVdlYlNl
dHRpbmdzOjpzZXRPYmplY3RDYWNoZUNhcGFjaXRpZXMoKDE2KjEwMjQqMTAyNCkgLyA4LCAoMTYq
MTAyNCoxMDI0KSAvIDgsIDE2KjEwMjQqMTAyNCk7CisKKyAgICBRV2ViU2V0dGluZ3M6Omdsb2Jh
bFNldHRpbmdzKCktPnNldEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OlBsdWdpbnNFbmFibGVkLCB0
cnVlKTsKKyAgICBRV2ViU2V0dGluZ3M6Omdsb2JhbFNldHRpbmdzKCktPnNldEF0dHJpYnV0ZShR
V2ViU2V0dGluZ3M6OkRldmVsb3BlckV4dHJhc0VuYWJsZWQsIHRydWUpOworICAgIFFXZWJTZXR0
aW5nczo6ZW5hYmxlUGVyc2lzdGVudFN0b3JhZ2UoKTsKK30KKworTGF1bmNoZXJBcHBsaWNhdGlv
bjo6TGF1bmNoZXJBcHBsaWNhdGlvbihpbnQmIGFyZ2MsIGNoYXIqKiBhcmd2KQorICAgIDogUUFw
cGxpY2F0aW9uKGFyZ2MsIGFyZ3YsIFFBcHBsaWNhdGlvbjo6R3VpU2VydmVyKQorICAgICwgbV9p
c1JvYm90aXplZChmYWxzZSkKKyAgICAsIG1fcm9ib3RUaW1lb3V0U2Vjb25kcygwKQorICAgICwg
bV9yb2JvdEV4dHJhVGltZVNlY29uZHMoMCkKK3sKKyAgICAvLyBUbyBhbGxvdyBRV2ViSW5zcGVj
dG9yJ3MgY29uZmlndXJhdGlvbiBwZXJzaXN0ZW5jZQorICAgIHNldE9yZ2FuaXphdGlvbk5hbWUo
Ik5va2lhIik7CisgICAgc2V0QXBwbGljYXRpb25OYW1lKCJRdFRlc3RCcm93c2VyIik7CisgICAg
c2V0QXBwbGljYXRpb25WZXJzaW9uKCIwLjEiKTsKKworICAgIGFwcGx5RGVmYXVsdFNldHRpbmdz
KCk7CisKKyAgICBoYW5kbGVVc2VyT3B0aW9ucygpOworfQorCitzdGF0aWMgdm9pZCByZXF1aXJl
c0dyYXBoaWNzVmlldyhjb25zdCBRU3RyaW5nJiBvcHRpb24pCit7CisgICAgaWYgKHdpbmRvd09w
dGlvbnMudXNlR3JhcGhpY3NWaWV3KQorICAgICAgICByZXR1cm47CisgICAgYXBwUXVpdCgxLCBR
U3RyaW5nKCIlMSBvbmx5IHdvcmtzIGluIGNvbWJpbmF0aW9uIHdpdGggdGhlIC1ncmFwaGljc2Jh
c2VkIG9wdGlvbiIpLmFyZyhvcHRpb24pKTsKK30KKwordm9pZCBMYXVuY2hlckFwcGxpY2F0aW9u
OjpoYW5kbGVVc2VyT3B0aW9ucygpCit7CisgICAgUVN0cmluZ0xpc3QgYXJncyA9IGFyZ3VtZW50
cygpOworICAgIFFGaWxlSW5mbyBwcm9ncmFtKGFyZ3MuYXQoMCkpOworICAgIFFTdHJpbmcgcHJv
Z3JhbU5hbWUoIlF0VGVzdEJyb3dzZXIiKTsKKyAgICBpZiAocHJvZ3JhbS5leGlzdHMoKSkKKyAg
ICAgICAgcHJvZ3JhbU5hbWUgPSBwcm9ncmFtLmJhc2VOYW1lKCk7CisKKyAgICBRTGlzdDxRU3Ry
aW5nPiB1cGRhdGVNb2RlcyhlbnVtVG9LZXlzKFFHcmFwaGljc1ZpZXc6OnN0YXRpY01ldGFPYmpl
Y3QsCisgICAgICAgICAgICAiVmlld3BvcnRVcGRhdGVNb2RlIiwgIlZpZXdwb3J0VXBkYXRlIikp
OworCisgICAgaWYgKGFyZ3MuY29udGFpbnMoIi1oZWxwIikpIHsKKyAgICAgICAgcURlYnVnKCkg
PDwgIlVzYWdlOiIgPDwgcHJvZ3JhbU5hbWUudG9MYXRpbjEoKS5kYXRhKCkKKyAgICAgICAgICAg
ICA8PCAiWy1ncmFwaGljc2Jhc2VkXSIKKyAgICAgICAgICAgICA8PCAiWy1uby1jb21wb3NpdGlu
Z10iCisjaWYgZGVmaW5lZChRVF9DT05GSUdVUkVEX1dJVEhfT1BFTkdMKQorICAgICAgICAgICAg
IDw8ICJbLWdsLXZpZXdwb3J0XSIKKyAgICAgICAgICAgICA8PCAiWy13ZWJnbF0iCisjZW5kaWYK
KyAgICAgICAgICAgICA8PCBRU3RyaW5nKCJbLXZpZXdwb3J0LXVwZGF0ZS1tb2RlICUxXSIpLmFy
Zyhmb3JtYXRLZXlzKHVwZGF0ZU1vZGVzKSkudG9MYXRpbjEoKS5kYXRhKCkKKyNpZiAhZGVmaW5l
ZChRVF9OT19ORVRXT1JLRElTS0NBQ0hFKSAmJiAhZGVmaW5lZChRVF9OT19ERVNLVE9QU0VSVklD
RVMpCisgICAgICAgICAgICAgPDwgIlstZGlzay1jYWNoZV0iCisjZW5kaWYKKyAgICAgICAgICAg
ICA8PCAiWy1jYWNoZS13ZWJ2aWV3XSIKKyAgICAgICAgICAgICA8PCAiWy1tYXhpbWl6ZV0iCisg
ICAgICAgICAgICAgPDwgIlstc2hvdy1mcHNdIgorICAgICAgICAgICAgIDw8ICJbLXIgbGlzdF0i
CisgICAgICAgICAgICAgPDwgIlstcm9ib3QtdGltZW91dCBzZWNvbmRzXSIKKyAgICAgICAgICAg
ICA8PCAiWy1yb2JvdC1leHRyYS10aW1lIHNlY29uZHNdIgorICAgICAgICAgICAgIDw8ICJbLWlu
c3BlY3Rvci11cmwgbG9jYXRpb25dIgorICAgICAgICAgICAgIDw8ICJbLXRpbGVkLWJhY2tpbmct
c3RvcmVdIgorICAgICAgICAgICAgIDw8ICJbLXJlc2l6ZXMtdG8tY29udGVudHNdIgorICAgICAg
ICAgICAgIDw8ICJbLWxvY2FsLXN0b3JhZ2UtZW5hYmxlZF0iCisgICAgICAgICAgICAgPDwgIlst
bm8tZGlzay1jb29raWVzXSIKKyAgICAgICAgICAgICA8PCAiWy1vZmZsaW5lLXN0b3JhZ2UtZGF0
YWJhc2UtZW5hYmxlZF0iCisgICAgICAgICAgICAgPDwgIlstb2ZmbGluZS13ZWItYXBwbGljYXRp
b24tY2FjaGUtZW5hYmxlZF0iCisgICAgICAgICAgICAgPDwgIlstc2V0LW9mZmxpbmUtc3RvcmFn
ZS1kZWZhdWx0LXF1b3RhIG1heFNpemVdIgorICAgICAgICAgICAgIDw8ICJbLXVzZS10ZXN0LWZv
bnRzXSIKKyAgICAgICAgICAgICA8PCAiWy1wcmludC1sb2FkZWQtdXJsc10iCisgICAgICAgICAg
ICAgPDwgIlVSTHMiOworICAgICAgICBhcHBRdWl0KDApOworICAgIH0KKworICAgIGNvbnN0IGJv
b2wgZGVmYXVsdEZvckFuaW1hdGlvbnMgPSBhcmdzLmNvbnRhaW5zKCItZGVmYXVsdC1hbmltYXRp
b25zIik7CisgICAgaWYgKGFyZ3MuY29udGFpbnMoIi1ncmFwaGljc2Jhc2VkIikgfHwgZGVmYXVs
dEZvckFuaW1hdGlvbnMpCisgICAgICAgIHdpbmRvd09wdGlvbnMudXNlR3JhcGhpY3NWaWV3ID0g
dHJ1ZTsKKworICAgIGlmIChhcmdzLmNvbnRhaW5zKCItbm8tY29tcG9zaXRpbmciKSkgeworICAg
ICAgICByZXF1aXJlc0dyYXBoaWNzVmlldygiLW5vLWNvbXBvc2l0aW5nIik7CisgICAgICAgIHdp
bmRvd09wdGlvbnMudXNlQ29tcG9zaXRpbmcgPSBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoYXJn
cy5jb250YWlucygiLXNob3ctZnBzIikpIHsKKyAgICAgICAgcmVxdWlyZXNHcmFwaGljc1ZpZXco
Ii1zaG93LWZwcyIpOworICAgICAgICB3aW5kb3dPcHRpb25zLnNob3dGcmFtZVJhdGUgPSB0cnVl
OworICAgIH0KKworICAgIGlmIChhcmdzLmNvbnRhaW5zKCItZGlzay1jYWNoZSIpKSB7CisjaWYg
IWRlZmluZWQoUVRfTk9fTkVUV09SS0RJU0tDQUNIRSkgJiYgIWRlZmluZWQoUVRfTk9fREVTS1RP
UFNFUlZJQ0VTKQorICAgICAgICB3aW5kb3dPcHRpb25zLnVzZURpc2tDYWNoZSA9IHRydWU7Cisj
ZWxzZQorICAgIGFwcFF1aXQoMSwgIi1kaXNrLWNhY2hlIG9ubHkgd29ya3MgaWYgUU5ldHdvcmtE
aXNrQ2FjaGUgYW5kIFFEZXNrdG9wU2VydmljZXMgaXMgZW5hYmxlZCBpbiB5b3VyIFF0IGJ1aWxk
LiIpOworI2VuZGlmCisgICAgfQorCisgICAgaWYgKGFyZ3MuY29udGFpbnMoIi1jYWNoZS13ZWJ2
aWV3IikgfHwgZGVmYXVsdEZvckFuaW1hdGlvbnMpIHsKKyAgICAgICAgcmVxdWlyZXNHcmFwaGlj
c1ZpZXcoIi1jYWNoZS13ZWJ2aWV3Iik7CisgICAgICAgIHdpbmRvd09wdGlvbnMuY2FjaGVXZWJW
aWV3ID0gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAoYXJncy5jb250YWlucygiLXRpbGVkLWJhY2tp
bmctc3RvcmUiKSkgeworICAgICAgICByZXF1aXJlc0dyYXBoaWNzVmlldygiLXRpbGVkLWJhY2tp
bmctc3RvcmUiKTsKKyAgICAgICAgd2luZG93T3B0aW9ucy51c2VUaWxlZEJhY2tpbmdTdG9yZSA9
IHRydWU7CisgICAgfQorCisgICAgaWYgKGFyZ3MuY29udGFpbnMoIi1yZXNpemVzLXRvLWNvbnRl
bnRzIikpIHsKKyAgICAgICAgcmVxdWlyZXNHcmFwaGljc1ZpZXcoIi1yZXNpemVzLXRvLWNvbnRl
bnRzIik7CisgICAgICAgIHdpbmRvd09wdGlvbnMucmVzaXplc1RvQ29udGVudHMgPSB0cnVlOwor
ICAgIH0KKyAgICAKKyAgICBpZiAoYXJncy5jb250YWlucygiLWxvY2FsLXN0b3JhZ2UtZW5hYmxl
ZCIpKQorICAgICAgICB3aW5kb3dPcHRpb25zLnVzZUxvY2FsU3RvcmFnZSA9IHRydWU7CisKKyAg
ICBpZiAoYXJncy5jb250YWlucygiLW5vLWRpc2stY29va2llcyIpKQorICAgICAgICB3aW5kb3dP
cHRpb25zLnVzZURpc2tDb29raWVzID0gZmFsc2U7CisKKyAgICBpZiAoYXJncy5jb250YWlucygi
LW1heGltaXplIikpCisgICAgICAgIHdpbmRvd09wdGlvbnMuc3RhcnRNYXhpbWl6ZWQgPSB0cnVl
OworCisgICAgaWYgKGFyZ3MuY29udGFpbnMoIi1vZmZsaW5lLXN0b3JhZ2UtZGF0YWJhc2UtZW5h
YmxlZCIpKQorICAgICAgICB3aW5kb3dPcHRpb25zLnVzZU9mZmxpbmVTdG9yYWdlRGF0YWJhc2Ug
PSB0cnVlOworICAgICAgICAKKyAgICBpZiAoYXJncy5jb250YWlucygiLW9mZmxpbmUtd2ViLWFw
cGxpY2F0aW9uLWNhY2hlLWVuYWJsZWQiKSkgICAKKyAgICAgICAgd2luZG93T3B0aW9ucy51c2VP
ZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZSA9IHRydWU7CisgICAgCisgICAgaW50IHNldE9mZmxp
bmVTdG9yYWdlRGVmYXVsdFF1b3RhSW5kZXggPSBhcmdzLmluZGV4T2YoIi1zZXQtb2ZmbGluZS1z
dG9yYWdlLWRlZmF1bHQtcXVvdGEiKTsKKyAgICBpZiAoc2V0T2ZmbGluZVN0b3JhZ2VEZWZhdWx0
UXVvdGFJbmRleCAhPSAtMSkgeworICAgICAgICB1bnNpZ25lZCBpbnQgbWF4U2l6ZSA9IHRha2VP
cHRpb25WYWx1ZSgmYXJncywgc2V0T2ZmbGluZVN0b3JhZ2VEZWZhdWx0UXVvdGFJbmRleCkudG9V
SW50KCk7CisgICAgICAgIHdpbmRvd09wdGlvbnMub2ZmbGluZVN0b3JhZ2VEZWZhdWx0UXVvdGFT
aXplID0gbWF4U2l6ZTsKKyAgICB9ICAgCisgICAgCisgICAgaWYgKGRlZmF1bHRGb3JBbmltYXRp
b25zKQorICAgICAgICB3aW5kb3dPcHRpb25zLnZpZXdwb3J0VXBkYXRlTW9kZSA9IFFHcmFwaGlj
c1ZpZXc6OkJvdW5kaW5nUmVjdFZpZXdwb3J0VXBkYXRlOworCisgICAgUVN0cmluZyBhcmcxKCIt
dmlld3BvcnQtdXBkYXRlLW1vZGUiKTsKKyAgICBpbnQgbW9kZUluZGV4ID0gYXJncy5pbmRleE9m
KGFyZzEpOworICAgIGlmIChtb2RlSW5kZXggIT0gLTEpIHsKKyAgICAgICAgcmVxdWlyZXNHcmFw
aGljc1ZpZXcoYXJnMSk7CisKKyAgICAgICAgUVN0cmluZyBtb2RlID0gdGFrZU9wdGlvblZhbHVl
KCZhcmdzLCBtb2RlSW5kZXgpOworICAgICAgICBpZiAobW9kZS5pc0VtcHR5KCkpCisgICAgICAg
ICAgICBhcHBRdWl0KDEsIFFTdHJpbmcoIiUxIG5lZWRzIGEgdmFsdWUgb2Ygb25lIG9mIFslMl0i
KS5hcmcoYXJnMSkuYXJnKGZvcm1hdEtleXModXBkYXRlTW9kZXMpKSk7CisgICAgICAgIGludCBp
ZHggPSB1cGRhdGVNb2Rlcy5pbmRleE9mKG1vZGUpOworICAgICAgICBpZiAoaWR4ID09IC0xKQor
ICAgICAgICAgICAgYXBwUXVpdCgxLCBRU3RyaW5nKCIlMSB2YWx1ZSBoYXMgdG8gYmUgb25lIG9m
IFslMl0iKS5hcmcoYXJnMSkuYXJnKGZvcm1hdEtleXModXBkYXRlTW9kZXMpKSk7CisKKyAgICAg
ICAgd2luZG93T3B0aW9ucy52aWV3cG9ydFVwZGF0ZU1vZGUgPSBzdGF0aWNfY2FzdDxRR3JhcGhp
Y3NWaWV3OjpWaWV3cG9ydFVwZGF0ZU1vZGU+KGlkeCk7CisgICAgfQorI2lmZGVmIFFUX0NPTkZJ
R1VSRURfV0lUSF9PUEVOR0wKKyAgICBpZiAoYXJncy5jb250YWlucygiLWdsLXZpZXdwb3J0Iikg
fHwgZGVmYXVsdEZvckFuaW1hdGlvbnMpIHsKKyAgICAgICAgcmVxdWlyZXNHcmFwaGljc1ZpZXco
Ii1nbC12aWV3cG9ydCIpOworICAgICAgICB3aW5kb3dPcHRpb25zLnVzZVFHTFdpZGdldFZpZXdw
b3J0ID0gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAoYXJncy5jb250YWlucygiLXdlYmdsIikpIHsK
KyAgICAgICAgcmVxdWlyZXNHcmFwaGljc1ZpZXcoIi13ZWJnbCIpOworICAgICAgICB3aW5kb3dP
cHRpb25zLnVzZVdlYkdMID0gdHJ1ZTsKKyAgICB9CisjZW5kaWYKKworICAgIGlmIChhcmdzLmNv
bnRhaW5zKCItdXNlLXRlc3QtZm9udHMiKSkKKyAgICAgICAgV2ViS2l0Ojppbml0aWFsaXplVGVz
dEZvbnRzKCk7CisKKyAgICBpZiAoYXJncy5jb250YWlucygiLXByaW50LWxvYWRlZC11cmxzIikp
CisgICAgICAgIHdpbmRvd09wdGlvbnMucHJpbnRMb2FkZWRVcmxzID0gdHJ1ZTsKKworICAgIFFT
dHJpbmcgaW5zcGVjdG9yVXJsQXJnKCItaW5zcGVjdG9yLXVybCIpOworICAgIGludCBpbnNwZWN0
b3JVcmxJbmRleCA9IGFyZ3MuaW5kZXhPZihpbnNwZWN0b3JVcmxBcmcpOworICAgIGlmIChpbnNw
ZWN0b3JVcmxJbmRleCAhPSAtMSkKKyAgICAgICB3aW5kb3dPcHRpb25zLmluc3BlY3RvclVybCA9
IHRha2VPcHRpb25WYWx1ZSgmYXJncywgaW5zcGVjdG9yVXJsSW5kZXgpOworCisgICAgUVN0cmlu
ZyByZW1vdGVJbnNwZWN0b3JQb3J0QXJnKCItcmVtb3RlLWluc3BlY3Rvci1wb3J0Iik7CisgICAg
aW50IHJlbW90ZUluc3BlY3RvclBvcnRJbmRleCA9IGFyZ3MuaW5kZXhPZihyZW1vdGVJbnNwZWN0
b3JQb3J0QXJnKTsKKyAgICBpZiAocmVtb3RlSW5zcGVjdG9yUG9ydEluZGV4ICE9IC0xKQorICAg
ICAgICB3aW5kb3dPcHRpb25zLnJlbW90ZUluc3BlY3RvclBvcnQgPSB0YWtlT3B0aW9uVmFsdWUo
JmFyZ3MsIHJlbW90ZUluc3BlY3RvclBvcnRJbmRleCkudG9JbnQoKTsKKworICAgIGludCByb2Jv
dEluZGV4ID0gYXJncy5pbmRleE9mKCItciIpOworICAgIGlmIChyb2JvdEluZGV4ICE9IC0xKSB7
CisgICAgICAgIFFTdHJpbmcgbGlzdEZpbGUgPSB0YWtlT3B0aW9uVmFsdWUoJmFyZ3MsIHJvYm90
SW5kZXgpOworICAgICAgICBpZiAobGlzdEZpbGUuaXNFbXB0eSgpKQorICAgICAgICAgICAgYXBw
UXVpdCgxLCAiLXIgbmVlZHMgYSBsaXN0IGZpbGUgdG8gc3RhcnQgaW4gcm9ib3RpemVkIG1vZGUi
KTsKKyAgICAgICAgaWYgKCFRRmlsZTo6ZXhpc3RzKGxpc3RGaWxlKSkKKyAgICAgICAgICAgIGFw
cFF1aXQoMSwgIlRoZSBsaXN0IGZpbGUgc3VwcGxpZWQgdG8gLXIgZG9lcyBub3QgZXhpc3QuIik7
CisKKyAgICAgICAgbV9pc1JvYm90aXplZCA9IHRydWU7CisgICAgICAgIG1fdXJscyA9IFFTdHJp
bmdMaXN0KGxpc3RGaWxlKTsKKyAgICB9IGVsc2UgeworICAgICAgICBpbnQgbGFzdEFyZyA9IGFy
Z3MubGFzdEluZGV4T2YoUVJlZ0V4cCgiXi0uKiIpKTsKKyAgICAgICAgbV91cmxzID0gKGxhc3RB
cmcgIT0gLTEpID8gYXJncy5taWQoKytsYXN0QXJnKSA6IGFyZ3MubWlkKDEpOworICAgIH0KKwor
ICAgIGludCByb2JvdFRpbWVvdXRJbmRleCA9IGFyZ3MuaW5kZXhPZigiLXJvYm90LXRpbWVvdXQi
KTsKKyAgICBpZiAocm9ib3RUaW1lb3V0SW5kZXggIT0gLTEpCisgICAgICAgIG1fcm9ib3RUaW1l
b3V0U2Vjb25kcyA9IHRha2VPcHRpb25WYWx1ZSgmYXJncywgcm9ib3RUaW1lb3V0SW5kZXgpLnRv
SW50KCk7CisKKyAgICBpbnQgcm9ib3RFeHRyYVRpbWVJbmRleCA9IGFyZ3MuaW5kZXhPZigiLXJv
Ym90LWV4dHJhLXRpbWUiKTsKKyAgICBpZiAocm9ib3RFeHRyYVRpbWVJbmRleCAhPSAtMSkKKyAg
ICAgICAgbV9yb2JvdEV4dHJhVGltZVNlY29uZHMgPSB0YWtlT3B0aW9uVmFsdWUoJmFyZ3MsIHJv
Ym90RXh0cmFUaW1lSW5kZXgpLnRvSW50KCk7Cit9CisKKworaW50IG1haW4oaW50IGFyZ2MsIGNo
YXIgKiphcmd2KQoreworICAgIExhdW5jaGVyQXBwbGljYXRpb24gYXBwKGFyZ2MsIGFyZ3YpOwor
CisgICAgaWYgKGFwcC5pc1JvYm90aXplZCgpKSB7CisgICAgICAgIExhdW5jaGVyV2luZG93KiB3
aW5kb3cgPSBuZXcgTGF1bmNoZXJXaW5kb3coKTsKKyAgICAgICAgVXJsTG9hZGVyIGxvYWRlcih3
aW5kb3ctPnBhZ2UoKS0+bWFpbkZyYW1lKCksIGFwcC51cmxzKCkuYXQoMCksIGFwcC5yb2JvdFRp
bWVvdXQoKSwgYXBwLnJvYm90RXh0cmFUaW1lKCkpOworICAgICAgICBsb2FkZXIubG9hZE5leHQo
KTsKKyAgICAgICAgd2luZG93LT5zaG93KCk7CisgICAgICAgIHJldHVybiBsYXVuY2hlck1haW4o
YXBwKTsKKyAgICB9CisKKyAgICBRU3RyaW5nTGlzdCB1cmxzID0gYXBwLnVybHMoKTsKKworICAg
IGlmICh1cmxzLmlzRW1wdHkoKSkgeworICAgICAgICBRU3RyaW5nIGRlZmF1bHRJbmRleEZpbGUg
PSBRU3RyaW5nKCIlMS8lMiIpLmFyZyhRRGlyOjpob21lUGF0aCgpKS5hcmcoUUxhdGluMVN0cmlu
ZygiaW5kZXguaHRtbCIpKTsKKyAgICAgICAgaWYgKFFGaWxlKGRlZmF1bHRJbmRleEZpbGUpLmV4
aXN0cygpKQorICAgICAgICAgICAgdXJscy5hcHBlbmQoUVN0cmluZygiZmlsZTovLyIpICsgZGVm
YXVsdEluZGV4RmlsZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHVybHMuYXBwZW5kKCIi
KTsKKyAgICB9CisKKyAgICBMYXVuY2hlcldpbmRvdyogd2luZG93ID0gMDsKKyAgICBmb3JlYWNo
IChRU3RyaW5nIHVybCwgdXJscykgeworICAgICAgICBMYXVuY2hlcldpbmRvdyogbmV3V2luZG93
OworICAgICAgICBpZiAoIXdpbmRvdykKKyAgICAgICAgICAgIG5ld1dpbmRvdyA9IHdpbmRvdyA9
IG5ldyBMYXVuY2hlcldpbmRvdygmd2luZG93T3B0aW9ucyk7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIG5ld1dpbmRvdyA9IHdpbmRvdy0+bmV3V2luZG93KCk7CisKKyAgICAgICAgbmV3V2lu
ZG93LT5sb2FkKHVybCk7CisgICAgfQorCisgICAgd2luZG93LT5zaG93KCk7CisgICAgcmV0dXJu
IGxhdW5jaGVyTWFpbihhcHApOworfQorCisjaW5jbHVkZSAicXR0ZXN0YnJvd3Nlci5tb2MiCi0t
IAoxLjcuMTAubXN5c2dpdC4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147092</attachid>
            <date>2012-06-12 08:47:57 -0700</date>
            <delta_ts>2012-06-13 00:25:23 -0700</delta_ts>
            <desc>Revised version of patch to rename QtTestBrowser&apos;s main.cpp to qttestbrowser.cpp</desc>
            <filename>For-some-reason-on-Windows-the-build-system-picks-up.patch</filename>
            <type>text/plain</type>
            <size>13635</size>
            <attacher name="Joel Dillon">joel.dillon</attacher>
            
              <data encoding="base64">RnJvbSBjYzVmYjAwZWI1ZTQ5MjBiOTAyODU1ODhlZmNjODFmZjkwYWMyZWFjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2VsIERpbGxvbiA8am9lbC5kaWxsb25AY29kZXRoaW5rLmNv
LnVrPgpEYXRlOiBUaHUsIDcgSnVuIDIwMTIgMTY6MzU6NTIgKzAxMDAKU3ViamVjdDogW1BBVENI
XSBGb3Igc29tZSByZWFzb24sIG9uIFdpbmRvd3MgdGhlIGJ1aWxkIHN5c3RlbSBwaWNrcyB1cAog
dGhlIHdyb25nIG1haW4uY3BwICh0aGUgb25lIGZyb20gRHVtcFJlbmRlclRyZWUuCiBDaG9vc2lu
ZyBhIGRpZmZlcmVudCBuYW1lIGF2b2lkcyB0aGlzIHByb2JsZW0KCi0tLQogVG9vbHMvUXRUZXN0
QnJvd3Nlci9RdFRlc3RCcm93c2VyLnBybyB8ICAgIDIgKy0KIFRvb2xzL1F0VGVzdEJyb3dzZXIv
cXR0ZXN0YnJvd3Nlci5jcHAgIHwgIDMyMSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysKIDIgZmlsZXMgY2hhbmdlZCwgMzIyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBUb29scy9RdFRlc3RCcm93c2VyL3F0dGVzdGJyb3dzZXIuY3BwCgpk
aWZmIC0tZ2l0IGEvVG9vbHMvUXRUZXN0QnJvd3Nlci9RdFRlc3RCcm93c2VyLnBybyBiL1Rvb2xz
L1F0VGVzdEJyb3dzZXIvUXRUZXN0QnJvd3Nlci5wcm8KaW5kZXggNmQ4YTQxYi4uNzg3YjgwYyAx
MDA2NDQKLS0tIGEvVG9vbHMvUXRUZXN0QnJvd3Nlci9RdFRlc3RCcm93c2VyLnBybworKysgYi9U
b29scy9RdFRlc3RCcm93c2VyL1F0VGVzdEJyb3dzZXIucHJvCkBAIC0xNyw3ICsxNyw3IEBAIFNP
VVJDRVMgKz0gXAogICAgICQke1JPT1RfV0VCS0lUX0RJUn0vVG9vbHMvRHVtcFJlbmRlclRyZWUv
cXQvUXRJbml0aWFsaXplVGVzdEZvbnRzLmNwcCBcCiAgICAgbG9jYXRpb25lZGl0LmNwcCBcCiAg
ICAgbGF1bmNoZXJ3aW5kb3cuY3BwIFwKLSAgICBtYWluLmNwcCBcCisgICAgcXR0ZXN0YnJvd3Nl
ci5jcHAgXAogICAgIG1haW53aW5kb3cuY3BwIFwKICAgICB1cmxsb2FkZXIuY3BwIFwKICAgICB1
dGlscy5jcHAgXApkaWZmIC0tZ2l0IGEvVG9vbHMvUXRUZXN0QnJvd3Nlci9xdHRlc3Ricm93c2Vy
LmNwcCBiL1Rvb2xzL1F0VGVzdEJyb3dzZXIvcXR0ZXN0YnJvd3Nlci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzE1NzFhNAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L1F0VGVzdEJyb3dzZXIvcXR0ZXN0YnJvd3Nlci5jcHAKQEAgLTAsMCArMSwzMjEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDkgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR2lyaXNoIFJhbWFrcmlzaG5hbiA8Z2ly
aXNoQGZvcndhcmRiaWFzLmluPgorICogQ29weXJpZ2h0IChDKSAyMDA2IEdlb3JnZSBTdGFpa29z
IDxzdGFpa29zQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgRGlyayBNdWVsbGVyIDxt
dWVsbGVyQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgWmFjayBSdXNpbiA8emFja0Br
ZGUub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA2IFNpbW9uIEhhdXNtYW5uIDxoYXVzbWFubkBr
ZGUub3JnPgorICoKKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgIkR1
bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgiCisjaW5jbHVkZSAiUXRJbml0aWFsaXplVGVzdEZvbnRz
LmgiCisjaW5jbHVkZSAibGF1bmNoZXJ3aW5kb3cuaCIKKyNpbmNsdWRlICJ1cmxsb2FkZXIuaCIK
KworV2luZG93T3B0aW9ucyB3aW5kb3dPcHRpb25zOworCisjaW5jbHVkZSA8UUFwcGxpY2F0aW9u
PgorI2luY2x1ZGUgPFFEaXI+CisjaW5jbHVkZSA8UUZpbGU+CisjaW5jbHVkZSA8UUZpbGVJbmZv
PgorI2luY2x1ZGUgPFFGb250RGF0YWJhc2U+CisKK2ludCBsYXVuY2hlck1haW4oY29uc3QgUUFw
cGxpY2F0aW9uJiBhcHApCit7CisjaWZuZGVmIE5ERUJVRworICAgIGludCByZXRWYWwgPSBhcHAu
ZXhlYygpOworICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpnYXJiYWdlQ29sbGVjdG9yQ29s
bGVjdCgpOworICAgIFFXZWJTZXR0aW5nczo6Y2xlYXJNZW1vcnlDYWNoZXMoKTsKKyAgICByZXR1
cm4gcmV0VmFsOworI2Vsc2UKKyAgICByZXR1cm4gYXBwLmV4ZWMoKTsKKyNlbmRpZgorfQorCitj
bGFzcyBMYXVuY2hlckFwcGxpY2F0aW9uIDogcHVibGljIFFBcHBsaWNhdGlvbiB7CisgICAgUV9P
QkpFQ1QKKworcHVibGljOgorICAgIExhdW5jaGVyQXBwbGljYXRpb24oaW50JiBhcmdjLCBjaGFy
KiogYXJndik7CisgICAgUVN0cmluZ0xpc3QgdXJscygpIGNvbnN0IHsgcmV0dXJuIG1fdXJsczsg
fQorICAgIGJvb2wgaXNSb2JvdGl6ZWQoKSBjb25zdCB7IHJldHVybiBtX2lzUm9ib3RpemVkOyB9
CisgICAgaW50IHJvYm90VGltZW91dCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9ib3RUaW1lb3V0U2Vj
b25kczsgfQorICAgIGludCByb2JvdEV4dHJhVGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fcm9ib3RF
eHRyYVRpbWVTZWNvbmRzOyB9CisKK3ByaXZhdGU6CisgICAgdm9pZCBoYW5kbGVVc2VyT3B0aW9u
cygpOworICAgIHZvaWQgYXBwbHlEZWZhdWx0U2V0dGluZ3MoKTsKKworcHJpdmF0ZToKKyAgICBi
b29sIG1faXNSb2JvdGl6ZWQ7CisgICAgaW50IG1fcm9ib3RUaW1lb3V0U2Vjb25kczsKKyAgICBp
bnQgbV9yb2JvdEV4dHJhVGltZVNlY29uZHM7CisgICAgUVN0cmluZ0xpc3QgbV91cmxzOworfTsK
Kwordm9pZCBMYXVuY2hlckFwcGxpY2F0aW9uOjphcHBseURlZmF1bHRTZXR0aW5ncygpCit7Cisg
ICAgUVdlYlNldHRpbmdzOjpzZXRNYXhpbXVtUGFnZXNJbkNhY2hlKDQpOworCisgICAgUVdlYlNl
dHRpbmdzOjpzZXRPYmplY3RDYWNoZUNhcGFjaXRpZXMoKDE2KjEwMjQqMTAyNCkgLyA4LCAoMTYq
MTAyNCoxMDI0KSAvIDgsIDE2KjEwMjQqMTAyNCk7CisKKyAgICBRV2ViU2V0dGluZ3M6Omdsb2Jh
bFNldHRpbmdzKCktPnNldEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OlBsdWdpbnNFbmFibGVkLCB0
cnVlKTsKKyAgICBRV2ViU2V0dGluZ3M6Omdsb2JhbFNldHRpbmdzKCktPnNldEF0dHJpYnV0ZShR
V2ViU2V0dGluZ3M6OkRldmVsb3BlckV4dHJhc0VuYWJsZWQsIHRydWUpOworICAgIFFXZWJTZXR0
aW5nczo6ZW5hYmxlUGVyc2lzdGVudFN0b3JhZ2UoKTsKK30KKworTGF1bmNoZXJBcHBsaWNhdGlv
bjo6TGF1bmNoZXJBcHBsaWNhdGlvbihpbnQmIGFyZ2MsIGNoYXIqKiBhcmd2KQorICAgIDogUUFw
cGxpY2F0aW9uKGFyZ2MsIGFyZ3YsIFFBcHBsaWNhdGlvbjo6R3VpU2VydmVyKQorICAgICwgbV9p
c1JvYm90aXplZChmYWxzZSkKKyAgICAsIG1fcm9ib3RUaW1lb3V0U2Vjb25kcygwKQorICAgICwg
bV9yb2JvdEV4dHJhVGltZVNlY29uZHMoMCkKK3sKKyAgICAvLyBUbyBhbGxvdyBRV2ViSW5zcGVj
dG9yJ3MgY29uZmlndXJhdGlvbiBwZXJzaXN0ZW5jZQorICAgIHNldE9yZ2FuaXphdGlvbk5hbWUo
Ik5va2lhIik7CisgICAgc2V0QXBwbGljYXRpb25OYW1lKCJRdFRlc3RCcm93c2VyIik7CisgICAg
c2V0QXBwbGljYXRpb25WZXJzaW9uKCIwLjEiKTsKKworICAgIGFwcGx5RGVmYXVsdFNldHRpbmdz
KCk7CisKKyAgICBoYW5kbGVVc2VyT3B0aW9ucygpOworfQorCitzdGF0aWMgdm9pZCByZXF1aXJl
c0dyYXBoaWNzVmlldyhjb25zdCBRU3RyaW5nJiBvcHRpb24pCit7CisgICAgaWYgKHdpbmRvd09w
dGlvbnMudXNlR3JhcGhpY3NWaWV3KQorICAgICAgICByZXR1cm47CisgICAgYXBwUXVpdCgxLCBR
U3RyaW5nKCIlMSBvbmx5IHdvcmtzIGluIGNvbWJpbmF0aW9uIHdpdGggdGhlIC1ncmFwaGljc2Jh
c2VkIG9wdGlvbiIpLmFyZyhvcHRpb24pKTsKK30KKwordm9pZCBMYXVuY2hlckFwcGxpY2F0aW9u
OjpoYW5kbGVVc2VyT3B0aW9ucygpCit7CisgICAgUVN0cmluZ0xpc3QgYXJncyA9IGFyZ3VtZW50
cygpOworICAgIFFGaWxlSW5mbyBwcm9ncmFtKGFyZ3MuYXQoMCkpOworICAgIFFTdHJpbmcgcHJv
Z3JhbU5hbWUoIlF0VGVzdEJyb3dzZXIiKTsKKyAgICBpZiAocHJvZ3JhbS5leGlzdHMoKSkKKyAg
ICAgICAgcHJvZ3JhbU5hbWUgPSBwcm9ncmFtLmJhc2VOYW1lKCk7CisKKyAgICBRTGlzdDxRU3Ry
aW5nPiB1cGRhdGVNb2RlcyhlbnVtVG9LZXlzKFFHcmFwaGljc1ZpZXc6OnN0YXRpY01ldGFPYmpl
Y3QsCisgICAgICAgICAgICAiVmlld3BvcnRVcGRhdGVNb2RlIiwgIlZpZXdwb3J0VXBkYXRlIikp
OworCisgICAgaWYgKGFyZ3MuY29udGFpbnMoIi1oZWxwIikpIHsKKyAgICAgICAgcURlYnVnKCkg
PDwgIlVzYWdlOiIgPDwgcHJvZ3JhbU5hbWUudG9MYXRpbjEoKS5kYXRhKCkKKyAgICAgICAgICAg
ICA8PCAiWy1ncmFwaGljc2Jhc2VkXSIKKyAgICAgICAgICAgICA8PCAiWy1uby1jb21wb3NpdGlu
Z10iCisjaWYgZGVmaW5lZChRVF9DT05GSUdVUkVEX1dJVEhfT1BFTkdMKQorICAgICAgICAgICAg
IDw8ICJbLWdsLXZpZXdwb3J0XSIKKyAgICAgICAgICAgICA8PCAiWy13ZWJnbF0iCisjZW5kaWYK
KyAgICAgICAgICAgICA8PCBRU3RyaW5nKCJbLXZpZXdwb3J0LXVwZGF0ZS1tb2RlICUxXSIpLmFy
Zyhmb3JtYXRLZXlzKHVwZGF0ZU1vZGVzKSkudG9MYXRpbjEoKS5kYXRhKCkKKyNpZiAhZGVmaW5l
ZChRVF9OT19ORVRXT1JLRElTS0NBQ0hFKSAmJiAhZGVmaW5lZChRVF9OT19ERVNLVE9QU0VSVklD
RVMpCisgICAgICAgICAgICAgPDwgIlstZGlzay1jYWNoZV0iCisjZW5kaWYKKyAgICAgICAgICAg
ICA8PCAiWy1jYWNoZS13ZWJ2aWV3XSIKKyAgICAgICAgICAgICA8PCAiWy1tYXhpbWl6ZV0iCisg
ICAgICAgICAgICAgPDwgIlstc2hvdy1mcHNdIgorICAgICAgICAgICAgIDw8ICJbLXIgbGlzdF0i
CisgICAgICAgICAgICAgPDwgIlstcm9ib3QtdGltZW91dCBzZWNvbmRzXSIKKyAgICAgICAgICAg
ICA8PCAiWy1yb2JvdC1leHRyYS10aW1lIHNlY29uZHNdIgorICAgICAgICAgICAgIDw8ICJbLWlu
c3BlY3Rvci11cmwgbG9jYXRpb25dIgorICAgICAgICAgICAgIDw8ICJbLXRpbGVkLWJhY2tpbmct
c3RvcmVdIgorICAgICAgICAgICAgIDw8ICJbLXJlc2l6ZXMtdG8tY29udGVudHNdIgorICAgICAg
ICAgICAgIDw8ICJbLWxvY2FsLXN0b3JhZ2UtZW5hYmxlZF0iCisgICAgICAgICAgICAgPDwgIlst
bm8tZGlzay1jb29raWVzXSIKKyAgICAgICAgICAgICA8PCAiWy1vZmZsaW5lLXN0b3JhZ2UtZGF0
YWJhc2UtZW5hYmxlZF0iCisgICAgICAgICAgICAgPDwgIlstb2ZmbGluZS13ZWItYXBwbGljYXRp
b24tY2FjaGUtZW5hYmxlZF0iCisgICAgICAgICAgICAgPDwgIlstc2V0LW9mZmxpbmUtc3RvcmFn
ZS1kZWZhdWx0LXF1b3RhIG1heFNpemVdIgorICAgICAgICAgICAgIDw8ICJbLXVzZS10ZXN0LWZv
bnRzXSIKKyAgICAgICAgICAgICA8PCAiWy1wcmludC1sb2FkZWQtdXJsc10iCisgICAgICAgICAg
ICAgPDwgIlVSTHMiOworICAgICAgICBhcHBRdWl0KDApOworICAgIH0KKworICAgIGNvbnN0IGJv
b2wgZGVmYXVsdEZvckFuaW1hdGlvbnMgPSBhcmdzLmNvbnRhaW5zKCItZGVmYXVsdC1hbmltYXRp
b25zIik7CisgICAgaWYgKGFyZ3MuY29udGFpbnMoIi1ncmFwaGljc2Jhc2VkIikgfHwgZGVmYXVs
dEZvckFuaW1hdGlvbnMpCisgICAgICAgIHdpbmRvd09wdGlvbnMudXNlR3JhcGhpY3NWaWV3ID0g
dHJ1ZTsKKworICAgIGlmIChhcmdzLmNvbnRhaW5zKCItbm8tY29tcG9zaXRpbmciKSkgeworICAg
ICAgICByZXF1aXJlc0dyYXBoaWNzVmlldygiLW5vLWNvbXBvc2l0aW5nIik7CisgICAgICAgIHdp
bmRvd09wdGlvbnMudXNlQ29tcG9zaXRpbmcgPSBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoYXJn
cy5jb250YWlucygiLXNob3ctZnBzIikpIHsKKyAgICAgICAgcmVxdWlyZXNHcmFwaGljc1ZpZXco
Ii1zaG93LWZwcyIpOworICAgICAgICB3aW5kb3dPcHRpb25zLnNob3dGcmFtZVJhdGUgPSB0cnVl
OworICAgIH0KKworICAgIGlmIChhcmdzLmNvbnRhaW5zKCItZGlzay1jYWNoZSIpKSB7CisjaWYg
IWRlZmluZWQoUVRfTk9fTkVUV09SS0RJU0tDQUNIRSkgJiYgIWRlZmluZWQoUVRfTk9fREVTS1RP
UFNFUlZJQ0VTKQorICAgICAgICB3aW5kb3dPcHRpb25zLnVzZURpc2tDYWNoZSA9IHRydWU7Cisj
ZWxzZQorICAgIGFwcFF1aXQoMSwgIi1kaXNrLWNhY2hlIG9ubHkgd29ya3MgaWYgUU5ldHdvcmtE
aXNrQ2FjaGUgYW5kIFFEZXNrdG9wU2VydmljZXMgaXMgZW5hYmxlZCBpbiB5b3VyIFF0IGJ1aWxk
LiIpOworI2VuZGlmCisgICAgfQorCisgICAgaWYgKGFyZ3MuY29udGFpbnMoIi1jYWNoZS13ZWJ2
aWV3IikgfHwgZGVmYXVsdEZvckFuaW1hdGlvbnMpIHsKKyAgICAgICAgcmVxdWlyZXNHcmFwaGlj
c1ZpZXcoIi1jYWNoZS13ZWJ2aWV3Iik7CisgICAgICAgIHdpbmRvd09wdGlvbnMuY2FjaGVXZWJW
aWV3ID0gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAoYXJncy5jb250YWlucygiLXRpbGVkLWJhY2tp
bmctc3RvcmUiKSkgeworICAgICAgICByZXF1aXJlc0dyYXBoaWNzVmlldygiLXRpbGVkLWJhY2tp
bmctc3RvcmUiKTsKKyAgICAgICAgd2luZG93T3B0aW9ucy51c2VUaWxlZEJhY2tpbmdTdG9yZSA9
IHRydWU7CisgICAgfQorCisgICAgaWYgKGFyZ3MuY29udGFpbnMoIi1yZXNpemVzLXRvLWNvbnRl
bnRzIikpIHsKKyAgICAgICAgcmVxdWlyZXNHcmFwaGljc1ZpZXcoIi1yZXNpemVzLXRvLWNvbnRl
bnRzIik7CisgICAgICAgIHdpbmRvd09wdGlvbnMucmVzaXplc1RvQ29udGVudHMgPSB0cnVlOwor
ICAgIH0KKyAgICAKKyAgICBpZiAoYXJncy5jb250YWlucygiLWxvY2FsLXN0b3JhZ2UtZW5hYmxl
ZCIpKQorICAgICAgICB3aW5kb3dPcHRpb25zLnVzZUxvY2FsU3RvcmFnZSA9IHRydWU7CisKKyAg
ICBpZiAoYXJncy5jb250YWlucygiLW5vLWRpc2stY29va2llcyIpKQorICAgICAgICB3aW5kb3dP
cHRpb25zLnVzZURpc2tDb29raWVzID0gZmFsc2U7CisKKyAgICBpZiAoYXJncy5jb250YWlucygi
LW1heGltaXplIikpCisgICAgICAgIHdpbmRvd09wdGlvbnMuc3RhcnRNYXhpbWl6ZWQgPSB0cnVl
OworCisgICAgaWYgKGFyZ3MuY29udGFpbnMoIi1vZmZsaW5lLXN0b3JhZ2UtZGF0YWJhc2UtZW5h
YmxlZCIpKQorICAgICAgICB3aW5kb3dPcHRpb25zLnVzZU9mZmxpbmVTdG9yYWdlRGF0YWJhc2Ug
PSB0cnVlOworICAgICAgICAKKyAgICBpZiAoYXJncy5jb250YWlucygiLW9mZmxpbmUtd2ViLWFw
cGxpY2F0aW9uLWNhY2hlLWVuYWJsZWQiKSkgICAKKyAgICAgICAgd2luZG93T3B0aW9ucy51c2VP
ZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZSA9IHRydWU7CisgICAgCisgICAgaW50IHNldE9mZmxp
bmVTdG9yYWdlRGVmYXVsdFF1b3RhSW5kZXggPSBhcmdzLmluZGV4T2YoIi1zZXQtb2ZmbGluZS1z
dG9yYWdlLWRlZmF1bHQtcXVvdGEiKTsKKyAgICBpZiAoc2V0T2ZmbGluZVN0b3JhZ2VEZWZhdWx0
UXVvdGFJbmRleCAhPSAtMSkgeworICAgICAgICB1bnNpZ25lZCBpbnQgbWF4U2l6ZSA9IHRha2VP
cHRpb25WYWx1ZSgmYXJncywgc2V0T2ZmbGluZVN0b3JhZ2VEZWZhdWx0UXVvdGFJbmRleCkudG9V
SW50KCk7CisgICAgICAgIHdpbmRvd09wdGlvbnMub2ZmbGluZVN0b3JhZ2VEZWZhdWx0UXVvdGFT
aXplID0gbWF4U2l6ZTsKKyAgICB9ICAgCisgICAgCisgICAgaWYgKGRlZmF1bHRGb3JBbmltYXRp
b25zKQorICAgICAgICB3aW5kb3dPcHRpb25zLnZpZXdwb3J0VXBkYXRlTW9kZSA9IFFHcmFwaGlj
c1ZpZXc6OkJvdW5kaW5nUmVjdFZpZXdwb3J0VXBkYXRlOworCisgICAgUVN0cmluZyBhcmcxKCIt
dmlld3BvcnQtdXBkYXRlLW1vZGUiKTsKKyAgICBpbnQgbW9kZUluZGV4ID0gYXJncy5pbmRleE9m
KGFyZzEpOworICAgIGlmIChtb2RlSW5kZXggIT0gLTEpIHsKKyAgICAgICAgcmVxdWlyZXNHcmFw
aGljc1ZpZXcoYXJnMSk7CisKKyAgICAgICAgUVN0cmluZyBtb2RlID0gdGFrZU9wdGlvblZhbHVl
KCZhcmdzLCBtb2RlSW5kZXgpOworICAgICAgICBpZiAobW9kZS5pc0VtcHR5KCkpCisgICAgICAg
ICAgICBhcHBRdWl0KDEsIFFTdHJpbmcoIiUxIG5lZWRzIGEgdmFsdWUgb2Ygb25lIG9mIFslMl0i
KS5hcmcoYXJnMSkuYXJnKGZvcm1hdEtleXModXBkYXRlTW9kZXMpKSk7CisgICAgICAgIGludCBp
ZHggPSB1cGRhdGVNb2Rlcy5pbmRleE9mKG1vZGUpOworICAgICAgICBpZiAoaWR4ID09IC0xKQor
ICAgICAgICAgICAgYXBwUXVpdCgxLCBRU3RyaW5nKCIlMSB2YWx1ZSBoYXMgdG8gYmUgb25lIG9m
IFslMl0iKS5hcmcoYXJnMSkuYXJnKGZvcm1hdEtleXModXBkYXRlTW9kZXMpKSk7CisKKyAgICAg
ICAgd2luZG93T3B0aW9ucy52aWV3cG9ydFVwZGF0ZU1vZGUgPSBzdGF0aWNfY2FzdDxRR3JhcGhp
Y3NWaWV3OjpWaWV3cG9ydFVwZGF0ZU1vZGU+KGlkeCk7CisgICAgfQorI2lmZGVmIFFUX0NPTkZJ
R1VSRURfV0lUSF9PUEVOR0wKKyAgICBpZiAoYXJncy5jb250YWlucygiLWdsLXZpZXdwb3J0Iikg
fHwgZGVmYXVsdEZvckFuaW1hdGlvbnMpIHsKKyAgICAgICAgcmVxdWlyZXNHcmFwaGljc1ZpZXco
Ii1nbC12aWV3cG9ydCIpOworICAgICAgICB3aW5kb3dPcHRpb25zLnVzZVFHTFdpZGdldFZpZXdw
b3J0ID0gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAoYXJncy5jb250YWlucygiLXdlYmdsIikpIHsK
KyAgICAgICAgcmVxdWlyZXNHcmFwaGljc1ZpZXcoIi13ZWJnbCIpOworICAgICAgICB3aW5kb3dP
cHRpb25zLnVzZVdlYkdMID0gdHJ1ZTsKKyAgICB9CisjZW5kaWYKKworICAgIGlmIChhcmdzLmNv
bnRhaW5zKCItdXNlLXRlc3QtZm9udHMiKSkKKyAgICAgICAgV2ViS2l0Ojppbml0aWFsaXplVGVz
dEZvbnRzKCk7CisKKyAgICBpZiAoYXJncy5jb250YWlucygiLXByaW50LWxvYWRlZC11cmxzIikp
CisgICAgICAgIHdpbmRvd09wdGlvbnMucHJpbnRMb2FkZWRVcmxzID0gdHJ1ZTsKKworICAgIFFT
dHJpbmcgaW5zcGVjdG9yVXJsQXJnKCItaW5zcGVjdG9yLXVybCIpOworICAgIGludCBpbnNwZWN0
b3JVcmxJbmRleCA9IGFyZ3MuaW5kZXhPZihpbnNwZWN0b3JVcmxBcmcpOworICAgIGlmIChpbnNw
ZWN0b3JVcmxJbmRleCAhPSAtMSkKKyAgICAgICB3aW5kb3dPcHRpb25zLmluc3BlY3RvclVybCA9
IHRha2VPcHRpb25WYWx1ZSgmYXJncywgaW5zcGVjdG9yVXJsSW5kZXgpOworCisgICAgUVN0cmlu
ZyByZW1vdGVJbnNwZWN0b3JQb3J0QXJnKCItcmVtb3RlLWluc3BlY3Rvci1wb3J0Iik7CisgICAg
aW50IHJlbW90ZUluc3BlY3RvclBvcnRJbmRleCA9IGFyZ3MuaW5kZXhPZihyZW1vdGVJbnNwZWN0
b3JQb3J0QXJnKTsKKyAgICBpZiAocmVtb3RlSW5zcGVjdG9yUG9ydEluZGV4ICE9IC0xKQorICAg
ICAgICB3aW5kb3dPcHRpb25zLnJlbW90ZUluc3BlY3RvclBvcnQgPSB0YWtlT3B0aW9uVmFsdWUo
JmFyZ3MsIHJlbW90ZUluc3BlY3RvclBvcnRJbmRleCkudG9JbnQoKTsKKworICAgIGludCByb2Jv
dEluZGV4ID0gYXJncy5pbmRleE9mKCItciIpOworICAgIGlmIChyb2JvdEluZGV4ICE9IC0xKSB7
CisgICAgICAgIFFTdHJpbmcgbGlzdEZpbGUgPSB0YWtlT3B0aW9uVmFsdWUoJmFyZ3MsIHJvYm90
SW5kZXgpOworICAgICAgICBpZiAobGlzdEZpbGUuaXNFbXB0eSgpKQorICAgICAgICAgICAgYXBw
UXVpdCgxLCAiLXIgbmVlZHMgYSBsaXN0IGZpbGUgdG8gc3RhcnQgaW4gcm9ib3RpemVkIG1vZGUi
KTsKKyAgICAgICAgaWYgKCFRRmlsZTo6ZXhpc3RzKGxpc3RGaWxlKSkKKyAgICAgICAgICAgIGFw
cFF1aXQoMSwgIlRoZSBsaXN0IGZpbGUgc3VwcGxpZWQgdG8gLXIgZG9lcyBub3QgZXhpc3QuIik7
CisKKyAgICAgICAgbV9pc1JvYm90aXplZCA9IHRydWU7CisgICAgICAgIG1fdXJscyA9IFFTdHJp
bmdMaXN0KGxpc3RGaWxlKTsKKyAgICB9IGVsc2UgeworICAgICAgICBpbnQgbGFzdEFyZyA9IGFy
Z3MubGFzdEluZGV4T2YoUVJlZ0V4cCgiXi0uKiIpKTsKKyAgICAgICAgbV91cmxzID0gKGxhc3RB
cmcgIT0gLTEpID8gYXJncy5taWQoKytsYXN0QXJnKSA6IGFyZ3MubWlkKDEpOworICAgIH0KKwor
ICAgIGludCByb2JvdFRpbWVvdXRJbmRleCA9IGFyZ3MuaW5kZXhPZigiLXJvYm90LXRpbWVvdXQi
KTsKKyAgICBpZiAocm9ib3RUaW1lb3V0SW5kZXggIT0gLTEpCisgICAgICAgIG1fcm9ib3RUaW1l
b3V0U2Vjb25kcyA9IHRha2VPcHRpb25WYWx1ZSgmYXJncywgcm9ib3RUaW1lb3V0SW5kZXgpLnRv
SW50KCk7CisKKyAgICBpbnQgcm9ib3RFeHRyYVRpbWVJbmRleCA9IGFyZ3MuaW5kZXhPZigiLXJv
Ym90LWV4dHJhLXRpbWUiKTsKKyAgICBpZiAocm9ib3RFeHRyYVRpbWVJbmRleCAhPSAtMSkKKyAg
ICAgICAgbV9yb2JvdEV4dHJhVGltZVNlY29uZHMgPSB0YWtlT3B0aW9uVmFsdWUoJmFyZ3MsIHJv
Ym90RXh0cmFUaW1lSW5kZXgpLnRvSW50KCk7Cit9CisKKworaW50IG1haW4oaW50IGFyZ2MsIGNo
YXIgKiphcmd2KQoreworICAgIExhdW5jaGVyQXBwbGljYXRpb24gYXBwKGFyZ2MsIGFyZ3YpOwor
CisgICAgaWYgKGFwcC5pc1JvYm90aXplZCgpKSB7CisgICAgICAgIExhdW5jaGVyV2luZG93KiB3
aW5kb3cgPSBuZXcgTGF1bmNoZXJXaW5kb3coKTsKKyAgICAgICAgVXJsTG9hZGVyIGxvYWRlcih3
aW5kb3ctPnBhZ2UoKS0+bWFpbkZyYW1lKCksIGFwcC51cmxzKCkuYXQoMCksIGFwcC5yb2JvdFRp
bWVvdXQoKSwgYXBwLnJvYm90RXh0cmFUaW1lKCkpOworICAgICAgICBsb2FkZXIubG9hZE5leHQo
KTsKKyAgICAgICAgd2luZG93LT5zaG93KCk7CisgICAgICAgIHJldHVybiBsYXVuY2hlck1haW4o
YXBwKTsKKyAgICB9CisKKyAgICBRU3RyaW5nTGlzdCB1cmxzID0gYXBwLnVybHMoKTsKKworICAg
IGlmICh1cmxzLmlzRW1wdHkoKSkgeworICAgICAgICBRU3RyaW5nIGRlZmF1bHRJbmRleEZpbGUg
PSBRU3RyaW5nKCIlMS8lMiIpLmFyZyhRRGlyOjpob21lUGF0aCgpKS5hcmcoUUxhdGluMVN0cmlu
ZygiaW5kZXguaHRtbCIpKTsKKyAgICAgICAgaWYgKFFGaWxlKGRlZmF1bHRJbmRleEZpbGUpLmV4
aXN0cygpKQorICAgICAgICAgICAgdXJscy5hcHBlbmQoUVN0cmluZygiZmlsZTovLyIpICsgZGVm
YXVsdEluZGV4RmlsZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHVybHMuYXBwZW5kKCIi
KTsKKyAgICB9CisKKyAgICBMYXVuY2hlcldpbmRvdyogd2luZG93ID0gMDsKKyAgICBmb3JlYWNo
IChRU3RyaW5nIHVybCwgdXJscykgeworICAgICAgICBMYXVuY2hlcldpbmRvdyogbmV3V2luZG93
OworICAgICAgICBpZiAoIXdpbmRvdykKKyAgICAgICAgICAgIG5ld1dpbmRvdyA9IHdpbmRvdyA9
IG5ldyBMYXVuY2hlcldpbmRvdygmd2luZG93T3B0aW9ucyk7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIG5ld1dpbmRvdyA9IHdpbmRvdy0+bmV3V2luZG93KCk7CisKKyAgICAgICAgbmV3V2lu
ZG93LT5sb2FkKHVybCk7CisgICAgfQorCisgICAgd2luZG93LT5zaG93KCk7CisgICAgcmV0dXJu
IGxhdW5jaGVyTWFpbihhcHApOworfQorCisjaW5jbHVkZSAicXR0ZXN0YnJvd3Nlci5tb2MiCmRp
ZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggMTRmNzMwMi4uYzM0NmEzMCAx
MDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDggQEAKKzIw
MTItMDUtMTIgIEpvZWwgRGlsbG9uICA8am9lbC5kaWxsb25AY29kZXRoaW5rLmNvLnVrPgorICAg
ICAgICAKKyAgICAgICAgUmVuYW1lIG1haW4uY3BwIGluIFF0VGVzdEJyb3dzZXIgYmVjYXVzZSBv
biBXaW5kb3dzCisgICAgICAgIGl0IGNvbmZsaWN0cyB3aXRoIG1haW4uY3BwIGZyb20gRHVtcFJl
bmRlclRyZWUuCisgCiAyMDEyLTA2LTA3ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBSZWR1Y2UgTm9kZSBvYmplY3Qgc2l6ZSBmcm9tIDcyIGJ5dGUgdG8g
NjQgYnl0ZQpkaWZmIC0tZ2l0IGEvVG9vbHMvUXRUZXN0QnJvd3Nlci9tYWluLmNwcCBiL1Rvb2xz
L1F0VGVzdEJyb3dzZXIvbWFpbi5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFi
NGJjNzAuLjAwMDAwMDAKLS0tIGEvVG9vbHMvUXRUZXN0QnJvd3Nlci9tYWluLmNwcAorKysgL2Rl
di9udWxsCkBAIC0xLDMyMSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotICogQ29weXJpZ2h0IChD
KSAyMDA5IEdpcmlzaCBSYW1ha3Jpc2huYW4gPGdpcmlzaEBmb3J3YXJkYmlhcy5pbj4KLSAqIENv
cHlyaWdodCAoQykgMjAwNiBHZW9yZ2UgU3RhaWtvcyA8c3RhaWtvc0BrZGUub3JnPgotICogQ29w
eXJpZ2h0IChDKSAyMDA2IERpcmsgTXVlbGxlciA8bXVlbGxlckBrZGUub3JnPgotLSAKMS43LjEw
Lm1zeXNnaXQuMQoK
</data>
<flag name="review"
          id="154516"
          type_id="1"
          status="+"
          setter="hausmann"
    />
          </attachment>
      

    </bug>

</bugzilla>