<?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>12484</bug_id>
          
          <creation_ts>2007-01-30 11:27:55 -0800</creation_ts>
          <short_desc>[S60] Bug ID MLIO-6XXEVU: BrowserNG: Redundant password manager notification on secure pages</short_desc>
          <delta_ts>2011-03-21 11:53:04 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>420+</version>
          <rep_platform>S60 Emulator</rep_platform>
          <op_sys>S60 3rd edition</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Yael">yael</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bradley.morrison</cc>
    
    <cc>yael</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>30011</commentid>
    <comment_count>0</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2007-01-30 11:27:55 -0800</bug_when>
    <thetext>Should not offer to save form data in a form that has attribute autocomplete=&quot;off&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>30027</commentid>
    <comment_count>1</comment_count>
      <attachid>12807</attachid>
    <who name="Yael">yael</who>
    <bug_when>2007-01-30 13:07:19 -0800</bug_when>
    <thetext>Created attachment 12807
3.1 patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>30030</commentid>
    <comment_count>2</comment_count>
      <attachid>12808</attachid>
    <who name="Yael">yael</who>
    <bug_when>2007-01-30 13:20:54 -0800</bug_when>
    <thetext>Created attachment 12808
3.2 patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>30033</commentid>
    <comment_count>3</comment_count>
      <attachid>12809</attachid>
    <who name="Bradley Morrison">bradley.morrison</who>
    <bug_when>2007-01-30 13:56:51 -0800</bug_when>
    <thetext>Created attachment 12809
3.1 patch

Update 3.1 patch - fixed CLs, formatting in WebCore\khtml\html\html_formimpl.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>30034</commentid>
    <comment_count>4</comment_count>
      <attachid>12809</attachid>
    <who name="Bradley Morrison">bradley.morrison</who>
    <bug_when>2007-01-30 13:57:31 -0800</bug_when>
    <thetext>Comment on attachment 12809
3.1 patch

Updated formatting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>30036</commentid>
    <comment_count>5</comment_count>
      <attachid>12810</attachid>
    <who name="Bradley Morrison">bradley.morrison</who>
    <bug_when>2007-01-30 14:02:22 -0800</bug_when>
    <thetext>Created attachment 12810
Updated CL, formatting

Updated formatting; CL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>30059</commentid>
    <comment_count>6</comment_count>
      <attachid>12809</attachid>
    <who name="alan">zalan</who>
    <bug_when>2007-01-30 17:46:22 -0800</bug_when>
    <thetext>Comment on attachment 12809
3.1 patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>30060</commentid>
    <comment_count>7</comment_count>
      <attachid>12809</attachid>
    <who name="alan">zalan</who>
    <bug_when>2007-01-30 17:46:28 -0800</bug_when>
    <thetext>Comment on attachment 12809
3.1 patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>30061</commentid>
    <comment_count>8</comment_count>
      <attachid>12810</attachid>
    <who name="alan">zalan</who>
    <bug_when>2007-01-30 17:47:03 -0800</bug_when>
    <thetext>Comment on attachment 12810
Updated CL, formatting

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>30064</commentid>
    <comment_count>9</comment_count>
    <who name="Bradley Morrison">bradley.morrison</who>
    <bug_when>2007-01-30 19:29:15 -0800</bug_when>
    <thetext>Landed - 19283 &amp; 19282 - &amp; resolved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24693</commentid>
    <comment_count>10</comment_count>
    <who name="Krishna">krishnamurty.podipireddy</who>
    <bug_when>2007-02-09 13:33:11 -0800</bug_when>
    <thetext>
Verified and Closed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370665</commentid>
    <comment_count>11</comment_count>
    <who name="Joel Parks">joel.parks</who>
    <bug_when>2011-03-21 11:53:04 -0700</bug_when>
    <thetext>re-purposing InTSW keyword for use by QtWebkit team</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>12807</attachid>
            <date>2007-01-30 13:07:19 -0800</date>
            <delta_ts>2007-01-30 13:56:51 -0800</delta_ts>
            <desc>3.1 patch</desc>
            <filename>MyBrilliantWork.patch</filename>
            <type>text/plain</type>
            <size>19769</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDE5MjYzKQ0KKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
