<?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>92557</bug_id>
          
          <creation_ts>2012-07-27 15:41:45 -0700</creation_ts>
          <short_desc>[V8] TypedArray binding performance improvements</short_desc>
          <delta_ts>2012-08-01 16:53:27 -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>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="arno.">a.renevier</reporter>
          <assigned_to name="arno.">a.renevier</assigned_to>
          <cc>abarth</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>kbr</cc>
    
    <cc>ulan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>681170</commentid>
    <comment_count>0</comment_count>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-07-27 15:41:45 -0700</bug_when>
    <thetext>Hi,
#90838, #92518 and #92556 improve TypedArray performances in JavaScriptCore.
This bug is to implement those improvements in v8.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683251</commentid>
    <comment_count>1</comment_count>
      <attachid>155583</attachid>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-07-31 10:41:44 -0700</bug_when>
    <thetext>Created attachment 155583
patch proposal

It appears some of the optimisations made in bug #90838 and bug #92556 are not interesting. Actually, iterating over the c++ array elements to set the value is slower than the current copyElements method (about two times slower). We can still improve performances by using memcpy if the array we construct from is the same type. Also, we can benefit from creating arrays with createUninitialized. With this patch, Bindings/typed-array-construct-from-typed.html time goes from 600ms to around 550ms, and Bindings/typed-array-construct-from-same-type.html goes from 400ms to 55ms</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683308</commentid>
    <comment_count>2</comment_count>
      <attachid>155595</attachid>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-07-31 11:40:58 -0700</bug_when>
    <thetext>Created attachment 155595
updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683337</commentid>
    <comment_count>3</comment_count>
      <attachid>155595</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-07-31 11:53:10 -0700</bug_when>
    <thetext>Comment on attachment 155595
updated patch

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

Thanks for the patch. It looks good overall, but r- because of one needed null check. Also one comment about sharing code.

&gt; Source/WebCore/bindings/v8/custom/V8ArrayBufferViewCustom.h:142
&gt; +        RefPtr&lt;ArrayClass&gt; array = ArrayClass::createUninitialized(length);

Even though currently this will never return 0 (Chrome will crash before failing a call to malloc), please do the same null check as below. Also please share the error string.

&gt; Source/WebCore/bindings/v8/custom/V8ArrayBufferViewCustom.h:150
&gt; +        return args.Holder();

It would be really nice if this block of code weren&apos;t duplicated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683541</commentid>
    <comment_count>4</comment_count>
      <attachid>155650</attachid>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-07-31 15:38:18 -0700</bug_when>
    <thetext>Created attachment 155650
updated patch to address review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684602</commentid>
    <comment_count>5</comment_count>
      <attachid>155650</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-08-01 14:42:07 -0700</bug_when>
    <thetext>Comment on attachment 155650
updated patch to address review

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

Thanks, this looks almost perfect. One issue which is confusing, therefore the r-. If you can clean this up I&apos;ll r+ the next version.

&gt; Source/WebCore/bindings/v8/custom/V8ArrayBufferViewCustom.h:48
&gt; +v8::Handle&lt;v8::Value&gt; wrapWebGLArrayBuffer(const v8::Arguments&amp; args, WrapperTypeInfo* type, ArrayClass array, v8::ExternalArrayType arrayType, bool hasIndexer)

