Re: [testdrivendevelopment] "bottom-up" TDD and common behaviors
"Daniel Olewski" <[email protected]> Fri, 6 Dec 2019 00:32:54 +0000
| Newsgroups | gmane.comp.programming.test-driven-development |
|---|---|
| Message-ID | <[email protected]> |
--_000_F84835A61CF1469E8BE4E990F9451F27msncom_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QWxsIGZyYW1ld29ya3MgY2hhbmdlIGV2ZW50dWFsbHksIG9yIHN0b3Agd29ya2luZyB3aGVuIHNh eSBPUyB2ZXJzaW9uIGlzIHVwZGF0ZWQuIE1hbnkgb2YgdXMgaGF2ZSBsZWFybmVkIHRoYXQgdGhl IGhhcmQgd2F5IOKApiAuDQpJbnZlbnRpbmcgYSBuZXcgUkRCTVMgaW50ZXJmYWNlIOKAkyB0aGF0 IG1lYW5zIGxlYWtpbmcgUkRCTVMgd29ybGQgaW50byB5b3VyIGFwcGxpY2F0aW9uIGRvbWFpbi4g QW5kIHBlcmhhcHMgYWxzbyBpbXBsaWVzIHRoZSBiaWdnZXIgd29yayBvZiBjb3ZlcmluZyBhbGwg b2YgUkRCTVMgZnVuY3Rpb25hbGl0eS4gV2hlbiB3ZSB1c2UgUkRCTVMgaXTigJlzIGp1c3QgZm9y IHN0b3JhZ2Ugb2YgZGF0YSDigKYgdG9kYXkuIFRvbW9ycm93IGl0IGNhbiBiZSBhIGJsb2IgaW4g dGhlIGNsb3VkLCBuZXh0IHllYXIgaXQgd2lsbCBiZSBzb21ldGhpbmcgZGlmZmVyZW50LiBJIGRv IHdhbnQgbXkgY29kZSB0byBiZSBmbGV4aWJsZSBmb3IgYWxsIHRob3NlLiBPbmUgd2F5IHRvIGRv IHRoYXQgaXMgdG8gaXNvbGF0ZSBvbiB0aGUgZWRnZSBvZiBob3cgdGhlIGFwcCBkb21haW4gbG9n aWMgdXNlcyB0aGUgc3RvcmFnZS4gVGhpbmsgYGVtcGxveWVlX3N0b3JhZ2Uuc3RvcmVfZW1wbG95 ZWUoKWAgdnMgYHJkYm1zLmluc2VydF9yZWNvcmQoKWAuIEEgbnVhbmNlLCBidXQgYW4gaW1wb3J0 YW50IG9uZSBJTU8uIE9uY2Ugd2UgaGF2ZSB0aGF0IOKAkyB0aGUgYXBwIHdvbuKAmXQgY2FyZSBo b3cgdGhlIHN0b3JhZ2UgaXMgaW1wbGVtZW50ZWQgYW5kIGEgc2ltcGxlIOKAmGluLW1lbW9yeSBl bXBsb3llZSBzdG9yYWdl4oCZIG9yIOKAmGxvY2FsLWZpbGUgZW1wbG95ZWUgc3RvcmFnZeKAmSB3 aWxsIHN1ZmZpY2UgZm9yIHVuaXQgb3Igc29tZSBpbnRlZ3JhdGlvbiB0ZXN0aW5nIC4uDQoNCkZy b206IDx0ZXN0ZHJpdmVuZGV2ZWxvcG1lbnRAZ3JvdXBzLmlvPiBvbiBiZWhhbGYgb2YgQnJpYW4g TWFyaWNrIDxtYXJpY2tAZXhhbXBsZXIuY29tPg0KUmVwbHktVG86ICJ0ZXN0ZHJpdmVuZGV2ZWxv cG1lbnRAZ3JvdXBzLmlvIiA8dGVzdGRyaXZlbmRldmVsb3BtZW50QGdyb3Vwcy5pbz4NCkRhdGU6 IFRodXJzZGF5LCBEZWNlbWJlciA1LCAyMDE5IGF0IDQ6MjEgUE0NClRvOiAidGVzdGRyaXZlbmRl dmVsb3BtZW50QGdyb3Vwcy5pbyIgPHRlc3Rkcml2ZW5kZXZlbG9wbWVudEBncm91cHMuaW8+DQpT dWJqZWN0OiBSZTogW3Rlc3Rkcml2ZW5kZXZlbG9wbWVudF0gImJvdHRvbS11cCIgVEREIGFuZCBj b21tb24gYmVoYXZpb3JzDQoNClRoYXQgcmFpc2VzIGFuIGludGVyZXN0aW5nIGdlbmVyYWwgcXVl c3Rpb24uDQoNCiJUaGUgdGVjaG5vbG9neSIgaXMgYSB3ZWIgZnJhbWV3b3JrIGFuZCBpdHMgbGlu a2VkIGRhdGFiYXNlIGZyYW1ld29yay4NCg0KVGhlIHJpc2sgb2YgdGhvc2UgY2hhbmdpbmcgaW4g YSB3YXkgdGhhdCBicmVha3MgYSBsb3Qgb2Ygb2xkIGNvZGUgaXMgcHJldHR5IHNtYWxsLiBIb3cg bXVjaCBlZmZvcnQgc2hvdWxkIHdlIHNwZW5kIGluc3VsYXRpbmcgb3VyIGNvZGUgYWdhaW5zdCBs b3ctcHJvYmFiaWxpdHkgZXZlbnRzPw0KDQpJc29sYXRpbmcgbXkgY29kZSBmcm9tIEVjdG8gd291 bGQgaW4gZWZmZWN0IG1lYW4gaW52ZW50aW5nIGEgKm5ldyogaW50ZXJmYWNlIHRvIGEgUkRCTVMu IERvZXMgaXQgcmVhbGx5IHNlZW0gbGlrZWx5IHRoYXQgSeKAmWxsIGRvIHRoYXQgYmV0dGVyIHRo YW4gdGhlIEVjdG8gZGVzaWduZXJzPw0KDQpQLlMuIEkgbmVlZCB0byBzcGVuZCBzb21lIHRpbWUg dGhpbmtpbmcgYWJvdXQgaG93IEZQIGlkZWFzIGFuZCBPTyBpZGVhcyBwbGF5IHRvZ2V0aGVyLiBN eSBvcGluaW9uIGhhcyBiZWVuIHRoYXQsIGxlYXZpbmcgYXNpZGUgaW5oZXJpdGFuY2UsIHR5cGlj YWwgRlAgbGFuZ3VhZ2VzIGFyZSBub3QgZGlmZmVyZW50LCBpbiBwcmFjdGljZSwgdGhhbiBPTyBs YW5ndWFnZXMuIEJ1dCBJIHdvbmRlciBpZiB0aGF04oCZcyByaWdodC4NCg0KDQpPbiBEZWMgNCwg MjAxOSwgYXQgMTI6NDMgQU0sIEF2aSBLZXNzbmVyIDxha2Vzc25lckBnbWFpbC5jb208bWFpbHRv OmFrZXNzbmVyQGdtYWlsLmNvbT4+IHdyb3RlOg0KDQpTbyB0aGlzIGlzIGRlZmluaXRlbHkgcmVx dWlyZWQgYmVoYXZpb3IgYW5kIGl0IHdpbGwgYmUgeW91ciBvd24sIHNvIGl0IG5lZWRzIHRvIGJl IHRlc3RlZC4NCk9uIHRoZSBvdGhlciBoYW5kLCBpdCdzIGEgdmVyeSBzcGVjaWZpYyBpbXBsZW1l bnRhdGlvbiBkZXRhaWwgd2hpY2ggY291bGQgY2hhbmdlIHdoZW4gdGhlIHRlY2hub2xvZ3kgY2hh bmdlcyBhbmQgd2UgZG9uJ3Qgd2FudCB0aGF0IHRvIGltcGFjdCBhY3R1YWwgYmVoYXZpb3IgcmVs YXRlZCB0ZXN0cyBhYm91dCBhbmltYWxzLg0KDQpXaGF0IEkgd291bGQgZG8gaXMgbWFrZSBhIHRy YW5zZm9ybWF0aW9uIGRlY29yYXRvciBhbmQgdGhlbiB0ZXN0IHNhbXBsZSBkYXRhIHRvIHNlZSB0 aGF0IGl0IGdldHMgdHJhbnNmb3JtZWQgY29ycmVjdGx5LiAgSWYgRWN0byBldmVyIGNoYW5nZXMs IHRoYXQgdHJhbnNmb3JtYXRpb24gZGVjb3JhdG9yIGNhbiBkbyBub3RoaW5nIGlmIG5lZWRlZC4N CllvdSBiYXNpY2FsbHkgbmVlZCBhIG1hcCBvZiBmaWVsZHMgdGhhdCBjYW4gYmUgY2hhbmdlZCBh bmQgdGhlIHRyYW5zZm9ybWF0aW9uIG5lZWRlZCBmb3IgdGhhdCBmaWVsZC4NCg0KQSBiaXQgbW9y ZSB3b3JrLCBidXQgaXQgYWxsb3dzIGZvciBhIGNoYW5nZSBpbiBFY3RvIG9yIGEgY2hhbmdlIGlu IHVuZGVyc3RhbmRpbmcgb2YgRWN0byB0byBub3QgaW1wYWN0IHRoZSBtYWluIHRlc3Qgc3VpdGUu DQoNCk9uIFdlZCwgRGVjIDQsIDIwMTksIDAxOjUwIEJyaWFuIE1hcmljayA8bWFyaWNrQGV4YW1w bGVyLmNvbTxtYWlsdG86bWFyaWNrQGV4YW1wbGVyLmNvbT4+IHdyb3RlOg0KWWVzLg0KDQoNCk9u IERlYyAzLCAyMDE5LCBhdCA1OjMxIEFNLCBBdmkgS2Vzc25lciA8YWtlc3NuZXJAZ21haWwuY29t PG1haWx0bzpha2Vzc25lckBnbWFpbC5jb20+PiB3cm90ZToNCg0KSWYgSSB1bmRlcnN0YW5kIGNv cnJlY3RseSwgdGhlIGNvZGUgaGVyZSBpcyBzcGVjaWZpY2FsbHkgZm9yIGRvaW5nIGFuIEVjdG8g dHJhbnNmb3JtYXRpb24sIGNvcnJlY3Q/IElmIHlvdSBkZWNpZGUgbm90IHRvIHVzZSBFY3RvIHRo ZSBuZWVkIGZvciB0aGlzIGFic3RyYWN0aW9uIGlzIHJlbW92ZWQ/DQoNCg0KDQoNCg0KDQotPS09 LT0tPS09LT0tPS09LT0tPS09LQpHcm91cHMuaW8gTGlua3M6IFlvdSByZWNlaXZlIGFsbCBtZXNz YWdlcyBzZW50IHRvIHRoaXMgZ3JvdXAuCgpWaWV3L1JlcGx5IE9ubGluZSAoIzM1ODExKTogaHR0 cHM6Ly9ncm91cHMuaW8vZy90ZXN0ZHJpdmVuZGV2ZWxvcG1lbnQvbWVzc2FnZS8zNTgxMQpNdXRl IFRoaXMgVG9waWM6IGh0dHBzOi8vZ3JvdXBzLmlvL210LzY0NDkxOTQ2LzMyNjg3NTUKR3JvdXAg T3duZXI6IHRlc3Rkcml2ZW5kZXZlbG9wbWVudCtvd25lckBncm91cHMuaW8KVW5zdWJzY3JpYmU6 IGh0dHBzOi8vZ3JvdXBzLmlvL2cvdGVzdGRyaXZlbmRldmVsb3BtZW50L2xlYXZlLzYxNTYzMjIv NzQ0NTU2Mzg2L3h5enp5ICBbZ2NwdC10ZXN0ZHJpdmVuZGV2ZWxvcG1lbnRAbS5nbWFuZS5vcmdd Ci09LT0tPS09LT0tPS09LT0tPS09LT0tCg0K --_000_F84835A61CF1469E8BE4E990F9451F27msncom_ Content-Type: text/html; charset="utf-8" Content-ID: <[email protected]> Content-Transfer-Encoding: base64 PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPCEtLVtp ZiAhbXNvXT48c3R5bGU+dlw6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0Kb1w6KiB7 YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0Kd1w6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0 I1ZNTCk7fQ0KLnNoYXBlIHtiZWhhdmlvcjp1cmwoI2RlZmF1bHQjVk1MKTt9DQo8L3N0eWxlPjwh W2VuZGlmXS0tPjxzdHlsZT48IS0tDQovKiBGb250IERlZmluaXRpb25zICovDQpAZm9udC1mYWNl DQoJe2ZvbnQtZmFtaWx5OkhlbHZldGljYTsNCglwYW5vc2UtMTowIDAgMCAwIDAgMCAwIDAgMCAw O30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6 MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7 DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAyIDQ7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMg Ki8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2luOjBp bjsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJZm9udC1zaXplOjExLjBwdDsNCglmb250LWZh bWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjt9DQphOmxpbmssIHNwYW4uTXNvSHlwZXJsaW5rDQoJ e21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xvcjpibHVlOw0KCXRleHQtZGVjb3JhdGlvbjp1 bmRlcmxpbmU7fQ0KYTp2aXNpdGVkLCBzcGFuLk1zb0h5cGVybGlua0ZvbGxvd2VkDQoJe21zby1z dHlsZS1wcmlvcml0eTo5OTsNCgljb2xvcjpwdXJwbGU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVy bGluZTt9DQpwLm1zb25vcm1hbDAsIGxpLm1zb25vcm1hbDAsIGRpdi5tc29ub3JtYWwwDQoJe21z by1zdHlsZS1uYW1lOm1zb25vcm1hbDsNCgltc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzsNCgltYXJn aW4tcmlnaHQ6MGluOw0KCW1zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOw0KCW1hcmdpbi1sZWZ0 OjBpbjsNCglmb250LXNpemU6MTEuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNl cmlmO30NCnNwYW4uRW1haWxTdHlsZTE5DQoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFsLXJlcGx5 Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmOw0KCWNvbG9yOndpbmRvd3RleHQ7 fQ0KLk1zb0NocERlZmF1bHQNCgl7bXNvLXN0eWxlLXR5cGU6ZXhwb3J0LW9ubHk7DQoJZm9udC1z aXplOjEwLjBwdDt9DQpAcGFnZSBXb3JkU2VjdGlvbjENCgl7c2l6ZTo4LjVpbiAxMS4waW47DQoJ bWFyZ2luOjEuMGluIDEuMGluIDEuMGluIDEuMGluO30NCmRpdi5Xb3JkU2VjdGlvbjENCgl7cGFn ZTpXb3JkU2VjdGlvbjE7fQ0KLS0+PC9zdHlsZT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxv OnNoYXBlZGVmYXVsdHMgdjpleHQ9ImVkaXQiIHNwaWRtYXg9IjEwMjYiIC8+DQo8L3htbD48IVtl bmRpZl0tLT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBlbGF5b3V0IHY6ZXh0PSJl ZGl0Ij4NCjxvOmlkbWFwIHY6ZXh0PSJlZGl0IiBkYXRhPSIxIiAvPg0KPC9vOnNoYXBlbGF5b3V0 PjwveG1sPjwhW2VuZGlmXS0tPg0KPC9oZWFkPg0KPGJvZHkgbGFuZz0iRU4tVVMiIGxpbms9ImJs dWUiIHZsaW5rPSJwdXJwbGUiPg0KPGRpdiBjbGFzcz0iV29yZFNlY3Rpb24xIj4NCjxwIGNsYXNz PSJNc29Ob3JtYWwiPkFsbCBmcmFtZXdvcmtzIGNoYW5nZSBldmVudHVhbGx5LCBvciBzdG9wIHdv cmtpbmcgd2hlbiBzYXkgT1MgdmVyc2lvbiBpcyB1cGRhdGVkLiBNYW55IG9mIHVzIGhhdmUgbGVh cm5lZCB0aGF0IHRoZSBoYXJkIHdheSDigKYgLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z b05vcm1hbCI+SW52ZW50aW5nIGEgbmV3IFJEQk1TIGludGVyZmFjZSDigJMgdGhhdCBtZWFucyBs ZWFraW5nIFJEQk1TIHdvcmxkIGludG8geW91ciBhcHBsaWNhdGlvbiBkb21haW4uIEFuZCBwZXJo YXBzIGFsc28gaW1wbGllcyB0aGUgYmlnZ2VyIHdvcmsgb2YgY292ZXJpbmcgYWxsIG9mIFJEQk1T IGZ1bmN0aW9uYWxpdHkuIFdoZW4gd2UgdXNlIFJEQk1TIGl04oCZcyBqdXN0IGZvciBzdG9yYWdl IG9mIGRhdGEg4oCmIHRvZGF5LiBUb21vcnJvdw0KIGl0IGNhbiBiZSBhIGJsb2IgaW4gdGhlIGNs b3VkLCBuZXh0IHllYXIgaXQgd2lsbCBiZSBzb21ldGhpbmcgZGlmZmVyZW50LiBJIGRvIHdhbnQg bXkgY29kZSB0byBiZSBmbGV4aWJsZSBmb3IgYWxsIHRob3NlLiBPbmUgd2F5IHRvIGRvIHRoYXQg aXMgdG8gaXNvbGF0ZSBvbiB0aGUgZWRnZSBvZiBob3cgdGhlIGFwcCBkb21haW4gbG9naWMgdXNl cyB0aGUgc3RvcmFnZS4gVGhpbmsgYGVtcGxveWVlX3N0b3JhZ2Uuc3RvcmVfZW1wbG95ZWUoKWAg dnMNCiBgcmRibXMuaW5zZXJ0X3JlY29yZCgpYC4gQSBudWFuY2UsIGJ1dCBhbiBpbXBvcnRhbnQg b25lIElNTy4gT25jZSB3ZSBoYXZlIHRoYXQg4oCTIHRoZSBhcHAgd29u4oCZdCBjYXJlIGhvdyB0 aGUgc3RvcmFnZSBpcyBpbXBsZW1lbnRlZCBhbmQgYSBzaW1wbGUg4oCYaW4tbWVtb3J5IGVtcGxv eWVlIHN0b3JhZ2XigJkgb3Ig4oCYbG9jYWwtZmlsZSBlbXBsb3llZSBzdG9yYWdl4oCZIHdpbGwg c3VmZmljZSBmb3IgdW5pdCBvciBzb21lIGludGVncmF0aW9uIHRlc3RpbmcNCiAuLiA8bzpwPjwv bzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPGRp diBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAjQjVDNERGIDEuMHB0O3BhZGRp bmc6My4wcHQgMGluIDBpbiAwaW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+PHNwYW4gc3R5 bGU9ImZvbnQtc2l6ZToxMi4wcHQ7Y29sb3I6YmxhY2siPkZyb206IDwvc3Bhbj48L2I+PHNwYW4g c3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQ7Y29sb3I6YmxhY2siPiZsdDt0ZXN0ZHJpdmVuZGV2ZWxv cG1lbnRAZ3JvdXBzLmlvJmd0OyBvbiBiZWhhbGYgb2YgQnJpYW4gTWFyaWNrICZsdDttYXJpY2tA ZXhhbXBsZXIuY29tJmd0Ozxicj4NCjxiPlJlcGx5LVRvOiA8L2I+JnF1b3Q7dGVzdGRyaXZlbmRl dmVsb3BtZW50QGdyb3Vwcy5pbyZxdW90OyAmbHQ7dGVzdGRyaXZlbmRldmVsb3BtZW50QGdyb3Vw cy5pbyZndDs8YnI+DQo8Yj5EYXRlOiA8L2I+VGh1cnNkYXksIERlY2VtYmVyIDUsIDIwMTkgYXQg NDoyMSBQTTxicj4NCjxiPlRvOiA8L2I+JnF1b3Q7dGVzdGRyaXZlbmRldmVsb3BtZW50QGdyb3Vw cy5pbyZxdW90OyAmbHQ7dGVzdGRyaXZlbmRldmVsb3BtZW50QGdyb3Vwcy5pbyZndDs8YnI+DQo8 Yj5TdWJqZWN0OiA8L2I+UmU6IFt0ZXN0ZHJpdmVuZGV2ZWxvcG1lbnRdICZxdW90O2JvdHRvbS11 cCZxdW90OyBUREQgYW5kIGNvbW1vbiBiZWhhdmlvcnM8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8 L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4N CjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+VGhhdCByYWlzZXMgYW4gaW50ZXJlc3Rpbmcg Z2VuZXJhbCBxdWVzdGlvbi4gPG86cD48L286cD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v cm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv Tm9ybWFsIj4mcXVvdDtUaGUgdGVjaG5vbG9neSZxdW90OyBpcyBhIHdlYiBmcmFtZXdvcmsgYW5k IGl0cyBsaW5rZWQgZGF0YWJhc2UgZnJhbWV3b3JrLjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8 ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4N CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5UaGUgcmlzayBvZiB0aG9zZSBjaGFuZ2luZyBp biBhIHdheSB0aGF0IGJyZWFrcyBhIGxvdCBvZiBvbGQgY29kZSBpcyBwcmV0dHkgc21hbGwuIEhv dyBtdWNoIGVmZm9ydCBzaG91bGQgd2Ugc3BlbmQgaW5zdWxhdGluZyBvdXIgY29kZSBhZ2FpbnN0 IGxvdy1wcm9iYWJpbGl0eSBldmVudHM/PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8 cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4N CjxwIGNsYXNzPSJNc29Ob3JtYWwiPklzb2xhdGluZyBteSBjb2RlIGZyb20gRWN0byB3b3VsZCBp biBlZmZlY3QgbWVhbiBpbnZlbnRpbmcgYSAqbmV3KiBpbnRlcmZhY2UgdG8gYSBSREJNUy4gRG9l cyBpdCByZWFsbHkgc2VlbSBsaWtlbHkgdGhhdCBJ4oCZbGwgZG8gdGhhdCBiZXR0ZXIgdGhhbiB0 aGUgRWN0byBkZXNpZ25lcnM/PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFz cz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs YXNzPSJNc29Ob3JtYWwiPlAuUy4gSSBuZWVkIHRvIHNwZW5kIHNvbWUgdGltZSB0aGlua2luZyBh Ym91dCBob3cgRlAgaWRlYXMgYW5kIE9PIGlkZWFzIHBsYXkgdG9nZXRoZXIuIE15IG9waW5pb24g aGFzIGJlZW4gdGhhdCwgbGVhdmluZyBhc2lkZSBpbmhlcml0YW5jZSwgdHlwaWNhbCBGUCBsYW5n dWFnZXMgYXJlIG5vdCBkaWZmZXJlbnQsIGluIHByYWN0aWNlLCB0aGFuIE9PIGxhbmd1YWdlcy4g QnV0IEkgd29uZGVyIGlmIHRoYXTigJlzIHJpZ2h0LjxvOnA+PC9vOnA+PC9wPg0KPGRpdj4NCjxw IGNsYXNzPSJNc29Ob3JtYWwiPjxicj4NCjxicj4NCjxvOnA+PC9vOnA+PC9wPg0KPGJsb2NrcXVv dGUgc3R5bGU9Im1hcmdpbi10b3A6NS4wcHQ7bWFyZ2luLWJvdHRvbTo1LjBwdCI+DQo8ZGl2Pg0K PHAgY2xhc3M9Ik1zb05vcm1hbCI+T24gRGVjIDQsIDIwMTksIGF0IDEyOjQzIEFNLCBBdmkgS2Vz c25lciAmbHQ7PGEgaHJlZj0ibWFpbHRvOmFrZXNzbmVyQGdtYWlsLmNvbSI+YWtlc3NuZXJAZ21h aWwuY29tPC9hPiZndDsgd3JvdGU6PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxwIGNsYXNzPSJN c29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0i TXNvTm9ybWFsIj5TbyB0aGlzIGlzIGRlZmluaXRlbHkgcmVxdWlyZWQgYmVoYXZpb3IgYW5kIGl0 IHdpbGwgYmUgeW91ciBvd24sIHNvIGl0IG5lZWRzIHRvIGJlIHRlc3RlZC4NCjxvOnA+PC9vOnA+ PC9wPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPk9uIHRoZSBvdGhlciBoYW5kLCBpdCdz IGEgdmVyeSBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBkZXRhaWwgd2hpY2ggY291bGQgY2hhbmdl IHdoZW4gdGhlIHRlY2hub2xvZ3kgY2hhbmdlcyBhbmQgd2UgZG9uJ3Qgd2FudCB0aGF0IHRvIGlt cGFjdCBhY3R1YWwgYmVoYXZpb3IgcmVsYXRlZCB0ZXN0cyBhYm91dCBhbmltYWxzLjxvOnA+PC9v OnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8 L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5XaGF0IEkgd291 bGQgZG8gaXMgbWFrZSBhIHRyYW5zZm9ybWF0aW9uIGRlY29yYXRvciBhbmQgdGhlbiB0ZXN0IHNh bXBsZSBkYXRhIHRvIHNlZSB0aGF0IGl0IGdldHMgdHJhbnNmb3JtZWQgY29ycmVjdGx5LiZuYnNw OyBJZiBFY3RvIGV2ZXIgY2hhbmdlcywgdGhhdCB0cmFuc2Zvcm1hdGlvbiBkZWNvcmF0b3IgY2Fu IGRvIG5vdGhpbmcgaWYgbmVlZGVkLjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAg Y2xhc3M9Ik1zb05vcm1hbCI+WW91IGJhc2ljYWxseSBuZWVkIGEgbWFwIG9mIGZpZWxkcyB0aGF0 IGNhbiBiZSBjaGFuZ2VkIGFuZCB0aGUgdHJhbnNmb3JtYXRpb24gbmVlZGVkIGZvciB0aGF0IGZp ZWxkLjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+ PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs Ij5BIGJpdCBtb3JlIHdvcmssIGJ1dCBpdCBhbGxvd3MgZm9yIGEgY2hhbmdlIGluIEVjdG8gb3Ig YSBjaGFuZ2UgaW4gdW5kZXJzdGFuZGluZyBvZiBFY3RvIHRvIG5vdCBpbXBhY3QgdGhlIG1haW4g dGVzdCBzdWl0ZS48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNv Tm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1z b05vcm1hbCI+T24gV2VkLCBEZWMgNCwgMjAxOSwgMDE6NTAgQnJpYW4gTWFyaWNrICZsdDs8YSBo cmVmPSJtYWlsdG86bWFyaWNrQGV4YW1wbGVyLmNvbSI+bWFyaWNrQGV4YW1wbGVyLmNvbTwvYT4m Z3Q7IHdyb3RlOjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8YmxvY2txdW90ZSBzdHlsZT0iYm9y ZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgI0NDQ0NDQyAxLjBwdDtwYWRkaW5nOjBpbiAwaW4g MGluIDYuMHB0O21hcmdpbi1sZWZ0OjQuOHB0O21hcmdpbi1yaWdodDowaW4iPg0KPGRpdj4NCjxk aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5ZZXMuPG86cD48L286cD48L3A+DQo8ZGl2Pg0KPHAg Y2xhc3M9Ik1zb05vcm1hbCI+PGJyPg0KPGJyPg0KPG86cD48L286cD48L3A+DQo8YmxvY2txdW90 ZSBzdHlsZT0ibWFyZ2luLXRvcDo1LjBwdDttYXJnaW4tYm90dG9tOjUuMHB0Ij4NCjxkaXY+DQo8 cCBjbGFzcz0iTXNvTm9ybWFsIj5PbiBEZWMgMywgMjAxOSwgYXQgNTozMSBBTSwgQXZpIEtlc3Nu ZXIgJmx0OzxhIGhyZWY9Im1haWx0bzpha2Vzc25lckBnbWFpbC5jb20iIHRhcmdldD0iX2JsYW5r Ij5ha2Vzc25lckBnbWFpbC5jb208L2E+Jmd0OyB3cm90ZTo8bzpwPjwvbzpwPjwvcD4NCjwvZGl2 Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8ZGl2Pg0KPHAg Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQ7Zm9udC1mYW1p bHk6SGVsdmV0aWNhIj5JZiBJIHVuZGVyc3RhbmQgY29ycmVjdGx5LCB0aGUgY29kZSBoZXJlIGlz IHNwZWNpZmljYWxseSZuYnNwO2ZvciBkb2luZyBhbiBFY3RvIHRyYW5zZm9ybWF0aW9uLCBjb3Jy ZWN0PyBJZiB5b3UgZGVjaWRlIG5vdCB0byB1c2UgRWN0byB0aGUgbmVlZCBmb3IgdGhpcyBhYnN0 cmFjdGlvbiBpcyByZW1vdmVkPzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9ibG9j a3F1b3RlPg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwv cD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJz cDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZu YnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPC9kaXY+DQo8L2Rpdj4NCjwv YmxvY2txdW90ZT4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286 cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48L286cD48L3NwYW4+ PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvYm9keT4NCjwvaHRtbD4NCg0KPGRpdiB3aWR0aD0iMSIg c3R5bGU9ImNvbG9yOndoaXRlO2NsZWFyOmJvdGgiPl8uXyxfLl8sXzwvZGl2Pgo8aHI+Ckdyb3Vw cy5pbyBMaW5rczo8cD4KCllvdSByZWNlaXZlIGFsbCBtZXNzYWdlcyBzZW50IHRvIHRoaXMgZ3Jv dXAuCgoKPHA+Cgo8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cHM6Ly9ncm91cHMuaW8vZy90 ZXN0ZHJpdmVuZGV2ZWxvcG1lbnQvbWVzc2FnZS8zNTgxMSI+Vmlldy9SZXBseSBPbmxpbmUgKCMz NTgxMSk8L2E+IHwKCgogIDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJtYWlsdG86dGVzdGRyaXZl bmRldmVsb3BtZW50QGdyb3Vwcy5pbz9zdWJqZWN0PVJlOiUyMFJlJTNBJTIwJTVCdGVzdGRyaXZl bmRldmVsb3BtZW50JTVEJTIwJTIyYm90dG9tLXVwJTIyJTIwVEREJTIwYW5kJTIwY29tbW9uJTIw YmVoYXZpb3JzIj5SZXBseSBUbyBHcm91cDwvYT4KICAKICAgIHwgPGEgdGFyZ2V0PSJfYmxhbmsi IGhyZWY9Im1haWx0bzpkb2xld3NraUBtc24uY29tP3N1YmplY3Q9UHJpdmF0ZTolMjBSZTolMjBS ZSUzQSUyMCU1QnRlc3Rkcml2ZW5kZXZlbG9wbWVudCU1RCUyMCUyMmJvdHRvbS11cCUyMiUyMFRE RCUyMGFuZCUyMGNvbW1vbiUyMGJlaGF2aW9ycyI+UmVwbHkgVG8gU2VuZGVyPC9hPgogIAoKCnwK CgogIAogICAgPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Imh0dHBzOi8vZ3JvdXBzLmlvL210LzY0 NDkxOTQ2LzMyNjg3NTUiPk11dGUgVGhpcyBUb3BpYzwvYT4KICAKCnwgPGEgaHJlZj0iaHR0cHM6 Ly9ncm91cHMuaW8vZy90ZXN0ZHJpdmVuZGV2ZWxvcG1lbnQvcG9zdCI+TmV3IFRvcGljPC9hPjxi cj4KCgoKPGJyPgoKPGEgaHJlZj0iaHR0cHM6Ly9ncm91cHMuaW8vZy90ZXN0ZHJpdmVuZGV2ZWxv cG1lbnQvZWRpdHN1Yi8zMjY4NzU1Ij5Zb3VyIFN1YnNjcmlwdGlvbjwvYT4gfAo8YSBocmVmPSJt YWlsdG86dGVzdGRyaXZlbmRldmVsb3BtZW50K293bmVyQGdyb3Vwcy5pbyI+Q29udGFjdCBHcm91 cCBPd25lcjwvYT4gfAoKPGEgaHJlZj0iaHR0cHM6Ly9ncm91cHMuaW8vZy90ZXN0ZHJpdmVuZGV2 ZWxvcG1lbnQvbGVhdmUvNjE1NjMyMi83NDQ1NTYzODYveHl6enkiPlVuc3Vic2NyaWJlPC9hPgoK IFtnY3B0LXRlc3Rkcml2ZW5kZXZlbG9wbWVudEBtLmdtYW5lLm9yZ108YnI+CjxkaXYgd2lkdGg9 IjEiIHN0eWxlPSJjb2xvcjp3aGl0ZTtjbGVhcjpib3RoIj5fLl8sXy5fLF88L2Rpdj4KDQo= --_000_F84835A61CF1469E8BE4E990F9451F27msncom_--