<?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>122069</bug_id>
          
          <creation_ts>2013-09-28 17:17:22 -0700</creation_ts>
          <short_desc>WinLauncher should be able to open cross-domain links</short_desc>
          <delta_ts>2013-10-01 13:18:44 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows 7</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>0</everconfirmed>
          <reporter name="Alex Christensen">alex.christensen</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>934323</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">alex.christensen</who>
    <bug_when>2013-09-28 17:17:22 -0700</bug_when>
    <thetext>When clicking on a cross-domain link that would open another tab, WinLauncher does nothing because createWebViewWithRequest hasn&apos;t been implemented.  Also, right clicking on a link and clicking &quot;Open Link in new Window&quot; does nothing for the same reason.  WebKit isn&apos;t even giving createWebViewWithRequest the URL.  Surely there&apos;s somebody that has opened a cross-domain link with WebKit on Windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>934324</commentid>
    <comment_count>1</comment_count>
      <attachid>212909</attachid>
    <who name="Alex Christensen">alex.christensen</who>
    <bug_when>2013-09-28 17:29:05 -0700</bug_when>
    <thetext>Created attachment 212909
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>934325</commentid>
    <comment_count>2</comment_count>
      <attachid>212910</attachid>
    <who name="Alex Christensen">alex.christensen</who>
    <bug_when>2013-09-28 17:32:55 -0700</bug_when>
    <thetext>Created attachment 212910
patch

The previous patch had a header inclusion I&apos;m not using any more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>934326</commentid>
    <comment_count>3</comment_count>
    <who name="Alex Christensen">alex.christensen</who>
    <bug_when>2013-09-28 17:52:48 -0700</bug_when>
    <thetext>I&apos;m not sure about memory management on the WebMutableURLRequest I make.  Should I use some kind of smart pointer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>934328</commentid>
    <comment_count>4</comment_count>
      <attachid>212911</attachid>
    <who name="Alex Christensen">alex.christensen</who>
    <bug_when>2013-09-28 21:10:39 -0700</bug_when>
    <thetext>Created attachment 212911
patch

There we go.  Fixed the memory leak.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>934470</commentid>
    <comment_count>5</comment_count>
      <attachid>212911</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-09-30 00:03:41 -0700</bug_when>
    <thetext>Comment on attachment 212911
patch

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

&gt; Source/WebKit/win/WebCoreSupport/WebChromeClient.cpp:204
&gt; +    request.adoptRef(WebMutableURLRequest::createInstance(ResourceRequest(navigationAction.url())));

Can this not be written in our usual one-line style?

&gt; Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp:542
&gt; +    request.adoptRef(WebMutableURLRequest::createInstance(ResourceRequest(navigationAction.url())));

Ditto:

&gt; Tools/WinLauncher/PrintWebUIDelegate.cpp:47
&gt; +    DWORD length = GetModuleFileName(GetModuleHandle(0), buffer, ARRAYSIZE(buffer));

Please prefix WinAPI calls with &apos;::&apos;

&gt; Tools/WinLauncher/PrintWebUIDelegate.cpp:51
&gt; +    BSTR url;

If you use a _bstr_t it will clean up after itself.

&gt; Tools/WinLauncher/PrintWebUIDelegate.cpp:63
&gt; +        return E_FAIL;

This looks okay, but why do we spawn a new process to view a web page? We don&apos;t spawn a new WinLauncher to show the Web Inspector, can&apos;t we work the same way here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>934595</commentid>
    <comment_count>6</comment_count>
    <who name="Alex Christensen">alex.christensen</who>
    <bug_when>2013-09-30 08:19:53 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 212911 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=212911&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/win/WebCoreSupport/WebChromeClient.cpp:204
&gt; &gt; +    request.adoptRef(WebMutableURLRequest::createInstance(ResourceRequest(navigationAction.url())));
&gt; 
&gt; Can this not be written in our usual one-line style?
COMPtr.h doesn&apos;t seem to have an adoptRef function.  I could write one if it doesn&apos;t already exist somewhere else.

&gt; This looks okay, but why do we spawn a new process to view a web page? We don&apos;t spawn a new WinLauncher to show the Web Inspector, can&apos;t we work the same way here?
I tried a single-process implementation based on the one in DumpRenderTree, but it was much more complicated, and I had problems where closing child windows killed the whole process.  Maybe this can be worked around, but this is the simplest solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>934618</commentid>
    <comment_count>7</comment_count>
    <who name="Alex Christensen">alex.christensen</who>
    <bug_when>2013-09-30 08:55:22 -0700</bug_when>
    <thetext>&gt; We don&apos;t spawn a new WinLauncher to show the Web Inspector, can&apos;t we work the same way here?
This would also involve refactoring a lot of code to remove almost all global variables in WinLauncher, create an instance manager, etc.  I don&apos;t think this would be worth it right now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935126</commentid>
    <comment_count>8</comment_count>
      <attachid>213109</attachid>
    <who name="Alex Christensen">alex.christensen</who>
    <bug_when>2013-10-01 12:28:03 -0700</bug_when>
    <thetext>Created attachment 213109
patch

After this patch gets in, we can remove all uses of adoptRef from COMPtr.h in favor of my adoptCOM function.  It would be less confusing to not have a function named adoptRef operating on two different types of smart pointers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935127</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-01 12:30:31 -0700</bug_when>
    <thetext>Attachment 213109 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/platform/win/COMPtr.h&apos;, u&apos;Source/WebKit/win/ChangeLog&apos;, u&apos;Source/WebKit/win/WebCoreSupport/WebChromeClient.cpp&apos;, u&apos;Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp&apos;, u&apos;Tools/ChangeLog&apos;, u&apos;Tools/WinLauncher/PrintWebUIDelegate.cpp&apos;, u&apos;Tools/WinLauncher/PrintWebUIDelegate.h&apos;]&quot; exit_code: 1
Tools/WinLauncher/PrintWebUIDelegate.cpp:52:  Tab found; better to use spaces  [whitespace/tab] [1]
Total errors found: 1 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935130</commentid>
    <comment_count>10</comment_count>
      <attachid>213110</attachid>
    <who name="Alex Christensen">alex.christensen</who>
    <bug_when>2013-10-01 12:32:03 -0700</bug_when>
    <thetext>Created attachment 213110
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935144</commentid>
    <comment_count>11</comment_count>
      <attachid>213110</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-10-01 12:47:55 -0700</bug_when>
    <thetext>Comment on attachment 213110
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935147</commentid>
    <comment_count>12</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-10-01 12:50:06 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Created an attachment (id=213109) [details]
&gt; patch
&gt; 
&gt; After this patch gets in, we can remove all uses of adoptRef from COMPtr.h in favor of my adoptCOM function.  It would be less confusing to not have a function named adoptRef operating on two different types of smart pointers.

Yes -- let&apos;s do this as a separate patch, and CC andersca as well please.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935168</commentid>
    <comment_count>13</comment_count>
      <attachid>213110</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-01 13:18:42 -0700</bug_when>
    <thetext>Comment on attachment 213110
patch

Clearing flags on attachment: 213110

Committed r156729: &lt;http://trac.webkit.org/changeset/156729&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935169</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-01 13:18:44 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>212909</attachid>
            <date>2013-09-28 17:29:05 -0700</date>
            <delta_ts>2013-09-28 17:32:55 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>6120</size>
            <attacher name="Alex Christensen">alex.christensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJj
ZS9XZWJLaXQvd2luL0NoYW5nZUxvZwkocmV2aXNpb24gMTU2NjEyKQ0KKysrIFNvdXJjZS9XZWJL
aXQvd2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQ0KQEAgLTEsMyArMSwxNiBAQA0KKzIwMTMt
MDktMjggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4NCisNCisg
ICAgICAgIEltcGxlbWVudGVkIGNyZWF0ZVdlYlZpZXdXaXRoUmVxdWVzdCBpbiBXaW5MYXVuY2hl
ci4NCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjIw
NjkNCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOg0KKyAgICAgICAgKFdlYkNocm9t
ZUNsaWVudDo6Y3JlYXRlV2luZG93KToNCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwOg0KKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaENyZWF0ZVBhZ2UpOg0KKyAgICAgICAgUGFzcyByZXF1ZXN0IHVybCBmcm9tIHRoZSBOYXZp
Z2F0aW9uQWN0aW9uIHRvIGNyZWF0ZVdlYlZpZXdXaXRoUmVxdWVzdC4NCisNCiAyMDEzLTA5LTI3
ICBSb2dlciBGb25nICA8cm9nZXJfZm9uZ0BhcHBsZS5jb20+DQogDQogICAgICAgICBbV2luZG93
c10gVW5yZXZpZXdlZCBidWlsZCBmaXggZm9sbG93aW5nIHIxNTY1NjAuDQpJbmRleDogU291cmNl
L1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcA0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQ0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAJKHJldmlzaW9uIDE1NjYwMikNCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtMTk0LDE0ICsxOTQsMTMg
QEANCiAgICAgcmV0dXJuIENPTVB0cjxJUHJvcGVydHlCYWc+KEFkb3B0Q09NLCBDT01Qcm9wZXJ0
eUJhZzxDT01WYXJpYW50Pjo6YWRvcHQobWFwKSk7DQogfQ0KIA0KLVBhZ2UqIFdlYkNocm9tZUNs
aWVudDo6Y3JlYXRlV2luZG93KEZyYW1lKiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0
IFdpbmRvd0ZlYXR1cmVzJiBmZWF0dXJlcywgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYpDQorUGFn
ZSogV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVXaW5kb3coRnJhbWUqLCBjb25zdCBGcmFtZUxvYWRS
ZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmIGZlYXR1cmVzLCBjb25zdCBOYXZpZ2F0aW9u
QWN0aW9uJiBuYXZpZ2F0aW9uQWN0aW9uKQ0KIHsNCiAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRl
PiBkZWxlZ2F0ZSA9IHVpRGVsZWdhdGUoKTsNCiAgICAgaWYgKCFkZWxlZ2F0ZSkNCiAgICAgICAg
IHJldHVybiAwOw0KIA0KLSAgICAvLyBKdXN0IGNyZWF0ZSBhIGJsYW5rIHJlcXVlc3QgYmVjYXVz
ZSBjcmVhdGVXaW5kb3coKSBpcyBvbmx5IHJlcXVpcmVkIHRvIGNyZWF0ZSB3aW5kb3cgYnV0IG5v
dCB0byBsb2FkIFVSTC4NCi0gICAgQ09NUHRyPElXZWJNdXRhYmxlVVJMUmVxdWVzdD4gcmVxdWVz
dChBZG9wdENPTSwgV2ViTXV0YWJsZVVSTFJlcXVlc3Q6OmNyZWF0ZUluc3RhbmNlKCkpOw0KKyAg
ICBDT01QdHI8SVdlYk11dGFibGVVUkxSZXF1ZXN0PiByZXF1ZXN0KEFkb3B0Q09NLCBXZWJNdXRh
YmxlVVJMUmVxdWVzdDo6Y3JlYXRlSW5zdGFuY2UoUmVzb3VyY2VSZXF1ZXN0KG5hdmlnYXRpb25B
Y3Rpb24udXJsKCkpKSk7DQogDQogICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZVByaXZhdGUyPiBk
ZWxlZ2F0ZVByaXZhdGUoUXVlcnksIGRlbGVnYXRlKTsNCiAgICAgaWYgKGRlbGVnYXRlUHJpdmF0
ZSkgew0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAkocmV2aXNpb24gMTU2NjAyKQ0KKysrIFNv
dXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAko
d29ya2luZyBjb3B5KQ0KQEAgLTUyOSw3ICs1MjksNyBAQA0KICAgICB9DQogfQ0KIA0KLUZyYW1l
KiBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0IE5hdmlnYXRp
b25BY3Rpb24mKQ0KK0ZyYW1lKiBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hDcmVhdGVQ
YWdlKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIG5hdmlnYXRpb25BY3Rpb24pDQogew0KICAgICBX
ZWJWaWV3KiB3ZWJWaWV3ID0gbV93ZWJGcmFtZS0+d2ViVmlldygpOw0KIA0KQEAgLTUzOCw3ICs1
MzgsOCBAQA0KICAgICAgICAgcmV0dXJuIDA7DQogDQogICAgIENPTVB0cjxJV2ViVmlldz4gbmV3
V2ViVmlldzsNCi0gICAgaWYgKEZBSUxFRCh1aS0+Y3JlYXRlV2ViVmlld1dpdGhSZXF1ZXN0KHdl
YlZpZXcsIDAsICZuZXdXZWJWaWV3KSkpDQorICAgIFdlYk11dGFibGVVUkxSZXF1ZXN0KiByZXF1
ZXN0ID0gV2ViTXV0YWJsZVVSTFJlcXVlc3Q6OmNyZWF0ZUluc3RhbmNlKFJlc291cmNlUmVxdWVz
dChuYXZpZ2F0aW9uQWN0aW9uLnVybCgpKSk7DQorICAgIGlmIChGQUlMRUQodWktPmNyZWF0ZVdl
YlZpZXdXaXRoUmVxdWVzdCh3ZWJWaWV3LCByZXF1ZXN0LCAmbmV3V2ViVmlldykpIHx8ICFuZXdX
ZWJWaWV3KQ0KICAgICAgICAgcmV0dXJuIDA7DQogDQogICAgIENPTVB0cjxJV2ViRnJhbWU+IG1h
aW5GcmFtZTsNCkluZGV4OiBUb29scy9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE1NjYxMikNCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkNCkBAIC0xLDMgKzEsMTUgQEANCisyMDEzLTA5LTI4ICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+DQorDQorICAgICAgICBJbXBsZW1lbnRlZCBjcmVhdGVX
ZWJWaWV3V2l0aFJlcXVlc3QgaW4gV2luTGF1bmNoZXIuDQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyMDY5DQorDQorICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAgICAgICogV2luTGF1bmNoZXIvUHJpbnRXZWJVSURl
bGVnYXRlLmNwcDoNCisgICAgICAgIChQcmludFdlYlVJRGVsZWdhdGU6OmNyZWF0ZVdlYlZpZXdX
aXRoUmVxdWVzdCk6IEFkZGVkLg0KKyAgICAgICAgKiBXaW5MYXVuY2hlci9QcmludFdlYlVJRGVs
ZWdhdGUuaDoNCisgICAgICAgIFJlbW92ZWQgY3JlYXRlV2ViVmlld1dpdGhSZXF1ZXN0IHN0dWIu
DQorDQogMjAxMy0wOS0yOCAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPg0KIA0KICAgICAg
ICAgRml4IHNvbWUgZmFpbHVyZXMgd2l0aCBuZXdlciB2ZXJzaW9ucyBvZiBjbGFuZy4NCkluZGV4
OiBUb29scy9XaW5MYXVuY2hlci9QcmludFdlYlVJRGVsZWdhdGUuY3BwDQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQot
LS0gVG9vbHMvV2luTGF1bmNoZXIvUHJpbnRXZWJVSURlbGVnYXRlLmNwcAkocmV2aXNpb24gMTU2
NjAyKQ0KKysrIFRvb2xzL1dpbkxhdW5jaGVyL1ByaW50V2ViVUlEZWxlZ2F0ZS5jcHAJKHdvcmtp
bmcgY29weSkNCkBAIC0yNiw2ICsyNiw3IEBADQogDQogI2luY2x1ZGUgInN0ZGFmeC5oIg0KICNp
bmNsdWRlICJQcmludFdlYlVJRGVsZWdhdGUuaCINCisjaW5jbHVkZSAiV2luTGF1bmNoZXIuaCIN
CiANCiAjaW5jbHVkZSA8V2ViS2l0L1dlYktpdENPTUFQSS5oPg0KICNpbmNsdWRlIDxjb21pcC5o
Pg0KQEAgLTM1LDggKzM2LDM3IEBADQogI2luY2x1ZGUgPHNobHdhcGkuaD4NCiAjaW5jbHVkZSA8
d2luaW5ldC5oPg0KIA0KK2V4dGVybiBXaW5MYXVuY2hlcldlYkhvc3QqIGdXZWJIb3N0Ow0KKw0K
IHN0YXRpYyBjb25zdCBpbnQgTUFSR0lOID0gMjA7DQogDQorSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBQcmludFdlYlVJRGVsZWdhdGU6OmNyZWF0ZVdlYlZpZXdXaXRoUmVxdWVzdChJV2ViVmll
dyosIElXZWJVUkxSZXF1ZXN0KiByZXF1ZXN0LCBJV2ViVmlldyoqKQ0KK3sNCisgICAgaWYgKCFy
ZXF1ZXN0KQ0KKyAgICAgICAgcmV0dXJuIEVfUE9JTlRFUjsNCisNCisgICAgVENIQVIgYnVmZmVy
W01BWF9QQVRIXTsNCisgICAgRFdPUkQgbGVuZ3RoID0gR2V0TW9kdWxlRmlsZU5hbWUoR2V0TW9k
dWxlSGFuZGxlKDApLCBidWZmZXIsIEFSUkFZU0laRShidWZmZXIpKTsNCisgICAgaWYgKCFsZW5n
dGgpDQorICAgICAgICByZXR1cm4gRV9GQUlMOw0KKw0KKyAgICBCU1RSIHVybDsNCisgICAgSFJF
U1VMVCBociA9IHJlcXVlc3QtPlVSTCgmdXJsKTsNCisgICAgaWYgKEZBSUxFRChocikpDQorICAg
ICAgICByZXR1cm4gRV9GQUlMOw0KKw0KKyAgICBzdGQ6OndzdHJpbmcgY29tbWFuZCA9IHN0ZDo6
d3N0cmluZyhMIlwiIikgKyBidWZmZXIgKyBMIlwiICIgKyAoY29uc3Qgd2NoYXJfdCopdXJsOw0K
KyAgICBTeXNGcmVlU3RyaW5nKHVybCk7DQorDQorICAgIFBST0NFU1NfSU5GT1JNQVRJT04gcHJv
Y2Vzc0luZm9ybWF0aW9uOw0KKyAgICBTVEFSVFVQSU5GT1cgc3RhcnR1cEluZm87DQorICAgIG1l
bXNldCgmc3RhcnR1cEluZm8sIDAsIHNpemVvZihzdGFydHVwSW5mbykpOw0KKyAgICBpZiAoIUNy
ZWF0ZVByb2Nlc3NXKDAsIChMUFdTVFIpY29tbWFuZC5jX3N0cigpLCAwLCAwLCAwLCAwLCAwLCAw
LCAmc3RhcnR1cEluZm8sICZwcm9jZXNzSW5mb3JtYXRpb24pKQ0KKyAgICAgICAgcmV0dXJuIEVf
RkFJTDsNCisNCisgICAgcmV0dXJuIFNfT0s7DQorfQ0KKw0KIEhSRVNVTFQgUHJpbnRXZWJVSURl
bGVnYXRlOjpRdWVyeUludGVyZmFjZShSRUZJSUQgcmlpZCwgdm9pZCoqIHBwdk9iamVjdCkNCiB7
DQogICAgICpwcHZPYmplY3QgPSAwOw0KSW5kZXg6IFRvb2xzL1dpbkxhdW5jaGVyL1ByaW50V2Vi
VUlEZWxlZ2F0ZS5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gVG9vbHMvV2luTGF1bmNoZXIvUHJpbnRXZWJV
SURlbGVnYXRlLmgJKHJldmlzaW9uIDE1NjYwMikNCisrKyBUb29scy9XaW5MYXVuY2hlci9Qcmlu
dFdlYlVJRGVsZWdhdGUuaAkod29ya2luZyBjb3B5KQ0KQEAgLTM4LDcgKzM4LDcgQEANCiAgICAg
dmlydHVhbCBVTE9ORyBTVERNRVRIT0RDQUxMVFlQRSBBZGRSZWYodm9pZCk7DQogICAgIHZpcnR1
YWwgVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgUmVsZWFzZSh2b2lkKTsNCiANCi0gICAgdmlydHVh
bCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGNyZWF0ZVdlYlZpZXdXaXRoUmVxdWVzdChJV2Vi
VmlldyosIElXZWJVUkxSZXF1ZXN0KiwgSVdlYlZpZXcqKikgeyByZXR1cm4gRV9OT1RJTVBMOyB9
DQorICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBjcmVhdGVXZWJWaWV3V2l0
aFJlcXVlc3QoSVdlYlZpZXcqLCBJV2ViVVJMUmVxdWVzdCosIElXZWJWaWV3KiopOw0KICAgICB2
aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgd2ViVmlld1Nob3coSVdlYlZpZXcqKSB7
IHJldHVybiBFX05PVElNUEw7IH0NCiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExU
WVBFIHdlYlZpZXdDbG9zZShJV2ViVmlldyopIHsgcmV0dXJuIEVfTk9USU1QTDsgfQ0KICAgICB2
aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgd2ViVmlld0ZvY3VzKElXZWJWaWV3Kikg
eyByZXR1cm4gRV9OT1RJTVBMOyB9
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>212910</attachid>
            <date>2013-09-28 17:32:55 -0700</date>
            <delta_ts>2013-09-28 21:10:39 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>5870</size>
            <attacher name="Alex Christensen">alex.christensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJj
ZS9XZWJLaXQvd2luL0NoYW5nZUxvZwkocmV2aXNpb24gMTU2NjEyKQ0KKysrIFNvdXJjZS9XZWJL
aXQvd2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQ0KQEAgLTEsMyArMSwxNiBAQA0KKzIwMTMt
MDktMjggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4NCisNCisg
ICAgICAgIEltcGxlbWVudGVkIGNyZWF0ZVdlYlZpZXdXaXRoUmVxdWVzdCBpbiBXaW5MYXVuY2hl
ci4NCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjIw
NjkNCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOg0KKyAgICAgICAgKFdlYkNocm9t
ZUNsaWVudDo6Y3JlYXRlV2luZG93KToNCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwOg0KKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaENyZWF0ZVBhZ2UpOg0KKyAgICAgICAgUGFzcyByZXF1ZXN0IHVybCBmcm9tIHRoZSBOYXZp
Z2F0aW9uQWN0aW9uIHRvIGNyZWF0ZVdlYlZpZXdXaXRoUmVxdWVzdC4NCisNCiAyMDEzLTA5LTI3
ICBSb2dlciBGb25nICA8cm9nZXJfZm9uZ0BhcHBsZS5jb20+DQogDQogICAgICAgICBbV2luZG93
c10gVW5yZXZpZXdlZCBidWlsZCBmaXggZm9sbG93aW5nIHIxNTY1NjAuDQpJbmRleDogU291cmNl
L1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcA0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQ0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAJKHJldmlzaW9uIDE1NjYwMikNCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtMTk0LDE0ICsxOTQsMTMg
QEANCiAgICAgcmV0dXJuIENPTVB0cjxJUHJvcGVydHlCYWc+KEFkb3B0Q09NLCBDT01Qcm9wZXJ0
eUJhZzxDT01WYXJpYW50Pjo6YWRvcHQobWFwKSk7DQogfQ0KIA0KLVBhZ2UqIFdlYkNocm9tZUNs
aWVudDo6Y3JlYXRlV2luZG93KEZyYW1lKiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0
IFdpbmRvd0ZlYXR1cmVzJiBmZWF0dXJlcywgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYpDQorUGFn
ZSogV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVXaW5kb3coRnJhbWUqLCBjb25zdCBGcmFtZUxvYWRS
ZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmIGZlYXR1cmVzLCBjb25zdCBOYXZpZ2F0aW9u
QWN0aW9uJiBuYXZpZ2F0aW9uQWN0aW9uKQ0KIHsNCiAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRl
PiBkZWxlZ2F0ZSA9IHVpRGVsZWdhdGUoKTsNCiAgICAgaWYgKCFkZWxlZ2F0ZSkNCiAgICAgICAg
IHJldHVybiAwOw0KIA0KLSAgICAvLyBKdXN0IGNyZWF0ZSBhIGJsYW5rIHJlcXVlc3QgYmVjYXVz
ZSBjcmVhdGVXaW5kb3coKSBpcyBvbmx5IHJlcXVpcmVkIHRvIGNyZWF0ZSB3aW5kb3cgYnV0IG5v
dCB0byBsb2FkIFVSTC4NCi0gICAgQ09NUHRyPElXZWJNdXRhYmxlVVJMUmVxdWVzdD4gcmVxdWVz
dChBZG9wdENPTSwgV2ViTXV0YWJsZVVSTFJlcXVlc3Q6OmNyZWF0ZUluc3RhbmNlKCkpOw0KKyAg
ICBDT01QdHI8SVdlYk11dGFibGVVUkxSZXF1ZXN0PiByZXF1ZXN0KEFkb3B0Q09NLCBXZWJNdXRh
YmxlVVJMUmVxdWVzdDo6Y3JlYXRlSW5zdGFuY2UoUmVzb3VyY2VSZXF1ZXN0KG5hdmlnYXRpb25B
Y3Rpb24udXJsKCkpKSk7DQogDQogICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZVByaXZhdGUyPiBk
ZWxlZ2F0ZVByaXZhdGUoUXVlcnksIGRlbGVnYXRlKTsNCiAgICAgaWYgKGRlbGVnYXRlUHJpdmF0
ZSkgew0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAkocmV2aXNpb24gMTU2NjAyKQ0KKysrIFNv
dXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAko
d29ya2luZyBjb3B5KQ0KQEAgLTUyOSw3ICs1MjksNyBAQA0KICAgICB9DQogfQ0KIA0KLUZyYW1l
KiBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0IE5hdmlnYXRp
b25BY3Rpb24mKQ0KK0ZyYW1lKiBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hDcmVhdGVQ
YWdlKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIG5hdmlnYXRpb25BY3Rpb24pDQogew0KICAgICBX
ZWJWaWV3KiB3ZWJWaWV3ID0gbV93ZWJGcmFtZS0+d2ViVmlldygpOw0KIA0KQEAgLTUzOCw3ICs1
MzgsOCBAQA0KICAgICAgICAgcmV0dXJuIDA7DQogDQogICAgIENPTVB0cjxJV2ViVmlldz4gbmV3
V2ViVmlldzsNCi0gICAgaWYgKEZBSUxFRCh1aS0+Y3JlYXRlV2ViVmlld1dpdGhSZXF1ZXN0KHdl
YlZpZXcsIDAsICZuZXdXZWJWaWV3KSkpDQorICAgIFdlYk11dGFibGVVUkxSZXF1ZXN0KiByZXF1
ZXN0ID0gV2ViTXV0YWJsZVVSTFJlcXVlc3Q6OmNyZWF0ZUluc3RhbmNlKFJlc291cmNlUmVxdWVz
dChuYXZpZ2F0aW9uQWN0aW9uLnVybCgpKSk7DQorICAgIGlmIChGQUlMRUQodWktPmNyZWF0ZVdl
YlZpZXdXaXRoUmVxdWVzdCh3ZWJWaWV3LCByZXF1ZXN0LCAmbmV3V2ViVmlldykpIHx8ICFuZXdX
ZWJWaWV3KQ0KICAgICAgICAgcmV0dXJuIDA7DQogDQogICAgIENPTVB0cjxJV2ViRnJhbWU+IG1h
aW5GcmFtZTsNCkluZGV4OiBUb29scy9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE1NjYxMikNCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkNCkBAIC0xLDMgKzEsMTUgQEANCisyMDEzLTA5LTI4ICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+DQorDQorICAgICAgICBJbXBsZW1lbnRlZCBjcmVhdGVX
ZWJWaWV3V2l0aFJlcXVlc3QgaW4gV2luTGF1bmNoZXIuDQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyMDY5DQorDQorICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAgICAgICogV2luTGF1bmNoZXIvUHJpbnRXZWJVSURl
bGVnYXRlLmNwcDoNCisgICAgICAgIChQcmludFdlYlVJRGVsZWdhdGU6OmNyZWF0ZVdlYlZpZXdX
aXRoUmVxdWVzdCk6IEFkZGVkLg0KKyAgICAgICAgKiBXaW5MYXVuY2hlci9QcmludFdlYlVJRGVs
ZWdhdGUuaDoNCisgICAgICAgIFJlbW92ZWQgY3JlYXRlV2ViVmlld1dpdGhSZXF1ZXN0IHN0dWIu
DQorDQogMjAxMy0wOS0yOCAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPg0KIA0KICAgICAg
ICAgRml4IHNvbWUgZmFpbHVyZXMgd2l0aCBuZXdlciB2ZXJzaW9ucyBvZiBjbGFuZy4NCkluZGV4
OiBUb29scy9XaW5MYXVuY2hlci9QcmludFdlYlVJRGVsZWdhdGUuY3BwDQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQot
LS0gVG9vbHMvV2luTGF1bmNoZXIvUHJpbnRXZWJVSURlbGVnYXRlLmNwcAkocmV2aXNpb24gMTU2
NjAyKQ0KKysrIFRvb2xzL1dpbkxhdW5jaGVyL1ByaW50V2ViVUlEZWxlZ2F0ZS5jcHAJKHdvcmtp
bmcgY29weSkNCkBAIC0zNyw2ICszNywzMyBAQA0KIA0KIHN0YXRpYyBjb25zdCBpbnQgTUFSR0lO
ID0gMjA7DQogDQorSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBQcmludFdlYlVJRGVsZWdhdGU6
OmNyZWF0ZVdlYlZpZXdXaXRoUmVxdWVzdChJV2ViVmlldyosIElXZWJVUkxSZXF1ZXN0KiByZXF1
ZXN0LCBJV2ViVmlldyoqKQ0KK3sNCisgICAgaWYgKCFyZXF1ZXN0KQ0KKyAgICAgICAgcmV0dXJu
IEVfUE9JTlRFUjsNCisNCisgICAgVENIQVIgYnVmZmVyW01BWF9QQVRIXTsNCisgICAgRFdPUkQg
bGVuZ3RoID0gR2V0TW9kdWxlRmlsZU5hbWUoR2V0TW9kdWxlSGFuZGxlKDApLCBidWZmZXIsIEFS
UkFZU0laRShidWZmZXIpKTsNCisgICAgaWYgKCFsZW5ndGgpDQorICAgICAgICByZXR1cm4gRV9G
QUlMOw0KKw0KKyAgICBCU1RSIHVybDsNCisgICAgSFJFU1VMVCBociA9IHJlcXVlc3QtPlVSTCgm
dXJsKTsNCisgICAgaWYgKEZBSUxFRChocikpDQorICAgICAgICByZXR1cm4gRV9GQUlMOw0KKw0K
KyAgICBzdGQ6OndzdHJpbmcgY29tbWFuZCA9IHN0ZDo6d3N0cmluZyhMIlwiIikgKyBidWZmZXIg
KyBMIlwiICIgKyAoY29uc3Qgd2NoYXJfdCopdXJsOw0KKyAgICBTeXNGcmVlU3RyaW5nKHVybCk7
DQorDQorICAgIFBST0NFU1NfSU5GT1JNQVRJT04gcHJvY2Vzc0luZm9ybWF0aW9uOw0KKyAgICBT
VEFSVFVQSU5GT1cgc3RhcnR1cEluZm87DQorICAgIG1lbXNldCgmc3RhcnR1cEluZm8sIDAsIHNp
emVvZihzdGFydHVwSW5mbykpOw0KKyAgICBpZiAoIUNyZWF0ZVByb2Nlc3NXKDAsIChMUFdTVFIp
Y29tbWFuZC5jX3N0cigpLCAwLCAwLCAwLCAwLCAwLCAwLCAmc3RhcnR1cEluZm8sICZwcm9jZXNz
SW5mb3JtYXRpb24pKQ0KKyAgICAgICAgcmV0dXJuIEVfRkFJTDsNCisNCisgICAgcmV0dXJuIFNf
T0s7DQorfQ0KKw0KIEhSRVNVTFQgUHJpbnRXZWJVSURlbGVnYXRlOjpRdWVyeUludGVyZmFjZShS
RUZJSUQgcmlpZCwgdm9pZCoqIHBwdk9iamVjdCkNCiB7DQogICAgICpwcHZPYmplY3QgPSAwOw0K
SW5kZXg6IFRvb2xzL1dpbkxhdW5jaGVyL1ByaW50V2ViVUlEZWxlZ2F0ZS5oDQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
DQotLS0gVG9vbHMvV2luTGF1bmNoZXIvUHJpbnRXZWJVSURlbGVnYXRlLmgJKHJldmlzaW9uIDE1
NjYwMikNCisrKyBUb29scy9XaW5MYXVuY2hlci9QcmludFdlYlVJRGVsZWdhdGUuaAkod29ya2lu
ZyBjb3B5KQ0KQEAgLTM4LDcgKzM4LDcgQEANCiAgICAgdmlydHVhbCBVTE9ORyBTVERNRVRIT0RD
QUxMVFlQRSBBZGRSZWYodm9pZCk7DQogICAgIHZpcnR1YWwgVUxPTkcgU1RETUVUSE9EQ0FMTFRZ
UEUgUmVsZWFzZSh2b2lkKTsNCiANCi0gICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExU
WVBFIGNyZWF0ZVdlYlZpZXdXaXRoUmVxdWVzdChJV2ViVmlldyosIElXZWJVUkxSZXF1ZXN0Kiwg
SVdlYlZpZXcqKikgeyByZXR1cm4gRV9OT1RJTVBMOyB9DQorICAgIHZpcnR1YWwgSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBjcmVhdGVXZWJWaWV3V2l0aFJlcXVlc3QoSVdlYlZpZXcqLCBJV2Vi
VVJMUmVxdWVzdCosIElXZWJWaWV3KiopOw0KICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9E
Q0FMTFRZUEUgd2ViVmlld1Nob3coSVdlYlZpZXcqKSB7IHJldHVybiBFX05PVElNUEw7IH0NCiAg
ICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHdlYlZpZXdDbG9zZShJV2ViVmll
dyopIHsgcmV0dXJuIEVfTk9USU1QTDsgfQ0KICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9E
Q0FMTFRZUEUgd2ViVmlld0ZvY3VzKElXZWJWaWV3KikgeyByZXR1cm4gRV9OT1RJTVBMOyB9DQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>212911</attachid>
            <date>2013-09-28 21:10:39 -0700</date>
            <delta_ts>2013-10-01 12:28:03 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>6276</size>
            <attacher name="Alex Christensen">alex.christensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJj
ZS9XZWJLaXQvd2luL0NoYW5nZUxvZwkocmV2aXNpb24gMTU2NjEyKQ0KKysrIFNvdXJjZS9XZWJL
aXQvd2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQ0KQEAgLTEsMyArMSwxNiBAQA0KKzIwMTMt
MDktMjggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4NCisNCisg
ICAgICAgIEltcGxlbWVudGVkIGNyZWF0ZVdlYlZpZXdXaXRoUmVxdWVzdCBpbiBXaW5MYXVuY2hl
ci4NCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjIw
NjkNCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOg0KKyAgICAgICAgKFdlYkNocm9t
ZUNsaWVudDo6Y3JlYXRlV2luZG93KToNCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwOg0KKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaENyZWF0ZVBhZ2UpOg0KKyAgICAgICAgUGFzcyByZXF1ZXN0IHVybCBmcm9tIHRoZSBOYXZp
Z2F0aW9uQWN0aW9uIHRvIGNyZWF0ZVdlYlZpZXdXaXRoUmVxdWVzdC4NCisNCiAyMDEzLTA5LTI3
ICBSb2dlciBGb25nICA8cm9nZXJfZm9uZ0BhcHBsZS5jb20+DQogDQogICAgICAgICBbV2luZG93
c10gVW5yZXZpZXdlZCBidWlsZCBmaXggZm9sbG93aW5nIHIxNTY1NjAuDQpJbmRleDogU291cmNl
L1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcA0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQ0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAJKHJldmlzaW9uIDE1NjYwMikNCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtMTk0LDE0ICsxOTQsMTQg
QEANCiAgICAgcmV0dXJuIENPTVB0cjxJUHJvcGVydHlCYWc+KEFkb3B0Q09NLCBDT01Qcm9wZXJ0
eUJhZzxDT01WYXJpYW50Pjo6YWRvcHQobWFwKSk7DQogfQ0KIA0KLVBhZ2UqIFdlYkNocm9tZUNs
aWVudDo6Y3JlYXRlV2luZG93KEZyYW1lKiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0
IFdpbmRvd0ZlYXR1cmVzJiBmZWF0dXJlcywgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYpDQorUGFn
ZSogV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVXaW5kb3coRnJhbWUqLCBjb25zdCBGcmFtZUxvYWRS
ZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmIGZlYXR1cmVzLCBjb25zdCBOYXZpZ2F0aW9u
QWN0aW9uJiBuYXZpZ2F0aW9uQWN0aW9uKQ0KIHsNCiAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRl
PiBkZWxlZ2F0ZSA9IHVpRGVsZWdhdGUoKTsNCiAgICAgaWYgKCFkZWxlZ2F0ZSkNCiAgICAgICAg
IHJldHVybiAwOw0KIA0KLSAgICAvLyBKdXN0IGNyZWF0ZSBhIGJsYW5rIHJlcXVlc3QgYmVjYXVz
ZSBjcmVhdGVXaW5kb3coKSBpcyBvbmx5IHJlcXVpcmVkIHRvIGNyZWF0ZSB3aW5kb3cgYnV0IG5v
dCB0byBsb2FkIFVSTC4NCi0gICAgQ09NUHRyPElXZWJNdXRhYmxlVVJMUmVxdWVzdD4gcmVxdWVz
dChBZG9wdENPTSwgV2ViTXV0YWJsZVVSTFJlcXVlc3Q6OmNyZWF0ZUluc3RhbmNlKCkpOw0KKyAg
ICBDT01QdHI8SVdlYk11dGFibGVVUkxSZXF1ZXN0PiByZXF1ZXN0Ow0KKyAgICByZXF1ZXN0LmFk
b3B0UmVmKFdlYk11dGFibGVVUkxSZXF1ZXN0OjpjcmVhdGVJbnN0YW5jZShSZXNvdXJjZVJlcXVl
c3QobmF2aWdhdGlvbkFjdGlvbi51cmwoKSkpKTsNCiANCiAgICAgQ09NUHRyPElXZWJVSURlbGVn
YXRlUHJpdmF0ZTI+IGRlbGVnYXRlUHJpdmF0ZShRdWVyeSwgZGVsZWdhdGUpOw0KICAgICBpZiAo
ZGVsZWdhdGVQcml2YXRlKSB7DQpJbmRleDogU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCShyZXZpc2lvbiAx
NTY2MDIpDQorKysgU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtNTI5LDcgKzUyOSw3IEBADQogICAgIH0N
CiB9DQogDQotRnJhbWUqIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaENyZWF0ZVBhZ2Uo
Y29uc3QgTmF2aWdhdGlvbkFjdGlvbiYpDQorRnJhbWUqIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpk
aXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgbmF2aWdhdGlvbkFjdGlv
bikNCiB7DQogICAgIFdlYlZpZXcqIHdlYlZpZXcgPSBtX3dlYkZyYW1lLT53ZWJWaWV3KCk7DQog
DQpAQCAtNTM4LDcgKzUzOCw5IEBADQogICAgICAgICByZXR1cm4gMDsNCiANCiAgICAgQ09NUHRy
PElXZWJWaWV3PiBuZXdXZWJWaWV3Ow0KLSAgICBpZiAoRkFJTEVEKHVpLT5jcmVhdGVXZWJWaWV3
V2l0aFJlcXVlc3Qod2ViVmlldywgMCwgJm5ld1dlYlZpZXcpKSkNCisgICAgQ09NUHRyPFdlYk11
dGFibGVVUkxSZXF1ZXN0PiByZXF1ZXN0Ow0KKyAgICByZXF1ZXN0LmFkb3B0UmVmKFdlYk11dGFi
bGVVUkxSZXF1ZXN0OjpjcmVhdGVJbnN0YW5jZShSZXNvdXJjZVJlcXVlc3QobmF2aWdhdGlvbkFj
dGlvbi51cmwoKSkpKTsNCisgICAgaWYgKEZBSUxFRCh1aS0+Y3JlYXRlV2ViVmlld1dpdGhSZXF1
ZXN0KHdlYlZpZXcsIHJlcXVlc3QuZ2V0KCksICZuZXdXZWJWaWV3KSkgfHwgIW5ld1dlYlZpZXcp
DQogICAgICAgICByZXR1cm4gMDsNCiANCiAgICAgQ09NUHRyPElXZWJGcmFtZT4gbWFpbkZyYW1l
Ow0KSW5kZXg6IFRvb2xzL0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFRvb2xzL0NoYW5nZUxv
ZwkocmV2aXNpb24gMTU2NjEyKQ0KKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQ0K
QEAgLTEsMyArMSwxNSBAQA0KKzIwMTMtMDktMjggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0
ZW5zZW5Ad2Via2l0Lm9yZz4NCisNCisgICAgICAgIEltcGxlbWVudGVkIGNyZWF0ZVdlYlZpZXdX
aXRoUmVxdWVzdCBpbiBXaW5MYXVuY2hlci4NCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjIwNjkNCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLg0KKw0KKyAgICAgICAgKiBXaW5MYXVuY2hlci9QcmludFdlYlVJRGVsZWdhdGUu
Y3BwOg0KKyAgICAgICAgKFByaW50V2ViVUlEZWxlZ2F0ZTo6Y3JlYXRlV2ViVmlld1dpdGhSZXF1
ZXN0KTogQWRkZWQuDQorICAgICAgICAqIFdpbkxhdW5jaGVyL1ByaW50V2ViVUlEZWxlZ2F0ZS5o
Og0KKyAgICAgICAgUmVtb3ZlZCBjcmVhdGVXZWJWaWV3V2l0aFJlcXVlc3Qgc3R1Yi4NCisNCiAy
MDEzLTA5LTI4ICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+DQogDQogICAgICAgICBGaXgg
c29tZSBmYWlsdXJlcyB3aXRoIG5ld2VyIHZlcnNpb25zIG9mIGNsYW5nLg0KSW5kZXg6IFRvb2xz
L1dpbkxhdW5jaGVyL1ByaW50V2ViVUlEZWxlZ2F0ZS5jcHANCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBUb29s
cy9XaW5MYXVuY2hlci9QcmludFdlYlVJRGVsZWdhdGUuY3BwCShyZXZpc2lvbiAxNTY2MDIpDQor
KysgVG9vbHMvV2luTGF1bmNoZXIvUHJpbnRXZWJVSURlbGVnYXRlLmNwcAkod29ya2luZyBjb3B5
KQ0KQEAgLTEsNiArMSw3IEBADQogLyoNCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTMgQXBw
bGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICAqIENvcHlyaWdodCAoQykgMjAwOSBCcmVu
dCBGdWxnaGFtLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KKyAqIENvcHlyaWdodCAoQykgMjAxMyBB
bGV4IENocmlzdGVuc2VuLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICAqDQogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
DQogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zDQpAQCAtMzcsNiArMzgsMzMgQEANCiANCiBzdGF0aWMgY29uc3QgaW50
IE1BUkdJTiA9IDIwOw0KIA0KK0hSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgUHJpbnRXZWJVSURl
bGVnYXRlOjpjcmVhdGVXZWJWaWV3V2l0aFJlcXVlc3QoSVdlYlZpZXcqLCBJV2ViVVJMUmVxdWVz
dCogcmVxdWVzdCwgSVdlYlZpZXcqKikNCit7DQorICAgIGlmICghcmVxdWVzdCkNCisgICAgICAg
IHJldHVybiBFX1BPSU5URVI7DQorDQorICAgIFRDSEFSIGJ1ZmZlcltNQVhfUEFUSF07DQorICAg
IERXT1JEIGxlbmd0aCA9IEdldE1vZHVsZUZpbGVOYW1lKEdldE1vZHVsZUhhbmRsZSgwKSwgYnVm
ZmVyLCBBUlJBWVNJWkUoYnVmZmVyKSk7DQorICAgIGlmICghbGVuZ3RoKQ0KKyAgICAgICAgcmV0
dXJuIEVfRkFJTDsNCisNCisgICAgQlNUUiB1cmw7DQorICAgIEhSRVNVTFQgaHIgPSByZXF1ZXN0
LT5VUkwoJnVybCk7DQorICAgIGlmIChGQUlMRUQoaHIpKQ0KKyAgICAgICAgcmV0dXJuIEVfRkFJ
TDsNCisNCisgICAgc3RkOjp3c3RyaW5nIGNvbW1hbmQgPSBzdGQ6OndzdHJpbmcoTCJcIiIpICsg
YnVmZmVyICsgTCJcIiAiICsgKGNvbnN0IHdjaGFyX3QqKXVybDsNCisgICAgU3lzRnJlZVN0cmlu
Zyh1cmwpOw0KKw0KKyAgICBQUk9DRVNTX0lORk9STUFUSU9OIHByb2Nlc3NJbmZvcm1hdGlvbjsN
CisgICAgU1RBUlRVUElORk9XIHN0YXJ0dXBJbmZvOw0KKyAgICBtZW1zZXQoJnN0YXJ0dXBJbmZv
LCAwLCBzaXplb2Yoc3RhcnR1cEluZm8pKTsNCisgICAgaWYgKCFDcmVhdGVQcm9jZXNzVygwLCAo
TFBXU1RSKWNvbW1hbmQuY19zdHIoKSwgMCwgMCwgMCwgMCwgMCwgMCwgJnN0YXJ0dXBJbmZvLCAm
cHJvY2Vzc0luZm9ybWF0aW9uKSkNCisgICAgICAgIHJldHVybiBFX0ZBSUw7DQorDQorICAgIHJl
dHVybiBTX09LOw0KK30NCisNCiBIUkVTVUxUIFByaW50V2ViVUlEZWxlZ2F0ZTo6UXVlcnlJbnRl
cmZhY2UoUkVGSUlEIHJpaWQsIHZvaWQqKiBwcHZPYmplY3QpDQogew0KICAgICAqcHB2T2JqZWN0
ID0gMDsNCkluZGV4OiBUb29scy9XaW5MYXVuY2hlci9QcmludFdlYlVJRGVsZWdhdGUuaA0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQ0KLS0tIFRvb2xzL1dpbkxhdW5jaGVyL1ByaW50V2ViVUlEZWxlZ2F0ZS5oCShyZXZp
c2lvbiAxNTY2MDIpDQorKysgVG9vbHMvV2luTGF1bmNoZXIvUHJpbnRXZWJVSURlbGVnYXRlLmgJ
KHdvcmtpbmcgY29weSkNCkBAIC0zOCw3ICszOCw3IEBADQogICAgIHZpcnR1YWwgVUxPTkcgU1RE
TUVUSE9EQ0FMTFRZUEUgQWRkUmVmKHZvaWQpOw0KICAgICB2aXJ0dWFsIFVMT05HIFNURE1FVEhP
RENBTExUWVBFIFJlbGVhc2Uodm9pZCk7DQogDQotICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBjcmVhdGVXZWJWaWV3V2l0aFJlcXVlc3QoSVdlYlZpZXcqLCBJV2ViVVJMUmVx
dWVzdCosIElXZWJWaWV3KiopIHsgcmV0dXJuIEVfTk9USU1QTDsgfQ0KKyAgICB2aXJ0dWFsIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgY3JlYXRlV2ViVmlld1dpdGhSZXF1ZXN0KElXZWJWaWV3
KiwgSVdlYlVSTFJlcXVlc3QqLCBJV2ViVmlldyoqKTsNCiAgICAgdmlydHVhbCBIUkVTVUxUIFNU
RE1FVEhPRENBTExUWVBFIHdlYlZpZXdTaG93KElXZWJWaWV3KikgeyByZXR1cm4gRV9OT1RJTVBM
OyB9DQogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSB3ZWJWaWV3Q2xvc2Uo
SVdlYlZpZXcqKSB7IHJldHVybiBFX05PVElNUEw7IH0NCiAgICAgdmlydHVhbCBIUkVTVUxUIFNU
RE1FVEhPRENBTExUWVBFIHdlYlZpZXdGb2N1cyhJV2ViVmlldyopIHsgcmV0dXJuIEVfTk9USU1Q
TDsgfQ0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213109</attachid>
            <date>2013-10-01 12:28:03 -0700</date>
            <delta_ts>2013-10-01 12:32:03 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>7329</size>
            <attacher name="Alex Christensen">alex.christensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU2NzI1KQ0KKysrIFNvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQ0KQEAgLTEsMyArMSwxMyBAQA0KKzIwMTMtMTAtMDEgIEFs
ZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4NCisNCisgICAgICAgIEFk
ZGVkIGFkb3B0Q09NIHRvIENPTVB0ciBvbiBXaW5kb3dzLg0KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMjA2OQ0KKw0KKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuDQorDQorICAgICAgICAqIHBsYXRmb3JtL3dpbi9DT01QdHIuaDoN
CisgICAgICAgIChhZG9wdENPTSk6IEFkZGVkLg0KKw0KIDIwMTMtMDktMzAgIEplciBOb2JsZSAg
PGplci5ub2JsZUBhcHBsZS5jb20+DQogDQogICAgICAgICBbTWFjXSBBZGQgc3VwcG9ydCBmb3Ig
VmlkZW9UcmFjayB0byBNZWRpYVBsYXllclByaXZhdGVBVkZPYmpDDQpJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luL0NPTVB0ci5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd2luL0NPTVB0ci5oCShyZXZpc2lvbiAxNTY2MDIpDQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luL0NPTVB0ci5oCSh3b3JraW5nIGNvcHkpDQpAQCAtMTAxLDYgKzEw
MSwxMSBAQA0KICAgICBUKiBtX3B0cjsNCiB9Ow0KIA0KK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGlu
bGluZSBDT01QdHI8VD4gYWRvcHRDT00oVCAqcHRyKQ0KK3sNCisgICAgcmV0dXJuIENPTVB0cjxU
PihBZG9wdENPTSwgcHRyKTsNCit9DQorDQogdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIHZv
aWQgQ09NUHRyPFQ+OjpjbGVhcigpDQogew0KICAgICBpZiAoVCogcHRyID0gbV9wdHIpIHsNCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NjcyNSkNCisrKyBTb3VyY2UvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkNCkBAIC0xLDMgKzEsMTYgQEANCisyMDEzLTA5
LTI4ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+DQorDQorICAg
ICAgICBJbXBsZW1lbnRlZCBjcmVhdGVXZWJWaWV3V2l0aFJlcXVlc3QgaW4gV2luTGF1bmNoZXIu
DQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyMDY5
DQorDQorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoNCisgICAgICAgIChXZWJDaHJvbWVD
bGllbnQ6OmNyZWF0ZVdpbmRvdyk6DQorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcDoNCisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hDcmVhdGVQYWdlKToNCisgICAgICAgIFBhc3MgcmVxdWVzdCB1cmwgZnJvbSB0aGUgTmF2aWdh
dGlvbkFjdGlvbiB0byBjcmVhdGVXZWJWaWV3V2l0aFJlcXVlc3QuDQorDQogMjAxMy0wOS0zMCAg
QW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+DQogDQogICAgICAgICBUcnkgdG8gZml4
IHRoZSBXaW5kb3dzIGJ1aWxkLg0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViS2l0L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCShyZXZpc2lvbiAxNTY2MDIpDQor
KysgU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAko
d29ya2luZyBjb3B5KQ0KQEAgLTE5NCwxNCArMTk0LDEzIEBADQogICAgIHJldHVybiBDT01QdHI8
SVByb3BlcnR5QmFnPihBZG9wdENPTSwgQ09NUHJvcGVydHlCYWc8Q09NVmFyaWFudD46OmFkb3B0
KG1hcCkpOw0KIH0NCiANCi1QYWdlKiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyhGcmFt
ZSosIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYgZmVhdHVy
ZXMsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKQ0KK1BhZ2UqIFdlYkNocm9tZUNsaWVudDo6Y3Jl
YXRlV2luZG93KEZyYW1lKiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0Zl
YXR1cmVzJiBmZWF0dXJlcywgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgbmF2aWdhdGlvbkFjdGlv
bikNCiB7DQogICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZT4gZGVsZWdhdGUgPSB1aURlbGVnYXRl
KCk7DQogICAgIGlmICghZGVsZWdhdGUpDQogICAgICAgICByZXR1cm4gMDsNCiANCi0gICAgLy8g
SnVzdCBjcmVhdGUgYSBibGFuayByZXF1ZXN0IGJlY2F1c2UgY3JlYXRlV2luZG93KCkgaXMgb25s
eSByZXF1aXJlZCB0byBjcmVhdGUgd2luZG93IGJ1dCBub3QgdG8gbG9hZCBVUkwuDQotICAgIENP
TVB0cjxJV2ViTXV0YWJsZVVSTFJlcXVlc3Q+IHJlcXVlc3QoQWRvcHRDT00sIFdlYk11dGFibGVV
UkxSZXF1ZXN0OjpjcmVhdGVJbnN0YW5jZSgpKTsNCisgICAgQ09NUHRyPFdlYk11dGFibGVVUkxS
ZXF1ZXN0PiByZXF1ZXN0ID0gYWRvcHRDT00oV2ViTXV0YWJsZVVSTFJlcXVlc3Q6OmNyZWF0ZUlu
c3RhbmNlKFJlc291cmNlUmVxdWVzdChuYXZpZ2F0aW9uQWN0aW9uLnVybCgpKSkpOw0KIA0KICAg
ICBDT01QdHI8SVdlYlVJRGVsZWdhdGVQcml2YXRlMj4gZGVsZWdhdGVQcml2YXRlKFF1ZXJ5LCBk
ZWxlZ2F0ZSk7DQogICAgIGlmIChkZWxlZ2F0ZVByaXZhdGUpIHsNCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHANCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCi0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHAJKHJldmlzaW9uIDE1NjYwMikNCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC01Mjks
NyArNTI5LDcgQEANCiAgICAgfQ0KIH0NCiANCi1GcmFtZSogV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJikNCitGcmFtZSogV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBOYXZpZ2F0aW9uQWN0
aW9uJiBuYXZpZ2F0aW9uQWN0aW9uKQ0KIHsNCiAgICAgV2ViVmlldyogd2ViVmlldyA9IG1fd2Vi
RnJhbWUtPndlYlZpZXcoKTsNCiANCkBAIC01MzgsNyArNTM4LDggQEANCiAgICAgICAgIHJldHVy
biAwOw0KIA0KICAgICBDT01QdHI8SVdlYlZpZXc+IG5ld1dlYlZpZXc7DQotICAgIGlmIChGQUlM
RUQodWktPmNyZWF0ZVdlYlZpZXdXaXRoUmVxdWVzdCh3ZWJWaWV3LCAwLCAmbmV3V2ViVmlldykp
KQ0KKyAgICBDT01QdHI8V2ViTXV0YWJsZVVSTFJlcXVlc3Q+IHJlcXVlc3QgPSBhZG9wdENPTShX
ZWJNdXRhYmxlVVJMUmVxdWVzdDo6Y3JlYXRlSW5zdGFuY2UoUmVzb3VyY2VSZXF1ZXN0KG5hdmln
YXRpb25BY3Rpb24udXJsKCkpKSk7DQorICAgIGlmIChGQUlMRUQodWktPmNyZWF0ZVdlYlZpZXdX
aXRoUmVxdWVzdCh3ZWJWaWV3LCByZXF1ZXN0LmdldCgpLCAmbmV3V2ViVmlldykpIHx8ICFuZXdX
ZWJWaWV3KQ0KICAgICAgICAgcmV0dXJuIDA7DQogDQogICAgIENPTVB0cjxJV2ViRnJhbWU+IG1h
aW5GcmFtZTsNCkluZGV4OiBUb29scy9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE1NjYxMikNCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkNCkBAIC0xLDMgKzEsMTUgQEANCisyMDEzLTA5LTI4ICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+DQorDQorICAgICAgICBJbXBsZW1lbnRlZCBjcmVhdGVX
ZWJWaWV3V2l0aFJlcXVlc3QgaW4gV2luTGF1bmNoZXIuDQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyMDY5DQorDQorICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAgICAgICogV2luTGF1bmNoZXIvUHJpbnRXZWJVSURl
bGVnYXRlLmNwcDoNCisgICAgICAgIChQcmludFdlYlVJRGVsZWdhdGU6OmNyZWF0ZVdlYlZpZXdX
aXRoUmVxdWVzdCk6IEFkZGVkLg0KKyAgICAgICAgKiBXaW5MYXVuY2hlci9QcmludFdlYlVJRGVs
ZWdhdGUuaDoNCisgICAgICAgIFJlbW92ZWQgY3JlYXRlV2ViVmlld1dpdGhSZXF1ZXN0IHN0dWIu
DQorDQogMjAxMy0wOS0yOCAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPg0KIA0KICAgICAg
ICAgRml4IHNvbWUgZmFpbHVyZXMgd2l0aCBuZXdlciB2ZXJzaW9ucyBvZiBjbGFuZy4NCkluZGV4
OiBUb29scy9XaW5MYXVuY2hlci9QcmludFdlYlVJRGVsZWdhdGUuY3BwDQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQot
LS0gVG9vbHMvV2luTGF1bmNoZXIvUHJpbnRXZWJVSURlbGVnYXRlLmNwcAkocmV2aXNpb24gMTU2
NjAyKQ0KKysrIFRvb2xzL1dpbkxhdW5jaGVyL1ByaW50V2ViVUlEZWxlZ2F0ZS5jcHAJKHdvcmtp
bmcgY29weSkNCkBAIC0xLDYgKzEsNyBAQA0KIC8qDQogICogQ29weXJpZ2h0IChDKSAyMDA5LCAy
MDEzIEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDkgQnJlbnQgRnVsZ2hhbS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMgQWxleCBDaHJpc3RlbnNlbi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAgKg0KICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dA0KICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucw0KQEAgLTM3LDYgKzM4LDMyIEBADQogDQogc3RhdGljIGNv
bnN0IGludCBNQVJHSU4gPSAyMDsNCiANCitIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFByaW50
V2ViVUlEZWxlZ2F0ZTo6Y3JlYXRlV2ViVmlld1dpdGhSZXF1ZXN0KElXZWJWaWV3KiwgSVdlYlVS
TFJlcXVlc3QqIHJlcXVlc3QsIElXZWJWaWV3KiopDQorew0KKyAgICBpZiAoIXJlcXVlc3QpDQor
ICAgICAgICByZXR1cm4gRV9QT0lOVEVSOw0KKw0KKyAgICBUQ0hBUiBleGVjdXRhYmxlUGF0aFtN
QVhfUEFUSF07DQorICAgIERXT1JEIGxlbmd0aCA9IDo6R2V0TW9kdWxlRmlsZU5hbWUoR2V0TW9k
dWxlSGFuZGxlKDApLCBleGVjdXRhYmxlUGF0aCwgQVJSQVlTSVpFKGV4ZWN1dGFibGVQYXRoKSk7
DQorICAgIGlmICghbGVuZ3RoKQ0KKyAgICAgICAgcmV0dXJuIEVfRkFJTDsNCisNCisgICAgX2Jz
dHJfdCB1cmw7DQorCUhSRVNVTFQgaHIgPSByZXF1ZXN0LT5VUkwoJnVybC5HZXRCU1RSKCkpOw0K
KyAgICBpZiAoRkFJTEVEKGhyKSkNCisgICAgICAgIHJldHVybiBFX0ZBSUw7DQorDQorICAgIHN0
ZDo6d3N0cmluZyBjb21tYW5kID0gc3RkOjp3c3RyaW5nKEwiXCIiKSArIGV4ZWN1dGFibGVQYXRo
ICsgTCJcIiAiICsgKGNvbnN0IHdjaGFyX3QqKXVybDsNCisNCisgICAgUFJPQ0VTU19JTkZPUk1B
VElPTiBwcm9jZXNzSW5mb3JtYXRpb247DQorICAgIFNUQVJUVVBJTkZPVyBzdGFydHVwSW5mbzsN
CisgICAgbWVtc2V0KCZzdGFydHVwSW5mbywgMCwgc2l6ZW9mKHN0YXJ0dXBJbmZvKSk7DQorICAg
IGlmICghOjpDcmVhdGVQcm9jZXNzVygwLCAoTFBXU1RSKWNvbW1hbmQuY19zdHIoKSwgMCwgMCwg
MCwgMCwgMCwgMCwgJnN0YXJ0dXBJbmZvLCAmcHJvY2Vzc0luZm9ybWF0aW9uKSkNCisgICAgICAg
IHJldHVybiBFX0ZBSUw7DQorDQorICAgIHJldHVybiBTX09LOw0KK30NCisNCiBIUkVTVUxUIFBy
aW50V2ViVUlEZWxlZ2F0ZTo6UXVlcnlJbnRlcmZhY2UoUkVGSUlEIHJpaWQsIHZvaWQqKiBwcHZP
YmplY3QpDQogew0KICAgICAqcHB2T2JqZWN0ID0gMDsNCkluZGV4OiBUb29scy9XaW5MYXVuY2hl
ci9QcmludFdlYlVJRGVsZWdhdGUuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFRvb2xzL1dpbkxhdW5jaGVy
L1ByaW50V2ViVUlEZWxlZ2F0ZS5oCShyZXZpc2lvbiAxNTY2MDIpDQorKysgVG9vbHMvV2luTGF1
bmNoZXIvUHJpbnRXZWJVSURlbGVnYXRlLmgJKHdvcmtpbmcgY29weSkNCkBAIC0zOCw3ICszOCw3
IEBADQogICAgIHZpcnR1YWwgVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgQWRkUmVmKHZvaWQpOw0K
ICAgICB2aXJ0dWFsIFVMT05HIFNURE1FVEhPRENBTExUWVBFIFJlbGVhc2Uodm9pZCk7DQogDQot
ICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBjcmVhdGVXZWJWaWV3V2l0aFJl
cXVlc3QoSVdlYlZpZXcqLCBJV2ViVVJMUmVxdWVzdCosIElXZWJWaWV3KiopIHsgcmV0dXJuIEVf
Tk9USU1QTDsgfQ0KKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgY3JlYXRl
V2ViVmlld1dpdGhSZXF1ZXN0KElXZWJWaWV3KiwgSVdlYlVSTFJlcXVlc3QqLCBJV2ViVmlldyoq
KTsNCiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHdlYlZpZXdTaG93KElX
ZWJWaWV3KikgeyByZXR1cm4gRV9OT1RJTVBMOyB9DQogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERN
RVRIT0RDQUxMVFlQRSB3ZWJWaWV3Q2xvc2UoSVdlYlZpZXcqKSB7IHJldHVybiBFX05PVElNUEw7
IH0NCiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHdlYlZpZXdGb2N1cyhJ
V2ViVmlldyopIHsgcmV0dXJuIEVfTk9USU1QTDsgfQ0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213110</attachid>
            <date>2013-10-01 12:32:03 -0700</date>
            <delta_ts>2013-10-01 13:18:42 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>7332</size>
            <attacher name="Alex Christensen">alex.christensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU2NzI1KQ0KKysrIFNvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQ0KQEAgLTEsMyArMSwxMyBAQA0KKzIwMTMtMTAtMDEgIEFs
ZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4NCisNCisgICAgICAgIEFk
ZGVkIGFkb3B0Q09NIHRvIENPTVB0ciBvbiBXaW5kb3dzLg0KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMjA2OQ0KKw0KKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuDQorDQorICAgICAgICAqIHBsYXRmb3JtL3dpbi9DT01QdHIuaDoN
CisgICAgICAgIChhZG9wdENPTSk6IEFkZGVkLg0KKw0KIDIwMTMtMDktMzAgIEplciBOb2JsZSAg
PGplci5ub2JsZUBhcHBsZS5jb20+DQogDQogICAgICAgICBbTWFjXSBBZGQgc3VwcG9ydCBmb3Ig
VmlkZW9UcmFjayB0byBNZWRpYVBsYXllclByaXZhdGVBVkZPYmpDDQpJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luL0NPTVB0ci5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd2luL0NPTVB0ci5oCShyZXZpc2lvbiAxNTY2MDIpDQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luL0NPTVB0ci5oCSh3b3JraW5nIGNvcHkpDQpAQCAtMTAxLDYgKzEw
MSwxMSBAQA0KICAgICBUKiBtX3B0cjsNCiB9Ow0KIA0KK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGlu
bGluZSBDT01QdHI8VD4gYWRvcHRDT00oVCAqcHRyKQ0KK3sNCisgICAgcmV0dXJuIENPTVB0cjxU
PihBZG9wdENPTSwgcHRyKTsNCit9DQorDQogdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIHZv
aWQgQ09NUHRyPFQ+OjpjbGVhcigpDQogew0KICAgICBpZiAoVCogcHRyID0gbV9wdHIpIHsNCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NjcyNSkNCisrKyBTb3VyY2UvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkNCkBAIC0xLDMgKzEsMTYgQEANCisyMDEzLTA5
LTI4ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+DQorDQorICAg
ICAgICBJbXBsZW1lbnRlZCBjcmVhdGVXZWJWaWV3V2l0aFJlcXVlc3QgaW4gV2luTGF1bmNoZXIu
DQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyMDY5
DQorDQorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoNCisgICAgICAgIChXZWJDaHJvbWVD
bGllbnQ6OmNyZWF0ZVdpbmRvdyk6DQorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcDoNCisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hDcmVhdGVQYWdlKToNCisgICAgICAgIFBhc3MgcmVxdWVzdCB1cmwgZnJvbSB0aGUgTmF2aWdh
dGlvbkFjdGlvbiB0byBjcmVhdGVXZWJWaWV3V2l0aFJlcXVlc3QuDQorDQogMjAxMy0wOS0zMCAg
QW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+DQogDQogICAgICAgICBUcnkgdG8gZml4
IHRoZSBXaW5kb3dzIGJ1aWxkLg0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViS2l0L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCShyZXZpc2lvbiAxNTY2MDIpDQor
KysgU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAko
d29ya2luZyBjb3B5KQ0KQEAgLTE5NCwxNCArMTk0LDEzIEBADQogICAgIHJldHVybiBDT01QdHI8
SVByb3BlcnR5QmFnPihBZG9wdENPTSwgQ09NUHJvcGVydHlCYWc8Q09NVmFyaWFudD46OmFkb3B0
KG1hcCkpOw0KIH0NCiANCi1QYWdlKiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyhGcmFt
ZSosIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYgZmVhdHVy
ZXMsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKQ0KK1BhZ2UqIFdlYkNocm9tZUNsaWVudDo6Y3Jl
YXRlV2luZG93KEZyYW1lKiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0Zl
YXR1cmVzJiBmZWF0dXJlcywgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgbmF2aWdhdGlvbkFjdGlv
bikNCiB7DQogICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZT4gZGVsZWdhdGUgPSB1aURlbGVnYXRl
KCk7DQogICAgIGlmICghZGVsZWdhdGUpDQogICAgICAgICByZXR1cm4gMDsNCiANCi0gICAgLy8g
SnVzdCBjcmVhdGUgYSBibGFuayByZXF1ZXN0IGJlY2F1c2UgY3JlYXRlV2luZG93KCkgaXMgb25s
eSByZXF1aXJlZCB0byBjcmVhdGUgd2luZG93IGJ1dCBub3QgdG8gbG9hZCBVUkwuDQotICAgIENP
TVB0cjxJV2ViTXV0YWJsZVVSTFJlcXVlc3Q+IHJlcXVlc3QoQWRvcHRDT00sIFdlYk11dGFibGVV
UkxSZXF1ZXN0OjpjcmVhdGVJbnN0YW5jZSgpKTsNCisgICAgQ09NUHRyPFdlYk11dGFibGVVUkxS
ZXF1ZXN0PiByZXF1ZXN0ID0gYWRvcHRDT00oV2ViTXV0YWJsZVVSTFJlcXVlc3Q6OmNyZWF0ZUlu
c3RhbmNlKFJlc291cmNlUmVxdWVzdChuYXZpZ2F0aW9uQWN0aW9uLnVybCgpKSkpOw0KIA0KICAg
ICBDT01QdHI8SVdlYlVJRGVsZWdhdGVQcml2YXRlMj4gZGVsZWdhdGVQcml2YXRlKFF1ZXJ5LCBk
ZWxlZ2F0ZSk7DQogICAgIGlmIChkZWxlZ2F0ZVByaXZhdGUpIHsNCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHANCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCi0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHAJKHJldmlzaW9uIDE1NjYwMikNCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC01Mjks
NyArNTI5LDcgQEANCiAgICAgfQ0KIH0NCiANCi1GcmFtZSogV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJikNCitGcmFtZSogV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBOYXZpZ2F0aW9uQWN0
aW9uJiBuYXZpZ2F0aW9uQWN0aW9uKQ0KIHsNCiAgICAgV2ViVmlldyogd2ViVmlldyA9IG1fd2Vi
RnJhbWUtPndlYlZpZXcoKTsNCiANCkBAIC01MzgsNyArNTM4LDggQEANCiAgICAgICAgIHJldHVy
biAwOw0KIA0KICAgICBDT01QdHI8SVdlYlZpZXc+IG5ld1dlYlZpZXc7DQotICAgIGlmIChGQUlM
RUQodWktPmNyZWF0ZVdlYlZpZXdXaXRoUmVxdWVzdCh3ZWJWaWV3LCAwLCAmbmV3V2ViVmlldykp
KQ0KKyAgICBDT01QdHI8V2ViTXV0YWJsZVVSTFJlcXVlc3Q+IHJlcXVlc3QgPSBhZG9wdENPTShX
ZWJNdXRhYmxlVVJMUmVxdWVzdDo6Y3JlYXRlSW5zdGFuY2UoUmVzb3VyY2VSZXF1ZXN0KG5hdmln
YXRpb25BY3Rpb24udXJsKCkpKSk7DQorICAgIGlmIChGQUlMRUQodWktPmNyZWF0ZVdlYlZpZXdX
aXRoUmVxdWVzdCh3ZWJWaWV3LCByZXF1ZXN0LmdldCgpLCAmbmV3V2ViVmlldykpIHx8ICFuZXdX
ZWJWaWV3KQ0KICAgICAgICAgcmV0dXJuIDA7DQogDQogICAgIENPTVB0cjxJV2ViRnJhbWU+IG1h
aW5GcmFtZTsNCkluZGV4OiBUb29scy9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE1NjYxMikNCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkNCkBAIC0xLDMgKzEsMTUgQEANCisyMDEzLTA5LTI4ICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+DQorDQorICAgICAgICBJbXBsZW1lbnRlZCBjcmVhdGVX
ZWJWaWV3V2l0aFJlcXVlc3QgaW4gV2luTGF1bmNoZXIuDQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyMDY5DQorDQorICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAgICAgICogV2luTGF1bmNoZXIvUHJpbnRXZWJVSURl
bGVnYXRlLmNwcDoNCisgICAgICAgIChQcmludFdlYlVJRGVsZWdhdGU6OmNyZWF0ZVdlYlZpZXdX
aXRoUmVxdWVzdCk6IEFkZGVkLg0KKyAgICAgICAgKiBXaW5MYXVuY2hlci9QcmludFdlYlVJRGVs
ZWdhdGUuaDoNCisgICAgICAgIFJlbW92ZWQgY3JlYXRlV2ViVmlld1dpdGhSZXF1ZXN0IHN0dWIu
DQorDQogMjAxMy0wOS0yOCAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPg0KIA0KICAgICAg
ICAgRml4IHNvbWUgZmFpbHVyZXMgd2l0aCBuZXdlciB2ZXJzaW9ucyBvZiBjbGFuZy4NCkluZGV4
OiBUb29scy9XaW5MYXVuY2hlci9QcmludFdlYlVJRGVsZWdhdGUuY3BwDQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQot
LS0gVG9vbHMvV2luTGF1bmNoZXIvUHJpbnRXZWJVSURlbGVnYXRlLmNwcAkocmV2aXNpb24gMTU2
NjAyKQ0KKysrIFRvb2xzL1dpbkxhdW5jaGVyL1ByaW50V2ViVUlEZWxlZ2F0ZS5jcHAJKHdvcmtp
bmcgY29weSkNCkBAIC0xLDYgKzEsNyBAQA0KIC8qDQogICogQ29weXJpZ2h0IChDKSAyMDA5LCAy
MDEzIEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDkgQnJlbnQgRnVsZ2hhbS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMgQWxleCBDaHJpc3RlbnNlbi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAgKg0KICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dA0KICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucw0KQEAgLTM3LDYgKzM4LDMyIEBADQogDQogc3RhdGljIGNv
bnN0IGludCBNQVJHSU4gPSAyMDsNCiANCitIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFByaW50
V2ViVUlEZWxlZ2F0ZTo6Y3JlYXRlV2ViVmlld1dpdGhSZXF1ZXN0KElXZWJWaWV3KiwgSVdlYlVS
TFJlcXVlc3QqIHJlcXVlc3QsIElXZWJWaWV3KiopDQorew0KKyAgICBpZiAoIXJlcXVlc3QpDQor
ICAgICAgICByZXR1cm4gRV9QT0lOVEVSOw0KKw0KKyAgICBUQ0hBUiBleGVjdXRhYmxlUGF0aFtN
QVhfUEFUSF07DQorICAgIERXT1JEIGxlbmd0aCA9IDo6R2V0TW9kdWxlRmlsZU5hbWUoR2V0TW9k
dWxlSGFuZGxlKDApLCBleGVjdXRhYmxlUGF0aCwgQVJSQVlTSVpFKGV4ZWN1dGFibGVQYXRoKSk7
DQorICAgIGlmICghbGVuZ3RoKQ0KKyAgICAgICAgcmV0dXJuIEVfRkFJTDsNCisNCisgICAgX2Jz
dHJfdCB1cmw7DQorICAgIEhSRVNVTFQgaHIgPSByZXF1ZXN0LT5VUkwoJnVybC5HZXRCU1RSKCkp
Ow0KKyAgICBpZiAoRkFJTEVEKGhyKSkNCisgICAgICAgIHJldHVybiBFX0ZBSUw7DQorDQorICAg
IHN0ZDo6d3N0cmluZyBjb21tYW5kID0gc3RkOjp3c3RyaW5nKEwiXCIiKSArIGV4ZWN1dGFibGVQ
YXRoICsgTCJcIiAiICsgKGNvbnN0IHdjaGFyX3QqKXVybDsNCisNCisgICAgUFJPQ0VTU19JTkZP
Uk1BVElPTiBwcm9jZXNzSW5mb3JtYXRpb247DQorICAgIFNUQVJUVVBJTkZPVyBzdGFydHVwSW5m
bzsNCisgICAgbWVtc2V0KCZzdGFydHVwSW5mbywgMCwgc2l6ZW9mKHN0YXJ0dXBJbmZvKSk7DQor
ICAgIGlmICghOjpDcmVhdGVQcm9jZXNzVygwLCAoTFBXU1RSKWNvbW1hbmQuY19zdHIoKSwgMCwg
MCwgMCwgMCwgMCwgMCwgJnN0YXJ0dXBJbmZvLCAmcHJvY2Vzc0luZm9ybWF0aW9uKSkNCisgICAg
ICAgIHJldHVybiBFX0ZBSUw7DQorDQorICAgIHJldHVybiBTX09LOw0KK30NCisNCiBIUkVTVUxU
IFByaW50V2ViVUlEZWxlZ2F0ZTo6UXVlcnlJbnRlcmZhY2UoUkVGSUlEIHJpaWQsIHZvaWQqKiBw
cHZPYmplY3QpDQogew0KICAgICAqcHB2T2JqZWN0ID0gMDsNCkluZGV4OiBUb29scy9XaW5MYXVu
Y2hlci9QcmludFdlYlVJRGVsZWdhdGUuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFRvb2xzL1dpbkxhdW5j
aGVyL1ByaW50V2ViVUlEZWxlZ2F0ZS5oCShyZXZpc2lvbiAxNTY2MDIpDQorKysgVG9vbHMvV2lu
TGF1bmNoZXIvUHJpbnRXZWJVSURlbGVnYXRlLmgJKHdvcmtpbmcgY29weSkNCkBAIC0zOCw3ICsz
OCw3IEBADQogICAgIHZpcnR1YWwgVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgQWRkUmVmKHZvaWQp
Ow0KICAgICB2aXJ0dWFsIFVMT05HIFNURE1FVEhPRENBTExUWVBFIFJlbGVhc2Uodm9pZCk7DQog
DQotICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBjcmVhdGVXZWJWaWV3V2l0
aFJlcXVlc3QoSVdlYlZpZXcqLCBJV2ViVVJMUmVxdWVzdCosIElXZWJWaWV3KiopIHsgcmV0dXJu
IEVfTk9USU1QTDsgfQ0KKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgY3Jl
YXRlV2ViVmlld1dpdGhSZXF1ZXN0KElXZWJWaWV3KiwgSVdlYlVSTFJlcXVlc3QqLCBJV2ViVmll
dyoqKTsNCiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHdlYlZpZXdTaG93
KElXZWJWaWV3KikgeyByZXR1cm4gRV9OT1RJTVBMOyB9DQogICAgIHZpcnR1YWwgSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSB3ZWJWaWV3Q2xvc2UoSVdlYlZpZXcqKSB7IHJldHVybiBFX05PVElN
UEw7IH0NCiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHdlYlZpZXdGb2N1
cyhJV2ViVmlldyopIHsgcmV0dXJuIEVfTk9USU1QTDsgfQ0K
</data>

          </attachment>
      

    </bug>

</bugzilla>