<?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>50234</bug_id>
          
          <creation_ts>2010-11-30 06:52:08 -0800</creation_ts>
          <short_desc>[Win] Implement layoutTestController.findString()</short_desc>
          <delta_ts>2016-03-21 15:22:45 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, LayoutTestFailure, PlatformOnly</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Roben (:aroben)">aroben</reporter>
          <assigned_to name="Hyungwook Lee">hyungwook.lee</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>hyungwook.lee</cc>
    
    <cc>mitz</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>315003</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-11-30 06:52:08 -0800</bug_when>
    <thetext>r72887 added layoutTestController.findString and r72889 added the one test that uses it to the Skipped list. We should implement layoutTestController.findString so that we can run that test (and any future tests that are added that use it).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>315012</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-11-30 06:55:05 -0800</bug_when>
    <thetext>&lt;rdar://problem/8710643&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104343</commentid>
    <comment_count>2</comment_count>
      <attachid>255477</attachid>
    <who name="Hyungwook Lee">hyungwook.lee</who>
    <bug_when>2015-06-24 06:01:10 -0700</bug_when>
    <thetext>Created attachment 255477
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104349</commentid>
    <comment_count>3</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-06-24 06:20:03 -0700</bug_when>
    <thetext>It seems it is a Windows only patch, because it was the last
platform hasn&apos;t implemented layoutTestController.findString yet.

It would be great to add [Win] prefix to the title (and the changelog too).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104355</commentid>
    <comment_count>4</comment_count>
    <who name="Hyungwook Lee">hyungwook.lee</who>
    <bug_when>2015-06-24 07:06:13 -0700</bug_when>
    <thetext>Thanks for your feedback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104356</commentid>
    <comment_count>5</comment_count>
      <attachid>255480</attachid>
    <who name="Hyungwook Lee">hyungwook.lee</who>
    <bug_when>2015-06-24 07:12:14 -0700</bug_when>
    <thetext>Created attachment 255480
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117232</commentid>
    <comment_count>6</comment_count>
      <attachid>255480</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-08-13 09:02:00 -0700</bug_when>
    <thetext>Comment on attachment 255480
Patch

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

This patch looks great! I have to reject it because we need to move your new method to a new IWebViewPrivate interface to avoid breaking existing Windows clients.

&gt; Source/WebKit/win/Interfaces/IWebViewPrivate.idl:310
&gt; +    HRESULT findString([in] BSTR string, [in] WebFindOptions options, [out] BOOL* found);

This needs to be moved to a new interface, IWebViewPrivate2. We have existing IWebViewPrivate clients that rely on the COM binary interface to remain unchanged.

&gt; Tools/DumpRenderTree/win/TestRunnerWin.cpp:930
&gt; +    COMPtr&lt;IWebViewPrivate&gt; viewPrivate;

... this should become IWebViewPrivate2 so you can use the new method.

&gt; Tools/DumpRenderTree/win/TestRunnerWin.cpp:966
&gt; +    viewPrivate-&gt;findString(targetBSTR, static_cast&lt;WebFindOptions&gt;(options), &amp;found);

Ideally, you should be checking the RESULT from &apos;findString&apos; and handling the error case. But that may not matter in this test code. However, I think you should initialize &apos;found&apos; to FALSE in case &apos;findString&apos; bails out early leaving &apos;found&apos; in an uninitialized state.

&gt; LayoutTests/platform/win/TestExpectations:-1216
&gt; -webkit.org/b/50234 editing/text-iterator/findString.html [ Skip ]

Yay!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176838</commentid>
    <comment_count>7</comment_count>
      <attachid>274621</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-03-21 13:53:40 -0700</bug_when>
    <thetext>Created attachment 274621
Revised patch based on ToT and passing tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176839</commentid>
    <comment_count>8</comment_count>
      <attachid>274621</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-03-21 13:54:03 -0700</bug_when>
    <thetext>Comment on attachment 274621
Revised patch based on ToT and passing tests.

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

&gt; LayoutTests/platform/win/TestExpectations:138
&gt; +#http/tests/download/ [ Skip ]

Whoops! Don&apos;t want this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176845</commentid>
    <comment_count>9</comment_count>
      <attachid>274621</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-03-21 14:32:23 -0700</bug_when>
    <thetext>Comment on attachment 274621
Revised patch based on ToT and passing tests.

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

&gt; Source/WebKit/win/ChangeLog:22
&gt; +        * WebDownloadCFNet.cpp: Remove extra CFRelease.

This second chunk of stuff shouldn&apos;t be here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176848</commentid>
    <comment_count>10</comment_count>
      <attachid>274621</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-03-21 14:48:49 -0700</bug_when>
    <thetext>Comment on attachment 274621
Revised patch based on ToT and passing tests.

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

&gt; Tools/ChangeLog:-1
&gt; -2016-03-20  Dan Bernstein  &lt;mitz@apple.com&gt;

Don&apos;t want this, either.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176857</commentid>
    <comment_count>11</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-03-21 15:22:45 -0700</bug_when>
    <thetext>Committed in r198501 &lt;http://trac.webkit.org/changeset/198501&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>255477</attachid>
            <date>2015-06-24 06:01:10 -0700</date>
            <delta_ts>2015-06-24 07:12:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>7619</size>
            <attacher name="Hyungwook Lee">hyungwook.lee</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NTkwNikKKysrIFNvdXJjZS9XZWJLaXQv
