<?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>48706</bug_id>
          
          <creation_ts>2010-10-29 19:20:16 -0700</creation_ts>
          <short_desc>Factor calculation of cache sizes based on cache model into shared function.</short_desc>
          <delta_ts>2010-11-09 11:29:10 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>302232</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-10-29 19:20:16 -0700</bug_when>
    <thetext>Factor calculation of cache sizes based on cache model into shared function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302233</commentid>
    <comment_count>1</comment_count>
      <attachid>72426</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-10-29 19:21:36 -0700</bug_when>
    <thetext>Created attachment 72426
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302259</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-29 23:14:38 -0700</bug_when>
    <thetext>BTW, what&apos;s your plan w.r.t. the memory cache and multiprocess?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305212</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-11-05 04:03:17 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; BTW, what&apos;s your plan w.r.t. the memory cache and multiprocess?

The current model uses a single process for all windows/tabs, so this has not been a problem we have had to solve yet. It will be an interesting problem to try and solve when the time comes though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305296</commentid>
    <comment_count>4</comment_count>
      <attachid>72426</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-11-05 08:30:21 -0700</bug_when>
    <thetext>Comment on attachment 72426
Patch

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

&gt; WebKit2/WebProcess/WebProcess.h:106
&gt; +    void calculateCacheSizes(CacheModel cacheModel, uint64_t memorySize, uint64_t diskFreeSize,

Seems like this can be a static member function.

&gt; WebKit2/WebProcess/mac/WebProcessMac.mm:67
&gt;  void WebProcess::platformSetCacheModel(CacheModel cacheModel)
&gt;  {
&gt; +    NSURLCache *nsurlCache = [NSURLCache sharedURLCache];

Why did you move this up to the top? Was it a bug that it was lower down before? You should explain this in your ChangeLog.

&gt; WebKit2/WebProcess/mac/WebProcessMac.mm:94
&gt; +    [nsurlCache setDiskCapacity:std::max(urlCacheDiskCapacity, [nsurlCache diskCapacity])]; // Don&apos;t shrink a big disk cache, since that would cause churn.

Why is std:: needed here? Normally we use &quot;using namespace std;&quot; so you don&apos;t have to write that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306893</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-11-09 11:29:10 -0800</bug_when>
    <thetext>Landed in r71658.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72426</attachid>
            <date>2010-10-29 19:21:36 -0700</date>
            <delta_ts>2010-11-05 08:30:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patchFactor.diff</filename>
            <type>text/plain</type>
            <size>23794</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MDk2NykKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTA2IEBACisyMDEwLTEwLTI5ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRmFjdG9y
IGNhbGN1bGF0aW9uIG9mIGNhY2hlIHNpemVzIGJhc2VkIG9uIGNhY2hlIG1vZGVsIGludG8gc2hh
cmVkIGZ1bmN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00ODcwNgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Y2FsY3VsYXRlQ2FjaGVTaXplcyk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9tYWMvV2ViUHJv
Y2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6dm9sdW1lRnJlZVNpemUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybVNldENhY2hlTW9kZWwpOgorICAgICAgICAqIFdl
YlByb2Nlc3Mvd2luL1dlYlByb2Nlc3NXaW4uY3BwOgorICAgICAgICAoV2ViS2l0OjptZW1vcnlT
aXplKToKKyAgICAgICAgKFdlYktpdDo6dm9sdW1lRnJlZVNpemUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybVNldENhY2hlTW9kZWwpOgorCiAyMDEwLTEwLTI5ICBTYW0g
V2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBG
cmFzZXIuCkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCShyZXZpc2lvbiA3MDk2NykK
KysrIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjI5LDYgKzIyOSwxNTAgQEAgdm9pZCBXZWJQcm9jZXNzOjpzZXRDYWNoZU1vZGVsKHVpbnQzMl90
IAogICAgIH0KIH0KIAordm9pZCBXZWJQcm9jZXNzOjpjYWxjdWxhdGVDYWNoZVNpemVzKENhY2hl
TW9kZWwgY2FjaGVNb2RlbCwgdWludDY0X3QgbWVtb3J5U2l6ZSwgdWludDY0X3QgZGlza0ZyZWVT
aXplLAorICAgIHVuc2lnbmVkJiBjYWNoZVRvdGFsQ2FwYWNpdHksIHVuc2lnbmVkJiBjYWNoZU1p
bkRlYWRDYXBhY2l0eSwgdW5zaWduZWQmIGNhY2hlTWF4RGVhZENhcGFjaXR5LCBkb3VibGUmIGRl
YWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwsCisgICAgdW5zaWduZWQmIHBhZ2VDYWNoZUNh
cGFjaXR5LCB1bnNpZ25lZCBsb25nJiB1cmxDYWNoZU1lbW9yeUNhcGFjaXR5LCB1bnNpZ25lZCBs
b25nJiB1cmxDYWNoZURpc2tDYXBhY2l0eSkKK3sKKyAgICBzd2l0Y2ggKGNhY2hlTW9kZWwpIHsK
KyAgICBjYXNlIENhY2hlTW9kZWxEb2N1bWVudFZpZXdlcjogeworICAgICAgICAvLyBQYWdlIGNh
Y2hlIGNhcGFjaXR5IChpbiBwYWdlcykKKyAgICAgICAgcGFnZUNhY2hlQ2FwYWNpdHkgPSAwOwor
CisgICAgICAgIC8vIE9iamVjdCBjYWNoZSBjYXBhY2l0aWVzIChpbiBieXRlcykKKyAgICAgICAg
aWYgKG1lbW9yeVNpemUgPj0gMjA0OCkKKyAgICAgICAgICAgIGNhY2hlVG90YWxDYXBhY2l0eSA9
IDk2ICogMTAyNCAqIDEwMjQ7CisgICAgICAgIGVsc2UgaWYgKG1lbW9yeVNpemUgPj0gMTUzNikK
KyAgICAgICAgICAgIGNhY2hlVG90YWxDYXBhY2l0eSA9IDY0ICogMTAyNCAqIDEwMjQ7CisgICAg
ICAgIGVsc2UgaWYgKG1lbW9yeVNpemUgPj0gMTAyNCkKKyAgICAgICAgICAgIGNhY2hlVG90YWxD
YXBhY2l0eSA9IDMyICogMTAyNCAqIDEwMjQ7CisgICAgICAgIGVsc2UgaWYgKG1lbW9yeVNpemUg
Pj0gNTEyKQorICAgICAgICAgICAgY2FjaGVUb3RhbENhcGFjaXR5ID0gMTYgKiAxMDI0ICogMTAy
NDsKKworICAgICAgICBjYWNoZU1pbkRlYWRDYXBhY2l0eSA9IDA7CisgICAgICAgIGNhY2hlTWF4
RGVhZENhcGFjaXR5ID0gMDsKKworICAgICAgICAvLyBGb3VuZGF0aW9uIG1lbW9yeSBjYWNoZSBj
YXBhY2l0eSAoaW4gYnl0ZXMpCisgICAgICAgIHVybENhY2hlTWVtb3J5Q2FwYWNpdHkgPSAwOwor
CisgICAgICAgIC8vIEZvdW5kYXRpb24gZGlzayBjYWNoZSBjYXBhY2l0eSAoaW4gYnl0ZXMpCisg
ICAgICAgIHVybENhY2hlRGlza0NhcGFjaXR5ID0gMDsKKworICAgICAgICBicmVhazsKKyAgICB9
CisgICAgY2FzZSBDYWNoZU1vZGVsRG9jdW1lbnRCcm93c2VyOiB7CisgICAgICAgIC8vIFBhZ2Ug
Y2FjaGUgY2FwYWNpdHkgKGluIHBhZ2VzKQorICAgICAgICBpZiAobWVtb3J5U2l6ZSA+PSAxMDI0
KQorICAgICAgICAgICAgcGFnZUNhY2hlQ2FwYWNpdHkgPSAzOworICAgICAgICBlbHNlIGlmICht
ZW1vcnlTaXplID49IDUxMikKKyAgICAgICAgICAgIHBhZ2VDYWNoZUNhcGFjaXR5ID0gMjsKKyAg
ICAgICAgZWxzZSBpZiAobWVtb3J5U2l6ZSA+PSAyNTYpCisgICAgICAgICAgICBwYWdlQ2FjaGVD
YXBhY2l0eSA9IDE7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHBhZ2VDYWNoZUNhcGFjaXR5
ID0gMDsKKworICAgICAgICAvLyBPYmplY3QgY2FjaGUgY2FwYWNpdGllcyAoaW4gYnl0ZXMpCisg
ICAgICAgIGlmIChtZW1vcnlTaXplID49IDIwNDgpCisgICAgICAgICAgICBjYWNoZVRvdGFsQ2Fw
YWNpdHkgPSA5NiAqIDEwMjQgKiAxMDI0OworICAgICAgICBlbHNlIGlmIChtZW1vcnlTaXplID49
IDE1MzYpCisgICAgICAgICAgICBjYWNoZVRvdGFsQ2FwYWNpdHkgPSA2NCAqIDEwMjQgKiAxMDI0
OworICAgICAgICBlbHNlIGlmIChtZW1vcnlTaXplID49IDEwMjQpCisgICAgICAgICAgICBjYWNo
ZVRvdGFsQ2FwYWNpdHkgPSAzMiAqIDEwMjQgKiAxMDI0OworICAgICAgICBlbHNlIGlmIChtZW1v
cnlTaXplID49IDUxMikKKyAgICAgICAgICAgIGNhY2hlVG90YWxDYXBhY2l0eSA9IDE2ICogMTAy
NCAqIDEwMjQ7CisKKyAgICAgICAgY2FjaGVNaW5EZWFkQ2FwYWNpdHkgPSBjYWNoZVRvdGFsQ2Fw
YWNpdHkgLyA4OworICAgICAgICBjYWNoZU1heERlYWRDYXBhY2l0eSA9IGNhY2hlVG90YWxDYXBh
Y2l0eSAvIDQ7CisKKyAgICAgICAgLy8gRm91bmRhdGlvbiBtZW1vcnkgY2FjaGUgY2FwYWNpdHkg
KGluIGJ5dGVzKQorICAgICAgICBpZiAobWVtb3J5U2l6ZSA+PSAyMDQ4KQorICAgICAgICAgICAg
dXJsQ2FjaGVNZW1vcnlDYXBhY2l0eSA9IDQgKiAxMDI0ICogMTAyNDsKKyAgICAgICAgZWxzZSBp
ZiAobWVtb3J5U2l6ZSA+PSAxMDI0KQorICAgICAgICAgICAgdXJsQ2FjaGVNZW1vcnlDYXBhY2l0
eSA9IDIgKiAxMDI0ICogMTAyNDsKKyAgICAgICAgZWxzZSBpZiAobWVtb3J5U2l6ZSA+PSA1MTIp
CisgICAgICAgICAgICB1cmxDYWNoZU1lbW9yeUNhcGFjaXR5ID0gMSAqIDEwMjQgKiAxMDI0Owor
ICAgICAgICBlbHNlCisgICAgICAgICAgICB1cmxDYWNoZU1lbW9yeUNhcGFjaXR5ID0gICAgICA1
MTIgKiAxMDI0OyAKKworICAgICAgICAvLyBGb3VuZGF0aW9uIGRpc2sgY2FjaGUgY2FwYWNpdHkg
KGluIGJ5dGVzKQorICAgICAgICBpZiAoZGlza0ZyZWVTaXplID49IDE2Mzg0KQorICAgICAgICAg
ICAgdXJsQ2FjaGVEaXNrQ2FwYWNpdHkgPSA1MCAqIDEwMjQgKiAxMDI0OworICAgICAgICBlbHNl
IGlmIChkaXNrRnJlZVNpemUgPj0gODE5MikKKyAgICAgICAgICAgIHVybENhY2hlRGlza0NhcGFj
aXR5ID0gNDAgKiAxMDI0ICogMTAyNDsKKyAgICAgICAgZWxzZSBpZiAoZGlza0ZyZWVTaXplID49
IDQwOTYpCisgICAgICAgICAgICB1cmxDYWNoZURpc2tDYXBhY2l0eSA9IDMwICogMTAyNCAqIDEw
MjQ7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHVybENhY2hlRGlza0NhcGFjaXR5ID0gMjAg
KiAxMDI0ICogMTAyNDsKKworICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBDYWNoZU1v
ZGVsUHJpbWFyeVdlYkJyb3dzZXI6IHsKKyAgICAgICAgLy8gUGFnZSBjYWNoZSBjYXBhY2l0eSAo
aW4gcGFnZXMpCisgICAgICAgIC8vIChSZXNlYXJjaCBpbmRpY2F0ZXMgdGhhdCB2YWx1ZSAvIHBh
Z2UgZHJvcHMgc3Vic3RhbnRpYWxseSBhZnRlciAzIHBhZ2VzLikKKyAgICAgICAgaWYgKG1lbW9y
eVNpemUgPj0gMjA0OCkKKyAgICAgICAgICAgIHBhZ2VDYWNoZUNhcGFjaXR5ID0gNTsKKyAgICAg
ICAgZWxzZSBpZiAobWVtb3J5U2l6ZSA+PSAxMDI0KQorICAgICAgICAgICAgcGFnZUNhY2hlQ2Fw
YWNpdHkgPSA0OworICAgICAgICBlbHNlIGlmIChtZW1vcnlTaXplID49IDUxMikKKyAgICAgICAg
ICAgIHBhZ2VDYWNoZUNhcGFjaXR5ID0gMzsKKyAgICAgICAgZWxzZSBpZiAobWVtb3J5U2l6ZSA+
PSAyNTYpCisgICAgICAgICAgICBwYWdlQ2FjaGVDYXBhY2l0eSA9IDI7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIHBhZ2VDYWNoZUNhcGFjaXR5ID0gMTsKKworICAgICAgICAvLyBPYmplY3Qg
Y2FjaGUgY2FwYWNpdGllcyAoaW4gYnl0ZXMpCisgICAgICAgIC8vIChUZXN0aW5nIGluZGljYXRl
cyB0aGF0IHZhbHVlIC8gTUIgZGVwZW5kcyBoZWF2aWx5IG9uIGNvbnRlbnQgYW5kCisgICAgICAg
IC8vIGJyb3dzaW5nIHBhdHRlcm4uIEV2ZW4gZ3Jvd3RoIGFib3ZlIDEyOE1CIGNhbiBoYXZlIHN1
YnN0YW50aWFsIAorICAgICAgICAvLyB2YWx1ZSAvIE1CIGZvciBzb21lIGNvbnRlbnQgLyBicm93
c2luZyBwYXR0ZXJucy4pCisgICAgICAgIGlmIChtZW1vcnlTaXplID49IDIwNDgpCisgICAgICAg
ICAgICBjYWNoZVRvdGFsQ2FwYWNpdHkgPSAxMjggKiAxMDI0ICogMTAyNDsKKyAgICAgICAgZWxz
ZSBpZiAobWVtb3J5U2l6ZSA+PSAxNTM2KQorICAgICAgICAgICAgY2FjaGVUb3RhbENhcGFjaXR5
ID0gOTYgKiAxMDI0ICogMTAyNDsKKyAgICAgICAgZWxzZSBpZiAobWVtb3J5U2l6ZSA+PSAxMDI0
KQorICAgICAgICAgICAgY2FjaGVUb3RhbENhcGFjaXR5ID0gNjQgKiAxMDI0ICogMTAyNDsKKyAg
ICAgICAgZWxzZSBpZiAobWVtb3J5U2l6ZSA+PSA1MTIpCisgICAgICAgICAgICBjYWNoZVRvdGFs
Q2FwYWNpdHkgPSAzMiAqIDEwMjQgKiAxMDI0OworCisgICAgICAgIGNhY2hlTWluRGVhZENhcGFj
aXR5ID0gY2FjaGVUb3RhbENhcGFjaXR5IC8gNDsKKyAgICAgICAgY2FjaGVNYXhEZWFkQ2FwYWNp
dHkgPSBjYWNoZVRvdGFsQ2FwYWNpdHkgLyAyOworCisgICAgICAgIC8vIFRoaXMgY29kZSBpcyBo
ZXJlIHRvIGF2b2lkIGEgUExUIHJlZ3Jlc3Npb24uIFdlIGNhbiByZW1vdmUgaXQgaWYgd2UKKyAg
ICAgICAgLy8gY2FuIHByb3ZlIHRoYXQgdGhlIG92ZXJhbGwgc3lzdGVtIGdhaW4gd291bGQganVz
dGlmeSB0aGUgcmVncmVzc2lvbi4KKyAgICAgICAgY2FjaGVNYXhEZWFkQ2FwYWNpdHkgPSBzdGQ6
Om1heCgyNHUsIGNhY2hlTWF4RGVhZENhcGFjaXR5KTsKKworICAgICAgICBkZWFkRGVjb2RlZERh
dGFEZWxldGlvbkludGVydmFsID0gNjA7CisKKyAgICAgICAgLy8gRm91bmRhdGlvbiBtZW1vcnkg
Y2FjaGUgY2FwYWNpdHkgKGluIGJ5dGVzKQorICAgICAgICAvLyAoVGhlc2UgdmFsdWVzIGFyZSBz
bWFsbCBiZWNhdXNlIFdlYkNvcmUgZG9lcyBtb3N0IGNhY2hpbmcgaXRzZWxmLikKKyAgICAgICAg
aWYgKG1lbW9yeVNpemUgPj0gMTAyNCkKKyAgICAgICAgICAgIHVybENhY2hlTWVtb3J5Q2FwYWNp
dHkgPSA0ICogMTAyNCAqIDEwMjQ7CisgICAgICAgIGVsc2UgaWYgKG1lbW9yeVNpemUgPj0gNTEy
KQorICAgICAgICAgICAgdXJsQ2FjaGVNZW1vcnlDYXBhY2l0eSA9IDIgKiAxMDI0ICogMTAyNDsK
KyAgICAgICAgZWxzZSBpZiAobWVtb3J5U2l6ZSA+PSAyNTYpCisgICAgICAgICAgICB1cmxDYWNo
ZU1lbW9yeUNhcGFjaXR5ID0gMSAqIDEwMjQgKiAxMDI0OworICAgICAgICBlbHNlCisgICAgICAg
ICAgICB1cmxDYWNoZU1lbW9yeUNhcGFjaXR5ID0gICAgICA1MTIgKiAxMDI0OyAKKworICAgICAg
ICAvLyBGb3VuZGF0aW9uIGRpc2sgY2FjaGUgY2FwYWNpdHkgKGluIGJ5dGVzKQorICAgICAgICBp
ZiAoZGlza0ZyZWVTaXplID49IDE2Mzg0KQorICAgICAgICAgICAgdXJsQ2FjaGVEaXNrQ2FwYWNp
dHkgPSAxNzUgKiAxMDI0ICogMTAyNDsKKyAgICAgICAgZWxzZSBpZiAoZGlza0ZyZWVTaXplID49
IDgxOTIpCisgICAgICAgICAgICB1cmxDYWNoZURpc2tDYXBhY2l0eSA9IDE1MCAqIDEwMjQgKiAx
MDI0OworICAgICAgICBlbHNlIGlmIChkaXNrRnJlZVNpemUgPj0gNDA5NikKKyAgICAgICAgICAg
IHVybENhY2hlRGlza0NhcGFjaXR5ID0gMTI1ICogMTAyNCAqIDEwMjQ7CisgICAgICAgIGVsc2Ug
aWYgKGRpc2tGcmVlU2l6ZSA+PSAyMDQ4KQorICAgICAgICAgICAgdXJsQ2FjaGVEaXNrQ2FwYWNp
dHkgPSAxMDAgKiAxMDI0ICogMTAyNDsKKyAgICAgICAgZWxzZSBpZiAoZGlza0ZyZWVTaXplID49
IDEwMjQpCisgICAgICAgICAgICB1cmxDYWNoZURpc2tDYXBhY2l0eSA9IDc1ICogMTAyNCAqIDEw
MjQ7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHVybENhY2hlRGlza0NhcGFjaXR5ID0gNTAg
KiAxMDI0ICogMTAyNDsKKworICAgICAgICBicmVhazsKKyAgICB9CisgICAgZGVmYXVsdDoKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfTsKK30KKwogI2lmIFBMQVRGT1JNKFdJ
TikKIHZvaWQgV2ViUHJvY2Vzczo6c2V0U2hvdWxkUGFpbnROYXRpdmVDb250cm9scyhib29sIHNo
b3VsZFBhaW50TmF0aXZlQ29udHJvbHMpCiB7CkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgJ
KHJldmlzaW9uIDcwOTY3KQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAkod29y
a2luZyBjb3B5KQpAQCAtMTAzLDYgKzEwMyw5IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNldENh
Y2hlTW9kZWwodWludDMyX3QpOwogICAgIHZvaWQgcGxhdGZvcm1TZXRDYWNoZU1vZGVsKENhY2hl
TW9kZWwpOworICAgIHZvaWQgY2FsY3VsYXRlQ2FjaGVTaXplcyhDYWNoZU1vZGVsIGNhY2hlTW9k
ZWwsIHVpbnQ2NF90IG1lbW9yeVNpemUsIHVpbnQ2NF90IGRpc2tGcmVlU2l6ZSwKKyAgICAgICAg
dW5zaWduZWQmIGNhY2hlVG90YWxDYXBhY2l0eSwgdW5zaWduZWQmIGNhY2hlTWluRGVhZENhcGFj
aXR5LCB1bnNpZ25lZCYgY2FjaGVNYXhEZWFkQ2FwYWNpdHksIGRvdWJsZSYgZGVhZERlY29kZWRE
YXRhRGVsZXRpb25JbnRlcnZhbCwKKyAgICAgICAgdW5zaWduZWQmIHBhZ2VDYWNoZUNhcGFjaXR5
LCB1bnNpZ25lZCBsb25nJiB1cmxDYWNoZU1lbW9yeUNhcGFjaXR5LCB1bnNpZ25lZCBsb25nJiB1
cmxDYWNoZURpc2tDYXBhY2l0eSk7CiAKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGll
bnQKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwpJbmRleDogV2ViS2l0
Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIv
V2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc01hYy5tbQkocmV2aXNpb24gNzA5NjcpCisrKyBXZWJL
aXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTM1
LDcgKzM1LDYgQEAKICNpbmNsdWRlIDxtYWNoL21hY2hfZXJyb3IuaD4KIAogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7Ci11c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IApAQCAtNTcsNyArNTYsNyBAQCBzdGF0aWMgdWludDY0X3QgbWVtb3J5U2l6ZSgpCiAgICAgcmV0
dXJuIGhvc3RJbmZvLm1heF9tZW07CiB9CiAKLXN0YXRpYyB1bnNpZ25lZCBsb25nIGxvbmcgdm9s
dW1lRnJlZVNpemUoTlNTdHJpbmcgKnBhdGgpCitzdGF0aWMgdWludDY0X3Qgdm9sdW1lRnJlZVNp
emUoTlNTdHJpbmcgKnBhdGgpCiB7CiAgICAgTlNEaWN0aW9uYXJ5ICpmaWxlU3lzdGVtQXR0cmli
dXRlc0RpY3Rpb25hcnkgPSBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGF0dHJpYnV0
ZXNPZkZpbGVTeXN0ZW1Gb3JQYXRoOnBhdGggZXJyb3I6TlVMTF07CiAgICAgcmV0dXJuIFtbZmls
ZVN5c3RlbUF0dHJpYnV0ZXNEaWN0aW9uYXJ5IG9iamVjdEZvcktleTpOU0ZpbGVTeXN0ZW1GcmVl
U2l6ZV0gdW5zaWduZWRMb25nTG9uZ1ZhbHVlXTsKQEAgLTY1LDYgKzY0LDcgQEAgc3RhdGljIHVu
c2lnbmVkIGxvbmcgbG9uZyB2b2x1bWVGcmVlU2l6ZQogCiB2b2lkIFdlYlByb2Nlc3M6OnBsYXRm
b3JtU2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVsIGNhY2hlTW9kZWwpCiB7CisgICAgTlNVUkxDYWNo
ZSAqbnN1cmxDYWNoZSA9IFtOU1VSTENhY2hlIHNoYXJlZFVSTENhY2hlXTsKICAgICBSZXRhaW5Q
dHI8TlNTdHJpbmc+IG5zdXJsQ2FjaGVEaXJlY3RvcnkoQWRvcHROUywgKE5TU3RyaW5nICopV0tD
b3B5Rm91bmRhdGlvbkNhY2hlRGlyZWN0b3J5KCkpOwogICAgIGlmICghbnN1cmxDYWNoZURpcmVj
dG9yeSkKICAgICAgICAgbnN1cmxDYWNoZURpcmVjdG9yeS5hZG9wdE5TKE5TSG9tZURpcmVjdG9y
eSgpKTsKQEAgLTcyLDE2NiArNzIsMjcgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybVNldENh
Y2hlTW9kZWwoQwogICAgIC8vIEFzIGEgZnVkZ2UgZmFjdG9yLCB1c2UgMTAwMCBpbnN0ZWFkIG9m
IDEwMjQsIGluIGNhc2UgdGhlIHJlcG9ydGVkIGJ5dGUgCiAgICAgLy8gY291bnQgZG9lc24ndCBh
bGlnbiBleGFjdGx5IHRvIGEgbWVnYWJ5dGUgYm91bmRhcnkuCiAgICAgdWludDY0X3QgbWVtU2l6
ZSA9IG1lbW9yeVNpemUoKSAvIDEwMjQgLyAxMDAwOwotICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBk
aXNrRnJlZVNpemUgPSB2b2x1bWVGcmVlU2l6ZShuc3VybENhY2hlRGlyZWN0b3J5LmdldCgpKSAv
IDEwMjQgLyAxMDAwOwotICAgIE5TVVJMQ2FjaGUgKm5zdXJsQ2FjaGUgPSBbTlNVUkxDYWNoZSBz
aGFyZWRVUkxDYWNoZV07CisgICAgdWludDY0X3QgZGlza0ZyZWVTaXplID0gdm9sdW1lRnJlZVNp
emUobnN1cmxDYWNoZURpcmVjdG9yeS5nZXQoKSkgLyAxMDI0IC8gMTAwMDsKIAogICAgIHVuc2ln
bmVkIGNhY2hlVG90YWxDYXBhY2l0eSA9IDA7CiAgICAgdW5zaWduZWQgY2FjaGVNaW5EZWFkQ2Fw
YWNpdHkgPSAwOwogICAgIHVuc2lnbmVkIGNhY2hlTWF4RGVhZENhcGFjaXR5ID0gMDsKICAgICBk
b3VibGUgZGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbCA9IDA7Ci0KICAgICB1bnNpZ25l
ZCBwYWdlQ2FjaGVDYXBhY2l0eSA9IDA7CisgICAgdW5zaWduZWQgbG9uZyB1cmxDYWNoZU1lbW9y
eUNhcGFjaXR5ID0gMDsKKyAgICB1bnNpZ25lZCBsb25nIHVybENhY2hlRGlza0NhcGFjaXR5ID0g
MDsKIAotICAgIE5TVUludGVnZXIgbnN1cmxDYWNoZU1lbW9yeUNhcGFjaXR5ID0gMDsKLSAgICBO
U1VJbnRlZ2VyIG5zdXJsQ2FjaGVEaXNrQ2FwYWNpdHkgPSAwOworICAgIGNhbGN1bGF0ZUNhY2hl
U2l6ZXMoY2FjaGVNb2RlbCwgbWVtU2l6ZSwgZGlza0ZyZWVTaXplLAorICAgICAgICBjYWNoZVRv
dGFsQ2FwYWNpdHksIGNhY2hlTWluRGVhZENhcGFjaXR5LCBjYWNoZU1heERlYWRDYXBhY2l0eSwg
ZGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbCwKKyAgICAgICAgcGFnZUNhY2hlQ2FwYWNp
dHksIHVybENhY2hlTWVtb3J5Q2FwYWNpdHksIHVybENhY2hlRGlza0NhcGFjaXR5KTsKIAotICAg
IHN3aXRjaCAoY2FjaGVNb2RlbCkgewotICAgIGNhc2UgQ2FjaGVNb2RlbERvY3VtZW50Vmlld2Vy
OiB7Ci0gICAgICAgIC8vIFBhZ2UgY2FjaGUgY2FwYWNpdHkgKGluIHBhZ2VzKQotICAgICAgICBw
YWdlQ2FjaGVDYXBhY2l0eSA9IDA7Ci0KLSAgICAgICAgLy8gT2JqZWN0IGNhY2hlIGNhcGFjaXRp
ZXMgKGluIGJ5dGVzKQotICAgICAgICBpZiAobWVtU2l6ZSA+PSAyMDQ4KQotICAgICAgICAgICAg
Y2FjaGVUb3RhbENhcGFjaXR5ID0gOTYgKiAxMDI0ICogMTAyNDsKLSAgICAgICAgZWxzZSBpZiAo
bWVtU2l6ZSA+PSAxNTM2KQotICAgICAgICAgICAgY2FjaGVUb3RhbENhcGFjaXR5ID0gNjQgKiAx
MDI0ICogMTAyNDsKLSAgICAgICAgZWxzZSBpZiAobWVtU2l6ZSA+PSAxMDI0KQotICAgICAgICAg
ICAgY2FjaGVUb3RhbENhcGFjaXR5ID0gMzIgKiAxMDI0ICogMTAyNDsKLSAgICAgICAgZWxzZSBp
ZiAobWVtU2l6ZSA+PSA1MTIpCi0gICAgICAgICAgICBjYWNoZVRvdGFsQ2FwYWNpdHkgPSAxNiAq
IDEwMjQgKiAxMDI0OwotCi0gICAgICAgIGNhY2hlTWluRGVhZENhcGFjaXR5ID0gMDsKLSAgICAg
ICAgY2FjaGVNYXhEZWFkQ2FwYWNpdHkgPSAwOwotCi0gICAgICAgIC8vIEZvdW5kYXRpb24gbWVt
b3J5IGNhY2hlIGNhcGFjaXR5IChpbiBieXRlcykKLSAgICAgICAgbnN1cmxDYWNoZU1lbW9yeUNh
cGFjaXR5ID0gMDsKLQotICAgICAgICAvLyBGb3VuZGF0aW9uIGRpc2sgY2FjaGUgY2FwYWNpdHkg
KGluIGJ5dGVzKQotICAgICAgICBuc3VybENhY2hlRGlza0NhcGFjaXR5ID0gW25zdXJsQ2FjaGUg
ZGlza0NhcGFjaXR5XTsKLQotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBDYWNoZU1v
ZGVsRG9jdW1lbnRCcm93c2VyOiB7Ci0gICAgICAgIC8vIFBhZ2UgY2FjaGUgY2FwYWNpdHkgKGlu
IHBhZ2VzKQotICAgICAgICBpZiAobWVtU2l6ZSA+PSAxMDI0KQotICAgICAgICAgICAgcGFnZUNh
Y2hlQ2FwYWNpdHkgPSAzOwotICAgICAgICBlbHNlIGlmIChtZW1TaXplID49IDUxMikKLSAgICAg
ICAgICAgIHBhZ2VDYWNoZUNhcGFjaXR5ID0gMjsKLSAgICAgICAgZWxzZSBpZiAobWVtU2l6ZSA+
PSAyNTYpCi0gICAgICAgICAgICBwYWdlQ2FjaGVDYXBhY2l0eSA9IDE7Ci0gICAgICAgIGVsc2UK
LSAgICAgICAgICAgIHBhZ2VDYWNoZUNhcGFjaXR5ID0gMDsKLQotICAgICAgICAvLyBPYmplY3Qg
Y2FjaGUgY2FwYWNpdGllcyAoaW4gYnl0ZXMpCi0gICAgICAgIGlmIChtZW1TaXplID49IDIwNDgp
Ci0gICAgICAgICAgICBjYWNoZVRvdGFsQ2FwYWNpdHkgPSA5NiAqIDEwMjQgKiAxMDI0OwotICAg
ICAgICBlbHNlIGlmIChtZW1TaXplID49IDE1MzYpCi0gICAgICAgICAgICBjYWNoZVRvdGFsQ2Fw
YWNpdHkgPSA2NCAqIDEwMjQgKiAxMDI0OwotICAgICAgICBlbHNlIGlmIChtZW1TaXplID49IDEw
MjQpCi0gICAgICAgICAgICBjYWNoZVRvdGFsQ2FwYWNpdHkgPSAzMiAqIDEwMjQgKiAxMDI0Owot
ICAgICAgICBlbHNlIGlmIChtZW1TaXplID49IDUxMikKLSAgICAgICAgICAgIGNhY2hlVG90YWxD
YXBhY2l0eSA9IDE2ICogMTAyNCAqIDEwMjQ7Ci0KLSAgICAgICAgY2FjaGVNaW5EZWFkQ2FwYWNp
dHkgPSBjYWNoZVRvdGFsQ2FwYWNpdHkgLyA4OwotICAgICAgICBjYWNoZU1heERlYWRDYXBhY2l0
eSA9IGNhY2hlVG90YWxDYXBhY2l0eSAvIDQ7Ci0KLSAgICAgICAgLy8gRm91bmRhdGlvbiBtZW1v
cnkgY2FjaGUgY2FwYWNpdHkgKGluIGJ5dGVzKQotICAgICAgICBpZiAobWVtU2l6ZSA+PSAyMDQ4
KQotICAgICAgICAgICAgbnN1cmxDYWNoZU1lbW9yeUNhcGFjaXR5ID0gNCAqIDEwMjQgKiAxMDI0
OwotICAgICAgICBlbHNlIGlmIChtZW1TaXplID49IDEwMjQpCi0gICAgICAgICAgICBuc3VybENh
Y2hlTWVtb3J5Q2FwYWNpdHkgPSAyICogMTAyNCAqIDEwMjQ7Ci0gICAgICAgIGVsc2UgaWYgKG1l
bVNpemUgPj0gNTEyKQotICAgICAgICAgICAgbnN1cmxDYWNoZU1lbW9yeUNhcGFjaXR5ID0gMSAq
IDEwMjQgKiAxMDI0OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBuc3VybENhY2hlTWVtb3J5
Q2FwYWNpdHkgPSAgICAgIDUxMiAqIDEwMjQ7IAotCi0gICAgICAgIC8vIEZvdW5kYXRpb24gZGlz
ayBjYWNoZSBjYXBhY2l0eSAoaW4gYnl0ZXMpCi0gICAgICAgIGlmIChkaXNrRnJlZVNpemUgPj0g
MTYzODQpCi0gICAgICAgICAgICBuc3VybENhY2hlRGlza0NhcGFjaXR5ID0gNTAgKiAxMDI0ICog
MTAyNDsKLSAgICAgICAgZWxzZSBpZiAoZGlza0ZyZWVTaXplID49IDgxOTIpCi0gICAgICAgICAg
ICBuc3VybENhY2hlRGlza0NhcGFjaXR5ID0gNDAgKiAxMDI0ICogMTAyNDsKLSAgICAgICAgZWxz
ZSBpZiAoZGlza0ZyZWVTaXplID49IDQwOTYpCi0gICAgICAgICAgICBuc3VybENhY2hlRGlza0Nh
cGFjaXR5ID0gMzAgKiAxMDI0ICogMTAyNDsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbnN1
cmxDYWNoZURpc2tDYXBhY2l0eSA9IDIwICogMTAyNCAqIDEwMjQ7Ci0KLSAgICAgICAgYnJlYWs7
Ci0gICAgfQotICAgIGNhc2UgQ2FjaGVNb2RlbFByaW1hcnlXZWJCcm93c2VyOiB7Ci0gICAgICAg
IC8vIFBhZ2UgY2FjaGUgY2FwYWNpdHkgKGluIHBhZ2VzKQotICAgICAgICAvLyAoUmVzZWFyY2gg
aW5kaWNhdGVzIHRoYXQgdmFsdWUgLyBwYWdlIGRyb3BzIHN1YnN0YW50aWFsbHkgYWZ0ZXIgMyBw
YWdlcy4pCi0gICAgICAgIGlmIChtZW1TaXplID49IDIwNDgpCi0gICAgICAgICAgICBwYWdlQ2Fj
aGVDYXBhY2l0eSA9IDU7Ci0gICAgICAgIGVsc2UgaWYgKG1lbVNpemUgPj0gMTAyNCkKLSAgICAg
ICAgICAgIHBhZ2VDYWNoZUNhcGFjaXR5ID0gNDsKLSAgICAgICAgZWxzZSBpZiAobWVtU2l6ZSA+
PSA1MTIpCi0gICAgICAgICAgICBwYWdlQ2FjaGVDYXBhY2l0eSA9IDM7Ci0gICAgICAgIGVsc2Ug
aWYgKG1lbVNpemUgPj0gMjU2KQotICAgICAgICAgICAgcGFnZUNhY2hlQ2FwYWNpdHkgPSAyOwot
ICAgICAgICBlbHNlCi0gICAgICAgICAgICBwYWdlQ2FjaGVDYXBhY2l0eSA9IDE7Ci0KLSAgICAg
ICAgLy8gT2JqZWN0IGNhY2hlIGNhcGFjaXRpZXMgKGluIGJ5dGVzKQotICAgICAgICAvLyAoVGVz
dGluZyBpbmRpY2F0ZXMgdGhhdCB2YWx1ZSAvIE1CIGRlcGVuZHMgaGVhdmlseSBvbiBjb250ZW50
IGFuZAotICAgICAgICAvLyBicm93c2luZyBwYXR0ZXJuLiBFdmVuIGdyb3d0aCBhYm92ZSAxMjhN
QiBjYW4gaGF2ZSBzdWJzdGFudGlhbCAKLSAgICAgICAgLy8gdmFsdWUgLyBNQiBmb3Igc29tZSBj
b250ZW50IC8gYnJvd3NpbmcgcGF0dGVybnMuKQotICAgICAgICBpZiAobWVtU2l6ZSA+PSAyMDQ4
KQotICAgICAgICAgICAgY2FjaGVUb3RhbENhcGFjaXR5ID0gMTI4ICogMTAyNCAqIDEwMjQ7Ci0g
ICAgICAgIGVsc2UgaWYgKG1lbVNpemUgPj0gMTUzNikKLSAgICAgICAgICAgIGNhY2hlVG90YWxD
YXBhY2l0eSA9IDk2ICogMTAyNCAqIDEwMjQ7Ci0gICAgICAgIGVsc2UgaWYgKG1lbVNpemUgPj0g
MTAyNCkKLSAgICAgICAgICAgIGNhY2hlVG90YWxDYXBhY2l0eSA9IDY0ICogMTAyNCAqIDEwMjQ7
Ci0gICAgICAgIGVsc2UgaWYgKG1lbVNpemUgPj0gNTEyKQotICAgICAgICAgICAgY2FjaGVUb3Rh
bENhcGFjaXR5ID0gMzIgKiAxMDI0ICogMTAyNDsKLQotICAgICAgICBjYWNoZU1pbkRlYWRDYXBh
Y2l0eSA9IGNhY2hlVG90YWxDYXBhY2l0eSAvIDQ7Ci0gICAgICAgIGNhY2hlTWF4RGVhZENhcGFj
aXR5ID0gY2FjaGVUb3RhbENhcGFjaXR5IC8gMjsKLQotICAgICAgICAvLyBUaGlzIGNvZGUgaXMg
aGVyZSB0byBhdm9pZCBhIFBMVCByZWdyZXNzaW9uLiBXZSBjYW4gcmVtb3ZlIGl0IGlmIHdlCi0g
ICAgICAgIC8vIGNhbiBwcm92ZSB0aGF0IHRoZSBvdmVyYWxsIHN5c3RlbSBnYWluIHdvdWxkIGp1
c3RpZnkgdGhlIHJlZ3Jlc3Npb24uCi0gICAgICAgIGNhY2hlTWF4RGVhZENhcGFjaXR5ID0gbWF4
KDI0dSwgY2FjaGVNYXhEZWFkQ2FwYWNpdHkpOwotCi0gICAgICAgIGRlYWREZWNvZGVkRGF0YURl
bGV0aW9uSW50ZXJ2YWwgPSA2MDsKLQotICAgICAgICAvLyBGb3VuZGF0aW9uIG1lbW9yeSBjYWNo
ZSBjYXBhY2l0eSAoaW4gYnl0ZXMpCi0gICAgICAgIC8vIChUaGVzZSB2YWx1ZXMgYXJlIHNtYWxs
IGJlY2F1c2UgV2ViQ29yZSBkb2VzIG1vc3QgY2FjaGluZyBpdHNlbGYuKQotICAgICAgICBpZiAo
bWVtU2l6ZSA+PSAxMDI0KQotICAgICAgICAgICAgbnN1cmxDYWNoZU1lbW9yeUNhcGFjaXR5ID0g
NCAqIDEwMjQgKiAxMDI0OwotICAgICAgICBlbHNlIGlmIChtZW1TaXplID49IDUxMikKLSAgICAg
ICAgICAgIG5zdXJsQ2FjaGVNZW1vcnlDYXBhY2l0eSA9IDIgKiAxMDI0ICogMTAyNDsKLSAgICAg
ICAgZWxzZSBpZiAobWVtU2l6ZSA+PSAyNTYpCi0gICAgICAgICAgICBuc3VybENhY2hlTWVtb3J5
Q2FwYWNpdHkgPSAxICogMTAyNCAqIDEwMjQ7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG5z
dXJsQ2FjaGVNZW1vcnlDYXBhY2l0eSA9ICAgICAgNTEyICogMTAyNDsgCi0KLSAgICAgICAgLy8g
Rm91bmRhdGlvbiBkaXNrIGNhY2hlIGNhcGFjaXR5IChpbiBieXRlcykKLSAgICAgICAgaWYgKGRp
c2tGcmVlU2l6ZSA+PSAxNjM4NCkKLSAgICAgICAgICAgIG5zdXJsQ2FjaGVEaXNrQ2FwYWNpdHkg
PSAxNzUgKiAxMDI0ICogMTAyNDsKLSAgICAgICAgZWxzZSBpZiAoZGlza0ZyZWVTaXplID49IDgx
OTIpCi0gICAgICAgICAgICBuc3VybENhY2hlRGlza0NhcGFjaXR5ID0gMTUwICogMTAyNCAqIDEw
MjQ7Ci0gICAgICAgIGVsc2UgaWYgKGRpc2tGcmVlU2l6ZSA+PSA0MDk2KQotICAgICAgICAgICAg
bnN1cmxDYWNoZURpc2tDYXBhY2l0eSA9IDEyNSAqIDEwMjQgKiAxMDI0OwotICAgICAgICBlbHNl
IGlmIChkaXNrRnJlZVNpemUgPj0gMjA0OCkKLSAgICAgICAgICAgIG5zdXJsQ2FjaGVEaXNrQ2Fw
YWNpdHkgPSAxMDAgKiAxMDI0ICogMTAyNDsKLSAgICAgICAgZWxzZSBpZiAoZGlza0ZyZWVTaXpl
ID49IDEwMjQpCi0gICAgICAgICAgICBuc3VybENhY2hlRGlza0NhcGFjaXR5ID0gNzUgKiAxMDI0
ICogMTAyNDsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbnN1cmxDYWNoZURpc2tDYXBhY2l0
eSA9IDUwICogMTAyNCAqIDEwMjQ7Ci0KLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGRlZmF1
bHQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIH07Ci0KLSAgICAvLyBEb24n
dCBzaHJpbmsgYSBiaWcgZGlzayBjYWNoZSwgc2luY2UgdGhhdCB3b3VsZCBjYXVzZSBjaHVybi4K
LSAgICBuc3VybENhY2hlRGlza0NhcGFjaXR5ID0gbWF4KG5zdXJsQ2FjaGVEaXNrQ2FwYWNpdHks
IFtuc3VybENhY2hlIGRpc2tDYXBhY2l0eV0pOwogCiAgICAgY2FjaGUoKS0+c2V0Q2FwYWNpdGll
cyhjYWNoZU1pbkRlYWRDYXBhY2l0eSwgY2FjaGVNYXhEZWFkQ2FwYWNpdHksIGNhY2hlVG90YWxD
YXBhY2l0eSk7CiAgICAgY2FjaGUoKS0+c2V0RGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZh
bChkZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsKTsKICAgICBwYWdlQ2FjaGUoKS0+c2V0
Q2FwYWNpdHkocGFnZUNhY2hlQ2FwYWNpdHkpOwotICAgIFtuc3VybENhY2hlIHNldE1lbW9yeUNh
cGFjaXR5Om5zdXJsQ2FjaGVNZW1vcnlDYXBhY2l0eV07Ci0gICAgW25zdXJsQ2FjaGUgc2V0RGlz
a0NhcGFjaXR5Om5zdXJsQ2FjaGVEaXNrQ2FwYWNpdHldOworICAgIFtuc3VybENhY2hlIHNldE1l
bW9yeUNhcGFjaXR5OnVybENhY2hlTWVtb3J5Q2FwYWNpdHldOworICAgIFtuc3VybENhY2hlIHNl
dERpc2tDYXBhY2l0eTpzdGQ6Om1heCh1cmxDYWNoZURpc2tDYXBhY2l0eSwgW25zdXJsQ2FjaGUg
ZGlza0NhcGFjaXR5XSldOyAvLyBEb24ndCBzaHJpbmsgYSBiaWcgZGlzayBjYWNoZSwgc2luY2Ug
dGhhdCB3b3VsZCBjYXVzZSBjaHVybi4KKwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5k
ZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy93aW4vV2ViUHJvY2Vzc1dpbi5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0Mi9XZWJQcm9jZXNzL3dpbi9XZWJQcm9jZXNzV2luLmNwcAkocmV2aXNpb24gNzA5
NjcpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3Mvd2luL1dlYlByb2Nlc3NXaW4uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00Myw3ICs0Myw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAotc3RhdGljIHVuc2lnbmVkIGxvbmcgbG9uZyBtZW1vcnlTaXplKCkK
K3N0YXRpYyB1aW50NjRfdCBtZW1vcnlTaXplKCkKIHsKICAgICBNRU1PUllTVEFUVVNFWCBzdGF0
ZXg7CiAgICAgc3RhdGV4LmR3TGVuZ3RoID0gc2l6ZW9mKHN0YXRleCk7CkBAIC01MSw3ICs1MSw3
IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIGxvbmcgbWVtb3J5U2l6ZSgpCiAgICAgcmV0dXJuIHN0
YXRleC51bGxUb3RhbFBoeXM7CiB9CiAKLXN0YXRpYyB1bnNpZ25lZCBsb25nIGxvbmcgdm9sdW1l
RnJlZVNpemUoQ0ZTdHJpbmdSZWYgY2ZzdHJpbmdQYXRoKQorc3RhdGljIHVpbnQ2NF90IHZvbHVt
ZUZyZWVTaXplKENGU3RyaW5nUmVmIGNmc3RyaW5nUGF0aCkKIHsKICAgICBXVEY6OlN0cmluZyBw
YXRoKGNmc3RyaW5nUGF0aCk7CiAgICAgVUxBUkdFX0lOVEVHRVIgZnJlZUJ5dGVzVG9DYWxsZXI7
CkBAIC03MiwxNjcgKzcyLDI3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1TZXRDYWNoZU1v
ZGVsKEMKIAogICAgIC8vIEFzIGEgZnVkZ2UgZmFjdG9yLCB1c2UgMTAwMCBpbnN0ZWFkIG9mIDEw
MjQsIGluIGNhc2UgdGhlIHJlcG9ydGVkIGJ5dGUgCiAgICAgLy8gY291bnQgZG9lc24ndCBhbGln
biBleGFjdGx5IHRvIGEgbWVnYWJ5dGUgYm91bmRhcnkuCi0gICAgdW5zaWduZWQgbG9uZyBsb25n
IG1lbVNpemUgPSBtZW1vcnlTaXplKCkgLyAxMDI0IC8gMTAwMDsKLSAgICB1bnNpZ25lZCBsb25n
IGxvbmcgZGlza0ZyZWVTaXplID0gdm9sdW1lRnJlZVNpemUoY2Z1cmxDYWNoZURpcmVjdG9yeS5n
ZXQoKSkgLyAxMDI0IC8gMTAwMDsKKyAgICB1aW50NjRfdCBtZW1TaXplID0gbWVtb3J5U2l6ZSgp
IC8gMTAyNCAvIDEwMDA7CisgICAgdWludDY0X3QgZGlza0ZyZWVTaXplID0gdm9sdW1lRnJlZVNp
emUoY2Z1cmxDYWNoZURpcmVjdG9yeS5nZXQoKSkgLyAxMDI0IC8gMTAwMDsKIAogICAgIHVuc2ln
bmVkIGNhY2hlVG90YWxDYXBhY2l0eSA9IDA7CiAgICAgdW5zaWduZWQgY2FjaGVNaW5EZWFkQ2Fw
YWNpdHkgPSAwOwogICAgIHVuc2lnbmVkIGNhY2hlTWF4RGVhZENhcGFjaXR5ID0gMDsKICAgICBk
b3VibGUgZGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbCA9IDA7Ci0KICAgICB1bnNpZ25l
ZCBwYWdlQ2FjaGVDYXBhY2l0eSA9IDA7CisgICAgdW5zaWduZWQgbG9uZyB1cmxDYWNoZU1lbW9y
eUNhcGFjaXR5ID0gMDsKKyAgICB1bnNpZ25lZCBsb25nIHVybENhY2hlRGlza0NhcGFjaXR5ID0g
MDsKIAotICAgIENGSW5kZXggY2Z1cmxDYWNoZU1lbW9yeUNhcGFjaXR5ID0gMDsKLSAgICBDRklu
ZGV4IGNmdXJsQ2FjaGVEaXNrQ2FwYWNpdHkgPSAwOwotCi0gICAgc3dpdGNoIChjYWNoZU1vZGVs
KSB7Ci0gICAgY2FzZSBDYWNoZU1vZGVsRG9jdW1lbnRWaWV3ZXI6IHsKLSAgICAgICAgLy8gUGFn
ZSBjYWNoZSBjYXBhY2l0eSAoaW4gcGFnZXMpCi0gICAgICAgIHBhZ2VDYWNoZUNhcGFjaXR5ID0g
MDsKLQotICAgICAgICAvLyBPYmplY3QgY2FjaGUgY2FwYWNpdGllcyAoaW4gYnl0ZXMpCi0gICAg
ICAgIGlmIChtZW1TaXplID49IDIwNDgpCi0gICAgICAgICAgICBjYWNoZVRvdGFsQ2FwYWNpdHkg
PSA5NiAqIDEwMjQgKiAxMDI0OwotICAgICAgICBlbHNlIGlmIChtZW1TaXplID49IDE1MzYpCi0g
ICAgICAgICAgICBjYWNoZVRvdGFsQ2FwYWNpdHkgPSA2NCAqIDEwMjQgKiAxMDI0OwotICAgICAg
ICBlbHNlIGlmIChtZW1TaXplID49IDEwMjQpCi0gICAgICAgICAgICBjYWNoZVRvdGFsQ2FwYWNp
dHkgPSAzMiAqIDEwMjQgKiAxMDI0OwotICAgICAgICBlbHNlIGlmIChtZW1TaXplID49IDUxMikK
LSAgICAgICAgICAgIGNhY2hlVG90YWxDYXBhY2l0eSA9IDE2ICogMTAyNCAqIDEwMjQ7IAotCi0g
ICAgICAgIGNhY2hlTWluRGVhZENhcGFjaXR5ID0gMDsKLSAgICAgICAgY2FjaGVNYXhEZWFkQ2Fw
YWNpdHkgPSAwOwotCi0gICAgICAgIC8vIEZvdW5kYXRpb24gbWVtb3J5IGNhY2hlIGNhcGFjaXR5
IChpbiBieXRlcykKLSAgICAgICAgY2Z1cmxDYWNoZU1lbW9yeUNhcGFjaXR5ID0gMDsKLQotICAg
ICAgICAvLyBGb3VuZGF0aW9uIGRpc2sgY2FjaGUgY2FwYWNpdHkgKGluIGJ5dGVzKQotICAgICAg
ICBjZnVybENhY2hlRGlza0NhcGFjaXR5ID0gQ0ZVUkxDYWNoZURpc2tDYXBhY2l0eShjZnVybENh
Y2hlLmdldCgpKTsKLQotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBDYWNoZU1vZGVs
RG9jdW1lbnRCcm93c2VyOiB7Ci0gICAgICAgIC8vIFBhZ2UgY2FjaGUgY2FwYWNpdHkgKGluIHBh
Z2VzKQotICAgICAgICBpZiAobWVtU2l6ZSA+PSAxMDI0KQotICAgICAgICAgICAgcGFnZUNhY2hl
Q2FwYWNpdHkgPSAzOwotICAgICAgICBlbHNlIGlmIChtZW1TaXplID49IDUxMikKLSAgICAgICAg
ICAgIHBhZ2VDYWNoZUNhcGFjaXR5ID0gMjsKLSAgICAgICAgZWxzZSBpZiAobWVtU2l6ZSA+PSAy
NTYpCi0gICAgICAgICAgICBwYWdlQ2FjaGVDYXBhY2l0eSA9IDE7Ci0gICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIHBhZ2VDYWNoZUNhcGFjaXR5ID0gMDsKLQotICAgICAgICAvLyBPYmplY3QgY2Fj
aGUgY2FwYWNpdGllcyAoaW4gYnl0ZXMpCi0gICAgICAgIGlmIChtZW1TaXplID49IDIwNDgpCi0g
ICAgICAgICAgICBjYWNoZVRvdGFsQ2FwYWNpdHkgPSA5NiAqIDEwMjQgKiAxMDI0OwotICAgICAg
ICBlbHNlIGlmIChtZW1TaXplID49IDE1MzYpCi0gICAgICAgICAgICBjYWNoZVRvdGFsQ2FwYWNp
dHkgPSA2NCAqIDEwMjQgKiAxMDI0OwotICAgICAgICBlbHNlIGlmIChtZW1TaXplID49IDEwMjQp
Ci0gICAgICAgICAgICBjYWNoZVRvdGFsQ2FwYWNpdHkgPSAzMiAqIDEwMjQgKiAxMDI0OwotICAg
ICAgICBlbHNlIGlmIChtZW1TaXplID49IDUxMikKLSAgICAgICAgICAgIGNhY2hlVG90YWxDYXBh
Y2l0eSA9IDE2ICogMTAyNCAqIDEwMjQ7IAotCi0gICAgICAgIGNhY2hlTWluRGVhZENhcGFjaXR5
ID0gY2FjaGVUb3RhbENhcGFjaXR5IC8gODsKLSAgICAgICAgY2FjaGVNYXhEZWFkQ2FwYWNpdHkg
PSBjYWNoZVRvdGFsQ2FwYWNpdHkgLyA0OwotCi0gICAgICAgIC8vIEZvdW5kYXRpb24gbWVtb3J5
IGNhY2hlIGNhcGFjaXR5IChpbiBieXRlcykKLSAgICAgICAgaWYgKG1lbVNpemUgPj0gMjA0OCkK
LSAgICAgICAgICAgIGNmdXJsQ2FjaGVNZW1vcnlDYXBhY2l0eSA9IDQgKiAxMDI0ICogMTAyNDsK
LSAgICAgICAgZWxzZSBpZiAobWVtU2l6ZSA+PSAxMDI0KQotICAgICAgICAgICAgY2Z1cmxDYWNo
ZU1lbW9yeUNhcGFjaXR5ID0gMiAqIDEwMjQgKiAxMDI0OwotICAgICAgICBlbHNlIGlmIChtZW1T
aXplID49IDUxMikKLSAgICAgICAgICAgIGNmdXJsQ2FjaGVNZW1vcnlDYXBhY2l0eSA9IDEgKiAx
MDI0ICogMTAyNDsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY2Z1cmxDYWNoZU1lbW9yeUNh
cGFjaXR5ID0gICAgICA1MTIgKiAxMDI0OyAKLQotICAgICAgICAvLyBGb3VuZGF0aW9uIGRpc2sg
Y2FjaGUgY2FwYWNpdHkgKGluIGJ5dGVzKQotICAgICAgICBpZiAoZGlza0ZyZWVTaXplID49IDE2
Mzg0KQotICAgICAgICAgICAgY2Z1cmxDYWNoZURpc2tDYXBhY2l0eSA9IDUwICogMTAyNCAqIDEw
MjQ7Ci0gICAgICAgIGVsc2UgaWYgKGRpc2tGcmVlU2l6ZSA+PSA4MTkyKQotICAgICAgICAgICAg
Y2Z1cmxDYWNoZURpc2tDYXBhY2l0eSA9IDQwICogMTAyNCAqIDEwMjQ7Ci0gICAgICAgIGVsc2Ug
aWYgKGRpc2tGcmVlU2l6ZSA+PSA0MDk2KQotICAgICAgICAgICAgY2Z1cmxDYWNoZURpc2tDYXBh
Y2l0eSA9IDMwICogMTAyNCAqIDEwMjQ7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNmdXJs
Q2FjaGVEaXNrQ2FwYWNpdHkgPSAyMCAqIDEwMjQgKiAxMDI0OwotCi0gICAgICAgIGJyZWFrOwot
ICAgIH0KLSAgICBjYXNlIENhY2hlTW9kZWxQcmltYXJ5V2ViQnJvd3NlcjogewotICAgICAgICAv
LyBQYWdlIGNhY2hlIGNhcGFjaXR5IChpbiBwYWdlcykKLSAgICAgICAgLy8gKFJlc2VhcmNoIGlu
ZGljYXRlcyB0aGF0IHZhbHVlIC8gcGFnZSBkcm9wcyBzdWJzdGFudGlhbGx5IGFmdGVyIDMgcGFn
ZXMuKQotICAgICAgICBpZiAobWVtU2l6ZSA+PSAyMDQ4KQotICAgICAgICAgICAgcGFnZUNhY2hl
Q2FwYWNpdHkgPSA1OwotICAgICAgICBlbHNlIGlmIChtZW1TaXplID49IDEwMjQpCi0gICAgICAg
ICAgICBwYWdlQ2FjaGVDYXBhY2l0eSA9IDQ7Ci0gICAgICAgIGVsc2UgaWYgKG1lbVNpemUgPj0g
NTEyKQotICAgICAgICAgICAgcGFnZUNhY2hlQ2FwYWNpdHkgPSAzOwotICAgICAgICBlbHNlIGlm
IChtZW1TaXplID49IDI1NikKLSAgICAgICAgICAgIHBhZ2VDYWNoZUNhcGFjaXR5ID0gMjsKLSAg
ICAgICAgZWxzZQotICAgICAgICAgICAgcGFnZUNhY2hlQ2FwYWNpdHkgPSAxOwotCi0gICAgICAg
IC8vIE9iamVjdCBjYWNoZSBjYXBhY2l0aWVzIChpbiBieXRlcykKLSAgICAgICAgLy8gKFRlc3Rp
bmcgaW5kaWNhdGVzIHRoYXQgdmFsdWUgLyBNQiBkZXBlbmRzIGhlYXZpbHkgb24gY29udGVudCBh
bmQKLSAgICAgICAgLy8gYnJvd3NpbmcgcGF0dGVybi4gRXZlbiBncm93dGggYWJvdmUgMTI4TUIg
Y2FuIGhhdmUgc3Vic3RhbnRpYWwgCi0gICAgICAgIC8vIHZhbHVlIC8gTUIgZm9yIHNvbWUgY29u
dGVudCAvIGJyb3dzaW5nIHBhdHRlcm5zLikKLSAgICAgICAgaWYgKG1lbVNpemUgPj0gMjA0OCkK
LSAgICAgICAgICAgIGNhY2hlVG90YWxDYXBhY2l0eSA9IDEyOCAqIDEwMjQgKiAxMDI0OwotICAg
ICAgICBlbHNlIGlmIChtZW1TaXplID49IDE1MzYpCi0gICAgICAgICAgICBjYWNoZVRvdGFsQ2Fw
YWNpdHkgPSA5NiAqIDEwMjQgKiAxMDI0OwotICAgICAgICBlbHNlIGlmIChtZW1TaXplID49IDEw
MjQpCi0gICAgICAgICAgICBjYWNoZVRvdGFsQ2FwYWNpdHkgPSA2NCAqIDEwMjQgKiAxMDI0Owot
ICAgICAgICBlbHNlIGlmIChtZW1TaXplID49IDUxMikKLSAgICAgICAgICAgIGNhY2hlVG90YWxD
YXBhY2l0eSA9IDMyICogMTAyNCAqIDEwMjQ7IAotCi0gICAgICAgIGNhY2hlTWluRGVhZENhcGFj
aXR5ID0gY2FjaGVUb3RhbENhcGFjaXR5IC8gNDsKLSAgICAgICAgY2FjaGVNYXhEZWFkQ2FwYWNp
dHkgPSBjYWNoZVRvdGFsQ2FwYWNpdHkgLyAyOwotCi0gICAgICAgIC8vIFRoaXMgY29kZSBpcyBo
ZXJlIHRvIGF2b2lkIGEgUExUIHJlZ3Jlc3Npb24uIFdlIGNhbiByZW1vdmUgaXQgaWYgd2UKLSAg
ICAgICAgLy8gY2FuIHByb3ZlIHRoYXQgdGhlIG92ZXJhbGwgc3lzdGVtIGdhaW4gd291bGQganVz
dGlmeSB0aGUgcmVncmVzc2lvbi4KLSAgICAgICAgY2FjaGVNYXhEZWFkQ2FwYWNpdHkgPSBtYXgo
MjR1LCBjYWNoZU1heERlYWRDYXBhY2l0eSk7Ci0KLSAgICAgICAgZGVhZERlY29kZWREYXRhRGVs
ZXRpb25JbnRlcnZhbCA9IDYwOwotCi0gICAgICAgIC8vIEZvdW5kYXRpb24gbWVtb3J5IGNhY2hl
IGNhcGFjaXR5IChpbiBieXRlcykKLSAgICAgICAgLy8gKFRoZXNlIHZhbHVlcyBhcmUgc21hbGwg
YmVjYXVzZSBXZWJDb3JlIGRvZXMgbW9zdCBjYWNoaW5nIGl0c2VsZi4pCi0gICAgICAgIGlmICht
ZW1TaXplID49IDEwMjQpCi0gICAgICAgICAgICBjZnVybENhY2hlTWVtb3J5Q2FwYWNpdHkgPSA0
ICogMTAyNCAqIDEwMjQ7Ci0gICAgICAgIGVsc2UgaWYgKG1lbVNpemUgPj0gNTEyKQotICAgICAg
ICAgICAgY2Z1cmxDYWNoZU1lbW9yeUNhcGFjaXR5ID0gMiAqIDEwMjQgKiAxMDI0OwotICAgICAg
ICBlbHNlIGlmIChtZW1TaXplID49IDI1NikKLSAgICAgICAgICAgIGNmdXJsQ2FjaGVNZW1vcnlD
YXBhY2l0eSA9IDEgKiAxMDI0ICogMTAyNDsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY2Z1
cmxDYWNoZU1lbW9yeUNhcGFjaXR5ID0gICAgICA1MTIgKiAxMDI0OyAKLQotICAgICAgICAvLyBG
b3VuZGF0aW9uIGRpc2sgY2FjaGUgY2FwYWNpdHkgKGluIGJ5dGVzKQotICAgICAgICBpZiAoZGlz
a0ZyZWVTaXplID49IDE2Mzg0KQotICAgICAgICAgICAgY2Z1cmxDYWNoZURpc2tDYXBhY2l0eSA9
IDE3NSAqIDEwMjQgKiAxMDI0OwotICAgICAgICBlbHNlIGlmIChkaXNrRnJlZVNpemUgPj0gODE5
MikKLSAgICAgICAgICAgIGNmdXJsQ2FjaGVEaXNrQ2FwYWNpdHkgPSAxNTAgKiAxMDI0ICogMTAy
NDsKLSAgICAgICAgZWxzZSBpZiAoZGlza0ZyZWVTaXplID49IDQwOTYpCi0gICAgICAgICAgICBj
ZnVybENhY2hlRGlza0NhcGFjaXR5ID0gMTI1ICogMTAyNCAqIDEwMjQ7Ci0gICAgICAgIGVsc2Ug
aWYgKGRpc2tGcmVlU2l6ZSA+PSAyMDQ4KQotICAgICAgICAgICAgY2Z1cmxDYWNoZURpc2tDYXBh
Y2l0eSA9IDEwMCAqIDEwMjQgKiAxMDI0OwotICAgICAgICBlbHNlIGlmIChkaXNrRnJlZVNpemUg
Pj0gMTAyNCkKLSAgICAgICAgICAgIGNmdXJsQ2FjaGVEaXNrQ2FwYWNpdHkgPSA3NSAqIDEwMjQg
KiAxMDI0OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjZnVybENhY2hlRGlza0NhcGFjaXR5
ID0gNTAgKiAxMDI0ICogMTAyNDsKLQotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgZGVmYXVs
dDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgfQotCi0gICAgLy8gRG9uJ3Qg
c2hyaW5rIGEgYmlnIGRpc2sgY2FjaGUsIHNpbmNlIHRoYXQgd291bGQgY2F1c2UgY2h1cm4uCi0g
ICAgY2Z1cmxDYWNoZURpc2tDYXBhY2l0eSA9IG1heChjZnVybENhY2hlRGlza0NhcGFjaXR5LCBD
RlVSTENhY2hlRGlza0NhcGFjaXR5KGNmdXJsQ2FjaGUuZ2V0KCkpKTsKKyAgICBjYWxjdWxhdGVD
YWNoZVNpemVzKGNhY2hlTW9kZWwsIG1lbVNpemUsIGRpc2tGcmVlU2l6ZSwKKyAgICAgICAgY2Fj
aGVUb3RhbENhcGFjaXR5LCBjYWNoZU1pbkRlYWRDYXBhY2l0eSwgY2FjaGVNYXhEZWFkQ2FwYWNp
dHksIGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwsCisgICAgICAgIHBhZ2VDYWNoZUNh
cGFjaXR5LCB1cmxDYWNoZU1lbW9yeUNhcGFjaXR5LCB1cmxDYWNoZURpc2tDYXBhY2l0eSk7CiAK
ICAgICBjYWNoZSgpLT5zZXRDYXBhY2l0aWVzKGNhY2hlTWluRGVhZENhcGFjaXR5LCBjYWNoZU1h
eERlYWRDYXBhY2l0eSwgY2FjaGVUb3RhbENhcGFjaXR5KTsKICAgICBjYWNoZSgpLT5zZXREZWFk
RGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsKGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2
YWwpOwogICAgIHBhZ2VDYWNoZSgpLT5zZXRDYXBhY2l0eShwYWdlQ2FjaGVDYXBhY2l0eSk7CiAK
LSAgICBDRlVSTENhY2hlU2V0TWVtb3J5Q2FwYWNpdHkoY2Z1cmxDYWNoZS5nZXQoKSwgY2Z1cmxD
YWNoZU1lbW9yeUNhcGFjaXR5KTsKLSAgICBDRlVSTENhY2hlU2V0RGlza0NhcGFjaXR5KGNmdXJs
Q2FjaGUuZ2V0KCksIGNmdXJsQ2FjaGVEaXNrQ2FwYWNpdHkpOworICAgIENGVVJMQ2FjaGVTZXRN
ZW1vcnlDYXBhY2l0eShjZnVybENhY2hlLmdldCgpLCB1cmxDYWNoZU1lbW9yeUNhcGFjaXR5KTsK
KyAgICBDRlVSTENhY2hlU2V0RGlza0NhcGFjaXR5KGNmdXJsQ2FjaGUuZ2V0KCksIG1heCh1cmxD
YWNoZURpc2tDYXBhY2l0eSwgQ0ZVUkxDYWNoZURpc2tDYXBhY2l0eShjZnVybENhY2hlLmdldCgp
KSkpOyAvLyBEb24ndCBzaHJpbmsgYSBiaWcgZGlzayBjYWNoZSwgc2luY2UgdGhhdCB3b3VsZCBj
YXVzZSBjaHVybi4KICNlbmRpZgogfQogCg==
</data>
<flag name="review"
          id="62676"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>