DQpAQCAtMSwzICsxLDIwIEBADQorMjAwNy0wMS0zMCAgeWFoYXJvbiAgPHlhZWwuYWhhcm9uQG5v
a2lhLmNvbT4NCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKyAgICAg
ICAgREVTQzogW1M2MF0gQnVnIElEIE1MSU8tNlhYRVZVOiBCcm93c2VyTkc6IFJlZHVuZGFudCBw
YXNzd29yZCBtYW5hZ2VyIG5vdGlmaWNhdGlvbiBvbiBzZWN1cmUgcGFnZXMNCisgICAgICAgIGh0
dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNDg0DQorDQorICAgICAgICBX
QVJOSU5HOiBOTyBURVNUIENBU0VTIEFEREVEIE9SIENIQU5HRUQNCisNCisgICAgICAgICogQ2hh
bmdlTG9nOg0KKyAgICAgICAgKiBicmlkZ2UvV2ViQ29yZUZvcm1EYXRhRWxlbWVudC5oOg0KKyAg
ICAgICAgKiBraHRtbC9odG1sL2h0bWxfZm9ybWltcGwuY3BwOg0KKyAgICAgICAgKERPTTo6SFRN
TEZvcm1FbGVtZW50SW1wbDo6c3VibWl0KToNCisgICAgICAgICoga3dxL0tXUUtIVE1MUGFydC5j
cHA6DQorICAgICAgICAoS1dRS0hUTUxQYXJ0OjpyZWNvcmRGb3JtVmFsdWUpOg0KKyAgICAgICAg
KEtXUUtIVE1MUGFydDo6cmVjb3JkRm9ybVZhbHVlTCk6DQorICAgICAgICAqIGt3cS9LV1FLSFRN
TFBhcnQuaDoNCisNCiAyMDA3LTAxLTI5ICBidWp0YXMgIDx6YnVqdGFzQGdtYWlsLmNvbT4NCiAN
CiAgICAgICAgIFJldmlld2VkIGJ5IHphbGFuIGJ1anRhcw0KSW5kZXg6IFdlYkNvcmUvYnJpZGdl
L1dlYkNvcmVGb3JtRGF0YUVsZW1lbnQuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYkNvcmUvYnJpZGdl
L1dlYkNvcmVGb3JtRGF0YUVsZW1lbnQuaAkocmV2aXNpb24gMTkyNjMpDQorKysgV2ViQ29yZS9i
cmlkZ2UvV2ViQ29yZUZvcm1EYXRhRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpDQpAQCAtNjUsNiAr
NjUsNyBAQCBwdWJsaWM6DQogICBIQnVmQyogaUtleTsNCiAgIEhCdWZDKiBpVmFsdWU7DQogICBU
Qm9vbCBpc1Bhc3N3b3JkOw0KKyAgVEJvb2wgaXNBdXRvQ29tcGxldGU7DQogDQogfTsNCiANCklu
ZGV4OiBXZWJDb3JlL2todG1sL2h0bWwvaHRtbF9mb3JtaW1wbC5jcHANCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0t
LSBXZWJDb3JlL2todG1sL2h0bWwvaHRtbF9mb3JtaW1wbC5jcHAJKHJldmlzaW9uIDE5MjYzKQ0K
KysrIFdlYkNvcmUva2h0bWwvaHRtbC9odG1sX2Zvcm1pbXBsLmNwcAkod29ya2luZyBjb3B5KQ0K
QEAgLTE1Myw5ICsxNTMsOSBAQCB2b2lkIEhUTUxGb3JtRWxlbWVudEltcGw6OmF0dGFjaCgpDQog
ICAgIEhUTUxFbGVtZW50SW1wbDo6YXR0YWNoKCk7DQogDQogICAgIGlmIChnZXREb2N1bWVudCgp
LT5pc0hUTUxEb2N1bWVudCgpKSB7DQotCUhUTUxEb2N1bWVudEltcGwgKmRvY3VtZW50ID0gc3Rh
dGljX2Nhc3Q8SFRNTERvY3VtZW50SW1wbCAqPihnZXREb2N1bWVudCgpKTsNCi0JZG9jdW1lbnQt
PmFkZE5hbWVkSW1hZ2VPckZvcm0ob2xkTmFtZUF0dHIpOw0KLQlkb2N1bWVudC0+YWRkTmFtZWRJ
bWFnZU9yRm9ybShvbGRJZEF0dHIpOw0KKyAgICBIVE1MRG9jdW1lbnRJbXBsICpkb2N1bWVudCA9
IHN0YXRpY19jYXN0PEhUTUxEb2N1bWVudEltcGwgKj4oZ2V0RG9jdW1lbnQoKSk7DQorICAgIGRv
Y3VtZW50LT5hZGROYW1lZEltYWdlT3JGb3JtKG9sZE5hbWVBdHRyKTsNCisgICAgZG9jdW1lbnQt
PmFkZE5hbWVkSW1hZ2VPckZvcm0ob2xkSWRBdHRyKTsNCiAgICAgfQ0KIA0KICNpZiBBUFBMRV9D
SEFOR0VTDQpAQCAtMTY5LDkgKzE2OSw5IEBAIHZvaWQgSFRNTEZvcm1FbGVtZW50SW1wbDo6YXR0
YWNoKCkNCiB2b2lkIEhUTUxGb3JtRWxlbWVudEltcGw6OmRldGFjaCgpDQogew0KICAgICBpZiAo
Z2V0RG9jdW1lbnQoKS0+aXNIVE1MRG9jdW1lbnQoKSkgew0KLQlIVE1MRG9jdW1lbnRJbXBsICpk
b2N1bWVudCA9IHN0YXRpY19jYXN0PEhUTUxEb2N1bWVudEltcGwgKj4oZ2V0RG9jdW1lbnQoKSk7
DQotCWRvY3VtZW50LT5yZW1vdmVOYW1lZEltYWdlT3JGb3JtKG9sZE5hbWVBdHRyKTsNCi0JZG9j
dW1lbnQtPnJlbW92ZU5hbWVkSW1hZ2VPckZvcm0ob2xkSWRBdHRyKTsNCisgICAgSFRNTERvY3Vt
ZW50SW1wbCAqZG9jdW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MRG9jdW1lbnRJbXBsICo+KGdldERv
Y3VtZW50KCkpOw0KKyAgICBkb2N1bWVudC0+cmVtb3ZlTmFtZWRJbWFnZU9yRm9ybShvbGROYW1l
QXR0cik7DQorICAgIGRvY3VtZW50LT5yZW1vdmVOYW1lZEltYWdlT3JGb3JtKG9sZElkQXR0cik7
DQogICAgIH0NCiANCiAgICAgSFRNTEVsZW1lbnRJbXBsOjpkZXRhY2goKTsNCkBAIC0xODEsOCAr
MTgxLDggQEAgbG9uZyBIVE1MRm9ybUVsZW1lbnRJbXBsOjpsZW5ndGgoKSBjb25zdA0KIHsNCiAg
ICAgaW50IGxlbiA9IDA7DQogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBmb3JtRWxlbWVu
dHMuY291bnQoKTsgKytpKQ0KLQlpZiAoZm9ybUVsZW1lbnRzW2ldLT5pc0VudW1lcmF0YWJsZSgp
KQ0KLQkgICAgKytsZW47DQorICAgIGlmIChmb3JtRWxlbWVudHNbaV0tPmlzRW51bWVyYXRhYmxl
KCkpDQorICAgICAgICArK2xlbjsNCiANCiAgICAgcmV0dXJuIGxlbjsNCiB9DQpAQCAtNTM4LDcg
KzUzOCw3IEBAIHZvaWQgSFRNTEZvcm1FbGVtZW50SW1wbDo6c3VibWl0KCBib29sIGENCiAjZW5k
aWYNCiANCiAgICAgSFRNTEdlbmVyaWNGb3JtRWxlbWVudEltcGwqIGZpcnN0U3VjY2Vzc2Z1bFN1
Ym1pdEJ1dHRvbiA9IDA7DQotICAgIGJvb2wgbmVlZEJ1dHRvbkFjdGl2YXRpb24gPSBhY3RpdmF0
ZVN1Ym1pdEJ1dHRvbjsJLy8gZG8gd2UgbmVlZCB0byBhY3RpdmF0ZSBhIHN1Ym1pdCBidXR0b24/
DQorICAgIGJvb2wgbmVlZEJ1dHRvbkFjdGl2YXRpb24gPSBhY3RpdmF0ZVN1Ym1pdEJ1dHRvbjsg
ICAvLyBkbyB3ZSBuZWVkIHRvIGFjdGl2YXRlIGEgc3VibWl0IGJ1dHRvbj8NCiANCiAjaWYgQVBQ
TEVfQ0hBTkdFUw0KICAgICBLV1EocGFydCktPmNsZWFyUmVjb3JkZWRGb3JtVmFsdWVzKCk7DQpA
QCAtNTU2LDcgKzU1Niw3IEBAIHZvaWQgSFRNTEZvcm1FbGVtZW50SW1wbDo6c3VibWl0KCBib29s
IGENCiAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgIEtXUShwYXJ0KS0+cmVjb3JkRm9y
bVZhbHVlKGlucHV0LT5uYW1lKCkuc3RyaW5nKCksIGlucHV0LT52YWx1ZSgpLnN0cmluZygpLA0K
ICNpZmRlZiBOT0tJQV9DSEFOR0VTDQotICAgICAgICAgICAgICAgIChpbnB1dC0+aW5wdXRUeXBl
KCkgPT0gIEhUTUxJbnB1dEVsZW1lbnRJbXBsOjpQQVNTV09SRCkpOw0KKyAgICAgICAgICAgICAg
ICAoaW5wdXQtPmlucHV0VHlwZSgpID09ICBIVE1MSW5wdXRFbGVtZW50SW1wbDo6UEFTU1dPUkQp
LCBpbnB1dC0+YXV0b0NvbXBsZXRlKCkpOw0KICNlbHNlDQogICAgICAgICAgICAgICAgIHRoaXMp
Ow0KICNlbmRpZg0KQEAgLTY3OCwzNCArNjc4LDM0IEBAIHZvaWQgSFRNTEZvcm1FbGVtZW50SW1w
bDo6cGFyc2VIVE1MQXR0cmkNCiAgICAgICAgIGJyZWFrOw0KICAgICBjYXNlIEFUVFJfT05TVUJN
SVQ6DQogICAgICAgICBzZXRIVE1MRXZlbnRMaXN0ZW5lcihFdmVudEltcGw6OlNVQk1JVF9FVkVO
VCwNCi0JICAgIGdldERvY3VtZW50KCktPmNyZWF0ZUhUTUxFdmVudExpc3RlbmVyKGF0dHItPnZh
bHVlKCkuc3RyaW5nKCksIHRoaXMpKTsNCisgICAgICAgIGdldERvY3VtZW50KCktPmNyZWF0ZUhU
TUxFdmVudExpc3RlbmVyKGF0dHItPnZhbHVlKCkuc3RyaW5nKCksIHRoaXMpKTsNCiAgICAgICAg
IGJyZWFrOw0KICAgICBjYXNlIEFUVFJfT05SRVNFVDoNCiAgICAgICAgIHNldEhUTUxFdmVudExp
c3RlbmVyKEV2ZW50SW1wbDo6UkVTRVRfRVZFTlQsDQotCSAgICBnZXREb2N1bWVudCgpLT5jcmVh
dGVIVE1MRXZlbnRMaXN0ZW5lcihhdHRyLT52YWx1ZSgpLnN0cmluZygpLCB0aGlzKSk7DQorICAg
ICAgICBnZXREb2N1bWVudCgpLT5jcmVhdGVIVE1MRXZlbnRMaXN0ZW5lcihhdHRyLT52YWx1ZSgp
LnN0cmluZygpLCB0aGlzKSk7DQogICAgICAgICBicmVhazsNCiAgICAgY2FzZSBBVFRSX05BTUU6
DQotCXsNCi0JICAgIFFTdHJpbmcgbmV3TmFtZUF0dHIgPSBhdHRyLT52YWx1ZSgpLnN0cmluZygp
Ow0KLQkgICAgaWYgKGF0dGFjaGVkKCkgJiYgZ2V0RG9jdW1lbnQoKS0+aXNIVE1MRG9jdW1lbnQo
KSkgew0KLQkJSFRNTERvY3VtZW50SW1wbCAqZG9jdW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MRG9j
dW1lbnRJbXBsICo+KGdldERvY3VtZW50KCkpOw0KLQkJZG9jdW1lbnQtPnJlbW92ZU5hbWVkSW1h
Z2VPckZvcm0ob2xkTmFtZUF0dHIpOw0KLQkJZG9jdW1lbnQtPmFkZE5hbWVkSW1hZ2VPckZvcm0o
bmV3TmFtZUF0dHIpOw0KLQkgICAgfQ0KLQkgICAgb2xkTmFtZUF0dHIgPSBuZXdOYW1lQXR0cjsN
Ci0JfQ0KLQlicmVhazsNCisgICAgew0KKyAgICAgICAgUVN0cmluZyBuZXdOYW1lQXR0ciA9IGF0
dHItPnZhbHVlKCkuc3RyaW5nKCk7DQorICAgICAgICBpZiAoYXR0YWNoZWQoKSAmJiBnZXREb2N1
bWVudCgpLT5pc0hUTUxEb2N1bWVudCgpKSB7DQorICAgICAgICBIVE1MRG9jdW1lbnRJbXBsICpk
b2N1bWVudCA9IHN0YXRpY19jYXN0PEhUTUxEb2N1bWVudEltcGwgKj4oZ2V0RG9jdW1lbnQoKSk7
DQorICAgICAgICBkb2N1bWVudC0+cmVtb3ZlTmFtZWRJbWFnZU9yRm9ybShvbGROYW1lQXR0cik7
DQorICAgICAgICBkb2N1bWVudC0+YWRkTmFtZWRJbWFnZU9yRm9ybShuZXdOYW1lQXR0cik7DQor
ICAgICAgICB9DQorICAgICAgICBvbGROYW1lQXR0ciA9IG5ld05hbWVBdHRyOw0KKyAgICB9DQor
ICAgIGJyZWFrOw0KICAgICBjYXNlIEFUVFJfSUQ6DQotCXsNCi0JICAgIFFTdHJpbmcgbmV3SWRB
dHRyID0gYXR0ci0+dmFsdWUoKS5zdHJpbmcoKTsNCi0JICAgIGlmIChhdHRhY2hlZCgpICYmIGdl
dERvY3VtZW50KCktPmlzSFRNTERvY3VtZW50KCkpIHsNCi0JCUhUTUxEb2N1bWVudEltcGwgKmRv
Y3VtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTERvY3VtZW50SW1wbCAqPihnZXREb2N1bWVudCgpKTsN
Ci0JCWRvY3VtZW50LT5yZW1vdmVOYW1lZEltYWdlT3JGb3JtKG9sZElkQXR0cik7DQotCQlkb2N1
bWVudC0+YWRkTmFtZWRJbWFnZU9yRm9ybShuZXdJZEF0dHIpOw0KLQkgICAgfQ0KLQkgICAgb2xk
SWRBdHRyID0gbmV3SWRBdHRyOw0KLQl9DQotCS8vIGZhbGwgdGhyb3VnaA0KKyAgICB7DQorICAg
ICAgICBRU3RyaW5nIG5ld0lkQXR0ciA9IGF0dHItPnZhbHVlKCkuc3RyaW5nKCk7DQorICAgICAg
ICBpZiAoYXR0YWNoZWQoKSAmJiBnZXREb2N1bWVudCgpLT5pc0hUTUxEb2N1bWVudCgpKSB7DQor
ICAgICAgICBIVE1MRG9jdW1lbnRJbXBsICpkb2N1bWVudCA9IHN0YXRpY19jYXN0PEhUTUxEb2N1
bWVudEltcGwgKj4oZ2V0RG9jdW1lbnQoKSk7DQorICAgICAgICBkb2N1bWVudC0+cmVtb3ZlTmFt
ZWRJbWFnZU9yRm9ybShvbGRJZEF0dHIpOw0KKyAgICAgICAgZG9jdW1lbnQtPmFkZE5hbWVkSW1h
Z2VPckZvcm0obmV3SWRBdHRyKTsNCisgICAgICAgIH0NCisgICAgICAgIG9sZElkQXR0ciA9IG5l
d0lkQXR0cjsNCisgICAgfQ0KKyAgICAvLyBmYWxsIHRocm91Z2gNCiAgICAgZGVmYXVsdDoNCiAg
ICAgICAgIEhUTUxFbGVtZW50SW1wbDo6cGFyc2VIVE1MQXR0cmlidXRlKGF0dHIpOw0KICAgICB9
DQpAQCAtNzkxLDkgKzc5MSw5IEBAIEhUTUxHZW5lcmljRm9ybUVsZW1lbnRJbXBsOjpIVE1MR2Vu
ZXJpY0YNCiAgICAgbV9kb3JtYW50ID0gZmFsc2U7DQogDQogICAgIGlmIChmKQ0KLQltX2Zvcm0g
PSBmOw0KKyAgICBtX2Zvcm0gPSBmOw0KICAgICBlbHNlDQotCW1fZm9ybSA9IGdldEZvcm0oKTsN
CisgICAgbV9mb3JtID0gZ2V0Rm9ybSgpOw0KICAgICBpZiAobV9mb3JtKQ0KICAgICAgICAgbV9m
b3JtLT5yZWdpc3RlckZvcm1FbGVtZW50KHRoaXMpOw0KIH0NCkBAIC04MzgsOSArODM4LDkgQEAg
dm9pZCBIVE1MR2VuZXJpY0Zvcm1FbGVtZW50SW1wbDo6YXR0YWNoKA0KICAgICAvLyBpbnNpZGUs
IERPTS10cmVlLXdpc2UuIElmIHNvLCBpdCdzIGhhcmQgZm9yIHVzIHRvIGtub3cgd2hlbiB3ZSBz
aG91bGQNCiAgICAgLy8gYmUgcmVtb3ZlZCBmcm9tIHRoYXQgZm9ybSdzIGVsZW1lbnQgbGlzdC4N
CiAgICAgaWYgKCFtX2Zvcm0pIHsNCi0JbV9mb3JtID0gZ2V0Rm9ybSgpOw0KLQlpZiAobV9mb3Jt
KQ0KLQkgICAgbV9mb3JtLT5yZWdpc3RlckZvcm1FbGVtZW50KHRoaXMpOw0KKyAgICBtX2Zvcm0g
PSBnZXRGb3JtKCk7DQorICAgIGlmIChtX2Zvcm0pDQorICAgICAgICBtX2Zvcm0tPnJlZ2lzdGVy
Rm9ybUVsZW1lbnQodGhpcyk7DQogICAgIH0NCiANCiAgICAgSFRNTEVsZW1lbnRJbXBsOjphdHRh
Y2goKTsNCkBAIC05NjYsOCArOTY2LDggQEAgYm9vbCBIVE1MR2VuZXJpY0Zvcm1FbGVtZW50SW1w
bDo6aXNLZXlibw0KICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJXaWRnZXQq
PihtX3JlbmRlciktPndpZGdldCgpICYmDQogICAgICAgICAgICAgICAgIChzdGF0aWNfY2FzdDxS
ZW5kZXJXaWRnZXQqPihtX3JlbmRlciktPndpZGdldCgpLT5mb2N1c1BvbGljeSgpICYgUVdpZGdl
dDo6VGFiRm9jdXMpOw0KICAgICAgICAgfQ0KLQlpZiAoZ2V0RG9jdW1lbnQoKS0+cGFydCgpKQ0K
LQkgICAgcmV0dXJuIGdldERvY3VtZW50KCktPnBhcnQoKS0+dGFic1RvQWxsQ29udHJvbHMoKTsN
CisgICAgaWYgKGdldERvY3VtZW50KCktPnBhcnQoKSkNCisgICAgICAgIHJldHVybiBnZXREb2N1
bWVudCgpLT5wYXJ0KCktPnRhYnNUb0FsbENvbnRyb2xzKCk7DQogICAgIH0NCiAgICAgcmV0dXJu
IGZhbHNlOw0KIH0NCkBAIC0xMDA0LDI3ICsxMDA0LDI3IEBAIHZvaWQgSFRNTEdlbmVyaWNGb3Jt
RWxlbWVudEltcGw6OmRlZmF1bHQNCiAgICAgICAgIH0NCiANCiAjaWYgQVBQTEVfQ0hBTkdFUw0K
LQkvLyBXZSBkb24ndCB3YW50IHRoaXMgZGVmYXVsdCBrZXkgZXZlbnQgaGFuZGxpbmcsIHdlJ2xs
IGNvdW50IG9uDQotCS8vIENvY29hIGV2ZW50IGRpc3BhdGNoIGlmIHRoZSBldmVudCBkb2Vzbid0
IGdldCBibG9ja2VkLg0KKyAgICAvLyBXZSBkb24ndCB3YW50IHRoaXMgZGVmYXVsdCBrZXkgZXZl
bnQgaGFuZGxpbmcsIHdlJ2xsIGNvdW50IG9uDQorICAgIC8vIENvY29hIGV2ZW50IGRpc3BhdGNo
IGlmIHRoZSBldmVudCBkb2Vzbid0IGdldCBibG9ja2VkLg0KICNlbHNlDQotCWlmIChldnQtPmlk
KCk9PUV2ZW50SW1wbDo6S0VZRE9XTl9FVkVOVCB8fA0KLQkgICAgZXZ0LT5pZCgpPT1FdmVudElt
cGw6OktFWVVQX0VWRU5UKQ0KLQl7DQotCSAgICBLZXlib2FyZEV2ZW50SW1wbCAqIGsgPSBzdGF0
aWNfY2FzdDxLZXlib2FyZEV2ZW50SW1wbCAqPihldnQpOw0KLQkgICAgaWYgKGstPmtleVZhbCgp
ID09IFFDaGFyKCdcbicpLnVuaWNvZGUoKSAmJiBtX3JlbmRlciAmJiBtX3JlbmRlci0+aXNXaWRn
ZXQoKSAmJiBrLT5xS2V5RXZlbnQpDQotCQlRQXBwbGljYXRpb246OnNlbmRFdmVudChzdGF0aWNf
Y2FzdDxSZW5kZXJXaWRnZXQgKj4obV9yZW5kZXIpLT53aWRnZXQoKSwgay0+cUtleUV2ZW50KTsN
Ci0JfQ0KLSNlbmRpZg0KLQ0KLQlpZiAoZXZ0LT5pZCgpPT1FdmVudEltcGw6OkRPTUZPQ1VTT1VU
X0VWRU5UICYmIGlzRWRpdGFibGUoKSAmJiBwYXJ0ICYmIG1fcmVuZGVyICYmIG1fcmVuZGVyLT5p
c1dpZGdldCgpKSB7DQotCSAgICBLSFRNTFBhcnRCcm93c2VyRXh0ZW5zaW9uICpleHQgPSBzdGF0
aWNfY2FzdDxLSFRNTFBhcnRCcm93c2VyRXh0ZW5zaW9uICo+KHBhcnQtPmJyb3dzZXJFeHRlbnNp
b24oKSk7DQotCSAgICBRV2lkZ2V0ICp3aWRnZXQgPSBzdGF0aWNfY2FzdDxSZW5kZXJXaWRnZXQq
PihtX3JlbmRlciktPndpZGdldCgpOw0KLQkgICAgaWYgKGV4dCkNCi0JCWV4dC0+ZWRpdGFibGVX
aWRnZXRCbHVycmVkKHdpZGdldCk7DQotDQotCSAgICAvLyAjIyMgRG9uJ3QgY291bnQgcG9wdXAg
YXMgYSB2YWxpZCByZWFzb24gZm9yIGxvc2luZyB0aGUgZm9jdXMgKGV4YW1wbGU6IG9wZW5pbmcg
dGhlIG9wdGlvbnMgb2YgYSBzZWxlY3QNCi0JICAgIC8vIGNvbWJvYm94IHNob3VsZG4ndCBlbWl0
IG9uYmx1cikNCi0JfQ0KKyAgICBpZiAoZXZ0LT5pZCgpPT1FdmVudEltcGw6OktFWURPV05fRVZF
TlQgfHwNCisgICAgICAgIGV2dC0+aWQoKT09RXZlbnRJbXBsOjpLRVlVUF9FVkVOVCkNCisgICAg
ew0KKyAgICAgICAgS2V5Ym9hcmRFdmVudEltcGwgKiBrID0gc3RhdGljX2Nhc3Q8S2V5Ym9hcmRF
dmVudEltcGwgKj4oZXZ0KTsNCisgICAgICAgIGlmIChrLT5rZXlWYWwoKSA9PSBRQ2hhcignXG4n
KS51bmljb2RlKCkgJiYgbV9yZW5kZXIgJiYgbV9yZW5kZXItPmlzV2lkZ2V0KCkgJiYgay0+cUtl
eUV2ZW50KQ0KKyAgICAgICAgUUFwcGxpY2F0aW9uOjpzZW5kRXZlbnQoc3RhdGljX2Nhc3Q8UmVu
ZGVyV2lkZ2V0ICo+KG1fcmVuZGVyKS0+d2lkZ2V0KCksIGstPnFLZXlFdmVudCk7DQorICAgIH0N
CisjZW5kaWYNCisNCisgICAgaWYgKGV2dC0+aWQoKT09RXZlbnRJbXBsOjpET01GT0NVU09VVF9F
VkVOVCAmJiBpc0VkaXRhYmxlKCkgJiYgcGFydCAmJiBtX3JlbmRlciAmJiBtX3JlbmRlci0+aXNX
aWRnZXQoKSkgew0KKyAgICAgICAgS0hUTUxQYXJ0QnJvd3NlckV4dGVuc2lvbiAqZXh0ID0gc3Rh
dGljX2Nhc3Q8S0hUTUxQYXJ0QnJvd3NlckV4dGVuc2lvbiAqPihwYXJ0LT5icm93c2VyRXh0ZW5z
aW9uKCkpOw0KKyAgICAgICAgUVdpZGdldCAqd2lkZ2V0ID0gc3RhdGljX2Nhc3Q8UmVuZGVyV2lk
Z2V0Kj4obV9yZW5kZXIpLT53aWRnZXQoKTsNCisgICAgICAgIGlmIChleHQpDQorICAgICAgICBl
eHQtPmVkaXRhYmxlV2lkZ2V0Qmx1cnJlZCh3aWRnZXQpOw0KKw0KKyAgICAgICAgLy8gIyMjIERv
bid0IGNvdW50IHBvcHVwIGFzIGEgdmFsaWQgcmVhc29uIGZvciBsb3NpbmcgdGhlIGZvY3VzIChl
eGFtcGxlOiBvcGVuaW5nIHRoZSBvcHRpb25zIG9mIGEgc2VsZWN0DQorICAgICAgICAvLyBjb21i
b2JveCBzaG91bGRuJ3QgZW1pdCBvbmJsdXIpDQorICAgIH0NCiAgICAgfQ0KICAgICBIVE1MRWxl
bWVudEltcGw6OmRlZmF1bHRFdmVudEhhbmRsZXIoZXZ0KTsNCiB9DQpAQCAtMTEyOSw3ICsxMTI5
LDcgQEAgRE9NU3RyaW5nIEhUTUxCdXR0b25FbGVtZW50SW1wbDo6dHlwZSgpIA0KIHZvaWQgSFRN
TEJ1dHRvbkVsZW1lbnRJbXBsOjpibHVyKCkNCiB7DQogICAgIGlmKGdldERvY3VtZW50KCktPmZv
Y3VzTm9kZSgpID09IHRoaXMpDQotCWdldERvY3VtZW50KCktPnNldEZvY3VzTm9kZSgwKTsNCisg
ICAgZ2V0RG9jdW1lbnQoKS0+c2V0Rm9jdXNOb2RlKDApOw0KIH0NCiANCiB2b2lkIEhUTUxCdXR0
b25FbGVtZW50SW1wbDo6Zm9jdXMoKQ0KQEAgLTEzODUsNyArMTM4NSw3IEBAIERPTVN0cmluZyBI
VE1MSW5wdXRFbGVtZW50SW1wbDo6dHlwZSgpIGMNCiANCiBRU3RyaW5nIEhUTUxJbnB1dEVsZW1l
bnRJbXBsOjpzdGF0ZSggKQ0KIHsNCi0gICAgYXNzZXJ0KG1fdHlwZSAhPSBQQVNTV09SRCk7CQkv
LyBzaG91bGQgbmV2ZXIgc2F2ZS9yZXN0b3JlIHBhc3N3b3JkIGZpZWxkcw0KKyAgICBhc3NlcnQo
bV90eXBlICE9IFBBU1NXT1JEKTsgICAgIC8vIHNob3VsZCBuZXZlciBzYXZlL3Jlc3RvcmUgcGFz
c3dvcmQgZmllbGRzDQogDQogICAgIFFTdHJpbmcgc3RhdGUgPSBIVE1MR2VuZXJpY0Zvcm1FbGVt
ZW50SW1wbDo6c3RhdGUoKTsNCiAgICAgc3dpdGNoIChtX3R5cGUpIHsNCkBAIC0xMzk5LDcgKzEz
OTksNyBAQCBRU3RyaW5nIEhUTUxJbnB1dEVsZW1lbnRJbXBsOjpzdGF0ZSggKQ0KIA0KIHZvaWQg
SFRNTElucHV0RWxlbWVudEltcGw6OnJlc3RvcmVTdGF0ZShRU3RyaW5nTGlzdCAmc3RhdGVzKQ0K
IHsNCi0gICAgYXNzZXJ0KG1fdHlwZSAhPSBQQVNTV09SRCk7CQkvLyBzaG91bGQgbmV2ZXIgc2F2
ZS9yZXN0b3JlIHBhc3N3b3JkIGZpZWxkcw0KKyAgICBhc3NlcnQobV90eXBlICE9IFBBU1NXT1JE
KTsgICAgIC8vIHNob3VsZCBuZXZlciBzYXZlL3Jlc3RvcmUgcGFzc3dvcmQgZmllbGRzDQogDQog
ICAgIFFTdHJpbmcgc3RhdGUgPSBIVE1MR2VuZXJpY0Zvcm1FbGVtZW50SW1wbDo6ZmluZE1hdGNo
aW5nU3RhdGUoc3RhdGVzKTsNCiAgICAgaWYgKHN0YXRlLmlzTnVsbCgpKSByZXR1cm47DQpAQCAt
MjE3Niw3ICsyMTc2LDcgQEAgYm9vbCBIVE1MSW5wdXRFbGVtZW50SW1wbDo6c3RvcmVzVmFsdWVT
ZQ0KIHZvaWQgSFRNTElucHV0RWxlbWVudEltcGw6OmJsdXIoKQ0KIHsNCiAgICAgaWYoZ2V0RG9j
dW1lbnQoKS0+Zm9jdXNOb2RlKCkgPT0gdGhpcykNCi0JZ2V0RG9jdW1lbnQoKS0+c2V0Rm9jdXNO
b2RlKDApOw0KKyAgICBnZXREb2N1bWVudCgpLT5zZXRGb2N1c05vZGUoMCk7DQogfQ0KIA0KIHZv
aWQgSFRNTElucHV0RWxlbWVudEltcGw6OmZvY3VzKCkNCkBAIC0yMjAzLDcgKzIyMDMsNyBAQCB2
b2lkIEhUTUxJbnB1dEVsZW1lbnRJbXBsOjpkZWZhdWx0RXZlbnRIDQogICAgICAgICAgICAgeFBv
cyA9IG1lLT5jbGllbnRYKCkgLSBvZmZzZXRYOw0KICAgICAgICAgICAgIHlQb3MgPSBtZS0+Y2xp
ZW50WSgpIC0gb2Zmc2V0WTsNCiAgICAgICAgIH0NCi0JCW1lLT5zZXREZWZhdWx0SGFuZGxlZCgp
Ow0KKyAgICAgICAgbWUtPnNldERlZmF1bHRIYW5kbGVkKCk7DQogICAgIH0NCiANCiAgICAgLy8g
RE9NQWN0aXZhdGUgZXZlbnRzIGNhdXNlIHRoZSBpbnB1dCB0byBiZSAiYWN0aXZhdGVkIiAtIGlu
IHRoZSBjYXNlIG9mIGltYWdlIGFuZCBzdWJtaXQgaW5wdXRzLCB0aGlzIG1lYW5zDQpAQCAtMjUx
OSw3ICsyNTE5LDcgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudEltcGw6OnJlbW92ZSggbG9uZw0K
IHZvaWQgSFRNTFNlbGVjdEVsZW1lbnRJbXBsOjpibHVyKCkNCiB7DQogICAgIGlmKGdldERvY3Vt
ZW50KCktPmZvY3VzTm9kZSgpID09IHRoaXMpDQotCWdldERvY3VtZW50KCktPnNldEZvY3VzTm9k
ZSgwKTsNCisgICAgZ2V0RG9jdW1lbnQoKS0+c2V0Rm9jdXNOb2RlKDApOw0KIH0NCiANCiB2b2lk
IEhUTUxTZWxlY3RFbGVtZW50SW1wbDo6Zm9jdXMoKQ0KQEAgLTI3NzEsMjggKzI3NzEsMjggQEAg
dm9pZCBIVE1MU2VsZWN0RWxlbWVudEltcGw6OnJlY2FsY0xpc3RJdA0KICAgICAgICAgaWYgKGN1
cnJlbnQtPmlkKCkgPT0gSURfT1BUR1JPVVAgJiYgY3VycmVudC0+Zmlyc3RDaGlsZCgpKSB7DQog
ICAgICAgICAgICAgLy8gIyMjIHdoYXQgaWYgb3B0Z3JvdXAgY29udGFpbnMganVzdCBjb21tZW50
cz8gZG9uJ3Qgd2FudCBvbmUgb2Ygbm8gb3B0aW9ucyBpbiBpdC4uLg0KICNpZiBOT0tJQV9DSEFO
R0VTIA0KLQkJCS8vIE9PTSBoYW5kbGluZw0KKyAgICAgICAgICAgIC8vIE9PTSBoYW5kbGluZw0K
ICAgICAgICAgICAgIGlmKCAhbV9saXN0SXRlbXMucmVzaXplKG1fbGlzdEl0ZW1zLnNpemUoKSsx
KSApDQotCQkJew0KLQkJCQltX2xpc3RJdGVtcy5yZXNpemUoIDEgKTsJLy8gYXZvaWQgbm8gb3B0
aW9ucyBpbiBhIHNlbGVjdCBlbGVtZW50DQotCQkJCW1fcmVjYWxjTGlzdEl0ZW1zID0gZmFsc2U7
DQorICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICBtX2xpc3RJdGVtcy5yZXNpemUoIDEg
KTsgICAgLy8gYXZvaWQgbm8gb3B0aW9ucyBpbiBhIHNlbGVjdCBlbGVtZW50DQorICAgICAgICAg
ICAgICAgIG1fcmVjYWxjTGlzdEl0ZW1zID0gZmFsc2U7DQogDQotCQkJCXJldHVybjsNCi0JCQl9
DQorICAgICAgICAgICAgICAgIHJldHVybjsNCisgICAgICAgICAgICB9DQogI2VuZGlmDQogICAg
ICAgICAgICAgbV9saXN0SXRlbXNbbV9saXN0SXRlbXMuc2l6ZSgpLTFdID0gc3RhdGljX2Nhc3Q8
SFRNTEVsZW1lbnRJbXBsKj4oY3VycmVudCk7DQogICAgICAgICAgICAgY3VycmVudCA9IGN1cnJl
bnQtPmZpcnN0Q2hpbGQoKTsNCiAgICAgICAgIH0NCiAgICAgICAgIGlmIChjdXJyZW50LT5pZCgp
ID09IElEX09QVElPTikgew0KICNpZiBOT0tJQV9DSEFOR0VTIA0KLQkJCS8vIE9PTSBoYW5kbGlu
Zw0KKyAgICAgICAgICAgIC8vIE9PTSBoYW5kbGluZw0KICAgICAgICAgICAgIGlmKCAhbV9saXN0
SXRlbXMucmVzaXplKG1fbGlzdEl0ZW1zLnNpemUoKSsxKSApDQotCQkJew0KLQkJCQltX2xpc3RJ
dGVtcy5yZXNpemUoIDEgKTsJLy8gYXZvaWQgbm8gb3B0aW9ucyBpbiBhIHNlbGVjdCBlbGVtZW50
DQotCQkJCW1fcmVjYWxjTGlzdEl0ZW1zID0gZmFsc2U7DQorICAgICAgICAgICAgew0KKyAgICAg
ICAgICAgICAgICBtX2xpc3RJdGVtcy5yZXNpemUoIDEgKTsgICAgLy8gYXZvaWQgbm8gb3B0aW9u
cyBpbiBhIHNlbGVjdCBlbGVtZW50DQorICAgICAgICAgICAgICAgIG1fcmVjYWxjTGlzdEl0ZW1z
ID0gZmFsc2U7DQogDQotCQkJCXJldHVybjsNCi0JCQl9DQorICAgICAgICAgICAgICAgIHJldHVy
bjsNCisgICAgICAgICAgICB9DQogI2VuZGlmDQogICAgICAgICAgICAgbV9saXN0SXRlbXNbbV9s
aXN0SXRlbXMuc2l6ZSgpLTFdID0gc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnRJbXBsKj4oY3VycmVu
dCk7DQogICAgICAgICAgICAgaWYgKCFmb3VuZFNlbGVjdGVkICYmICFtX211bHRpcGxlICYmIG1f
c2l6ZSA8PSAxKSB7DQpAQCAtMzI4NywxOSArMzI4NywxOSBAQCB2b2lkIEhUTUxUZXh0QXJlYUVs
ZW1lbnRJbXBsOjpwYXJzZUhUTUxBDQogICAgICAgICBicmVhazsNCiAgICAgY2FzZSBBVFRSX09O
Rk9DVVM6DQogICAgICAgICBzZXRIVE1MRXZlbnRMaXN0ZW5lcihFdmVudEltcGw6OkZPQ1VTX0VW
RU5ULA0KLQkgICAgZ2V0RG9jdW1lbnQoKS0+Y3JlYXRlSFRNTEV2ZW50TGlzdGVuZXIoYXR0ci0+
dmFsdWUoKS5zdHJpbmcoKSwgdGhpcykpOw0KKyAgICAgICAgZ2V0RG9jdW1lbnQoKS0+Y3JlYXRl
SFRNTEV2ZW50TGlzdGVuZXIoYXR0ci0+dmFsdWUoKS5zdHJpbmcoKSwgdGhpcykpOw0KICAgICAg
ICAgYnJlYWs7DQogICAgIGNhc2UgQVRUUl9PTkJMVVI6DQogICAgICAgICBzZXRIVE1MRXZlbnRM
aXN0ZW5lcihFdmVudEltcGw6OkJMVVJfRVZFTlQsDQotCSAgICBnZXREb2N1bWVudCgpLT5jcmVh
dGVIVE1MRXZlbnRMaXN0ZW5lcihhdHRyLT52YWx1ZSgpLnN0cmluZygpLCB0aGlzKSk7DQorICAg
ICAgICBnZXREb2N1bWVudCgpLT5jcmVhdGVIVE1MRXZlbnRMaXN0ZW5lcihhdHRyLT52YWx1ZSgp
LnN0cmluZygpLCB0aGlzKSk7DQogICAgICAgICBicmVhazsNCiAgICAgY2FzZSBBVFRSX09OU0VM
RUNUOg0KICAgICAgICAgc2V0SFRNTEV2ZW50TGlzdGVuZXIoRXZlbnRJbXBsOjpTRUxFQ1RfRVZF
TlQsDQotCSAgICBnZXREb2N1bWVudCgpLT5jcmVhdGVIVE1MRXZlbnRMaXN0ZW5lcihhdHRyLT52
YWx1ZSgpLnN0cmluZygpLCB0aGlzKSk7DQorICAgICAgICBnZXREb2N1bWVudCgpLT5jcmVhdGVI
VE1MRXZlbnRMaXN0ZW5lcihhdHRyLT52YWx1ZSgpLnN0cmluZygpLCB0aGlzKSk7DQogICAgICAg
ICBicmVhazsNCiAgICAgY2FzZSBBVFRSX09OQ0hBTkdFOg0KICAgICAgICAgc2V0SFRNTEV2ZW50
TGlzdGVuZXIoRXZlbnRJbXBsOjpDSEFOR0VfRVZFTlQsDQotCSAgICBnZXREb2N1bWVudCgpLT5j
cmVhdGVIVE1MRXZlbnRMaXN0ZW5lcihhdHRyLT52YWx1ZSgpLnN0cmluZygpLCB0aGlzKSk7DQor
ICAgICAgICBnZXREb2N1bWVudCgpLT5jcmVhdGVIVE1MRXZlbnRMaXN0ZW5lcihhdHRyLT52YWx1
ZSgpLnN0cmluZygpLCB0aGlzKSk7DQogICAgICAgICBicmVhazsNCiAgICAgZGVmYXVsdDoNCiAg
ICAgICAgIEhUTUxHZW5lcmljRm9ybUVsZW1lbnRJbXBsOjpwYXJzZUhUTUxBdHRyaWJ1dGUoYXR0
cik7DQpAQCAtMzM5Niw3ICszMzk2LDcgQEAgdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50SW1wbDo6
c2V0RGVmYXVsdA0KIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudEltcGw6OmJsdXIoKQ0KIHsNCiAg
ICAgaWYoZ2V0RG9jdW1lbnQoKS0+Zm9jdXNOb2RlKCkgPT0gdGhpcykNCi0JZ2V0RG9jdW1lbnQo
KS0+c2V0Rm9jdXNOb2RlKDApOw0KKyAgICBnZXREb2N1bWVudCgpLT5zZXRGb2N1c05vZGUoMCk7
DQogfQ0KIA0KIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudEltcGw6OmZvY3VzKCkNCkBAIC0zNDU4
LDcgKzM0NTgsNyBAQCB2b2lkIEhUTUxJc0luZGV4RWxlbWVudEltcGw6OnBhcnNlSFRNTEF0DQog
ICAgIHN3aXRjaChhdHRyLT5pZCgpKQ0KICAgICB7DQogICAgIGNhc2UgQVRUUl9QUk9NUFQ6DQot
CXNldFZhbHVlKGF0dHItPnZhbHVlKCkpOw0KKyAgICBzZXRWYWx1ZShhdHRyLT52YWx1ZSgpKTsN
CiAgICAgZGVmYXVsdDoNCiAgICAgICAgIC8vIGRvbid0IGNhbGwgSFRNTElucHV0RWxlbWVudDo6
cGFyc2VIVE1MQXR0cmlidXRlIGhlcmUsIGFzIGl0IHdvdWxkDQogICAgICAgICAvLyBhY2NlcHQg
YXR0cmlidXRlcyB0aGlzIGVsZW1lbnQgZG9lcyBub3Qgc3VwcG9ydA0KSW5kZXg6IFdlYkNvcmUv
a3dxL0tXUUtIVE1MUGFydC5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJDb3JlL2t3cS9LV1FLSFRN
TFBhcnQuY3BwCShyZXZpc2lvbiAxOTI2MykNCisrKyBXZWJDb3JlL2t3cS9LV1FLSFRNTFBhcnQu
Y3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtNzE3LDEyICs3MTcsMTIgQEAgdm9pZCBLV1FLSFRNTFBh
cnQ6OmNsZWFyUmVjb3JkZWRGb3JtVmFsdQ0KIH0NCiANCiAvL3ZvaWQgS1dRS0hUTUxQYXJ0Ojpy
ZWNvcmRGb3JtVmFsdWUoY29uc3QgUVN0cmluZyAmbmFtZSwgY29uc3QgUVN0cmluZyAmdmFsdWUs
IEhUTUxGb3JtRWxlbWVudEltcGwgKmVsZW1lbnQpDQotdm9pZCBLV1FLSFRNTFBhcnQ6OnJlY29y
ZEZvcm1WYWx1ZShjb25zdCBRU3RyaW5nICZuYW1lLCBjb25zdCBRU3RyaW5nICZ2YWx1ZSwgVEJv
b2wgaXNQYXNzd29yZCkNCit2b2lkIEtXUUtIVE1MUGFydDo6cmVjb3JkRm9ybVZhbHVlKGNvbnN0
IFFTdHJpbmcgJm5hbWUsIGNvbnN0IFFTdHJpbmcgJnZhbHVlLCBUQm9vbCBpc1Bhc3N3b3JkLCBU
Qm9vbCBpc0F1dG9Db21wbGV0ZSkNCiB7DQotICAgIFRSQVBfSUdOT1JFKHJlY29yZEZvcm1WYWx1
ZUwobmFtZSwgdmFsdWUsIGlzUGFzc3dvcmQpKTsNCisgICAgVFJBUF9JR05PUkUocmVjb3JkRm9y
bVZhbHVlTChuYW1lLCB2YWx1ZSwgaXNQYXNzd29yZCwgaXNBdXRvQ29tcGxldGUpKTsNCiB9DQog
DQotdm9pZCBLV1FLSFRNTFBhcnQ6OnJlY29yZEZvcm1WYWx1ZUwoY29uc3QgUVN0cmluZyAmbmFt
ZSwgY29uc3QgUVN0cmluZyAmdmFsdWUsIFRCb29sIGlzUGFzc3dvcmQpDQordm9pZCBLV1FLSFRN
TFBhcnQ6OnJlY29yZEZvcm1WYWx1ZUwoY29uc3QgUVN0cmluZyAmbmFtZSwgY29uc3QgUVN0cmlu
ZyAmdmFsdWUsIFRCb29sIGlzUGFzc3dvcmQsIFRCb29sIGlzQXV0b0NvbXBsZXRlKQ0KICAgew0K
ICAgaWYgKCFfZm9ybVZhbHVlc0Fib3V0VG9CZVN1Ym1pdHRlZCkgew0KICAgICBfZm9ybVZhbHVl
c0Fib3V0VG9CZVN1Ym1pdHRlZCA9IG5ldyAoRUxlYXZlKSBDQXJyYXlQdHJGbGF0PENXZWJDb3Jl
Rm9ybURhdGFFbGVtZW50PigyMCk7DQpAQCAtNzMwLDYgKzczMCw3IEBAIHZvaWQgS1dRS0hUTUxQ
YXJ0OjpyZWNvcmRGb3JtVmFsdWVMKGNvbnMNCiANCiAgICAgQ1dlYkNvcmVGb3JtRGF0YUVsZW1l
bnQqIGZEYXRhRWxlbSA9IG5ldyAoRUxlYXZlKSBDV2ViQ29yZUZvcm1EYXRhRWxlbWVudCgpOw0K
ICAgICBmRGF0YUVsZW0tPmlzUGFzc3dvcmQgPSBpc1Bhc3N3b3JkOw0KKyAgICBmRGF0YUVsZW0t
PmlzQXV0b0NvbXBsZXRlID0gaXNBdXRvQ29tcGxldGU7DQogICAgIC8vIGNvcHkgbmFtZSBhbmQg
dmFsdWUgc2luY2UgdGhleSBnZXQgZGVsZXRlZCBiZWZvcmUgYmVpbmcgc2F2ZWQNCiAgICAgZkRh
dGFFbGVtLT5pS2V5ID0gbmFtZS5EZXMoKS5BbGxvY0xDKCk7DQogICBmRGF0YUVsZW0tPmlWYWx1
ZSA9IHZhbHVlLkRlcygpLkFsbG9jTEMoKTsNCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FLSFRNTFBh
cnQuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQ0KLS0tIFdlYkNvcmUva3dxL0tXUUtIVE1MUGFydC5oCShyZXZpc2lv
biAxOTI2MykNCisrKyBXZWJDb3JlL2t3cS9LV1FLSFRNTFBhcnQuaAkod29ya2luZyBjb3B5KQ0K
QEAgLTI1Miw3ICsyNTIsNyBAQCBwdWJsaWM6DQogDQogICAgIHZvaWQgY2xlYXJSZWNvcmRlZEZv
cm1WYWx1ZXMoKTsNCiAgICAgLy92b2lkIHJlY29yZEZvcm1WYWx1ZShjb25zdCBRU3RyaW5nICZu
YW1lLCBjb25zdCBRU3RyaW5nICZ2YWx1ZSwgRE9NOjpIVE1MRm9ybUVsZW1lbnRJbXBsICplbGVt
ZW50KTsNCi0gICAgdm9pZCByZWNvcmRGb3JtVmFsdWUoY29uc3QgUVN0cmluZyAmbmFtZSwgY29u
c3QgUVN0cmluZyAmdmFsdWUsVEJvb2wgaXNQYXNzd29yZCk7DQorICAgIHZvaWQgcmVjb3JkRm9y
bVZhbHVlKGNvbnN0IFFTdHJpbmcgJm5hbWUsIGNvbnN0IFFTdHJpbmcgJnZhbHVlLFRCb29sIGlz
UGFzc3dvcmQsIFRCb29sIGlzQXV0b0NvbXBsZXRlKTsNCiAgICAgRE9NOjpIVE1MRm9ybUVsZW1l
bnRJbXBsICpjdXJyZW50Rm9ybSgpIGNvbnN0Ow0KIA0KIC8vICAgIE5TU3RyaW5nICpzZWFyY2hG
b3JMYWJlbHNBYm92ZUNlbGwoUVJlZ0V4cCAqcmVnRXhwLCBET006OkhUTUxUYWJsZUNlbGxFbGVt
ZW50SW1wbCAqY2VsbCk7DQpAQCAtMzU1LDcgKzM1NSw3IEBAIHByaXZhdGU6DQogDQogICAgIGlu
dCBjYWxjdWxhdGVab29tRmFjdG9yKCkgY29uc3Q7DQogICAvLyBMZWF2aW5nIHZlcnNpb24gb2Yg
dm9pZCByZWNvcmRGb3JtVmFsdWUoY29uc3QgUVN0cmluZyAmbmFtZSwgY29uc3QgUVN0cmluZyAm
dmFsdWUsVEJvb2wgaXNQYXNzd29yZCk7DQotICAgIHZvaWQgcmVjb3JkRm9ybVZhbHVlTChjb25z
dCBRU3RyaW5nICZuYW1lLCBjb25zdCBRU3RyaW5nICZ2YWx1ZSxUQm9vbCBpc1Bhc3N3b3JkKTsN
CisgICAgdm9pZCByZWNvcmRGb3JtVmFsdWVMKGNvbnN0IFFTdHJpbmcgJm5hbWUsIGNvbnN0IFFT
dHJpbmcgJnZhbHVlLFRCb29sIGlzUGFzc3dvcmQsIFRCb29sIGlzQXV0b0NvbXBsZXRlKTsNCiAN
CiAgICAgdmlydHVhbCB2b2lkIGtodG1sTW91c2VQcmVzc0V2ZW50KGtodG1sOjpNb3VzZVByZXNz
RXZlbnQgKik7DQogICAgIHZpcnR1YWwgdm9pZCBraHRtbE1vdXNlRG91YmxlQ2xpY2tFdmVudChr
aHRtbDo6TW91c2VEb3VibGVDbGlja0V2ZW50ICopOw0KSW5kZXg6IFdlYktpdC9DaGFuZ2VMb2cN
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0NCi0tLSBXZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAxOTI2MykNCisrKyBX
ZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpDQpAQCAtMSwzICsxLDI2IEBADQorMjAwNy0w
MS0zMCAgeWFoYXJvbiAgPHlhZWwuYWhhcm9uQG5va2lhLmNvbT4NCisNCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKyAgICAgICAgREVTQzogDQorICAgICAgICBodHRwOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0NCisNCisgICAgICAgICogQnJvd3NlclZp
ZXcvc3JjL0Zvcm1EYXRhQXV0b0ZpbGxTdG9yZS5jcHA6DQorICAgICAgICAoQ0Zvcm1EYXRhQXV0
b0ZpbGxTdG9yZTo6U2F2ZURhdGEpOg0KKyAgICAgICAgKiBCcm93c2VyVmlldy9zcmMvRm9ybURh
dGFMb2dpblN0b3JlLmNwcDoNCisgICAgICAgIChDRm9ybURhdGFMb2dpblN0b3JlOjpTYXZlRGF0
YUwpOg0KKyAgICAgICAgKiBDaGFuZ2VMb2c6DQorDQorMjAwNy0wMS0zMCAgeWFoYXJvbiAgPHlh
ZWwuYWhhcm9uQG5va2lhLmNvbT4NCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLg0KKyAgICAgICAgREVTQzogDQorICAgICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0NCisNCisgICAgICAgICogQnJvd3NlclZpZXcvc3JjL0Zvcm1EYXRhQXV0
b0ZpbGxTdG9yZS5jcHA6DQorICAgICAgICAoQ0Zvcm1EYXRhQXV0b0ZpbGxTdG9yZTo6U2F2ZURh
dGEpOg0KKyAgICAgICAgKiBCcm93c2VyVmlldy9zcmMvRm9ybURhdGFMb2dpblN0b3JlLmNwcDoN
CisgICAgICAgIChDRm9ybURhdGFMb2dpblN0b3JlOjpTYXZlRGF0YUwpOg0KKw0KIDIwMDctMDEt
MzAgIHNhcmVlbiAgPHNoeWFtLnNhcmVlbkBub2tpYS5jb20+DQogDQogICAgICAgICBSZXZpZXdl
ZCBieSB5b25nanVuL2JyYWQuDQpJbmRleDogV2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy9Gb3JtRGF0
YUF1dG9GaWxsU3RvcmUuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0Jyb3dzZXJWaWV3L3Ny
Yy9Gb3JtRGF0YUF1dG9GaWxsU3RvcmUuY3BwCShyZXZpc2lvbiAxOTI2MykNCisrKyBXZWJLaXQv
QnJvd3NlclZpZXcvc3JjL0Zvcm1EYXRhQXV0b0ZpbGxTdG9yZS5jcHAJKHdvcmtpbmcgY29weSkN
CkBAIC0yNzAsNyArMjcwLDcgQEAgdm9pZCBDRm9ybURhdGFBdXRvRmlsbFN0b3JlOjpTYXZlRGF0
YSAoYw0KICAgICBmb3IgKFRJbnQgaSA9IDA7IGkgPCBhRm9ybURhdGEuQ291bnQoKTsgaSsrKQ0K
ICAgICAgICAgew0KICAgICAgICAgY29uc3QgQ1dlYkNvcmVGb3JtRGF0YUVsZW1lbnQqIGVsZW0g
PSBhRm9ybURhdGEuQXQoaSk7DQotICAgICAgICBpZiAoZWxlbS0+aXNQYXNzd29yZCA9PSBFRmFs
c2UgJiYgZWxlbS0+aUtleS0+TGVuZ3RoKCkgPiAwICYmDQorICAgICAgICBpZiAoZWxlbS0+aXNQ
YXNzd29yZCA9PSBFRmFsc2UgJiYgZWxlbS0+aXNBdXRvQ29tcGxldGUgJiYgZWxlbS0+aUtleS0+
TGVuZ3RoKCkgPiAwICYmDQogICAgICAgICAgICAgIGVsZW0tPmlWYWx1ZS0+TGVuZ3RoKCkgPiAw
KQ0KICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAvLyBkZWxldGUgYW5kIHJlLWluc2VydCB3
aWxsIG1ha2Ugc3VyZSB0aGF0IHRoaXMgZW50cnkgd2lsbCBiZSBwbGFjZWQgYXQgdGhlIHRvcCBv
ZiB0aGUgbGlzdA0KSW5kZXg6IFdlYktpdC9Ccm93c2VyVmlldy9zcmMvRm9ybURhdGFMb2dpblN0
b3JlLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9Ccm93c2VyVmlldy9zcmMvRm9ybURhdGFM
b2dpblN0b3JlLmNwcAkocmV2aXNpb24gMTkyNjMpDQorKysgV2ViS2l0L0Jyb3dzZXJWaWV3L3Ny
Yy9Gb3JtRGF0YUxvZ2luU3RvcmUuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtMjk3LDYgKzI5Nyw3
IEBAIHZvaWQgQ0Zvcm1EYXRhTG9naW5TdG9yZTo6U2F2ZURhdGFMIChjb24NCiAgIC8vIGJlZm9y
ZSBzYXZpbmcNCiAgIGlmIChwYXNzd29yZElkeCA+IC0xICYmIGFGb3JtRGF0YS5BdChwYXNzd29y
ZElkeCktPmlWYWx1ZS0+TGVuZ3RoKCk+MCAmJiANCiAgICAgICBsb2dpbklkeCA+IC0xICYmIGFG
b3JtRGF0YS5BdChsb2dpbklkeCktPmlWYWx1ZS0+TGVuZ3RoKCk+MCAmJiANCisgICAgICBhRm9y
bURhdGEuQXQobG9naW5JZHgpLT5pc0F1dG9Db21wbGV0ZSAmJg0KICAgICAgIFNhdmVEaWFsb2dM
KGFVcmwpID09IEVMb2dpbkRhdGFTYXZlWWVzKQ0KICAgICB7DQogICAgIENMb2dpbkRhdGFFbGVt
ZW50KiBlbGVtID0gbmV3IChFTGVhdmUpIENMb2dpbkRhdGFFbGVtZW50KCk7DQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>12808</attachid>
            <date>2007-01-30 13:20:54 -0800</date>
            <delta_ts>2007-01-30 14:02:22 -0800</delta_ts>
            <desc>3.2 patch</desc>
            <filename>MyBrilliantWork.patch</filename>
            <type>text/plain</type>
            <size>19352</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDE5MjY0KQ0KKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