d2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE1LTA2LTI0
ICBIeXVuZ3dvb2sgTGVlICA8aHl1bmd3b29rLmxlZUBuYXZlcmNvcnAuY29tPgorCisgICAgICAg
IEltcGxlbWVudCBsYXlvdXRUZXN0Q29udHJvbGxlci5maW5kU3RyaW5nLiAKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMjM0IAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBUZXN0UnVubmVy
OjpmaW5kU3RyaW5nKCkgJiBXZWJWaWV3OjpmaW5kU3RyaW5nKCkgcHJpdmF0ZSBBUEkKKworICAg
ICAgICAqIEludGVyZmFjZXMvSVdlYlZpZXdQcml2YXRlLmlkbDoKKyAgICAgICAgKiBXZWJWaWV3
LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OmRpc3BhdGNoUGVuZGluZ0xvYWRSZXF1ZXN0cyk6Cisg
ICAgICAgIChXZWJWaWV3OjpmaW5kU3RyaW5nKToKKyAgICAgICAgKiBXZWJWaWV3Lmg6CisKIDIw
MTUtMDYtMjMgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZW1vdmUgd2luZG93UmVzaXplclJlY3QgY29kZSwgbm9ib2R5IGlzIHVzaW5nIGl0IGFueW1v
cmUKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCShyZXZpc2lvbiAxODU5MDQpCisrKyBTb3VyY2Uv
V2ViS2l0L3dpbi9XZWJWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzEzMiwzICs3MTMyLDkg
QEAgSFJFU1VMVCBXZWJWaWV3OjpkaXNwYXRjaFBlbmRpbmdMb2FkUmVxdQogICAgIHJlc291cmNl
TG9hZFNjaGVkdWxlcigpLT5zZXJ2ZVBlbmRpbmdSZXF1ZXN0cygpOwogICAgIHJldHVybiBTX09L
OwogfQorCitIUkVTVUxUIFdlYlZpZXc6OmZpbmRTdHJpbmcoQlNUUiBzdHJpbmcsIFdlYkZpbmRP
cHRpb25zIG9wdGlvbnMsIEJPT0wqIGZvdW5kKQoreworICAgICpmb3VuZCA9IG1fcGFnZS0+Zmlu
ZFN0cmluZyh0b1N0cmluZyhzdHJpbmcpLCBvcHRpb25zKTsKKyAgICByZXR1cm4gU19PSzsKK30K
SW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L3dpbi9XZWJWaWV3LmgJKHJldmlzaW9uIDE4NTkwNCkKKysrIFNvdXJjZS9XZWJLaXQv
d2luL1dlYlZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMTAyMiw2ICsxMDIyLDcgQEAgcHJpdmF0
ZToKICAgICBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldExvYWRSZXNvdXJjZXNTZXJpYWxs
eShCT09MKTsKICAgICBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNjYWxlV2ViVmlldyhkb3Vi
bGUgc2NhbGUsIFBPSU5UIG9yaWdpbik7CiAgICAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBk
aXNwYXRjaFBlbmRpbmdMb2FkUmVxdWVzdHMoKTsKKyAgICBIUkVTVUxUIFNURE1FVEhPRENBTExU
WVBFIGZpbmRTdHJpbmcoQlNUUiwgV2ViRmluZE9wdGlvbnMsIEJPT0wqKTsKIAogcHJvdGVjdGVk
OgogICAgIHN0YXRpYyBib29sIHJlZ2lzdGVyV2ViVmlld1dpbmRvd0NsYXNzKCk7CkluZGV4OiBT
b3VyY2UvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJWaWV3UHJpdmF0ZS5pZGwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViVmlld1ByaXZhdGUuaWRsCShy
ZXZpc2lvbiAxODU5MDQpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJWaWV3
UHJpdmF0ZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTUwLDYgKzUwLDE1IEBAIHR5cGVkZWYgZW51
bSB7CiAgICAgV2ViSW5qZWN0QXREb2N1bWVudEVuZCwKIH0gV2ViVXNlclNjcmlwdEluamVjdGlv
blRpbWU7CiAKK3R5cGVkZWYgZW51bSB7CisgICAgV2ViRmluZE9wdGlvbnNDYXNlSW5zZW5zaXRp
dmUgPSAxIDw8IDAsCisgICAgV2ViRmluZE9wdGlvbnNBdFdvcmRTdGFydHMgPSAxIDw8IDEsCisg
ICAgV2ViRmluZE9wdGlvbnNUcmVhdE1lZGlhbENhcGl0YWxBc1dvcmRTdGFydCA9IDEgPDwgMiwK
KyAgICBXZWJGaW5kT3B0aW9uc0JhY2t3YXJkcyA9IDEgPDwgMywKKyAgICBXZWJGaW5kT3B0aW9u
c1dyYXBBcm91bmQgPSAxIDw8IDQsCisgICAgV2ViRmluZE9wdGlvbnNTdGFydEluU2VsZWN0aW9u
ID0gMSA8PCA1Cit9IFdlYkZpbmRPcHRpb25zOworCiBbCiAgICAgb2JqZWN0LAogICAgIG9sZWF1
dG9tYXRpb24sCkBAIC0yOTcsNCArMzA2LDYgQEAgaW50ZXJmYWNlIElXZWJWaWV3UHJpdmF0ZSA6
IElVbmtub3duCiAgICAgSFJFU1VMVCBzY2FsZVdlYlZpZXcoW2luXSBkb3VibGUgc2NhbGUsIFtp
bl0gUE9JTlQgb3JpZ2luKTsKIAogICAgIEhSRVNVTFQgZGlzcGF0Y2hQZW5kaW5nTG9hZFJlcXVl
c3RzKCk7CisKKyAgICBIUkVTVUxUIGZpbmRTdHJpbmcoW2luXSBCU1RSIHN0cmluZywgW2luXSBX
ZWJGaW5kT3B0aW9ucyBvcHRpb25zLCBbb3V0XSBCT09MKiBmb3VuZCk7CiB9CkluZGV4OiBUb29s
cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxODU5
MDYpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAor
MjAxNS0wNi0yNCAgSHl1bmd3b29rIExlZSAgPGh5dW5nd29vay5sZWVAbmF2ZXJjb3JwLmNvbT4K
KworICAgICAgICBJbXBsZW1lbnQgbGF5b3V0VGVzdENvbnRyb2xsZXIuZmluZFN0cmluZy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMjM0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IFRl
c3RSdW5uZXI6OmZpbmRTdHJpbmcoKSAmIFdlYlZpZXc6OmZpbmRTdHJpbmcoKSBwcml2YXRlIEFQ
SQorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwOgorICAg
ICAgICAoVGVzdFJ1bm5lcjo6ZXhlY0NvbW1hbmQpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6Zmlu
ZFN0cmluZyk6CisgICAgICAgIChUZXN0UnVubmVyOjpzZXRDYWNoZU1vZGVsKToKKwogMjAxNS0w
Ni0yMyAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1QGFwcGxlLmNvbT4KIAogICAgICAgICBSZWZhY3Rv
cmluZyBiZW5jaG1hcmsgcnVubmVyIHNjcmlwdCB0byBmb2xsb3cgcGVwOCBjb2RlIHN0eWxlLgpJ
bmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcAkocmV2aXNp
b24gMTg1OTA0KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC05MjEsMTEgKzkyMSw1MCBAQCB2b2lkIFRlc3RSdW5uZXI6OmV4
ZWNDb21tYW5kKEpTU3RyaW5nUmVmCiAgICAgdmlld1ByaXZhdGUtPmV4ZWN1dGVDb3JlQ29tbWFu
ZEJ5TmFtZShuYW1lQlNUUiwgdmFsdWVCU1RSKTsKIH0KIAotYm9vbCBUZXN0UnVubmVyOjpmaW5k
U3RyaW5nKEpTQ29udGV4dFJlZiAvKiBjb250ZXh0ICovLCBKU1N0cmluZ1JlZiAvKiB0YXJnZXQg
Ki8sIEpTT2JqZWN0UmVmIC8qIG9wdGlvbnNBcnJheSAqLykKK2Jvb2wgVGVzdFJ1bm5lcjo6Zmlu
ZFN0cmluZyhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNTdHJpbmdSZWYgdGFyZ2V0LCBKU09iamVj
dFJlZiBvcHRpb25zQXJyYXkpCiB7Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudAotICAgIHByaW50
ZigiRVJST1I6IFRlc3RSdW5uZXI6OmZpbmRTdHJpbmcoLi4uKSBub3QgaW1wbGVtZW50ZWRcbiIp
OwotICAgIHJldHVybiBmYWxzZTsKKyAgICBDT01QdHI8SVdlYlZpZXc+IHdlYlZpZXc7CisgICAg
aWYgKEZBSUxFRChmcmFtZS0+d2ViVmlldygmd2ViVmlldykpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBDT01QdHI8SVdlYlZpZXdQcml2YXRlPiB2aWV3UHJpdmF0ZTsKKyAgICBpZiAo
RkFJTEVEKHdlYlZpZXctPlF1ZXJ5SW50ZXJmYWNlKCZ2aWV3UHJpdmF0ZSkpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICB1bnNpZ25lZCBjaGFyIG9wdGlvbnMgPSAwOworCisgICAgSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGxlbmd0aFByb3BlcnR5TmFtZShBZG9wdCwgSlNTdHJpbmdD
cmVhdGVXaXRoVVRGOENTdHJpbmcoImxlbmd0aCIpKTsKKyAgICBKU1ZhbHVlUmVmIGxlbmd0aFZh
bHVlID0gSlNPYmplY3RHZXRQcm9wZXJ0eShjb250ZXh0LCBvcHRpb25zQXJyYXksIGxlbmd0aFBy
b3BlcnR5TmFtZS5nZXQoKSwgMCk7CisgICAgaWYgKCFKU1ZhbHVlSXNOdW1iZXIoY29udGV4dCwg
bGVuZ3RoVmFsdWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBfYnN0cl90IHRhcmdl
dEJTVFIoSlNTdHJpbmdDb3B5QlNUUih0YXJnZXQpLCBmYWxzZSk7CisKKyAgICBzaXplX3QgbGVu
Z3RoID0gc3RhdGljX2Nhc3Q8c2l6ZV90PihKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgbGVuZ3Ro
VmFsdWUsIDApKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7Cisg
ICAgICAgIEpTVmFsdWVSZWYgdmFsdWUgPSBKU09iamVjdEdldFByb3BlcnR5QXRJbmRleChjb250
ZXh0LCBvcHRpb25zQXJyYXksIGksIDApOworICAgICAgICBpZiAoIUpTVmFsdWVJc1N0cmluZyhj
b250ZXh0LCB2YWx1ZSkpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gb3B0aW9uTmFtZShBZG9wdCwgSlNWYWx1ZVRvU3RyaW5nQ29weShj
b250ZXh0LCB2YWx1ZSwgMCkpOworCisgICAgICAgIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhD
U3RyaW5nKG9wdGlvbk5hbWUuZ2V0KCksICJDYXNlSW5zZW5zaXRpdmUiKSkKKyAgICAgICAgICAg
IG9wdGlvbnMgfD0gV2ViRmluZE9wdGlvbnNDYXNlSW5zZW5zaXRpdmU7CisgICAgICAgIGVsc2Ug
aWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcob3B0aW9uTmFtZS5nZXQoKSwgIkF0V29y
ZFN0YXJ0cyIpKQorICAgICAgICAgICAgb3B0aW9ucyB8PSBXZWJGaW5kT3B0aW9uc0F0V29yZFN0
YXJ0czsKKyAgICAgICAgZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhvcHRp
b25OYW1lLmdldCgpLCAiVHJlYXRNZWRpYWxDYXBpdGFsQXNXb3JkU3RhcnQiKSkKKyAgICAgICAg
ICAgIG9wdGlvbnMgfD0gV2ViRmluZE9wdGlvbnNUcmVhdE1lZGlhbENhcGl0YWxBc1dvcmRTdGFy
dDsKKyAgICAgICAgZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhvcHRpb25O
YW1lLmdldCgpLCAiQmFja3dhcmRzIikpCisgICAgICAgICAgICBvcHRpb25zIHw9IFdlYkZpbmRP
cHRpb25zQmFja3dhcmRzOworICAgICAgICBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhD
U3RyaW5nKG9wdGlvbk5hbWUuZ2V0KCksICJXcmFwQXJvdW5kIikpCisgICAgICAgICAgICBvcHRp
b25zIHw9IFdlYkZpbmRPcHRpb25zV3JhcEFyb3VuZDsKKyAgICAgICAgZWxzZSBpZiAoSlNTdHJp
bmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhvcHRpb25OYW1lLmdldCgpLCAiU3RhcnRJblNlbGVjdGlv
biIpKQorICAgICAgICAgICAgb3B0aW9ucyB8PSBXZWJGaW5kT3B0aW9uc1N0YXJ0SW5TZWxlY3Rp
b247CisgICAgfQorCisgICAgQk9PTCBmb3VuZDsKKyAgICB2aWV3UHJpdmF0ZS0+ZmluZFN0cmlu
Zyh0YXJnZXRCU1RSLCBzdGF0aWNfY2FzdDxXZWJGaW5kT3B0aW9ucz4ob3B0aW9ucyksICZmb3Vu
ZCk7CisgICAgcmV0dXJuIGZvdW5kOwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OnNldENhY2hlTW9k
ZWwoaW50IGNhY2hlTW9kZWwpCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxODU5MDYpCisrKyBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxNS0wNi0y
NCAgSHl1bmd3b29rIExlZSAgPGh5dW5nd29vay5sZWVAbmF2ZXJjb3JwLmNvbT4KKworICAgICAg
ICBJbXBsZW1lbnQgbGF5b3V0VGVzdENvbnRyb2xsZXIuZmluZFN0cmluZy4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMjM0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IFRlc3RSdW5uZXI6
OmZpbmRTdHJpbmcoKSAmIFdlYlZpZXc6OmZpbmRTdHJpbmcoKSBwcml2YXRlIEFQSQorCisgICAg
ICAgICogcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTUtMDYtMjMgIE15bGVz
IEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBbT1MgWF0gUmVi
YXNlbGluZSBmYXN0L3RleHQvZm9udC13ZWlnaHR7LC16aH0uaHRtbCBmb3IgRWwgQ2FwaXRhbgpJ
bmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9u
IDE4NTkwNCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCSh3
b3JraW5nIGNvcHkpCkBAIC0xMjEyLDggKzEyMTIsNiBAQCBlZGl0aW5nL2luc2VydGluZy9zbWFy
dC1xdW90ZS13aXRoLWFsbC1jCiAjIyMjIyMgVGV4dCBJdGVyYXRvcgogIyBQbGFpbiB0ZXh0IGNv
bnRyb2xsZXIgY3VycmVudGx5IGluIE1hYyBEdW1wUmVuZGVyVHJlZSBvbmx5LgogZWRpdGluZy90
ZXh0LWl0ZXJhdG9yIFsgU2tpcCBdCi0jIFRPRE8gTWlzc2luZyB0ZXN0UnVubmVyLmZpbmRTdHJp
bmcoKQotd2Via2l0Lm9yZy9iLzUwMjM0IGVkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5n
Lmh0bWwgWyBTa2lwIF0KIAogIyMjIyMjIFRPRE8gU3BlbGxjaGVja2VyIGlzIG5vdCBpbXBsZW1l
bnRlZC4gU2tpcCB0aGVzZSB0ZXN0Lgogd2Via2l0Lm9yZy9iLzY2NjIwIGVkaXRpbmcvc3BlbGxp
bmcvc3BlbGxpbmctaW5zZXJ0LWh0bWwuaHRtbCBbIFNraXAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>255480</attachid>
            <date>2015-06-24 07:12:14 -0700</date>
            <delta_ts>2016-03-21 13:53:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>7643</size>
            <attacher name="Hyungwook Lee">hyungwook.lee</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NTkwNikKKysrIFNvdXJjZS9XZWJLaXQv
