RE: [PATCH v2]Btrfs: pwrite blocked when writing from the mmaped buffer of the same page
From: Zhong, Xin <hidden>
Date: 2011-02-11 04:39:39
SGksDQoNCkNvdWxkIHlvdSBwYXN0ZSB0aGUgb3V0cHV0IG9mIHN5c3JxK3QgaGVyZT8gVGhhbmtz IQ0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogSm9oYW5uZXMgSGlydGUgW21h aWx0bzpqb2hhbm5lcy5oaXJ0ZUBmZW0udHUtaWxtZW5hdS5kZV0gDQpTZW50OiBXZWRuZXNkYXks IEZlYnJ1YXJ5IDAyLCAyMDExIDc6MzUgQU0NClRvOiBaaG9uZywgWGluDQpDYzogTWFyaWEgV2lr c3Ryw7ZtOyBsaW51eC1idHJmc0B2Z2VyLmtlcm5lbC5vcmcNClN1YmplY3Q6IFJlOiBbUEFUQ0gg djJdQnRyZnM6IHB3cml0ZSBibG9ja2VkIHdoZW4gd3JpdGluZyBmcm9tIHRoZSBtbWFwZWQgYnVm ZmVyIG9mIHRoZSBzYW1lIHBhZ2UNCg0KT24gRnJpZGF5IDI4IEphbnVhcnkgMjAxMSAwNDo1Mzoy NCBaaG9uZywgWGluIHdyb3RlOg0KPiBDb3VsZCB5b3UgZGVzY3JpYmUgdGhlIHN0ZXBzIHRvIHJl Y3JlYXRlIGl0Pw0KPiBJdCB3aWxsIGJlIGEgZ3JlYXQgaGVscCBmb3IgbWUgdG8gbG9vayBmdXJ0 aGVyLiBUaGFua3MhDQoNCkl0J3MgYSBsaXR0bGUgc3RyYW5nZS4gSSBoYXZlIHRvIHN5c3RlbXMg d2l0aCBidHJmcywgYm90aCBHZW50b28tYmFzZWQuIE9uZSBpcyANCmFmZmVjdGVkIGJ5IHRoaXMg YnVnIHRoZSBvdGhlciBpcyBub3QuIE9uIHRoZSBhZmZlY3RlZCBzeXN0ZW0gaXQgaXMgZW5vdWdo IHRvIGRvIA0KYSAnZW1lcmdlIGRldi1saWJzL2xpYmdjcnlwdCcgdGhhdCBzaG91bGQgbm9ybWFs eSBjb21waWxlIGFuZCBpbnN0YWxsIA0KbGliZ2NyeXB0LiBUaGUgZW1lcmdlIGNvbW1hbmQgaXMg cGFydCBvZiBwb3J0YWdlLCB0aGUgcGFja2FnZSBtYW5hZ2VtZW50IG9mIA0KR2VudG9vLiANClRo ZSBzdHJhY2Ugb3V0cHV0IGxvb2tzIHNpbWlsYXIgdG8gdGhlIG9uZSBmcm9tIE1hcmlhOg0KDQpv cGVuKCIvaG9tZS90bXAvcG9ydGFnZS9kZXYtbGlicy9saWJnY3J5cHQtMS40LjYvLmlwY19pbiIs IE9fUkRPTkxZfA0KT19OT05CTE9DS3xPX0xBUkdFRklMRSkgPSAzDQpmc3RhdDY0KDMsIHtzdF9t b2RlPVNfSUZJRk98MDc3MCwgc3Rfc2l6ZT0wLCAuLi59KSA9IDANCmlvY3RsKDMsIFNORENUTF9U TVJfVElNRUJBU0Ugb3IgU05EUlZfVElNRVJfSU9DVExfTkVYVF9ERVZJQ0Ugb3IgVENHRVRTLCAN CjB4YmZmNWY2NzgpID0gLTEgRUlOVkFMIChJbnZhbGlkIGFyZ3VtZW50KQ0Kb3BlbigiL2Rldi9w dG14IiwgT19SRFdSKSAgICAgICAgICAgICAgID0gNQ0KaW9jdGwoNSwgU05EQ1RMX1RNUl9USU1F QkFTRSBvciBTTkRSVl9USU1FUl9JT0NUTF9ORVhUX0RFVklDRSBvciBUQ0dFVFMsIA0Ke0IzODQw MCBvcG9zdCBpc2lnIGljYW5vbiBlY2hvIC4uLn0pID0gMA0KaW9jdGwoNSwgVElPQ0dQVE4sIFsy XSkgICAgICAgICAgICAgICAgID0gMA0Kc3RhdDY0KCIvZGV2L3B0cy8yIiwge3N0X21vZGU9U19J RkNIUnwwNjIwLCBzdF9yZGV2PW1ha2VkZXYoMTM2LCAyKSwgLi4ufSkgPSAwDQpnZXR1aWQzMigp ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAwDQppb2N0bCg1LCBUSU9DU1BUTENLLCBb MF0pICAgICAgICAgICAgICAgPSAwDQppb2N0bCg1LCBTTkRDVExfVE1SX1RJTUVCQVNFIG9yIFNO RFJWX1RJTUVSX0lPQ1RMX05FWFRfREVWSUNFIG9yIFRDR0VUUywgDQp7QjM4NDAwIG9wb3N0IGlz aWcgaWNhbm9uIGVjaG8gLi4ufSkgPSAwDQppb2N0bCg1LCBUSU9DR1BUTiwgWzJdKSAgICAgICAg ICAgICAgICAgPSAwDQpzdGF0NjQoIi9kZXYvcHRzLzIiLCB7c3RfbW9kZT1TX0lGQ0hSfDA2MjAs IHN0X3JkZXY9bWFrZWRldigxMzYsIDIpLCAuLi59KSA9IDANCm9wZW4oIi9kZXYvcHRzLzIiLCBP X1JEV1J8T19OT0NUVFkpICAgICA9IDYNCmlvY3RsKDYsIFNORENUTF9UTVJfVElNRUJBU0Ugb3Ig U05EUlZfVElNRVJfSU9DVExfTkVYVF9ERVZJQ0Ugb3IgVENHRVRTLCANCntCMzg0MDAgb3Bvc3Qg aXNpZyBpY2Fub24gZWNobyAuLi59KSA9IDANCmlvY3RsKDYsIFNORENUTF9UTVJfVElNRUJBU0Ug b3IgU05EUlZfVElNRVJfSU9DVExfTkVYVF9ERVZJQ0Ugb3IgVENHRVRTLCANCntCMzg0MDAgb3Bv c3QgaXNpZyBpY2Fub24gZWNobyAuLi59KSA9IDANCmlvY3RsKDYsIFNORENUTF9UTVJfU1RBUlQg b3IgU05EUlZfVElNRVJfSU9DVExfVFJFQUQgb3IgVENTRVRTLCB7QjM4NDAwIC1vcG9zdCANCmlz aWcgaWNhbm9uIGVjaG8gLi4ufSkgPSAwDQppb2N0bCgxLCBTTkRDVExfVE1SX1RJTUVCQVNFIG9y IFNORFJWX1RJTUVSX0lPQ1RMX05FWFRfREVWSUNFIG9yIFRDR0VUUywgDQp7QjM4NDAwIG9wb3N0 IGlzaWcgaWNhbm9uIGVjaG8gLi4ufSkgPSAwDQppb2N0bCgxLCBTTkRDVExfVE1SX1RJTUVCQVNF IG9yIFNORFJWX1RJTUVSX0lPQ1RMX05FWFRfREVWSUNFIG9yIFRDR0VUUywgDQp7QjM4NDAwIG9w b3N0IGlzaWcgaWNhbm9uIGVjaG8gLi4ufSkgPSAwDQppb2N0bCgxLCBTTkRDVExfVE1SX1RJTUVC QVNFIG9yIFNORFJWX1RJTUVSX0lPQ1RMX05FWFRfREVWSUNFIG9yIFRDR0VUUywgDQp7QjM4NDAw IG9wb3N0IGlzaWcgaWNhbm9uIGVjaG8gLi4ufSkgPSAwDQpzdGF0NjQoIi9yb290Ly50ZXJtaW5m byIsIDB4YmZmNWU3OTApICAgPSAtMSBFTk9FTlQgKE5vIHN1Y2ggZmlsZSBvciBkaXJlY3Rvcnkp DQpzdGF0NjQoIi9ldGMvdGVybWluZm8iLCB7c3RfbW9kZT1TX0lGRElSfDA3NTUsIHN0X3NpemU9 MTQsIC4uLn0pID0gMA0KYWNjZXNzKCIvZXRjL3Rlcm1pbmZvL3gveHRlcm0iLCBSX09LKSAgID0g MA0Kb3BlbigiL2V0Yy90ZXJtaW5mby94L3h0ZXJtIiwgT19SRE9OTFl8T19MQVJHRUZJTEUpID0g Nw0KcmVhZCg3LCAiXDMyXDAwMTBcMCZcMFwxN1wwXDIzNVwxbFw1eHRlcm18eHRlcm0gdGVybWlu YWwiLi4uLCA0MDk3KSA9IDMyNTgNCmNsb3NlKDcpICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA9IDANCmlvY3RsKDEsIFNORENUTF9UTVJfVElNRUJBU0Ugb3IgU05EUlZfVElNRVJfSU9D VExfTkVYVF9ERVZJQ0Ugb3IgVENHRVRTLCANCntCMzg0MDAgb3Bvc3QgaXNpZyBpY2Fub24gZWNo byAuLi59KSA9IDANCmlvY3RsKDEsIFNORENUTF9UTVJfVElNRUJBU0Ugb3IgU05EUlZfVElNRVJf SU9DVExfTkVYVF9ERVZJQ0Ugb3IgVENHRVRTLCANCntCMzg0MDAgb3Bvc3QgaXNpZyBpY2Fub24g ZWNobyAuLi59KSA9IDANCmlvY3RsKDEsIFNORENUTF9UTVJfVElNRUJBU0Ugb3IgU05EUlZfVElN RVJfSU9DVExfTkVYVF9ERVZJQ0Ugb3IgVENHRVRTLCANCntCMzg0MDAgb3Bvc3QgaXNpZyBpY2Fu b24gZWNobyAuLi59KSA9IDANCmlvY3RsKDEsIFRJT0NHV0lOU1osIHt3c19yb3c9NDAsIHdzX2Nv bD0yMDcsIHdzX3hwaXhlbD0wLCB3c195cGl4ZWw9MH0pID0gMA0KYWNjZXNzKCIvdXNyL2xvY2Fs L3NiaW4vc3R0eSIsIFhfT0spICAgID0gLTEgRU5PRU5UIChObyBzdWNoIGZpbGUgb3IgZGlyZWN0 b3J5KQ0KYWNjZXNzKCIvdXNyL2xvY2FsL2Jpbi9zdHR5IiwgWF9PSykgICAgID0gLTEgRU5PRU5U IChObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5KQ0KYWNjZXNzKCIvdXNyL3NiaW4vc3R0eSIsIFhf T0spICAgICAgICAgID0gLTEgRU5PRU5UIChObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5KQ0KYWNj ZXNzKCIvdXNyL2Jpbi9zdHR5IiwgWF9PSykgICAgICAgICAgID0gLTEgRU5PRU5UIChObyBzdWNo IGZpbGUgb3IgZGlyZWN0b3J5KQ0KYWNjZXNzKCIvc2Jpbi9zdHR5IiwgWF9PSykgICAgICAgICAg ICAgID0gLTEgRU5PRU5UIChObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5KQ0KYWNjZXNzKCIvYmlu L3N0dHkiLCBYX09LKSAgICAgICAgICAgICAgID0gMA0Kc3RhdDY0KCIvYmluL3N0dHkiLCB7c3Rf bW9kZT1TX0lGUkVHfDA3NTUsIHN0X3NpemU9NTg4MzYsIC4uLn0pID0gMA0KY2xvbmUoY2hpbGRf c3RhY2s9MCwgZmxhZ3M9Q0xPTkVfQ0hJTERfQ0xFQVJUSUR8Q0xPTkVfQ0hJTERfU0VUVElEfFNJ R0NITEQsIA0KY2hpbGRfdGlkcHRyPTB4Yjc1M2Q3MjgpID0gMjc1Mg0Kd2FpdHBpZCgyNzUyLCBb e1dJRkVYSVRFRChzKSAmJiBXRVhJVFNUQVRVUyhzKSA9PSAwfV0sIDApID0gMjc1Mg0KLS0tIFNJ R0NITEQgKENoaWxkIGV4aXRlZCkgQCAwICgwKSAtLS0NCmZjbnRsNjQoNSwgRl9HRVRGTCkgICAg ICAgICAgICAgICAgICAgICA9IDB4MiAoZmxhZ3MgT19SRFdSKQ0KZmNudGw2NCg1LCBGX1NFVEZM LCBPX1JEV1J8T19OT05CTE9DSykgID0gMA0KZnN0YXQ2NCg1LCB7c3RfbW9kZT1TX0lGQ0hSfDA2 NjYsIHN0X3JkZXY9bWFrZWRldig1LCAyKSwgLi4ufSkgPSAwDQppb2N0bCg1LCBTTkRDVExfVE1S X1RJTUVCQVNFIG9yIFNORFJWX1RJTUVSX0lPQ1RMX05FWFRfREVWSUNFIG9yIFRDR0VUUywgDQp7 QjM4NDAwIC1vcG9zdCBpc2lnIGljYW5vbiBlY2hvIC4uLn0pID0gMA0Kb3BlbigiL2hvbWUvdG1w L3BvcnRhZ2UvZGV2LWxpYnMvbGliZ2NyeXB0LTEuNC42L3RlbXAvYnVpbGQubG9nIiwgT19XUk9O TFl8DQpPX0NSRUFUfE9fQVBQRU5EfE9fTEFSR0VGSUxFLCAwNjY2KSA9IDcNCmZzdGF0NjQoNywg e3N0X21vZGU9U19JRlJFR3wwNjYwLCBzdF9zaXplPTQ4MCwgLi4ufSkgPSAwDQpfbGxzZWVrKDcs IDAsIFs0ODBdLCBTRUVLX0VORCkgICAgICAgICAgPSAwDQppb2N0bCg3LCBTTkRDVExfVE1SX1RJ TUVCQVNFIG9yIFNORFJWX1RJTUVSX0lPQ1RMX05FWFRfREVWSUNFIG9yIFRDR0VUUywgDQoweGJm ZjVmYWQ4KSA9IC0xIEVOT1RUWSAoSW5hcHByb3ByaWF0ZSBpb2N0bCBmb3IgZGV2aWNlKQ0KZnN0 YXQ2NCg3LCB7c3RfbW9kZT1TX0lGUkVHfDA2NjAsIHN0X3NpemU9NDgwLCAuLi59KSA9IDANCl9s bHNlZWsoNywgMCwgWzQ4MF0sIFNFRUtfQ1VSKSAgICAgICAgICA9IDANCnN0YXQ2NCgiL2hvbWUv dG1wL3BvcnRhZ2UvZGV2LWxpYnMvbGliZ2NyeXB0LTEuNC42L3RlbXAvYnVpbGQubG9nIiwgDQp7 c3RfbW9kZT1TX0lGUkVHfDA2NjAsIHN0X3NpemU9NDgwLCAuLi59KSA9IDANCmR1cCgxKSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDgNCmZzdGF0NjQoOCwge3N0X21vZGU9U19J RkNIUnwwNjIwLCBzdF9yZGV2PW1ha2VkZXYoMTM2LCAwKSwgLi4ufSkgPSAwDQppb2N0bCg4LCBT TkRDVExfVE1SX1RJTUVCQVNFIG9yIFNORFJWX1RJTUVSX0lPQ1RMX05FWFRfREVWSUNFIG9yIFRD R0VUUywgDQp7QjM4NDAwIG9wb3N0IGlzaWcgaWNhbm9uIGVjaG8gLi4ufSkgPSAwDQpmc3RhdDY0 KDgsIHtzdF9tb2RlPVNfSUZDSFJ8MDYyMCwgc3RfcmRldj1tYWtlZGV2KDEzNiwgMCksIC4uLn0p ID0gMA0KX2xsc2Vlayg4LCAwLCAweGJmZjVmODIwLCBTRUVLX0NVUikgICAgID0gLTEgRVNQSVBF IChJbGxlZ2FsIHNlZWspDQpzdGF0NjQoIi9ob21lL3RtcC9wb3J0YWdlL2Rldi1saWJzL2xpYmdj cnlwdC0xLjQuNi90ZW1wL2Vudmlyb25tZW50IiwgDQp7c3RfbW9kZT1TX0lGUkVHfDA2NjQsIHN0 X3NpemU9MTA2NTk3LCAuLi59KSA9IDANCmNsb25lKGNoaWxkX3N0YWNrPTAsIGZsYWdzPUNMT05F X0NISUxEX0NMRUFSVElEfENMT05FX0NISUxEX1NFVFRJRHxTSUdDSExELCANCmNoaWxkX3RpZHB0 cj0weGI3NTNkNzI4KSA9IDI3NTMNCmNsb3NlKDYpICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA9IDANCmdldHRpbWVvZmRheSh7MTI5NjU3NzQ1NywgMTExMTd9LCBOVUxMKSA9IDANCnBv bGwoW3tmZD0zLCBldmVudHM9UE9MTElOfFBPTExFUlJ8UE9MTEhVUHxQT0xMTlZBTH0sIHtmZD01 LCBldmVudHM9UE9MTElOfA0KUE9MTEVSUnxQT0xMSFVQfFBPTExOVkFMfV0sIDIsIDMwMDApID0g MSAoW3tmZD01LCByZXZlbnRzPVBPTExJTn1dKQ0KcmVhZCg1LCAiPj4+IFByZXBhcmluZyBzb3Vy Y2UgaW4gL2hvbWUvdG0iLi4uLCA0MDk2KSA9IDkyDQp3cml0ZSg4LCAiPj4+IFByZXBhcmluZyBz b3VyY2UgaW4gL2hvbWUvdG0iLi4uLCA5MikgPSA5Mg0Kd3JpdGUoNywgIj4+PiBQcmVwYXJpbmcg c291cmNlIGluIC9ob21lL3RtIi4uLiwgOTIpID0gOTINCnBvbGwoW3tmZD0zLCBldmVudHM9UE9M TElOfFBPTExFUlJ8UE9MTEhVUHxQT0xMTlZBTH0sIHtmZD01LCBldmVudHM9UE9MTElOfA0KUE9M TEVSUnxQT0xMSFVQfFBPTExOVkFMfV0sIDIsIDMwMDApID0gMCAoVGltZW91dCkNCnBvbGwoW3tm ZD0zLCBldmVudHM9UE9MTElOfFBPTExFUlJ8UE9MTEhVUHxQT0xMTlZBTH0sIHtmZD01LCBldmVu dHM9UE9MTElOfA0KUE9MTEVSUnxQT0xMSFVQfFBPTExOVkFMfV0sIDIsIDMwMDApID0gMCAoVGlt ZW91dCkNCnBvbGwoW3tmZD0zLCBldmVudHM9UE9MTElOfFBPTExFUlJ8UE9MTEhVUHxQT0xMTlZB TH0sIHtmZD01LCBldmVudHM9UE9MTElOfA0KUE9MTEVSUnxQT0xMSFVQfFBPTExOVkFMfV0sIDIs IDMwMDApID0gMCAoVGltZW91dCkNCnBvbGwoW3tmZD0zLCBldmVudHM9UE9MTElOfFBPTExFUlJ8 UE9MTEhVUHxQT0xMTlZBTH0sIHtmZD01LCBldmVudHM9UE9MTElOfA0KUE9MTEVSUnxQT0xMSFVQ fFBPTExOVkFMfV0sIDIsIDMwMDApID0gMCAoVGltZW91dCkNCnBvbGwoW3tmZD0zLCBldmVudHM9 UE9MTElOfFBPTExFUlJ8UE9MTEhVUHxQT0xMTlZBTH0sIHtmZD01LCBldmVudHM9UE9MTElOfA0K UE9MTEVSUnxQT0xMSFVQfFBPTExOVkFMfV0sIDIsIDMwMDApID0gMCAoVGltZW91dCkNCnBvbGwo W3tmZD0zLCBldmVudHM9UE9MTElOfFBPTExFUlJ8UE9MTEhVUHxQT0xMTlZBTH0sIHtmZD01LCBl dmVudHM9UE9MTElOfA0KUE9MTEVSUnxQT0xMSFVQfFBPTExOVkFMfV0sIDIsIDMwMDApID0gMCAo VGltZW91dCkNCnBvbGwoW3tmZD0zLCBldmVudHM9UE9MTElOfFBPTExFUlJ8UE9MTEhVUHxQT0xM TlZBTH0sIHtmZD01LCBldmVudHM9UE9MTElOfA0KUE9MTEVSUnxQT0xMSFVQfFBPTExOVkFMfV0s IDIsIDMwMDApID0gMCAoVGltZW91dCkNCnBvbGwoW3tmZD0zLCBldmVudHM9UE9MTElOfFBPTExF UlJ8UE9MTEhVUHxQT0xMTlZBTH0sIHtmZD01LCBldmVudHM9UE9MTElOfA0KUE9MTEVSUnxQT0xM SFVQfFBPTExOVkFMfV0sIDIsIDMwMDApID0gMCAoVGltZW91dCkNCnBvbGwoW3tmZD0zLCBldmVu dHM9UE9MTElOfFBPTExFUlJ8UE9MTEhVUHxQT0xMTlZBTH0sIHtmZD01LCBldmVudHM9UE9MTElO fA0KUE9MTEVSUnxQT0xMSFVQfFBPTExOVkFMfV0sIDIsIDMwMDApID0gMCAoVGltZW91dCkNCnBv bGwoW3tmZD0zLCBldmVudHM9UE9MTElOfFBPTExFUlJ8UE9MTEhVUHxQT0xMTlZBTH0sIHtmZD01 LCBldmVudHM9UE9MTElOfA0KUE9MTEVSUnxQT0xMSFVQfFBPTExOVkFMfV0sIDIsIDMwMDApID0g MCAoVGltZW91dCkNCnBvbGwoW3tmZD0zLCBldmVudHM9UE9MTElOfFBPTExFUlJ8UE9MTEhVUHxQ T0xMTlZBTH0sIHtmZD01LCBldmVudHM9UE9MTElOfA0KUE9MTEVSUnxQT0xMSFVQfFBPTExOVkFM fV0sIDIsIDMwMDApID0gMCAoVGltZW91dCkNCnBvbGwoW3tmZD0zLCBldmVudHM9UE9MTElOfFBP TExFUlJ8UE9MTEhVUHxQT0xMTlZBTH0sIHtmZD01LCBldmVudHM9UE9MTElOfA0KUE9MTEVSUnxQ T0xMSFVQfFBPTExOVkFMfV0sIDIsIDMwMDApID0gMCAoVGltZW91dCkNCnBvbGwoW3tmZD0zLCBl dmVudHM9UE9MTElOfFBPTExFUlJ8UE9MTEhVUHxQT0xMTlZBTH0sIHtmZD01LCBldmVudHM9UE9M TElOfA0KUE9MTEVSUnxQT0xMSFVQfFBPTExOVkFMfV0sIDIsIDMwMDApID0gMCAoVGltZW91dCkN CnBvbGwoW3tmZD0zLCBldmVudHM9UE9MTElOfFBPTExFUlJ8UE9MTEhVUHxQT0xMTlZBTH0sIHtm ZD01LCBldmVudHM9UE9MTElOfA0KUE9MTEVSUnxQT0xMSFVQfFBPTExOVkFMfV0sIDIsIDMwMDAp ID0gMCAoVGltZW91dCkNCnBvbGwoW3tmZD0zLCBldmVudHM9UE9MTElOfFBPTExFUlJ8UE9MTEhV UHxQT0xMTlZBTH0sIHtmZD01LCBldmVudHM9UE9MTElOfA0KUE9MTEVSUnxQT0xMSFVQfFBPTExO VkFMfV0sIDIsIDMwMDApID0gMCAoVGltZW91dCkNCnBvbGwoW3tmZD0zLCBldmVudHM9UE9MTElO fFBPTExFUlJ8UE9MTEhVUHxQT0xMTlZBTH0sIHtmZD01LCBldmVudHM9UE9MTElOfA0KUE9MTEVS UnxQT0xMSFVQfFBPTExOVkFMfV0sIDIsIDMwMDAgPHVuZmluaXNoZWQgLi4uPg0KDQo=