DQpAQCAtMSwzICsxLDE5IEBADQorMjAwNy0wMS0zMCAgeWFoYXJvbiAgPHlhZWwuYWhhcm9uQG5v
a2lhLmNvbT4NCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKyAgICAg
ICAgREVTQzogW1M2MF0gQnVnIElEIE1MSU8tNlhYRVZVOiBCcm93c2VyTkc6IFJlZHVuZGFudCBw
YXNzd29yZCBtYW5hZ2VyIG5vdGlmaWNhdGlvbiBvbiBzZWN1cmUgcGFnZXMNCisgICAgICAgIGh0
dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNDg0DQorDQorICAgICAgICBX
QVJOSU5HOiBOTyBURVNUIENBU0VTIEFEREVEIE9SIENIQU5HRUQNCisNCisgICAgICAgICogYnJp
ZGdlL1dlYkNvcmVGb3JtRGF0YUVsZW1lbnQuaDoNCisgICAgICAgICoga2h0bWwvaHRtbC9odG1s
X2Zvcm1pbXBsLmNwcDoNCisgICAgICAgIChET006OkhUTUxGb3JtRWxlbWVudEltcGw6OnN1Ym1p
dCk6DQorICAgICAgICAqIGt3cS9LV1FLSFRNTFBhcnQuY3BwOg0KKyAgICAgICAgKEtXUUtIVE1M
UGFydDo6cmVjb3JkRm9ybVZhbHVlKToNCisgICAgICAgIChLV1FLSFRNTFBhcnQ6OnJlY29yZEZv
cm1WYWx1ZUwpOg0KKyAgICAgICAgKiBrd3EvS1dRS0hUTUxQYXJ0Lmg6DQorDQogMjAwNy0wMS0y
OSAgYnVqdGFzICA8emJ1anRhc0BnbWFpbC5jb20+DQogDQogICAgICAgICBSZXZpZXdlZCBieSB6
YWxhbiBidWp0YXMNCkluZGV4OiBXZWJDb3JlL2JyaWRnZS9XZWJDb3JlRm9ybURhdGFFbGVtZW50
LmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0NCi0tLSBXZWJDb3JlL2JyaWRnZS9XZWJDb3JlRm9ybURhdGFFbGVtZW50
LmgJKHJldmlzaW9uIDE5MjYzKQ0KKysrIFdlYkNvcmUvYnJpZGdlL1dlYkNvcmVGb3JtRGF0YUVs
ZW1lbnQuaAkod29ya2luZyBjb3B5KQ0KQEAgLTY1LDYgKzY1LDcgQEAgcHVibGljOg0KICAgSEJ1
ZkMqIGlLZXk7DQogICBIQnVmQyogaVZhbHVlOw0KICAgVEJvb2wgaXNQYXNzd29yZDsNCisgIFRC
b29sIGlzQXV0b0NvbXBsZXRlOw0KIA0KIH07DQogDQpJbmRleDogV2ViQ29yZS9raHRtbC9odG1s
L2h0bWxfZm9ybWltcGwuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9raHRtbC9odG1sL2h0
bWxfZm9ybWltcGwuY3BwCShyZXZpc2lvbiAxOTI2MykNCisrKyBXZWJDb3JlL2todG1sL2h0bWwv
aHRtbF9mb3JtaW1wbC5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC0xNTMsOSArMTUzLDkgQEAgdm9p
ZCBIVE1MRm9ybUVsZW1lbnRJbXBsOjphdHRhY2goKQ0KICAgICBIVE1MRWxlbWVudEltcGw6OmF0
dGFjaCgpOw0KIA0KICAgICBpZiAoZ2V0RG9jdW1lbnQoKS0+aXNIVE1MRG9jdW1lbnQoKSkgew0K
LQlIVE1MRG9jdW1lbnRJbXBsICpkb2N1bWVudCA9IHN0YXRpY19jYXN0PEhUTUxEb2N1bWVudElt
cGwgKj4oZ2V0RG9jdW1lbnQoKSk7DQotCWRvY3VtZW50LT5hZGROYW1lZEltYWdlT3JGb3JtKG9s
ZE5hbWVBdHRyKTsNCi0JZG9jdW1lbnQtPmFkZE5hbWVkSW1hZ2VPckZvcm0ob2xkSWRBdHRyKTsN
CisgICAgSFRNTERvY3VtZW50SW1wbCAqZG9jdW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MRG9jdW1l
bnRJbXBsICo+KGdldERvY3VtZW50KCkpOw0KKyAgICBkb2N1bWVudC0+YWRkTmFtZWRJbWFnZU9y
Rm9ybShvbGROYW1lQXR0cik7DQorICAgIGRvY3VtZW50LT5hZGROYW1lZEltYWdlT3JGb3JtKG9s
ZElkQXR0cik7DQogICAgIH0NCiANCiAjaWYgQVBQTEVfQ0hBTkdFUw0KQEAgLTE2OSw5ICsxNjks
OSBAQCB2b2lkIEhUTUxGb3JtRWxlbWVudEltcGw6OmF0dGFjaCgpDQogdm9pZCBIVE1MRm9ybUVs
ZW1lbnRJbXBsOjpkZXRhY2goKQ0KIHsNCiAgICAgaWYgKGdldERvY3VtZW50KCktPmlzSFRNTERv
Y3VtZW50KCkpIHsNCi0JSFRNTERvY3VtZW50SW1wbCAqZG9jdW1lbnQgPSBzdGF0aWNfY2FzdDxI
VE1MRG9jdW1lbnRJbXBsICo+KGdldERvY3VtZW50KCkpOw0KLQlkb2N1bWVudC0+cmVtb3ZlTmFt
ZWRJbWFnZU9yRm9ybShvbGROYW1lQXR0cik7DQotCWRvY3VtZW50LT5yZW1vdmVOYW1lZEltYWdl
T3JGb3JtKG9sZElkQXR0cik7DQorICAgIEhUTUxEb2N1bWVudEltcGwgKmRvY3VtZW50ID0gc3Rh
dGljX2Nhc3Q8SFRNTERvY3VtZW50SW1wbCAqPihnZXREb2N1bWVudCgpKTsNCisgICAgZG9jdW1l
bnQtPnJlbW92ZU5hbWVkSW1hZ2VPckZvcm0ob2xkTmFtZUF0dHIpOw0KKyAgICBkb2N1bWVudC0+
cmVtb3ZlTmFtZWRJbWFnZU9yRm9ybShvbGRJZEF0dHIpOw0KICAgICB9DQogDQogICAgIEhUTUxF
bGVtZW50SW1wbDo6ZGV0YWNoKCk7DQpAQCAtMTgxLDggKzE4MSw4IEBAIGxvbmcgSFRNTEZvcm1F
bGVtZW50SW1wbDo6bGVuZ3RoKCkgY29uc3QNCiB7DQogICAgIGludCBsZW4gPSAwOw0KICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZm9ybUVsZW1lbnRzLmNvdW50KCk7ICsraSkNCi0JaWYg
KGZvcm1FbGVtZW50c1tpXS0+aXNFbnVtZXJhdGFibGUoKSkNCi0JICAgICsrbGVuOw0KKyAgICBp
ZiAoZm9ybUVsZW1lbnRzW2ldLT5pc0VudW1lcmF0YWJsZSgpKQ0KKyAgICAgICAgKytsZW47DQog
DQogICAgIHJldHVybiBsZW47DQogfQ0KQEAgLTUzOCw3ICs1MzgsNyBAQCB2b2lkIEhUTUxGb3Jt
RWxlbWVudEltcGw6OnN1Ym1pdCggYm9vbCBhDQogI2VuZGlmDQogDQogICAgIEhUTUxHZW5lcmlj
Rm9ybUVsZW1lbnRJbXBsKiBmaXJzdFN1Y2Nlc3NmdWxTdWJtaXRCdXR0b24gPSAwOw0KLSAgICBi
b29sIG5lZWRCdXR0b25BY3RpdmF0aW9uID0gYWN0aXZhdGVTdWJtaXRCdXR0b247CS8vIGRvIHdl
IG5lZWQgdG8gYWN0aXZhdGUgYSBzdWJtaXQgYnV0dG9uPw0KKyAgICBib29sIG5lZWRCdXR0b25B
Y3RpdmF0aW9uID0gYWN0aXZhdGVTdWJtaXRCdXR0b247ICAgLy8gZG8gd2UgbmVlZCB0byBhY3Rp
dmF0ZSBhIHN1Ym1pdCBidXR0b24/DQogDQogI2lmIEFQUExFX0NIQU5HRVMNCiAgICAgS1dRKHBh
cnQpLT5jbGVhclJlY29yZGVkRm9ybVZhbHVlcygpOw0KQEAgLTU1Niw3ICs1NTYsNyBAQCB2b2lk
IEhUTUxGb3JtRWxlbWVudEltcGw6OnN1Ym1pdCggYm9vbCBhDQogICAgICAgICAgICAgew0KICAg
ICAgICAgICAgICAgICBLV1EocGFydCktPnJlY29yZEZvcm1WYWx1ZShpbnB1dC0+bmFtZSgpLnN0
cmluZygpLCBpbnB1dC0+dmFsdWUoKS5zdHJpbmcoKSwNCiAjaWZkZWYgTk9LSUFfQ0hBTkdFUw0K
LSAgICAgICAgICAgICAgICAoaW5wdXQtPmlucHV0VHlwZSgpID09ICBIVE1MSW5wdXRFbGVtZW50
SW1wbDo6UEFTU1dPUkQpKTsNCisgICAgICAgICAgICAgICAgKGlucHV0LT5pbnB1dFR5cGUoKSA9
PSAgSFRNTElucHV0RWxlbWVudEltcGw6OlBBU1NXT1JEKSwgaW5wdXQtPmF1dG9Db21wbGV0ZSgp
KTsNCiAjZWxzZQ0KICAgICAgICAgICAgICAgICB0aGlzKTsNCiAjZW5kaWYNCkBAIC02NzgsMzQg
KzY3OCwzNCBAQCB2b2lkIEhUTUxGb3JtRWxlbWVudEltcGw6OnBhcnNlSFRNTEF0dHJpDQogICAg
ICAgICBicmVhazsNCiAgICAgY2FzZSBBVFRSX09OU1VCTUlUOg0KICAgICAgICAgc2V0SFRNTEV2
ZW50TGlzdGVuZXIoRXZlbnRJbXBsOjpTVUJNSVRfRVZFTlQsDQotCSAgICBnZXREb2N1bWVudCgp
LT5jcmVhdGVIVE1MRXZlbnRMaXN0ZW5lcihhdHRyLT52YWx1ZSgpLnN0cmluZygpLCB0aGlzKSk7
DQorICAgICAgICBnZXREb2N1bWVudCgpLT5jcmVhdGVIVE1MRXZlbnRMaXN0ZW5lcihhdHRyLT52
YWx1ZSgpLnN0cmluZygpLCB0aGlzKSk7DQogICAgICAgICBicmVhazsNCiAgICAgY2FzZSBBVFRS
X09OUkVTRVQ6DQogICAgICAgICBzZXRIVE1MRXZlbnRMaXN0ZW5lcihFdmVudEltcGw6OlJFU0VU
X0VWRU5ULA0KLQkgICAgZ2V0RG9jdW1lbnQoKS0+Y3JlYXRlSFRNTEV2ZW50TGlzdGVuZXIoYXR0
ci0+dmFsdWUoKS5zdHJpbmcoKSwgdGhpcykpOw0KKyAgICAgICAgZ2V0RG9jdW1lbnQoKS0+Y3Jl
YXRlSFRNTEV2ZW50TGlzdGVuZXIoYXR0ci0+dmFsdWUoKS5zdHJpbmcoKSwgdGhpcykpOw0KICAg
ICAgICAgYnJlYWs7DQogICAgIGNhc2UgQVRUUl9OQU1FOg0KLQl7DQotCSAgICBRU3RyaW5nIG5l
d05hbWVBdHRyID0gYXR0ci0+dmFsdWUoKS5zdHJpbmcoKTsNCi0JICAgIGlmIChhdHRhY2hlZCgp
ICYmIGdldERvY3VtZW50KCktPmlzSFRNTERvY3VtZW50KCkpIHsNCi0JCUhUTUxEb2N1bWVudElt
cGwgKmRvY3VtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTERvY3VtZW50SW1wbCAqPihnZXREb2N1bWVu
dCgpKTsNCi0JCWRvY3VtZW50LT5yZW1vdmVOYW1lZEltYWdlT3JGb3JtKG9sZE5hbWVBdHRyKTsN
Ci0JCWRvY3VtZW50LT5hZGROYW1lZEltYWdlT3JGb3JtKG5ld05hbWVBdHRyKTsNCi0JICAgIH0N
Ci0JICAgIG9sZE5hbWVBdHRyID0gbmV3TmFtZUF0dHI7DQotCX0NCi0JYnJlYWs7DQorICAgIHsN
CisgICAgICAgIFFTdHJpbmcgbmV3TmFtZUF0dHIgPSBhdHRyLT52YWx1ZSgpLnN0cmluZygpOw0K
KyAgICAgICAgaWYgKGF0dGFjaGVkKCkgJiYgZ2V0RG9jdW1lbnQoKS0+aXNIVE1MRG9jdW1lbnQo
KSkgew0KKyAgICAgICAgSFRNTERvY3VtZW50SW1wbCAqZG9jdW1lbnQgPSBzdGF0aWNfY2FzdDxI
VE1MRG9jdW1lbnRJbXBsICo+KGdldERvY3VtZW50KCkpOw0KKyAgICAgICAgZG9jdW1lbnQtPnJl
bW92ZU5hbWVkSW1hZ2VPckZvcm0ob2xkTmFtZUF0dHIpOw0KKyAgICAgICAgZG9jdW1lbnQtPmFk
ZE5hbWVkSW1hZ2VPckZvcm0obmV3TmFtZUF0dHIpOw0KKyAgICAgICAgfQ0KKyAgICAgICAgb2xk
TmFtZUF0dHIgPSBuZXdOYW1lQXR0cjsNCisgICAgfQ0KKyAgICBicmVhazsNCiAgICAgY2FzZSBB
VFRSX0lEOg0KLQl7DQotCSAgICBRU3RyaW5nIG5ld0lkQXR0ciA9IGF0dHItPnZhbHVlKCkuc3Ry
aW5nKCk7DQotCSAgICBpZiAoYXR0YWNoZWQoKSAmJiBnZXREb2N1bWVudCgpLT5pc0hUTUxEb2N1
bWVudCgpKSB7DQotCQlIVE1MRG9jdW1lbnRJbXBsICpkb2N1bWVudCA9IHN0YXRpY19jYXN0PEhU
TUxEb2N1bWVudEltcGwgKj4oZ2V0RG9jdW1lbnQoKSk7DQotCQlkb2N1bWVudC0+cmVtb3ZlTmFt
ZWRJbWFnZU9yRm9ybShvbGRJZEF0dHIpOw0KLQkJZG9jdW1lbnQtPmFkZE5hbWVkSW1hZ2VPckZv
cm0obmV3SWRBdHRyKTsNCi0JICAgIH0NCi0JICAgIG9sZElkQXR0ciA9IG5ld0lkQXR0cjsNCi0J
fQ0KLQkvLyBmYWxsIHRocm91Z2gNCisgICAgew0KKyAgICAgICAgUVN0cmluZyBuZXdJZEF0dHIg
PSBhdHRyLT52YWx1ZSgpLnN0cmluZygpOw0KKyAgICAgICAgaWYgKGF0dGFjaGVkKCkgJiYgZ2V0
RG9jdW1lbnQoKS0+aXNIVE1MRG9jdW1lbnQoKSkgew0KKyAgICAgICAgSFRNTERvY3VtZW50SW1w
bCAqZG9jdW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MRG9jdW1lbnRJbXBsICo+KGdldERvY3VtZW50
KCkpOw0KKyAgICAgICAgZG9jdW1lbnQtPnJlbW92ZU5hbWVkSW1hZ2VPckZvcm0ob2xkSWRBdHRy
KTsNCisgICAgICAgIGRvY3VtZW50LT5hZGROYW1lZEltYWdlT3JGb3JtKG5ld0lkQXR0cik7DQor
ICAgICAgICB9DQorICAgICAgICBvbGRJZEF0dHIgPSBuZXdJZEF0dHI7DQorICAgIH0NCisgICAg
Ly8gZmFsbCB0aHJvdWdoDQogICAgIGRlZmF1bHQ6DQogICAgICAgICBIVE1MRWxlbWVudEltcGw6
OnBhcnNlSFRNTEF0dHJpYnV0ZShhdHRyKTsNCiAgICAgfQ0KQEAgLTc5MSw5ICs3OTEsOSBAQCBI
VE1MR2VuZXJpY0Zvcm1FbGVtZW50SW1wbDo6SFRNTEdlbmVyaWNGDQogICAgIG1fZG9ybWFudCA9
IGZhbHNlOw0KIA0KICAgICBpZiAoZikNCi0JbV9mb3JtID0gZjsNCisgICAgbV9mb3JtID0gZjsN
CiAgICAgZWxzZQ0KLQltX2Zvcm0gPSBnZXRGb3JtKCk7DQorICAgIG1fZm9ybSA9IGdldEZvcm0o
KTsNCiAgICAgaWYgKG1fZm9ybSkNCiAgICAgICAgIG1fZm9ybS0+cmVnaXN0ZXJGb3JtRWxlbWVu
dCh0aGlzKTsNCiB9DQpAQCAtODM4LDkgKzgzOCw5IEBAIHZvaWQgSFRNTEdlbmVyaWNGb3JtRWxl
bWVudEltcGw6OmF0dGFjaCgNCiAgICAgLy8gaW5zaWRlLCBET00tdHJlZS13aXNlLiBJZiBzbywg
aXQncyBoYXJkIGZvciB1cyB0byBrbm93IHdoZW4gd2Ugc2hvdWxkDQogICAgIC8vIGJlIHJlbW92
ZWQgZnJvbSB0aGF0IGZvcm0ncyBlbGVtZW50IGxpc3QuDQogICAgIGlmICghbV9mb3JtKSB7DQot
CW1fZm9ybSA9IGdldEZvcm0oKTsNCi0JaWYgKG1fZm9ybSkNCi0JICAgIG1fZm9ybS0+cmVnaXN0
ZXJGb3JtRWxlbWVudCh0aGlzKTsNCisgICAgbV9mb3JtID0gZ2V0Rm9ybSgpOw0KKyAgICBpZiAo
bV9mb3JtKQ0KKyAgICAgICAgbV9mb3JtLT5yZWdpc3RlckZvcm1FbGVtZW50KHRoaXMpOw0KICAg
ICB9DQogDQogICAgIEhUTUxFbGVtZW50SW1wbDo6YXR0YWNoKCk7DQpAQCAtOTY2LDggKzk2Niw4
IEBAIGJvb2wgSFRNTEdlbmVyaWNGb3JtRWxlbWVudEltcGw6OmlzS2V5Ym8NCiAgICAgICAgICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyV2lkZ2V0Kj4obV9yZW5kZXIpLT53aWRnZXQoKSAm
Jg0KICAgICAgICAgICAgICAgICAoc3RhdGljX2Nhc3Q8UmVuZGVyV2lkZ2V0Kj4obV9yZW5kZXIp
LT53aWRnZXQoKS0+Zm9jdXNQb2xpY3koKSAmIFFXaWRnZXQ6OlRhYkZvY3VzKTsNCiAgICAgICAg
IH0NCi0JaWYgKGdldERvY3VtZW50KCktPnBhcnQoKSkNCi0JICAgIHJldHVybiBnZXREb2N1bWVu
dCgpLT5wYXJ0KCktPnRhYnNUb0FsbENvbnRyb2xzKCk7DQorICAgIGlmIChnZXREb2N1bWVudCgp
LT5wYXJ0KCkpDQorICAgICAgICByZXR1cm4gZ2V0RG9jdW1lbnQoKS0+cGFydCgpLT50YWJzVG9B
bGxDb250cm9scygpOw0KICAgICB9DQogICAgIHJldHVybiBmYWxzZTsNCiB9DQpAQCAtMTAwNCwy
NyArMTAwNCwyNyBAQCB2b2lkIEhUTUxHZW5lcmljRm9ybUVsZW1lbnRJbXBsOjpkZWZhdWx0DQog
ICAgICAgICB9DQogDQogI2lmIEFQUExFX0NIQU5HRVMNCi0JLy8gV2UgZG9uJ3Qgd2FudCB0aGlz
IGRlZmF1bHQga2V5IGV2ZW50IGhhbmRsaW5nLCB3ZSdsbCBjb3VudCBvbg0KLQkvLyBDb2NvYSBl
dmVudCBkaXNwYXRjaCBpZiB0aGUgZXZlbnQgZG9lc24ndCBnZXQgYmxvY2tlZC4NCisgICAgLy8g
V2UgZG9uJ3Qgd2FudCB0aGlzIGRlZmF1bHQga2V5IGV2ZW50IGhhbmRsaW5nLCB3ZSdsbCBjb3Vu
dCBvbg0KKyAgICAvLyBDb2NvYSBldmVudCBkaXNwYXRjaCBpZiB0aGUgZXZlbnQgZG9lc24ndCBn
ZXQgYmxvY2tlZC4NCiAjZWxzZQ0KLQlpZiAoZXZ0LT5pZCgpPT1FdmVudEltcGw6OktFWURPV05f
RVZFTlQgfHwNCi0JICAgIGV2dC0+aWQoKT09RXZlbnRJbXBsOjpLRVlVUF9FVkVOVCkNCi0Jew0K
LQkgICAgS2V5Ym9hcmRFdmVudEltcGwgKiBrID0gc3RhdGljX2Nhc3Q8S2V5Ym9hcmRFdmVudElt
cGwgKj4oZXZ0KTsNCi0JICAgIGlmIChrLT5rZXlWYWwoKSA9PSBRQ2hhcignXG4nKS51bmljb2Rl
KCkgJiYgbV9yZW5kZXIgJiYgbV9yZW5kZXItPmlzV2lkZ2V0KCkgJiYgay0+cUtleUV2ZW50KQ0K
LQkJUUFwcGxpY2F0aW9uOjpzZW5kRXZlbnQoc3RhdGljX2Nhc3Q8UmVuZGVyV2lkZ2V0ICo+KG1f
cmVuZGVyKS0+d2lkZ2V0KCksIGstPnFLZXlFdmVudCk7DQotCX0NCi0jZW5kaWYNCi0NCi0JaWYg
KGV2dC0+aWQoKT09RXZlbnRJbXBsOjpET01GT0NVU09VVF9FVkVOVCAmJiBpc0VkaXRhYmxlKCkg
JiYgcGFydCAmJiBtX3JlbmRlciAmJiBtX3JlbmRlci0+aXNXaWRnZXQoKSkgew0KLQkgICAgS0hU
TUxQYXJ0QnJvd3NlckV4dGVuc2lvbiAqZXh0ID0gc3RhdGljX2Nhc3Q8S0hUTUxQYXJ0QnJvd3Nl
ckV4dGVuc2lvbiAqPihwYXJ0LT5icm93c2VyRXh0ZW5zaW9uKCkpOw0KLQkgICAgUVdpZGdldCAq
d2lkZ2V0ID0gc3RhdGljX2Nhc3Q8UmVuZGVyV2lkZ2V0Kj4obV9yZW5kZXIpLT53aWRnZXQoKTsN
Ci0JICAgIGlmIChleHQpDQotCQlleHQtPmVkaXRhYmxlV2lkZ2V0Qmx1cnJlZCh3aWRnZXQpOw0K
LQ0KLQkgICAgLy8gIyMjIERvbid0IGNvdW50IHBvcHVwIGFzIGEgdmFsaWQgcmVhc29uIGZvciBs
b3NpbmcgdGhlIGZvY3VzIChleGFtcGxlOiBvcGVuaW5nIHRoZSBvcHRpb25zIG9mIGEgc2VsZWN0
DQotCSAgICAvLyBjb21ib2JveCBzaG91bGRuJ3QgZW1pdCBvbmJsdXIpDQotCX0NCisgICAgaWYg
KGV2dC0+aWQoKT09RXZlbnRJbXBsOjpLRVlET1dOX0VWRU5UIHx8DQorICAgICAgICBldnQtPmlk
KCk9PUV2ZW50SW1wbDo6S0VZVVBfRVZFTlQpDQorICAgIHsNCisgICAgICAgIEtleWJvYXJkRXZl
bnRJbXBsICogayA9IHN0YXRpY19jYXN0PEtleWJvYXJkRXZlbnRJbXBsICo+KGV2dCk7DQorICAg
ICAgICBpZiAoay0+a2V5VmFsKCkgPT0gUUNoYXIoJ1xuJykudW5pY29kZSgpICYmIG1fcmVuZGVy
ICYmIG1fcmVuZGVyLT5pc1dpZGdldCgpICYmIGstPnFLZXlFdmVudCkNCisgICAgICAgIFFBcHBs
aWNhdGlvbjo6c2VuZEV2ZW50KHN0YXRpY19jYXN0PFJlbmRlcldpZGdldCAqPihtX3JlbmRlcikt
PndpZGdldCgpLCBrLT5xS2V5RXZlbnQpOw0KKyAgICB9DQorI2VuZGlmDQorDQorICAgIGlmIChl
dnQtPmlkKCk9PUV2ZW50SW1wbDo6RE9NRk9DVVNPVVRfRVZFTlQgJiYgaXNFZGl0YWJsZSgpICYm
IHBhcnQgJiYgbV9yZW5kZXIgJiYgbV9yZW5kZXItPmlzV2lkZ2V0KCkpIHsNCisgICAgICAgIEtI
VE1MUGFydEJyb3dzZXJFeHRlbnNpb24gKmV4dCA9IHN0YXRpY19jYXN0PEtIVE1MUGFydEJyb3dz
ZXJFeHRlbnNpb24gKj4ocGFydC0+YnJvd3NlckV4dGVuc2lvbigpKTsNCisgICAgICAgIFFXaWRn
ZXQgKndpZGdldCA9IHN0YXRpY19jYXN0PFJlbmRlcldpZGdldCo+KG1fcmVuZGVyKS0+d2lkZ2V0
KCk7DQorICAgICAgICBpZiAoZXh0KQ0KKyAgICAgICAgZXh0LT5lZGl0YWJsZVdpZGdldEJsdXJy
ZWQod2lkZ2V0KTsNCisNCisgICAgICAgIC8vICMjIyBEb24ndCBjb3VudCBwb3B1cCBhcyBhIHZh
bGlkIHJlYXNvbiBmb3IgbG9zaW5nIHRoZSBmb2N1cyAoZXhhbXBsZTogb3BlbmluZyB0aGUgb3B0
aW9ucyBvZiBhIHNlbGVjdA0KKyAgICAgICAgLy8gY29tYm9ib3ggc2hvdWxkbid0IGVtaXQgb25i
bHVyKQ0KKyAgICB9DQogICAgIH0NCiAgICAgSFRNTEVsZW1lbnRJbXBsOjpkZWZhdWx0RXZlbnRI
YW5kbGVyKGV2dCk7DQogfQ0KQEAgLTExMjksNyArMTEyOSw3IEBAIERPTVN0cmluZyBIVE1MQnV0
dG9uRWxlbWVudEltcGw6OnR5cGUoKSANCiB2b2lkIEhUTUxCdXR0b25FbGVtZW50SW1wbDo6Ymx1
cigpDQogew0KICAgICBpZihnZXREb2N1bWVudCgpLT5mb2N1c05vZGUoKSA9PSB0aGlzKQ0KLQln
ZXREb2N1bWVudCgpLT5zZXRGb2N1c05vZGUoMCk7DQorICAgIGdldERvY3VtZW50KCktPnNldEZv
Y3VzTm9kZSgwKTsNCiB9DQogDQogdm9pZCBIVE1MQnV0dG9uRWxlbWVudEltcGw6OmZvY3VzKCkN
CkBAIC0xMzg1LDcgKzEzODUsNyBAQCBET01TdHJpbmcgSFRNTElucHV0RWxlbWVudEltcGw6OnR5
cGUoKSBjDQogDQogUVN0cmluZyBIVE1MSW5wdXRFbGVtZW50SW1wbDo6c3RhdGUoICkNCiB7DQot
ICAgIGFzc2VydChtX3R5cGUgIT0gUEFTU1dPUkQpOwkJLy8gc2hvdWxkIG5ldmVyIHNhdmUvcmVz
dG9yZSBwYXNzd29yZCBmaWVsZHMNCisgICAgYXNzZXJ0KG1fdHlwZSAhPSBQQVNTV09SRCk7ICAg
ICAvLyBzaG91bGQgbmV2ZXIgc2F2ZS9yZXN0b3JlIHBhc3N3b3JkIGZpZWxkcw0KIA0KICAgICBR
U3RyaW5nIHN0YXRlID0gSFRNTEdlbmVyaWNGb3JtRWxlbWVudEltcGw6OnN0YXRlKCk7DQogICAg
IHN3aXRjaCAobV90eXBlKSB7DQpAQCAtMTM5OSw3ICsxMzk5LDcgQEAgUVN0cmluZyBIVE1MSW5w
dXRFbGVtZW50SW1wbDo6c3RhdGUoICkNCiANCiB2b2lkIEhUTUxJbnB1dEVsZW1lbnRJbXBsOjpy
ZXN0b3JlU3RhdGUoUVN0cmluZ0xpc3QgJnN0YXRlcykNCiB7DQotICAgIGFzc2VydChtX3R5cGUg
IT0gUEFTU1dPUkQpOwkJLy8gc2hvdWxkIG5ldmVyIHNhdmUvcmVzdG9yZSBwYXNzd29yZCBmaWVs
ZHMNCisgICAgYXNzZXJ0KG1fdHlwZSAhPSBQQVNTV09SRCk7ICAgICAvLyBzaG91bGQgbmV2ZXIg
c2F2ZS9yZXN0b3JlIHBhc3N3b3JkIGZpZWxkcw0KIA0KICAgICBRU3RyaW5nIHN0YXRlID0gSFRN
TEdlbmVyaWNGb3JtRWxlbWVudEltcGw6OmZpbmRNYXRjaGluZ1N0YXRlKHN0YXRlcyk7DQogICAg
IGlmIChzdGF0ZS5pc051bGwoKSkgcmV0dXJuOw0KQEAgLTIxNzYsNyArMjE3Niw3IEBAIGJvb2wg
SFRNTElucHV0RWxlbWVudEltcGw6OnN0b3Jlc1ZhbHVlU2UNCiB2b2lkIEhUTUxJbnB1dEVsZW1l
bnRJbXBsOjpibHVyKCkNCiB7DQogICAgIGlmKGdldERvY3VtZW50KCktPmZvY3VzTm9kZSgpID09
IHRoaXMpDQotCWdldERvY3VtZW50KCktPnNldEZvY3VzTm9kZSgwKTsNCisgICAgZ2V0RG9jdW1l
bnQoKS0+c2V0Rm9jdXNOb2RlKDApOw0KIH0NCiANCiB2b2lkIEhUTUxJbnB1dEVsZW1lbnRJbXBs
Ojpmb2N1cygpDQpAQCAtMjIwMyw3ICsyMjAzLDcgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50SW1w
bDo6ZGVmYXVsdEV2ZW50SA0KICAgICAgICAgICAgIHhQb3MgPSBtZS0+Y2xpZW50WCgpIC0gb2Zm
c2V0WDsNCiAgICAgICAgICAgICB5UG9zID0gbWUtPmNsaWVudFkoKSAtIG9mZnNldFk7DQogICAg
ICAgICB9DQotCQltZS0+c2V0RGVmYXVsdEhhbmRsZWQoKTsNCisgICAgICAgIG1lLT5zZXREZWZh
dWx0SGFuZGxlZCgpOw0KICAgICB9DQogDQogICAgIC8vIERPTUFjdGl2YXRlIGV2ZW50cyBjYXVz
ZSB0aGUgaW5wdXQgdG8gYmUgImFjdGl2YXRlZCIgLSBpbiB0aGUgY2FzZSBvZiBpbWFnZSBhbmQg
c3VibWl0IGlucHV0cywgdGhpcyBtZWFucw0KQEAgLTI1MTksNyArMjUxOSw3IEBAIHZvaWQgSFRN
TFNlbGVjdEVsZW1lbnRJbXBsOjpyZW1vdmUoIGxvbmcNCiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50
SW1wbDo6Ymx1cigpDQogew0KICAgICBpZihnZXREb2N1bWVudCgpLT5mb2N1c05vZGUoKSA9PSB0
aGlzKQ0KLQlnZXREb2N1bWVudCgpLT5zZXRGb2N1c05vZGUoMCk7DQorICAgIGdldERvY3VtZW50
KCktPnNldEZvY3VzTm9kZSgwKTsNCiB9DQogDQogdm9pZCBIVE1MU2VsZWN0RWxlbWVudEltcGw6
OmZvY3VzKCkNCkBAIC0yNzcxLDI4ICsyNzcxLDI4IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnRJ
bXBsOjpyZWNhbGNMaXN0SXQNCiAgICAgICAgIGlmIChjdXJyZW50LT5pZCgpID09IElEX09QVEdS
T1VQICYmIGN1cnJlbnQtPmZpcnN0Q2hpbGQoKSkgew0KICAgICAgICAgICAgIC8vICMjIyB3aGF0
IGlmIG9wdGdyb3VwIGNvbnRhaW5zIGp1c3QgY29tbWVudHM/IGRvbid0IHdhbnQgb25lIG9mIG5v
IG9wdGlvbnMgaW4gaXQuLi4NCiAjaWYgTk9LSUFfQ0hBTkdFUyANCi0JCQkvLyBPT00gaGFuZGxp
bmcNCisgICAgICAgICAgICAvLyBPT00gaGFuZGxpbmcNCiAgICAgICAgICAgICBpZiggIW1fbGlz
dEl0ZW1zLnJlc2l6ZShtX2xpc3RJdGVtcy5zaXplKCkrMSkgKQ0KLQkJCXsNCi0JCQkJbV9saXN0
SXRlbXMucmVzaXplKCAxICk7CS8vIGF2b2lkIG5vIG9wdGlvbnMgaW4gYSBzZWxlY3QgZWxlbWVu
dA0KLQkJCQltX3JlY2FsY0xpc3RJdGVtcyA9IGZhbHNlOw0KKyAgICAgICAgICAgIHsNCisgICAg
ICAgICAgICAgICAgbV9saXN0SXRlbXMucmVzaXplKCAxICk7ICAgIC8vIGF2b2lkIG5vIG9wdGlv
bnMgaW4gYSBzZWxlY3QgZWxlbWVudA0KKyAgICAgICAgICAgICAgICBtX3JlY2FsY0xpc3RJdGVt
cyA9IGZhbHNlOw0KIA0KLQkJCQlyZXR1cm47DQotCQkJfQ0KKyAgICAgICAgICAgICAgICByZXR1
cm47DQorICAgICAgICAgICAgfQ0KICNlbmRpZg0KICAgICAgICAgICAgIG1fbGlzdEl0ZW1zW21f
bGlzdEl0ZW1zLnNpemUoKS0xXSA9IHN0YXRpY19jYXN0PEhUTUxFbGVtZW50SW1wbCo+KGN1cnJl
bnQpOw0KICAgICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LT5maXJzdENoaWxkKCk7DQogICAg
ICAgICB9DQogICAgICAgICBpZiAoY3VycmVudC0+aWQoKSA9PSBJRF9PUFRJT04pIHsNCiAjaWYg
Tk9LSUFfQ0hBTkdFUyANCi0JCQkvLyBPT00gaGFuZGxpbmcNCisgICAgICAgICAgICAvLyBPT00g
aGFuZGxpbmcNCiAgICAgICAgICAgICBpZiggIW1fbGlzdEl0ZW1zLnJlc2l6ZShtX2xpc3RJdGVt
cy5zaXplKCkrMSkgKQ0KLQkJCXsNCi0JCQkJbV9saXN0SXRlbXMucmVzaXplKCAxICk7CS8vIGF2
b2lkIG5vIG9wdGlvbnMgaW4gYSBzZWxlY3QgZWxlbWVudA0KLQkJCQltX3JlY2FsY0xpc3RJdGVt
cyA9IGZhbHNlOw0KKyAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgbV9saXN0SXRlbXMu
cmVzaXplKCAxICk7ICAgIC8vIGF2b2lkIG5vIG9wdGlvbnMgaW4gYSBzZWxlY3QgZWxlbWVudA0K
KyAgICAgICAgICAgICAgICBtX3JlY2FsY0xpc3RJdGVtcyA9IGZhbHNlOw0KIA0KLQkJCQlyZXR1
cm47DQotCQkJfQ0KKyAgICAgICAgICAgICAgICByZXR1cm47DQorICAgICAgICAgICAgfQ0KICNl
bmRpZg0KICAgICAgICAgICAgIG1fbGlzdEl0ZW1zW21fbGlzdEl0ZW1zLnNpemUoKS0xXSA9IHN0
YXRpY19jYXN0PEhUTUxFbGVtZW50SW1wbCo+KGN1cnJlbnQpOw0KICAgICAgICAgICAgIGlmICgh
Zm91bmRTZWxlY3RlZCAmJiAhbV9tdWx0aXBsZSAmJiBtX3NpemUgPD0gMSkgew0KQEAgLTMyODcs
MTkgKzMyODcsMTkgQEAgdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50SW1wbDo6cGFyc2VIVE1MQQ0K
ICAgICAgICAgYnJlYWs7DQogICAgIGNhc2UgQVRUUl9PTkZPQ1VTOg0KICAgICAgICAgc2V0SFRN
TEV2ZW50TGlzdGVuZXIoRXZlbnRJbXBsOjpGT0NVU19FVkVOVCwNCi0JICAgIGdldERvY3VtZW50
KCktPmNyZWF0ZUhUTUxFdmVudExpc3RlbmVyKGF0dHItPnZhbHVlKCkuc3RyaW5nKCksIHRoaXMp
KTsNCisgICAgICAgIGdldERvY3VtZW50KCktPmNyZWF0ZUhUTUxFdmVudExpc3RlbmVyKGF0dHIt
PnZhbHVlKCkuc3RyaW5nKCksIHRoaXMpKTsNCiAgICAgICAgIGJyZWFrOw0KICAgICBjYXNlIEFU
VFJfT05CTFVSOg0KICAgICAgICAgc2V0SFRNTEV2ZW50TGlzdGVuZXIoRXZlbnRJbXBsOjpCTFVS
X0VWRU5ULA0KLQkgICAgZ2V0RG9jdW1lbnQoKS0+Y3JlYXRlSFRNTEV2ZW50TGlzdGVuZXIoYXR0
ci0+dmFsdWUoKS5zdHJpbmcoKSwgdGhpcykpOw0KKyAgICAgICAgZ2V0RG9jdW1lbnQoKS0+Y3Jl
YXRlSFRNTEV2ZW50TGlzdGVuZXIoYXR0ci0+dmFsdWUoKS5zdHJpbmcoKSwgdGhpcykpOw0KICAg
ICAgICAgYnJlYWs7DQogICAgIGNhc2UgQVRUUl9PTlNFTEVDVDoNCiAgICAgICAgIHNldEhUTUxF
dmVudExpc3RlbmVyKEV2ZW50SW1wbDo6U0VMRUNUX0VWRU5ULA0KLQkgICAgZ2V0RG9jdW1lbnQo
KS0+Y3JlYXRlSFRNTEV2ZW50TGlzdGVuZXIoYXR0ci0+dmFsdWUoKS5zdHJpbmcoKSwgdGhpcykp
Ow0KKyAgICAgICAgZ2V0RG9jdW1lbnQoKS0+Y3JlYXRlSFRNTEV2ZW50TGlzdGVuZXIoYXR0ci0+
dmFsdWUoKS5zdHJpbmcoKSwgdGhpcykpOw0KICAgICAgICAgYnJlYWs7DQogICAgIGNhc2UgQVRU
Ul9PTkNIQU5HRToNCiAgICAgICAgIHNldEhUTUxFdmVudExpc3RlbmVyKEV2ZW50SW1wbDo6Q0hB
TkdFX0VWRU5ULA0KLQkgICAgZ2V0RG9jdW1lbnQoKS0+Y3JlYXRlSFRNTEV2ZW50TGlzdGVuZXIo
YXR0ci0+dmFsdWUoKS5zdHJpbmcoKSwgdGhpcykpOw0KKyAgICAgICAgZ2V0RG9jdW1lbnQoKS0+
Y3JlYXRlSFRNTEV2ZW50TGlzdGVuZXIoYXR0ci0+dmFsdWUoKS5zdHJpbmcoKSwgdGhpcykpOw0K
ICAgICAgICAgYnJlYWs7DQogICAgIGRlZmF1bHQ6DQogICAgICAgICBIVE1MR2VuZXJpY0Zvcm1F
bGVtZW50SW1wbDo6cGFyc2VIVE1MQXR0cmlidXRlKGF0dHIpOw0KQEAgLTMzOTYsNyArMzM5Niw3
IEBAIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudEltcGw6OnNldERlZmF1bHQNCiB2b2lkIEhUTUxU
ZXh0QXJlYUVsZW1lbnRJbXBsOjpibHVyKCkNCiB7DQogICAgIGlmKGdldERvY3VtZW50KCktPmZv
Y3VzTm9kZSgpID09IHRoaXMpDQotCWdldERvY3VtZW50KCktPnNldEZvY3VzTm9kZSgwKTsNCisg
ICAgZ2V0RG9jdW1lbnQoKS0+c2V0Rm9jdXNOb2RlKDApOw0KIH0NCiANCiB2b2lkIEhUTUxUZXh0
QXJlYUVsZW1lbnRJbXBsOjpmb2N1cygpDQpAQCAtMzQ1OCw3ICszNDU4LDcgQEAgdm9pZCBIVE1M
SXNJbmRleEVsZW1lbnRJbXBsOjpwYXJzZUhUTUxBdA0KICAgICBzd2l0Y2goYXR0ci0+aWQoKSkN
CiAgICAgew0KICAgICBjYXNlIEFUVFJfUFJPTVBUOg0KLQlzZXRWYWx1ZShhdHRyLT52YWx1ZSgp
KTsNCisgICAgc2V0VmFsdWUoYXR0ci0+dmFsdWUoKSk7DQogICAgIGRlZmF1bHQ6DQogICAgICAg
ICAvLyBkb24ndCBjYWxsIEhUTUxJbnB1dEVsZW1lbnQ6OnBhcnNlSFRNTEF0dHJpYnV0ZSBoZXJl
LCBhcyBpdCB3b3VsZA0KICAgICAgICAgLy8gYWNjZXB0IGF0dHJpYnV0ZXMgdGhpcyBlbGVtZW50
IGRvZXMgbm90IHN1cHBvcnQNCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FLSFRNTFBhcnQuY3BwDQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09DQotLS0gV2ViQ29yZS9rd3EvS1dRS0hUTUxQYXJ0LmNwcAkocmV2aXNpb24gMTky
NjMpDQorKysgV2ViQ29yZS9rd3EvS1dRS0hUTUxQYXJ0LmNwcAkod29ya2luZyBjb3B5KQ0KQEAg
LTcxOCwxMiArNzE4LDEyIEBAIHZvaWQgS1dRS0hUTUxQYXJ0OjpjbGVhclJlY29yZGVkRm9ybVZh
bHUNCiB9DQogDQogLy92b2lkIEtXUUtIVE1MUGFydDo6cmVjb3JkRm9ybVZhbHVlKGNvbnN0IFFT
dHJpbmcgJm5hbWUsIGNvbnN0IFFTdHJpbmcgJnZhbHVlLCBIVE1MRm9ybUVsZW1lbnRJbXBsICpl
bGVtZW50KQ0KLXZvaWQgS1dRS0hUTUxQYXJ0OjpyZWNvcmRGb3JtVmFsdWUoY29uc3QgUVN0cmlu
ZyAmbmFtZSwgY29uc3QgUVN0cmluZyAmdmFsdWUsIFRCb29sIGlzUGFzc3dvcmQpDQordm9pZCBL
V1FLSFRNTFBhcnQ6OnJlY29yZEZvcm1WYWx1ZShjb25zdCBRU3RyaW5nICZuYW1lLCBjb25zdCBR
U3RyaW5nICZ2YWx1ZSwgVEJvb2wgaXNQYXNzd29yZCwgVEJvb2wgaXNBdXRvQ29tcGxldGUpDQog
ew0KLSAgICBUUkFQX0lHTk9SRShyZWNvcmRGb3JtVmFsdWVMKG5hbWUsIHZhbHVlLCBpc1Bhc3N3
b3JkKSk7DQorICAgIFRSQVBfSUdOT1JFKHJlY29yZEZvcm1WYWx1ZUwobmFtZSwgdmFsdWUsIGlz
UGFzc3dvcmQsIGlzQXV0b0NvbXBsZXRlKSk7DQogfQ0KIA0KLXZvaWQgS1dRS0hUTUxQYXJ0Ojpy
ZWNvcmRGb3JtVmFsdWVMKGNvbnN0IFFTdHJpbmcgJm5hbWUsIGNvbnN0IFFTdHJpbmcgJnZhbHVl
LCBUQm9vbCBpc1Bhc3N3b3JkKQ0KK3ZvaWQgS1dRS0hUTUxQYXJ0OjpyZWNvcmRGb3JtVmFsdWVM
KGNvbnN0IFFTdHJpbmcgJm5hbWUsIGNvbnN0IFFTdHJpbmcgJnZhbHVlLCBUQm9vbCBpc1Bhc3N3
b3JkLCBUQm9vbCBpc0F1dG9Db21wbGV0ZSkNCiAgIHsNCiAgIGlmICghX2Zvcm1WYWx1ZXNBYm91
dFRvQmVTdWJtaXR0ZWQpIHsNCiAgICAgX2Zvcm1WYWx1ZXNBYm91dFRvQmVTdWJtaXR0ZWQgPSBu
ZXcgKEVMZWF2ZSkgQ0FycmF5UHRyRmxhdDxDV2ViQ29yZUZvcm1EYXRhRWxlbWVudD4oMjApOw0K
QEAgLTczMSw2ICs3MzEsNyBAQCB2b2lkIEtXUUtIVE1MUGFydDo6cmVjb3JkRm9ybVZhbHVlTChj
b25zDQogDQogICAgIENXZWJDb3JlRm9ybURhdGFFbGVtZW50KiBmRGF0YUVsZW0gPSBuZXcgKEVM
ZWF2ZSkgQ1dlYkNvcmVGb3JtRGF0YUVsZW1lbnQoKTsNCiAgICAgZkRhdGFFbGVtLT5pc1Bhc3N3
b3JkID0gaXNQYXNzd29yZDsNCisgICAgZkRhdGFFbGVtLT5pc0F1dG9Db21wbGV0ZSA9IGlzQXV0
b0NvbXBsZXRlOw0KICAgICAvLyBjb3B5IG5hbWUgYW5kIHZhbHVlIHNpbmNlIHRoZXkgZ2V0IGRl
bGV0ZWQgYmVmb3JlIGJlaW5nIHNhdmVkDQogICAgIGZEYXRhRWxlbS0+aUtleSA9IG5hbWUuRGVz
KCkuQWxsb2NMQygpOw0KICAgZkRhdGFFbGVtLT5pVmFsdWUgPSB2YWx1ZS5EZXMoKS5BbGxvY0xD
KCk7DQpJbmRleDogV2ViQ29yZS9rd3EvS1dRS0hUTUxQYXJ0LmgNCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBX
ZWJDb3JlL2t3cS9LV1FLSFRNTFBhcnQuaAkocmV2aXNpb24gMTkyNjMpDQorKysgV2ViQ29yZS9r
d3EvS1dRS0hUTUxQYXJ0LmgJKHdvcmtpbmcgY29weSkNCkBAIC0yNjAsNyArMjYwLDcgQEAgcHVi
bGljOg0KIA0KICAgICB2b2lkIGNsZWFyUmVjb3JkZWRGb3JtVmFsdWVzKCk7DQogICAgIC8vdm9p
ZCByZWNvcmRGb3JtVmFsdWUoY29uc3QgUVN0cmluZyAmbmFtZSwgY29uc3QgUVN0cmluZyAmdmFs
dWUsIERPTTo6SFRNTEZvcm1FbGVtZW50SW1wbCAqZWxlbWVudCk7DQotICAgIHZvaWQgcmVjb3Jk
Rm9ybVZhbHVlKGNvbnN0IFFTdHJpbmcgJm5hbWUsIGNvbnN0IFFTdHJpbmcgJnZhbHVlLFRCb29s
IGlzUGFzc3dvcmQpOw0KKyAgICB2b2lkIHJlY29yZEZvcm1WYWx1ZShjb25zdCBRU3RyaW5nICZu
YW1lLCBjb25zdCBRU3RyaW5nICZ2YWx1ZSxUQm9vbCBpc1Bhc3N3b3JkLCBUQm9vbCBpc0F1dG9D
b21wbGV0ZSk7DQogICAgIERPTTo6SFRNTEZvcm1FbGVtZW50SW1wbCAqY3VycmVudEZvcm0oKSBj
b25zdDsNCiANCiAvLyAgICBOU1N0cmluZyAqc2VhcmNoRm9yTGFiZWxzQWJvdmVDZWxsKFFSZWdF
eHAgKnJlZ0V4cCwgRE9NOjpIVE1MVGFibGVDZWxsRWxlbWVudEltcGwgKmNlbGwpOw0KQEAgLTM2
Nyw3ICszNjcsNyBAQCBwcml2YXRlOg0KIA0KICAgICBpbnQgY2FsY3VsYXRlWm9vbUZhY3Rvcigp
IGNvbnN0Ow0KICAgLy8gTGVhdmluZyB2ZXJzaW9uIG9mIHZvaWQgcmVjb3JkRm9ybVZhbHVlKGNv
bnN0IFFTdHJpbmcgJm5hbWUsIGNvbnN0IFFTdHJpbmcgJnZhbHVlLFRCb29sIGlzUGFzc3dvcmQp
Ow0KLSAgICB2b2lkIHJlY29yZEZvcm1WYWx1ZUwoY29uc3QgUVN0cmluZyAmbmFtZSwgY29uc3Qg
UVN0cmluZyAmdmFsdWUsVEJvb2wgaXNQYXNzd29yZCk7DQorICAgIHZvaWQgcmVjb3JkRm9ybVZh
bHVlTChjb25zdCBRU3RyaW5nICZuYW1lLCBjb25zdCBRU3RyaW5nICZ2YWx1ZSxUQm9vbCBpc1Bh
c3N3b3JkLCBUQm9vbCBpc0F1dG9Db21wbGV0ZSk7DQogDQogICAgIHZpcnR1YWwgdm9pZCBraHRt
bE1vdXNlUHJlc3NFdmVudChraHRtbDo6TW91c2VQcmVzc0V2ZW50ICopOw0KICAgICB2aXJ0dWFs
IHZvaWQga2h0bWxNb3VzZURvdWJsZUNsaWNrRXZlbnQoa2h0bWw6Ok1vdXNlRG91YmxlQ2xpY2tF
dmVudCAqKTsNCkluZGV4OiBXZWJLaXQvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0
L0NoYW5nZUxvZwkocmV2aXNpb24gMTkyNjQpDQorKysgV2ViS2l0L0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQ0KQEAgLTEsMyArMSwxNCBAQA0KKzIwMDctMDEtMzAgIHlhaGFyb24gIDx5YWVsLmFo
YXJvbkBub2tpYS5jb20+DQorDQorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4N
CisgICAgICAgIERFU0M6IFtTNjBdIEJ1ZyBJRCBNTElPLTZYWEVWVTogQnJvd3Nlck5HOiBSZWR1
bmRhbnQgcGFzc3dvcmQgbWFuYWdlciBub3RpZmljYXRpb24gb24gc2VjdXJlIHBhZ2VzDQorICAg
ICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQ4NA0KKw0KKyAg
ICAgICAgKiBCcm93c2VyVmlldy9zcmMvRm9ybURhdGFBdXRvRmlsbFN0b3JlLmNwcDoNCisgICAg
ICAgIChDRm9ybURhdGFBdXRvRmlsbFN0b3JlOjpTYXZlRGF0YSk6DQorICAgICAgICAqIEJyb3dz
ZXJWaWV3L3NyYy9Gb3JtRGF0YUxvZ2luU3RvcmUuY3BwOg0KKyAgICAgICAgKENGb3JtRGF0YUxv
Z2luU3RvcmU6OlNhdmVEYXRhTCk6DQorDQogMjAwNy0wMS0zMCAgc2FyZWVuICA8c2h5YW0uc2Fy
ZWVuQG5va2lhLmNvbT4NCiANCiAgICAgICAgIFJldmlld2VkIGJ5IGpvc2VwaC5saWdtYW5Abm9r
aWEuY29tDQpJbmRleDogV2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy9Gb3JtRGF0YUF1dG9GaWxsU3Rv
cmUuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy9Gb3JtRGF0YUF1
dG9GaWxsU3RvcmUuY3BwCShyZXZpc2lvbiAxOTI2MykNCisrKyBXZWJLaXQvQnJvd3NlclZpZXcv
c3JjL0Zvcm1EYXRhQXV0b0ZpbGxTdG9yZS5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC0yODEsNyAr
MjgxLDcgQEAgdm9pZCBDRm9ybURhdGFBdXRvRmlsbFN0b3JlOjpTYXZlRGF0YSAoYw0KICAgICBm
b3IgKFRJbnQgaSA9IDA7IGkgPCBhRm9ybURhdGEuQ291bnQoKTsgaSsrKQ0KICAgICAgICAgew0K
ICAgICAgICAgY29uc3QgQ1dlYkNvcmVGb3JtRGF0YUVsZW1lbnQqIGVsZW0gPSBhRm9ybURhdGEu
QXQoaSk7DQotICAgICAgICBpZiAoIGVsZW0tPmlzUGFzc3dvcmQgPT0gRUZhbHNlIA0KKyAgICAg
ICAgaWYgKCBlbGVtLT5pc1Bhc3N3b3JkID09IEVGYWxzZSAmJiBlbGVtLT5pc0F1dG9Db21wbGV0
ZQ0KICAgICAgICAgICAgICYmIGVsZW0tPmlLZXktPkxlbmd0aCgpID4gMCANCiAgICAgICAgICAg
ICAmJiBlbGVtLT5pVmFsdWUtPkxlbmd0aCgpID4gMCApDQogICAgICAgICAgICAgew0KSW5kZXg6
IFdlYktpdC9Ccm93c2VyVmlldy9zcmMvRm9ybURhdGFMb2dpblN0b3JlLmNwcA0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQ0KLS0tIFdlYktpdC9Ccm93c2VyVmlldy9zcmMvRm9ybURhdGFMb2dpblN0b3JlLmNwcAkocmV2
aXNpb24gMTkyNjMpDQorKysgV2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy9Gb3JtRGF0YUxvZ2luU3Rv
cmUuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtMjk3LDYgKzI5Nyw3IEBAIHZvaWQgQ0Zvcm1EYXRh
TG9naW5TdG9yZTo6U2F2ZURhdGFMIChjb24NCiAgIC8vIGJlZm9yZSBzYXZpbmcNCiAgIGlmIChw
YXNzd29yZElkeCA+IC0xICYmIGFGb3JtRGF0YS5BdChwYXNzd29yZElkeCktPmlWYWx1ZS0+TGVu
Z3RoKCk+MCAmJiANCiAgICAgICBsb2dpbklkeCA+IC0xICYmIGFGb3JtRGF0YS5BdChsb2dpbklk
eCktPmlWYWx1ZS0+TGVuZ3RoKCk+MCAmJiANCisgICAgICBhRm9ybURhdGEuQXQobG9naW5JZHgp
LT5pc0F1dG9Db21wbGV0ZSAmJg0KICAgICAgIFNhdmVEaWFsb2dMKGFVcmwpID09IEVMb2dpbkRh
dGFTYXZlWWVzKQ0KICAgICB7DQogICAgIENMb2dpbkRhdGFFbGVtZW50KiBlbGVtID0gbmV3IChF
TGVhdmUpIENMb2dpbkRhdGFFbGVtZW50KCk7DQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>12809</attachid>
            <date>2007-01-30 13:56:51 -0800</date>
            <delta_ts>2007-01-30 17:46:28 -0800</delta_ts>
            <desc>3.1 patch</desc>
            <filename>12484-3.1.patch</filename>
            <type>text/plain</type>
            <size>19492</size>
            <attacher name="Bradley Morrison">bradley.morrison</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDE5MTgwKQ0KKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