d2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE1LTA2LTI0
ICBIeXVuZ3dvb2sgTGVlICA8aHl1bmd3b29rLmxlZUBuYXZlcmNvcnAuY29tPgorCisgICAgICAg
IFtXaW5dIEltcGxlbWVudCBsYXlvdXRUZXN0Q29udHJvbGxlci5maW5kU3RyaW5nKCkuIAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAyMzQgCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IFRl
c3RSdW5uZXI6OmZpbmRTdHJpbmcoKSAmIFdlYlZpZXc6OmZpbmRTdHJpbmcoKSBwcml2YXRlIEFQ
SQorCisgICAgICAgICogSW50ZXJmYWNlcy9JV2ViVmlld1ByaXZhdGUuaWRsOgorICAgICAgICAq
IFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6ZGlzcGF0Y2hQZW5kaW5nTG9hZFJlcXVl
c3RzKToKKyAgICAgICAgKFdlYlZpZXc6OmZpbmRTdHJpbmcpOgorICAgICAgICAqIFdlYlZpZXcu
aDoKKwogMjAxNS0wNi0yMyAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgog
CiAgICAgICAgIFJlbW92ZSB3aW5kb3dSZXNpemVyUmVjdCBjb2RlLCBub2JvZHkgaXMgdXNpbmcg
aXQgYW55bW9yZQpJbmRleDogU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAJKHJldmlzaW9uIDE4NTkwNCkKKysr
IFNvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MTMyLDMg
KzcxMzIsOSBAQCBIUkVTVUxUIFdlYlZpZXc6OmRpc3BhdGNoUGVuZGluZ0xvYWRSZXF1CiAgICAg
cmVzb3VyY2VMb2FkU2NoZWR1bGVyKCktPnNlcnZlUGVuZGluZ1JlcXVlc3RzKCk7CiAgICAgcmV0
dXJuIFNfT0s7CiB9CisKK0hSRVNVTFQgV2ViVmlldzo6ZmluZFN0cmluZyhCU1RSIHN0cmluZywg
V2ViRmluZE9wdGlvbnMgb3B0aW9ucywgQk9PTCogZm91bmQpCit7CisgICAgKmZvdW5kID0gbV9w
YWdlLT5maW5kU3RyaW5nKHRvU3RyaW5nKHN0cmluZyksIG9wdGlvbnMpOworICAgIHJldHVybiBT
X09LOworfQpJbmRleDogU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuaAkocmV2aXNpb24gMTg1OTA0KQorKysgU291cmNl
L1dlYktpdC93aW4vV2ViVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIyLDYgKzEwMjIsNyBA
QCBwcml2YXRlOgogICAgIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0TG9hZFJlc291cmNl
c1NlcmlhbGx5KEJPT0wpOwogICAgIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2NhbGVXZWJW
aWV3KGRvdWJsZSBzY2FsZSwgUE9JTlQgb3JpZ2luKTsKICAgICBIUkVTVUxUIFNURE1FVEhPRENB
TExUWVBFIGRpc3BhdGNoUGVuZGluZ0xvYWRSZXF1ZXN0cygpOworICAgIEhSRVNVTFQgU1RETUVU
SE9EQ0FMTFRZUEUgZmluZFN0cmluZyhCU1RSLCBXZWJGaW5kT3B0aW9ucywgQk9PTCopOwogCiBw
cm90ZWN0ZWQ6CiAgICAgc3RhdGljIGJvb2wgcmVnaXN0ZXJXZWJWaWV3V2luZG93Q2xhc3MoKTsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlZpZXdQcml2YXRlLmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJWaWV3UHJpdmF0
ZS5pZGwJKHJldmlzaW9uIDE4NTkwNCkKKysrIFNvdXJjZS9XZWJLaXQvd2luL0ludGVyZmFjZXMv
SVdlYlZpZXdQcml2YXRlLmlkbAkod29ya2luZyBjb3B5KQpAQCAtNTAsNiArNTAsMTUgQEAgdHlw
ZWRlZiBlbnVtIHsKICAgICBXZWJJbmplY3RBdERvY3VtZW50RW5kLAogfSBXZWJVc2VyU2NyaXB0
SW5qZWN0aW9uVGltZTsKIAordHlwZWRlZiBlbnVtIHsKKyAgICBXZWJGaW5kT3B0aW9uc0Nhc2VJ
bnNlbnNpdGl2ZSA9IDEgPDwgMCwKKyAgICBXZWJGaW5kT3B0aW9uc0F0V29yZFN0YXJ0cyA9IDEg
PDwgMSwKKyAgICBXZWJGaW5kT3B0aW9uc1RyZWF0TWVkaWFsQ2FwaXRhbEFzV29yZFN0YXJ0ID0g
MSA8PCAyLAorICAgIFdlYkZpbmRPcHRpb25zQmFja3dhcmRzID0gMSA8PCAzLAorICAgIFdlYkZp
bmRPcHRpb25zV3JhcEFyb3VuZCA9IDEgPDwgNCwKKyAgICBXZWJGaW5kT3B0aW9uc1N0YXJ0SW5T
ZWxlY3Rpb24gPSAxIDw8IDUKK30gV2ViRmluZE9wdGlvbnM7CisKIFsKICAgICBvYmplY3QsCiAg
ICAgb2xlYXV0b21hdGlvbiwKQEAgLTI5Nyw0ICszMDYsNiBAQCBpbnRlcmZhY2UgSVdlYlZpZXdQ
cml2YXRlIDogSVVua25vd24KICAgICBIUkVTVUxUIHNjYWxlV2ViVmlldyhbaW5dIGRvdWJsZSBz
Y2FsZSwgW2luXSBQT0lOVCBvcmlnaW4pOwogCiAgICAgSFJFU1VMVCBkaXNwYXRjaFBlbmRpbmdM
b2FkUmVxdWVzdHMoKTsKKworICAgIEhSRVNVTFQgZmluZFN0cmluZyhbaW5dIEJTVFIgc3RyaW5n
LCBbaW5dIFdlYkZpbmRPcHRpb25zIG9wdGlvbnMsIFtvdXRdIEJPT0wqIGZvdW5kKTsKIH0KSW5k
ZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDE4NTkwNikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDE3IEBACisyMDE1LTA2LTI0ICBIeXVuZ3dvb2sgTGVlICA8aHl1bmd3b29rLmxlZUBuYXZlcmNv
cnAuY29tPgorCisgICAgICAgIFtXaW5dIEltcGxlbWVudCBsYXlvdXRUZXN0Q29udHJvbGxlci5m
aW5kU3RyaW5nKCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD01MDIzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEltcGxlbWVudCBUZXN0UnVubmVyOjpmaW5kU3RyaW5nKCkgJiBXZWJWaWV3OjpmaW5kU3Ry
aW5nKCkgcHJpdmF0ZSBBUEkKKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVu
bmVyV2luLmNwcDoKKyAgICAgICAgKFRlc3RSdW5uZXI6OmV4ZWNDb21tYW5kKToKKyAgICAgICAg
KFRlc3RSdW5uZXI6OmZpbmRTdHJpbmcpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c2V0Q2FjaGVN
b2RlbCk6CisKIDIwMTUtMDYtMjMgIERld2VpIFpodSAgPGRld2VpX3podUBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmVmYWN0b3JpbmcgYmVuY2htYXJrIHJ1bm5lciBzY3JpcHQgdG8gZm9sbG93IHBl
cDggY29kZSBzdHlsZS4KSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVy
V2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5l
cldpbi5jcHAJKHJldmlzaW9uIDE4NTkwNCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9U
ZXN0UnVubmVyV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTIxLDExICs5MjEsNTAgQEAgdm9p
ZCBUZXN0UnVubmVyOjpleGVjQ29tbWFuZChKU1N0cmluZ1JlZgogICAgIHZpZXdQcml2YXRlLT5l
eGVjdXRlQ29yZUNvbW1hbmRCeU5hbWUobmFtZUJTVFIsIHZhbHVlQlNUUik7CiB9CiAKLWJvb2wg
VGVzdFJ1bm5lcjo6ZmluZFN0cmluZyhKU0NvbnRleHRSZWYgLyogY29udGV4dCAqLywgSlNTdHJp
bmdSZWYgLyogdGFyZ2V0ICovLCBKU09iamVjdFJlZiAvKiBvcHRpb25zQXJyYXkgKi8pCitib29s
IFRlc3RSdW5uZXI6OmZpbmRTdHJpbmcoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTU3RyaW5nUmVm
IHRhcmdldCwgSlNPYmplY3RSZWYgb3B0aW9uc0FycmF5KQogewotICAgIC8vIEZJWE1FOiBJbXBs
ZW1lbnQKLSAgICBwcmludGYoIkVSUk9SOiBUZXN0UnVubmVyOjpmaW5kU3RyaW5nKC4uLikgbm90
IGltcGxlbWVudGVkXG4iKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgQ09NUHRyPElXZWJWaWV3
PiB3ZWJWaWV3OworICAgIGlmIChGQUlMRUQoZnJhbWUtPndlYlZpZXcoJndlYlZpZXcpKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQ09NUHRyPElXZWJWaWV3UHJpdmF0ZT4gdmlld1By
aXZhdGU7CisgICAgaWYgKEZBSUxFRCh3ZWJWaWV3LT5RdWVyeUludGVyZmFjZSgmdmlld1ByaXZh
dGUpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgdW5zaWduZWQgY2hhciBvcHRpb25z
ID0gMDsKKworICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBsZW5ndGhQcm9wZXJ0eU5hbWUo
QWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJsZW5ndGgiKSk7CisgICAgSlNW
YWx1ZVJlZiBsZW5ndGhWYWx1ZSA9IEpTT2JqZWN0R2V0UHJvcGVydHkoY29udGV4dCwgb3B0aW9u
c0FycmF5LCBsZW5ndGhQcm9wZXJ0eU5hbWUuZ2V0KCksIDApOworICAgIGlmICghSlNWYWx1ZUlz
TnVtYmVyKGNvbnRleHQsIGxlbmd0aFZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgX2JzdHJfdCB0YXJnZXRCU1RSKEpTU3RyaW5nQ29weUJTVFIodGFyZ2V0KSwgZmFsc2UpOwor
CisgICAgc2l6ZV90IGxlbmd0aCA9IHN0YXRpY19jYXN0PHNpemVfdD4oSlNWYWx1ZVRvTnVtYmVy
KGNvbnRleHQsIGxlbmd0aFZhbHVlLCAwKSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBs
ZW5ndGg7ICsraSkgeworICAgICAgICBKU1ZhbHVlUmVmIHZhbHVlID0gSlNPYmplY3RHZXRQcm9w
ZXJ0eUF0SW5kZXgoY29udGV4dCwgb3B0aW9uc0FycmF5LCBpLCAwKTsKKyAgICAgICAgaWYgKCFK
U1ZhbHVlSXNTdHJpbmcoY29udGV4dCwgdmFsdWUpKQorICAgICAgICAgICAgY29udGludWU7CisK
KyAgICAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IG9wdGlvbk5hbWUoQWRvcHQsIEpTVmFs
dWVUb1N0cmluZ0NvcHkoY29udGV4dCwgdmFsdWUsIDApKTsKKworICAgICAgICBpZiAoSlNTdHJp
bmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhvcHRpb25OYW1lLmdldCgpLCAiQ2FzZUluc2Vuc2l0aXZl
IikpCisgICAgICAgICAgICBvcHRpb25zIHw9IFdlYkZpbmRPcHRpb25zQ2FzZUluc2Vuc2l0aXZl
OworICAgICAgICBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG9wdGlvbk5h
bWUuZ2V0KCksICJBdFdvcmRTdGFydHMiKSkKKyAgICAgICAgICAgIG9wdGlvbnMgfD0gV2ViRmlu
ZE9wdGlvbnNBdFdvcmRTdGFydHM7CisgICAgICAgIGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRv
VVRGOENTdHJpbmcob3B0aW9uTmFtZS5nZXQoKSwgIlRyZWF0TWVkaWFsQ2FwaXRhbEFzV29yZFN0
YXJ0IikpCisgICAgICAgICAgICBvcHRpb25zIHw9IFdlYkZpbmRPcHRpb25zVHJlYXRNZWRpYWxD
YXBpdGFsQXNXb3JkU3RhcnQ7CisgICAgICAgIGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRG
OENTdHJpbmcob3B0aW9uTmFtZS5nZXQoKSwgIkJhY2t3YXJkcyIpKQorICAgICAgICAgICAgb3B0
aW9ucyB8PSBXZWJGaW5kT3B0aW9uc0JhY2t3YXJkczsKKyAgICAgICAgZWxzZSBpZiAoSlNTdHJp
bmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhvcHRpb25OYW1lLmdldCgpLCAiV3JhcEFyb3VuZCIpKQor
ICAgICAgICAgICAgb3B0aW9ucyB8PSBXZWJGaW5kT3B0aW9uc1dyYXBBcm91bmQ7CisgICAgICAg
IGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcob3B0aW9uTmFtZS5nZXQoKSwg
IlN0YXJ0SW5TZWxlY3Rpb24iKSkKKyAgICAgICAgICAgIG9wdGlvbnMgfD0gV2ViRmluZE9wdGlv
bnNTdGFydEluU2VsZWN0aW9uOworICAgIH0KKworICAgIEJPT0wgZm91bmQ7CisgICAgdmlld1By
aXZhdGUtPmZpbmRTdHJpbmcodGFyZ2V0QlNUUiwgc3RhdGljX2Nhc3Q8V2ViRmluZE9wdGlvbnM+
KG9wdGlvbnMpLCAmZm91bmQpOworICAgIHJldHVybiBmb3VuZDsKIH0KIAogdm9pZCBUZXN0UnVu
bmVyOjpzZXRDYWNoZU1vZGVsKGludCBjYWNoZU1vZGVsKQpJbmRleDogTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTg1
OTA2KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMTUtMDYtMjQgIEh5dW5nd29vayBMZWUgIDxoeXVuZ3dvb2subGVlQG5hdmVyY29y
cC5jb20+CisKKyAgICAgICAgW1dpbl0gSW1wbGVtZW50IGxheW91dFRlc3RDb250cm9sbGVyLmZp
bmRTdHJpbmcoKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTUwMjM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW1wbGVtZW50IFRlc3RSdW5uZXI6OmZpbmRTdHJpbmcoKSAmIFdlYlZpZXc6OmZpbmRTdHJp
bmcoKSBwcml2YXRlIEFQSQorCisgICAgICAgICogcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlv
bnM6CisKIDIwMTUtMDYtMjMgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNv
bT4KIAogICAgICAgICBbT1MgWF0gUmViYXNlbGluZSBmYXN0L3RleHQvZm9udC13ZWlnaHR7LC16
aH0uaHRtbCBmb3IgRWwgQ2FwaXRhbgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rl
c3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rl
c3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDE4NTkwNCkKKysrIExheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC0xMjEyLDggKzEyMTIsNiBA
QCBlZGl0aW5nL2luc2VydGluZy9zbWFydC1xdW90ZS13aXRoLWFsbC1jCiAjIyMjIyMgVGV4dCBJ
dGVyYXRvcgogIyBQbGFpbiB0ZXh0IGNvbnRyb2xsZXIgY3VycmVudGx5IGluIE1hYyBEdW1wUmVu
ZGVyVHJlZSBvbmx5LgogZWRpdGluZy90ZXh0LWl0ZXJhdG9yIFsgU2tpcCBdCi0jIFRPRE8gTWlz
c2luZyB0ZXN0UnVubmVyLmZpbmRTdHJpbmcoKQotd2Via2l0Lm9yZy9iLzUwMjM0IGVkaXRpbmcv
dGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLmh0bWwgWyBTa2lwIF0KIAogIyMjIyMjIFRPRE8gU3Bl
bGxjaGVja2VyIGlzIG5vdCBpbXBsZW1lbnRlZC4gU2tpcCB0aGVzZSB0ZXN0Lgogd2Via2l0Lm9y
Zy9iLzY2NjIwIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctaW5zZXJ0LWh0bWwuaHRtbCBbIFNr
aXAgXQo=
</data>
<flag name="review"
          id="280556"
          type_id="1"
          status="-"
          setter="bfulgham"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274621</attachid>
            <date>2016-03-21 13:53:40 -0700</date>
            <delta_ts>2016-03-21 14:48:49 -0700</delta_ts>
            <desc>Revised patch based on ToT and passing tests.</desc>
            <filename>brent.patch</filename>
            <type>text/plain</type>
            <size>16541</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE5ODQ5NCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE2LTAzLTIxICBIeXVuZ3dvb2sgTGVlICA8