This is a misleading name. It has nothing to do with ArrayBuffers. Please call it &quot;wrapTypedArray&quot; or &quot;wrapArrayBufferView&quot;. (The use of &quot;WebGL&quot; throughout this file is historical and is something that should be cleaned up in a separate patch.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684681</commentid>
    <comment_count>6</comment_count>
      <attachid>155908</attachid>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-08-01 15:51:21 -0700</bug_when>
    <thetext>Created attachment 155908
updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684712</commentid>
    <comment_count>7</comment_count>
      <attachid>155908</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-08-01 16:06:50 -0700</bug_when>
    <thetext>Comment on attachment 155908
updated patch

Thanks, looks good. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684772</commentid>
    <comment_count>8</comment_count>
      <attachid>155908</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-01 16:53:23 -0700</bug_when>
    <thetext>Comment on attachment 155908
updated patch

Clearing flags on attachment: 155908

Committed r124386: &lt;http://trac.webkit.org/changeset/124386&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684773</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-01 16:53:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155583</attachid>
            <date>2012-07-31 10:41:44 -0700</date>
            <delta_ts>2012-07-31 11:40:53 -0700</delta_ts>
            <desc>patch proposal</desc>
            <filename>bug-92557-20120731104127.patch</filename>
            <type>text/plain</type>
            <size>12137</size>
            <attacher name="arno.">a.renevier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MDc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzM3MTkzNGU2ZGNmOWQz
ZjhmZGI0MTgwNTkxZDViOTgzOTQzZGRhNi4uNWYwZTdjOTE5ZjI1MzdkNzMxYmY1OGQxOTM1OTY0
N2Q1ZWMyNGU0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDEyLTA3LTMxICBBcm5h
dWQgUmVuZXZpZXIgIDxhLnJlbmV2aWVyQHNpc2Euc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW1Y4
XSBUeXBlZEFycmF5IGJpbmRpbmcgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnRzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjU1NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcHJvdmUgVHlwZWRBcnJheSBi
aW5kaW5ncyBwZXJmb3JtYW5jZToKKyAgICAgICAgLSBjcmVhdGUgYXJyYXlzIHdpdGggY3JlYXRl
VW5pbml0aWFsaXplZCB3aGVuIHBvc3NpYmxlLiBUeXBlZCBBcnJheQorICAgICAgICBjb25zdHJ1
Y3Rpb24gaXMgYWJvdXQgMTAlIGZhc3Rlci4KKyAgICAgICAgLSB3aGVuIGNyZWF0aW5nIGEgdHlw
ZWQgYXJyYXkgZnJvbSBhIHNhbWUgdHlwZWQgYXJyYXksIG1lbWNweSBkYXRhCisgICAgICAgIGZy
b20gc291cmNlIHRvIHRhcmdldC4KKworICAgICAgICBJbiBvcmRlciB0byBkZXRlY3QgaWYgYXJn
dW1lbnQgYXJyYXkgaXMgdGhlIHNhbWUgdHlwZSBhcworICAgICAgICBpbXBsZW1lbnRhdGlvbiBh
cnJheSwgd2UgcGFzcyB0aGUgamF2YXNjcmlwdCB3cmFwcGVyIHR5cGUgYXMgYSBuZXcKKyAgICAg
ICAgdHlwZSBhcmd1bWVudCB0byB0ZW1wbGF0ZSBmdW5jdGlvbiBjb25zdHJ1Y3RXZWJHTEFycmF5
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0czogUGVyZm9ybWFuY2UgdGVzdHMgYXJlIGFscmVhZHkg
aGFuZGxlZCBieQorICAgICAgICBCaW5kaW5ncy90eXBlZC1hcnJheS1jb25zdHJ1Y3QtZnJvbS1z
YW1lLXR5cGUuaHRtbCBhbmQKKyAgICAgICAgQmluZGluZ3MvdHlwZWQtYXJyYXktY29uc3RydWN0
LWZyb20tdHlwZWQuaHRtbAorCisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlC
dWZmZXJWaWV3Q3VzdG9tLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnN0cnVjdFdlYkdMQXJyYXkpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEZs
b2F0MzJBcnJheUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOEZsb2F0MzJBcnJheTo6
Y29uc3RydWN0b3JDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4Rmxv
YXQ2NEFycmF5Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4RmxvYXQ2NEFycmF5Ojpj
b25zdHJ1Y3RvckNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhJbnQx
NkFycmF5Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4SW50MTZBcnJheTo6Y29uc3Ry
dWN0b3JDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50MzJBcnJh
eUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOEludDMyQXJyYXk6OmNvbnN0cnVjdG9y
Q2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEludDhBcnJheUN1c3Rv
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOEludDhBcnJheTo6Y29uc3RydWN0b3JDYWxsYmFj
ayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4VWludDE2QXJyYXlDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VjhVaW50MTZBcnJheTo6Y29uc3RydWN0b3JDYWxsYmFjayk6
CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4VWludDMyQXJyYXlDdXN0b20uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VjhVaW50MzJBcnJheTo6Y29uc3RydWN0b3JDYWxsYmFjayk6Cisg
ICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4VWludDhBcnJheUN1c3RvbS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpWOFVpbnQ4QXJyYXk6OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAg
ICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFVpbnQ4Q2xhbXBlZEFycmF5Q3VzdG9tLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlY4VWludDhDbGFtcGVkQXJyYXk6OmNvbnN0cnVjdG9yQ2FsbGJhY2sp
OgorCiAyMDEyLTA3LTMwICBQYXVsIElyaXNoICA8cGF1bC5pcmlzaEBnbWFpbC5jb20+CiAKICAg
ICAgICAgV2ViIEluc3BlY3RvcjogUmVuYW1lIERhdGFiYXNlcyB0byBXZWIgU1FMCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZpZXdD
dXN0b20uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVy
Vmlld0N1c3RvbS5oCmluZGV4IGU0YWMzNTQ0YjhlNDk2YmRlYTIyMzQyNDQ5MjA4N2NlOGE0NjU3
MDguLjM5NzAzMzgxMzdiMTQyY2M2NTA0OWI2M2U2ODIzYmVmODZkMWE2YjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyVmlld0N1c3Rv
bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVy
Vmlld0N1c3RvbS5oCkBAIC04NCw3ICs4NCw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb25z
dHJ1Y3RXZWJHTEFycmF5V2l0aEFycmF5QnVmZmVyQXJndW1lbnQoY29uc3Qgdjg6OkFyZ3VtCiB9
CiAKIC8vIFRlbXBsYXRlIGZ1bmN0aW9uIHVzZWQgYnkgdGhlIEFycmF5QnVmZmVyVmlldypDb25z
dHJ1Y3RvciBjYWxsYmFja3MuCi10ZW1wbGF0ZTxjbGFzcyBBcnJheUNsYXNzLCBjbGFzcyBFbGVt
ZW50VHlwZT4KK3RlbXBsYXRlPGNsYXNzIEFycmF5Q2xhc3MsIGNsYXNzIEphdmFTY3JpcHRXcmFw
cGVyQXJyYXlUeXBlLCBjbGFzcyBFbGVtZW50VHlwZT4KIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBj
b25zdHJ1Y3RXZWJHTEFycmF5KGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MsIFdyYXBwZXJUeXBl
SW5mbyogdHlwZSwgdjg6OkV4dGVybmFsQXJyYXlUeXBlIGFycmF5VHlwZSkKIHsKICAgICBpZiAo
IWFyZ3MuSXNDb25zdHJ1Y3RDYWxsKCkpCkBAIC0xMzQsNiArMTM0LDIyIEBAIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBjb25zdHJ1Y3RXZWJHTEFycmF5KGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3Ms
IFdyYXBwZXJUeXBlCiAgICAgaWYgKFY4QXJyYXlCdWZmZXI6Okhhc0luc3RhbmNlKGFyZ3NbMF0p
KQogICAgICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXlXaXRoQXJyYXlCdWZmZXJBcmd1bWVu
dDxBcnJheUNsYXNzLCBFbGVtZW50VHlwZT4oYXJncywgdHlwZSwgYXJyYXlUeXBlLCB0cnVlKTsK
IAorICAgIC8vIFNlZSB3aGV0aGVyIHRoZSBmaXJzdCBhcmd1bWVudCBpcyB0aGUgc2FtZSB0eXBl
IGFzIGltcGwuIEluIHRoYXQgY2FzZSwKKyAgICAvLyB3ZSBjYW4gc2ltcGx5IG1lbWNweSBkYXRh
IGZyb20gc291cmNlIHRvIGltcGwuCisgICAgaWYgKEphdmFTY3JpcHRXcmFwcGVyQXJyYXlUeXBl
OjpIYXNJbnN0YW5jZShhcmdzWzBdKSkgeworICAgICAgICBBcnJheUNsYXNzKiBzb3VyY2UgPSBK
YXZhU2NyaXB0V3JhcHBlckFycmF5VHlwZTo6dG9OYXRpdmUoYXJnc1swXS0+VG9PYmplY3QoKSk7
CisgICAgICAgIHVpbnQzMl90IGxlbmd0aCA9IHNvdXJjZS0+bGVuZ3RoKCk7CisgICAgICAgIFJl
ZlB0cjxBcnJheUNsYXNzPiBhcnJheSA9IEFycmF5Q2xhc3M6OmNyZWF0ZVVuaW5pdGlhbGl6ZWQo
bGVuZ3RoKTsKKyAgICAgICAgbWVtY3B5KGFycmF5LT5iYXNlQWRkcmVzcygpLCBzb3VyY2UtPmJh
c2VBZGRyZXNzKCksIGxlbmd0aCAqIHNpemVvZihFbGVtZW50VHlwZSkpOworCisgICAgICAgIFY4
RE9NV3JhcHBlcjo6c2V0RE9NV3JhcHBlcihhcmdzLkhvbGRlcigpLCB0eXBlLCBhcnJheS5nZXQo
KSk7CisgICAgICAgIGFyZ3MuSG9sZGVyKCktPlNldEluZGV4ZWRQcm9wZXJ0aWVzVG9FeHRlcm5h
bEFycmF5RGF0YShhcnJheS5nZXQoKS0+YmFzZUFkZHJlc3MoKSwgYXJyYXlUeXBlLCBhcnJheS5n
ZXQoKS0+bGVuZ3RoKCkpOworICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB3cmFw
cGVyID0gdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD46Ok5ldyhhcmdzLkhvbGRlcigpKTsKKyAg
ICAgICAgd3JhcHBlci5NYXJrSW5kZXBlbmRlbnQoKTsKKyAgICAgICAgVjhET01XcmFwcGVyOjpz
ZXRKU1dyYXBwZXJGb3JET01PYmplY3QoYXJyYXkucmVsZWFzZSgpLCB3cmFwcGVyKTsKKyAgICAg
ICAgcmV0dXJuIGFyZ3MuSG9sZGVyKCk7CisgICAgfQorCiAgICAgdWludDMyX3QgbGVuID0gMDsK
ICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHNyY0FycmF5OwogICAgIGJvb2wgZG9JbnN0YW50
aWF0aW9uID0gZmFsc2U7CkBAIC0xNTUsNyArMTcxLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IGNvbnN0cnVjdFdlYkdMQXJyYXkoY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncywgV3JhcHBlclR5
cGUKIAogICAgIFJlZlB0cjxBcnJheUNsYXNzPiBhcnJheTsKICAgICBpZiAoZG9JbnN0YW50aWF0
aW9uKQotICAgICAgICBhcnJheSA9IEFycmF5Q2xhc3M6OmNyZWF0ZShsZW4pOworICAgICAgICBh
cnJheSA9IEFycmF5Q2xhc3M6OmNyZWF0ZVVuaW5pdGlhbGl6ZWQobGVuKTsKICAgICBpZiAoIWFy
cmF5LmdldCgpKQogICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dFcnJvcihWOFByb3h5OjpS
YW5nZUVycm9yLCAiQXJyYXlCdWZmZXJWaWV3IHNpemUgaXMgbm90IGEgc21hbGwgZW5vdWdoIHBv
c2l0aXZlIGludGVnZXIuIiwgYXJncy5HZXRJc29sYXRlKCkpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhGbG9hdDMyQXJyYXlDdXN0b20uY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RmxvYXQzMkFycmF5Q3VzdG9tLmNw
cAppbmRleCBiNTM2YmJmYzYxMWM0YWRlNzk3MjllMjJjZTRlYTBhMGQxMmI1NGEyLi42OTFlMWJj
ZTY4ODVjM2YzZjhiNzM4ZWJhODJhM2MzYzA5OWZjOTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhGbG9hdDMyQXJyYXlDdXN0b20uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEZsb2F0MzJBcnJheUN1c3RvbS5jcHAK
QEAgLTQ1LDcgKzQ1LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RmxvYXQzMkFycmF5Ojpj
b25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGEKIHsKICAgICBJTkNfU1RB
VFMoIkRPTS5GbG9hdDMyQXJyYXkuQ29udHJ1Y3RvciIpOwogCi0gICAgcmV0dXJuIGNvbnN0cnVj
dFdlYkdMQXJyYXk8RmxvYXQzMkFycmF5LCBmbG9hdD4oYXJncywgJmluZm8sIHY4OjprRXh0ZXJu
YWxGbG9hdEFycmF5KTsKKyAgICByZXR1cm4gY29uc3RydWN0V2ViR0xBcnJheTxGbG9hdDMyQXJy
YXksIFY4RmxvYXQzMkFycmF5LCBmbG9hdD4oYXJncywgJmluZm8sIHY4OjprRXh0ZXJuYWxGbG9h
dEFycmF5KTsKIH0KIAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RmxvYXQzMkFycmF5OjpzZXRD
YWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RmxvYXQ2NEFycmF5Q3VzdG9tLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEZsb2F0NjRBcnJheUN1c3RvbS5jcHAKaW5k
ZXggODg5YmQzMjNiNjc4NDI2ZDI3ZDhmYTlmNmVjZGE1ODkzZmRlMDQyYS4uOGRmMWM0ZDgxOWNj
NjUzZDYzODVmNGVjYjIyOTc4MWQ2NmJmZWYwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4RmxvYXQ2NEFycmF5Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhGbG9hdDY0QXJyYXlDdXN0b20uY3BwCkBAIC00
MCw3ICs0MCw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEZsb2F0NjRBcnJheTo6Y29uc3Ry
dWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhCiB7CiAgICAgSU5DX1NUQVRTKCJE
T00uRmxvYXQ2NEFycmF5LkNvbnRydWN0b3IiKTsKIAotICAgIHJldHVybiBjb25zdHJ1Y3RXZWJH
TEFycmF5PEZsb2F0NjRBcnJheSwgZG91YmxlPihhcmdzLCAmaW5mbywgdjg6OmtFeHRlcm5hbERv
dWJsZUFycmF5KTsKKyAgICByZXR1cm4gY29uc3RydWN0V2ViR0xBcnJheTxGbG9hdDY0QXJyYXks
IFY4RmxvYXQ2NEFycmF5LCBkb3VibGU+KGFyZ3MsICZpbmZvLCB2ODo6a0V4dGVybmFsRG91Ymxl
QXJyYXkpOwogfQogCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhGbG9hdDY0QXJyYXk6OnNldENh
bGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbnQxNkFycmF5Q3VzdG9tLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEludDE2QXJyYXlDdXN0b20uY3BwCmluZGV4IGY1
YmVkM2YzYjJmZTVjMDM4NDRiYmI5ZWExNGU3ZjM5M2UzYWYyNGEuLjgxYzc4ZTI3YmMyMDJkY2Qw
ZWRiY2U2ODJlMjgzMTJlZDJjZDc3NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOEludDE2QXJyYXlDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEludDE2QXJyYXlDdXN0b20uY3BwCkBAIC00NCw3ICs0NCw3
IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEludDE2QXJyYXk6OmNvbnN0cnVjdG9yQ2FsbGJh
Y2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJnCiB7CiAgICAgSU5DX1NUQVRTKCJET00uSW50MTZB
cnJheS5Db250cnVjdG9yIik7CiAKLSAgICByZXR1cm4gY29uc3RydWN0V2ViR0xBcnJheTxJbnQx
NkFycmF5LCBzaG9ydD4oYXJncywgJmluZm8sIHY4OjprRXh0ZXJuYWxTaG9ydEFycmF5KTsKKyAg
ICByZXR1cm4gY29uc3RydWN0V2ViR0xBcnJheTxJbnQxNkFycmF5LCBWOEludDE2QXJyYXksIHNo
b3J0PihhcmdzLCAmaW5mbywgdjg6OmtFeHRlcm5hbFNob3J0QXJyYXkpOwogfQogCiB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gVjhJbnQxNkFycmF5OjpzZXRDYWxsYmFjayhjb25zdCB2ODo6QXJndW1l
bnRzJiBhcmdzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4SW50MzJBcnJheUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhJbnQzMkFycmF5Q3VzdG9tLmNwcAppbmRleCAwMjcwZjdlODliNGMzYTE3ZmY2ZmFhNTBm
YTBhZjcwMjI1OWFkYjgzLi45YjA0OTYwMWVlMzg2NTg3ZjVjNmQ3ZTVkN2FkYjQ4Y2U5ZjE1NzE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbnQzMkFy
cmF5Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJ
bnQzMkFycmF5Q3VzdG9tLmNwcApAQCAtNDQsNyArNDQsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gVjhJbnQzMkFycmF5Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMm
IGFyZwogewogICAgIElOQ19TVEFUUygiRE9NLkludDMyQXJyYXkuQ29udHJ1Y3RvciIpOwogCi0g
ICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXk8SW50MzJBcnJheSwgaW50PihhcmdzLCAmaW5m
bywgdjg6OmtFeHRlcm5hbEludEFycmF5KTsKKyAgICByZXR1cm4gY29uc3RydWN0V2ViR0xBcnJh
eTxJbnQzMkFycmF5LCBWOEludDMyQXJyYXksIGludD4oYXJncywgJmluZm8sIHY4OjprRXh0ZXJu
YWxJbnRBcnJheSk7CiB9CiAKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEludDMyQXJyYXk6OnNl
dENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbnQ4QXJyYXlDdXN0b20uY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50OEFycmF5Q3VzdG9tLmNwcAppbmRleCAy
NDY3MDRhMjNkNzY2ZjQ3YzAyYjY5NGM2MWFjNGViMWQ3ZDliYzRhLi5iZDNhMzRkYzAyYjg3YzBm
ODQ0NDI4OWZmY2EzMmYxMWZjNDZlNTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhJbnQ4QXJyYXlDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEludDhBcnJheUN1c3RvbS5jcHAKQEAgLTQ0LDcgKzQ0LDcg
QEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4SW50OEFycmF5Ojpjb25zdHJ1Y3RvckNhbGxiYWNr
KGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5JbnQ4QXJy
YXkuQ29udHJ1Y3RvciIpOwogCi0gICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXk8SW50OEFy
cmF5LCBzaWduZWQgY2hhcj4oYXJncywgJmluZm8sIHY4OjprRXh0ZXJuYWxCeXRlQXJyYXkpOwor
ICAgIHJldHVybiBjb25zdHJ1Y3RXZWJHTEFycmF5PEludDhBcnJheSwgVjhJbnQ4QXJyYXksIHNp
Z25lZCBjaGFyPihhcmdzLCAmaW5mbywgdjg6OmtFeHRlcm5hbEJ5dGVBcnJheSk7CiB9CiAKIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBWOEludDhBcnJheTo6c2V0Q2FsbGJhY2soY29uc3Qgdjg6OkFy
Z3VtZW50cyYgYXJncykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOFVpbnQxNkFycmF5Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOFVpbnQxNkFycmF5Q3VzdG9tLmNwcAppbmRleCAwYjVhZjIwNTk1NzI3OWIzZWZl
MmI2ZmYxYWVlNDg2ZTY1MDAxOTYxLi5kNDBmOWI3MWFhMmNiMjlkNTU4YmQwNTJhZmM3MDQ4Njk1
NjYyNjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhV
aW50MTZBcnJheUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4VWludDE2QXJyYXlDdXN0b20uY3BwCkBAIC00NCw3ICs0NCw3IEBAIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBWOFVpbnQxNkFycmF5Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpB
cmd1bWVudHMmIGFyCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVWludDE2QXJyYXkuQ29udHJ1Y3Rv
ciIpOwogCi0gICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXk8VWludDE2QXJyYXksIHVuc2ln
bmVkIHNob3J0PihhcmdzLCAmaW5mbywgdjg6OmtFeHRlcm5hbFVuc2lnbmVkU2hvcnRBcnJheSk7
CisgICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXk8VWludDE2QXJyYXksIFY4VWludDE2QXJy
YXksIHVuc2lnbmVkIHNob3J0PihhcmdzLCAmaW5mbywgdjg6OmtFeHRlcm5hbFVuc2lnbmVkU2hv
cnRBcnJheSk7CiB9CiAKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFVpbnQxNkFycmF5OjpzZXRD
YWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4VWludDMyQXJyYXlDdXN0b20uY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4VWludDMyQXJyYXlDdXN0b20uY3BwCmluZGV4
IGE2ZWIyZDQ0OWZhMDg3ZTVlZGYxZDQwNjY5NjcwYjc0ODNiMzNiNTUuLjgzN2NlNTkwMTQ1YmIy
NmUxZGIzZjRjYTYyYTdhZGUxMWMyMTBhZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOFVpbnQzMkFycmF5Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhVaW50MzJBcnJheUN1c3RvbS5jcHAKQEAgLTQ0LDcg
KzQ0LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4VWludDMyQXJyYXk6OmNvbnN0cnVjdG9y
Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXIKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5V
aW50MzJBcnJheS5Db250cnVjdG9yIik7CiAKLSAgICByZXR1cm4gY29uc3RydWN0V2ViR0xBcnJh
eTxVaW50MzJBcnJheSwgdW5zaWduZWQgaW50PihhcmdzLCAmaW5mbywgdjg6OmtFeHRlcm5hbFVu
c2lnbmVkSW50QXJyYXkpOworICAgIHJldHVybiBjb25zdHJ1Y3RXZWJHTEFycmF5PFVpbnQzMkFy
cmF5LCBWOFVpbnQzMkFycmF5LCB1bnNpZ25lZCBpbnQ+KGFyZ3MsICZpbmZvLCB2ODo6a0V4dGVy
bmFsVW5zaWduZWRJbnRBcnJheSk7CiB9CiAKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFVpbnQz
MkFycmF5OjpzZXRDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4VWludDhBcnJheUN1c3RvbS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhVaW50OEFycmF5Q3VzdG9t
LmNwcAppbmRleCAzY2Y5MjZjYmIxYjVmNGExZWJlZTg2MzFkNDQ0MDg5M2Q3NGJjZTE0Li43ZGE2
NGFmZmFhZGFiMTA5OTcwZTQzYzUxMmUzYTdjMzdlODQyZWEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhVaW50OEFycmF5Q3VzdG9tLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhVaW50OEFycmF5Q3VzdG9tLmNwcApA
QCAtNDQsNyArNDQsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhVaW50OEFycmF5Ojpjb25z
dHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZwogewogICAgIElOQ19TVEFU
UygiRE9NLlVpbnQ4QXJyYXkuQ29udHJ1Y3RvciIpOwogCi0gICAgcmV0dXJuIGNvbnN0cnVjdFdl
YkdMQXJyYXk8VWludDhBcnJheSwgdW5zaWduZWQgY2hhcj4oYXJncywgJmluZm8sIHY4OjprRXh0
ZXJuYWxVbnNpZ25lZEJ5dGVBcnJheSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXk8
VWludDhBcnJheSwgVjhVaW50OEFycmF5LCB1bnNpZ25lZCBjaGFyPihhcmdzLCAmaW5mbywgdjg6
OmtFeHRlcm5hbFVuc2lnbmVkQnl0ZUFycmF5KTsKIH0KIAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IFY4VWludDhBcnJheTo6c2V0Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFVpbnQ4Q2xhbXBl
ZEFycmF5Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFVp
bnQ4Q2xhbXBlZEFycmF5Q3VzdG9tLmNwcAppbmRleCA1OWQyZDA5YzM4ZjdkZmNlYjI0Njg0YjE1
MmNjNTk5YTY3MWEwOWU0Li5iZTE4ZDliOGEzM2M3YTNhYWNiODk5YTgxMGFiNDAxYjBhNWYzNzFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhVaW50OENs
YW1wZWRBcnJheUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4VWludDhDbGFtcGVkQXJyYXlDdXN0b20uY3BwCkBAIC00MSw3ICs0MSw3IEBAIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBWOFVpbnQ4Q2xhbXBlZEFycmF5Ojpjb25zdHJ1Y3RvckNhbGxiYWNr
KGNvbnN0IHY4OjpBcmd1bWVuCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVWludDhDbGFtcGVkQXJy
YXkuQ29udHJ1Y3RvciIpOwogCi0gICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXk8VWludDhD
bGFtcGVkQXJyYXksIHVuc2lnbmVkIGNoYXI+KGFyZ3MsICZpbmZvLCB2ODo6a0V4dGVybmFsUGl4
ZWxBcnJheSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXk8VWludDhDbGFtcGVkQXJy
YXksIFY4VWludDhDbGFtcGVkQXJyYXksIHVuc2lnbmVkIGNoYXI+KGFyZ3MsICZpbmZvLCB2ODo6
a0V4dGVybmFsUGl4ZWxBcnJheSk7CiB9CiAKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFVpbnQ4
Q2xhbXBlZEFycmF5OjpzZXRDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155595</attachid>
            <date>2012-07-31 11:40:58 -0700</date>
            <delta_ts>2012-07-31 15:38:15 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>bug-92557-20120731114039.patch</filename>
            <type>text/plain</type>
            <size>12279</size>
            <attacher name="arno.">a.renevier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MDc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzM3MTkzNGU2ZGNmOWQz
ZjhmZGI0MTgwNTkxZDViOTgzOTQzZGRhNi4uNWYwZTdjOTE5ZjI1MzdkNzMxYmY1OGQxOTM1OTY0
N2Q1ZWMyNGU0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDEyLTA3LTMxICBBcm5h
dWQgUmVuZXZpZXIgIDxhLnJlbmV2aWVyQHNpc2Euc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW1Y4
XSBUeXBlZEFycmF5IGJpbmRpbmcgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnRzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjU1NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcHJvdmUgVHlwZWRBcnJheSBi
aW5kaW5ncyBwZXJmb3JtYW5jZToKKyAgICAgICAgLSBjcmVhdGUgYXJyYXlzIHdpdGggY3JlYXRl
VW5pbml0aWFsaXplZCB3aGVuIHBvc3NpYmxlLiBUeXBlZCBBcnJheQorICAgICAgICBjb25zdHJ1
Y3Rpb24gaXMgYWJvdXQgMTAlIGZhc3Rlci4KKyAgICAgICAgLSB3aGVuIGNyZWF0aW5nIGEgdHlw
ZWQgYXJyYXkgZnJvbSBhIHNhbWUgdHlwZWQgYXJyYXksIG1lbWNweSBkYXRhCisgICAgICAgIGZy
b20gc291cmNlIHRvIHRhcmdldC4KKworICAgICAgICBJbiBvcmRlciB0byBkZXRlY3QgaWYgYXJn
dW1lbnQgYXJyYXkgaXMgdGhlIHNhbWUgdHlwZSBhcworICAgICAgICBpbXBsZW1lbnRhdGlvbiBh
cnJheSwgd2UgcGFzcyB0aGUgamF2YXNjcmlwdCB3cmFwcGVyIHR5cGUgYXMgYSBuZXcKKyAgICAg
ICAgdHlwZSBhcmd1bWVudCB0byB0ZW1wbGF0ZSBmdW5jdGlvbiBjb25zdHJ1Y3RXZWJHTEFycmF5
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0czogUGVyZm9ybWFuY2UgdGVzdHMgYXJlIGFscmVhZHkg
aGFuZGxlZCBieQorICAgICAgICBCaW5kaW5ncy90eXBlZC1hcnJheS1jb25zdHJ1Y3QtZnJvbS1z
YW1lLXR5cGUuaHRtbCBhbmQKKyAgICAgICAgQmluZGluZ3MvdHlwZWQtYXJyYXktY29uc3RydWN0
LWZyb20tdHlwZWQuaHRtbAorCisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlC
dWZmZXJWaWV3Q3VzdG9tLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnN0cnVjdFdlYkdMQXJyYXkpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEZs
b2F0MzJBcnJheUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOEZsb2F0MzJBcnJheTo6
Y29uc3RydWN0b3JDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4Rmxv
YXQ2NEFycmF5Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4RmxvYXQ2NEFycmF5Ojpj
b25zdHJ1Y3RvckNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhJbnQx
NkFycmF5Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4SW50MTZBcnJheTo6Y29uc3Ry
dWN0b3JDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50MzJBcnJh
eUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOEludDMyQXJyYXk6OmNvbnN0cnVjdG9y
Q2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEludDhBcnJheUN1c3Rv
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOEludDhBcnJheTo6Y29uc3RydWN0b3JDYWxsYmFj
ayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4VWludDE2QXJyYXlDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VjhVaW50MTZBcnJheTo6Y29uc3RydWN0b3JDYWxsYmFjayk6
CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4VWludDMyQXJyYXlDdXN0b20uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VjhVaW50MzJBcnJheTo6Y29uc3RydWN0b3JDYWxsYmFjayk6Cisg
ICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4VWludDhBcnJheUN1c3RvbS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpWOFVpbnQ4QXJyYXk6OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAg
ICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFVpbnQ4Q2xhbXBlZEFycmF5Q3VzdG9tLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlY4VWludDhDbGFtcGVkQXJyYXk6OmNvbnN0cnVjdG9yQ2FsbGJhY2sp
OgorCiAyMDEyLTA3LTMwICBQYXVsIElyaXNoICA8cGF1bC5pcmlzaEBnbWFpbC5jb20+CiAKICAg
ICAgICAgV2ViIEluc3BlY3RvcjogUmVuYW1lIERhdGFiYXNlcyB0byBXZWIgU1FMCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZpZXdD
dXN0b20uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVy
Vmlld0N1c3RvbS5oCmluZGV4IGU0YWMzNTQ0YjhlNDk2YmRlYTIyMzQyNDQ5MjA4N2NlOGE0NjU3
MDguLjI2NGY5MTE5NTgyNGZlZmFiY2RjMzcyZWYzNjQ1NmM4MjE5MzViMjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyVmlld0N1c3Rv
bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVy
Vmlld0N1c3RvbS5oCkBAIC04NCw3ICs4NCw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb25z
dHJ1Y3RXZWJHTEFycmF5V2l0aEFycmF5QnVmZmVyQXJndW1lbnQoY29uc3Qgdjg6OkFyZ3VtCiB9
CiAKIC8vIFRlbXBsYXRlIGZ1bmN0aW9uIHVzZWQgYnkgdGhlIEFycmF5QnVmZmVyVmlldypDb25z
dHJ1Y3RvciBjYWxsYmFja3MuCi10ZW1wbGF0ZTxjbGFzcyBBcnJheUNsYXNzLCBjbGFzcyBFbGVt
ZW50VHlwZT4KK3RlbXBsYXRlPGNsYXNzIEFycmF5Q2xhc3MsIGNsYXNzIEphdmFTY3JpcHRXcmFw
cGVyQXJyYXlUeXBlLCBjbGFzcyBFbGVtZW50VHlwZT4KIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBj
b25zdHJ1Y3RXZWJHTEFycmF5KGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MsIFdyYXBwZXJUeXBl
SW5mbyogdHlwZSwgdjg6OkV4dGVybmFsQXJyYXlUeXBlIGFycmF5VHlwZSkKIHsKICAgICBpZiAo
IWFyZ3MuSXNDb25zdHJ1Y3RDYWxsKCkpCkBAIC0xMzQsNiArMTM0LDIyIEBAIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBjb25zdHJ1Y3RXZWJHTEFycmF5KGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3Ms
IFdyYXBwZXJUeXBlCiAgICAgaWYgKFY4QXJyYXlCdWZmZXI6Okhhc0luc3RhbmNlKGFyZ3NbMF0p
KQogICAgICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXlXaXRoQXJyYXlCdWZmZXJBcmd1bWVu
dDxBcnJheUNsYXNzLCBFbGVtZW50VHlwZT4oYXJncywgdHlwZSwgYXJyYXlUeXBlLCB0cnVlKTsK
IAorICAgIC8vIFNlZSB3aGV0aGVyIHRoZSBmaXJzdCBhcmd1bWVudCBpcyB0aGUgc2FtZSB0eXBl
IGFzIGltcGwuIEluIHRoYXQgY2FzZSwKKyAgICAvLyB3ZSBjYW4gc2ltcGx5IG1lbWNweSBkYXRh
IGZyb20gc291cmNlIHRvIGltcGwuCisgICAgaWYgKEphdmFTY3JpcHRXcmFwcGVyQXJyYXlUeXBl
OjpIYXNJbnN0YW5jZShhcmdzWzBdKSkgeworICAgICAgICBBcnJheUNsYXNzKiBzb3VyY2UgPSBK
YXZhU2NyaXB0V3JhcHBlckFycmF5VHlwZTo6dG9OYXRpdmUoYXJnc1swXS0+VG9PYmplY3QoKSk7
CisgICAgICAgIHVpbnQzMl90IGxlbmd0aCA9IHNvdXJjZS0+bGVuZ3RoKCk7CisgICAgICAgIFJl
ZlB0cjxBcnJheUNsYXNzPiBhcnJheSA9IEFycmF5Q2xhc3M6OmNyZWF0ZVVuaW5pdGlhbGl6ZWQo
bGVuZ3RoKTsKKyAgICAgICAgbWVtY3B5KGFycmF5LT5iYXNlQWRkcmVzcygpLCBzb3VyY2UtPmJh
c2VBZGRyZXNzKCksIGxlbmd0aCAqIHNpemVvZihFbGVtZW50VHlwZSkpOworCisgICAgICAgIFY4
RE9NV3JhcHBlcjo6c2V0RE9NV3JhcHBlcihhcmdzLkhvbGRlcigpLCB0eXBlLCBhcnJheS5nZXQo
KSk7CisgICAgICAgIGFyZ3MuSG9sZGVyKCktPlNldEluZGV4ZWRQcm9wZXJ0aWVzVG9FeHRlcm5h
bEFycmF5RGF0YShhcnJheS5nZXQoKS0+YmFzZUFkZHJlc3MoKSwgYXJyYXlUeXBlLCBhcnJheS5n
ZXQoKS0+bGVuZ3RoKCkpOworICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB3cmFw
cGVyID0gdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD46Ok5ldyhhcmdzLkhvbGRlcigpKTsKKyAg
ICAgICAgd3JhcHBlci5NYXJrSW5kZXBlbmRlbnQoKTsKKyAgICAgICAgVjhET01XcmFwcGVyOjpz
ZXRKU1dyYXBwZXJGb3JET01PYmplY3QoYXJyYXkucmVsZWFzZSgpLCB3cmFwcGVyKTsKKyAgICAg
ICAgcmV0dXJuIGFyZ3MuSG9sZGVyKCk7CisgICAgfQorCiAgICAgdWludDMyX3QgbGVuID0gMDsK
ICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHNyY0FycmF5OwogICAgIGJvb2wgZG9JbnN0YW50
aWF0aW9uID0gZmFsc2U7CkBAIC0xNTQsOCArMTcwLDEzIEBAIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBjb25zdHJ1Y3RXZWJHTEFycmF5KGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MsIFdyYXBwZXJU
eXBlCiAgICAgfQogCiAgICAgUmVmUHRyPEFycmF5Q2xhc3M+IGFycmF5OwotICAgIGlmIChkb0lu
c3RhbnRpYXRpb24pCi0gICAgICAgIGFycmF5ID0gQXJyYXlDbGFzczo6Y3JlYXRlKGxlbik7Cisg
ICAgaWYgKGRvSW5zdGFudGlhdGlvbikgeworICAgICAgICBpZiAoc3JjQXJyYXkuSXNFbXB0eSgp
KQorICAgICAgICAgICAgYXJyYXkgPSBBcnJheUNsYXNzOjpjcmVhdGUobGVuKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgYXJyYXkgPSBBcnJheUNsYXNzOjpjcmVhdGVVbmluaXRpYWxpemVk
KGxlbik7CisgICAgfQorCiAgICAgaWYgKCFhcnJheS5nZXQoKSkKICAgICAgICAgcmV0dXJuIFY4
UHJveHk6OnRocm93RXJyb3IoVjhQcm94eTo6UmFuZ2VFcnJvciwgIkFycmF5QnVmZmVyVmlldyBz
aXplIGlzIG5vdCBhIHNtYWxsIGVub3VnaCBwb3NpdGl2ZSBpbnRlZ2VyLiIsIGFyZ3MuR2V0SXNv
bGF0ZSgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4RmxvYXQzMkFycmF5Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOEZsb2F0MzJBcnJheUN1c3RvbS5jcHAKaW5kZXggYjUzNmJiZmM2MTFjNGFkZTc5NzI5
ZTIyY2U0ZWEwYTBkMTJiNTRhMi4uNjkxZTFiY2U2ODg1YzNmM2Y4YjczOGViYTgyYTNjM2MwOTlm
YzkxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Rmxv
YXQzMkFycmF5Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhGbG9hdDMyQXJyYXlDdXN0b20uY3BwCkBAIC00NSw3ICs0NSw3IEBAIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBWOEZsb2F0MzJBcnJheTo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6
QXJndW1lbnRzJiBhCiB7CiAgICAgSU5DX1NUQVRTKCJET00uRmxvYXQzMkFycmF5LkNvbnRydWN0
b3IiKTsKIAotICAgIHJldHVybiBjb25zdHJ1Y3RXZWJHTEFycmF5PEZsb2F0MzJBcnJheSwgZmxv
YXQ+KGFyZ3MsICZpbmZvLCB2ODo6a0V4dGVybmFsRmxvYXRBcnJheSk7CisgICAgcmV0dXJuIGNv
bnN0cnVjdFdlYkdMQXJyYXk8RmxvYXQzMkFycmF5LCBWOEZsb2F0MzJBcnJheSwgZmxvYXQ+KGFy
Z3MsICZpbmZvLCB2ODo6a0V4dGVybmFsRmxvYXRBcnJheSk7CiB9CiAKIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBWOEZsb2F0MzJBcnJheTo6c2V0Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYg
YXJncykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEZs
b2F0NjRBcnJheUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhGbG9hdDY0QXJyYXlDdXN0b20uY3BwCmluZGV4IDg4OWJkMzIzYjY3ODQyNmQyN2Q4ZmE5ZjZl
Y2RhNTg5M2ZkZTA0MmEuLjhkZjFjNGQ4MTljYzY1M2Q2Mzg1ZjRlY2IyMjk3ODFkNjZiZmVmMGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEZsb2F0NjRB
cnJheUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
RmxvYXQ2NEFycmF5Q3VzdG9tLmNwcApAQCAtNDAsNyArNDAsNyBAQCB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gVjhGbG9hdDY0QXJyYXk6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3Vt
ZW50cyYgYQogewogICAgIElOQ19TVEFUUygiRE9NLkZsb2F0NjRBcnJheS5Db250cnVjdG9yIik7
CiAKLSAgICByZXR1cm4gY29uc3RydWN0V2ViR0xBcnJheTxGbG9hdDY0QXJyYXksIGRvdWJsZT4o
YXJncywgJmluZm8sIHY4OjprRXh0ZXJuYWxEb3VibGVBcnJheSk7CisgICAgcmV0dXJuIGNvbnN0
cnVjdFdlYkdMQXJyYXk8RmxvYXQ2NEFycmF5LCBWOEZsb2F0NjRBcnJheSwgZG91YmxlPihhcmdz
LCAmaW5mbywgdjg6OmtFeHRlcm5hbERvdWJsZUFycmF5KTsKIH0KIAogdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IFY4RmxvYXQ2NEFycmF5OjpzZXRDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBh
cmdzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50
MTZBcnJheUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJ
bnQxNkFycmF5Q3VzdG9tLmNwcAppbmRleCBmNWJlZDNmM2IyZmU1YzAzODQ0YmJiOWVhMTRlN2Yz
OTNlM2FmMjRhLi44MWM3OGUyN2JjMjAyZGNkMGVkYmNlNjgyZTI4MzEyZWQyY2Q3NzY5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbnQxNkFycmF5Q3Vz
dG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbnQxNkFy
cmF5Q3VzdG9tLmNwcApAQCAtNDQsNyArNDQsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhJ
bnQxNkFycmF5Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZwog
ewogICAgIElOQ19TVEFUUygiRE9NLkludDE2QXJyYXkuQ29udHJ1Y3RvciIpOwogCi0gICAgcmV0
dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXk8SW50MTZBcnJheSwgc2hvcnQ+KGFyZ3MsICZpbmZvLCB2
ODo6a0V4dGVybmFsU2hvcnRBcnJheSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXk8
SW50MTZBcnJheSwgVjhJbnQxNkFycmF5LCBzaG9ydD4oYXJncywgJmluZm8sIHY4OjprRXh0ZXJu
YWxTaG9ydEFycmF5KTsKIH0KIAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4SW50MTZBcnJheTo6
c2V0Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEludDMyQXJyYXlDdXN0b20uY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50MzJBcnJheUN1c3RvbS5jcHAKaW5k
ZXggMDI3MGY3ZTg5YjRjM2ExN2ZmNmZhYTUwZmEwYWY3MDIyNTlhZGI4My4uOWIwNDk2MDFlZTM4
NjU4N2Y1YzZkN2U1ZDdhZGI0OGNlOWYxNTcxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50MzJBcnJheUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50MzJBcnJheUN1c3RvbS5jcHAKQEAgLTQ0LDcg
KzQ0LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4SW50MzJBcnJheTo6Y29uc3RydWN0b3JD
YWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmcKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5J
bnQzMkFycmF5LkNvbnRydWN0b3IiKTsKIAotICAgIHJldHVybiBjb25zdHJ1Y3RXZWJHTEFycmF5
PEludDMyQXJyYXksIGludD4oYXJncywgJmluZm8sIHY4OjprRXh0ZXJuYWxJbnRBcnJheSk7Cisg
ICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXk8SW50MzJBcnJheSwgVjhJbnQzMkFycmF5LCBp
bnQ+KGFyZ3MsICZpbmZvLCB2ODo6a0V4dGVybmFsSW50QXJyYXkpOwogfQogCiB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gVjhJbnQzMkFycmF5OjpzZXRDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRz
JiBhcmdzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
SW50OEFycmF5Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OEludDhBcnJheUN1c3RvbS5jcHAKaW5kZXggMjQ2NzA0YTIzZDc2NmY0N2MwMmI2OTRjNjFhYzRl
YjFkN2Q5YmM0YS4uYmQzYTM0ZGMwMmI4N2MwZjg0NDQyODlmZmNhMzJmMTFmYzQ2ZTU2OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50OEFycmF5Q3Vz
dG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbnQ4QXJy
YXlDdXN0b20uY3BwCkBAIC00NCw3ICs0NCw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOElu
dDhBcnJheTo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzCiB7
CiAgICAgSU5DX1NUQVRTKCJET00uSW50OEFycmF5LkNvbnRydWN0b3IiKTsKIAotICAgIHJldHVy
biBjb25zdHJ1Y3RXZWJHTEFycmF5PEludDhBcnJheSwgc2lnbmVkIGNoYXI+KGFyZ3MsICZpbmZv
LCB2ODo6a0V4dGVybmFsQnl0ZUFycmF5KTsKKyAgICByZXR1cm4gY29uc3RydWN0V2ViR0xBcnJh
eTxJbnQ4QXJyYXksIFY4SW50OEFycmF5LCBzaWduZWQgY2hhcj4oYXJncywgJmluZm8sIHY4Ojpr
RXh0ZXJuYWxCeXRlQXJyYXkpOwogfQogCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhJbnQ4QXJy
YXk6OnNldENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhVaW50MTZBcnJheUN1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhVaW50MTZBcnJheUN1c3RvbS5j
cHAKaW5kZXggMGI1YWYyMDU5NTcyNzliM2VmZTJiNmZmMWFlZTQ4NmU2NTAwMTk2MS4uZDQwZjli
NzFhYTJjYjI5ZDU1OGJkMDUyYWZjNzA0ODY5NTY2MjYyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4VWludDE2QXJyYXlDdXN0b20uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFVpbnQxNkFycmF5Q3VzdG9tLmNwcApA
QCAtNDQsNyArNDQsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhVaW50MTZBcnJheTo6Y29u
c3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcgogewogICAgIElOQ19TVEFU
UygiRE9NLlVpbnQxNkFycmF5LkNvbnRydWN0b3IiKTsKIAotICAgIHJldHVybiBjb25zdHJ1Y3RX
ZWJHTEFycmF5PFVpbnQxNkFycmF5LCB1bnNpZ25lZCBzaG9ydD4oYXJncywgJmluZm8sIHY4Ojpr
RXh0ZXJuYWxVbnNpZ25lZFNob3J0QXJyYXkpOworICAgIHJldHVybiBjb25zdHJ1Y3RXZWJHTEFy
cmF5PFVpbnQxNkFycmF5LCBWOFVpbnQxNkFycmF5LCB1bnNpZ25lZCBzaG9ydD4oYXJncywgJmlu
Zm8sIHY4OjprRXh0ZXJuYWxVbnNpZ25lZFNob3J0QXJyYXkpOwogfQogCiB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gVjhVaW50MTZBcnJheTo6c2V0Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYg
YXJncykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFVp
bnQzMkFycmF5Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OFVpbnQzMkFycmF5Q3VzdG9tLmNwcAppbmRleCBhNmViMmQ0NDlmYTA4N2U1ZWRmMWQ0MDY2OTY3
MGI3NDgzYjMzYjU1Li44MzdjZTU5MDE0NWJiMjZlMWRiM2Y0Y2E2MmE3YWRlMTFjMjEwYWVjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhVaW50MzJBcnJh
eUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4VWlu
dDMyQXJyYXlDdXN0b20uY3BwCkBAIC00NCw3ICs0NCw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBWOFVpbnQzMkFycmF5Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMm
IGFyCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVWludDMyQXJyYXkuQ29udHJ1Y3RvciIpOwogCi0g
ICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXk8VWludDMyQXJyYXksIHVuc2lnbmVkIGludD4o
YXJncywgJmluZm8sIHY4OjprRXh0ZXJuYWxVbnNpZ25lZEludEFycmF5KTsKKyAgICByZXR1cm4g
Y29uc3RydWN0V2ViR0xBcnJheTxVaW50MzJBcnJheSwgVjhVaW50MzJBcnJheSwgdW5zaWduZWQg
aW50PihhcmdzLCAmaW5mbywgdjg6OmtFeHRlcm5hbFVuc2lnbmVkSW50QXJyYXkpOwogfQogCiB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhVaW50MzJBcnJheTo6c2V0Q2FsbGJhY2soY29uc3Qgdjg6
OkFyZ3VtZW50cyYgYXJncykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOFVpbnQ4QXJyYXlDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4VWludDhBcnJheUN1c3RvbS5jcHAKaW5kZXggM2NmOTI2Y2JiMWI1ZjRhMWVi
ZWU4NjMxZDQ0NDA4OTNkNzRiY2UxNC4uN2RhNjRhZmZhYWRhYjEwOTk3MGU0M2M1MTJlM2E3YzM3
ZTg0MmVhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
VWludDhBcnJheUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4VWludDhBcnJheUN1c3RvbS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IFY4VWludDhBcnJheTo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJn
dW1lbnRzJiBhcmcKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5VaW50OEFycmF5LkNvbnRydWN0b3Ii
KTsKIAotICAgIHJldHVybiBjb25zdHJ1Y3RXZWJHTEFycmF5PFVpbnQ4QXJyYXksIHVuc2lnbmVk
IGNoYXI+KGFyZ3MsICZpbmZvLCB2ODo6a0V4dGVybmFsVW5zaWduZWRCeXRlQXJyYXkpOworICAg
IHJldHVybiBjb25zdHJ1Y3RXZWJHTEFycmF5PFVpbnQ4QXJyYXksIFY4VWludDhBcnJheSwgdW5z
aWduZWQgY2hhcj4oYXJncywgJmluZm8sIHY4OjprRXh0ZXJuYWxVbnNpZ25lZEJ5dGVBcnJheSk7
CiB9CiAKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFVpbnQ4QXJyYXk6OnNldENhbGxiYWNrKGNv
bnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhVaW50OENsYW1wZWRBcnJheUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhVaW50OENsYW1wZWRBcnJheUN1c3RvbS5jcHAKaW5k
ZXggNTlkMmQwOWMzOGY3ZGZjZWIyNDY4NGIxNTJjYzU5OWE2NzFhMDllNC4uYmUxOGQ5YjhhMzNj
N2EzYWFjYjg5OWE4MTBhYjQwMWIwYTVmMzcxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4VWludDhDbGFtcGVkQXJyYXlDdXN0b20uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFVpbnQ4Q2xhbXBlZEFycmF5Q3VzdG9t
LmNwcApAQCAtNDEsNyArNDEsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhVaW50OENsYW1w
ZWRBcnJheTo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbgogewogICAgIElO
Q19TVEFUUygiRE9NLlVpbnQ4Q2xhbXBlZEFycmF5LkNvbnRydWN0b3IiKTsKIAotICAgIHJldHVy
biBjb25zdHJ1Y3RXZWJHTEFycmF5PFVpbnQ4Q2xhbXBlZEFycmF5LCB1bnNpZ25lZCBjaGFyPihh
cmdzLCAmaW5mbywgdjg6OmtFeHRlcm5hbFBpeGVsQXJyYXkpOworICAgIHJldHVybiBjb25zdHJ1
Y3RXZWJHTEFycmF5PFVpbnQ4Q2xhbXBlZEFycmF5LCBWOFVpbnQ4Q2xhbXBlZEFycmF5LCB1bnNp
Z25lZCBjaGFyPihhcmdzLCAmaW5mbywgdjg6OmtFeHRlcm5hbFBpeGVsQXJyYXkpOwogfQogCiB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhVaW50OENsYW1wZWRBcnJheTo6c2V0Q2FsbGJhY2soY29u
c3Qgdjg6OkFyZ3VtZW50cyYgYXJncykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155650</attachid>
            <date>2012-07-31 15:38:18 -0700</date>
            <delta_ts>2012-08-01 15:51:19 -0700</delta_ts>
            <desc>updated patch to address review</desc>
            <filename>bug-92557-20120731153759.patch</filename>
            <type>text/plain</type>
            <size>15176</size>
            <attacher name="arno.">a.renevier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MDc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzM3MTkzNGU2ZGNmOWQz
ZjhmZGI0MTgwNTkxZDViOTgzOTQzZGRhNi4uNGM5YWI0MzBlYTU4MTllNjE0MDEwOTUyYjMyMWFi
ZTMzOGYyYTZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEyLTA3LTMxICBBcm5h
dWQgUmVuZXZpZXIgIDxhLnJlbmV2aWVyQHNpc2Euc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW1Y4
XSBUeXBlZEFycmF5IGJpbmRpbmcgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnRzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjU1NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcHJvdmUgVHlwZWRBcnJheSBi
aW5kaW5ncyBwZXJmb3JtYW5jZToKKyAgICAgICAgLSBjcmVhdGUgYXJyYXlzIHdpdGggY3JlYXRl
VW5pbml0aWFsaXplZCB3aGVuIHBvc3NpYmxlLiBUeXBlZCBBcnJheQorICAgICAgICBjb25zdHJ1
Y3Rpb24gaXMgYWJvdXQgMTAlIGZhc3Rlci4KKyAgICAgICAgLSB3aGVuIGNyZWF0aW5nIGEgdHlw
ZWQgYXJyYXkgZnJvbSBhIHNhbWUgdHlwZWQgYXJyYXksIG1lbWNweSBkYXRhCisgICAgICAgIGZy
b20gc291cmNlIHRvIHRhcmdldC4KKworICAgICAgICBJbiBvcmRlciB0byBkZXRlY3QgaWYgYXJn
dW1lbnQgYXJyYXkgaXMgdGhlIHNhbWUgdHlwZSBhcworICAgICAgICBpbXBsZW1lbnRhdGlvbiBh
cnJheSwgd2UgcGFzcyB0aGUgamF2YXNjcmlwdCB3cmFwcGVyIHR5cGUgYXMgYSBuZXcKKyAgICAg
ICAgdHlwZSBhcmd1bWVudCB0byB0ZW1wbGF0ZSBmdW5jdGlvbiBjb25zdHJ1Y3RXZWJHTEFycmF5
LgorCisgICAgICAgIEludHJvZHVjZSB3cmFwV2ViR0xBcnJheUJ1ZmZlciB3aGljaCB3cmFwcyB0
eXBlZCBhcnJheSBpbnRvIGEKKyAgICAgICAgdjg6OlZhbHVlCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzOiBQZXJmb3JtYW5jZSB0ZXN0cyBhcmUgYWxyZWFkeSBoYW5kbGVkIGJ5CisgICAgICAgIEJp
bmRpbmdzL3R5cGVkLWFycmF5LWNvbnN0cnVjdC1mcm9tLXNhbWUtdHlwZS5odG1sIGFuZAorICAg
ICAgICBCaW5kaW5ncy90eXBlZC1hcnJheS1jb25zdHJ1Y3QtZnJvbS10eXBlZC5odG1sCisKKyAg
ICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZpZXdDdXN0b20uaDoKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3RydWN0V2ViR0xBcnJheSk6
CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4RmxvYXQzMkFycmF5Q3VzdG9tLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlY4RmxvYXQzMkFycmF5Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKToK
KyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhGbG9hdDY0QXJyYXlDdXN0b20uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VjhGbG9hdDY0QXJyYXk6OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEludDE2QXJyYXlDdXN0b20uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VjhJbnQxNkFycmF5Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKToKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhJbnQzMkFycmF5Q3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlY4SW50MzJBcnJheTo6Y29uc3RydWN0b3JDYWxsYmFjayk6CisgICAgICAgICog
YmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50OEFycmF5Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlY4SW50OEFycmF5Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5n
cy92OC9jdXN0b20vVjhVaW50MTZBcnJheUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpW
OFVpbnQxNkFycmF5Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92
OC9jdXN0b20vVjhVaW50MzJBcnJheUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFVp
bnQzMkFycmF5Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9j
dXN0b20vVjhVaW50OEFycmF5Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4VWludDhB
cnJheTo6Y29uc3RydWN0b3JDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9t
L1Y4VWludDhDbGFtcGVkQXJyYXlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhVaW50
OENsYW1wZWRBcnJheTo6Y29uc3RydWN0b3JDYWxsYmFjayk6CisKIDIwMTItMDctMzAgIFBhdWwg
SXJpc2ggIDxwYXVsLmlyaXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBS
ZW5hbWUgRGF0YWJhc2VzIHRvIFdlYiBTUUwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmgKaW5kZXggZTRh
YzM1NDRiOGU0OTZiZGVhMjIzNDI0NDkyMDg3Y2U4YTQ2NTcwOC4uNzQ2ZTkwZjYzYjRlZDZhYzE4
OWJhMDY3ODIyMjI0NjU1NjdjMmI2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmgKQEAgLTQ0LDYg
KzQ0LDE4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vIFJldHVybnMgdHJ1ZSBpZiBpdCBzdWNj
ZWVkZWQsIG90aGVyd2lzZSByZXR1cm5zIGZhbHNlLgogYm9vbCBjb3B5RWxlbWVudHModjg6Okhh
bmRsZTx2ODo6T2JqZWN0PiBkZXN0QXJyYXksIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gc3JjQXJy
YXksIHVpbnQzMl90IGxlbmd0aCwgdWludDMyX3Qgb2Zmc2V0LCB2ODo6SXNvbGF0ZSopOwogCit0
ZW1wbGF0ZTxjbGFzcyBBcnJheUNsYXNzPgordjg6OkhhbmRsZTx2ODo6VmFsdWU+IHdyYXBXZWJH
TEFycmF5QnVmZmVyKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MsIFdyYXBwZXJUeXBlSW5mbyog
dHlwZSwgQXJyYXlDbGFzcyBhcnJheSwgdjg6OkV4dGVybmFsQXJyYXlUeXBlIGFycmF5VHlwZSwg
Ym9vbCBoYXNJbmRleGVyKQoreworICAgIC8vIFRyYW5zZm9ybSB0aGUgaG9sZGVyIGludG8gYSB3
cmFwcGVyIG9iamVjdCBmb3IgdGhlIGFycmF5LgorICAgIFY4RE9NV3JhcHBlcjo6c2V0RE9NV3Jh
cHBlcihhcmdzLkhvbGRlcigpLCB0eXBlLCBhcnJheS5nZXQoKSk7CisgICAgaWYgKGhhc0luZGV4
ZXIpCisgICAgICAgIGFyZ3MuSG9sZGVyKCktPlNldEluZGV4ZWRQcm9wZXJ0aWVzVG9FeHRlcm5h
bEFycmF5RGF0YShhcnJheS5nZXQoKS0+YmFzZUFkZHJlc3MoKSwgYXJyYXlUeXBlLCBhcnJheS5n
ZXQoKS0+bGVuZ3RoKCkpOworICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXIg
PSB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Pjo6TmV3KGFyZ3MuSG9sZGVyKCkpOworICAgIHdy
YXBwZXIuTWFya0luZGVwZW5kZW50KCk7CisgICAgVjhET01XcmFwcGVyOjpzZXRKU1dyYXBwZXJG
b3JET01PYmplY3QoYXJyYXkucmVsZWFzZSgpLCB3cmFwcGVyKTsKKyAgICByZXR1cm4gYXJncy5I
b2xkZXIoKTsKK30KIAogLy8gVGVtcGxhdGUgZnVuY3Rpb24gdXNlZCBieSB0aGUgQXJyYXlCdWZm
ZXJWaWV3KkNvbnN0cnVjdG9yIGNhbGxiYWNrcy4KIHRlbXBsYXRlPGNsYXNzIEFycmF5Q2xhc3Ms
IGNsYXNzIEVsZW1lbnRUeXBlPgpAQCAtNzMsMTggKzg1LDE0IEBAIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBjb25zdHJ1Y3RXZWJHTEFycmF5V2l0aEFycmF5QnVmZmVyQXJndW1lbnQoY29uc3Qgdjg6
OkFyZ3VtCiAgICAgUmVmUHRyPEFycmF5Q2xhc3M+IGFycmF5ID0gQXJyYXlDbGFzczo6Y3JlYXRl
KGJ1Ziwgb2Zmc2V0LCBsZW5ndGgpOwogICAgIGlmICghYXJyYXkpCiAgICAgICAgIHJldHVybiBW
OFByb3h5OjpzZXRET01FeGNlcHRpb24oSU5ERVhfU0laRV9FUlIsIGFyZ3MuR2V0SXNvbGF0ZSgp
KTsKLSAgICAvLyBUcmFuc2Zvcm0gdGhlIGhvbGRlciBpbnRvIGEgd3JhcHBlciBvYmplY3QgZm9y
IHRoZSBhcnJheS4KLSAgICBWOERPTVdyYXBwZXI6OnNldERPTVdyYXBwZXIoYXJncy5Ib2xkZXIo
KSwgdHlwZSwgYXJyYXkuZ2V0KCkpOwotICAgIGlmIChoYXNJbmRleGVyKQotICAgICAgICBhcmdz
LkhvbGRlcigpLT5TZXRJbmRleGVkUHJvcGVydGllc1RvRXh0ZXJuYWxBcnJheURhdGEoYXJyYXku
Z2V0KCktPmJhc2VBZGRyZXNzKCksIGFycmF5VHlwZSwgYXJyYXkuZ2V0KCktPmxlbmd0aCgpKTsK
LSAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB3cmFwcGVyID0gdjg6OlBlcnNpc3RlbnQ8
djg6Ok9iamVjdD46Ok5ldyhhcmdzLkhvbGRlcigpKTsKLSAgICB3cmFwcGVyLk1hcmtJbmRlcGVu
ZGVudCgpOwotICAgIFY4RE9NV3JhcHBlcjo6c2V0SlNXcmFwcGVyRm9yRE9NT2JqZWN0KGFycmF5
LnJlbGVhc2UoKSwgd3JhcHBlcik7Ci0gICAgcmV0dXJuIGFyZ3MuSG9sZGVyKCk7CisKKyAgICBy
ZXR1cm4gd3JhcFdlYkdMQXJyYXlCdWZmZXIoYXJncywgdHlwZSwgYXJyYXksIGFycmF5VHlwZSwg
aGFzSW5kZXhlcik7CiB9CiAKK3N0YXRpYyBjb25zdCBjaGFyKiBub3RTbWFsbEVub3VnaFNpemUg
PSAiQXJyYXlCdWZmZXJWaWV3IHNpemUgaXMgbm90IGEgc21hbGwgZW5vdWdoIHBvc2l0aXZlIGlu
dGVnZXIuIjsKKwogLy8gVGVtcGxhdGUgZnVuY3Rpb24gdXNlZCBieSB0aGUgQXJyYXlCdWZmZXJW
aWV3KkNvbnN0cnVjdG9yIGNhbGxiYWNrcy4KLXRlbXBsYXRlPGNsYXNzIEFycmF5Q2xhc3MsIGNs
YXNzIEVsZW1lbnRUeXBlPgordGVtcGxhdGU8Y2xhc3MgQXJyYXlDbGFzcywgY2xhc3MgSmF2YVNj
cmlwdFdyYXBwZXJBcnJheVR5cGUsIGNsYXNzIEVsZW1lbnRUeXBlPgogdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IGNvbnN0cnVjdFdlYkdMQXJyYXkoY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncywgV3Jh
cHBlclR5cGVJbmZvKiB0eXBlLCB2ODo6RXh0ZXJuYWxBcnJheVR5cGUgYXJyYXlUeXBlKQogewog
ICAgIGlmICghYXJncy5Jc0NvbnN0cnVjdENhbGwoKSkKQEAgLTEwNCwxNSArMTEyLDEwIEBAIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBjb25zdHJ1Y3RXZWJHTEFycmF5KGNvbnN0IHY4OjpBcmd1bWVu
dHMmIGFyZ3MsIFdyYXBwZXJUeXBlCiAgICAgICAgIC8vIGNvbnN0cnVjdCBhbiBlbXB0eSB2aWV3
IHRvIGF2b2lkIGNyYXNoZXMgd2hlbiBmZXRjaGluZyB0aGUKICAgICAgICAgLy8gbGVuZ3RoLgog
ICAgICAgICBSZWZQdHI8QXJyYXlDbGFzcz4gYXJyYXkgPSBBcnJheUNsYXNzOjpjcmVhdGUoMCk7
Ci0gICAgICAgIC8vIFRyYW5zZm9ybSB0aGUgaG9sZGVyIGludG8gYSB3cmFwcGVyIG9iamVjdCBm
b3IgdGhlIGFycmF5LgotICAgICAgICBWOERPTVdyYXBwZXI6OnNldERPTVdyYXBwZXIoYXJncy5I
b2xkZXIoKSwgdHlwZSwgYXJyYXkuZ2V0KCkpOwogICAgICAgICAvLyBEbyBub3QgY2FsbCBTZXRJ
bmRleGVkUHJvcGVydGllc1RvRXh0ZXJuYWxBcnJheURhdGEgb24gdGhpcwogICAgICAgICAvLyBv
YmplY3QuIE5vdCBvbmx5IGlzIHRoZXJlIG5vIHBvaW50IGZyb20gYSBwZXJmb3JtYW5jZQogICAg
ICAgICAvLyBwZXJzcGVjdGl2ZSwgYnV0IGRvaW5nIHNvIGNhdXNlcyBlcnJvcnMgaW4gdGhlIHN1
YnNldCgpIGNhc2UuCi0gICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXIg
PSB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Pjo6TmV3KGFyZ3MuSG9sZGVyKCkpOwotICAgICAg
ICB3cmFwcGVyLk1hcmtJbmRlcGVuZGVudCgpOwotICAgICAgICBWOERPTVdyYXBwZXI6OnNldEpT
V3JhcHBlckZvckRPTU9iamVjdChhcnJheS5yZWxlYXNlKCksIHdyYXBwZXIpOwotICAgICAgICBy
ZXR1cm4gYXJncy5Ib2xkZXIoKTsKKyAgICAgICAgcmV0dXJuIHdyYXBXZWJHTEFycmF5QnVmZmVy
KGFyZ3MsIHR5cGUsIGFycmF5LCBhcnJheVR5cGUsIGZhbHNlKTsKICAgICB9CiAKICAgICAvLyBT
dXBwb3J0ZWQgY29uc3RydWN0b3JzOgpAQCAtMTM0LDYgKzEzNywyMCBAQCB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gY29uc3RydWN0V2ViR0xBcnJheShjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzLCBX
cmFwcGVyVHlwZQogICAgIGlmIChWOEFycmF5QnVmZmVyOjpIYXNJbnN0YW5jZShhcmdzWzBdKSkK
ICAgICAgIHJldHVybiBjb25zdHJ1Y3RXZWJHTEFycmF5V2l0aEFycmF5QnVmZmVyQXJndW1lbnQ8
QXJyYXlDbGFzcywgRWxlbWVudFR5cGU+KGFyZ3MsIHR5cGUsIGFycmF5VHlwZSwgdHJ1ZSk7CiAK
KyAgICAvLyBTZWUgd2hldGhlciB0aGUgZmlyc3QgYXJndW1lbnQgaXMgdGhlIHNhbWUgdHlwZSBh
cyBpbXBsLiBJbiB0aGF0IGNhc2UsCisgICAgLy8gd2UgY2FuIHNpbXBseSBtZW1jcHkgZGF0YSBm
cm9tIHNvdXJjZSB0byBpbXBsLgorICAgIGlmIChKYXZhU2NyaXB0V3JhcHBlckFycmF5VHlwZTo6
SGFzSW5zdGFuY2UoYXJnc1swXSkpIHsKKyAgICAgICAgQXJyYXlDbGFzcyogc291cmNlID0gSmF2
YVNjcmlwdFdyYXBwZXJBcnJheVR5cGU6OnRvTmF0aXZlKGFyZ3NbMF0tPlRvT2JqZWN0KCkpOwor
ICAgICAgICB1aW50MzJfdCBsZW5ndGggPSBzb3VyY2UtPmxlbmd0aCgpOworICAgICAgICBSZWZQ
dHI8QXJyYXlDbGFzcz4gYXJyYXkgPSBBcnJheUNsYXNzOjpjcmVhdGVVbmluaXRpYWxpemVkKGxl
bmd0aCk7CisgICAgICAgIGlmICghYXJyYXkuZ2V0KCkpCisgICAgICAgICAgICByZXR1cm4gVjhQ
cm94eTo6dGhyb3dFcnJvcihWOFByb3h5OjpSYW5nZUVycm9yLCBub3RTbWFsbEVub3VnaFNpemUs
IGFyZ3MuR2V0SXNvbGF0ZSgpKTsKKworICAgICAgICBtZW1jcHkoYXJyYXktPmJhc2VBZGRyZXNz
KCksIHNvdXJjZS0+YmFzZUFkZHJlc3MoKSwgbGVuZ3RoICogc2l6ZW9mKEVsZW1lbnRUeXBlKSk7
CisKKyAgICAgICAgcmV0dXJuIHdyYXBXZWJHTEFycmF5QnVmZmVyKGFyZ3MsIHR5cGUsIGFycmF5
LCBhcnJheVR5cGUsIHRydWUpOworICAgIH0KKwogICAgIHVpbnQzMl90IGxlbiA9IDA7CiAgICAg
djg6OkhhbmRsZTx2ODo6T2JqZWN0PiBzcmNBcnJheTsKICAgICBib29sIGRvSW5zdGFudGlhdGlv
biA9IGZhbHNlOwpAQCAtMTU0LDEwICsxNzEsMTUgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNv
bnN0cnVjdFdlYkdMQXJyYXkoY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncywgV3JhcHBlclR5cGUK
ICAgICB9CiAKICAgICBSZWZQdHI8QXJyYXlDbGFzcz4gYXJyYXk7Ci0gICAgaWYgKGRvSW5zdGFu
dGlhdGlvbikKLSAgICAgICAgYXJyYXkgPSBBcnJheUNsYXNzOjpjcmVhdGUobGVuKTsKKyAgICBp
ZiAoZG9JbnN0YW50aWF0aW9uKSB7CisgICAgICAgIGlmIChzcmNBcnJheS5Jc0VtcHR5KCkpCisg
ICAgICAgICAgICBhcnJheSA9IEFycmF5Q2xhc3M6OmNyZWF0ZShsZW4pOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBhcnJheSA9IEFycmF5Q2xhc3M6OmNyZWF0ZVVuaW5pdGlhbGl6ZWQobGVu
KTsKKyAgICB9CisKICAgICBpZiAoIWFycmF5LmdldCgpKQotICAgICAgICByZXR1cm4gVjhQcm94
eTo6dGhyb3dFcnJvcihWOFByb3h5OjpSYW5nZUVycm9yLCAiQXJyYXlCdWZmZXJWaWV3IHNpemUg
aXMgbm90IGEgc21hbGwgZW5vdWdoIHBvc2l0aXZlIGludGVnZXIuIiwgYXJncy5HZXRJc29sYXRl
KCkpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dFcnJvcihWOFByb3h5OjpSYW5nZUVy
cm9yLCBub3RTbWFsbEVub3VnaFNpemUsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIAogCiAgICAgLy8g
VHJhbnNmb3JtIHRoZSBob2xkZXIgaW50byBhIHdyYXBwZXIgb2JqZWN0IGZvciB0aGUgYXJyYXku
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhGbG9hdDMy
QXJyYXlDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Rmxv
YXQzMkFycmF5Q3VzdG9tLmNwcAppbmRleCBiNTM2YmJmYzYxMWM0YWRlNzk3MjllMjJjZTRlYTBh
MGQxMmI1NGEyLi42OTFlMWJjZTY4ODVjM2YzZjhiNzM4ZWJhODJhM2MzYzA5OWZjOTFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhGbG9hdDMyQXJyYXlD
dXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEZsb2F0
MzJBcnJheUN1c3RvbS5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IFY4RmxvYXQzMkFycmF5Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMm
IGEKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5GbG9hdDMyQXJyYXkuQ29udHJ1Y3RvciIpOwogCi0g
ICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXk8RmxvYXQzMkFycmF5LCBmbG9hdD4oYXJncywg
JmluZm8sIHY4OjprRXh0ZXJuYWxGbG9hdEFycmF5KTsKKyAgICByZXR1cm4gY29uc3RydWN0V2Vi
R0xBcnJheTxGbG9hdDMyQXJyYXksIFY4RmxvYXQzMkFycmF5LCBmbG9hdD4oYXJncywgJmluZm8s
IHY4OjprRXh0ZXJuYWxGbG9hdEFycmF5KTsKIH0KIAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4
RmxvYXQzMkFycmF5OjpzZXRDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RmxvYXQ2NEFycmF5
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEZsb2F0NjRB
cnJheUN1c3RvbS5jcHAKaW5kZXggODg5YmQzMjNiNjc4NDI2ZDI3ZDhmYTlmNmVjZGE1ODkzZmRl
MDQyYS4uOGRmMWM0ZDgxOWNjNjUzZDYzODVmNGVjYjIyOTc4MWQ2NmJmZWYwYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RmxvYXQ2NEFycmF5Q3VzdG9t
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhGbG9hdDY0QXJy
YXlDdXN0b20uY3BwCkBAIC00MCw3ICs0MCw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEZs
b2F0NjRBcnJheTo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhCiB7
CiAgICAgSU5DX1NUQVRTKCJET00uRmxvYXQ2NEFycmF5LkNvbnRydWN0b3IiKTsKIAotICAgIHJl
dHVybiBjb25zdHJ1Y3RXZWJHTEFycmF5PEZsb2F0NjRBcnJheSwgZG91YmxlPihhcmdzLCAmaW5m
bywgdjg6OmtFeHRlcm5hbERvdWJsZUFycmF5KTsKKyAgICByZXR1cm4gY29uc3RydWN0V2ViR0xB
cnJheTxGbG9hdDY0QXJyYXksIFY4RmxvYXQ2NEFycmF5LCBkb3VibGU+KGFyZ3MsICZpbmZvLCB2
ODo6a0V4dGVybmFsRG91YmxlQXJyYXkpOwogfQogCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhG
bG9hdDY0QXJyYXk6OnNldENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbnQxNkFycmF5Q3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEludDE2QXJyYXlD
dXN0b20uY3BwCmluZGV4IGY1YmVkM2YzYjJmZTVjMDM4NDRiYmI5ZWExNGU3ZjM5M2UzYWYyNGEu
LjgxYzc4ZTI3YmMyMDJkY2QwZWRiY2U2ODJlMjgzMTJlZDJjZDc3NjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEludDE2QXJyYXlDdXN0b20uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEludDE2QXJyYXlDdXN0b20u
Y3BwCkBAIC00NCw3ICs0NCw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEludDE2QXJyYXk6
OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJnCiB7CiAgICAgSU5D
X1NUQVRTKCJET00uSW50MTZBcnJheS5Db250cnVjdG9yIik7CiAKLSAgICByZXR1cm4gY29uc3Ry
dWN0V2ViR0xBcnJheTxJbnQxNkFycmF5LCBzaG9ydD4oYXJncywgJmluZm8sIHY4OjprRXh0ZXJu
YWxTaG9ydEFycmF5KTsKKyAgICByZXR1cm4gY29uc3RydWN0V2ViR0xBcnJheTxJbnQxNkFycmF5
LCBWOEludDE2QXJyYXksIHNob3J0PihhcmdzLCAmaW5mbywgdjg6OmtFeHRlcm5hbFNob3J0QXJy
YXkpOwogfQogCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhJbnQxNkFycmF5OjpzZXRDYWxsYmFj
ayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50MzJBcnJheUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbnQzMkFycmF5Q3VzdG9tLmNwcAppbmRleCAwMjcwZjdl
ODliNGMzYTE3ZmY2ZmFhNTBmYTBhZjcwMjI1OWFkYjgzLi45YjA0OTYwMWVlMzg2NTg3ZjVjNmQ3
ZTVkN2FkYjQ4Y2U5ZjE1NzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhJbnQzMkFycmF5Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhJbnQzMkFycmF5Q3VzdG9tLmNwcApAQCAtNDQsNyArNDQsNyBAQCB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhJbnQzMkFycmF5Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNv
bnN0IHY4OjpBcmd1bWVudHMmIGFyZwogewogICAgIElOQ19TVEFUUygiRE9NLkludDMyQXJyYXku
Q29udHJ1Y3RvciIpOwogCi0gICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXk8SW50MzJBcnJh
eSwgaW50PihhcmdzLCAmaW5mbywgdjg6OmtFeHRlcm5hbEludEFycmF5KTsKKyAgICByZXR1cm4g
Y29uc3RydWN0V2ViR0xBcnJheTxJbnQzMkFycmF5LCBWOEludDMyQXJyYXksIGludD4oYXJncywg
JmluZm8sIHY4OjprRXh0ZXJuYWxJbnRBcnJheSk7CiB9CiAKIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBWOEludDMyQXJyYXk6OnNldENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbnQ4QXJyYXlD
dXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50OEFycmF5
Q3VzdG9tLmNwcAppbmRleCAyNDY3MDRhMjNkNzY2ZjQ3YzAyYjY5NGM2MWFjNGViMWQ3ZDliYzRh
Li5iZDNhMzRkYzAyYjg3YzBmODQ0NDI4OWZmY2EzMmYxMWZjNDZlNTY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbnQ4QXJyYXlDdXN0b20uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEludDhBcnJheUN1c3RvbS5j
cHAKQEAgLTQ0LDcgKzQ0LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4SW50OEFycmF5Ojpj
b25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MKIHsKICAgICBJTkNf
U1RBVFMoIkRPTS5JbnQ4QXJyYXkuQ29udHJ1Y3RvciIpOwogCi0gICAgcmV0dXJuIGNvbnN0cnVj
dFdlYkdMQXJyYXk8SW50OEFycmF5LCBzaWduZWQgY2hhcj4oYXJncywgJmluZm8sIHY4OjprRXh0
ZXJuYWxCeXRlQXJyYXkpOworICAgIHJldHVybiBjb25zdHJ1Y3RXZWJHTEFycmF5PEludDhBcnJh
eSwgVjhJbnQ4QXJyYXksIHNpZ25lZCBjaGFyPihhcmdzLCAmaW5mbywgdjg6OmtFeHRlcm5hbEJ5
dGVBcnJheSk7CiB9CiAKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEludDhBcnJheTo6c2V0Q2Fs
bGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFVpbnQxNkFycmF5Q3VzdG9tLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFVpbnQxNkFycmF5Q3VzdG9tLmNwcAppbmRleCAw
YjVhZjIwNTk1NzI3OWIzZWZlMmI2ZmYxYWVlNDg2ZTY1MDAxOTYxLi5kNDBmOWI3MWFhMmNiMjlk
NTU4YmQwNTJhZmM3MDQ4Njk1NjYyNjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhVaW50MTZBcnJheUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4VWludDE2QXJyYXlDdXN0b20uY3BwCkBAIC00NCw3ICs0
NCw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFVpbnQxNkFycmF5Ojpjb25zdHJ1Y3RvckNh
bGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVWlu
dDE2QXJyYXkuQ29udHJ1Y3RvciIpOwogCi0gICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXk8
VWludDE2QXJyYXksIHVuc2lnbmVkIHNob3J0PihhcmdzLCAmaW5mbywgdjg6OmtFeHRlcm5hbFVu
c2lnbmVkU2hvcnRBcnJheSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXk8VWludDE2
QXJyYXksIFY4VWludDE2QXJyYXksIHVuc2lnbmVkIHNob3J0PihhcmdzLCAmaW5mbywgdjg6OmtF
eHRlcm5hbFVuc2lnbmVkU2hvcnRBcnJheSk7CiB9CiAKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBW
OFVpbnQxNkFycmF5OjpzZXRDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4VWludDMyQXJyYXlD
dXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4VWludDMyQXJy
YXlDdXN0b20uY3BwCmluZGV4IGE2ZWIyZDQ0OWZhMDg3ZTVlZGYxZDQwNjY5NjcwYjc0ODNiMzNi
NTUuLjgzN2NlNTkwMTQ1YmIyNmUxZGIzZjRjYTYyYTdhZGUxMWMyMTBhZWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFVpbnQzMkFycmF5Q3VzdG9tLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhVaW50MzJBcnJheUN1
c3RvbS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4VWludDMy
QXJyYXk6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXIKIHsKICAg
ICBJTkNfU1RBVFMoIkRPTS5VaW50MzJBcnJheS5Db250cnVjdG9yIik7CiAKLSAgICByZXR1cm4g
Y29uc3RydWN0V2ViR0xBcnJheTxVaW50MzJBcnJheSwgdW5zaWduZWQgaW50PihhcmdzLCAmaW5m
bywgdjg6OmtFeHRlcm5hbFVuc2lnbmVkSW50QXJyYXkpOworICAgIHJldHVybiBjb25zdHJ1Y3RX
ZWJHTEFycmF5PFVpbnQzMkFycmF5LCBWOFVpbnQzMkFycmF5LCB1bnNpZ25lZCBpbnQ+KGFyZ3Ms
ICZpbmZvLCB2ODo6a0V4dGVybmFsVW5zaWduZWRJbnRBcnJheSk7CiB9CiAKIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBWOFVpbnQzMkFycmF5OjpzZXRDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRz
JiBhcmdzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
VWludDhBcnJheUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhVaW50OEFycmF5Q3VzdG9tLmNwcAppbmRleCAzY2Y5MjZjYmIxYjVmNGExZWJlZTg2MzFkNDQ0
MDg5M2Q3NGJjZTE0Li43ZGE2NGFmZmFhZGFiMTA5OTcwZTQzYzUxMmUzYTdjMzdlODQyZWEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhVaW50OEFycmF5
Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhVaW50
OEFycmF5Q3VzdG9tLmNwcApAQCAtNDQsNyArNDQsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
VjhVaW50OEFycmF5Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFy
ZwogewogICAgIElOQ19TVEFUUygiRE9NLlVpbnQ4QXJyYXkuQ29udHJ1Y3RvciIpOwogCi0gICAg
cmV0dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXk8VWludDhBcnJheSwgdW5zaWduZWQgY2hhcj4oYXJn
cywgJmluZm8sIHY4OjprRXh0ZXJuYWxVbnNpZ25lZEJ5dGVBcnJheSk7CisgICAgcmV0dXJuIGNv
bnN0cnVjdFdlYkdMQXJyYXk8VWludDhBcnJheSwgVjhVaW50OEFycmF5LCB1bnNpZ25lZCBjaGFy
PihhcmdzLCAmaW5mbywgdjg6OmtFeHRlcm5hbFVuc2lnbmVkQnl0ZUFycmF5KTsKIH0KIAogdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IFY4VWludDhBcnJheTo6c2V0Q2FsbGJhY2soY29uc3Qgdjg6OkFy
Z3VtZW50cyYgYXJncykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOFVpbnQ4Q2xhbXBlZEFycmF5Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOFVpbnQ4Q2xhbXBlZEFycmF5Q3VzdG9tLmNwcAppbmRleCA1OWQyZDA5
YzM4ZjdkZmNlYjI0Njg0YjE1MmNjNTk5YTY3MWEwOWU0Li5iZTE4ZDliOGEzM2M3YTNhYWNiODk5
YTgxMGFiNDAxYjBhNWYzNzFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhVaW50OENsYW1wZWRBcnJheUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4VWludDhDbGFtcGVkQXJyYXlDdXN0b20uY3BwCkBAIC00
MSw3ICs0MSw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFVpbnQ4Q2xhbXBlZEFycmF5Ojpj
b25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVuCiB7CiAgICAgSU5DX1NUQVRTKCJE
T00uVWludDhDbGFtcGVkQXJyYXkuQ29udHJ1Y3RvciIpOwogCi0gICAgcmV0dXJuIGNvbnN0cnVj
dFdlYkdMQXJyYXk8VWludDhDbGFtcGVkQXJyYXksIHVuc2lnbmVkIGNoYXI+KGFyZ3MsICZpbmZv
LCB2ODo6a0V4dGVybmFsUGl4ZWxBcnJheSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdMQXJy
YXk8VWludDhDbGFtcGVkQXJyYXksIFY4VWludDhDbGFtcGVkQXJyYXksIHVuc2lnbmVkIGNoYXI+
KGFyZ3MsICZpbmZvLCB2ODo6a0V4dGVybmFsUGl4ZWxBcnJheSk7CiB9CiAKIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBWOFVpbnQ4Q2xhbXBlZEFycmF5OjpzZXRDYWxsYmFjayhjb25zdCB2ODo6QXJn
dW1lbnRzJiBhcmdzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155908</attachid>
            <date>2012-08-01 15:51:21 -0700</date>
            <delta_ts>2012-08-01 16:53:23 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>bug-92557-20120801155103.patch</filename>
            <type>text/plain</type>
            <size>15162</size>
            <attacher name="arno.">a.renevier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MDc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzM3MTkzNGU2ZGNmOWQz
ZjhmZGI0MTgwNTkxZDViOTgzOTQzZGRhNi4uMGJmNzNjNjVlY2M5ZDkzMWIxNmJiOTFmNmNjMGM5
ODBkYTkwZjA3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEyLTA3LTMxICBBcm5h
dWQgUmVuZXZpZXIgIDxhLnJlbmV2aWVyQHNpc2Euc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW1Y4
XSBUeXBlZEFycmF5IGJpbmRpbmcgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnRzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjU1NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcHJvdmUgVHlwZWRBcnJheSBi
aW5kaW5ncyBwZXJmb3JtYW5jZToKKyAgICAgICAgLSBjcmVhdGUgYXJyYXlzIHdpdGggY3JlYXRl
VW5pbml0aWFsaXplZCB3aGVuIHBvc3NpYmxlLiBUeXBlZCBBcnJheQorICAgICAgICBjb25zdHJ1
Y3Rpb24gaXMgYWJvdXQgMTAlIGZhc3Rlci4KKyAgICAgICAgLSB3aGVuIGNyZWF0aW5nIGEgdHlw
ZWQgYXJyYXkgZnJvbSBhIHNhbWUgdHlwZWQgYXJyYXksIG1lbWNweSBkYXRhCisgICAgICAgIGZy
b20gc291cmNlIHRvIHRhcmdldC4KKworICAgICAgICBJbiBvcmRlciB0byBkZXRlY3QgaWYgYXJn
dW1lbnQgYXJyYXkgaXMgdGhlIHNhbWUgdHlwZSBhcworICAgICAgICBpbXBsZW1lbnRhdGlvbiBh
cnJheSwgd2UgcGFzcyB0aGUgamF2YXNjcmlwdCB3cmFwcGVyIHR5cGUgYXMgYSBuZXcKKyAgICAg
ICAgdHlwZSBhcmd1bWVudCB0byB0ZW1wbGF0ZSBmdW5jdGlvbiBjb25zdHJ1Y3RXZWJHTEFycmF5
LgorCisgICAgICAgIEludHJvZHVjZSB3cmFwQXJyYXlCdWZmZXJWaWV3IHdoaWNoIHdyYXBzIHR5
cGVkIGFycmF5IGludG8gYSB2ODo6VmFsdWUKKworICAgICAgICBObyBuZXcgdGVzdHM6IFBlcmZv
cm1hbmNlIHRlc3RzIGFyZSBhbHJlYWR5IGhhbmRsZWQgYnkKKyAgICAgICAgQmluZGluZ3MvdHlw
ZWQtYXJyYXktY29uc3RydWN0LWZyb20tc2FtZS10eXBlLmh0bWwgYW5kCisgICAgICAgIEJpbmRp
bmdzL3R5cGVkLWFycmF5LWNvbnN0cnVjdC1mcm9tLXR5cGVkLmh0bWwKKworICAgICAgICAqIGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5oOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RXZWJHTEFycmF5KToKKyAgICAgICAg
KiBiaW5kaW5ncy92OC9jdXN0b20vVjhGbG9hdDMyQXJyYXlDdXN0b20uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VjhGbG9hdDMyQXJyYXk6OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEZsb2F0NjRBcnJheUN1c3RvbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpWOEZsb2F0NjRBcnJheTo6Y29uc3RydWN0b3JDYWxsYmFjayk6CisgICAgICAgICog
YmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50MTZBcnJheUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpWOEludDE2QXJyYXk6OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRp
bmdzL3Y4L2N1c3RvbS9WOEludDMyQXJyYXlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VjhJbnQzMkFycmF5Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92
OC9jdXN0b20vVjhJbnQ4QXJyYXlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhJbnQ4
QXJyYXk6OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3Rv
bS9WOFVpbnQxNkFycmF5Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4VWludDE2QXJy
YXk6OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9W
OFVpbnQzMkFycmF5Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4VWludDMyQXJyYXk6
OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFVp
bnQ4QXJyYXlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhVaW50OEFycmF5Ojpjb25z
dHJ1Y3RvckNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhVaW50OENs
YW1wZWRBcnJheUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFVpbnQ4Q2xhbXBlZEFy
cmF5Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKToKKwogMjAxMi0wNy0zMCAgUGF1bCBJcmlzaCAgPHBh
dWwuaXJpc2hAZ21haWwuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlbmFtZSBEYXRh
YmFzZXMgdG8gV2ViIFNRTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZpZXdDdXN0b20uaAppbmRleCBlNGFjMzU0NGI4ZTQ5
NmJkZWEyMjM0MjQ0OTIwODdjZThhNDY1NzA4Li43M2NhNWFlMDEwNzMyOTc1OWFlMDNjYWIyMzM0
NWM2N2ZhOThkODI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhBcnJheUJ1ZmZlclZpZXdDdXN0b20uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZpZXdDdXN0b20uaApAQCAtNDQsNiArNDQsMTggQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogLy8gUmV0dXJucyB0cnVlIGlmIGl0IHN1Y2NlZWRlZCwgb3Ro
ZXJ3aXNlIHJldHVybnMgZmFsc2UuCiBib29sIGNvcHlFbGVtZW50cyh2ODo6SGFuZGxlPHY4OjpP
YmplY3Q+IGRlc3RBcnJheSwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBzcmNBcnJheSwgdWludDMy
X3QgbGVuZ3RoLCB1aW50MzJfdCBvZmZzZXQsIHY4OjpJc29sYXRlKik7CiAKK3RlbXBsYXRlPGNs
YXNzIEFycmF5Q2xhc3M+Cit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gd3JhcEFycmF5QnVmZmVyVmll
dyhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzLCBXcmFwcGVyVHlwZUluZm8qIHR5cGUsIEFycmF5
Q2xhc3MgYXJyYXksIHY4OjpFeHRlcm5hbEFycmF5VHlwZSBhcnJheVR5cGUsIGJvb2wgaGFzSW5k
ZXhlcikKK3sKKyAgICAvLyBUcmFuc2Zvcm0gdGhlIGhvbGRlciBpbnRvIGEgd3JhcHBlciBvYmpl
Y3QgZm9yIHRoZSBhcnJheS4KKyAgICBWOERPTVdyYXBwZXI6OnNldERPTVdyYXBwZXIoYXJncy5I
b2xkZXIoKSwgdHlwZSwgYXJyYXkuZ2V0KCkpOworICAgIGlmIChoYXNJbmRleGVyKQorICAgICAg
ICBhcmdzLkhvbGRlcigpLT5TZXRJbmRleGVkUHJvcGVydGllc1RvRXh0ZXJuYWxBcnJheURhdGEo
YXJyYXkuZ2V0KCktPmJhc2VBZGRyZXNzKCksIGFycmF5VHlwZSwgYXJyYXkuZ2V0KCktPmxlbmd0
aCgpKTsKKyAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB3cmFwcGVyID0gdjg6OlBlcnNp
c3RlbnQ8djg6Ok9iamVjdD46Ok5ldyhhcmdzLkhvbGRlcigpKTsKKyAgICB3cmFwcGVyLk1hcmtJ
bmRlcGVuZGVudCgpOworICAgIFY4RE9NV3JhcHBlcjo6c2V0SlNXcmFwcGVyRm9yRE9NT2JqZWN0
KGFycmF5LnJlbGVhc2UoKSwgd3JhcHBlcik7CisgICAgcmV0dXJuIGFyZ3MuSG9sZGVyKCk7Cit9
CiAKIC8vIFRlbXBsYXRlIGZ1bmN0aW9uIHVzZWQgYnkgdGhlIEFycmF5QnVmZmVyVmlldypDb25z
dHJ1Y3RvciBjYWxsYmFja3MuCiB0ZW1wbGF0ZTxjbGFzcyBBcnJheUNsYXNzLCBjbGFzcyBFbGVt
ZW50VHlwZT4KQEAgLTczLDE4ICs4NSwxNCBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29uc3Ry
dWN0V2ViR0xBcnJheVdpdGhBcnJheUJ1ZmZlckFyZ3VtZW50KGNvbnN0IHY4OjpBcmd1bQogICAg
IFJlZlB0cjxBcnJheUNsYXNzPiBhcnJheSA9IEFycmF5Q2xhc3M6OmNyZWF0ZShidWYsIG9mZnNl
dCwgbGVuZ3RoKTsKICAgICBpZiAoIWFycmF5KQogICAgICAgICByZXR1cm4gVjhQcm94eTo6c2V0
RE9NRXhjZXB0aW9uKElOREVYX1NJWkVfRVJSLCBhcmdzLkdldElzb2xhdGUoKSk7Ci0gICAgLy8g
VHJhbnNmb3JtIHRoZSBob2xkZXIgaW50byBhIHdyYXBwZXIgb2JqZWN0IGZvciB0aGUgYXJyYXku
Ci0gICAgVjhET01XcmFwcGVyOjpzZXRET01XcmFwcGVyKGFyZ3MuSG9sZGVyKCksIHR5cGUsIGFy
cmF5LmdldCgpKTsKLSAgICBpZiAoaGFzSW5kZXhlcikKLSAgICAgICAgYXJncy5Ib2xkZXIoKS0+
U2V0SW5kZXhlZFByb3BlcnRpZXNUb0V4dGVybmFsQXJyYXlEYXRhKGFycmF5LmdldCgpLT5iYXNl
QWRkcmVzcygpLCBhcnJheVR5cGUsIGFycmF5LmdldCgpLT5sZW5ndGgoKSk7Ci0gICAgdjg6OlBl
cnNpc3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlciA9IHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+
OjpOZXcoYXJncy5Ib2xkZXIoKSk7Ci0gICAgd3JhcHBlci5NYXJrSW5kZXBlbmRlbnQoKTsKLSAg
ICBWOERPTVdyYXBwZXI6OnNldEpTV3JhcHBlckZvckRPTU9iamVjdChhcnJheS5yZWxlYXNlKCks
IHdyYXBwZXIpOwotICAgIHJldHVybiBhcmdzLkhvbGRlcigpOworCisgICAgcmV0dXJuIHdyYXBB
cnJheUJ1ZmZlclZpZXcoYXJncywgdHlwZSwgYXJyYXksIGFycmF5VHlwZSwgaGFzSW5kZXhlcik7
CiB9CiAKK3N0YXRpYyBjb25zdCBjaGFyKiBub3RTbWFsbEVub3VnaFNpemUgPSAiQXJyYXlCdWZm
ZXJWaWV3IHNpemUgaXMgbm90IGEgc21hbGwgZW5vdWdoIHBvc2l0aXZlIGludGVnZXIuIjsKKwog
Ly8gVGVtcGxhdGUgZnVuY3Rpb24gdXNlZCBieSB0aGUgQXJyYXlCdWZmZXJWaWV3KkNvbnN0cnVj
dG9yIGNhbGxiYWNrcy4KLXRlbXBsYXRlPGNsYXNzIEFycmF5Q2xhc3MsIGNsYXNzIEVsZW1lbnRU
eXBlPgordGVtcGxhdGU8Y2xhc3MgQXJyYXlDbGFzcywgY2xhc3MgSmF2YVNjcmlwdFdyYXBwZXJB
cnJheVR5cGUsIGNsYXNzIEVsZW1lbnRUeXBlPgogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNvbnN0
cnVjdFdlYkdMQXJyYXkoY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncywgV3JhcHBlclR5cGVJbmZv
KiB0eXBlLCB2ODo6RXh0ZXJuYWxBcnJheVR5cGUgYXJyYXlUeXBlKQogewogICAgIGlmICghYXJn
cy5Jc0NvbnN0cnVjdENhbGwoKSkKQEAgLTEwNCwxNSArMTEyLDEwIEBAIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBjb25zdHJ1Y3RXZWJHTEFycmF5KGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MsIFdy
YXBwZXJUeXBlCiAgICAgICAgIC8vIGNvbnN0cnVjdCBhbiBlbXB0eSB2aWV3IHRvIGF2b2lkIGNy
YXNoZXMgd2hlbiBmZXRjaGluZyB0aGUKICAgICAgICAgLy8gbGVuZ3RoLgogICAgICAgICBSZWZQ
dHI8QXJyYXlDbGFzcz4gYXJyYXkgPSBBcnJheUNsYXNzOjpjcmVhdGUoMCk7Ci0gICAgICAgIC8v
IFRyYW5zZm9ybSB0aGUgaG9sZGVyIGludG8gYSB3cmFwcGVyIG9iamVjdCBmb3IgdGhlIGFycmF5
LgotICAgICAgICBWOERPTVdyYXBwZXI6OnNldERPTVdyYXBwZXIoYXJncy5Ib2xkZXIoKSwgdHlw
ZSwgYXJyYXkuZ2V0KCkpOwogICAgICAgICAvLyBEbyBub3QgY2FsbCBTZXRJbmRleGVkUHJvcGVy
dGllc1RvRXh0ZXJuYWxBcnJheURhdGEgb24gdGhpcwogICAgICAgICAvLyBvYmplY3QuIE5vdCBv
bmx5IGlzIHRoZXJlIG5vIHBvaW50IGZyb20gYSBwZXJmb3JtYW5jZQogICAgICAgICAvLyBwZXJz
cGVjdGl2ZSwgYnV0IGRvaW5nIHNvIGNhdXNlcyBlcnJvcnMgaW4gdGhlIHN1YnNldCgpIGNhc2Uu
Ci0gICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXIgPSB2ODo6UGVyc2lz
dGVudDx2ODo6T2JqZWN0Pjo6TmV3KGFyZ3MuSG9sZGVyKCkpOwotICAgICAgICB3cmFwcGVyLk1h
cmtJbmRlcGVuZGVudCgpOwotICAgICAgICBWOERPTVdyYXBwZXI6OnNldEpTV3JhcHBlckZvckRP
TU9iamVjdChhcnJheS5yZWxlYXNlKCksIHdyYXBwZXIpOwotICAgICAgICByZXR1cm4gYXJncy5I
b2xkZXIoKTsKKyAgICAgICAgcmV0dXJuIHdyYXBBcnJheUJ1ZmZlclZpZXcoYXJncywgdHlwZSwg
YXJyYXksIGFycmF5VHlwZSwgZmFsc2UpOwogICAgIH0KIAogICAgIC8vIFN1cHBvcnRlZCBjb25z
dHJ1Y3RvcnM6CkBAIC0xMzQsNiArMTM3LDIwIEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb25z
dHJ1Y3RXZWJHTEFycmF5KGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MsIFdyYXBwZXJUeXBlCiAg
ICAgaWYgKFY4QXJyYXlCdWZmZXI6Okhhc0luc3RhbmNlKGFyZ3NbMF0pKQogICAgICAgcmV0dXJu
IGNvbnN0cnVjdFdlYkdMQXJyYXlXaXRoQXJyYXlCdWZmZXJBcmd1bWVudDxBcnJheUNsYXNzLCBF
bGVtZW50VHlwZT4oYXJncywgdHlwZSwgYXJyYXlUeXBlLCB0cnVlKTsKIAorICAgIC8vIFNlZSB3
aGV0aGVyIHRoZSBmaXJzdCBhcmd1bWVudCBpcyB0aGUgc2FtZSB0eXBlIGFzIGltcGwuIEluIHRo
YXQgY2FzZSwKKyAgICAvLyB3ZSBjYW4gc2ltcGx5IG1lbWNweSBkYXRhIGZyb20gc291cmNlIHRv
IGltcGwuCisgICAgaWYgKEphdmFTY3JpcHRXcmFwcGVyQXJyYXlUeXBlOjpIYXNJbnN0YW5jZShh
cmdzWzBdKSkgeworICAgICAgICBBcnJheUNsYXNzKiBzb3VyY2UgPSBKYXZhU2NyaXB0V3JhcHBl
ckFycmF5VHlwZTo6dG9OYXRpdmUoYXJnc1swXS0+VG9PYmplY3QoKSk7CisgICAgICAgIHVpbnQz
Ml90IGxlbmd0aCA9IHNvdXJjZS0+bGVuZ3RoKCk7CisgICAgICAgIFJlZlB0cjxBcnJheUNsYXNz
PiBhcnJheSA9IEFycmF5Q2xhc3M6OmNyZWF0ZVVuaW5pdGlhbGl6ZWQobGVuZ3RoKTsKKyAgICAg
ICAgaWYgKCFhcnJheS5nZXQoKSkKKyAgICAgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd0Vy
cm9yKFY4UHJveHk6OlJhbmdlRXJyb3IsIG5vdFNtYWxsRW5vdWdoU2l6ZSwgYXJncy5HZXRJc29s
YXRlKCkpOworCisgICAgICAgIG1lbWNweShhcnJheS0+YmFzZUFkZHJlc3MoKSwgc291cmNlLT5i
YXNlQWRkcmVzcygpLCBsZW5ndGggKiBzaXplb2YoRWxlbWVudFR5cGUpKTsKKworICAgICAgICBy
ZXR1cm4gd3JhcEFycmF5QnVmZmVyVmlldyhhcmdzLCB0eXBlLCBhcnJheSwgYXJyYXlUeXBlLCB0
cnVlKTsKKyAgICB9CisKICAgICB1aW50MzJfdCBsZW4gPSAwOwogICAgIHY4OjpIYW5kbGU8djg6
Ok9iamVjdD4gc3JjQXJyYXk7CiAgICAgYm9vbCBkb0luc3RhbnRpYXRpb24gPSBmYWxzZTsKQEAg
LTE1NCwxMCArMTcxLDE1IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb25zdHJ1Y3RXZWJHTEFy
cmF5KGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MsIFdyYXBwZXJUeXBlCiAgICAgfQogCiAgICAg
UmVmUHRyPEFycmF5Q2xhc3M+IGFycmF5OwotICAgIGlmIChkb0luc3RhbnRpYXRpb24pCi0gICAg
ICAgIGFycmF5ID0gQXJyYXlDbGFzczo6Y3JlYXRlKGxlbik7CisgICAgaWYgKGRvSW5zdGFudGlh
dGlvbikgeworICAgICAgICBpZiAoc3JjQXJyYXkuSXNFbXB0eSgpKQorICAgICAgICAgICAgYXJy
YXkgPSBBcnJheUNsYXNzOjpjcmVhdGUobGVuKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
YXJyYXkgPSBBcnJheUNsYXNzOjpjcmVhdGVVbmluaXRpYWxpemVkKGxlbik7CisgICAgfQorCiAg
ICAgaWYgKCFhcnJheS5nZXQoKSkKLSAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93RXJyb3Io
VjhQcm94eTo6UmFuZ2VFcnJvciwgIkFycmF5QnVmZmVyVmlldyBzaXplIGlzIG5vdCBhIHNtYWxs
IGVub3VnaCBwb3NpdGl2ZSBpbnRlZ2VyLiIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKKyAgICAgICAg
cmV0dXJuIFY4UHJveHk6OnRocm93RXJyb3IoVjhQcm94eTo6UmFuZ2VFcnJvciwgbm90U21hbGxF
bm91Z2hTaXplLCBhcmdzLkdldElzb2xhdGUoKSk7CiAKIAogICAgIC8vIFRyYW5zZm9ybSB0aGUg
aG9sZGVyIGludG8gYSB3cmFwcGVyIG9iamVjdCBmb3IgdGhlIGFycmF5LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RmxvYXQzMkFycmF5Q3VzdG9tLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEZsb2F0MzJBcnJheUN1c3Rv
bS5jcHAKaW5kZXggYjUzNmJiZmM2MTFjNGFkZTc5NzI5ZTIyY2U0ZWEwYTBkMTJiNTRhMi4uNjkx
ZTFiY2U2ODg1YzNmM2Y4YjczOGViYTgyYTNjM2MwOTlmYzkxZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RmxvYXQzMkFycmF5Q3VzdG9tLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhGbG9hdDMyQXJyYXlDdXN0b20u
Y3BwCkBAIC00NSw3ICs0NSw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEZsb2F0MzJBcnJh
eTo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhCiB7CiAgICAgSU5D
X1NUQVRTKCJET00uRmxvYXQzMkFycmF5LkNvbnRydWN0b3IiKTsKIAotICAgIHJldHVybiBjb25z
dHJ1Y3RXZWJHTEFycmF5PEZsb2F0MzJBcnJheSwgZmxvYXQ+KGFyZ3MsICZpbmZvLCB2ODo6a0V4
dGVybmFsRmxvYXRBcnJheSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXk8RmxvYXQz
MkFycmF5LCBWOEZsb2F0MzJBcnJheSwgZmxvYXQ+KGFyZ3MsICZpbmZvLCB2ODo6a0V4dGVybmFs
RmxvYXRBcnJheSk7CiB9CiAKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEZsb2F0MzJBcnJheTo6
c2V0Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEZsb2F0NjRBcnJheUN1c3RvbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhGbG9hdDY0QXJyYXlDdXN0b20uY3Bw
CmluZGV4IDg4OWJkMzIzYjY3ODQyNmQyN2Q4ZmE5ZjZlY2RhNTg5M2ZkZTA0MmEuLjhkZjFjNGQ4
MTljYzY1M2Q2Mzg1ZjRlY2IyMjk3ODFkNjZiZmVmMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEZsb2F0NjRBcnJheUN1c3RvbS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RmxvYXQ2NEFycmF5Q3VzdG9tLmNwcApA
QCAtNDAsNyArNDAsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhGbG9hdDY0QXJyYXk6OmNv
bnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYQogewogICAgIElOQ19TVEFU
UygiRE9NLkZsb2F0NjRBcnJheS5Db250cnVjdG9yIik7CiAKLSAgICByZXR1cm4gY29uc3RydWN0
V2ViR0xBcnJheTxGbG9hdDY0QXJyYXksIGRvdWJsZT4oYXJncywgJmluZm8sIHY4OjprRXh0ZXJu
YWxEb3VibGVBcnJheSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXk8RmxvYXQ2NEFy
cmF5LCBWOEZsb2F0NjRBcnJheSwgZG91YmxlPihhcmdzLCAmaW5mbywgdjg6OmtFeHRlcm5hbERv
dWJsZUFycmF5KTsKIH0KIAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RmxvYXQ2NEFycmF5Ojpz
ZXRDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50MTZBcnJheUN1c3RvbS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbnQxNkFycmF5Q3VzdG9tLmNwcAppbmRl
eCBmNWJlZDNmM2IyZmU1YzAzODQ0YmJiOWVhMTRlN2YzOTNlM2FmMjRhLi44MWM3OGUyN2JjMjAy
ZGNkMGVkYmNlNjgyZTI4MzEyZWQyY2Q3NzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhJbnQxNkFycmF5Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbnQxNkFycmF5Q3VzdG9tLmNwcApAQCAtNDQsNyAr
NDQsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhJbnQxNkFycmF5Ojpjb25zdHJ1Y3RvckNh
bGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZwogewogICAgIElOQ19TVEFUUygiRE9NLklu
dDE2QXJyYXkuQ29udHJ1Y3RvciIpOwogCi0gICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXk8
SW50MTZBcnJheSwgc2hvcnQ+KGFyZ3MsICZpbmZvLCB2ODo6a0V4dGVybmFsU2hvcnRBcnJheSk7
CisgICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXk8SW50MTZBcnJheSwgVjhJbnQxNkFycmF5
LCBzaG9ydD4oYXJncywgJmluZm8sIHY4OjprRXh0ZXJuYWxTaG9ydEFycmF5KTsKIH0KIAogdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IFY4SW50MTZBcnJheTo6c2V0Q2FsbGJhY2soY29uc3Qgdjg6OkFy
Z3VtZW50cyYgYXJncykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOEludDMyQXJyYXlDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4SW50MzJBcnJheUN1c3RvbS5jcHAKaW5kZXggMDI3MGY3ZTg5YjRjM2ExN2ZmNmZh
YTUwZmEwYWY3MDIyNTlhZGI4My4uOWIwNDk2MDFlZTM4NjU4N2Y1YzZkN2U1ZDdhZGI0OGNlOWYx
NTcxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50
MzJBcnJheUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4SW50MzJBcnJheUN1c3RvbS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IFY4SW50MzJBcnJheTo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1l
bnRzJiBhcmcKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5JbnQzMkFycmF5LkNvbnRydWN0b3IiKTsK
IAotICAgIHJldHVybiBjb25zdHJ1Y3RXZWJHTEFycmF5PEludDMyQXJyYXksIGludD4oYXJncywg
JmluZm8sIHY4OjprRXh0ZXJuYWxJbnRBcnJheSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdM
QXJyYXk8SW50MzJBcnJheSwgVjhJbnQzMkFycmF5LCBpbnQ+KGFyZ3MsICZpbmZvLCB2ODo6a0V4
dGVybmFsSW50QXJyYXkpOwogfQogCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhJbnQzMkFycmF5
OjpzZXRDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50OEFycmF5Q3VzdG9tLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEludDhBcnJheUN1c3RvbS5jcHAKaW5k
ZXggMjQ2NzA0YTIzZDc2NmY0N2MwMmI2OTRjNjFhYzRlYjFkN2Q5YmM0YS4uYmQzYTM0ZGMwMmI4
N2MwZjg0NDQyODlmZmNhMzJmMTFmYzQ2ZTU2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50OEFycmF5Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbnQ4QXJyYXlDdXN0b20uY3BwCkBAIC00NCw3ICs0
NCw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEludDhBcnJheTo6Y29uc3RydWN0b3JDYWxs
YmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzCiB7CiAgICAgSU5DX1NUQVRTKCJET00uSW50
OEFycmF5LkNvbnRydWN0b3IiKTsKIAotICAgIHJldHVybiBjb25zdHJ1Y3RXZWJHTEFycmF5PElu
dDhBcnJheSwgc2lnbmVkIGNoYXI+KGFyZ3MsICZpbmZvLCB2ODo6a0V4dGVybmFsQnl0ZUFycmF5
KTsKKyAgICByZXR1cm4gY29uc3RydWN0V2ViR0xBcnJheTxJbnQ4QXJyYXksIFY4SW50OEFycmF5
LCBzaWduZWQgY2hhcj4oYXJncywgJmluZm8sIHY4OjprRXh0ZXJuYWxCeXRlQXJyYXkpOwogfQog
CiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhJbnQ4QXJyYXk6OnNldENhbGxiYWNrKGNvbnN0IHY4
OjpBcmd1bWVudHMmIGFyZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhVaW50MTZBcnJheUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhVaW50MTZBcnJheUN1c3RvbS5jcHAKaW5kZXggMGI1YWYyMDU5NTcyNzli
M2VmZTJiNmZmMWFlZTQ4NmU2NTAwMTk2MS4uZDQwZjliNzFhYTJjYjI5ZDU1OGJkMDUyYWZjNzA0
ODY5NTY2MjYyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4VWludDE2QXJyYXlDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOFVpbnQxNkFycmF5Q3VzdG9tLmNwcApAQCAtNDQsNyArNDQsNyBAQCB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gVjhVaW50MTZBcnJheTo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2
ODo6QXJndW1lbnRzJiBhcgogewogICAgIElOQ19TVEFUUygiRE9NLlVpbnQxNkFycmF5LkNvbnRy
dWN0b3IiKTsKIAotICAgIHJldHVybiBjb25zdHJ1Y3RXZWJHTEFycmF5PFVpbnQxNkFycmF5LCB1
bnNpZ25lZCBzaG9ydD4oYXJncywgJmluZm8sIHY4OjprRXh0ZXJuYWxVbnNpZ25lZFNob3J0QXJy
YXkpOworICAgIHJldHVybiBjb25zdHJ1Y3RXZWJHTEFycmF5PFVpbnQxNkFycmF5LCBWOFVpbnQx
NkFycmF5LCB1bnNpZ25lZCBzaG9ydD4oYXJncywgJmluZm8sIHY4OjprRXh0ZXJuYWxVbnNpZ25l
ZFNob3J0QXJyYXkpOwogfQogCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhVaW50MTZBcnJheTo6
c2V0Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFVpbnQzMkFycmF5Q3VzdG9tLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFVpbnQzMkFycmF5Q3VzdG9tLmNwcApp
bmRleCBhNmViMmQ0NDlmYTA4N2U1ZWRmMWQ0MDY2OTY3MGI3NDgzYjMzYjU1Li44MzdjZTU5MDE0
NWJiMjZlMWRiM2Y0Y2E2MmE3YWRlMTFjMjEwYWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhVaW50MzJBcnJheUN1c3RvbS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4VWludDMyQXJyYXlDdXN0b20uY3BwCkBAIC00
NCw3ICs0NCw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFVpbnQzMkFycmF5Ojpjb25zdHJ1
Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyCiB7CiAgICAgSU5DX1NUQVRTKCJE
T00uVWludDMyQXJyYXkuQ29udHJ1Y3RvciIpOwogCi0gICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdM
QXJyYXk8VWludDMyQXJyYXksIHVuc2lnbmVkIGludD4oYXJncywgJmluZm8sIHY4OjprRXh0ZXJu
YWxVbnNpZ25lZEludEFycmF5KTsKKyAgICByZXR1cm4gY29uc3RydWN0V2ViR0xBcnJheTxVaW50
MzJBcnJheSwgVjhVaW50MzJBcnJheSwgdW5zaWduZWQgaW50PihhcmdzLCAmaW5mbywgdjg6OmtF
eHRlcm5hbFVuc2lnbmVkSW50QXJyYXkpOwogfQogCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhV
aW50MzJBcnJheTo6c2V0Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFVpbnQ4QXJyYXlDdXN0
b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4VWludDhBcnJheUN1
c3RvbS5jcHAKaW5kZXggM2NmOTI2Y2JiMWI1ZjRhMWViZWU4NjMxZDQ0NDA4OTNkNzRiY2UxNC4u
N2RhNjRhZmZhYWRhYjEwOTk3MGU0M2M1MTJlM2E3YzM3ZTg0MmVhMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4VWludDhBcnJheUN1c3RvbS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4VWludDhBcnJheUN1c3RvbS5j
cHAKQEAgLTQ0LDcgKzQ0LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4VWludDhBcnJheTo6
Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmcKIHsKICAgICBJTkNf
U1RBVFMoIkRPTS5VaW50OEFycmF5LkNvbnRydWN0b3IiKTsKIAotICAgIHJldHVybiBjb25zdHJ1
Y3RXZWJHTEFycmF5PFVpbnQ4QXJyYXksIHVuc2lnbmVkIGNoYXI+KGFyZ3MsICZpbmZvLCB2ODo6
a0V4dGVybmFsVW5zaWduZWRCeXRlQXJyYXkpOworICAgIHJldHVybiBjb25zdHJ1Y3RXZWJHTEFy
cmF5PFVpbnQ4QXJyYXksIFY4VWludDhBcnJheSwgdW5zaWduZWQgY2hhcj4oYXJncywgJmluZm8s
IHY4OjprRXh0ZXJuYWxVbnNpZ25lZEJ5dGVBcnJheSk7CiB9CiAKIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBWOFVpbnQ4QXJyYXk6OnNldENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhVaW50OENs
YW1wZWRBcnJheUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhVaW50OENsYW1wZWRBcnJheUN1c3RvbS5jcHAKaW5kZXggNTlkMmQwOWMzOGY3ZGZjZWIyNDY4
NGIxNTJjYzU5OWE2NzFhMDllNC4uYmUxOGQ5YjhhMzNjN2EzYWFjYjg5OWE4MTBhYjQwMWIwYTVm
MzcxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4VWlu
dDhDbGFtcGVkQXJyYXlDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOFVpbnQ4Q2xhbXBlZEFycmF5Q3VzdG9tLmNwcApAQCAtNDEsNyArNDEsNyBAQCB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhVaW50OENsYW1wZWRBcnJheTo6Y29uc3RydWN0b3JDYWxs
YmFjayhjb25zdCB2ODo6QXJndW1lbgogewogICAgIElOQ19TVEFUUygiRE9NLlVpbnQ4Q2xhbXBl
ZEFycmF5LkNvbnRydWN0b3IiKTsKIAotICAgIHJldHVybiBjb25zdHJ1Y3RXZWJHTEFycmF5PFVp
bnQ4Q2xhbXBlZEFycmF5LCB1bnNpZ25lZCBjaGFyPihhcmdzLCAmaW5mbywgdjg6OmtFeHRlcm5h
bFBpeGVsQXJyYXkpOworICAgIHJldHVybiBjb25zdHJ1Y3RXZWJHTEFycmF5PFVpbnQ4Q2xhbXBl
ZEFycmF5LCBWOFVpbnQ4Q2xhbXBlZEFycmF5LCB1bnNpZ25lZCBjaGFyPihhcmdzLCAmaW5mbywg
djg6OmtFeHRlcm5hbFBpeGVsQXJyYXkpOwogfQogCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhV
aW50OENsYW1wZWRBcnJheTo6c2V0Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykK
</data>

          </attachment>
      

    </bug>

</bugzilla>