DQpAQCAtMSwzICsxLDIwIEBADQorMjAwNy0wMS0zMCAgeWFoYXJvbiAgPHlhZWwuYWhhcm9uQG5v
a2lhLmNvbT4NCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKyAgICAg
ICAgREVTQzogW1M2MF0gQnVnIElEIE1MSU8tNlhYRVZVOiBCcm93c2VyTkc6IFJlZHVuZGFudCBw
YXNzd29yZCBtYW5hZ2VyIG5vdGlmaWNhdGlvbiBvbiBzZWN1cmUgcGFnZXMNCisgICAgICAgIGh0
dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNDg0DQorDQorICAgICAgICBX
QVJOSU5HOiBOTyBURVNUIENBU0VTIEFEREVEIE9SIENIQU5HRUQNCisNCisgICAgICAgICogQ2hh
bmdlTG9nOg0KKyAgICAgICAgKiBicmlkZ2UvV2ViQ29yZUZvcm1EYXRhRWxlbWVudC5oOg0KKyAg
ICAgICAgKiBraHRtbC9odG1sL2h0bWxfZm9ybWltcGwuY3BwOg0KKyAgICAgICAgKERPTTo6SFRN
TEZvcm1FbGVtZW50SW1wbDo6c3VibWl0KToNCisgICAgICAgICoga3dxL0tXUUtIVE1MUGFydC5j
cHA6DQorICAgICAgICAoS1dRS0hUTUxQYXJ0OjpyZWNvcmRGb3JtVmFsdWUpOg0KKyAgICAgICAg
KEtXUUtIVE1MUGFydDo6cmVjb3JkRm9ybVZhbHVlTCk6DQorICAgICAgICAqIGt3cS9LV1FLSFRN
TFBhcnQuaDoNCisNCiAyMDA3LTAxLTI2ICBidWp0YXMgIDx6YnVqdGFzQGdtYWlsLmNvbT4NCiAN
CiAgICAgICAgIFJzJ2QgYnkgQnJhZC4NCkluZGV4OiBXZWJDb3JlL2JyaWRnZS9XZWJDb3JlRm9y
bURhdGFFbGVtZW50LmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJDb3JlL2JyaWRnZS9XZWJDb3JlRm9y
bURhdGFFbGVtZW50LmgJKHJldmlzaW9uIDE5MDUwKQ0KKysrIFdlYkNvcmUvYnJpZGdlL1dlYkNv
cmVGb3JtRGF0YUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQ0KQEAgLTY1LDYgKzY1LDcgQEAgcHVi
bGljOg0KICAgSEJ1ZkMqIGlLZXk7DQogICBIQnVmQyogaVZhbHVlOw0KICAgVEJvb2wgaXNQYXNz
d29yZDsNCisgIFRCb29sIGlzQXV0b0NvbXBsZXRlOw0KIA0KIH07DQogDQpJbmRleDogV2ViQ29y
ZS9raHRtbC9odG1sL2h0bWxfZm9ybWltcGwuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9r
aHRtbC9odG1sL2h0bWxfZm9ybWltcGwuY3BwCShyZXZpc2lvbiAxOTA1MCkNCisrKyBXZWJDb3Jl
L2todG1sL2h0bWwvaHRtbF9mb3JtaW1wbC5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC0xNTMsOSAr
MTUzLDkgQEAgdm9pZCBIVE1MRm9ybUVsZW1lbnRJbXBsOjphdHRhY2goKQ0KICAgICBIVE1MRWxl
bWVudEltcGw6OmF0dGFjaCgpOw0KIA0KICAgICBpZiAoZ2V0RG9jdW1lbnQoKS0+aXNIVE1MRG9j
dW1lbnQoKSkgew0KLQlIVE1MRG9jdW1lbnRJbXBsICpkb2N1bWVudCA9IHN0YXRpY19jYXN0PEhU
TUxEb2N1bWVudEltcGwgKj4oZ2V0RG9jdW1lbnQoKSk7DQotCWRvY3VtZW50LT5hZGROYW1lZElt
YWdlT3JGb3JtKG9sZE5hbWVBdHRyKTsNCi0JZG9jdW1lbnQtPmFkZE5hbWVkSW1hZ2VPckZvcm0o
b2xkSWRBdHRyKTsNCisgICAgSFRNTERvY3VtZW50SW1wbCAqZG9jdW1lbnQgPSBzdGF0aWNfY2Fz
dDxIVE1MRG9jdW1lbnRJbXBsICo+KGdldERvY3VtZW50KCkpOw0KKyAgICBkb2N1bWVudC0+YWRk
TmFtZWRJbWFnZU9yRm9ybShvbGROYW1lQXR0cik7DQorICAgIGRvY3VtZW50LT5hZGROYW1lZElt
YWdlT3JGb3JtKG9sZElkQXR0cik7DQogICAgIH0NCiANCiAjaWYgQVBQTEVfQ0hBTkdFUw0KQEAg
LTE2OSw5ICsxNjksOSBAQCB2b2lkIEhUTUxGb3JtRWxlbWVudEltcGw6OmF0dGFjaCgpDQogdm9p
ZCBIVE1MRm9ybUVsZW1lbnRJbXBsOjpkZXRhY2goKQ0KIHsNCiAgICAgaWYgKGdldERvY3VtZW50
KCktPmlzSFRNTERvY3VtZW50KCkpIHsNCi0JSFRNTERvY3VtZW50SW1wbCAqZG9jdW1lbnQgPSBz
dGF0aWNfY2FzdDxIVE1MRG9jdW1lbnRJbXBsICo+KGdldERvY3VtZW50KCkpOw0KLQlkb2N1bWVu
dC0+cmVtb3ZlTmFtZWRJbWFnZU9yRm9ybShvbGROYW1lQXR0cik7DQotCWRvY3VtZW50LT5yZW1v
dmVOYW1lZEltYWdlT3JGb3JtKG9sZElkQXR0cik7DQorICAgIEhUTUxEb2N1bWVudEltcGwgKmRv
Y3VtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTERvY3VtZW50SW1wbCAqPihnZXREb2N1bWVudCgpKTsN
CisgICAgZG9jdW1lbnQtPnJlbW92ZU5hbWVkSW1hZ2VPckZvcm0ob2xkTmFtZUF0dHIpOw0KKyAg
ICBkb2N1bWVudC0+cmVtb3ZlTmFtZWRJbWFnZU9yRm9ybShvbGRJZEF0dHIpOw0KICAgICB9DQog
DQogICAgIEhUTUxFbGVtZW50SW1wbDo6ZGV0YWNoKCk7DQpAQCAtMTgxLDggKzE4MSw4IEBAIGxv
bmcgSFRNTEZvcm1FbGVtZW50SW1wbDo6bGVuZ3RoKCkgY29uc3QNCiB7DQogICAgIGludCBsZW4g
PSAwOw0KICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZm9ybUVsZW1lbnRzLmNvdW50KCk7
ICsraSkNCi0JaWYgKGZvcm1FbGVtZW50c1tpXS0+aXNFbnVtZXJhdGFibGUoKSkNCi0JICAgICsr
bGVuOw0KKyAgICBpZiAoZm9ybUVsZW1lbnRzW2ldLT5pc0VudW1lcmF0YWJsZSgpKQ0KKyAgICAg
ICAgKytsZW47DQogDQogICAgIHJldHVybiBsZW47DQogfQ0KQEAgLTUzOCw3ICs1MzgsNyBAQCB2
b2lkIEhUTUxGb3JtRWxlbWVudEltcGw6OnN1Ym1pdCggYm9vbCBhDQogI2VuZGlmDQogDQogICAg
IEhUTUxHZW5lcmljRm9ybUVsZW1lbnRJbXBsKiBmaXJzdFN1Y2Nlc3NmdWxTdWJtaXRCdXR0b24g
PSAwOw0KLSAgICBib29sIG5lZWRCdXR0b25BY3RpdmF0aW9uID0gYWN0aXZhdGVTdWJtaXRCdXR0
b247CS8vIGRvIHdlIG5lZWQgdG8gYWN0aXZhdGUgYSBzdWJtaXQgYnV0dG9uPw0KKyAgICBib29s
IG5lZWRCdXR0b25BY3RpdmF0aW9uID0gYWN0aXZhdGVTdWJtaXRCdXR0b247ICAgLy8gZG8gd2Ug
bmVlZCB0byBhY3RpdmF0ZSBhIHN1Ym1pdCBidXR0b24/DQogDQogI2lmIEFQUExFX0NIQU5HRVMN
CiAgICAgS1dRKHBhcnQpLT5jbGVhclJlY29yZGVkRm9ybVZhbHVlcygpOw0KQEAgLTU1Niw3ICs1
NTYsNyBAQCB2b2lkIEhUTUxGb3JtRWxlbWVudEltcGw6OnN1Ym1pdCggYm9vbCBhDQogICAgICAg
ICAgICAgew0KICAgICAgICAgICAgICAgICBLV1EocGFydCktPnJlY29yZEZvcm1WYWx1ZShpbnB1
dC0+bmFtZSgpLnN0cmluZygpLCBpbnB1dC0+dmFsdWUoKS5zdHJpbmcoKSwNCiAjaWZkZWYgTk9L
SUFfQ0hBTkdFUw0KLSAgICAgICAgICAgICAgICAoaW5wdXQtPmlucHV0VHlwZSgpID09ICBIVE1M
SW5wdXRFbGVtZW50SW1wbDo6UEFTU1dPUkQpKTsNCisgICAgICAgICAgICAgICAgKGlucHV0LT5p
bnB1dFR5cGUoKSA9PSAgSFRNTElucHV0RWxlbWVudEltcGw6OlBBU1NXT1JEKSwgaW5wdXQtPmF1
dG9Db21wbGV0ZSgpKTsNCiAjZWxzZQ0KICAgICAgICAgICAgICAgICB0aGlzKTsNCiAjZW5kaWYN
CkBAIC02NzgsMzQgKzY3OCwzNCBAQCB2b2lkIEhUTUxGb3JtRWxlbWVudEltcGw6OnBhcnNlSFRN
TEF0dHJpDQogICAgICAgICBicmVhazsNCiAgICAgY2FzZSBBVFRSX09OU1VCTUlUOg0KICAgICAg
ICAgc2V0SFRNTEV2ZW50TGlzdGVuZXIoRXZlbnRJbXBsOjpTVUJNSVRfRVZFTlQsDQotCSAgICBn
ZXREb2N1bWVudCgpLT5jcmVhdGVIVE1MRXZlbnRMaXN0ZW5lcihhdHRyLT52YWx1ZSgpLnN0cmlu
ZygpLCB0aGlzKSk7DQorICAgICAgICBnZXREb2N1bWVudCgpLT5jcmVhdGVIVE1MRXZlbnRMaXN0
ZW5lcihhdHRyLT52YWx1ZSgpLnN0cmluZygpLCB0aGlzKSk7DQogICAgICAgICBicmVhazsNCiAg
ICAgY2FzZSBBVFRSX09OUkVTRVQ6DQogICAgICAgICBzZXRIVE1MRXZlbnRMaXN0ZW5lcihFdmVu
dEltcGw6OlJFU0VUX0VWRU5ULA0KLQkgICAgZ2V0RG9jdW1lbnQoKS0+Y3JlYXRlSFRNTEV2ZW50
TGlzdGVuZXIoYXR0ci0+dmFsdWUoKS5zdHJpbmcoKSwgdGhpcykpOw0KKyAgICAgICAgZ2V0RG9j
dW1lbnQoKS0+Y3JlYXRlSFRNTEV2ZW50TGlzdGVuZXIoYXR0ci0+dmFsdWUoKS5zdHJpbmcoKSwg
dGhpcykpOw0KICAgICAgICAgYnJlYWs7DQogICAgIGNhc2UgQVRUUl9OQU1FOg0KLQl7DQotCSAg
ICBRU3RyaW5nIG5ld05hbWVBdHRyID0gYXR0ci0+dmFsdWUoKS5zdHJpbmcoKTsNCi0JICAgIGlm
IChhdHRhY2hlZCgpICYmIGdldERvY3VtZW50KCktPmlzSFRNTERvY3VtZW50KCkpIHsNCi0JCUhU
TUxEb2N1bWVudEltcGwgKmRvY3VtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTERvY3VtZW50SW1wbCAq
PihnZXREb2N1bWVudCgpKTsNCi0JCWRvY3VtZW50LT5yZW1vdmVOYW1lZEltYWdlT3JGb3JtKG9s
ZE5hbWVBdHRyKTsNCi0JCWRvY3VtZW50LT5hZGROYW1lZEltYWdlT3JGb3JtKG5ld05hbWVBdHRy
KTsNCi0JICAgIH0NCi0JICAgIG9sZE5hbWVBdHRyID0gbmV3TmFtZUF0dHI7DQotCX0NCi0JYnJl
YWs7DQorICAgIHsNCisgICAgICAgIFFTdHJpbmcgbmV3TmFtZUF0dHIgPSBhdHRyLT52YWx1ZSgp
LnN0cmluZygpOw0KKyAgICAgICAgaWYgKGF0dGFjaGVkKCkgJiYgZ2V0RG9jdW1lbnQoKS0+aXNI
VE1MRG9jdW1lbnQoKSkgew0KKyAgICAgICAgSFRNTERvY3VtZW50SW1wbCAqZG9jdW1lbnQgPSBz
dGF0aWNfY2FzdDxIVE1MRG9jdW1lbnRJbXBsICo+KGdldERvY3VtZW50KCkpOw0KKyAgICAgICAg
ZG9jdW1lbnQtPnJlbW92ZU5hbWVkSW1hZ2VPckZvcm0ob2xkTmFtZUF0dHIpOw0KKyAgICAgICAg
ZG9jdW1lbnQtPmFkZE5hbWVkSW1hZ2VPckZvcm0obmV3TmFtZUF0dHIpOw0KKyAgICAgICAgfQ0K
KyAgICAgICAgb2xkTmFtZUF0dHIgPSBuZXdOYW1lQXR0cjsNCisgICAgfQ0KKyAgICBicmVhazsN
CiAgICAgY2FzZSBBVFRSX0lEOg0KLQl7DQotCSAgICBRU3RyaW5nIG5ld0lkQXR0ciA9IGF0dHIt
PnZhbHVlKCkuc3RyaW5nKCk7DQotCSAgICBpZiAoYXR0YWNoZWQoKSAmJiBnZXREb2N1bWVudCgp
LT5pc0hUTUxEb2N1bWVudCgpKSB7DQotCQlIVE1MRG9jdW1lbnRJbXBsICpkb2N1bWVudCA9IHN0
YXRpY19jYXN0PEhUTUxEb2N1bWVudEltcGwgKj4oZ2V0RG9jdW1lbnQoKSk7DQotCQlkb2N1bWVu
dC0+cmVtb3ZlTmFtZWRJbWFnZU9yRm9ybShvbGRJZEF0dHIpOw0KLQkJZG9jdW1lbnQtPmFkZE5h
bWVkSW1hZ2VPckZvcm0obmV3SWRBdHRyKTsNCi0JICAgIH0NCi0JICAgIG9sZElkQXR0ciA9IG5l
d0lkQXR0cjsNCi0JfQ0KLQkvLyBmYWxsIHRocm91Z2gNCisgICAgew0KKyAgICAgICAgUVN0cmlu
ZyBuZXdJZEF0dHIgPSBhdHRyLT52YWx1ZSgpLnN0cmluZygpOw0KKyAgICAgICAgaWYgKGF0dGFj
aGVkKCkgJiYgZ2V0RG9jdW1lbnQoKS0+aXNIVE1MRG9jdW1lbnQoKSkgew0KKyAgICAgICAgSFRN
TERvY3VtZW50SW1wbCAqZG9jdW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MRG9jdW1lbnRJbXBsICo+
KGdldERvY3VtZW50KCkpOw0KKyAgICAgICAgZG9jdW1lbnQtPnJlbW92ZU5hbWVkSW1hZ2VPckZv
cm0ob2xkSWRBdHRyKTsNCisgICAgICAgIGRvY3VtZW50LT5hZGROYW1lZEltYWdlT3JGb3JtKG5l
d0lkQXR0cik7DQorICAgICAgICB9DQorICAgICAgICBvbGRJZEF0dHIgPSBuZXdJZEF0dHI7DQor
ICAgIH0NCisgICAgLy8gZmFsbCB0aHJvdWdoDQogICAgIGRlZmF1bHQ6DQogICAgICAgICBIVE1M
RWxlbWVudEltcGw6OnBhcnNlSFRNTEF0dHJpYnV0ZShhdHRyKTsNCiAgICAgfQ0KQEAgLTc5MSw5
ICs3OTEsOSBAQCBIVE1MR2VuZXJpY0Zvcm1FbGVtZW50SW1wbDo6SFRNTEdlbmVyaWNGDQogICAg
IG1fZG9ybWFudCA9IGZhbHNlOw0KIA0KICAgICBpZiAoZikNCi0JbV9mb3JtID0gZjsNCisgICAg
bV9mb3JtID0gZjsNCiAgICAgZWxzZQ0KLQltX2Zvcm0gPSBnZXRGb3JtKCk7DQorICAgIG1fZm9y
bSA9IGdldEZvcm0oKTsNCiAgICAgaWYgKG1fZm9ybSkNCiAgICAgICAgIG1fZm9ybS0+cmVnaXN0
ZXJGb3JtRWxlbWVudCh0aGlzKTsNCiB9DQpAQCAtODM4LDkgKzgzOCw5IEBAIHZvaWQgSFRNTEdl
bmVyaWNGb3JtRWxlbWVudEltcGw6OmF0dGFjaCgNCiAgICAgLy8gaW5zaWRlLCBET00tdHJlZS13
aXNlLiBJZiBzbywgaXQncyBoYXJkIGZvciB1cyB0byBrbm93IHdoZW4gd2Ugc2hvdWxkDQogICAg
IC8vIGJlIHJlbW92ZWQgZnJvbSB0aGF0IGZvcm0ncyBlbGVtZW50IGxpc3QuDQogICAgIGlmICgh
bV9mb3JtKSB7DQotCW1fZm9ybSA9IGdldEZvcm0oKTsNCi0JaWYgKG1fZm9ybSkNCi0JICAgIG1f
Zm9ybS0+cmVnaXN0ZXJGb3JtRWxlbWVudCh0aGlzKTsNCisgICAgbV9mb3JtID0gZ2V0Rm9ybSgp
Ow0KKyAgICBpZiAobV9mb3JtKQ0KKyAgICAgICAgbV9mb3JtLT5yZWdpc3RlckZvcm1FbGVtZW50
KHRoaXMpOw0KICAgICB9DQogDQogICAgIEhUTUxFbGVtZW50SW1wbDo6YXR0YWNoKCk7DQpAQCAt
OTY2LDggKzk2Niw4IEBAIGJvb2wgSFRNTEdlbmVyaWNGb3JtRWxlbWVudEltcGw6OmlzS2V5Ym8N
CiAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyV2lkZ2V0Kj4obV9yZW5kZXIp
LT53aWRnZXQoKSAmJg0KICAgICAgICAgICAgICAgICAoc3RhdGljX2Nhc3Q8UmVuZGVyV2lkZ2V0
Kj4obV9yZW5kZXIpLT53aWRnZXQoKS0+Zm9jdXNQb2xpY3koKSAmIFFXaWRnZXQ6OlRhYkZvY3Vz
KTsNCiAgICAgICAgIH0NCi0JaWYgKGdldERvY3VtZW50KCktPnBhcnQoKSkNCi0JICAgIHJldHVy
biBnZXREb2N1bWVudCgpLT5wYXJ0KCktPnRhYnNUb0FsbENvbnRyb2xzKCk7DQorICAgIGlmIChn
ZXREb2N1bWVudCgpLT5wYXJ0KCkpDQorICAgICAgICByZXR1cm4gZ2V0RG9jdW1lbnQoKS0+cGFy
dCgpLT50YWJzVG9BbGxDb250cm9scygpOw0KICAgICB9DQogICAgIHJldHVybiBmYWxzZTsNCiB9
DQpAQCAtMTAwNCwyNyArMTAwNCwyNyBAQCB2b2lkIEhUTUxHZW5lcmljRm9ybUVsZW1lbnRJbXBs
OjpkZWZhdWx0DQogICAgICAgICB9DQogDQogI2lmIEFQUExFX0NIQU5HRVMNCi0JLy8gV2UgZG9u
J3Qgd2FudCB0aGlzIGRlZmF1bHQga2V5IGV2ZW50IGhhbmRsaW5nLCB3ZSdsbCBjb3VudCBvbg0K
LQkvLyBDb2NvYSBldmVudCBkaXNwYXRjaCBpZiB0aGUgZXZlbnQgZG9lc24ndCBnZXQgYmxvY2tl
ZC4NCisgICAgLy8gV2UgZG9uJ3Qgd2FudCB0aGlzIGRlZmF1bHQga2V5IGV2ZW50IGhhbmRsaW5n
LCB3ZSdsbCBjb3VudCBvbg0KKyAgICAvLyBDb2NvYSBldmVudCBkaXNwYXRjaCBpZiB0aGUgZXZl
bnQgZG9lc24ndCBnZXQgYmxvY2tlZC4NCiAjZWxzZQ0KLQlpZiAoZXZ0LT5pZCgpPT1FdmVudElt
cGw6OktFWURPV05fRVZFTlQgfHwNCi0JICAgIGV2dC0+aWQoKT09RXZlbnRJbXBsOjpLRVlVUF9F
VkVOVCkNCi0Jew0KLQkgICAgS2V5Ym9hcmRFdmVudEltcGwgKiBrID0gc3RhdGljX2Nhc3Q8S2V5
Ym9hcmRFdmVudEltcGwgKj4oZXZ0KTsNCi0JICAgIGlmIChrLT5rZXlWYWwoKSA9PSBRQ2hhcign
XG4nKS51bmljb2RlKCkgJiYgbV9yZW5kZXIgJiYgbV9yZW5kZXItPmlzV2lkZ2V0KCkgJiYgay0+
cUtleUV2ZW50KQ0KLQkJUUFwcGxpY2F0aW9uOjpzZW5kRXZlbnQoc3RhdGljX2Nhc3Q8UmVuZGVy
V2lkZ2V0ICo+KG1fcmVuZGVyKS0+d2lkZ2V0KCksIGstPnFLZXlFdmVudCk7DQotCX0NCi0jZW5k
aWYNCi0NCi0JaWYgKGV2dC0+aWQoKT09RXZlbnRJbXBsOjpET01GT0NVU09VVF9FVkVOVCAmJiBp
c0VkaXRhYmxlKCkgJiYgcGFydCAmJiBtX3JlbmRlciAmJiBtX3JlbmRlci0+aXNXaWRnZXQoKSkg
ew0KLQkgICAgS0hUTUxQYXJ0QnJvd3NlckV4dGVuc2lvbiAqZXh0ID0gc3RhdGljX2Nhc3Q8S0hU
TUxQYXJ0QnJvd3NlckV4dGVuc2lvbiAqPihwYXJ0LT5icm93c2VyRXh0ZW5zaW9uKCkpOw0KLQkg
ICAgUVdpZGdldCAqd2lkZ2V0ID0gc3RhdGljX2Nhc3Q8UmVuZGVyV2lkZ2V0Kj4obV9yZW5kZXIp
LT53aWRnZXQoKTsNCi0JICAgIGlmIChleHQpDQotCQlleHQtPmVkaXRhYmxlV2lkZ2V0Qmx1cnJl
ZCh3aWRnZXQpOw0KLQ0KLQkgICAgLy8gIyMjIERvbid0IGNvdW50IHBvcHVwIGFzIGEgdmFsaWQg
cmVhc29uIGZvciBsb3NpbmcgdGhlIGZvY3VzIChleGFtcGxlOiBvcGVuaW5nIHRoZSBvcHRpb25z
IG9mIGEgc2VsZWN0DQotCSAgICAvLyBjb21ib2JveCBzaG91bGRuJ3QgZW1pdCBvbmJsdXIpDQot
CX0NCisgICAgaWYgKGV2dC0+aWQoKT09RXZlbnRJbXBsOjpLRVlET1dOX0VWRU5UIHx8DQorICAg
ICAgICBldnQtPmlkKCk9PUV2ZW50SW1wbDo6S0VZVVBfRVZFTlQpDQorICAgIHsNCisgICAgICAg
IEtleWJvYXJkRXZlbnRJbXBsICogayA9IHN0YXRpY19jYXN0PEtleWJvYXJkRXZlbnRJbXBsICo+
KGV2dCk7DQorICAgICAgICBpZiAoay0+a2V5VmFsKCkgPT0gUUNoYXIoJ1xuJykudW5pY29kZSgp
ICYmIG1fcmVuZGVyICYmIG1fcmVuZGVyLT5pc1dpZGdldCgpICYmIGstPnFLZXlFdmVudCkNCisg
ICAgICAgIFFBcHBsaWNhdGlvbjo6c2VuZEV2ZW50KHN0YXRpY19jYXN0PFJlbmRlcldpZGdldCAq
PihtX3JlbmRlciktPndpZGdldCgpLCBrLT5xS2V5RXZlbnQpOw0KKyAgICB9DQorI2VuZGlmDQor
DQorICAgIGlmIChldnQtPmlkKCk9PUV2ZW50SW1wbDo6RE9NRk9DVVNPVVRfRVZFTlQgJiYgaXNF
ZGl0YWJsZSgpICYmIHBhcnQgJiYgbV9yZW5kZXIgJiYgbV9yZW5kZXItPmlzV2lkZ2V0KCkpIHsN
CisgICAgICAgIEtIVE1MUGFydEJyb3dzZXJFeHRlbnNpb24gKmV4dCA9IHN0YXRpY19jYXN0PEtI
VE1MUGFydEJyb3dzZXJFeHRlbnNpb24gKj4ocGFydC0+YnJvd3NlckV4dGVuc2lvbigpKTsNCisg
ICAgICAgIFFXaWRnZXQgKndpZGdldCA9IHN0YXRpY19jYXN0PFJlbmRlcldpZGdldCo+KG1fcmVu
ZGVyKS0+d2lkZ2V0KCk7DQorICAgICAgICBpZiAoZXh0KQ0KKyAgICAgICAgZXh0LT5lZGl0YWJs
ZVdpZGdldEJsdXJyZWQod2lkZ2V0KTsNCisNCisgICAgICAgIC8vICMjIyBEb24ndCBjb3VudCBw
b3B1cCBhcyBhIHZhbGlkIHJlYXNvbiBmb3IgbG9zaW5nIHRoZSBmb2N1cyAoZXhhbXBsZTogb3Bl
bmluZyB0aGUgb3B0aW9ucyBvZiBhIHNlbGVjdA0KKyAgICAgICAgLy8gY29tYm9ib3ggc2hvdWxk
bid0IGVtaXQgb25ibHVyKQ0KKyAgICB9DQogICAgIH0NCiAgICAgSFRNTEVsZW1lbnRJbXBsOjpk
ZWZhdWx0RXZlbnRIYW5kbGVyKGV2dCk7DQogfQ0KQEAgLTExMjksNyArMTEyOSw3IEBAIERPTVN0
cmluZyBIVE1MQnV0dG9uRWxlbWVudEltcGw6OnR5cGUoKSANCiB2b2lkIEhUTUxCdXR0b25FbGVt
ZW50SW1wbDo6Ymx1cigpDQogew0KICAgICBpZihnZXREb2N1bWVudCgpLT5mb2N1c05vZGUoKSA9
PSB0aGlzKQ0KLQlnZXREb2N1bWVudCgpLT5zZXRGb2N1c05vZGUoMCk7DQorICAgIGdldERvY3Vt
ZW50KCktPnNldEZvY3VzTm9kZSgwKTsNCiB9DQogDQogdm9pZCBIVE1MQnV0dG9uRWxlbWVudElt
cGw6OmZvY3VzKCkNCkBAIC0xMzg1LDcgKzEzODUsNyBAQCBET01TdHJpbmcgSFRNTElucHV0RWxl
bWVudEltcGw6OnR5cGUoKSBjDQogDQogUVN0cmluZyBIVE1MSW5wdXRFbGVtZW50SW1wbDo6c3Rh
dGUoICkNCiB7DQotICAgIGFzc2VydChtX3R5cGUgIT0gUEFTU1dPUkQpOwkJLy8gc2hvdWxkIG5l
dmVyIHNhdmUvcmVzdG9yZSBwYXNzd29yZCBmaWVsZHMNCisgICAgYXNzZXJ0KG1fdHlwZSAhPSBQ
QVNTV09SRCk7ICAgICAvLyBzaG91bGQgbmV2ZXIgc2F2ZS9yZXN0b3JlIHBhc3N3b3JkIGZpZWxk
cw0KIA0KICAgICBRU3RyaW5nIHN0YXRlID0gSFRNTEdlbmVyaWNGb3JtRWxlbWVudEltcGw6OnN0
YXRlKCk7DQogICAgIHN3aXRjaCAobV90eXBlKSB7DQpAQCAtMTM5OSw3ICsxMzk5LDcgQEAgUVN0
cmluZyBIVE1MSW5wdXRFbGVtZW50SW1wbDo6c3RhdGUoICkNCiANCiB2b2lkIEhUTUxJbnB1dEVs
ZW1lbnRJbXBsOjpyZXN0b3JlU3RhdGUoUVN0cmluZ0xpc3QgJnN0YXRlcykNCiB7DQotICAgIGFz
c2VydChtX3R5cGUgIT0gUEFTU1dPUkQpOwkJLy8gc2hvdWxkIG5ldmVyIHNhdmUvcmVzdG9yZSBw
YXNzd29yZCBmaWVsZHMNCisgICAgYXNzZXJ0KG1fdHlwZSAhPSBQQVNTV09SRCk7ICAgICAvLyBz
aG91bGQgbmV2ZXIgc2F2ZS9yZXN0b3JlIHBhc3N3b3JkIGZpZWxkcw0KIA0KICAgICBRU3RyaW5n
IHN0YXRlID0gSFRNTEdlbmVyaWNGb3JtRWxlbWVudEltcGw6OmZpbmRNYXRjaGluZ1N0YXRlKHN0
YXRlcyk7DQogICAgIGlmIChzdGF0ZS5pc051bGwoKSkgcmV0dXJuOw0KQEAgLTIxNzYsNyArMjE3
Niw3IEBAIGJvb2wgSFRNTElucHV0RWxlbWVudEltcGw6OnN0b3Jlc1ZhbHVlU2UNCiB2b2lkIEhU
TUxJbnB1dEVsZW1lbnRJbXBsOjpibHVyKCkNCiB7DQogICAgIGlmKGdldERvY3VtZW50KCktPmZv
Y3VzTm9kZSgpID09IHRoaXMpDQotCWdldERvY3VtZW50KCktPnNldEZvY3VzTm9kZSgwKTsNCisg
ICAgZ2V0RG9jdW1lbnQoKS0+c2V0Rm9jdXNOb2RlKDApOw0KIH0NCiANCiB2b2lkIEhUTUxJbnB1
dEVsZW1lbnRJbXBsOjpmb2N1cygpDQpAQCAtMjIwMyw3ICsyMjAzLDcgQEAgdm9pZCBIVE1MSW5w
dXRFbGVtZW50SW1wbDo6ZGVmYXVsdEV2ZW50SA0KICAgICAgICAgICAgIHhQb3MgPSBtZS0+Y2xp
ZW50WCgpIC0gb2Zmc2V0WDsNCiAgICAgICAgICAgICB5UG9zID0gbWUtPmNsaWVudFkoKSAtIG9m
ZnNldFk7DQogICAgICAgICB9DQotCQltZS0+c2V0RGVmYXVsdEhhbmRsZWQoKTsNCisgICAgICAg
IG1lLT5zZXREZWZhdWx0SGFuZGxlZCgpOw0KICAgICB9DQogDQogICAgIC8vIERPTUFjdGl2YXRl
IGV2ZW50cyBjYXVzZSB0aGUgaW5wdXQgdG8gYmUgImFjdGl2YXRlZCIgLSBpbiB0aGUgY2FzZSBv
ZiBpbWFnZSBhbmQgc3VibWl0IGlucHV0cywgdGhpcyBtZWFucw0KQEAgLTI1MTksNyArMjUxOSw3
IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnRJbXBsOjpyZW1vdmUoIGxvbmcNCiB2b2lkIEhUTUxT
ZWxlY3RFbGVtZW50SW1wbDo6Ymx1cigpDQogew0KICAgICBpZihnZXREb2N1bWVudCgpLT5mb2N1
c05vZGUoKSA9PSB0aGlzKQ0KLQlnZXREb2N1bWVudCgpLT5zZXRGb2N1c05vZGUoMCk7DQorICAg
IGdldERvY3VtZW50KCktPnNldEZvY3VzTm9kZSgwKTsNCiB9DQogDQogdm9pZCBIVE1MU2VsZWN0
RWxlbWVudEltcGw6OmZvY3VzKCkNCkBAIC0yNzcxLDI4ICsyNzcxLDI4IEBAIHZvaWQgSFRNTFNl
bGVjdEVsZW1lbnRJbXBsOjpyZWNhbGNMaXN0SXQNCiAgICAgICAgIGlmIChjdXJyZW50LT5pZCgp
ID09IElEX09QVEdST1VQICYmIGN1cnJlbnQtPmZpcnN0Q2hpbGQoKSkgew0KICAgICAgICAgICAg
IC8vICMjIyB3aGF0IGlmIG9wdGdyb3VwIGNvbnRhaW5zIGp1c3QgY29tbWVudHM/IGRvbid0IHdh
bnQgb25lIG9mIG5vIG9wdGlvbnMgaW4gaXQuLi4NCiAjaWYgTk9LSUFfQ0hBTkdFUyANCi0JCQkv
LyBPT00gaGFuZGxpbmcNCisgICAgICAgICAgICAvLyBPT00gaGFuZGxpbmcNCiAgICAgICAgICAg
ICBpZiggIW1fbGlzdEl0ZW1zLnJlc2l6ZShtX2xpc3RJdGVtcy5zaXplKCkrMSkgKQ0KLQkJCXsN
Ci0JCQkJbV9saXN0SXRlbXMucmVzaXplKCAxICk7CS8vIGF2b2lkIG5vIG9wdGlvbnMgaW4gYSBz
ZWxlY3QgZWxlbWVudA0KLQkJCQltX3JlY2FsY0xpc3RJdGVtcyA9IGZhbHNlOw0KKyAgICAgICAg
ICAgIHsNCisgICAgICAgICAgICAgICAgbV9saXN0SXRlbXMucmVzaXplKCAxICk7ICAgIC8vIGF2
b2lkIG5vIG9wdGlvbnMgaW4gYSBzZWxlY3QgZWxlbWVudA0KKyAgICAgICAgICAgICAgICBtX3Jl
Y2FsY0xpc3RJdGVtcyA9IGZhbHNlOw0KIA0KLQkJCQlyZXR1cm47DQotCQkJfQ0KKyAgICAgICAg
ICAgICAgICByZXR1cm47DQorICAgICAgICAgICAgfQ0KICNlbmRpZg0KICAgICAgICAgICAgIG1f
bGlzdEl0ZW1zW21fbGlzdEl0ZW1zLnNpemUoKS0xXSA9IHN0YXRpY19jYXN0PEhUTUxFbGVtZW50
SW1wbCo+KGN1cnJlbnQpOw0KICAgICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LT5maXJzdENo
aWxkKCk7DQogICAgICAgICB9DQogICAgICAgICBpZiAoY3VycmVudC0+aWQoKSA9PSBJRF9PUFRJ
T04pIHsNCiAjaWYgTk9LSUFfQ0hBTkdFUyANCi0JCQkvLyBPT00gaGFuZGxpbmcNCisgICAgICAg
ICAgICAvLyBPT00gaGFuZGxpbmcNCiAgICAgICAgICAgICBpZiggIW1fbGlzdEl0ZW1zLnJlc2l6
ZShtX2xpc3RJdGVtcy5zaXplKCkrMSkgKQ0KLQkJCXsNCi0JCQkJbV9saXN0SXRlbXMucmVzaXpl
KCAxICk7CS8vIGF2b2lkIG5vIG9wdGlvbnMgaW4gYSBzZWxlY3QgZWxlbWVudA0KLQkJCQltX3Jl
Y2FsY0xpc3RJdGVtcyA9IGZhbHNlOw0KKyAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAg
bV9saXN0SXRlbXMucmVzaXplKCAxICk7ICAgIC8vIGF2b2lkIG5vIG9wdGlvbnMgaW4gYSBzZWxl
Y3QgZWxlbWVudA0KKyAgICAgICAgICAgICAgICBtX3JlY2FsY0xpc3RJdGVtcyA9IGZhbHNlOw0K
IA0KLQkJCQlyZXR1cm47DQotCQkJfQ0KKyAgICAgICAgICAgICAgICByZXR1cm47DQorICAgICAg
ICAgICAgfQ0KICNlbmRpZg0KICAgICAgICAgICAgIG1fbGlzdEl0ZW1zW21fbGlzdEl0ZW1zLnNp
emUoKS0xXSA9IHN0YXRpY19jYXN0PEhUTUxFbGVtZW50SW1wbCo+KGN1cnJlbnQpOw0KICAgICAg
ICAgICAgIGlmICghZm91bmRTZWxlY3RlZCAmJiAhbV9tdWx0aXBsZSAmJiBtX3NpemUgPD0gMSkg
ew0KQEAgLTMyODcsMTkgKzMyODcsMTkgQEAgdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50SW1wbDo6
cGFyc2VIVE1MQQ0KICAgICAgICAgYnJlYWs7DQogICAgIGNhc2UgQVRUUl9PTkZPQ1VTOg0KICAg
ICAgICAgc2V0SFRNTEV2ZW50TGlzdGVuZXIoRXZlbnRJbXBsOjpGT0NVU19FVkVOVCwNCi0JICAg
IGdldERvY3VtZW50KCktPmNyZWF0ZUhUTUxFdmVudExpc3RlbmVyKGF0dHItPnZhbHVlKCkuc3Ry
aW5nKCksIHRoaXMpKTsNCisgICAgICAgIGdldERvY3VtZW50KCktPmNyZWF0ZUhUTUxFdmVudExp
c3RlbmVyKGF0dHItPnZhbHVlKCkuc3RyaW5nKCksIHRoaXMpKTsNCiAgICAgICAgIGJyZWFrOw0K
ICAgICBjYXNlIEFUVFJfT05CTFVSOg0KICAgICAgICAgc2V0SFRNTEV2ZW50TGlzdGVuZXIoRXZl
bnRJbXBsOjpCTFVSX0VWRU5ULA0KLQkgICAgZ2V0RG9jdW1lbnQoKS0+Y3JlYXRlSFRNTEV2ZW50
TGlzdGVuZXIoYXR0ci0+dmFsdWUoKS5zdHJpbmcoKSwgdGhpcykpOw0KKyAgICAgICAgZ2V0RG9j
dW1lbnQoKS0+Y3JlYXRlSFRNTEV2ZW50TGlzdGVuZXIoYXR0ci0+dmFsdWUoKS5zdHJpbmcoKSwg
dGhpcykpOw0KICAgICAgICAgYnJlYWs7DQogICAgIGNhc2UgQVRUUl9PTlNFTEVDVDoNCiAgICAg
ICAgIHNldEhUTUxFdmVudExpc3RlbmVyKEV2ZW50SW1wbDo6U0VMRUNUX0VWRU5ULA0KLQkgICAg
Z2V0RG9jdW1lbnQoKS0+Y3JlYXRlSFRNTEV2ZW50TGlzdGVuZXIoYXR0ci0+dmFsdWUoKS5zdHJp
bmcoKSwgdGhpcykpOw0KKyAgICAgICAgZ2V0RG9jdW1lbnQoKS0+Y3JlYXRlSFRNTEV2ZW50TGlz
dGVuZXIoYXR0ci0+dmFsdWUoKS5zdHJpbmcoKSwgdGhpcykpOw0KICAgICAgICAgYnJlYWs7DQog
ICAgIGNhc2UgQVRUUl9PTkNIQU5HRToNCiAgICAgICAgIHNldEhUTUxFdmVudExpc3RlbmVyKEV2
ZW50SW1wbDo6Q0hBTkdFX0VWRU5ULA0KLQkgICAgZ2V0RG9jdW1lbnQoKS0+Y3JlYXRlSFRNTEV2
ZW50TGlzdGVuZXIoYXR0ci0+dmFsdWUoKS5zdHJpbmcoKSwgdGhpcykpOw0KKyAgICAgICAgZ2V0
RG9jdW1lbnQoKS0+Y3JlYXRlSFRNTEV2ZW50TGlzdGVuZXIoYXR0ci0+dmFsdWUoKS5zdHJpbmco
KSwgdGhpcykpOw0KICAgICAgICAgYnJlYWs7DQogICAgIGRlZmF1bHQ6DQogICAgICAgICBIVE1M
R2VuZXJpY0Zvcm1FbGVtZW50SW1wbDo6cGFyc2VIVE1MQXR0cmlidXRlKGF0dHIpOw0KQEAgLTMz
OTYsNyArMzM5Niw3IEBAIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudEltcGw6OnNldERlZmF1bHQN
CiB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnRJbXBsOjpibHVyKCkNCiB7DQogICAgIGlmKGdldERv
Y3VtZW50KCktPmZvY3VzTm9kZSgpID09IHRoaXMpDQotCWdldERvY3VtZW50KCktPnNldEZvY3Vz
Tm9kZSgwKTsNCisgICAgZ2V0RG9jdW1lbnQoKS0+c2V0Rm9jdXNOb2RlKDApOw0KIH0NCiANCiB2
b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnRJbXBsOjpmb2N1cygpDQpAQCAtMzQ1OCw3ICszNDU4LDcg
QEAgdm9pZCBIVE1MSXNJbmRleEVsZW1lbnRJbXBsOjpwYXJzZUhUTUxBdA0KICAgICBzd2l0Y2go
YXR0ci0+aWQoKSkNCiAgICAgew0KICAgICBjYXNlIEFUVFJfUFJPTVBUOg0KLQlzZXRWYWx1ZShh
dHRyLT52YWx1ZSgpKTsNCisgICAgc2V0VmFsdWUoYXR0ci0+dmFsdWUoKSk7DQogICAgIGRlZmF1
bHQ6DQogICAgICAgICAvLyBkb24ndCBjYWxsIEhUTUxJbnB1dEVsZW1lbnQ6OnBhcnNlSFRNTEF0
dHJpYnV0ZSBoZXJlLCBhcyBpdCB3b3VsZA0KICAgICAgICAgLy8gYWNjZXB0IGF0dHJpYnV0ZXMg
dGhpcyBlbGVtZW50IGRvZXMgbm90IHN1cHBvcnQNCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FLSFRN
TFBhcnQuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9rd3EvS1dRS0hUTUxQYXJ0LmNwcAko
cmV2aXNpb24gMTkxNzcpDQorKysgV2ViQ29yZS9rd3EvS1dRS0hUTUxQYXJ0LmNwcAkod29ya2lu
ZyBjb3B5KQ0KQEAgLTcxNywxMiArNzE3LDEyIEBAIHZvaWQgS1dRS0hUTUxQYXJ0OjpjbGVhclJl
Y29yZGVkRm9ybVZhbHUNCiB9DQogDQogLy92b2lkIEtXUUtIVE1MUGFydDo6cmVjb3JkRm9ybVZh
bHVlKGNvbnN0IFFTdHJpbmcgJm5hbWUsIGNvbnN0IFFTdHJpbmcgJnZhbHVlLCBIVE1MRm9ybUVs
ZW1lbnRJbXBsICplbGVtZW50KQ0KLXZvaWQgS1dRS0hUTUxQYXJ0OjpyZWNvcmRGb3JtVmFsdWUo
Y29uc3QgUVN0cmluZyAmbmFtZSwgY29uc3QgUVN0cmluZyAmdmFsdWUsIFRCb29sIGlzUGFzc3dv
cmQpDQordm9pZCBLV1FLSFRNTFBhcnQ6OnJlY29yZEZvcm1WYWx1ZShjb25zdCBRU3RyaW5nICZu
YW1lLCBjb25zdCBRU3RyaW5nICZ2YWx1ZSwgVEJvb2wgaXNQYXNzd29yZCwgVEJvb2wgaXNBdXRv
Q29tcGxldGUpDQogew0KLSAgICBUUkFQX0lHTk9SRShyZWNvcmRGb3JtVmFsdWVMKG5hbWUsIHZh
bHVlLCBpc1Bhc3N3b3JkKSk7DQorICAgIFRSQVBfSUdOT1JFKHJlY29yZEZvcm1WYWx1ZUwobmFt
ZSwgdmFsdWUsIGlzUGFzc3dvcmQsIGlzQXV0b0NvbXBsZXRlKSk7DQogfQ0KIA0KLXZvaWQgS1dR
S0hUTUxQYXJ0OjpyZWNvcmRGb3JtVmFsdWVMKGNvbnN0IFFTdHJpbmcgJm5hbWUsIGNvbnN0IFFT
dHJpbmcgJnZhbHVlLCBUQm9vbCBpc1Bhc3N3b3JkKQ0KK3ZvaWQgS1dRS0hUTUxQYXJ0OjpyZWNv
cmRGb3JtVmFsdWVMKGNvbnN0IFFTdHJpbmcgJm5hbWUsIGNvbnN0IFFTdHJpbmcgJnZhbHVlLCBU
Qm9vbCBpc1Bhc3N3b3JkLCBUQm9vbCBpc0F1dG9Db21wbGV0ZSkNCiAgIHsNCiAgIGlmICghX2Zv
cm1WYWx1ZXNBYm91dFRvQmVTdWJtaXR0ZWQpIHsNCiAgICAgX2Zvcm1WYWx1ZXNBYm91dFRvQmVT
dWJtaXR0ZWQgPSBuZXcgKEVMZWF2ZSkgQ0FycmF5UHRyRmxhdDxDV2ViQ29yZUZvcm1EYXRhRWxl
bWVudD4oMjApOw0KQEAgLTczMCw2ICs3MzAsNyBAQCB2b2lkIEtXUUtIVE1MUGFydDo6cmVjb3Jk
Rm9ybVZhbHVlTChjb25zDQogDQogICAgIENXZWJDb3JlRm9ybURhdGFFbGVtZW50KiBmRGF0YUVs
ZW0gPSBuZXcgKEVMZWF2ZSkgQ1dlYkNvcmVGb3JtRGF0YUVsZW1lbnQoKTsNCiAgICAgZkRhdGFF
bGVtLT5pc1Bhc3N3b3JkID0gaXNQYXNzd29yZDsNCisgICAgZkRhdGFFbGVtLT5pc0F1dG9Db21w
bGV0ZSA9IGlzQXV0b0NvbXBsZXRlOw0KICAgICAvLyBjb3B5IG5hbWUgYW5kIHZhbHVlIHNpbmNl
IHRoZXkgZ2V0IGRlbGV0ZWQgYmVmb3JlIGJlaW5nIHNhdmVkDQogICAgIGZEYXRhRWxlbS0+aUtl
eSA9IG5hbWUuRGVzKCkuQWxsb2NMQygpOw0KICAgZkRhdGFFbGVtLT5pVmFsdWUgPSB2YWx1ZS5E
ZXMoKS5BbGxvY0xDKCk7DQpJbmRleDogV2ViQ29yZS9rd3EvS1dRS0hUTUxQYXJ0LmgNCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0NCi0tLSBXZWJDb3JlL2t3cS9LV1FLSFRNTFBhcnQuaAkocmV2aXNpb24gMTkwNTApDQor
KysgV2ViQ29yZS9rd3EvS1dRS0hUTUxQYXJ0LmgJKHdvcmtpbmcgY29weSkNCkBAIC0yNTIsNyAr
MjUyLDcgQEAgcHVibGljOg0KIA0KICAgICB2b2lkIGNsZWFyUmVjb3JkZWRGb3JtVmFsdWVzKCk7
DQogICAgIC8vdm9pZCByZWNvcmRGb3JtVmFsdWUoY29uc3QgUVN0cmluZyAmbmFtZSwgY29uc3Qg
UVN0cmluZyAmdmFsdWUsIERPTTo6SFRNTEZvcm1FbGVtZW50SW1wbCAqZWxlbWVudCk7DQotICAg
IHZvaWQgcmVjb3JkRm9ybVZhbHVlKGNvbnN0IFFTdHJpbmcgJm5hbWUsIGNvbnN0IFFTdHJpbmcg
JnZhbHVlLFRCb29sIGlzUGFzc3dvcmQpOw0KKyAgICB2b2lkIHJlY29yZEZvcm1WYWx1ZShjb25z
dCBRU3RyaW5nICZuYW1lLCBjb25zdCBRU3RyaW5nICZ2YWx1ZSxUQm9vbCBpc1Bhc3N3b3JkLCBU
Qm9vbCBpc0F1dG9Db21wbGV0ZSk7DQogICAgIERPTTo6SFRNTEZvcm1FbGVtZW50SW1wbCAqY3Vy
cmVudEZvcm0oKSBjb25zdDsNCiANCiAvLyAgICBOU1N0cmluZyAqc2VhcmNoRm9yTGFiZWxzQWJv
dmVDZWxsKFFSZWdFeHAgKnJlZ0V4cCwgRE9NOjpIVE1MVGFibGVDZWxsRWxlbWVudEltcGwgKmNl
bGwpOw0KQEAgLTM1NSw3ICszNTUsNyBAQCBwcml2YXRlOg0KIA0KICAgICBpbnQgY2FsY3VsYXRl
Wm9vbUZhY3RvcigpIGNvbnN0Ow0KICAgLy8gTGVhdmluZyB2ZXJzaW9uIG9mIHZvaWQgcmVjb3Jk
Rm9ybVZhbHVlKGNvbnN0IFFTdHJpbmcgJm5hbWUsIGNvbnN0IFFTdHJpbmcgJnZhbHVlLFRCb29s
IGlzUGFzc3dvcmQpOw0KLSAgICB2b2lkIHJlY29yZEZvcm1WYWx1ZUwoY29uc3QgUVN0cmluZyAm
bmFtZSwgY29uc3QgUVN0cmluZyAmdmFsdWUsVEJvb2wgaXNQYXNzd29yZCk7DQorICAgIHZvaWQg
cmVjb3JkRm9ybVZhbHVlTChjb25zdCBRU3RyaW5nICZuYW1lLCBjb25zdCBRU3RyaW5nICZ2YWx1
ZSxUQm9vbCBpc1Bhc3N3b3JkLCBUQm9vbCBpc0F1dG9Db21wbGV0ZSk7DQogDQogICAgIHZpcnR1
YWwgdm9pZCBraHRtbE1vdXNlUHJlc3NFdmVudChraHRtbDo6TW91c2VQcmVzc0V2ZW50ICopOw0K
ICAgICB2aXJ0dWFsIHZvaWQga2h0bWxNb3VzZURvdWJsZUNsaWNrRXZlbnQoa2h0bWw6Ok1vdXNl
RG91YmxlQ2xpY2tFdmVudCAqKTsNCkluZGV4OiBXZWJLaXQvQ2hhbmdlTG9nDQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
DQotLS0gV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMTkyNjIpDQorKysgV2ViS2l0L0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQ0KQEAgLTEsMyArMSwxNSBAQA0KKzIwMDctMDEtMzAgIHlhaGFy
b24gIDx5YWVsLmFoYXJvbkBub2tpYS5jb20+DQorDQorICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4NCisgICAgICAgIERFU0M6IFtTNjBdIEJ1ZyBJRCBNTElPLTZYWEVWVTogQnJv
d3Nlck5HOiBSZWR1bmRhbnQgcGFzc3dvcmQgbWFuYWdlciBub3RpZmljYXRpb24gb24gc2VjdXJl
IHBhZ2VzDQorICAgICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0N
CisNCisgICAgICAgICogQnJvd3NlclZpZXcvc3JjL0Zvcm1EYXRhQXV0b0ZpbGxTdG9yZS5jcHA6
DQorICAgICAgICAoQ0Zvcm1EYXRhQXV0b0ZpbGxTdG9yZTo6U2F2ZURhdGEpOg0KKyAgICAgICAg
KiBCcm93c2VyVmlldy9zcmMvRm9ybURhdGFMb2dpblN0b3JlLmNwcDoNCisgICAgICAgIChDRm9y
bURhdGFMb2dpblN0b3JlOjpTYXZlRGF0YUwpOg0KKyAgICAgICAgKiBDaGFuZ2VMb2c6DQorDQog
MjAwNy0wMS0zMCAgc2FyZWVuICA8c2h5YW0uc2FyZWVuQG5va2lhLmNvbT4NCiANCiAgICAgICAg
IFJldmlld2VkIGJ5IHlvbmdqdW4vYnJhZC4NCkluZGV4OiBXZWJLaXQvQnJvd3NlclZpZXcvc3Jj
L0Zvcm1EYXRhQXV0b0ZpbGxTdG9yZS5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvQnJvd3Nl
clZpZXcvc3JjL0Zvcm1EYXRhQXV0b0ZpbGxTdG9yZS5jcHAJKHJldmlzaW9uIDE5MDUwKQ0KKysr
IFdlYktpdC9Ccm93c2VyVmlldy9zcmMvRm9ybURhdGFBdXRvRmlsbFN0b3JlLmNwcAkod29ya2lu
ZyBjb3B5KQ0KQEAgLTI3MCw3ICsyNzAsNyBAQCB2b2lkIENGb3JtRGF0YUF1dG9GaWxsU3RvcmU6
OlNhdmVEYXRhIChjDQogICAgIGZvciAoVEludCBpID0gMDsgaSA8IGFGb3JtRGF0YS5Db3VudCgp
OyBpKyspDQogICAgICAgICB7DQogICAgICAgICBjb25zdCBDV2ViQ29yZUZvcm1EYXRhRWxlbWVu
dCogZWxlbSA9IGFGb3JtRGF0YS5BdChpKTsNCi0gICAgICAgIGlmIChlbGVtLT5pc1Bhc3N3b3Jk
ID09IEVGYWxzZSAmJiBlbGVtLT5pS2V5LT5MZW5ndGgoKSA+IDAgJiYNCisgICAgICAgIGlmIChl
bGVtLT5pc1Bhc3N3b3JkID09IEVGYWxzZSAmJiBlbGVtLT5pc0F1dG9Db21wbGV0ZSAmJiBlbGVt
LT5pS2V5LT5MZW5ndGgoKSA+IDAgJiYNCiAgICAgICAgICAgICAgZWxlbS0+aVZhbHVlLT5MZW5n
dGgoKSA+IDApDQogICAgICAgICAgICAgew0KICAgICAgICAgICAgIC8vIGRlbGV0ZSBhbmQgcmUt
aW5zZXJ0IHdpbGwgbWFrZSBzdXJlIHRoYXQgdGhpcyBlbnRyeSB3aWxsIGJlIHBsYWNlZCBhdCB0
aGUgdG9wIG9mIHRoZSBsaXN0DQpJbmRleDogV2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy9Gb3JtRGF0
YUxvZ2luU3RvcmUuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy9G
b3JtRGF0YUxvZ2luU3RvcmUuY3BwCShyZXZpc2lvbiAxOTA1MCkNCisrKyBXZWJLaXQvQnJvd3Nl
clZpZXcvc3JjL0Zvcm1EYXRhTG9naW5TdG9yZS5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC0yOTcs
NiArMjk3LDcgQEAgdm9pZCBDRm9ybURhdGFMb2dpblN0b3JlOjpTYXZlRGF0YUwgKGNvbg0KICAg
Ly8gYmVmb3JlIHNhdmluZw0KICAgaWYgKHBhc3N3b3JkSWR4ID4gLTEgJiYgYUZvcm1EYXRhLkF0
KHBhc3N3b3JkSWR4KS0+aVZhbHVlLT5MZW5ndGgoKT4wICYmIA0KICAgICAgIGxvZ2luSWR4ID4g
LTEgJiYgYUZvcm1EYXRhLkF0KGxvZ2luSWR4KS0+aVZhbHVlLT5MZW5ndGgoKT4wICYmIA0KKyAg
ICAgIGFGb3JtRGF0YS5BdChsb2dpbklkeCktPmlzQXV0b0NvbXBsZXRlICYmDQogICAgICAgU2F2
ZURpYWxvZ0woYVVybCkgPT0gRUxvZ2luRGF0YVNhdmVZZXMpDQogICAgIHsNCiAgICAgQ0xvZ2lu
RGF0YUVsZW1lbnQqIGVsZW0gPSBuZXcgKEVMZWF2ZSkgQ0xvZ2luRGF0YUVsZW1lbnQoKTsNCg==
</data>
<flag name="review"
          id="4900"
          type_id="1"
          status="+"
          setter="zalan"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>12810</attachid>
            <date>2007-01-30 14:02:22 -0800</date>
            <delta_ts>2007-01-30 17:47:03 -0800</delta_ts>
            <desc>Updated CL, formatting</desc>
            <filename>12484-3.2.patch</filename>
            <type>text/plain</type>
            <size>19473</size>
            <attacher name="Bradley Morrison">bradley.morrison</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDE5MTk4KQ0KKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