aHl1bmd3b29rLmxlZUBuYXZlcmNvcnAuY29tPgorCisgICAgICAgIFtXaW5dIENvbm5lY3QgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZmluZFN0cmluZygpIHRvIHN1cHBvcnQgdGVzdGluZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAyMzQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL3dpbi9U
ZXN0RXhwZWN0YXRpb25zOiBVbnNraXAgdGVzdC4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vZWRp
dGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAx
Ni0wMy0yMSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZGQgYSBXZWJSVEMgc3BlY2lmaWMgY29tcGlsZSBmbGFnCkluZGV4OiBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTk4NDk0KQorKysgTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTEz
NSw3ICsxMzUsNyBAQAogaHR0cC90ZXN0cy9hcHBjYWNoZS8gWyBTa2lwIF0KIAogIyBUT0RPIE5l
ZWRzIGN1c3RvbSBwb2xpY3kgZGVsZWdhdGUgZW5oYW5jZW1lbnQgaW4gRFJUCi1odHRwL3Rlc3Rz
L2Rvd25sb2FkLyBbIFNraXAgXQorI2h0dHAvdGVzdHMvZG93bmxvYWQvIFsgU2tpcCBdCiAKICMg
VE9ETyBOZWVkcyBzY2hlZHVsZUFzeW5jaHJvbm91c0NsaWNrIG1ldGhvZCBmb3IgRXZlbnRTZW5k
ZXIKIGZhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLWNsaWNrLWluLWlmcmFtZS5odG1sIFsgU2tp
cCBdCkBAIC0xMjU1LDggKzEyNTUsNyBAQAogIyMjIyMjIFRleHQgSXRlcmF0b3IKICMgUGxhaW4g
dGV4dCBjb250cm9sbGVyIGN1cnJlbnRseSBpbiBNYWMgRHVtcFJlbmRlclRyZWUgb25seS4KIGVk
aXRpbmcvdGV4dC1pdGVyYXRvciBbIFNraXAgXQotIyBUT0RPIE1pc3NpbmcgdGVzdFJ1bm5lci5m
aW5kU3RyaW5nKCkKLXdlYmtpdC5vcmcvYi81MDIzNCBlZGl0aW5nL3RleHQtaXRlcmF0b3IvZmlu
ZFN0cmluZy5odG1sIFsgU2tpcCBdCitlZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy5o
dG1sIFsgUGFzcyBdCiAKICMjIyMjIyBUT0RPIFNwZWxsY2hlY2tlciBpcyBub3QgaW1wbGVtZW50
ZWQuIFNraXAgdGhlc2UgdGVzdC4KIHdlYmtpdC5vcmcvYi82NjYyMCBlZGl0aW5nL3NwZWxsaW5n
L3NwZWxsaW5nLWluc2VydC1odG1sLmh0bWwgWyBTa2lwIF0KSW5kZXg6IExheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi9lZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2VkaXRpbmcvdGV4dC1pdGVy
YXRvci9maW5kU3RyaW5nLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW4vZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmctZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTc2IEBACitTZWFyY2hpbmcgZm9yIOKAmG/i
gJkgaW4g4oCYTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXTigJkgd2l0aCBvcHRpb25zIFtdOgor
UEFTUzogR290IGEgbWF0Y2ggYXQgMSwyIGFzIGV4cGVjdGVkLgorUEFTUzogR290IGEgbWF0Y2gg
YXQgMTMsMTQgYXMgZXhwZWN0ZWQuCitQQVNTOiBHb3QgYSBtYXRjaCBhdCAxNSwxNiBhcyBleHBl
Y3RlZC4KK1BBU1M6IEdvdCBubyBtYXRjaCBhcyBleHBlY3RlZC4KKworU2VhcmNoaW5nIGZvciDi
gJhv4oCZIGluIOKAmExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV04oCZIHdpdGggb3B0aW9ucyBb
V3JhcEFyb3VuZF06CitQQVNTOiBHb3QgYSBtYXRjaCBhdCAxLDIgYXMgZXhwZWN0ZWQuCitQQVNT
OiBHb3QgYSBtYXRjaCBhdCAxMywxNCBhcyBleHBlY3RlZC4KK1BBU1M6IEdvdCBhIG1hdGNoIGF0
IDE1LDE2IGFzIGV4cGVjdGVkLgorUEFTUzogR290IGEgbWF0Y2ggYXQgMSwyIGFzIGV4cGVjdGVk
LgorCitTZWFyY2hpbmcgZm9yIOKAmG/igJkgaW4g4oCYTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFt
ZXTigJkgd2l0aCBvcHRpb25zIFtCYWNrd2FyZHNdOgorUEFTUzogR290IGEgbWF0Y2ggYXQgMTUs
MTYgYXMgZXhwZWN0ZWQuCitQQVNTOiBHb3QgYSBtYXRjaCBhdCAxMywxNCBhcyBleHBlY3RlZC4K
K1BBU1M6IEdvdCBhIG1hdGNoIGF0IDEsMiBhcyBleHBlY3RlZC4KK1BBU1M6IEdvdCBubyBtYXRj
aCBhcyBleHBlY3RlZC4KKworU2VhcmNoaW5nIGZvciDigJhv4oCZIGluIOKAmExvcmVtIGlwc3Vt
IGRvbG9yIHNpdCBhbWV04oCZIHdpdGggb3B0aW9ucyBbQmFja3dhcmRzLCBXcmFwQXJvdW5kXToK
K1BBU1M6IEdvdCBhIG1hdGNoIGF0IDE1LDE2IGFzIGV4cGVjdGVkLgorUEFTUzogR290IGEgbWF0
Y2ggYXQgMTMsMTQgYXMgZXhwZWN0ZWQuCitQQVNTOiBHb3QgYSBtYXRjaCBhdCAxLDIgYXMgZXhw
ZWN0ZWQuCitQQVNTOiBHb3QgYSBtYXRjaCBhdCAxNSwxNiBhcyBleHBlY3RlZC4KKworU2VhcmNo
aW5nIGZvciDigJhP4oCZIGluIOKAmExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV04oCZIHdpdGgg
b3B0aW9ucyBbXToKK1BBU1M6IEdvdCBubyBtYXRjaCBhcyBleHBlY3RlZC4KKworU2VhcmNoaW5n
IGZvciDigJhP4oCZIGluIOKAmExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV04oCZIHdpdGggb3B0
aW9ucyBbQ2FzZUluc2Vuc2l0aXZlXToKK1BBU1M6IEdvdCBhIG1hdGNoIGF0IDEsMiBhcyBleHBl
Y3RlZC4KK1BBU1M6IEdvdCBhIG1hdGNoIGF0IDEzLDE0IGFzIGV4cGVjdGVkLgorUEFTUzogR290
IGEgbWF0Y2ggYXQgMTUsMTYgYXMgZXhwZWN0ZWQuCisKK1NlYXJjaGluZyBmb3Ig4oCYbW91bnTi
gJkgaW4g4oCYaW5zdXJtb3VudGFibGUgbW91bnRhaW7igJkgd2l0aCBvcHRpb25zIFtdOgorUEFT
UzogR290IGEgbWF0Y2ggYXQgNSwxMCBhcyBleHBlY3RlZC4KK1BBU1M6IEdvdCBhIG1hdGNoIGF0
IDE1LDIwIGFzIGV4cGVjdGVkLgorUEFTUzogR290IG5vIG1hdGNoIGFzIGV4cGVjdGVkLgorCitT
ZWFyY2hpbmcgZm9yIOKAmG1vdW504oCZIGluIOKAmGluc3VybW91bnRhYmxlIG1vdW50YWlu4oCZ
IHdpdGggb3B0aW9ucyBbQXRXb3JkU3RhcnRzXToKK1BBU1M6IEdvdCBhIG1hdGNoIGF0IDE1LDIw
IGFzIGV4cGVjdGVkLgorUEFTUzogR290IG5vIG1hdGNoIGFzIGV4cGVjdGVkLgorCitTZWFyY2hp
bmcgZm9yIOKAmGNv4oCZIGluIOKAmGNvY29h4oCZIHdpdGggb3B0aW9ucyBbXToKK1BBU1M6IEdv
dCBhIG1hdGNoIGF0IDAsMiBhcyBleHBlY3RlZC4KK1BBU1M6IEdvdCBhIG1hdGNoIGF0IDIsNCBh
cyBleHBlY3RlZC4KK1BBU1M6IEdvdCBubyBtYXRjaCBhcyBleHBlY3RlZC4KKworU2VhcmNoaW5n
IGZvciDigJhjb+KAmSBpbiDigJhjb2NvYeKAmSB3aXRoIG9wdGlvbnMgW0F0V29yZFN0YXJ0c106
CitQQVNTOiBHb3QgYSBtYXRjaCBhdCAwLDIgYXMgZXhwZWN0ZWQuCitQQVNTOiBHb3Qgbm8gbWF0
Y2ggYXMgZXhwZWN0ZWQuCisKK1NlYXJjaGluZyBmb3Ig4oCYb3Jn4oCZIGluIOKAmHdlYmtpdC5v
cmfigJkgd2l0aCBvcHRpb25zIFtBdFdvcmRTdGFydHNdOgorRkFJTDogRXhwZWN0ZWQgYSBtYXRj
aCBhdCAgYnV0IGdvdCBhIG1hdGNoIGF0IDcsMTAgaW5zdGVhZC4KKworU2VhcmNoaW5nIGZvciDi
gJgub3Jn4oCZIGluIOKAmHdlYmtpdC5vcmfigJkgd2l0aCBvcHRpb25zIFtBdFdvcmRTdGFydHNd
OgorUEFTUzogR290IGEgbWF0Y2ggYXQgNiwxMCBhcyBleHBlY3RlZC4KK1BBU1M6IEdvdCBubyBt
YXRjaCBhcyBleHBlY3RlZC4KKworU2VhcmNoaW5nIGZvciDigJhyZ+KAmSBpbiDigJh3ZWJraXQu
b3Jn4oCZIHdpdGggb3B0aW9ucyBbQXRXb3JkU3RhcnRzLCBUcmVhdE1lZGlhbENhcGl0YWxBc1dv
cmRTdGFydF06CitQQVNTOiBHb3Qgbm8gbWF0Y2ggYXMgZXhwZWN0ZWQuCisKK1NlYXJjaGluZyBm
b3Ig4oCYb3Jn4oCZIGluIOKAmHdlYmtpdC5vcmfigJkgd2l0aCBvcHRpb25zIFtBdFdvcmRTdGFy
dHMsIFRyZWF0TWVkaWFsQ2FwaXRhbEFzV29yZFN0YXJ0XToKK1BBU1M6IEdvdCBhIG1hdGNoIGF0
IDcsMTAgYXMgZXhwZWN0ZWQuCitQQVNTOiBHb3Qgbm8gbWF0Y2ggYXMgZXhwZWN0ZWQuCisKK1Nl
YXJjaGluZyBmb3Ig4oCYLm9yZ+KAmSBpbiDigJh3ZWJraXQub3Jn4oCZIHdpdGggb3B0aW9ucyBb
QXRXb3JkU3RhcnRzLCBUcmVhdE1lZGlhbENhcGl0YWxBc1dvcmRTdGFydF06CitQQVNTOiBHb3Qg
YSBtYXRjaCBhdCA2LDEwIGFzIGV4cGVjdGVkLgorUEFTUzogR290IG5vIG1hdGNoIGFzIGV4cGVj
dGVkLgorCitTZWFyY2hpbmcgZm9yIOKAmHQub3Jn4oCZIGluIOKAmHdlYmtpdC5vcmfigJkgd2l0
aCBvcHRpb25zIFtBdFdvcmRTdGFydHMsIFRyZWF0TWVkaWFsQ2FwaXRhbEFzV29yZFN0YXJ0XToK
K1BBU1M6IEdvdCBubyBtYXRjaCBhcyBleHBlY3RlZC4KKworU2VhcmNoaW5nIGZvciDigJhpdOKA
mSBpbiDigJhXZWJLaXTigJkgd2l0aCBvcHRpb25zIFtBdFdvcmRTdGFydHMsIFRyZWF0TWVkaWFs
Q2FwaXRhbEFzV29yZFN0YXJ0XToKK1BBU1M6IEdvdCBubyBtYXRjaCBhcyBleHBlY3RlZC4KKwor
U2VhcmNoaW5nIGZvciDigJhLaXTigJkgaW4g4oCYV2ViS2l04oCZIHdpdGggb3B0aW9ucyBbQXRX
b3JkU3RhcnRzLCBUcmVhdE1lZGlhbENhcGl0YWxBc1dvcmRTdGFydF06CitQQVNTOiBHb3QgYSBt
YXRjaCBhdCAzLDYgYXMgZXhwZWN0ZWQuCitQQVNTOiBHb3Qgbm8gbWF0Y2ggYXMgZXhwZWN0ZWQu
CisKK1NlYXJjaGluZyBmb3Ig4oCYYktpdOKAmSBpbiDigJhXZWJLaXTigJkgd2l0aCBvcHRpb25z
IFtBdFdvcmRTdGFydHMsIFRyZWF0TWVkaWFsQ2FwaXRhbEFzV29yZFN0YXJ0XToKK1BBU1M6IEdv
dCBubyBtYXRjaCBhcyBleHBlY3RlZC4KKworU2VhcmNoaW5nIGZvciDigJhlcXVlc3TigJkgaW4g
4oCYWE1MSFRUUFJlcXVlc3TigJkgd2l0aCBvcHRpb25zIFtBdFdvcmRTdGFydHMsIFRyZWF0TWVk
aWFsQ2FwaXRhbEFzV29yZFN0YXJ0XToKK1BBU1M6IEdvdCBubyBtYXRjaCBhcyBleHBlY3RlZC4K
KworU2VhcmNoaW5nIGZvciDigJhSZXF1ZXN04oCZIGluIOKAmFhNTEhUVFBSZXF1ZXN04oCZIHdp
dGggb3B0aW9ucyBbQXRXb3JkU3RhcnRzLCBUcmVhdE1lZGlhbENhcGl0YWxBc1dvcmRTdGFydF06
CitQQVNTOiBHb3QgYSBtYXRjaCBhdCA3LDE0IGFzIGV4cGVjdGVkLgorUEFTUzogR290IG5vIG1h
dGNoIGFzIGV4cGVjdGVkLgorCitTZWFyY2hpbmcgZm9yIOKAmFBSZXF1ZXN04oCZIGluIOKAmFhN
TEhUVFBSZXF1ZXN04oCZIHdpdGggb3B0aW9ucyBbQXRXb3JkU3RhcnRzLCBUcmVhdE1lZGlhbENh
cGl0YWxBc1dvcmRTdGFydF06CitQQVNTOiBHb3Qgbm8gbWF0Y2ggYXMgZXhwZWN0ZWQuCisKK1Nl
YXJjaGluZyBmb3Ig4oCYNjTigJkgaW4g4oCYTFA2NOKAmSB3aXRoIG9wdGlvbnMgW0F0V29yZFN0
YXJ0c106CitQQVNTOiBHb3Qgbm8gbWF0Y2ggYXMgZXhwZWN0ZWQuCisKK1NlYXJjaGluZyBmb3Ig
4oCYNOKAmSBpbiDigJhMUDY04oCZIHdpdGggb3B0aW9ucyBbQXRXb3JkU3RhcnRzLCBUcmVhdE1l
ZGlhbENhcGl0YWxBc1dvcmRTdGFydF06CitQQVNTOiBHb3Qgbm8gbWF0Y2ggYXMgZXhwZWN0ZWQu
CisKK1NlYXJjaGluZyBmb3Ig4oCYNjTigJkgaW4g4oCYTFA2NOKAmSB3aXRoIG9wdGlvbnMgW0F0
V29yZFN0YXJ0cywgVHJlYXRNZWRpYWxDYXBpdGFsQXNXb3JkU3RhcnRdOgorUEFTUzogR290IGEg
bWF0Y2ggYXQgMiw0IGFzIGV4cGVjdGVkLgorUEFTUzogR290IG5vIG1hdGNoIGFzIGV4cGVjdGVk
LgorCitTZWFyY2hpbmcgZm9yIOKAmFA2NOKAmSBpbiDigJhMUDY04oCZIHdpdGggb3B0aW9ucyBb
QXRXb3JkU3RhcnRzLCBUcmVhdE1lZGlhbENhcGl0YWxBc1dvcmRTdGFydF06CitQQVNTOiBHb3Qg
bm8gbWF0Y2ggYXMgZXhwZWN0ZWQuCisKK1NlYXJjaGluZyBmb3Ig4oCY5YuV5oim5aOr4oCZIGlu
IOKAmOi1t+WLleaIpuWjq+KAmSB3aXRoIG9wdGlvbnMgW0F0V29yZFN0YXJ0c106CitQQVNTOiBH
b3QgYSBtYXRjaCBhdCAxLDQgYXMgZXhwZWN0ZWQuCitQQVNTOiBHb3Qgbm8gbWF0Y2ggYXMgZXhw
ZWN0ZWQuCisKK1NlYXJjaGluZyBmb3Ig4oCY5oim5aOr4oCZIGluIOKAmOi1t+WLleaIpuWjq+KA
mSB3aXRoIG9wdGlvbnMgW0F0V29yZFN0YXJ0c106CitQQVNTOiBHb3QgYSBtYXRjaCBhdCAyLDQg
YXMgZXhwZWN0ZWQuCitQQVNTOiBHb3Qgbm8gbWF0Y2ggYXMgZXhwZWN0ZWQuCisKK1NlYXJjaGlu
ZyBmb3Ig4oCY5aOr4oCZIGluIOKAmOi1t+WLleaIpuWjq+KAmSB3aXRoIG9wdGlvbnMgW0F0V29y
ZFN0YXJ0c106CitQQVNTOiBHb3QgYSBtYXRjaCBhdCAzLDQgYXMgZXhwZWN0ZWQuCitQQVNTOiBH
b3Qgbm8gbWF0Y2ggYXMgZXhwZWN0ZWQuCisKK1NlYXJjaGluZyBmb3Ig4oCYYeKAmSBpbiBsb25n
IHN0cmluZyB3aXRoIG9wdGlvbnMgW0F0V29yZFN0YXJ0c106CitQQVNTOiBHb3QgYSBtYXRjaCBh
dCA2MTQ2LDYxNDcgYXMgZXhwZWN0ZWQuCitQQVNTOiBHb3Qgbm8gbWF0Y2ggYXMgZXhwZWN0ZWQu
CisKK1NlYXJjaGluZyBmb3Ig4oCY4LiB4Lij4oCZIGluIOKAmOC4geC4o+C4m+C4ueC5gOC4peC4
geC4iuC4geC4iuC4geC4o+C4geC4o+C4geC4iuC4muC4h+C4geC4iuKAmSB3aXRoIG9wdGlvbnMg
W106CitQQVNTOiBHb3QgYSBtYXRjaCBhdCAwLDIgYXMgZXhwZWN0ZWQuCitQQVNTOiBHb3QgYSBt
YXRjaCBhdCAxMCwxMiBhcyBleHBlY3RlZC4KK1BBU1M6IEdvdCBhIG1hdGNoIGF0IDEyLDE0IGFz
IGV4cGVjdGVkLgorUEFTUzogR290IG5vIG1hdGNoIGFzIGV4cGVjdGVkLgorCitTZWFyY2hpbmcg
Zm9yIOKAmOC4geC4o+KAmSBpbiDigJjguIHguKPguJvguLnguYDguKXguIHguIrguIHguIrguIHg
uKPguIHguKPguIHguIrguJrguIfguIHguIrigJkgd2l0aCBvcHRpb25zIFtBdFdvcmRTdGFydHNd
OgorUEFTUzogR290IGEgbWF0Y2ggYXQgMCwyIGFzIGV4cGVjdGVkLgorUEFTUzogR290IGEgbWF0
Y2ggYXQgMTIsMTQgYXMgZXhwZWN0ZWQuCitQQVNTOiBHb3Qgbm8gbWF0Y2ggYXMgZXhwZWN0ZWQu
CisKK1NlYXJjaGluZyBmb3Ig4oCY4LiB4LiK4oCZIGluIOKAmOC4geC4o+C4m+C4ueC5gOC4peC4
geC4iuC4geC4iuC4geC4o+C4geC4o+C4geC4iuC4muC4h+C4geC4iuKAmSB3aXRoIG9wdGlvbnMg
W106CitQQVNTOiBHb3QgYSBtYXRjaCBhdCA2LDggYXMgZXhwZWN0ZWQuCitQQVNTOiBHb3QgYSBt
YXRjaCBhdCA4LDEwIGFzIGV4cGVjdGVkLgorUEFTUzogR290IGEgbWF0Y2ggYXQgMTQsMTYgYXMg
ZXhwZWN0ZWQuCitQQVNTOiBHb3QgYSBtYXRjaCBhdCAxOCwyMCBhcyBleHBlY3RlZC4KK1BBU1M6
IEdvdCBubyBtYXRjaCBhcyBleHBlY3RlZC4KKworU2VhcmNoaW5nIGZvciDigJjguIHguIrigJkg
aW4g4oCY4LiB4Lij4Lib4Li54LmA4Lil4LiB4LiK4LiB4LiK4LiB4Lij4LiB4Lij4LiB4LiK4Lia
4LiH4LiB4LiK4oCZIHdpdGggb3B0aW9ucyBbQXRXb3JkU3RhcnRzXToKK1BBU1M6IEdvdCBhIG1h
dGNoIGF0IDYsOCBhcyBleHBlY3RlZC4KK1BBU1M6IEdvdCBhIG1hdGNoIGF0IDgsMTAgYXMgZXhw
ZWN0ZWQuCitQQVNTOiBHb3Qgbm8gbWF0Y2ggYXMgZXhwZWN0ZWQuCisKK1NlYXJjaGluZyBmb3Ig
4oCY4LiB4Lij4oCZIGluIGxvbmcgc3RyaW5nIHdpdGggb3B0aW9ucyBbXToKK1BBU1M6IEdvdCBh
IG1hdGNoIGF0IDYxNDQsNjE0NiBhcyBleHBlY3RlZC4KK1BBU1M6IEdvdCBhIG1hdGNoIGF0IDYx
NTQsNjE1NiBhcyBleHBlY3RlZC4KK1BBU1M6IEdvdCBhIG1hdGNoIGF0IDYxNTYsNjE1OCBhcyBl
eHBlY3RlZC4KK1BBU1M6IEdvdCBubyBtYXRjaCBhcyBleHBlY3RlZC4KKworU2VhcmNoaW5nIGZv
ciDigJjguIHguKPigJkgaW4gbG9uZyBzdHJpbmcgd2l0aCBvcHRpb25zIFtBdFdvcmRTdGFydHNd
OgorUEFTUzogR290IGEgbWF0Y2ggYXQgNjE1Niw2MTU4IGFzIGV4cGVjdGVkLgorUEFTUzogR290
IG5vIG1hdGNoIGFzIGV4cGVjdGVkLgorCitTZWFyY2hpbmcgZm9yIOKAmOC4geC4o+KAmSBpbiBs
b25nIHN0cmluZyB3aXRoIG9wdGlvbnMgW0F0V29yZFN0YXJ0c106CitQQVNTOiBHb3QgYSBtYXRj
aCBhdCA2MTQ0LDYxNDYgYXMgZXhwZWN0ZWQuCitQQVNTOiBHb3QgYSBtYXRjaCBhdCA2MTU2LDYx
NTggYXMgZXhwZWN0ZWQuCitQQVNTOiBHb3Qgbm8gbWF0Y2ggYXMgZXhwZWN0ZWQuCisKK1NlYXJj
aGluZyBmb3Ig4oCY4LiB4LiK4oCZIGluIGxvbmcgc3RyaW5nIHdpdGggb3B0aW9ucyBbQXRXb3Jk
U3RhcnRzXToKK1BBU1M6IEdvdCBubyBtYXRjaCBhcyBleHBlY3RlZC4KKworU2VhcmNoaW5nIGZv
ciDigJgg4oCZIGluIOKAmFNwYWNlcywgdGhlIGZpbmFsIGZyb250aWVy4oCZIHdpdGggb3B0aW9u
cyBbQXRXb3JkU3RhcnRzXToKK1BBU1M6IEdvdCBhIG1hdGNoIGF0IDcsOCBhcyBleHBlY3RlZC4K
K1BBU1M6IEdvdCBhIG1hdGNoIGF0IDExLDEyIGFzIGV4cGVjdGVkLgorUEFTUzogR290IGEgbWF0
Y2ggYXQgMTcsMTggYXMgZXhwZWN0ZWQuCitQQVNTOiBHb3Qgbm8gbWF0Y2ggYXMgZXhwZWN0ZWQu
CisKK1NlYXJjaGluZyBmb3Ig4oCYQOKAmSBpbiDigJhVc2UgYW4gQGltcG9ydCBydWxl4oCZIHdp
dGggb3B0aW9ucyBbQXRXb3JkU3RhcnRzXToKK1BBU1M6IEdvdCBhIG1hdGNoIGF0IDcsOCBhcyBl
eHBlY3RlZC4KK1BBU1M6IEdvdCBubyBtYXRjaCBhcyBleHBlY3RlZC4KKworU2VhcmNoaW5nIGZv
ciDigJgoeOKAmSBpbiDigJhJZiAoKHggKyA1KSAqIDIpID0gMTQsIHRoZW4geCA9IDLigJkgd2l0
aCBvcHRpb25zIFtBdFdvcmRTdGFydHNdOgorUEFTUzogR290IGEgbWF0Y2ggYXQgNCw2IGFzIGV4
cGVjdGVkLgorUEFTUzogR290IG5vIG1hdGNoIGFzIGV4cGVjdGVkLgorCisKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE5ODQ5NCkKKysrIFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDE2LTAzLTIxICBCcmVudCBGdWxn
aGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIE5lZWQgYSBzaG9ydCBkZXNjcmlw
dGlvbiAoT09QUyEpLgorICAgICAgICBOZWVkIHRoZSBidWcgVVJMIChPT1BTISkuCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBJbnRlcmZhY2VzL0lX
ZWJWaWV3UHJpdmF0ZS5pZGw6CisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgICogV2Vi
Vmlldy5oOgorCisyMDE2LTAzLTE1ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29t
PgorCisgICAgICAgIFtXaW5dIENvcnJlY3QgZG91YmxlLXJlbGVhc2Ugb2YgQ0ZVUkxDb25uZWN0
aW9uUmVmCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTU1MTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI1MTU5MTQzPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RlZCBieSBodHRwL3Rlc3RzL2Rv
d25sb2FkIHN1aXRlLgorCisgICAgICAgICogV2ViRG93bmxvYWRDRk5ldC5jcHA6IFJlbW92ZSBl
eHRyYSBDRlJlbGVhc2UuCisKIDIwMTYtMDMtMTYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dh
cmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxOTY5
NTEgYW5kIHIxOTcwMzEuCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJW
aWV3UHJpdmF0ZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vSW50ZXJmYWNl
cy9JV2ViVmlld1ByaXZhdGUuaWRsCShyZXZpc2lvbiAxOTg0OTQpCisrKyBTb3VyY2UvV2ViS2l0
L3dpbi9JbnRlcmZhY2VzL0lXZWJWaWV3UHJpdmF0ZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDE1IEFw
cGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAx
NiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0zMjEsOCArMzIxLDE4IEBACiAgICAgICAgIFtpbl0gV2ViVXNlckNvbnRl
bnRJbmplY3RlZEZyYW1lcyBpbmplY3RlZEZyYW1lcyk7CiB9CiAKK3R5cGVkZWYgZW51bSB7Cisg
ICAgV2ViRmluZE9wdGlvbnNDYXNlSW5zZW5zaXRpdmUgPSAxIDw8IDAsCisgICAgV2ViRmluZE9w
dGlvbnNBdFdvcmRTdGFydHMgPSAxIDw8IDEsCisgICAgV2ViRmluZE9wdGlvbnNUcmVhdE1lZGlh
bENhcGl0YWxBc1dvcmRTdGFydCA9IDEgPDwgMiwKKyAgICBXZWJGaW5kT3B0aW9uc0JhY2t3YXJk
cyA9IDEgPDwgMywKKyAgICBXZWJGaW5kT3B0aW9uc1dyYXBBcm91bmQgPSAxIDw8IDQsCisgICAg
V2ViRmluZE9wdGlvbnNTdGFydEluU2VsZWN0aW9uID0gMSA8PCA1Cit9IFdlYkZpbmRPcHRpb25z
OworCiBbIHV1aWQoMDhDODgzNTktNzZBQS00OEYyLUJBMjctODIwNTQwRTc4MUU5KSBdCiBpbnRl
cmZhY2UgSVdlYlZpZXdQcml2YXRlMyA6IElXZWJWaWV3UHJpdmF0ZTIKIHsKICAgICBIUkVTVUxU
IGxheWVyVHJlZUFzU3RyaW5nKFtvdXRdIEJTVFIqKTsKKyAgICBIUkVTVUxUIGZpbmRTdHJpbmco
W2luXSBCU1RSLCBbaW5dIFdlYkZpbmRPcHRpb25zLCBbb3V0XSBCT09MKiBmb3VuZCk7IAogfQpJ
bmRleDogU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC93aW4vV2ViVmlldy5jcHAJKHJldmlzaW9uIDE5ODQ5NCkKKysrIFNvdXJjZS9XZWJL
aXQvd2luL1dlYlZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwNi0yMDE1IEFwcGxlLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTYgQXBwbGUsIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTAsIDIwMTEgQXBwY2VsZXJhdG9yLCBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQnJlbnQgRnVs
Z2hhbS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCkBAIC03NTY0LDMgKzc1NjQsMTMgQEAKIAog
ICAgIHJldHVybiBTX09LOwogfQorCitIUkVTVUxUIFdlYlZpZXc6OmZpbmRTdHJpbmcoX0luXyBC
U1RSIHN0cmluZywgV2ViRmluZE9wdGlvbnMgb3B0aW9ucywgX0RlcmVmX29wdF9vdXRfIEJPT0wq
IGZvdW5kKQoreworICAgIGlmICghZm91bmQpCisgICAgICAgIHJldHVybiBFX1BPSU5URVI7CisK
KyAgICAqZm91bmQgPSBtX3BhZ2UtPmZpbmRTdHJpbmcodG9TdHJpbmcoc3RyaW5nKSwgb3B0aW9u
cyk7CisgICAgcmV0dXJuIFNfT0s7Cit9CisKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYlZp
ZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmgJKHJldmlzaW9u
IDE5ODQ5NCkKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuaAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxMiwgMjAxNC0yMDE1
IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYt
MjAxNiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAy
MDA5LCAyMDEwLCAyMDExIEFwcGNlbGVyYXRvciwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogQ29weXJpZ2h0IChDKSAyMDExIEJyZW50IEZ1bGdoYW0uIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgpAQCAtMzkwLDYgKzM5MCw3IEBACiAKICAgICAvLyBJV2ViVmlld1ByaXZhdGUzCiAgICAg
SFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBsYXllclRyZWVBc1N0cmluZyhfRGVyZWZfb3B0X291
dF8gQlNUUiopOworICAgIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgZmluZFN0cmluZyhfSW5f
IEJTVFIsIFdlYkZpbmRPcHRpb25zLCBfRGVyZWZfb3B0X291dF8gQk9PTCopOwogCiAgICAgLy8g
V2ViVmlldwogICAgIGJvb2wgc2hvdWxkVXNlRW1iZWRkZWRWaWV3KGNvbnN0IFdURjo6U3RyaW5n
JiBtaW1lVHlwZSkgY29uc3Q7CkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxOTg0OTcpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSwxNyBAQAotMjAxNi0wMy0yMCAgRGFuIEJlcm5zdGVpbiAg
PG1pdHpAYXBwbGUuY29tPgorMjAxNi0wMy0yMSAgSHl1bmd3b29rIExlZSAgPGh5dW5nd29vay5s
ZWVAbmF2ZXJjb3JwLmNvbT4KIAorICAgICAgICBbV2luXSBDb25uZWN0IGxheW91dFRlc3RDb250
cm9sbGVyLmZpbmRTdHJpbmcoKSB0byBzdXBwb3J0IHRlc3RpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMjM0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IFRlc3RSdW5uZXI6OmZpbmRT
dHJpbmcoKS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNw
cDoKKyAgICAgICAgKFRlc3RSdW5uZXI6OmZpbmRTdHJpbmcpOgorCisgMjAxNi0wMy0yMCAgRGFu
IEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgorCiAgICAgICAgIFtNYWNdIERldGVybWluZSBU
QVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiBmcm9tIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdF
VCByYXRoZXIgdGhhbiBmcm9tIE1BQ19PU19YX1ZFUlNJT05fTUFKT1IKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTcwNwogICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMjQ5ODA2OTE+CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1
bm5lcldpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RS
dW5uZXJXaW4uY3BwCShyZXZpc2lvbiAxOTg0OTQpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS93
aW4vVGVzdFJ1bm5lcldpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkyOCwxMSArOTI4LDUyIEBA
CiAgICAgdmlld1ByaXZhdGUtPmV4ZWN1dGVDb3JlQ29tbWFuZEJ5TmFtZShuYW1lQlNUUiwgdmFs
dWVCU1RSKTsKIH0KIAotYm9vbCBUZXN0UnVubmVyOjpmaW5kU3RyaW5nKEpTQ29udGV4dFJlZiAv
KiBjb250ZXh0ICovLCBKU1N0cmluZ1JlZiAvKiB0YXJnZXQgKi8sIEpTT2JqZWN0UmVmIC8qIG9w
dGlvbnNBcnJheSAqLykKK2Jvb2wgVGVzdFJ1bm5lcjo6ZmluZFN0cmluZyhKU0NvbnRleHRSZWYg
Y29udGV4dCwgSlNTdHJpbmdSZWYgdGFyZ2V0LCBKU09iamVjdFJlZiBvcHRpb25zQXJyYXkpCiB7
Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudAotICAgIHByaW50ZigiRVJST1I6IFRlc3RSdW5uZXI6
OmZpbmRTdHJpbmcoLi4uKSBub3QgaW1wbGVtZW50ZWRcbiIpOwotICAgIHJldHVybiBmYWxzZTsK
KyAgICBDT01QdHI8SVdlYlZpZXc+IHdlYlZpZXc7CisgICAgaWYgKEZBSUxFRChmcmFtZS0+d2Vi
Vmlldygmd2ViVmlldykpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBDT01QdHI8SVdl
YlZpZXdQcml2YXRlMz4gdmlld1ByaXZhdGU7CisgICAgaWYgKEZBSUxFRCh3ZWJWaWV3LT5RdWVy
eUludGVyZmFjZSgmdmlld1ByaXZhdGUpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
dW5zaWduZWQgY2hhciBvcHRpb25zID0gMDsKKworICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVm
PiBsZW5ndGhQcm9wZXJ0eU5hbWUoQWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5n
KCJsZW5ndGgiKSk7CisgICAgSlNWYWx1ZVJlZiBsZW5ndGhWYWx1ZSA9IEpTT2JqZWN0R2V0UHJv
cGVydHkoY29udGV4dCwgb3B0aW9uc0FycmF5LCBsZW5ndGhQcm9wZXJ0eU5hbWUuZ2V0KCksIG51
bGxwdHIpOworICAgIGlmICghSlNWYWx1ZUlzTnVtYmVyKGNvbnRleHQsIGxlbmd0aFZhbHVlKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgX2JzdHJfdCB0YXJnZXRCU1RSKEpTU3RyaW5n
Q29weUJTVFIodGFyZ2V0KSwgZmFsc2UpOworCisgICAgc2l6ZV90IGxlbmd0aCA9IHN0YXRpY19j
YXN0PHNpemVfdD4oSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIGxlbmd0aFZhbHVlLCBudWxscHRy
KSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgeworICAgICAgICBK
U1ZhbHVlUmVmIHZhbHVlID0gSlNPYmplY3RHZXRQcm9wZXJ0eUF0SW5kZXgoY29udGV4dCwgb3B0
aW9uc0FycmF5LCBpLCBudWxscHRyKTsKKyAgICAgICAgaWYgKCFKU1ZhbHVlSXNTdHJpbmcoY29u
dGV4dCwgdmFsdWUpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IG9wdGlvbk5hbWUoQWRvcHQsIEpTVmFsdWVUb1N0cmluZ0NvcHkoY29u
dGV4dCwgdmFsdWUsIG51bGxwdHIpKTsKKworICAgICAgICBpZiAoSlNTdHJpbmdJc0VxdWFsVG9V
VEY4Q1N0cmluZyhvcHRpb25OYW1lLmdldCgpLCAiQ2FzZUluc2Vuc2l0aXZlIikpCisgICAgICAg
ICAgICBvcHRpb25zIHw9IFdlYkZpbmRPcHRpb25zQ2FzZUluc2Vuc2l0aXZlOworICAgICAgICBl
bHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG9wdGlvbk5hbWUuZ2V0KCksICJB
dFdvcmRTdGFydHMiKSkKKyAgICAgICAgICAgIG9wdGlvbnMgfD0gV2ViRmluZE9wdGlvbnNBdFdv
cmRTdGFydHM7CisgICAgICAgIGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmco
b3B0aW9uTmFtZS5nZXQoKSwgIlRyZWF0TWVkaWFsQ2FwaXRhbEFzV29yZFN0YXJ0IikpCisgICAg
ICAgICAgICBvcHRpb25zIHw9IFdlYkZpbmRPcHRpb25zVHJlYXRNZWRpYWxDYXBpdGFsQXNXb3Jk
U3RhcnQ7CisgICAgICAgIGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcob3B0
aW9uTmFtZS5nZXQoKSwgIkJhY2t3YXJkcyIpKQorICAgICAgICAgICAgb3B0aW9ucyB8PSBXZWJG
aW5kT3B0aW9uc0JhY2t3YXJkczsKKyAgICAgICAgZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9V
VEY4Q1N0cmluZyhvcHRpb25OYW1lLmdldCgpLCAiV3JhcEFyb3VuZCIpKQorICAgICAgICAgICAg
b3B0aW9ucyB8PSBXZWJGaW5kT3B0aW9uc1dyYXBBcm91bmQ7CisgICAgICAgIGVsc2UgaWYgKEpT
U3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcob3B0aW9uTmFtZS5nZXQoKSwgIlN0YXJ0SW5TZWxl
Y3Rpb24iKSkKKyAgICAgICAgICAgIG9wdGlvbnMgfD0gV2ViRmluZE9wdGlvbnNTdGFydEluU2Vs
ZWN0aW9uOworICAgIH0KKworICAgIEJPT0wgZm91bmQgPSBGQUxTRTsKKyAgICBpZiAoRkFJTEVE
KHZpZXdQcml2YXRlLT5maW5kU3RyaW5nKHRhcmdldEJTVFIsIHN0YXRpY19jYXN0PFdlYkZpbmRP
cHRpb25zPihvcHRpb25zKSwgJmZvdW5kKSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IHJldHVybiBmb3VuZDsKIH0KIAogdm9pZCBUZXN0UnVubmVyOjpzZXRDYWNoZU1vZGVsKGludCBj
YWNoZU1vZGVsKQo=
</data>
<flag name="review"
          id="299031"
          type_id="1"
          status="+"
          setter="achristensen"
    />
    <flag name="commit-queue"
          id="299032"
          type_id="3"
          status="-"
          setter="bfulgham"
    />
          </attachment>
      

    </bug>

</bugzilla>