DQpAQCAtMSwzICsxLDE5IEBADQorMjAwNy0wMS0zMCAgeWFoYXJvbiAgPHlhZWwuYWhhcm9uQG5v
a2lhLmNvbT4NCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKyAgICAg
ICAgREVTQzogW1M2MF0gQnVnIElEIE1MSU8tNlhYRVZVOiBCcm93c2VyTkc6IFJlZHVuZGFudCBw
YXNzd29yZCBtYW5hZ2VyIG5vdGlmaWNhdGlvbiBvbiBzZWN1cmUgcGFnZXMNCisgICAgICAgIGh0
dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNDg0DQorDQorICAgICAgICBX
QVJOSU5HOiBOTyBURVNUIENBU0VTIEFEREVEIE9SIENIQU5HRUQNCisNCisgICAgICAgICogYnJp
ZGdlL1dlYkNvcmVGb3JtRGF0YUVsZW1lbnQuaDoNCisgICAgICAgICoga2h0bWwvaHRtbC9odG1s
X2Zvcm1pbXBsLmNwcDoNCisgICAgICAgIChET006OkhUTUxGb3JtRWxlbWVudEltcGw6OnN1Ym1p
dCk6DQorICAgICAgICAqIGt3cS9LV1FLSFRNTFBhcnQuY3BwOg0KKyAgICAgICAgKEtXUUtIVE1M
UGFydDo6cmVjb3JkRm9ybVZhbHVlKToNCisgICAgICAgIChLV1FLSFRNTFBhcnQ6OnJlY29yZEZv
cm1WYWx1ZUwpOg0KKyAgICAgICAgKiBrd3EvS1dRS0hUTUxQYXJ0Lmg6DQorDQogMjAwNy0wMS0y
NiAgYnVqdGFzICA8emJ1anRhc0BnbWFpbC5jb20+DQogDQogICAgICAgICBScydkIGJ5IEJyYWQN
CkluZGV4OiBXZWJDb3JlL2JyaWRnZS9XZWJDb3JlRm9ybURhdGFFbGVtZW50LmgNCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCi0tLSBXZWJDb3JlL2JyaWRnZS9XZWJDb3JlRm9ybURhdGFFbGVtZW50LmgJKHJldmlzaW9u
IDE5MDc2KQ0KKysrIFdlYkNvcmUvYnJpZGdlL1dlYkNvcmVGb3JtRGF0YUVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQ0KQEAgLTY1LDYgKzY1LDcgQEAgcHVibGljOg0KICAgSEJ1ZkMqIGlLZXk7DQog
ICBIQnVmQyogaVZhbHVlOw0KICAgVEJvb2wgaXNQYXNzd29yZDsNCisgIFRCb29sIGlzQXV0b0Nv
bXBsZXRlOw0KIA0KIH07DQogDQpJbmRleDogV2ViQ29yZS9raHRtbC9odG1sL2h0bWxfZm9ybWlt
cGwuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9raHRtbC9odG1sL2h0bWxfZm9ybWltcGwu
Y3BwCShyZXZpc2lvbiAxOTA3NikNCisrKyBXZWJDb3JlL2todG1sL2h0bWwvaHRtbF9mb3JtaW1w
bC5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC0xNTMsOSArMTUzLDkgQEAgdm9pZCBIVE1MRm9ybUVs
ZW1lbnRJbXBsOjphdHRhY2goKQ0KICAgICBIVE1MRWxlbWVudEltcGw6OmF0dGFjaCgpOw0KIA0K
ICAgICBpZiAoZ2V0RG9jdW1lbnQoKS0+aXNIVE1MRG9jdW1lbnQoKSkgew0KLQlIVE1MRG9jdW1l
bnRJbXBsICpkb2N1bWVudCA9IHN0YXRpY19jYXN0PEhUTUxEb2N1bWVudEltcGwgKj4oZ2V0RG9j
dW1lbnQoKSk7DQotCWRvY3VtZW50LT5hZGROYW1lZEltYWdlT3JGb3JtKG9sZE5hbWVBdHRyKTsN
Ci0JZG9jdW1lbnQtPmFkZE5hbWVkSW1hZ2VPckZvcm0ob2xkSWRBdHRyKTsNCisgICAgSFRNTERv
Y3VtZW50SW1wbCAqZG9jdW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MRG9jdW1lbnRJbXBsICo+KGdl
dERvY3VtZW50KCkpOw0KKyAgICBkb2N1bWVudC0+YWRkTmFtZWRJbWFnZU9yRm9ybShvbGROYW1l
QXR0cik7DQorICAgIGRvY3VtZW50LT5hZGROYW1lZEltYWdlT3JGb3JtKG9sZElkQXR0cik7DQog
ICAgIH0NCiANCiAjaWYgQVBQTEVfQ0hBTkdFUw0KQEAgLTE2OSw5ICsxNjksOSBAQCB2b2lkIEhU
TUxGb3JtRWxlbWVudEltcGw6OmF0dGFjaCgpDQogdm9pZCBIVE1MRm9ybUVsZW1lbnRJbXBsOjpk
ZXRhY2goKQ0KIHsNCiAgICAgaWYgKGdldERvY3VtZW50KCktPmlzSFRNTERvY3VtZW50KCkpIHsN
Ci0JSFRNTERvY3VtZW50SW1wbCAqZG9jdW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MRG9jdW1lbnRJ
bXBsICo+KGdldERvY3VtZW50KCkpOw0KLQlkb2N1bWVudC0+cmVtb3ZlTmFtZWRJbWFnZU9yRm9y
bShvbGROYW1lQXR0cik7DQotCWRvY3VtZW50LT5yZW1vdmVOYW1lZEltYWdlT3JGb3JtKG9sZElk
QXR0cik7DQorICAgIEhUTUxEb2N1bWVudEltcGwgKmRvY3VtZW50ID0gc3RhdGljX2Nhc3Q8SFRN
TERvY3VtZW50SW1wbCAqPihnZXREb2N1bWVudCgpKTsNCisgICAgZG9jdW1lbnQtPnJlbW92ZU5h
bWVkSW1hZ2VPckZvcm0ob2xkTmFtZUF0dHIpOw0KKyAgICBkb2N1bWVudC0+cmVtb3ZlTmFtZWRJ
bWFnZU9yRm9ybShvbGRJZEF0dHIpOw0KICAgICB9DQogDQogICAgIEhUTUxFbGVtZW50SW1wbDo6
ZGV0YWNoKCk7DQpAQCAtMTgxLDggKzE4MSw4IEBAIGxvbmcgSFRNTEZvcm1FbGVtZW50SW1wbDo6
bGVuZ3RoKCkgY29uc3QNCiB7DQogICAgIGludCBsZW4gPSAwOw0KICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgZm9ybUVsZW1lbnRzLmNvdW50KCk7ICsraSkNCi0JaWYgKGZvcm1FbGVtZW50
c1tpXS0+aXNFbnVtZXJhdGFibGUoKSkNCi0JICAgICsrbGVuOw0KKyAgICBpZiAoZm9ybUVsZW1l
bnRzW2ldLT5pc0VudW1lcmF0YWJsZSgpKQ0KKyAgICAgICAgKytsZW47DQogDQogICAgIHJldHVy
biBsZW47DQogfQ0KQEAgLTUzOCw3ICs1MzgsNyBAQCB2b2lkIEhUTUxGb3JtRWxlbWVudEltcGw6
OnN1Ym1pdCggYm9vbCBhDQogI2VuZGlmDQogDQogICAgIEhUTUxHZW5lcmljRm9ybUVsZW1lbnRJ
bXBsKiBmaXJzdFN1Y2Nlc3NmdWxTdWJtaXRCdXR0b24gPSAwOw0KLSAgICBib29sIG5lZWRCdXR0
b25BY3RpdmF0aW9uID0gYWN0aXZhdGVTdWJtaXRCdXR0b247CS8vIGRvIHdlIG5lZWQgdG8gYWN0
aXZhdGUgYSBzdWJtaXQgYnV0dG9uPw0KKyAgICBib29sIG5lZWRCdXR0b25BY3RpdmF0aW9uID0g
YWN0aXZhdGVTdWJtaXRCdXR0b247ICAgLy8gZG8gd2UgbmVlZCB0byBhY3RpdmF0ZSBhIHN1Ym1p
dCBidXR0b24/DQogDQogI2lmIEFQUExFX0NIQU5HRVMNCiAgICAgS1dRKHBhcnQpLT5jbGVhclJl
Y29yZGVkRm9ybVZhbHVlcygpOw0KQEAgLTU1Niw3ICs1NTYsNyBAQCB2b2lkIEhUTUxGb3JtRWxl
bWVudEltcGw6OnN1Ym1pdCggYm9vbCBhDQogICAgICAgICAgICAgew0KICAgICAgICAgICAgICAg
ICBLV1EocGFydCktPnJlY29yZEZvcm1WYWx1ZShpbnB1dC0+bmFtZSgpLnN0cmluZygpLCBpbnB1
dC0+dmFsdWUoKS5zdHJpbmcoKSwNCiAjaWZkZWYgTk9LSUFfQ0hBTkdFUw0KLSAgICAgICAgICAg
ICAgICAoaW5wdXQtPmlucHV0VHlwZSgpID09ICBIVE1MSW5wdXRFbGVtZW50SW1wbDo6UEFTU1dP
UkQpKTsNCisgICAgICAgICAgICAgICAgKGlucHV0LT5pbnB1dFR5cGUoKSA9PSAgSFRNTElucHV0
RWxlbWVudEltcGw6OlBBU1NXT1JEKSwgaW5wdXQtPmF1dG9Db21wbGV0ZSgpKTsNCiAjZWxzZQ0K
ICAgICAgICAgICAgICAgICB0aGlzKTsNCiAjZW5kaWYNCkBAIC02NzgsMzQgKzY3OCwzNCBAQCB2
b2lkIEhUTUxGb3JtRWxlbWVudEltcGw6OnBhcnNlSFRNTEF0dHJpDQogICAgICAgICBicmVhazsN
CiAgICAgY2FzZSBBVFRSX09OU1VCTUlUOg0KICAgICAgICAgc2V0SFRNTEV2ZW50TGlzdGVuZXIo
RXZlbnRJbXBsOjpTVUJNSVRfRVZFTlQsDQotCSAgICBnZXREb2N1bWVudCgpLT5jcmVhdGVIVE1M
RXZlbnRMaXN0ZW5lcihhdHRyLT52YWx1ZSgpLnN0cmluZygpLCB0aGlzKSk7DQorICAgICAgICBn
ZXREb2N1bWVudCgpLT5jcmVhdGVIVE1MRXZlbnRMaXN0ZW5lcihhdHRyLT52YWx1ZSgpLnN0cmlu
ZygpLCB0aGlzKSk7DQogICAgICAgICBicmVhazsNCiAgICAgY2FzZSBBVFRSX09OUkVTRVQ6DQog
ICAgICAgICBzZXRIVE1MRXZlbnRMaXN0ZW5lcihFdmVudEltcGw6OlJFU0VUX0VWRU5ULA0KLQkg
ICAgZ2V0RG9jdW1lbnQoKS0+Y3JlYXRlSFRNTEV2ZW50TGlzdGVuZXIoYXR0ci0+dmFsdWUoKS5z
dHJpbmcoKSwgdGhpcykpOw0KKyAgICAgICAgZ2V0RG9jdW1lbnQoKS0+Y3JlYXRlSFRNTEV2ZW50
TGlzdGVuZXIoYXR0ci0+dmFsdWUoKS5zdHJpbmcoKSwgdGhpcykpOw0KICAgICAgICAgYnJlYWs7
DQogICAgIGNhc2UgQVRUUl9OQU1FOg0KLQl7DQotCSAgICBRU3RyaW5nIG5ld05hbWVBdHRyID0g
YXR0ci0+dmFsdWUoKS5zdHJpbmcoKTsNCi0JICAgIGlmIChhdHRhY2hlZCgpICYmIGdldERvY3Vt
ZW50KCktPmlzSFRNTERvY3VtZW50KCkpIHsNCi0JCUhUTUxEb2N1bWVudEltcGwgKmRvY3VtZW50
ID0gc3RhdGljX2Nhc3Q8SFRNTERvY3VtZW50SW1wbCAqPihnZXREb2N1bWVudCgpKTsNCi0JCWRv
Y3VtZW50LT5yZW1vdmVOYW1lZEltYWdlT3JGb3JtKG9sZE5hbWVBdHRyKTsNCi0JCWRvY3VtZW50
LT5hZGROYW1lZEltYWdlT3JGb3JtKG5ld05hbWVBdHRyKTsNCi0JICAgIH0NCi0JICAgIG9sZE5h
bWVBdHRyID0gbmV3TmFtZUF0dHI7DQotCX0NCi0JYnJlYWs7DQorICAgIHsNCisgICAgICAgIFFT
dHJpbmcgbmV3TmFtZUF0dHIgPSBhdHRyLT52YWx1ZSgpLnN0cmluZygpOw0KKyAgICAgICAgaWYg
KGF0dGFjaGVkKCkgJiYgZ2V0RG9jdW1lbnQoKS0+aXNIVE1MRG9jdW1lbnQoKSkgew0KKyAgICAg
ICAgSFRNTERvY3VtZW50SW1wbCAqZG9jdW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MRG9jdW1lbnRJ
bXBsICo+KGdldERvY3VtZW50KCkpOw0KKyAgICAgICAgZG9jdW1lbnQtPnJlbW92ZU5hbWVkSW1h
Z2VPckZvcm0ob2xkTmFtZUF0dHIpOw0KKyAgICAgICAgZG9jdW1lbnQtPmFkZE5hbWVkSW1hZ2VP
ckZvcm0obmV3TmFtZUF0dHIpOw0KKyAgICAgICAgfQ0KKyAgICAgICAgb2xkTmFtZUF0dHIgPSBu
ZXdOYW1lQXR0cjsNCisgICAgfQ0KKyAgICBicmVhazsNCiAgICAgY2FzZSBBVFRSX0lEOg0KLQl7
DQotCSAgICBRU3RyaW5nIG5ld0lkQXR0ciA9IGF0dHItPnZhbHVlKCkuc3RyaW5nKCk7DQotCSAg
ICBpZiAoYXR0YWNoZWQoKSAmJiBnZXREb2N1bWVudCgpLT5pc0hUTUxEb2N1bWVudCgpKSB7DQot
CQlIVE1MRG9jdW1lbnRJbXBsICpkb2N1bWVudCA9IHN0YXRpY19jYXN0PEhUTUxEb2N1bWVudElt
cGwgKj4oZ2V0RG9jdW1lbnQoKSk7DQotCQlkb2N1bWVudC0+cmVtb3ZlTmFtZWRJbWFnZU9yRm9y
bShvbGRJZEF0dHIpOw0KLQkJZG9jdW1lbnQtPmFkZE5hbWVkSW1hZ2VPckZvcm0obmV3SWRBdHRy
KTsNCi0JICAgIH0NCi0JICAgIG9sZElkQXR0ciA9IG5ld0lkQXR0cjsNCi0JfQ0KLQkvLyBmYWxs
IHRocm91Z2gNCisgICAgew0KKyAgICAgICAgUVN0cmluZyBuZXdJZEF0dHIgPSBhdHRyLT52YWx1
ZSgpLnN0cmluZygpOw0KKyAgICAgICAgaWYgKGF0dGFjaGVkKCkgJiYgZ2V0RG9jdW1lbnQoKS0+
aXNIVE1MRG9jdW1lbnQoKSkgew0KKyAgICAgICAgSFRNTERvY3VtZW50SW1wbCAqZG9jdW1lbnQg
PSBzdGF0aWNfY2FzdDxIVE1MRG9jdW1lbnRJbXBsICo+KGdldERvY3VtZW50KCkpOw0KKyAgICAg
ICAgZG9jdW1lbnQtPnJlbW92ZU5hbWVkSW1hZ2VPckZvcm0ob2xkSWRBdHRyKTsNCisgICAgICAg
IGRvY3VtZW50LT5hZGROYW1lZEltYWdlT3JGb3JtKG5ld0lkQXR0cik7DQorICAgICAgICB9DQor
ICAgICAgICBvbGRJZEF0dHIgPSBuZXdJZEF0dHI7DQorICAgIH0NCisgICAgLy8gZmFsbCB0aHJv
dWdoDQogICAgIGRlZmF1bHQ6DQogICAgICAgICBIVE1MRWxlbWVudEltcGw6OnBhcnNlSFRNTEF0
dHJpYnV0ZShhdHRyKTsNCiAgICAgfQ0KQEAgLTc5MSw5ICs3OTEsOSBAQCBIVE1MR2VuZXJpY0Zv
cm1FbGVtZW50SW1wbDo6SFRNTEdlbmVyaWNGDQogICAgIG1fZG9ybWFudCA9IGZhbHNlOw0KIA0K
ICAgICBpZiAoZikNCi0JbV9mb3JtID0gZjsNCisgICAgbV9mb3JtID0gZjsNCiAgICAgZWxzZQ0K
LQltX2Zvcm0gPSBnZXRGb3JtKCk7DQorICAgIG1fZm9ybSA9IGdldEZvcm0oKTsNCiAgICAgaWYg
KG1fZm9ybSkNCiAgICAgICAgIG1fZm9ybS0+cmVnaXN0ZXJGb3JtRWxlbWVudCh0aGlzKTsNCiB9
DQpAQCAtODM4LDkgKzgzOCw5IEBAIHZvaWQgSFRNTEdlbmVyaWNGb3JtRWxlbWVudEltcGw6OmF0
dGFjaCgNCiAgICAgLy8gaW5zaWRlLCBET00tdHJlZS13aXNlLiBJZiBzbywgaXQncyBoYXJkIGZv
ciB1cyB0byBrbm93IHdoZW4gd2Ugc2hvdWxkDQogICAgIC8vIGJlIHJlbW92ZWQgZnJvbSB0aGF0
IGZvcm0ncyBlbGVtZW50IGxpc3QuDQogICAgIGlmICghbV9mb3JtKSB7DQotCW1fZm9ybSA9IGdl
dEZvcm0oKTsNCi0JaWYgKG1fZm9ybSkNCi0JICAgIG1fZm9ybS0+cmVnaXN0ZXJGb3JtRWxlbWVu
dCh0aGlzKTsNCisgICAgbV9mb3JtID0gZ2V0Rm9ybSgpOw0KKyAgICBpZiAobV9mb3JtKQ0KKyAg
ICAgICAgbV9mb3JtLT5yZWdpc3RlckZvcm1FbGVtZW50KHRoaXMpOw0KICAgICB9DQogDQogICAg
IEhUTUxFbGVtZW50SW1wbDo6YXR0YWNoKCk7DQpAQCAtOTY2LDggKzk2Niw4IEBAIGJvb2wgSFRN
TEdlbmVyaWNGb3JtRWxlbWVudEltcGw6OmlzS2V5Ym8NCiAgICAgICAgICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8UmVuZGVyV2lkZ2V0Kj4obV9yZW5kZXIpLT53aWRnZXQoKSAmJg0KICAgICAgICAg
ICAgICAgICAoc3RhdGljX2Nhc3Q8UmVuZGVyV2lkZ2V0Kj4obV9yZW5kZXIpLT53aWRnZXQoKS0+
Zm9jdXNQb2xpY3koKSAmIFFXaWRnZXQ6OlRhYkZvY3VzKTsNCiAgICAgICAgIH0NCi0JaWYgKGdl
dERvY3VtZW50KCktPnBhcnQoKSkNCi0JICAgIHJldHVybiBnZXREb2N1bWVudCgpLT5wYXJ0KCkt
PnRhYnNUb0FsbENvbnRyb2xzKCk7DQorICAgIGlmIChnZXREb2N1bWVudCgpLT5wYXJ0KCkpDQor
ICAgICAgICByZXR1cm4gZ2V0RG9jdW1lbnQoKS0+cGFydCgpLT50YWJzVG9BbGxDb250cm9scygp
Ow0KICAgICB9DQogICAgIHJldHVybiBmYWxzZTsNCiB9DQpAQCAtMTAwNCwyNyArMTAwNCwyNyBA
QCB2b2lkIEhUTUxHZW5lcmljRm9ybUVsZW1lbnRJbXBsOjpkZWZhdWx0DQogICAgICAgICB9DQog
DQogI2lmIEFQUExFX0NIQU5HRVMNCi0JLy8gV2UgZG9uJ3Qgd2FudCB0aGlzIGRlZmF1bHQga2V5
IGV2ZW50IGhhbmRsaW5nLCB3ZSdsbCBjb3VudCBvbg0KLQkvLyBDb2NvYSBldmVudCBkaXNwYXRj
aCBpZiB0aGUgZXZlbnQgZG9lc24ndCBnZXQgYmxvY2tlZC4NCisgICAgLy8gV2UgZG9uJ3Qgd2Fu
dCB0aGlzIGRlZmF1bHQga2V5IGV2ZW50IGhhbmRsaW5nLCB3ZSdsbCBjb3VudCBvbg0KKyAgICAv
LyBDb2NvYSBldmVudCBkaXNwYXRjaCBpZiB0aGUgZXZlbnQgZG9lc24ndCBnZXQgYmxvY2tlZC4N
CiAjZWxzZQ0KLQlpZiAoZXZ0LT5pZCgpPT1FdmVudEltcGw6OktFWURPV05fRVZFTlQgfHwNCi0J
ICAgIGV2dC0+aWQoKT09RXZlbnRJbXBsOjpLRVlVUF9FVkVOVCkNCi0Jew0KLQkgICAgS2V5Ym9h
cmRFdmVudEltcGwgKiBrID0gc3RhdGljX2Nhc3Q8S2V5Ym9hcmRFdmVudEltcGwgKj4oZXZ0KTsN
Ci0JICAgIGlmIChrLT5rZXlWYWwoKSA9PSBRQ2hhcignXG4nKS51bmljb2RlKCkgJiYgbV9yZW5k
ZXIgJiYgbV9yZW5kZXItPmlzV2lkZ2V0KCkgJiYgay0+cUtleUV2ZW50KQ0KLQkJUUFwcGxpY2F0
aW9uOjpzZW5kRXZlbnQoc3RhdGljX2Nhc3Q8UmVuZGVyV2lkZ2V0ICo+KG1fcmVuZGVyKS0+d2lk
Z2V0KCksIGstPnFLZXlFdmVudCk7DQotCX0NCi0jZW5kaWYNCi0NCi0JaWYgKGV2dC0+aWQoKT09
RXZlbnRJbXBsOjpET01GT0NVU09VVF9FVkVOVCAmJiBpc0VkaXRhYmxlKCkgJiYgcGFydCAmJiBt
X3JlbmRlciAmJiBtX3JlbmRlci0+aXNXaWRnZXQoKSkgew0KLQkgICAgS0hUTUxQYXJ0QnJvd3Nl
ckV4dGVuc2lvbiAqZXh0ID0gc3RhdGljX2Nhc3Q8S0hUTUxQYXJ0QnJvd3NlckV4dGVuc2lvbiAq
PihwYXJ0LT5icm93c2VyRXh0ZW5zaW9uKCkpOw0KLQkgICAgUVdpZGdldCAqd2lkZ2V0ID0gc3Rh
dGljX2Nhc3Q8UmVuZGVyV2lkZ2V0Kj4obV9yZW5kZXIpLT53aWRnZXQoKTsNCi0JICAgIGlmIChl
eHQpDQotCQlleHQtPmVkaXRhYmxlV2lkZ2V0Qmx1cnJlZCh3aWRnZXQpOw0KLQ0KLQkgICAgLy8g
IyMjIERvbid0IGNvdW50IHBvcHVwIGFzIGEgdmFsaWQgcmVhc29uIGZvciBsb3NpbmcgdGhlIGZv
Y3VzIChleGFtcGxlOiBvcGVuaW5nIHRoZSBvcHRpb25zIG9mIGEgc2VsZWN0DQotCSAgICAvLyBj
b21ib2JveCBzaG91bGRuJ3QgZW1pdCBvbmJsdXIpDQotCX0NCisgICAgaWYgKGV2dC0+aWQoKT09
RXZlbnRJbXBsOjpLRVlET1dOX0VWRU5UIHx8DQorICAgICAgICBldnQtPmlkKCk9PUV2ZW50SW1w
bDo6S0VZVVBfRVZFTlQpDQorICAgIHsNCisgICAgICAgIEtleWJvYXJkRXZlbnRJbXBsICogayA9
IHN0YXRpY19jYXN0PEtleWJvYXJkRXZlbnRJbXBsICo+KGV2dCk7DQorICAgICAgICBpZiAoay0+
a2V5VmFsKCkgPT0gUUNoYXIoJ1xuJykudW5pY29kZSgpICYmIG1fcmVuZGVyICYmIG1fcmVuZGVy
LT5pc1dpZGdldCgpICYmIGstPnFLZXlFdmVudCkNCisgICAgICAgIFFBcHBsaWNhdGlvbjo6c2Vu
ZEV2ZW50KHN0YXRpY19jYXN0PFJlbmRlcldpZGdldCAqPihtX3JlbmRlciktPndpZGdldCgpLCBr
LT5xS2V5RXZlbnQpOw0KKyAgICB9DQorI2VuZGlmDQorDQorICAgIGlmIChldnQtPmlkKCk9PUV2
ZW50SW1wbDo6RE9NRk9DVVNPVVRfRVZFTlQgJiYgaXNFZGl0YWJsZSgpICYmIHBhcnQgJiYgbV9y
ZW5kZXIgJiYgbV9yZW5kZXItPmlzV2lkZ2V0KCkpIHsNCisgICAgICAgIEtIVE1MUGFydEJyb3dz
ZXJFeHRlbnNpb24gKmV4dCA9IHN0YXRpY19jYXN0PEtIVE1MUGFydEJyb3dzZXJFeHRlbnNpb24g
Kj4ocGFydC0+YnJvd3NlckV4dGVuc2lvbigpKTsNCisgICAgICAgIFFXaWRnZXQgKndpZGdldCA9
IHN0YXRpY19jYXN0PFJlbmRlcldpZGdldCo+KG1fcmVuZGVyKS0+d2lkZ2V0KCk7DQorICAgICAg
ICBpZiAoZXh0KQ0KKyAgICAgICAgZXh0LT5lZGl0YWJsZVdpZGdldEJsdXJyZWQod2lkZ2V0KTsN
CisNCisgICAgICAgIC8vICMjIyBEb24ndCBjb3VudCBwb3B1cCBhcyBhIHZhbGlkIHJlYXNvbiBm
b3IgbG9zaW5nIHRoZSBmb2N1cyAoZXhhbXBsZTogb3BlbmluZyB0aGUgb3B0aW9ucyBvZiBhIHNl
bGVjdA0KKyAgICAgICAgLy8gY29tYm9ib3ggc2hvdWxkbid0IGVtaXQgb25ibHVyKQ0KKyAgICB9
DQogICAgIH0NCiAgICAgSFRNTEVsZW1lbnRJbXBsOjpkZWZhdWx0RXZlbnRIYW5kbGVyKGV2dCk7
DQogfQ0KQEAgLTExMjksNyArMTEyOSw3IEBAIERPTVN0cmluZyBIVE1MQnV0dG9uRWxlbWVudElt
cGw6OnR5cGUoKSANCiB2b2lkIEhUTUxCdXR0b25FbGVtZW50SW1wbDo6Ymx1cigpDQogew0KICAg
ICBpZihnZXREb2N1bWVudCgpLT5mb2N1c05vZGUoKSA9PSB0aGlzKQ0KLQlnZXREb2N1bWVudCgp
LT5zZXRGb2N1c05vZGUoMCk7DQorICAgIGdldERvY3VtZW50KCktPnNldEZvY3VzTm9kZSgwKTsN
CiB9DQogDQogdm9pZCBIVE1MQnV0dG9uRWxlbWVudEltcGw6OmZvY3VzKCkNCkBAIC0xMzg1LDcg
KzEzODUsNyBAQCBET01TdHJpbmcgSFRNTElucHV0RWxlbWVudEltcGw6OnR5cGUoKSBjDQogDQog
UVN0cmluZyBIVE1MSW5wdXRFbGVtZW50SW1wbDo6c3RhdGUoICkNCiB7DQotICAgIGFzc2VydCht
X3R5cGUgIT0gUEFTU1dPUkQpOwkJLy8gc2hvdWxkIG5ldmVyIHNhdmUvcmVzdG9yZSBwYXNzd29y
ZCBmaWVsZHMNCisgICAgYXNzZXJ0KG1fdHlwZSAhPSBQQVNTV09SRCk7ICAgICAvLyBzaG91bGQg
bmV2ZXIgc2F2ZS9yZXN0b3JlIHBhc3N3b3JkIGZpZWxkcw0KIA0KICAgICBRU3RyaW5nIHN0YXRl
ID0gSFRNTEdlbmVyaWNGb3JtRWxlbWVudEltcGw6OnN0YXRlKCk7DQogICAgIHN3aXRjaCAobV90
eXBlKSB7DQpAQCAtMTM5OSw3ICsxMzk5LDcgQEAgUVN0cmluZyBIVE1MSW5wdXRFbGVtZW50SW1w
bDo6c3RhdGUoICkNCiANCiB2b2lkIEhUTUxJbnB1dEVsZW1lbnRJbXBsOjpyZXN0b3JlU3RhdGUo
UVN0cmluZ0xpc3QgJnN0YXRlcykNCiB7DQotICAgIGFzc2VydChtX3R5cGUgIT0gUEFTU1dPUkQp
OwkJLy8gc2hvdWxkIG5ldmVyIHNhdmUvcmVzdG9yZSBwYXNzd29yZCBmaWVsZHMNCisgICAgYXNz
ZXJ0KG1fdHlwZSAhPSBQQVNTV09SRCk7ICAgICAvLyBzaG91bGQgbmV2ZXIgc2F2ZS9yZXN0b3Jl
IHBhc3N3b3JkIGZpZWxkcw0KIA0KICAgICBRU3RyaW5nIHN0YXRlID0gSFRNTEdlbmVyaWNGb3Jt
RWxlbWVudEltcGw6OmZpbmRNYXRjaGluZ1N0YXRlKHN0YXRlcyk7DQogICAgIGlmIChzdGF0ZS5p
c051bGwoKSkgcmV0dXJuOw0KQEAgLTIxNzYsNyArMjE3Niw3IEBAIGJvb2wgSFRNTElucHV0RWxl
bWVudEltcGw6OnN0b3Jlc1ZhbHVlU2UNCiB2b2lkIEhUTUxJbnB1dEVsZW1lbnRJbXBsOjpibHVy
KCkNCiB7DQogICAgIGlmKGdldERvY3VtZW50KCktPmZvY3VzTm9kZSgpID09IHRoaXMpDQotCWdl
dERvY3VtZW50KCktPnNldEZvY3VzTm9kZSgwKTsNCisgICAgZ2V0RG9jdW1lbnQoKS0+c2V0Rm9j
dXNOb2RlKDApOw0KIH0NCiANCiB2b2lkIEhUTUxJbnB1dEVsZW1lbnRJbXBsOjpmb2N1cygpDQpA
QCAtMjIwMyw3ICsyMjAzLDcgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50SW1wbDo6ZGVmYXVsdEV2
ZW50SA0KICAgICAgICAgICAgIHhQb3MgPSBtZS0+Y2xpZW50WCgpIC0gb2Zmc2V0WDsNCiAgICAg
ICAgICAgICB5UG9zID0gbWUtPmNsaWVudFkoKSAtIG9mZnNldFk7DQogICAgICAgICB9DQotCQlt
ZS0+c2V0RGVmYXVsdEhhbmRsZWQoKTsNCisgICAgICAgIG1lLT5zZXREZWZhdWx0SGFuZGxlZCgp
Ow0KICAgICB9DQogDQogICAgIC8vIERPTUFjdGl2YXRlIGV2ZW50cyBjYXVzZSB0aGUgaW5wdXQg
dG8gYmUgImFjdGl2YXRlZCIgLSBpbiB0aGUgY2FzZSBvZiBpbWFnZSBhbmQgc3VibWl0IGlucHV0
cywgdGhpcyBtZWFucw0KQEAgLTI1MTksNyArMjUxOSw3IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1l
bnRJbXBsOjpyZW1vdmUoIGxvbmcNCiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50SW1wbDo6Ymx1cigp
DQogew0KICAgICBpZihnZXREb2N1bWVudCgpLT5mb2N1c05vZGUoKSA9PSB0aGlzKQ0KLQlnZXRE
b2N1bWVudCgpLT5zZXRGb2N1c05vZGUoMCk7DQorICAgIGdldERvY3VtZW50KCktPnNldEZvY3Vz
Tm9kZSgwKTsNCiB9DQogDQogdm9pZCBIVE1MU2VsZWN0RWxlbWVudEltcGw6OmZvY3VzKCkNCkBA
IC0yNzcxLDI4ICsyNzcxLDI4IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnRJbXBsOjpyZWNhbGNM
aXN0SXQNCiAgICAgICAgIGlmIChjdXJyZW50LT5pZCgpID09IElEX09QVEdST1VQICYmIGN1cnJl
bnQtPmZpcnN0Q2hpbGQoKSkgew0KICAgICAgICAgICAgIC8vICMjIyB3aGF0IGlmIG9wdGdyb3Vw
IGNvbnRhaW5zIGp1c3QgY29tbWVudHM/IGRvbid0IHdhbnQgb25lIG9mIG5vIG9wdGlvbnMgaW4g
aXQuLi4NCiAjaWYgTk9LSUFfQ0hBTkdFUyANCi0JCQkvLyBPT00gaGFuZGxpbmcNCisgICAgICAg
ICAgICAvLyBPT00gaGFuZGxpbmcNCiAgICAgICAgICAgICBpZiggIW1fbGlzdEl0ZW1zLnJlc2l6
ZShtX2xpc3RJdGVtcy5zaXplKCkrMSkgKQ0KLQkJCXsNCi0JCQkJbV9saXN0SXRlbXMucmVzaXpl
KCAxICk7CS8vIGF2b2lkIG5vIG9wdGlvbnMgaW4gYSBzZWxlY3QgZWxlbWVudA0KLQkJCQltX3Jl
Y2FsY0xpc3RJdGVtcyA9IGZhbHNlOw0KKyAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAg
bV9saXN0SXRlbXMucmVzaXplKCAxICk7ICAgIC8vIGF2b2lkIG5vIG9wdGlvbnMgaW4gYSBzZWxl
Y3QgZWxlbWVudA0KKyAgICAgICAgICAgICAgICBtX3JlY2FsY0xpc3RJdGVtcyA9IGZhbHNlOw0K
IA0KLQkJCQlyZXR1cm47DQotCQkJfQ0KKyAgICAgICAgICAgICAgICByZXR1cm47DQorICAgICAg
ICAgICAgfQ0KICNlbmRpZg0KICAgICAgICAgICAgIG1fbGlzdEl0ZW1zW21fbGlzdEl0ZW1zLnNp
emUoKS0xXSA9IHN0YXRpY19jYXN0PEhUTUxFbGVtZW50SW1wbCo+KGN1cnJlbnQpOw0KICAgICAg
ICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LT5maXJzdENoaWxkKCk7DQogICAgICAgICB9DQogICAg
ICAgICBpZiAoY3VycmVudC0+aWQoKSA9PSBJRF9PUFRJT04pIHsNCiAjaWYgTk9LSUFfQ0hBTkdF
UyANCi0JCQkvLyBPT00gaGFuZGxpbmcNCisgICAgICAgICAgICAvLyBPT00gaGFuZGxpbmcNCiAg
ICAgICAgICAgICBpZiggIW1fbGlzdEl0ZW1zLnJlc2l6ZShtX2xpc3RJdGVtcy5zaXplKCkrMSkg
KQ0KLQkJCXsNCi0JCQkJbV9saXN0SXRlbXMucmVzaXplKCAxICk7CS8vIGF2b2lkIG5vIG9wdGlv
bnMgaW4gYSBzZWxlY3QgZWxlbWVudA0KLQkJCQltX3JlY2FsY0xpc3RJdGVtcyA9IGZhbHNlOw0K
KyAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgbV9saXN0SXRlbXMucmVzaXplKCAxICk7
ICAgIC8vIGF2b2lkIG5vIG9wdGlvbnMgaW4gYSBzZWxlY3QgZWxlbWVudA0KKyAgICAgICAgICAg
ICAgICBtX3JlY2FsY0xpc3RJdGVtcyA9IGZhbHNlOw0KIA0KLQkJCQlyZXR1cm47DQotCQkJfQ0K
KyAgICAgICAgICAgICAgICByZXR1cm47DQorICAgICAgICAgICAgfQ0KICNlbmRpZg0KICAgICAg
ICAgICAgIG1fbGlzdEl0ZW1zW21fbGlzdEl0ZW1zLnNpemUoKS0xXSA9IHN0YXRpY19jYXN0PEhU
TUxFbGVtZW50SW1wbCo+KGN1cnJlbnQpOw0KICAgICAgICAgICAgIGlmICghZm91bmRTZWxlY3Rl
ZCAmJiAhbV9tdWx0aXBsZSAmJiBtX3NpemUgPD0gMSkgew0KQEAgLTMyODcsMTkgKzMyODcsMTkg
QEAgdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50SW1wbDo6cGFyc2VIVE1MQQ0KICAgICAgICAgYnJl
YWs7DQogICAgIGNhc2UgQVRUUl9PTkZPQ1VTOg0KICAgICAgICAgc2V0SFRNTEV2ZW50TGlzdGVu
ZXIoRXZlbnRJbXBsOjpGT0NVU19FVkVOVCwNCi0JICAgIGdldERvY3VtZW50KCktPmNyZWF0ZUhU
TUxFdmVudExpc3RlbmVyKGF0dHItPnZhbHVlKCkuc3RyaW5nKCksIHRoaXMpKTsNCisgICAgICAg
IGdldERvY3VtZW50KCktPmNyZWF0ZUhUTUxFdmVudExpc3RlbmVyKGF0dHItPnZhbHVlKCkuc3Ry
aW5nKCksIHRoaXMpKTsNCiAgICAgICAgIGJyZWFrOw0KICAgICBjYXNlIEFUVFJfT05CTFVSOg0K
ICAgICAgICAgc2V0SFRNTEV2ZW50TGlzdGVuZXIoRXZlbnRJbXBsOjpCTFVSX0VWRU5ULA0KLQkg
ICAgZ2V0RG9jdW1lbnQoKS0+Y3JlYXRlSFRNTEV2ZW50TGlzdGVuZXIoYXR0ci0+dmFsdWUoKS5z
dHJpbmcoKSwgdGhpcykpOw0KKyAgICAgICAgZ2V0RG9jdW1lbnQoKS0+Y3JlYXRlSFRNTEV2ZW50
TGlzdGVuZXIoYXR0ci0+dmFsdWUoKS5zdHJpbmcoKSwgdGhpcykpOw0KICAgICAgICAgYnJlYWs7
DQogICAgIGNhc2UgQVRUUl9PTlNFTEVDVDoNCiAgICAgICAgIHNldEhUTUxFdmVudExpc3RlbmVy
KEV2ZW50SW1wbDo6U0VMRUNUX0VWRU5ULA0KLQkgICAgZ2V0RG9jdW1lbnQoKS0+Y3JlYXRlSFRN
TEV2ZW50TGlzdGVuZXIoYXR0ci0+dmFsdWUoKS5zdHJpbmcoKSwgdGhpcykpOw0KKyAgICAgICAg
Z2V0RG9jdW1lbnQoKS0+Y3JlYXRlSFRNTEV2ZW50TGlzdGVuZXIoYXR0ci0+dmFsdWUoKS5zdHJp
bmcoKSwgdGhpcykpOw0KICAgICAgICAgYnJlYWs7DQogICAgIGNhc2UgQVRUUl9PTkNIQU5HRToN
CiAgICAgICAgIHNldEhUTUxFdmVudExpc3RlbmVyKEV2ZW50SW1wbDo6Q0hBTkdFX0VWRU5ULA0K
LQkgICAgZ2V0RG9jdW1lbnQoKS0+Y3JlYXRlSFRNTEV2ZW50TGlzdGVuZXIoYXR0ci0+dmFsdWUo
KS5zdHJpbmcoKSwgdGhpcykpOw0KKyAgICAgICAgZ2V0RG9jdW1lbnQoKS0+Y3JlYXRlSFRNTEV2
ZW50TGlzdGVuZXIoYXR0ci0+dmFsdWUoKS5zdHJpbmcoKSwgdGhpcykpOw0KICAgICAgICAgYnJl
YWs7DQogICAgIGRlZmF1bHQ6DQogICAgICAgICBIVE1MR2VuZXJpY0Zvcm1FbGVtZW50SW1wbDo6
cGFyc2VIVE1MQXR0cmlidXRlKGF0dHIpOw0KQEAgLTMzOTYsNyArMzM5Niw3IEBAIHZvaWQgSFRN
TFRleHRBcmVhRWxlbWVudEltcGw6OnNldERlZmF1bHQNCiB2b2lkIEhUTUxUZXh0QXJlYUVsZW1l
bnRJbXBsOjpibHVyKCkNCiB7DQogICAgIGlmKGdldERvY3VtZW50KCktPmZvY3VzTm9kZSgpID09
IHRoaXMpDQotCWdldERvY3VtZW50KCktPnNldEZvY3VzTm9kZSgwKTsNCisgICAgZ2V0RG9jdW1l
bnQoKS0+c2V0Rm9jdXNOb2RlKDApOw0KIH0NCiANCiB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnRJ
bXBsOjpmb2N1cygpDQpAQCAtMzQ1OCw3ICszNDU4LDcgQEAgdm9pZCBIVE1MSXNJbmRleEVsZW1l
bnRJbXBsOjpwYXJzZUhUTUxBdA0KICAgICBzd2l0Y2goYXR0ci0+aWQoKSkNCiAgICAgew0KICAg
ICBjYXNlIEFUVFJfUFJPTVBUOg0KLQlzZXRWYWx1ZShhdHRyLT52YWx1ZSgpKTsNCisgICAgc2V0
VmFsdWUoYXR0ci0+dmFsdWUoKSk7DQogICAgIGRlZmF1bHQ6DQogICAgICAgICAvLyBkb24ndCBj
YWxsIEhUTUxJbnB1dEVsZW1lbnQ6OnBhcnNlSFRNTEF0dHJpYnV0ZSBoZXJlLCBhcyBpdCB3b3Vs
ZA0KICAgICAgICAgLy8gYWNjZXB0IGF0dHJpYnV0ZXMgdGhpcyBlbGVtZW50IGRvZXMgbm90IHN1
cHBvcnQNCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FLSFRNTFBhcnQuY3BwDQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQot
LS0gV2ViQ29yZS9rd3EvS1dRS0hUTUxQYXJ0LmNwcAkocmV2aXNpb24gMTkxOTgpDQorKysgV2Vi
Q29yZS9rd3EvS1dRS0hUTUxQYXJ0LmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTcxOCwxMiArNzE4
LDEyIEBAIHZvaWQgS1dRS0hUTUxQYXJ0OjpjbGVhclJlY29yZGVkRm9ybVZhbHUNCiB9DQogDQog
Ly92b2lkIEtXUUtIVE1MUGFydDo6cmVjb3JkRm9ybVZhbHVlKGNvbnN0IFFTdHJpbmcgJm5hbWUs
IGNvbnN0IFFTdHJpbmcgJnZhbHVlLCBIVE1MRm9ybUVsZW1lbnRJbXBsICplbGVtZW50KQ0KLXZv
aWQgS1dRS0hUTUxQYXJ0OjpyZWNvcmRGb3JtVmFsdWUoY29uc3QgUVN0cmluZyAmbmFtZSwgY29u
c3QgUVN0cmluZyAmdmFsdWUsIFRCb29sIGlzUGFzc3dvcmQpDQordm9pZCBLV1FLSFRNTFBhcnQ6
OnJlY29yZEZvcm1WYWx1ZShjb25zdCBRU3RyaW5nICZuYW1lLCBjb25zdCBRU3RyaW5nICZ2YWx1
ZSwgVEJvb2wgaXNQYXNzd29yZCwgVEJvb2wgaXNBdXRvQ29tcGxldGUpDQogew0KLSAgICBUUkFQ
X0lHTk9SRShyZWNvcmRGb3JtVmFsdWVMKG5hbWUsIHZhbHVlLCBpc1Bhc3N3b3JkKSk7DQorICAg
IFRSQVBfSUdOT1JFKHJlY29yZEZvcm1WYWx1ZUwobmFtZSwgdmFsdWUsIGlzUGFzc3dvcmQsIGlz
QXV0b0NvbXBsZXRlKSk7DQogfQ0KIA0KLXZvaWQgS1dRS0hUTUxQYXJ0OjpyZWNvcmRGb3JtVmFs
dWVMKGNvbnN0IFFTdHJpbmcgJm5hbWUsIGNvbnN0IFFTdHJpbmcgJnZhbHVlLCBUQm9vbCBpc1Bh
c3N3b3JkKQ0KK3ZvaWQgS1dRS0hUTUxQYXJ0OjpyZWNvcmRGb3JtVmFsdWVMKGNvbnN0IFFTdHJp
bmcgJm5hbWUsIGNvbnN0IFFTdHJpbmcgJnZhbHVlLCBUQm9vbCBpc1Bhc3N3b3JkLCBUQm9vbCBp
c0F1dG9Db21wbGV0ZSkNCiAgIHsNCiAgIGlmICghX2Zvcm1WYWx1ZXNBYm91dFRvQmVTdWJtaXR0
ZWQpIHsNCiAgICAgX2Zvcm1WYWx1ZXNBYm91dFRvQmVTdWJtaXR0ZWQgPSBuZXcgKEVMZWF2ZSkg
Q0FycmF5UHRyRmxhdDxDV2ViQ29yZUZvcm1EYXRhRWxlbWVudD4oMjApOw0KQEAgLTczMSw2ICs3
MzEsNyBAQCB2b2lkIEtXUUtIVE1MUGFydDo6cmVjb3JkRm9ybVZhbHVlTChjb25zDQogDQogICAg
IENXZWJDb3JlRm9ybURhdGFFbGVtZW50KiBmRGF0YUVsZW0gPSBuZXcgKEVMZWF2ZSkgQ1dlYkNv
cmVGb3JtRGF0YUVsZW1lbnQoKTsNCiAgICAgZkRhdGFFbGVtLT5pc1Bhc3N3b3JkID0gaXNQYXNz
d29yZDsNCisgICAgZkRhdGFFbGVtLT5pc0F1dG9Db21wbGV0ZSA9IGlzQXV0b0NvbXBsZXRlOw0K
ICAgICAvLyBjb3B5IG5hbWUgYW5kIHZhbHVlIHNpbmNlIHRoZXkgZ2V0IGRlbGV0ZWQgYmVmb3Jl
IGJlaW5nIHNhdmVkDQogICAgIGZEYXRhRWxlbS0+aUtleSA9IG5hbWUuRGVzKCkuQWxsb2NMQygp
Ow0KICAgZkRhdGFFbGVtLT5pVmFsdWUgPSB2YWx1ZS5EZXMoKS5BbGxvY0xDKCk7DQpJbmRleDog
V2ViQ29yZS9rd3EvS1dRS0hUTUxQYXJ0LmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJDb3JlL2t3cS9L
V1FLSFRNTFBhcnQuaAkocmV2aXNpb24gMTkwNzYpDQorKysgV2ViQ29yZS9rd3EvS1dRS0hUTUxQ
YXJ0LmgJKHdvcmtpbmcgY29weSkNCkBAIC0yNjAsNyArMjYwLDcgQEAgcHVibGljOg0KIA0KICAg
ICB2b2lkIGNsZWFyUmVjb3JkZWRGb3JtVmFsdWVzKCk7DQogICAgIC8vdm9pZCByZWNvcmRGb3Jt
VmFsdWUoY29uc3QgUVN0cmluZyAmbmFtZSwgY29uc3QgUVN0cmluZyAmdmFsdWUsIERPTTo6SFRN
TEZvcm1FbGVtZW50SW1wbCAqZWxlbWVudCk7DQotICAgIHZvaWQgcmVjb3JkRm9ybVZhbHVlKGNv
bnN0IFFTdHJpbmcgJm5hbWUsIGNvbnN0IFFTdHJpbmcgJnZhbHVlLFRCb29sIGlzUGFzc3dvcmQp
Ow0KKyAgICB2b2lkIHJlY29yZEZvcm1WYWx1ZShjb25zdCBRU3RyaW5nICZuYW1lLCBjb25zdCBR
U3RyaW5nICZ2YWx1ZSxUQm9vbCBpc1Bhc3N3b3JkLCBUQm9vbCBpc0F1dG9Db21wbGV0ZSk7DQog
ICAgIERPTTo6SFRNTEZvcm1FbGVtZW50SW1wbCAqY3VycmVudEZvcm0oKSBjb25zdDsNCiANCiAv
LyAgICBOU1N0cmluZyAqc2VhcmNoRm9yTGFiZWxzQWJvdmVDZWxsKFFSZWdFeHAgKnJlZ0V4cCwg
RE9NOjpIVE1MVGFibGVDZWxsRWxlbWVudEltcGwgKmNlbGwpOw0KQEAgLTM2Nyw3ICszNjcsNyBA
QCBwcml2YXRlOg0KIA0KICAgICBpbnQgY2FsY3VsYXRlWm9vbUZhY3RvcigpIGNvbnN0Ow0KICAg
Ly8gTGVhdmluZyB2ZXJzaW9uIG9mIHZvaWQgcmVjb3JkRm9ybVZhbHVlKGNvbnN0IFFTdHJpbmcg
Jm5hbWUsIGNvbnN0IFFTdHJpbmcgJnZhbHVlLFRCb29sIGlzUGFzc3dvcmQpOw0KLSAgICB2b2lk
IHJlY29yZEZvcm1WYWx1ZUwoY29uc3QgUVN0cmluZyAmbmFtZSwgY29uc3QgUVN0cmluZyAmdmFs
dWUsVEJvb2wgaXNQYXNzd29yZCk7DQorICAgIHZvaWQgcmVjb3JkRm9ybVZhbHVlTChjb25zdCBR
U3RyaW5nICZuYW1lLCBjb25zdCBRU3RyaW5nICZ2YWx1ZSxUQm9vbCBpc1Bhc3N3b3JkLCBUQm9v
bCBpc0F1dG9Db21wbGV0ZSk7DQogDQogICAgIHZpcnR1YWwgdm9pZCBraHRtbE1vdXNlUHJlc3NF
dmVudChraHRtbDo6TW91c2VQcmVzc0V2ZW50ICopOw0KICAgICB2aXJ0dWFsIHZvaWQga2h0bWxN
b3VzZURvdWJsZUNsaWNrRXZlbnQoa2h0bWw6Ok1vdXNlRG91YmxlQ2xpY2tFdmVudCAqKTsNCklu
ZGV4OiBXZWJLaXQvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0NoYW5nZUxvZwko
cmV2aXNpb24gMTkyNTkpDQorKysgV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQ0KQEAg
LTEsMyArMSwyMCBAQA0KK3lhaGFyb24gIDx5YWVsLmFoYXJvbkBub2tpYS5jb20+DQorDQorICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCisgICAgICAgIERFU0M6IFtTNjBdIEJ1
ZyBJRCBNTElPLTZYWEVWVTogQnJvd3Nlck5HOiBSZWR1bmRhbnQgcGFzc3dvcmQgbWFuYWdlciBu
b3RpZmljYXRpb24gb24gc2VjdXJlIHBhZ2VzDQorICAgICAgICBodHRwOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQ4NA0KKw0KKyAgICAgICAgV0FSTklORzogTk8gVEVTVCBD
QVNFUyBBRERFRCBPUiBDSEFOR0VEDQorDQorICAgICAgICAqIGJyaWRnZS9XZWJDb3JlRm9ybURh
dGFFbGVtZW50Lmg6DQorICAgICAgICAqIGtodG1sL2h0bWwvaHRtbF9mb3JtaW1wbC5jcHA6DQor
ICAgICAgICAoRE9NOjpIVE1MRm9ybUVsZW1lbnRJbXBsOjpzdWJtaXQpOg0KKyAgICAgICAgKiBr
d3EvS1dRS0hUTUxQYXJ0LmNwcDoNCisgICAgICAgIChLV1FLSFRNTFBhcnQ6OnJlY29yZEZvcm1W
YWx1ZSk6DQorICAgICAgICAoS1dRS0hUTUxQYXJ0OjpyZWNvcmRGb3JtVmFsdWVMKToNCisgICAg
ICAgICoga3dxL0tXUUtIVE1MUGFydC5oOg0KKw0KKw0KIDIwMDctMDEtMzAgIHNhcmVlbiAgPHNo
eWFtLnNhcmVlbkBub2tpYS5jb20+DQogDQogICAgICAgICBSZXZpZXdlZCBieSBqb3NlcGgubGln
bWFuQG5va2lhLmNvbQ0KSW5kZXg6IFdlYktpdC9Ccm93c2VyVmlldy9zcmMvRm9ybURhdGFBdXRv
RmlsbFN0b3JlLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9Ccm93c2VyVmlldy9zcmMvRm9y
bURhdGFBdXRvRmlsbFN0b3JlLmNwcAkocmV2aXNpb24gMTkyNTYpDQorKysgV2ViS2l0L0Jyb3dz
ZXJWaWV3L3NyYy9Gb3JtRGF0YUF1dG9GaWxsU3RvcmUuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAt
MjgxLDcgKzI4MSw3IEBAIHZvaWQgQ0Zvcm1EYXRhQXV0b0ZpbGxTdG9yZTo6U2F2ZURhdGEgKGMN
CiAgICAgZm9yIChUSW50IGkgPSAwOyBpIDwgYUZvcm1EYXRhLkNvdW50KCk7IGkrKykNCiAgICAg
ICAgIHsNCiAgICAgICAgIGNvbnN0IENXZWJDb3JlRm9ybURhdGFFbGVtZW50KiBlbGVtID0gYUZv
cm1EYXRhLkF0KGkpOw0KLSAgICAgICAgaWYgKCBlbGVtLT5pc1Bhc3N3b3JkID09IEVGYWxzZSAN
CisgICAgICAgIGlmICggZWxlbS0+aXNQYXNzd29yZCA9PSBFRmFsc2UgJiYgZWxlbS0+aXNBdXRv
Q29tcGxldGUNCiAgICAgICAgICAgICAmJiBlbGVtLT5pS2V5LT5MZW5ndGgoKSA+IDAgDQogICAg
ICAgICAgICAgJiYgZWxlbS0+aVZhbHVlLT5MZW5ndGgoKSA+IDAgKQ0KICAgICAgICAgICAgIHsN
CkluZGV4OiBXZWJLaXQvQnJvd3NlclZpZXcvc3JjL0Zvcm1EYXRhTG9naW5TdG9yZS5jcHANCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0NCi0tLSBXZWJLaXQvQnJvd3NlclZpZXcvc3JjL0Zvcm1EYXRhTG9naW5TdG9yZS5j
cHAJKHJldmlzaW9uIDE5MjU2KQ0KKysrIFdlYktpdC9Ccm93c2VyVmlldy9zcmMvRm9ybURhdGFM
b2dpblN0b3JlLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTI5Nyw2ICsyOTcsNyBAQCB2b2lkIENG
b3JtRGF0YUxvZ2luU3RvcmU6OlNhdmVEYXRhTCAoY29uDQogICAvLyBiZWZvcmUgc2F2aW5nDQog
ICBpZiAocGFzc3dvcmRJZHggPiAtMSAmJiBhRm9ybURhdGEuQXQocGFzc3dvcmRJZHgpLT5pVmFs
dWUtPkxlbmd0aCgpPjAgJiYgDQogICAgICAgbG9naW5JZHggPiAtMSAmJiBhRm9ybURhdGEuQXQo
bG9naW5JZHgpLT5pVmFsdWUtPkxlbmd0aCgpPjAgJiYgDQorICAgICAgYUZvcm1EYXRhLkF0KGxv
Z2luSWR4KS0+aXNBdXRvQ29tcGxldGUgJiYNCiAgICAgICBTYXZlRGlhbG9nTChhVXJsKSA9PSBF
TG9naW5EYXRhU2F2ZVllcykNCiAgICAgew0KICAgICBDTG9naW5EYXRhRWxlbWVudCogZWxlbSA9
IG5ldyAoRUxlYXZlKSBDTG9naW5EYXRhRWxlbWVudCgpOw0K
</data>
<flag name="review"
          id="4901"
          type_id="1"
          status="+"
          setter="zalan"
    />
          </attachment>
      

    </bug>

</bugzilla>