You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2014/02/21 00:36:38 UTC

[1/3] git commit: Recording .gitmergeinfo Changes

Repository: cxf
Updated Branches:
  refs/heads/2.7.x-fixes 6dd839afb -> d7cde0232


Recording .gitmergeinfo Changes


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/f7165daa
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/f7165daa
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/f7165daa

Branch: refs/heads/2.7.x-fixes
Commit: f7165daa3c96fd3b9efea4a2c468e0e523edf01b
Parents: 6dd839a
Author: Daniel Kulp <dk...@apache.org>
Authored: Thu Feb 20 18:30:54 2014 -0500
Committer: Daniel Kulp <dk...@apache.org>
Committed: Thu Feb 20 18:30:54 2014 -0500

----------------------------------------------------------------------
 .gitmergeinfo | 1240 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 1240 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/f7165daa/.gitmergeinfo
----------------------------------------------------------------------
diff --git a/.gitmergeinfo b/.gitmergeinfo
new file mode 100644
index 0000000..4a0a474
--- /dev/null
+++ b/.gitmergeinfo
@@ -0,0 +1,1240 @@
+origin/master
+B 0011b05059467fcd6fbeeb859907d69a9d25efe2
+B 003518b1d29250c59493d1b1965303aac8505475
+B 003a0d420dca03b94d5ec111dab645669446a942
+B 006892d4d0cca3417fdf69d808b95b498373e73d
+B 0072de63525d9510df5482fa8d0cf2fe55fdcad2
+B 007861913735815db8a2a8fa52d4d621cf54fc01
+B 008f6e6d4e35d379d1ec26292e64f6fb71f9837a
+B 0146d65aa1aa2681d358928f8e4ac918bf2b0305
+B 01ad820abd4d4dd172c1c6b19bf5a93f828decfe
+B 01c79cfc4f335477d3460729782cc243d6f55196
+B 01f06dc19334b42c83efa839643a99c9502b3e5a
+B 024f503cb739eb800b672f7f87b846350f7abf45
+B 02d40450239d978d477b3ec63714c427c588e553
+B 02f690f7daee782ba51495d66dacfe222b13ac15
+B 02fe28753987ad8a2e47f1ce30b5de546357676b
+B 035df3e5199f02906cb3e0fc375b987f712e5adf
+B 04b535bbb4667e43492515718a061553d50644d8
+B 0646fdbf971885ca605cd27d5b46a413bc0e8f84
+B 06bb3853d7e5998dbebd8d042114a06f4827d76f
+B 076b258c21ab784322b7231718efba6e0f941fae
+B 0776c6c0da3ab42464b6e7c6246981685e9ad0ca
+B 07c97db7b2254096156240a98762af0a51808be1
+B 07ea01d2707936d9e7f5a205d327238b37ac819b
+B 0877b2a7bfc496b6d8d57083abbee2fbfd50c221
+B 0919edd76e4909f06216c546628a6f7d586479b2
+B 0946fd921cca26b62812a8e91620b1fe1237daf1
+B 094d369363e640de47299e93e288bab758562eb3
+B 0981f0b44c9ff727acaa14411fe64a3a3f92bb38
+B 0a7a0d023cffec2db34da7df4582c832dabbcdcd
+B 0ae6e7910f19193866e7224d6caf7700e4e1f53d
+B 0b78fd4c1ce1d12d1b34e8a876b4029ca95cd131
+B 0ba5fd4d650ed8601b44a1df1aee421a73463127
+B 0bfee67fff799ffa7845873a4190676763c1c1ea
+B 0c1056239a1fa3649658d5ce2cf0a64df2cb5fa7
+B 0c2672042482c63a14778f9f062ba52eaa088291
+B 0c2a87c0a733efff02a2d09691a51ecf51829105
+B 0c77f4ff91451c0bf73ebe1103e99583cc26d786
+B 0cffef8fc445a8a367315521b03620a14bb8c60a
+B 0dd17b9c51c92a943f27983033bbc05e7e8614eb
+B 0e33a8091949cdb162075c1eeb0bc82ce447f805
+B 0e5b958dfc41d7debd5ee68b9eb8ba117ea6db75
+B 0e7bb9cdbb5f335147e2f2f82881e66f7d2000cd
+B 0ed88c54f0f9e0be0d6054f9cd56f0d07b4827d3
+B 0f65c53f8e82600b64ebd83afaf00637a70fc8eb
+B 0fa7477274ea6c430f764d5c6a013bb09cae9409
+B 0fcacad057b33107b82ac05db59b1a1ebc69a963
+B 0fcb49380d93b974e918e32051b5438cdc5e179c
+B 0fd41e29ea4a79d7dd44569db6c804c5b257085b
+B 0ff365aa8bb9b7b2180dbf1afd17b4cc39020f40
+B 100bf13fe2cf118167f0d0aaf02c34e6337c12ec
+B 118eceb436013ae2c2f94fa3dfeadc615149a0e8
+B 11bccec4f48f65f36907cd04230b1b751a34d0e1
+B 11f1414fed14e737c033122086bc95bbfd24d286
+B 1224a400fbbcb08e47b86c8079477f3eddf7b49f
+B 12c910c524c8dd40149b087312763b3d2a4434b0
+B 12eda4f03c46507e78ffc78b0fb1b8f4b5726efa
+B 12ee3fb1475d16010a6df3b0580c0f67b893d511
+B 1353a31981751cc4b66242db5ff425275bb04ec3
+B 13b02383a3590149174d0f22bd07853d5cf31a03
+B 1419bea39cbfadca226db7a54d0a2f5d114b2ef9
+B 14585ed2de2c51a7683e392523db1a5c8c2621d5
+B 14be17bff7941e358189b7058792ada4dbe3c7eb
+B 14c434a1a6a3b96f7092f639d639f7ffc09ed700
+B 150dc1a3198f35876640cbc708ae9d3e96a88058
+B 155751283fd85ce63d83d1636ac06f094280e82d
+B 1584291eb208b918e3a232c796b69dd1bfe7776a
+B 15af3fab6e707801d2cad4c1cf0ffecfecfa714b
+B 15c560d4dd9d025ee0dd2f43cc1721f590bbc064
+B 166996384129e52460fdfe71b4e503ff0af15b33
+B 16aa7aa8eafa9fbfaaf988466dbaf4a405e5e39a
+B 16c3c8706077a4cfeea9be62446b1ee18ec77cb3
+B 16d26a02d5496df1e6cc406a3ff8dad0efd96573
+B 16ed4ea3179c5c19e7baca9c4d1380fd5d995006
+B 1777dcd70fd82f6c0db18b13b668c37e88b44658
+B 177eb6c202bba2e5f5dd3bd6df70ab5a6bcbfaa2
+B 1797749c7e90d0b486d41d3ec78bb0540e26741d
+B 185f6743a55a4a318542beb86564c6da6d35d523
+B 18ae0bda4f44425072a634f48985e3bab2f71451
+B 18b5bd970c0d44d26fa215c5917f5ba7502dc9cf
+B 19e7643b6c7bab7a01bfaede067aaed5e59008d5
+B 1ab29165487890824f9c8d2a53b94e35283a0a8c
+B 1acfc88090a7fca36194f6f1658375184053bab7
+B 1ad113a2118493a377b95e7ef6b5942aba95fc3b
+B 1b0f8ebc18b0be39eb7ea2d803d6f097184430ac
+B 1b4a1b6db93b6c3dbbf0da39c9621ef57b82f76b
+B 1bdcc6c08ebd79dff682e69d3141737a5d953597
+B 1c1441f3b3cfc8726862b3486c62ccf9171d9443
+B 1c5deac261d13e7f2baf5a13fd8379992ed6b48a
+B 1cb3c15b49d53d391e2e6ab403ba7ecea0954d29
+B 1d6438784fc0fee6e00f3492b2920953ed6354fe
+B 1d72c1551a0bb5d671cde6332f5e87135326aff9
+B 1d7365b33c03b44f8fa984fc1f6350469f6bb7f3
+B 1d884dc801901c2f343582651fc5aca05d81f24a
+B 1ddf740976e130c838bc7e6a012048765eda3ee0
+B 1e8aba05df7f3b9a7b9b486a107a534d35e8d81a
+B 1f16cb0bdf894848f68e2ee38f5253f5e9f87910
+B 1f6f2b34e95d321fa055e110c5dac01534eb6e89
+B 1f82b3bd4deda1394df81d623897693f168e28e6
+B 1f85add51a0952d026a94172b1cb2ac957abd055
+B 1fc25ea2bcefd89cceb70ffe25b2f91b400ea232
+B 1fc6859ff963c888cbdb62ae5bc0379462c5e9df
+B 201d18540308db1fe993f3cbc97aa0edc10df4de
+B 2022ac7179f5d93aa9d90159b2d7bb0bdc8b9025
+B 20657583f395bdc2a3c693a1c0655b6e19fafe28
+B 211d028d60c9c60868a004b418bc8f1fccd71d15
+B 21c154987415e5a1c832399b809319fecf0b71c3
+B 21e1aecc26ec2f81a6074e5afb475e9d48a16e25
+B 221efc02f90eef7f319ba39b8aefd14922901d70
+B 2246e1393aa56ff8411efabf2d49c3ef75ffdfec
+B 226906c48bb2c71b70172d33ea528916f8c62dff
+B 2296e119c02a1ac5d95492bb5fc4e24e0c02b979
+B 229bc4ccaed5d4989b3ec363b1964cb2df00cf6e
+B 22ac3203afc7c5017b266e25fdde0df16c294b54
+B 22e352f442b62be811b25fba200f2f3158d41132
+B 23f8e62836eec21a0dfcf911dc026c4b9240c7df
+B 24cbca795a21070f5bf11587277900b3a2cf226b
+B 256d220934a0b2031a45ae9e754a8c31fc468c47
+B 266d51240ac8f0a7c7e6808366494ea0cf3b1cc7
+B 2679bcc28f82a782b8a49053f490cf9bb6124184
+B 26b684c863bebfa38e6fdd8f462c8d008704c9c6
+B 26d3318da2b6a8cdf1ef8a1848939add35f7a673
+B 271e3bd0e8a1728204e3d8be1f00232cf7c40d66
+B 2727d82a555c5cbc63e57c7c831dfa8500d20b28
+B 2747744322eb4c285ce6ab6d1c8c80a2f4f186d5
+B 278e8a9d6fe6979623258be58d1ed2b89edc5da4
+B 27bb1f5f1426fc1a6bad091a36cb552a6c095644
+B 27c1ff34d829badbb11b8c12e4d605ca8a57effe
+B 27e7ac7cfb52bbab1051d23b002ec7996f1939cc
+B 2816469014ec116559cd405720271457f13432b9
+B 28b53b095af7e53e9bf6f4265ca39ff405619eee
+B 28dc0430fdf141960668570037b862acb1a520e9
+B 29186b625df55a641a139310e2133dcceee66f56
+B 292bcb08bcb865a21929af20947beab032ff8889
+B 296ff8ec4e19396c6fee2e788968b843a47686ca
+B 299f085b723321401460e4fc8343563f795b6b73
+B 2a057461bc998a3c539434f7fe21adc5880e9d40
+B 2b573e9d69f9b4defac24f6295a7710baebf90b4
+B 2ca6a5ec4332d494f71bbe9348ed96f876d28e42
+B 2ca813563898e4beb10da293668b740933ab683f
+B 2d2800ba52421c3e4a52dcf561b8f00b6f07f3d6
+B 2dd4f36aa94e942363678e4bbb2d89dcac3a9171
+B 2e0b830589e48bfc65501ad81065911b55186b42
+B 2e4a6787a49d4d92c929b686e12e264dda216539
+B 2e5b5f26312cf3313dd4896394507a14edd4ec0b
+B 2ed78cc1400c57239d64e8657767ec9959065865
+B 2fd68d8b34ed0eb1c0a24cab6055497998ca46d7
+B 30a6fee4cefe0831c98d569f2eb7e8a3572ff8a8
+B 30ef5785401b948ab8aa7e965da5cb36f606a8d0
+B 30fa71e52a501fd506afffdf9f600f79d51baea7
+B 3120b9373f272d5f962c01c577bf08369c390dac
+B 313c40705b0bec3e506e8cbb56ebdc371f4a7568
+B 3158ccb445fbec6ca408c22b4e32ab054ab792b4
+B 3194eb13b90803f262dc53a241abaff6a7f5a6d7
+B 31cf9c76f6d1be4b901bf06514a9717d936da2fb
+B 329026ec4136d83316ab55c3c0030fe911a19d35
+B 32915d5b50cd6804c628ee3bcc1e2509e1aa8430
+B 32aea3448fb46e59714b824251a5d3da206b4216
+B 32c4b89014f7bfb653484c6771f3a2f2f019d56b
+B 32e9e2242f59a143568fd2483cd4aef7ed63e33c
+B 32fd2f750dfe84ea8ec7f6710e79017033283a97
+B 330d7a926a2bf1216429a3ac7b5843e3b65df215
+B 3314af3f40ea3df1b4eb347a50a600cee67c4082
+B 333ec93fbca9dbc98a939bfc7bdcb9d65490afaf
+B 33824b36624a885b616d86e7447535e7c96d5c37
+B 33fd35ee5b841e0eb80bfa9cb029a1be5f5a2213
+B 341b0f3bb1b7393ec2264fed5aebc10513697182
+B 3456770325b97a5754aa655c1de99e33744e694d
+B 349a7b61dea339ab3f0f7111d63fd14fd61424fc
+B 34b5a3b074090b6ddbcb86948a949a98b43a5749
+B 350901f443fe4a0b51c6764b61c7f8c69003abae
+B 35218f9aae467412e58d6aab071db669169fb589
+B 353e4ec70b57983fdee090d831c4bae06a9a6784
+B 35aa26c8b8a2f8cc5899c6a5616a113ba1e9900d
+B 3630ffd73a133a7693942ddb6dd09a296674a222
+B 36603ee9426f7d01f11fc08e90507f5d2df96587
+B 382d6f75aec9c5fd2ba69870bbc1c2916b4a6ceb
+B 38670427fe972560402e70037d8f874136e94050
+B 38777cce211205f04ce2006373356af9ab96da7e
+B 3887304cbcd25223912f5c62e2d5bd8be022caef
+B 3898dbb3e29202c0d2942fb903fa29a7c16418a7
+B 38d9ace960004de4a38035efd411dac1d84cb85d
+B 39467e39982e0b3fef34a3fe5c24f0c2f108360e
+B 398711645874cb420109b5d501ae759eaef2c99a
+B 399e3b27acf41d1fb4ed5f09d110ae4494e8711d
+B 3a59de0a89384c8b01641859a41ca8a2f95b72c7
+B 3a77957b563ab4ebba82d9240b45a1178adf3d6f
+B 3abddd35f639420c698dfe32cecfd970573b47a7
+B 3adfb76d8f3fda6c9fb0f654ed6bc9fb44be7d48
+B 3b0aae20f9709c5c72fe231edc3eff4a2675c47f
+B 3b21a29437c3f0a3f7ee05a9fa7a1e79e35393a8
+B 3b49b4264d025e048695e303435b373a98cb4315
+B 3b85cfaa3e3ede4c2abf977b4c0bbe4ec289c09a
+B 3b86cbaff51cb6282e10f44be0f4dfb4221506e6
+B 3b8844dc381b7806c5899dc01e6b8220376d1133
+B 3ba70b45de658b98c96485f10c9f688332d7510c
+B 3bcf569835e6aac67b53b04c8de9f1d7333a5de9
+B 3c5d07049883ddabcf7101ae6f5ac9c19d12937d
+B 3c78d3be567447c50d10ed52fcfe231525d2bf9c
+B 3c95b4b01da194ba34a2230dd00a2333d820464a
+B 3cd23910e77dfb21c9622cf96c5118765a79e03c
+B 3d9864c94c43301e84b496e97772928eebb6d36c
+B 3dc89fe00c4e4165fc7b9c25ca0faec4ef097a87
+B 3ebbda1e94eb0e09b15c75226c32b5f5e6f1641b
+B 3ef21c829aa2c8272f87c2d9564011b95a976587
+B 3f4fd1c96ed389a7153df630ab01033ad3b350f5
+B 3f6e48515f61bfe66cdc489f6ec72cd3cb7aaf26
+B 3fa3231b13f06664b6aaf6b56e3de5738c89a574
+B 3fae604e2ab638a5fbce479078245c75675b5e72
+B 3fc5b8571d2454fc7a93e9a65a09b4c58968e74a
+B 40a2c68f02fc3f33ab3ca897879c91970382048b
+B 40bc1bdf29cf4e8ea3fdaeb948671f1e019031f6
+B 40e0f9319b575932d5f07081eb1a6d1bf8318e32
+B 41267161bff1dcec36c2978fe863efdcf5947ebc
+B 414dcf6b4e208f647f28f79ee4639f53fe1e9ed2
+B 416b117b24c294390bcbde240575a4e7e87d1308
+B 417a1813062b78c64be3c397061020e1cefcedf0
+B 42409777b56d8da4833415f8871e8640bf54f907
+B 42931a244c5c4d0e0e3ca98a34b0448511703fcb
+B 42bb91e58e1801fe8bc07d9c303c74233d1c0acb
+B 433e438143c181abbf1f2004054875a189366fcc
+B 4354b1a241e71bdcf69de84f2fa32c991b9851c7
+B 43efdb551c76a30ef897d796d6580a508313b2a0
+B 44204faaabc25977c42846ff27914294b6384079
+B 445c6ddae4952653ebad7ea15e23c42f51063b3f
+B 447d50a7f375f3133f7bb472e67819da4088aae8
+B 44b25ebe870e4d86b8c6d1c1aa945278e5e8ca3f
+B 44de359f3e33b5cec829848f253e3a092c9989be
+B 454a6f84e0accbae7647b537fc9f5402df85e881
+B 458b211d7fd31e1440537ab445f3dbec0c5f7534
+B 45d4d47b3188ad126894560ea5e17dcb60828baf
+B 46193f6de59dd7d3780a62a8f46dfac46476c5f1
+B 461b3e98681c758fb5dc1e4e48c4fc98bcf177d9
+B 461f8d739a22fa5caaac3552244a693f4bde136b
+B 46fbc9688904322de1b2d5a46cdfe24d19f42b4a
+B 475500b009afbdb7901f50c18891e14b6a234f42
+B 475f9b6b1da810a781dc7d773d143ca9ce600513
+B 47a0908a8a90a00029e859a21feb9fd4b9512563
+B 47d9548557c352b7ddf0468c322678b901d20ab9
+B 48144f06a9779320b7d8537899b2f3b9ecacdb43
+B 4843806921c665a3a2fecb5826ae2d20ec563ab2
+B 48751778ed8eee0af48b4100b3e8260587e27754
+B 4886e2590c6cd779d0bfca37424151a15d6bf633
+B 48ac8d63f70a36b5d192648d347dabfd28293ab8
+B 49f968cb9aba476220c38e2c6baa7ca00a25dacb
+B 4a32e60fe9ebeb752a79b3f5dab89baf152d0243
+B 4a4f76523dcb32d406a2838fd0162326c6aef8d1
+B 4a876e047ed085237ac65c47d2a3ef9635e682fd
+B 4a92cb1fcf440f41d0da042b93eec8ee53be3aa4
+B 4ad85b22685114376207a68c6bd614ad0d0621e5
+B 4b48fab7277f46abdb3d84aed23d0f3163633960
+B 4b5ce65228ec89ac8a0391b8ea932942a8c10ac4
+B 4b86b20c931e085a4e8e4a472c5aa33beb2e8b9d
+B 4bee0d1a83a08c82994ac6bcb22383728134d6b7
+B 4c343aa62ea777e6665de45dd950de343a3b5f85
+B 4d170b09fb600db59fe7dc92c8e3d08bf6c1c3de
+B 4d718903a14bd6b197473014334d6ba294ecd897
+B 4e8f85d8d98b578b799d8a9b568fb78d53b419e8
+B 4eb021814b076ac152c6ae4d8f6ac5ca56b6b0ee
+B 4ff319c6e46e9570003632fe96908ebd03ee9768
+B 501a9ff767f4bdd4183412116f2b45ffa6a1f9b9
+B 5027baf5e5f453c7ff92c525c5db48cb3e2e5617
+B 5065d9b57a1d5a1fb511190598e40d6683d4b174
+B 514aebf5b5ae19ec2a844282f4c12e5d65e46c46
+B 51b6917d75fe664c0baf21c641232cfb6e1761de
+B 51efdf3df80358fc41ef17ae612ccc83e041b3a8
+B 524652250be0c05f9cf86ff0865a69efe86acd5b
+B 535917e7e2960f5ea8bba6f209eaf53616ec5934
+B 536e79f2321c0578ae00a394ff1091fc10dad550
+B 536f0c957386061b1abfe0a46d772620f18fbf39
+B 53d80e130b5a74530605418f109a679c5f3950aa
+B 53f1131e6ef056c0ca06e73041e68eafcfe8a737
+B 5448c31c043b1b2e18918616749fbd9f033923b4
+B 5484ef481f6ab34c8e6a1bfc9f79d1c3f7789717
+B 557bcd4ea79ba9a01a62765e63e97663b73363aa
+B 5588578e04fea8d03ee1c22a888dda3cde007744
+B 563d7793d6517980a1e1c143d3a02c72209e7065
+B 568ddf675cc639efb4adbfebb11ac887cfcd355d
+B 56a44e02e49f1d5281799ac57370b03772620cc8
+B 57270b2ddefebebef6068a2ec1616a4bee93975d
+B 5753513fa33edafda8730b9e275865d777c2926c
+B 57afcdbeadb65078c5a77b9b272776aa99e75fc6
+B 580cfc898849f843ec4a14c36cdd9546fb68fb62
+B 58b7407570c2dc0321ab004e41cfd6dbd461e38d
+B 5947e596913a409f560c1c5db75c73d044f1d8ca
+B 59c84eb28b8e3338e985c6c961dea0bcfbb9a573
+B 5a0d5de27c3d83e82f18ebed908f0624c8b7585a
+B 5a140bb6d402976dba1e87924da86ca4d4390d2d
+B 5b82381fb9958c43c7b196d514abd3cc3f40a15e
+B 5c6e0e2ba83fa048405f5c2143c064434f4cc203
+B 5cc5b0e7efa51cf7f280bf43fafa9f2beea411c5
+B 5cc93336c15852071db530c654a23bfc0ac74fd4
+B 5d6e1bc5d3fb83a6457acc933e2e0675eae4d856
+B 5db6a0382e3706afd9fa69277efc9f2fabbf1c44
+B 5dc29c16f921f7dedf604bc082cf9069c11f120c
+B 5e94c8035b7912c846d2ff361e318b52b35835bc
+B 5e9eb6f475603e06962c61111b337e1b6301b922
+B 5ebbb6c3aa8d5acc3b86cb23e40daf29c5818c34
+B 5ee6a3da809a30d055b822080c8cbf7daca814b9
+B 5f239df56260353860e34125df728d25b1e0bf4b
+B 5f321f0a2c77e84381f3489501bf7c0eee91b5a8
+B 5fddc354042fb460148470184fcb31ee1e173da2
+B 60668f71bf3ca9055ae93babc85e882613fdce14
+B 60862174e0c079db559de6a48dd35de6790d4ccb
+B 6096d78999d8fced697a29a02c62ddab98d25a3a
+B 60e756d2dc7507716d8b8fa2bfd9b99fc3e2ce73
+B 60fec6d7fddaa8324fc9652c6b7cbc100fa31822
+B 61145ca9fe23be1c9a88570926308e30b276c5c1
+B 6166f14fd666e8c499a789b4dd18a02a67121059
+B 62144e297cfd175addf57671e71773cc6a602340
+B 6241186c4e4ec1c14ff467884f83716fe6e2e2c7
+B 625e54cb8ef4bd4c06f3c25d9cbb1b0bc53e83c1
+B 629713a1e4219537286d9b329063bc507b2e5b43
+B 6351c76dc86a2b2ddb4c6b8916e726ac8e084c6d
+B 63ee16dce3f659ea9dd0625be22f99152407a210
+B 63f6c6f64192c0a888299be79a4d6d3f6fcce968
+B 641eb0a55dc3c5a0f0ef642a3bc652f1f2dbe366
+B 646618cb1a65427846f28ff9ef432e3bb10b702e
+B 64a23c3044b21ce4acd722ceafae7997d0c3d841
+B 64f746bdd2f653d2a984edf29548e926a8417530
+B 6502de3d212a182cd256aa54787c4a834195ff2d
+B 65083f36540277b7b64f708c63ccfc48dbc74375
+B 653d5b58010b7c1f3370cbfe4e8f301b977946e0
+B 65ad54cb421575b1eaf8cf25de0ae460ed79d07f
+B 667354696a75d30f2ba27023f4645ba5e3566fdf
+B 66984858dc0fd36280d4e0aa3c9ffe4a23db7838
+B 669aa67bbeb6a61186bc55a037af4b583af7746c
+B 66a2078b2699a91116f84175bb0e9c5daddbbe99
+B 66a3f2f5ac4f03976ed55345ae8328662c92881b
+B 66bd965f3def49204082c34bc2c81f079bafc7c0
+B 66c7a7568f0f6605e63312af17177c2a4c48280f
+B 66cbfefefe7e1c54d751372ffbd03bb07eecd1f1
+B 66ded460d8b3c318796090dcb8887ffb8326eb05
+B 67875e91c016c7dc5890a678956ae441b3b164f1
+B 67de1e34748ee3f031b2783a9a50320cbb623457
+B 683fa9276cbb8f419d0a5f82427360e8a1987727
+B 685eb54712e9016c4325f7ad28b395a9826c8680
+B 68b030840e7cadb726f3be292b8456444e815344
+B 6930413189d7f21defbb8276bba1432bc7ff5c6c
+B 6a16e4e80352c0ca5e56737502d95f70688223bb
+B 6a825d6f00ee51a58effb6bc07339f62bb3ae67c
+B 6a8283e8c38f21e35513cc24b77e63819b97f0ee
+B 6a9664a633bda74f251474a3f31a1f07522c57bc
+B 6ab4f892c495b6d5c319363e02e307b6ecd47e93
+B 6ae8f4afe219581938c0020612212faa3e770064
+B 6c06fac749597833aa8608b49ffc1c281a21b64d
+B 6c0b998e888de9a20ae91cf121c44b0916d8babd
+B 6c3730eccb1ac0b11076daa74ddb66790d7cf518
+B 6c6d8d64d1e7fa7cdd287ca68195e344a7641399
+B 6cd0fa9ffb19b86ec3bc073c66a5c45aa34c8195
+B 6cd17724fd6bde4b7b350b147ca06b3601fe7da2
+B 6d22caf7519ef84688a86607edf2897d9821e769
+B 6d90bcc2633460b5fce7892365afb0dd23b38e94
+B 6dcd71fce8cabcb0557fe6d5d00052968635e267
+B 6e351465962e069730f95d60d581181207a16ef3
+B 6edbd5859bf607dcde8f9a31b6a4658df0b91e21
+B 6f7ec449d4fbebb9fefb6e7152eef93edad44730
+B 6fbbe40e41cf96318c9101f7fb597d0a508ce2f6
+B 6fc4cdf9d0a55b0d9ee87f27e20f67333977e828
+B 6fc8faefb596836e6ae698a87c675d400c3ef137
+B 6ffe710140ed4319e0ffb04fedf880b4f890f701
+B 703b93cc965672f920088deeff8bde9c90b05480
+B 707c179ecaef3145d0ceb13b6368bfb6b3f704ae
+B 7099417b5237d98699c8d8b7c894318172f602ee
+B 70bbd4f40211f8a70cf01c02aaee8b8a13a90ff7
+B 70c1b9276e4a0c95a39595990c7715e4fce76c8e
+B 711619f9f578f9ea64549f20cdd7d0f22ed28795
+B 71f5cedbc5251c8652341a3ebcc58749d65fe369
+B 71f8d3a03aac093d7c7655ce4ceeb855ac3789c3
+B 724458f5417b0fad261dc9db0a7dc32e749062ae
+B 728590b437c9decb1561b60fbe95c712fb3fadf6
+B 7294ff05b25d1388128b8a546d47a6ebe61ffd61
+B 7397e892c7a63d8959c7a24277fb1b28dfa538e8
+B 73ea6c5ce6b86e1b28d3eef94c8ba878e4babffa
+B 7521ad685276b02af30a5fa145dbced0b91058fd
+B 7524807b1dc58e4052eac67d623835f9eeb2b458
+B 753557e9dcc97db25d4214759506ff350a992d60
+B 756994d4acce00cac3b2ce64752c0a894eac69ad
+B 7569b706d806b5143a65fd20b9509ba85d32d88c
+B 76e6684cbb46f3709dd4bfa02041267348cda6c8
+B 76ee50f74ddda8125ac71c1133d56e370b7af9c8
+B 77517a10acdd8632ce27a73627bf9e8bc2c8039f
+B 77ea0eb4bb7fe1cd7ced83c73815c5b67ce8d291
+B 785afc4b531fbbfd8d68ebf9c1dd3f6f759bb57a
+B 7892ab5d1535c538b8afdd60e06e3258383fbd2d
+B 78b1613ba82f09eed46b531ef163eaca83b94d1d
+B 78d67e6576a93dc197538796a07d2f3f4a491570
+B 78f0c578afd693c577e0eb43150250bc726e5e6e
+B 7a9039c7a6d001974b70cbd1df064991c8f291a1
+B 7ae1708c781b497769de20dff8f65c94d21d0dae
+B 7b2020d6a9f1de574348ae979a5b8a80f5984a6d
+B 7bbcaeae79726aff567a14f15e5aed8c0adf9744
+B 7c1daf4aa92d95e55de49bde07df097ea90ecf11
+B 7c241fb0a6341222515e4d2d0b2d1f98de1e9251
+B 7c9bf2255476a45cbde64a3d91a7b90750c0738f
+B 7c9df9d7f70bad77f25c149b432a001640acb33e
+B 7cbdd5a0e11c285bebe3f42ecc03fb095b6a246f
+B 7d45890daa100aaece18da05aab7b1d065f306fa
+B 7d801fa5faec894c755d9e831fe6d76656233a96
+B 7dc270e8415ba6fdf3decb2d3a9f23722711bcae
+B 7dd5c51d7457908a176978e24ae58ded342b9b98
+B 7e13cf2af586861c937bca78f4e1b9a5357f40d1
+B 7e204b565715bd02a23263c1689e371bc9090e3a
+B 7e9a8235d3a6ea97e23e931e486a5feccb6072c2
+B 7f717e81f99c50175d5fcd5dcef42ac9a4ff4618
+B 7febe61987bf6e93a721883de4154ae5d570b297
+B 800598fd38d09b3a85984cc9638ef882600ccbf8
+B 800f8f673b3e16f1e398e931ecbf412bc028647a
+B 8017011a7b653d41628ad7bc5ff05071e3b6488a
+B 8018c8342a5e4c352093b6b43a4f7b414f1e0227
+B 8057253dc8240f273afdeb53f8faddfb5d1c8168
+B 80c31e9823e232ad88c0a486e08205c776e11416
+B 80eefb2ea8e8b2f885c78b479f96c451acf0d508
+B 80f2052e2db6a2b2162a28e1e7393feaf6d3b263
+B 8115b318225cb981a5fdc6fed824b15ab4e8c66d
+B 816bc508b5fe766f0a23b0eda4a39caf5994f40a
+B 81726a118d38b02ed95c48944f1a9ca41c181840
+B 818363f4a008615f40837caa78689515215e3a62
+B 81c3f7d4e4c419bd05dde77fa404d53dacf732f2
+B 81d8e24b045d1719c7b1a6918d5b1b43740423e3
+B 81ea77ebbfad05e2317325f6c038553ca810e584
+B 8204370f128d8ecd6a647795863ce6bfab34d779
+B 820b2468e2b55bbd2ba8366121aa041c4cc6f38e
+B 8210839483dad6dc7021520baae7f5f3f5c55557
+B 822012675021b70aac4d56e9c5e1a9fd8bfe87bd
+B 8254d79be898f4b1e8bdc24ed3465a0a7a3b9ac2
+B 82b3dbac1454207399520935759560ed51639091
+B 82de186da4dd23fa95c39151d4980ed99c65166d
+B 83052fac88126b39f1f32bd11b308613fa1af09c
+B 836b08e6ca23b7f627b2a6c8e5b9340a9687bdd7
+B 83841421a6e896da60acba0cd52235a87decd7f5
+B 83cfa2f1f181084a6aa3885a7b390cbe78ceeb1f
+B 83dde303106ea0f292723450588d4266b56e372e
+B 843e91a9d0972e50f5c1b164f908662183fd9ec3
+B 849a7d883ff7c1415e7820ca6651ed0d80bf6a79
+B 84cb84b62c03d8afa82c79bbf62a72f5585ad08f
+B 85c6cb558cabc1248fca9711b66a0dc15e3e6f83
+B 8601456b5f8725458c34c81a7a48d3f18497ae32
+B 865036b9e1576360b34798c5fc89e81af96fbfe6
+B 86e526d1ecb3f466b6988d29e3243c5ea91a2876
+B 8703ce00bf4987a3b00631e5232e7abbb96d6260
+B 873f7a5d9543578b0a05c318cc8241d5e3a78254
+B 8769740100cc98e633df2f4d4588b0de2752648a
+B 883739a64f3ea76e146490d4c158314c75603285
+B 885290da4c6f3c8426b1453903cb9308e44eed05
+B 885d450243af92377f0d83d90c7a9dae124a4d2d
+B 888bfa0ee1fcb1c649b8af7291bad431bb3f9474
+B 893263d9f832d052c396d3532784c667c60c5037
+B 8b697ed365227feedd97ae394bc3ef3dce57092d
+B 8ba62afd77c74af7599b8a16442eaf8d15fc2359
+B 8bbb1b06740d9fb47173632395be3b465f5637d8
+B 8c585b792fc4acaf1c9c51e22a4b04ba606da612
+B 8c96713d169619bd3f7790110523113fd7ff6e7b
+B 8c96de15563958ef780a407cc54e90195f80a262
+B 8cd3e8e7be0ae9f46feecc3df27245d59045c87e
+B 8cd826e6dcbe68c28d37a7581612239e2728f5fc
+B 8cf99a503f801d153e1ae09ebb42694d23de9026
+B 8d1e26ae881833f74ed3a3a2f3f3c301ad883eee
+B 8d30650e6e04930a998d412f5acdb051beda1713
+B 8d7f5e41fe2bae0041768e7a0129c42bf869270d
+B 8d925e6f5b829cf206a5333c13181f92c25712bc
+B 8dc5465c612b9c816ef0d4ef1399340a65b4754e
+B 8e54dcedbb0f99a11598faa824641ff76f9931a6
+B 8eb0e72d3da0247bcea0a29fcdc29946c2fc4c73
+B 8f04311b6fe0c4f200094ac15bcc79a21c82eb3f
+B 8f8c7ef139537afbb6c1b43fa320d743d168c1ed
+B 8f912c259a699acff713b5dec29cfa5e8b5f5a25
+B 8fd34e2a0ad2fe6ed88ff3e78baf4315995bfcb5
+B 8fda22fde0b3c27c96071c0c017b9b2ad9b23bb0
+B 901d2a520b71479151032ffe8b662c6b19dea3f8
+B 90271b287605b558eb6beb6797e97d041e4dfb59
+B 902a89c5a404d0a541af92a99ec223a7adc18619
+B 905487796650f6e5ecea37bb3790a599d5f75387
+B 90ab5afdd29f5daef5af01453cdaa4f40ef099bf
+B 90c163306e79d9f2d38c094ac6b8996fc7c62bcc
+B 910f4e95785ce77628833a296b036b0374570e7f
+B 91157710e5c6b0fd2f808d0c5697e458af866d38
+B 912dd1c11798dc69320dc7c81667e02925ebeed4
+B 916b902173de7e32e0b9edde8523eb4559415191
+B 91b367b770f6f21d932faa476428bfe41722afac
+B 92003dbdda20095cab1bf5740a211a6c9b554b50
+B 92203fbada808fccf32814a3d4cda8293b4e8ba1
+B 923ad4a992f9d40285a80d6a8e701b0dda4d52ea
+B 928dac86f1cbb3141204a3570c584bf9e05704a7
+B 92c7421290b6f745c6b21c1a609ae73074e7151f
+B 93ea0622ac97b3f0024b3217a76ba820a62eeb94
+B 94bd1cce747041cbadc644b8ad5394901f435bd9
+B 95b615699694db9517e03987d6e02062760310c5
+B 9603da46c34c6e9d45172d8c0c5de236178c0a85
+B 961e8a7eda058e8a9c082406fbf425f045f5c7fb
+B 966ca864ae768b2db5c06bbffd311c2234516867
+B 96a349f62e117f12ce43949b723f3fbdeb631f31
+B 96e4336334842ce599ca821319f56813b5036486
+B 97204118297f76cc48ee2acb154ad2761b725f19
+B 983f4092a9265bd0d709f34ebe934b645ce8164c
+B 9879f3e1255d6a19dca7e9a167f647f8fa30f935
+B 9881dc2e1c1f891d0b02c096d70e6993ee51b1fb
+B 98aa9b1aa8c03bbf3ed3058f852aae195ce5aaf3
+B 98d04f03af91e51e3e700f6ddb1c5fb91af07495
+B 9941a6bc7a2594c53eec1c52d7e15c03c091ba1d
+B 99674f2f92a1fe03a7cf71d14a91b8b5ddf8f1e1
+B 99a0584b7c483844cab66e231cb8ffa559ea7cf9
+B 99c47519ffbf30335559f8c32d222314ff6ea438
+B 9a20282e40c3d60d03871440d0b14ee02d3f0a32
+B 9a2fe574c337173cf02bb87aca33bb232a544f70
+B 9a321e7b9c448f5103adbd75f27b7b49bdfcf903
+B 9b03618ce6080fe97200fa1f92b6794bacca8fcc
+B 9bd2ff354bd400369f98f4e20ed549b90f65428e
+B 9bfb76f38275f50bc4ee02124b40055b54dbe21b
+B 9bffdd0707b3c41bd54cbd9422c8619f1bfc07ec
+B 9c2dad75b62a100811fa4bcb0e1db4f1987f57f1
+B 9c3b59f6e9a98eb9a5ade9da3a3dd58ff4d75a52
+B 9c7f0eef07382abebde1fd94834c7a51b38446a1
+B 9c81eb8728998db48ed4162c245fee6cb75c37a2
+B 9ce7fd4c03d539aea0fef52fa4728d6b79171090
+B 9db7dec8dfe58a4add1b22898997e4c6e25f17d9
+B 9dd62509e232269afac7a6567fbcc568a3f91f0e
+B 9e17d8a99e634fa9ce507afb61c1a9306255fa90
+B 9e27007895d269fb3e2c47e39f65286d29a7896b
+B 9e745da46f1535afecb11d3f24f21b41bfc2abd3
+B 9fcf83d1bba27babaac6ed9efbb1f8876137df17
+B 9ffaa4d40cc724feeb49356d7337d9057d69364a
+B a011a969c042235c06aa2031283ac26b879f56f2
+B a01b3da2d4257fd44089e574a5ee35acf7ca64ca
+B a0ae89d855b7c03b0bb2ebff31606fff9b8858aa
+B a17804807504965226b927e22b8cd83a62666c1e
+B a18be4fac03d3886317b0201123e9917d1a33e60
+B a1a6c4b6559f5e6b672eafb2ddd7ce1e1551b53a
+B a1b1e7898cb51e2681203e4ec89767a89f2750cf
+B a2efbd3ffb14ba842d1d41b0d38d661c9d932411
+B a312f2a028a3b085ef4401cc26d930de7ffeeab0
+B a3f3df042f158b67426700c95a7be09bb764f3a7
+B a465a179aef282b716693843898b466150b643cb
+B a497422ec0a70862382e26e91b73efd07ccbfb0d
+B a4e9143f9bba3bf4ab07e0af5d46b30f135d687e
+B a571dbe318a5114353edfb67af9704356122c296
+B a63dfffb980d78956e3cc75929e749dffe1c7138
+B a6939efe5a5858468f8348132cf84b6cae4a3a03
+B a6bb6636d201878e35c49f728af5b67916a0b805
+B a72f421b25cc491be2b586ef41a7d15980407a58
+B a751c55ea21bb7ffb33b0b9e77d0bb01ac99d810
+B a754fecdb8e5aec4b9a6fcfca34000b98bc60b01
+B a7df4c909f624fc681d11fc4db0f9ffe2b768e83
+B a84a5a6706bc760dfdc558a419bfc508e214323c
+B a894b15bc3b904671e96abe3187409d9f262692c
+B a925d01f6d1c064109563dfbb91ef0ab966cb38e
+B a93cb919813047ddefa90240d5c3d18d9a97cc78
+B a97df555de4fc1a17fd1a13ae055f76295180fba
+B a98d18ed2a859822068025662c7bbe5fbb2f8b3d
+B aa560f4b8a11f0acde05e41adac328f180f6257a
+B aab6216c1a32ce7f37792066b4dbbbe9ca04b90e
+B ab1cd2bba38e4209991bd108158a08036f097b5e
+B ab5e64e0414bcbe0e8a5c5b8575289db816acccb
+B ac2f3f8c4f435ee71f5a7bc27f2d934a24628732
+B ac9ced7fed677f3802b16ebc68d6ab11be2be420
+B ad658a159ad1327c084a90d65c84347a8aa640bf
+B ad82b0bdebba6bafe2711620cef8ce7446c26a1b
+B ad9fef8fe55752ca99a5047efb2fdc54e7d19e01
+B adfb0d10fa2aeaa1add8fbda90d440bdf2c1a8af
+B ae039d5762840d76f710393071aad85fb09fd5ea
+B ae1212c3e25bfbd9b39ad450fa686e7a9ee9114b
+B af70ff876270387875292bcf90844a7ad258376c
+B afe13e4bef33381f27adcad6b5b0ca857673945c
+B b0133860d6db408b21f15f9cb52c7d16cee89b13
+B b04f7ed86cd6da81578c9a66f4bf7db41dc8903c
+B b14f773634eaee65d8b8f2f1ee67d1e95c4bcb9f
+B b15370faae90413f215b82c9d8a7ff5923507708
+B b174615dd9c37284f76ebdc8aa3eb92d19acc05f
+B b184d9474fb8aff642822f89eba9fa6cb38ff2bd
+B b1a2e7e12a9b8df61b2111c533c2e53d7353a7c0
+B b1c0536ae38fe796b8abfae0009bddabade860b3
+B b20f99509138b12cae360f7705770386c6698d05
+B b235b11b7a207d47ae00f84b4ba7b6902e699981
+B b256c462ac837e254e826a082a2d71d9f17b18c5
+B b269479a90b953d85df1eee446f01eb4d0ab10bd
+B b2cc4b22eb064e6a0b242646cb50772f8edc55d2
+B b34e1daed084078d5cd5964fbf4741a9f9bffb12
+B b35e579fd9302c340f8066e192d8fe6f1f9084cc
+B b37837f0067dbcb48e8431a8caa2554f32be559c
+B b384af55e69c2af5826c98b79570da4983de255f
+B b3a5968313695873325587b74f3a74de2ea9413d
+B b3b3cf8869f39161f8521a33508154799bb54e8e
+B b40ff385662fcb87ea9951e3bb92c24c9a1f7fe2
+B b509ba67ce2ebe6655879e9999821ea8a5b4bd6d
+B b51c93d236de91851113a3e25a659596bad81f6c
+B b541d60dd93241f4d9b502ea11a362b322ee3cfa
+B b54206babc92ff982df9ad3215a0c001961bd3e3
+B b54be09de3abb65bb0bf43dbe3ed8aa346a47251
+B b583dcd1bf8fbe27ba057c114509c7c0d940a089
+B b5aff34f534d7b3cebb67771ad2a624cdfec617a
+B b626840f1571bc927262810f78cd2c307f4ae18d
+B b6e6a04205dd763ab71667784926a5d297171a3b
+B b715067449220f8625d45e54092bc28e22814b0c
+B b7a111f5c5b69d4c5abdf56cf02a4454b54fcd17
+B b7dc34c4fca93ea4cb7a3b2c16ce853ed63faef4
+B b7ffb08d976550ba512dda1aa51205c1f3c4ac00
+B b816789d8a37a0ee970cf692d4a5f0f0c2a2cd99
+B b82c554039475f60918e6b68e1999be4b7334d2c
+B b89704d67dc4a9eb5cd59890956ebdcac0584123
+B b8f68b6ef1794e32e1a1b36b7347fe42bd0af7bf
+B b9071a45eb2ea0a06f8ce8ca4b1783c49064e79f
+B b91d4c69e23ed7935655a8c78670df407b11bf51
+B b92558cba08bb94781174dcd6c9a025bdec519a2
+B b94129cb0e36f42d5c30eb6fb22e76f0983aa6ea
+B b941cb80bc4f75ed3b02afa7c22e6847550cedc6
+B b94ce41b14661f12e6ee74c07d7771f37d313c0a
+B b95949f1234d38622fb03373e5ac9b6acc550721
+B ba3ffb12d7c745e757c0c585268c5ae95e91afeb
+B ba6e36261f7ceb37eabbc777ab45baf26e5cc2a9
+B baa7e247de7cb66f5c89140a6eb6bf72ff91e620
+B bb0f33bf08d59c85940280ce5071a5856686781e
+B bb257ca5573bc1e23760e9fcb8c899406aab50e1
+B bb2757c945ea3bcd93d321782fb4df39aaadd133
+B bbc50bca9a1c04cc30a8d618f7cf5fd52dd2d430
+B bc3e23bd6dfe14f2d1471a286a6ea3d4e0556ade
+B bc534fa84edb3a1ec54d723d92b7754f43d2f248
+B bc683e676e1465383dd84ffffd10911f5405a99a
+B bca65dca02ff254fbac4a1087156063aefc94260
+B bcb29730acce6537411c814c14d5b286ecc8a4d2
+B bce66cb2a1a93829127408e88aa47e3a1a905148
+B bd565683e0696acca674b45e3c312af0120e4a1a
+B bd88de78866e4da2f88a464791e7c44de7c02b37
+B bf459ec393c377dcd4869ccfd4b7fdedcad43920
+B bfb06cb61df28ae5f64ef8f80d3cc63a8b1edb47
+B bfd4a8c6fa96616883b8fee7c56a9e84e1e16f93
+B c099c7d07aab30939dd1213411fc7878cc6bb25e
+B c09be288535b6a059e935a43a6ed5f9dfcbe26ff
+B c1d1ee37ab06452b28f972cf0a11f110afb228db
+B c1fe338d525ea4ec36894ff1732fb327e017400f
+B c2653fd153f5aee1a724d1fc7525dcf87087ad89
+B c2cb5b7459964b9e6541bb782b3ea3fb9b14522c
+B c2d10270fe89946a5da895333649180fa4bc0d71
+B c2ee7f5069907204247474fea5d6f093e23df897
+B c2eff324be4e679755818ac04f6a8dc8ef3fdc66
+B c48a9c1c5eb33069e065a1b0f1012e5cdc8a82cd
+B c54a538bff6318d5f9b05e135dbfcc59c305cfcf
+B c5e4dc05175917365dd9dae82685f2c280e6709d
+B c5f3efe0ae4f39ac133d3de8c55a5b4670000611
+B c6ed551aeb4e55984dcb45a70ffa7214a135acc4
+B c6efa27d4625cf7219a39621ca4c4e3af9ceb81e
+B c742aba8d46e8a3a2774cfea37788535093140bf
+B c755e0a939a337679b2bc80b34a0dd4ef69c519e
+B c766f1069dec6b8682865390e0c6fed133ebbe5d
+B c79696bfc1aee1d1204cbd592f6bc5c83c0d9dae
+B c7a7e9978b7b9e392690d3e5e99c7e6f02f613fe
+B c7bf868270c0cdf6f794d3e2227f16649ece82fa
+B c7f4ce23ac7454dc383eb5f0c5d3f6f55aee95e8
+B c86b32063506fe346c6b9c435647f6ced93bdc67
+B c8847b7463f4f7beec2995458cdb58173c672f57
+B c8f00d621bbebb4566bad45aca324676c221102c
+B c95370e4cb038964ff8054d18b920da04805ad06
+B c9f5e018a9fa458f9896bebfb16c78bf68a41e34
+B ca088ea3d42d5ce9acd4f44bd96c19a7bc06ea0c
+B cb20bf3263f8afc3248c479634a40f4579901186
+B cba9f70068a74ab195c618b681cb45834445aa66
+B cbc44e3e589df9367f9f0c5718f598add406f0da
+B cbd81c955e5a1f6cef71fe53e088521cdf87c936
+B cc0ba3f09068df3397adf5f7c55362bdffb96174
+B cc5172ceaffb018e3852c9ae3d9e3487cb65d80e
+B cd3c7cd9e1deac5dfe8c7e01cfaded27b36734e4
+B cda59ba670339fe9a404b9e9f29ed891529ba187
+B cdb21645e189c3b31f7a407e0d37db6464df4a91
+B ce8b13fa4ed9784bb9fff443e182edf166b466d1
+B cf26ae9a13bdec8aa8f49531161e98dc95629231
+B cf6038e7c48562f7b8431f58a58bff3d2616e125
+B cf8a1aa579b182c6ff47f9869ee5186101533883
+B cf915317e475c1648e01e8bae05d847503a5bc88
+B cfbe8942a1f2f029faad8c0fce9ff02a3bfb9fdb
+B cfc58bd559c4882d0a8d2c1fc26b4570eb42eb90
+B d0c54eacbda2b96eae6175acfd5265288b8722bf
+B d0f40121063a8924bc02fd31b84d99fd06513573
+B d11b7d2524c225f9f4c1cb0f7e772c3956e66eda
+B d19a85fb9a63c7db5f414e8d62324b2b36fca5ea
+B d20efdf1abc3f4e0d4b8e0cc2b5d0aa9420c6dd4
+B d26a05cd19d78d96aea4c11fb37b43786be53f09
+B d2c01f1a6bfefbda532338be0be8729b7244ab50
+B d32f56ed2e717b3bd646b0bdf37d92da57fe8a4e
+B d37bdf0de648d868b96b820477eab96e144eea5b
+B d3fa179ee5131353aadfb0348a2a0ed5fa3c2411
+B d48dd9082e58fd3e3ddfd067ccc287bef402f333
+B d4ab2f9bdf294e74c5e74a77df34aaf770642787
+B d5c72f876b1c34a41d93f07da546b906d1ed0d3a
+B d5e5211301d67aeaf81d078cb2fc9b76478e555f
+B d5f4ca8a34a1f52f89bdc7f2cc886d6ad1ee7819
+B d6b4d3f2666cce8a751738c4a9e48899bbc0dca8
+B d79b6b1142e07822075b38b0c00e8901a6c462da
+B d7ed81cfe0b10d5562ad7793b4fe2402d2582b28
+B d83ab4e5bb0ae262b8a32ba18bc55a1ebbc963bd
+B d84c6514622c94da56e0665cd4383aedffb24220
+B d856294754f2f63aceb6192afe50ea5d4d58ca61
+B d8820ba4f56760e9d010ba700b1347571ce3ef11
+B d89b292f4939f419ceb097de02aa2861476cf2e1
+B d8dd9d657fdbedbb11be5a8a6a63ce13566d975a
+B d8e4ad366ca5fa36a0a89fac417b30a90c0e05ad
+B d94188fabcb2e6ca73bb3fcd685aa71cdcf5f5e3
+B da600d1605516c96c1fa52ab69cfa9355f983470
+B da877145dcfad9de38aa92e92f5b0d1d2c9a20b3
+B da8972f3d4e92b18f464009ec27228cef0069da5
+B dac9e8404e0854813c8ed97e181eb3e0cf24b474
+B dae56b90c1de0dce1c00abe12108e364934eccf7
+B db328134ef7acd3d7d46163666d5f6f4c59a8712
+B db84f3f6128c4c670f1b328a5aeb6b2617af48a9
+B db872c215057bafcaef5d48652373d607c7a9d9d
+B dbaeb110eb4a575ab647fccec10b87d688114d84
+B dc9ae1559e892067c06daf00772e458b6428b1f5
+B dd31efec968b7e0fc084065c058fdb1f6e66af72
+B dd61195c15e6810e3edbe6547162e8d19bbf2f72
+B dd7889902be831becf1dc57b3639cc882d953267
+B dda04a0d825d4fff19eda772b0b1d52c6b5978c2
+B ddb679067e3067baaf6ec268186113bba73b82d5
+B dddd440ffd38f735f205eda9b0ffee12b041d4df
+B de4148e857e10ea136b0f1df66a111be949f244c
+B de6c14b0368b2a6570b71719a356441413598a33
+B de89cfaeee151bdc3b8386f94cf53c1922b66dcd
+B dea6d0726a531ffe6b1834407c74d12f51da4ea6
+B df3aa9d613db902539ebef5b0ef47122c86df034
+B df457e9b8f456cc571a5a136ffa6f9bc06219588
+B e01fc4aae66285c5567eb34d01f8ebc41274424c
+B e046c38c9d8569f4a6fa2bc3cfa4bccb38e9f71f
+B e0618b670df78b8326f205af76888c28db734e3c
+B e07e865dfe69cb31802e349924bbbecca5c35aba
+B e09380862fe870b25f9a5a48991b35d719d04cc0
+B e1079067f58abda2a80ccc309e762ea9f064fc3d
+B e10f669c0085b797d2e8b25514405569f6f48924
+B e2532739205dc27753ab56a2bb1629fccea81a48
+B e25741b0ae646a475088dcfb5c17f90356ee2d80
+B e2cf8e34613e1723d2d05a86d4eec7c4e4b36999
+B e2ec1c2a2d7cab8d8603b0448bc238fa2ebc45d3
+B e3044db0cf3b2819d31e170b9e717e511da35469
+B e3518a7b9ffd4fddfe3bc32ff7bc437a4654963f
+B e3bc99d9e69950a30546dab9d988b2559e6467fd
+B e3e32663ae329f8e7986b12b1e59aab030b292d8
+B e3e64c7618d56e74d1f69957c1e59c8b9b9e06c5
+B e3ebd9c15b437aa5efd75200afd8730bc641c513
+B e45e550d1f9deb86e646038449fa8eefce9ae38f
+B e47151b425ea9dc305b6ffaa07b223b93dfcc0b5
+B e491ca37c48638bce56812d6a101b53226d9ed87
+B e4c0c87081a03429afc9fb03cdeb995f3e5e9ee4
+B e4fd50f7cee7de0dca28bbc155910901d1b92276
+B e521bb9e84b5701e50b4d9aa3d25c8206ca59b72
+B e5228359967bbbe1f828671a76d1b4db3890b839
+B e5d5f31bf34ebac25fdb010d45e60c3b2af30af9
+B e5f66975a50633095f6ec2e06b7df1dd9b458c98
+B e61bfa7953dfe33d244bb5b59435ec93c7506feb
+B e64540c33796f92153c0a81ab21229946d26dbe2
+B e64947fd2cc76de4e3aa045f628a5a570862b449
+B e6581ab15174c52ef423e1fd218fdfd74588cd0d
+B e664599eb155a68f4b889f9180a58d076635811f
+B e67ec6fd6a34d089de726c5ff6db6236659759d2
+B e68bd71f0145ee6719d80328366209a07b984df5
+B e759be97a6b81c18efb442411e0a56e9d4931455
+B e7a542708da68bedecc87ecb031c3c484dbd42a7
+B e87711abf86054a8fee51d1a33399ad26c878a67
+B e8a265088255cf4d04f6dbed64dccfb6c0f31c28
+B e8d94a36e0f91ffb18da9a5c3bfb22580ab89afb
+B e91a5c202f37648943947ab3837edf5483d7a099
+B e920277a696df6f19b983fe81945c45ff775a17b
+B e92859b6279b233c0d4d81ccbc0210b55041eec5
+B e9a8e89f1c816bc34f81afd28dcc26120b6021a7
+B ea090bb3fe21bd768e609275f0ffc33515d0aced
+B ea2062a26909271861f8237d7d2c9190ba0edb0b
+B ea254d2bab7bda362559395637e42212a7b54289
+B ea2f8e89664fd5d72471b5d9cc3c18fb159d9fd7
+B eac8cf37670d44993dec6691f116ae64855538a7
+B eb1059d2e38366ca6fc849b0c150c90746675795
+B eb5e7a534ded9fbc9b590b9ad91a1f21255da6e0
+B ebc910780b2b9b971a7c1c2e4019bdf9ec35e460
+B ebf6c02cc4988f31f521bc9a27041d396be61534
+B ebf910b902c57d94c4b41ccddbc3cfcb0aaeb0e3
+B ec154bddb76600400674592cca57f93c31bdf484
+B ec3dc635c4c9e78c5f26918aebe7c3d3f0ccfc84
+B ecae5ecb2a104dc5eabfe27c704d11914e720cb1
+B ecf2fdbe01d938809dcc1f71f3d4cd4de82fa702
+B ed0fc365473d395c241232dfa4d10f15d8f90c3c
+B ed66e7d56758e60c96091b208c81c2f2b26bb61f
+B ed8ac50116f225ad4a71b888b7e4f44c1f81991a
+B eec9d19c2bd836b28d60ec826f3ed0bd9e67e977
+B ef89633ac7154afad1d3f17dc438e3dcbd7c3633
+B efbfc2fa90b21e7766f85cb36445146e5c516061
+B f0939c91e9adaee10baac0b8960135b96e35843c
+B f0baeba05928f376e9fa1d384ecb13bc5e8032b7
+B f1614ea6d66bee3989b3218a3b8559b776357191
+B f16d1694f39d4cc82c874a90c783e49652539f7d
+B f18544e2d66b5e2cd337d0f8091a5dfaa4ff8ec8
+B f1a489678051ed4343bb2d1826a5937a0b71e125
+B f1d5ca8aee78a87a3cf2382a7498d8acc143bd3e
+B f1f64bfeb545eacfbe33eab62b08aed9d25adf99
+B f28f777f7a4cd31c32fa08d26fc7892e4bc1f89f
+B f34899128e0e27850a3cc31bbf58658290931506
+B f3497b00bd89e2978d605425c98f93fd310f442e
+B f360f14089d616160553b1ea336c0d51a0206443
+B f42f6b6ba6037850bd200923b72fd3e716ccbbff
+B f45bfa1b92dac579d570b86d20fdbfe6ac4b5feb
+B f47125823394579b307d8dbab89fc6cdb38e8c80
+B f4c0d943011197b0223607959104983a5f8d87e1
+B f4f4ddaee93e441843b481293e08a4686505116a
+B f4f50aa0412bba172fd0f5ebb3e73eb6457c3812
+B f52a3c8e60f3ae03262e93426fa59485a7cb1240
+B f560c627dbbc16b0d3a1f908ae2294571df692d6
+B f580f398b196fe27c9d13487928aab6833da780f
+B f613754b3eaf5346371b798278b287ffc64f14cd
+B f6207d02c31b2351eee0ba206d80b84e8cc6cad7
+B f68e1d7ab4776ad0cfcdaa71f6e52d13c568e62c
+B f6b89fb5c219563126aaf55088fd3ae239bfc2b0
+B f6bab1a9a3e4602e386574c657d8827c9a528429
+B f761107ca5f9e2172fa159d31317df1a6fbd5df5
+B f9b4939d483b43eb72ad165f995e763ce6bc34d8
+B f9d34aa106502f8f74f2475de3c10f942c9d2cb5
+B fa30f5300915756d6b0248e07118686a0fe6862b
+B fa76f6a041ad486ab8afb21db37cc4a490c532e9
+B faa5a8f57a41b037d61d8e4493897210a9652546
+B fb3e0dac7b20009b454c8418a009c6f971b2ef77
+B fb8061c8e24710869b963ab68bcfc55aee9ccc2d
+B fc277fbea3bddcd819bd64cceaec13ac6bcfbf18
+B fc3e6448974ebdf6491e3f08538459bb7f558e0f
+B fc6fb5c01c78c933d0f0a30658cee49116db43db
+B fc7e8229088afa5ba7f97e79f0fe62baa52c6053
+B fcc19c3ddd36f3a55ae2675e2ebbf853cbd3d9f7
+B fcef06bdf510d58544357bd71ae1e7221caa5b47
+B fdbdbbd2802b40d97cc64cce6eeecd9c5393887f
+B fe125043f9ea03b9e5222f8a0f3e014b45158607
+B fec6f70589dba07d780d6beac81e3e3ed8caa7b1
+B ff208632bb993cd8572bf934782479d9206e4463
+B fffba8c29af441e506828049c5407ae91ce01a81
+M 00137e334ed28eacc3256bc66fd5954b5faee992
+M 00597a58fbb8af58a2c84d37cb504496a8d0e6c2
+M 00af0597c650f8b9fccd64e3f362edf9fc9f4b3d
+M 0189dc60a79f876b00f909d1e5d1de3f12c16ff3
+M 01c6ccb0f94ce08cc7d46420852fc63d0459c84d
+M 02181b59db1c82b9849f0a268f0d8ce0b01f36bf
+M 021f781caab5e7fd82844f0ea734ec23729592ec
+M 023872e3024af7bf283031372fc0340d9560f51c
+M 02848d574a92a861503f636decef33c5a5e1c45e
+M 03630b26abad154d953a217ee7a822a8dac3a4ac
+M 03f31aedfaf53d808e88e9262c5ee3232b023a67
+M 0415f4685fcb7c95a3c7cedb57aaf6e19abb7562
+M 044067d50e6f35e39216d19a6d184296dac0b74a
+M 045f6d10f748323d7298491bff368fdf970bcdc0
+M 048db1165053b29d1d2337106ec20082a26f6d90
+M 05ea22e281fcd638ee782e3096c76c84f4cb5aa9
+M 070bde423e1b7f0544be1ae1f408cbc0e507825f
+M 0739099f15a76e983d19ed3c09e897e27022cd0f
+M 07f5ffddfd5684eff1c06aa9fc6c3b59105b73ee
+M 083fe4f98a41e75d0fe9d118384a8afe6a264b41
+M 086b11667b96dec701f592ae2925bfa5de7ad647
+M 08d5e152f7c90995bdd336f67c9fe772190e198a
+M 0a2e01f228890abba0bde43a545ea046c9c46119
+M 0ad59e8757cd183484053ae7d61995266b2f4760
+M 0b3894f57388b9955f2c33b2295223f2835cd7b3
+M 0c402ce8092cd9bf9f3390434c56414140267c16
+M 0c4676230ea48e18ed7689b41ece6c3b18a4059d
+M 0c638d78699fedff746a02f12ca6ec1d42e1cb8d
+M 0c906f3cc98a47d83faf8bd43354baa8aee75380
+M 0e323f07f45515aa56ad5ca54bcd3db10b964b4e
+M 0e45e5ef79b8f0deb04c35262dc05965fefac73a
+M 0ede8ff165e93afc86f8d45a64bdafc7e53527c8
+M 0fdc68f4cd45715a57f0aabd1c8f33da556bf50e
+M 0feb9222ddcb94464356e12ee9a0da88576514ca
+M 1022b96f3cbb1f064f3838a008eda420ea74762e
+M 106b942d2ca4b8a4a95dc34c3d447fe5afb548ba
+M 10d86cfe1b44ea471a6ddade1ef97b0090b29fa5
+M 10ee4399bc892c4f96e481882ca89d4ae04edab7
+M 11b4bedd47eed11662f3021f6220a6bd4aa01fa8
+M 1223a2c432c7901be7254e358928e6db91db89aa
+M 1275ffe6322513beda2eb87a6aef5fa723e9394e
+M 12e0ca177aed008991e690456f534b839e565ab4
+M 13c9797c84f647dbecd1cef854721c7a274603c2
+M 13ce1277499528c682cd59cd42728bf0ff92be10
+M 148b1857070b886e340d8a51044ecfe3492f7ff2
+M 14e827def5265daa5530821383c0cef7ab64c700
+M 15bcc140f0b8661ab160cf05e23954c44401829e
+M 15ce0c35c1ba67cafc7a170845dfb03d1142dd19
+M 1638e3ebdf6ccb51ed01ef98745c3f888e65ffcd
+M 1764cb7d4180169f647cb728fd36603d265e5a9c
+M 177b53ee279392baa0b98bfa4e55391343f02428
+M 18caf87e1302aac473c8cc1cc11853fb1ad401ef
+M 19322e37932772ebc4ff988db49089d15e3aa1a7
+M 19e99e219c74326ce6edc30a0b69a0bc45ce85d8
+M 1a0c4aad7f0360c30539e49a98eb4f16fa554512
+M 1a4b7cfd929bdfd1c53feef8099c1a67a24afeff
+M 1c218c8f21311db0c9e77ca401ddbe339f18dc06
+M 1c96e19bdc570947b18b343f143c6a85a27c0acb
+M 1cb8ea77bd878b694dbb739d2e08bcbe3e8c62df
+M 1e7c47d8d989d0f0206c8d4c1b11ef8638d5c3d6
+M 20767c663fc54d3f6d0219a5c347dbaa49939b67
+M 20b023d463d322b30067306acdd7b4e46292ba68
+M 21d0fce1db3019fc6feb34468636298e36905798
+M 21e29bc256f229712f39f183c3f92a947a27dece
+M 2236f57130b8cdce3a2469931d5df56f5515c916
+M 2319407b4fdbb14e65118fa41fed92e2361de551
+M 240a24dc15260b72fabe0d590b111516138bf99a
+M 245418710f833ec620c54f14acc81eea15b85c09
+M 249687fddb0d8e7d8ec7e701c15aaf41171cbe1a
+M 25422135a679309f89004e7ef8192ff648ade2f5
+M 26c10829e48bb274100d4e160ccafa2a2768af74
+M 26fd9b739b9d83c7eb995302a6bff1f66203167b
+M 276c35ea9bca26339f009cb50b64e54bf563ea4d
+M 288f6816795d85804ab5eb13307d49f7b4596554
+M 2b0565d07974a9880c62900dc41b489bb118defa
+M 2b33266fd9dc0e0b323fff13ae7bfe2ef3e74135
+M 2ca388d991f59df5282d8e960f7acfc7480b1ad4
+M 2cf133d0cb05680ee3b21e3d6905faca8e2189a5
+M 2db2973fdead79c745584093b90a36e35fdc5766
+M 2e0e4aa5c2314a3c1cf5b924ddf1a5a32f9a70a7
+M 2f250cf141de8abe1ddf5d053dff35038a453fa9
+M 2fd45aa13cf3470f5a4bdc78c2bf0621d3b23079
+M 307edfd819d881215047b36fb6f1f79bf0de8bd2
+M 30a2b16fb47589fe58ee25cb27590ddb0f58f6f9
+M 313b2dc34cf9ed5ddba6fef64853f6af143c3009
+M 31b6842880028b87b8bd43465fabc33f335ccaa7
+M 31b6da012c6afa3a0729a8c00faf69b2c8aca492
+M 31c005375e6f43978526a36e6dfb26169ebef9f7
+M 324da3c497288723316797b9dee615f3200bacbd
+M 32a194470bc6e123cbadc1ff7fdf2a4aaa4562ec
+M 3378d284eb38373b80dd23d6f3d889af28763421
+M 34b2d6c6d2a3a3e65494d6c7d8a3cf18700434ad
+M 35a3e664bad9f6c0f6f4901e60ce2b6bd748558b
+M 3665370f96518b7d3475f0ff9d48b6d1006e925f
+M 373d15b429b3c517fe0e8ee792dc547135f92717
+M 37aff8bb1cb43cdc78e9d50ffce7590ba3cf2df8
+M 380d4620d613a30ba436c5131065ec2393f7179e
+M 38798e5e4da5eb2c8370920602727ccd3286f6b7
+M 39e35f4f5b57aabbb7b6e391107ce3787ca34358
+M 3aaac231eed2eb123e71afb3d354b1d23169b228
+M 3acbca4221ae1d75e31b16ab077a0b8361b4df86
+M 3afead5e84ab41a564e4444973ade0cfcaa51c06
+M 3b2e71d4e74d64ff996e6ad46bebe4372960d3b3
+M 3c731fb95915846a47ed7820f14b76a0d8c0e4b5
+M 3cbfe03f6e045c870b95b25d7c427c387555b364
+M 3cdef913f730e9682f64de9869e2e9effba2fa85
+M 3cebf4150a69f9bbaa3541e47a32714fc948e5bc
+M 3d210220f02839cd8388e36f2ae9e6bf645cbdd7
+M 3d370cd3d37d222d6e6021e107d408d7cb6d7a2b
+M 3f927d153e06b47c5e3462a632dc308915af814f
+M 4052ba50657b9814a991b4c4b18ab31beea88fc2
+M 415fc29334310285b25d2c9a59c2640ee56a5963
+M 41d039fbd483609bac8837337c6c1b105c251459
+M 424c55b1edc445f7cb9f0c69e483f0f16238f07e
+M 43025ff2c4ceb0de499a31a4a9635cffe5db2eab
+M 434132594b23cc18f36cab5c3109a4490b35883c
+M 43ccd742c7aeafc228f6f7acf03a116ea91b8a3f
+M 43ee39dc1a7fae7bed0f549c1dc13324a0e2a017
+M 43fdd69f929d455e17694dad033d440c5e07a404
+M 445d38ab1bade4408a3b76e495759d4808fd4c58
+M 46a8e9269a1d51a6f7900f3143197ce42d095730
+M 476ef1b68de84b35fbdc5ce6ce68cd1aa6107129
+M 47e0f382e88ce9874c9d738cba0b902bcb54e3fd
+M 47fd08d7326516dc2d604afd145737171d4b2bf5
+M 47fff36aeff60d63ff6271317583d334aa1587d9
+M 48f200d771704bb86dab8165835aac67b360590f
+M 493e0842b4a5692df158c014587e720a7b2319ce
+M 49c144e2fbf4eb6d720200272f241ee576c30b9d
+M 49ec9db43625978ba0cb8524b26e29e5b288b736
+M 4a59f1cb44eaecd77dd33fbcca981e9df86d6fb3
+M 4ad7f1c417ddc8c5fe26f9ce63285a6755a2cc88
+M 4adf16eda64105ec116ade7f3ff7324bac486c1e
+M 4b2c552ff7c75b30a7c243417e514de9fee17248
+M 4b3c378bf3c64cf7a1fd0ca52dd4a779e36ea274
+M 4c3aeadaab87eb25c651bf7e0d79602173bf1451
+M 4c5707d548cfa8f39d8cce290c742a84d2a7647b
+M 4d392f1bfee96317d42c1c9d82a1f06da5158b54
+M 4dc006cff685e835fa83cfe99f702d005acfd347
+M 4df368276822525e18f5c2e91d421951daeac9f0
+M 4e0ea1db2ac1ca7c471b3e5b1160834d749d35ed
+M 4e8e5f292895681a97a762cf55f5bc9cbd17b9a2
+M 4eb55ce734f88cb16e758ab058aa2ee1242c38f5
+M 4ef48b93801110085ca9a95b715a32618f477f4b
+M 4f648cb0e564548abe0ce32283596b6e13ef3c31
+M 4f6e0cf18ad161cb964d69495919ebc3bb950774
+M 4f9e5de1fa2f7788dd13602d131398332fbee70c
+M 4fa7c4cf222867c0a6e3bdef29a03fe8c95504e2
+M 5144fc575c71f53a76b3cab64a4fe54b7c1a139e
+M 51814b35896eb9143c62990a95d60d510a8d48db
+M 53e5857352897bc197a78d11b77d84cffe8ead0e
+M 55441b1a4654fb7ecec2db329c3eadefbcae5c3d
+M 56990a6121b5d27b815e83e4ebc61636d7d530d7
+M 56c17b5694bf7e3108c8b4f7a011496b8d955134
+M 57232118d08140d265db83af256a3085ee6005ef
+M 57ddbcba00b29780db69558fade8d29b32afeb05
+M 58ced123c8d80d7f31e6d37d1d04927baef8ad0e
+M 5995149d449ebbfdc4d22717409fe9d5e86da48b
+M 5a5dbe76f2e2263e1e9c524088ce92bdf61293f6
+M 5bd5124661cb48a9ff619dc796e308171510d058
+M 5c21f5ab7e6c5bfbca79d2350c26419e9eec0fab
+M 5c43ede9914108c7d8b9f1d06d6e4601b8732746
+M 5d1e71a3e74ae5c8b5740bdaec00cad65918c39a
+M 5d512079a047cd0c934164cc76b5c6663d5ca8b6
+M 5df3f72f1a26b7c9ac2888ab65e41f4105706580
+M 5e1a629f038e38baa59ccf04e4203dde23548d73
+M 5e63a91cb80e3aec8eaafb300ca607305c592827
+M 5e7356aecc3e0d9e3853c3b800b9690e84b34e0a
+M 5f9152b79faa7a49a1d82c864e7306dacba4321f
+M 6019486954e7e48efbd393f5fe1e7dcee3a2253c
+M 608b823b5eb576cca77e92ac6298ef63c6d65c99
+M 60e570276804496f15e04f06ade2e9308ce04a08
+M 61adb143a0f5930357140c0d470e9b44957107f4
+M 61c94e87eb7328b7466c21e251d8c5eac0c84574
+M 6242c058731ddf5931457d25bf0233e6ea2a7f2b
+M 6358dc0577bb2ff41f91a6c3ac121a75d3da1a6e
+M 63f922255e228e4310335ad0b73309a66b735744
+M 652fab32f3ae5ffa3b4cb6290d654eadbdfd39a2
+M 6760726ef4281dde2031dfb7cc9b97a940452242
+M 683dc5caa73f8659fb45a7ab251dc6476dff8961
+M 69bc8b32faebee6b68c545fd281a460bcedad1b7
+M 69eada2cd44097d11c3bf1be613befdf3be451cd
+M 6a705cbb8a516df07c02bef7bb7398186fccbec6
+M 6a9eec6adec3bd08dac318ad51df10959e919bac
+M 6affb7514b8432fb6193a3923acb446483857480
+M 6b0adb6d7d897bd5afb651a537737ad828baad3a
+M 6bba3466149c95c53f35a01393f1dd16127e0301
+M 712533732d47b31b7e3c071502471b2007ff7bde
+M 724bc946c756d792a210c9aa7c757094b744c57c
+M 734560f61d1cb368d1e751ff70946b0561209e57
+M 741d39f8cd17c66af7e23b3257c1b8684f9c40dd
+M 743852fad0f04bbdcd060d3f0bc3f592a132d3d6
+M 74a52d0fe68a7a84f44cdc4583ed8b1ef2036b42
+M 74cba458513b9308ab9da0165ec32906786506c6
+M 75a584de2b9ec8154222bd48c56568ef7041cd57
+M 75d0b126cf89d7ea11bb05e7ba11300fe3f0789f
+M 76d10e750efeb0f0533f1465b236a6b1900f52bf
+M 78a2ca995c6ac70c637358c0327742af2f0ba2f7
+M 78bb09270488d503a4d8d54d839dc526f12e5183
+M 793c24bc6345b6a4c45522af1e0dbef20018dbdd
+M 794d67b7642770339fd1e53c658d7a72bb7693b1
+M 7996bfff65d2bbb0d045c9a280a89934d04eab91
+M 79f8fca14a252eb9688693b4b4a06de59dccab3d
+M 7a5c5e083a71c6e6742853eaf535ad7ed7973930
+M 7b8754406f28a7aacb6861d9dbfd14aaa1bb04e3
+M 7bca1ae19550435105a6d741f6351017ce31a3bd
+M 7c5c3f08c2334e4746fb5df4fcdcb035073878d9
+M 7c5edcc97b0702602d5fd2dc2324031efefe6430
+M 7d3bc771c321be9bc09816611b52e3c0e04323ef
+M 7f4f3630c35dbe78d9bbff2359a128db52b8cd8c
+M 7f75a2fc5a71f646d8647cf9b5e697f763e1edf2
+M 7fd02d12a94352b7ce5a0260906a90997342dc42
+M 82c9c7d40f5dbfe905b9c7c7f59ed44c3634a003
+M 82cde9eefdf806ca1df735f350b4ae452ef84ca0
+M 8418d85fc15732c00657a40ee4352a7668db1ce8
+M 847de6ca6358cafe43ef256eedc3fa5e891e47f7
+M 84d4f48d4bb636050bc4b7e691f76ea5da37cc04
+M 8507fd5476b758ecd9dc0e1e8971eff317a70a74
+M 8578e3cb6333f8562cb52d71c3d5b1bf0709bd72
+M 864299791bd7e21795bdab565851114635f02982
+M 86a69a6dea54550dec43e0f6906a276945c53bb4
+M 8780ad6e994585313d6a74bf80ebd1b30fe020d8
+M 8797ffcf69fddaf3f6171b77e8e9f46487abe68f
+M 882d04c0bc58fb35d4c72c8bf07766cebe4146ce
+M 88300918ca830e2885ddbeb32feaa3393762ec18
+M 88b4bd9f90bcb4106a96fdf98949d5642c1a668d
+M 88f227a7360620d86067224d0fc78050788755e5
+M 8a0a27ebdbae1b7fc9bc43120bfb94e8c690a479
+M 8a1487cac6b6ec2b1bceb38a376f2900bac3a516
+M 8aeecbebb9a79fcf06016df53b66f30bd036ad26
+M 8c097962953d2572c338f45aa60bd0ecd8692fbc
+M 90b59e32ecfaa946580ecb3ae2f6edb98638ef5c
+M 90b98052841c12eaa4ba0d99013c7844f193fd32
+M 913609fe35b0fbc78a19be1dfb08c2b51f7a0f57
+M 915a398a9e5e76f346dde29a4d4f4d94e8e03a7b
+M 925978effd034bbddc7ebe3716c4f6ed916e5b40
+M 925dffc63611a9e66846848850f4f8bcc29c2ffb
+M 92e17fb632f1b368e719b5d2066f823ce0ed1c5b
+M 93cde374aafa21a984a4d76a192b6068d52fe6d1
+M 94ecbe62965c141dff37b483fb5e71ea4e26c623
+M 95880ccf7e3a8a0be4214f79e711ee533eb10326
+M 95fe72099788683e1b079f5827a6c5dc42b3099e
+M 97273f5e419efacdb41b9945f1ba1787871a5026
+M 97afa21c40d0e3997100e107f33b523b297fa949
+M 97fc83f83f4f252d8b759b5b983af624f77266f4
+M 992c0be0f1e19ffc19f88f5087eec2c5dff73025
+M 99fb33495d08513c90ccea76c247e7ac546de769
+M 9a94d17aed24b58c0459d4356d124c01db1e7112
+M 9b3bddedf4ff47a994aea0112e6a120c9664685e
+M 9ba6e49cd2f258cfea58b43c53e4f2719e261d9f
+M 9c4675b7977e08fd9d6391313d13f0f8e08062cb
+M 9cf4485bc7843523da41d4b7095ff4f3430a05a9
+M 9f0a203134db988344ac0f4d71eb838e7c70784c
+M 9fa2780b617ed626f22d238ed1d3a39186b0f293
+M 9fca2dc134661345d982e33487a8cb8425f9c67e
+M a02bfac6c7242f43a0844910f3c65d609d822858
+M a078510ec73f570b68afb2bceefd5f70c305db01
+M a1eb9a02ff3acf143d019fab05814980e6a1abdb
+M a284f9ea503493173461de348ffd9593684d8c8a
+M a2f8255642e5ac53f95c09786f30c4e345264d05
+M a326d844d4568f418888f28fbb23e56020eb8ef0
+M a3b3e7015b68d0247c4ab7c3c3e5d7457f464186
+M a3d2c08f3c492e294f4f18bf6925565a97295ce4
+M a4a5b4fb19362f33b5b1255aff61d9edf51628a1
+M a5272604a833f7fb53514428ef04a3bc9a550e79
+M a5b6a887d813d793a6b236162ff85211c35759ab
+M a5d661351c3ccce427072d9000d6ed554a173abe
+M a699418b5fe74314c804cc56097fa266e0b62b78
+M a82d9b4fee15bf518c98d60d77b9b745cc5340bc
+M a9f3c9416b33a7688cb0c8922619b713ea6b1c7c
+M aa86b3a23576a639577d7afd86205b61ac5c1891
+M aaa3c63bf37240ea52a3c89a0f1c69e9824376a0
+M ac0cb8fce9a8145b6c1ba0d3f6b0cd2f6ab7a183
+M ac22376d18e8d202026882f8d51de202d62974b8
+M ac24b66124844cb577e18c0659fdb1d69c496654
+M adc6a4666165dfa5d4c5b25e02a06dabe64084cf
+M ae9468de2c91817cdfd0046ea22509dc6e47c8a7
+M b03c1404c39f53fb1a590671ff02db04b1c45403
+M b08039d2f0914bdaf71cd6ec416bfa901ab708ea
+M b08a5b0b5642b588041ecd9be652578a98fbf945
+M b1d7db59317853fd6d44ed9c0cfa5296d50a8b2e
+M b361f68c23a339965c23699cd4c0d6085d89e6d1
+M b3976c6ff723b34f09e82449333db254093e82fe
+M b3c07db315bc83b91857acab1d530fca75073d06
+M b41e50ed05ff7575d8f8816ed0f0029aaf34efb4
+M b4b9a010bb23059251400455afabddee15b46127
+M b5c38cc0e779ce45e3e2c03e0c62c8a5a767d986
+M b5db68a487f727f5c0c37ce8053524664f6b25f3
+M baa6132a0cc4e51421536d89b2f2c245abe5272d
+M bb987094284a59f3cf4c99755ca7b46ce396709a
+M bc155be50a726dd4503dd703d34ec3b22001936f
+M bc2c0c980448cd16ac8b9289a9a7c3032071de6e
+M bc37bdbf19a7950840c746cfddf7bde3ae59967a
+M bcd6241254269e25617494beda11fba529f1396a
+M bd16e0eb9e286918e60bc7d92f9af5bd18f150cb
+M bd3430f518704f920d841816d65b2b818f528663
+M bdec087c7d4f510a10586f67efda93a8ddf3fd93
+M be2581714062c8937145df240b9bd2b298819b68
+M bfa25142429fb8077b1ef98fe603175fa0a390be
+M bff9bf284e7a25c5dbcb3da0e0a7ea1d246400d6
+M c08d14a742d5c9705d662aa6692fe1c81b95cabe
+M c113cf03dfc47db6dd5b6b45ef5b7a6e312387bf
+M c148ac9e0ba7d716b0f47885fe1be1e5798101cc
+M c16038d475aa69c338171e36629aec5ca757ef53
+M c1674905a6deea5f7281f636039b9e5382187828
+M c22742203f1669ed0b3a793f6539c9ffcba83a8b
+M c23297497697bc1d77c8cdc4c8f1a1fd9324da8d
+M c30f553d49dbf24df3b76e4b28394b75095dcb3e
+M c364e6c5134002951b22e3740d04ec2cd20b1cf3
+M c3ce44b562254a975319046096d6a634d73ce7b8
+M c4556fc67fcb47d8fe64994c51029c6d35a3b8a0
+M c492f6cc74481db9f19df999af2c5ab56cab731c
+M c521fa9250eb9d1561e12bcfdee7eda366cde420
+M c54b9b1c37fd595a7c22642ac8b989db420d21ae
+M c558a96f8c460fba3977c5ae6fe1af595b9a3e95
+M c650d4d328c3780d3d086824885b18bbfd6e3c3a
+M c67cf4f4b9ccc4464193d863c29e2cc165edb2c4
+M c821f0a3192b8a8041748fb41d8bf85cfbf3afec
+M c873f990c114ad0256f796226ba14c84c9958ac3
+M c921f822aa88940b33d6d0160a06efe66003ada0
+M ca2e809293de5775d94fd91344f2f239480a8c0c
+M cae03a033757d9d8c9a04153294702a4c69f6bf9
+M cb178eec048c23f17a0f750075057f39b0dac53d
+M cbaad9ca95ecda178af0d48463740ad96efa8d0b
+M cbff3a7e0de682a0e02a53adce1c02f226bf0789
+M cc2d9f70e3e881446388b5fc50538b20b04cbb13
+M cc35b8cbd2cdf1ce78b9caec1b39b91893408ac5
+M cc56a00e51c3ab0379825481438d6cbfce326fe7
+M ccc7ad53939574d8a8289fed65420ffe2d8650a3
+M cd0c5d19f1d9ee433f4218e97e734efd2cfb8409
+M cd930455e2439807caf31b40d0bbbad328ce8f70
+M cdf849ab41a34b57a7eda78849dfc07dce8e377c
+M ced1573700709be61a2e1e5286ec8e53c4b4b567
+M cf388678325e27f7f485339b92d01e0c484d4d07
+M cf83a6919d1c5cace0e1fa23cb0ce491b5ec44f7
+M cfb3f1801d853c631c61a074bc3d8b419de4e942
+M d15ad11d6201bf244d9c1a2ea6db333c6eb24e82
+M d4ccde7ae63eb53e9a93b116236cb84d405013c4
+M d5f77ca42144474a00aed49f55b03b2990531237
+M d6bde1b78fd21a40a1fcc65c3f23047f85678dcf
+M d79e95aaaf20a901f4a19952dc2109fa0773a343
+M d7e0faf75a46151cbbedebd9dd936d750fec1162
+M d7f3a21dd059ece008ad43e9b5614cc34c11dc63
+M d96cfb8d8186e36da23410b83bbaefde3fbf31ad
+M da63682bc7776b57e79b949abe4ee75af8170017
+M dbc2475e978173a8d024268cd5204817505d8777
+M dbdeafa7777006f0d3b297a74e7bb9d78f2b5b47
+M dbe7e5b4d5e32de6ee2aca00fae6f2b14e9832ca
+M dc09232e0b47c1d2925fd895e516a72ae088c73e
+M dca74568b7c75b55959e8a82d8a698e143ec93c5
+M dcddfbbdbf21b7da7f76fc54a5effdbff0b54cf3
+M dd8d7acc25e67455ef259b66b3a591cc995f801f
+M de0245e7d703a822662377bb9c300686f3a38df1
+M de58d7625dbbe04296f8059849854e55a7b7e3c1
+M de6ad4dd59ddd50f4a5f9c1d59fe3e2593f87b68
+M de76767fa5f2e72b1cf3cbbb9bfd72e43cb4aab3
+M dea8b64b8e92fbe6f9edac76b6fec887d649a3f6
+M df81f1b567e5867953dfdc13ace5584316ba2994
+M dfc20ae3c36d3d1aabbc04a703c0052c08085cf8
+M dff49ce97038d04b5f7b5922a0ad41370b9f52d0
+M e03882f5dc5f3543273aa53d0c9a62bd9ad454b5
+M e287ef60298137f84537f60816af95ee44ae18eb
+M e35e48b16250868b6b1bfa1bd26506eab902312d
+M e3d8ccc09f6c540dc1d377ffb42b2d867ee86ac8
+M e45f3e5b93c1f7b884e4899027c482a91f024db4
+M e46a8f04fc8b47ff3deddaf244d721d7d2e3ed1d
+M e4b9f2583f1128d225cfd2095810a7630367e6a3
+M e560cfeee66f238d232e7d7073b6adea991c66fc
+M e5e491a6b47798aafa6c24fe0c57e2fd1e4c902a
+M e6cb482393a5dc4e27d034f414772bbce4dcef57
+M e6cd4dcb6dfbb09cf4115572e322edd7e5de6b16
+M e7013ba82626938bbfe4c62d5c0823b3a182fbb4
+M e7454c10c72c8fde16bc922b80ba071531b234d5
+M e8109062c9e9cd60acd6124ba3617bfc01439f8c
+M e874b99314904579ba271b75acea1b196d4e12c6
+M ea9f6ce8a382834209aada9f51dd27e98d180e8a
+M eb4e91ab9d3e29cc1ed35f61848a0a7ae3c917b8
+M ebbb056a41136e2de99ac5219cf69d5c3e579125
+M ebc3eb2a445616c137e998eec7b00cb084332092
+M ebd2889e35dddb29935436e0bc3b8b2560b9e23f
+M ec7720ebed702684d3cd4b47e95f6cc1a81a6983
+M ec8393ef9cfde228430def55a185914ba07d8024
+M ed0c4b5174e678add4e76ca47cac6f6c29187837
+M edac8fb6a9cc5a30ab51b690a528cbeee7672676
+M ee1f72412d8dd299d3bdccff7df25124c2d227c3
+M ee1f819312ab69397fd155ea0e03e495776a73ce
+M ef82d41b550d6189cb3118d23a222690c06b67c6
+M eff5ffdd141d7504a1159abb846414bf821a42d7
+M f05ca23766903308fff2bc45533e23934489dae3
+M f0ee3631f57ef17b3f7749c35d437c0d9c67b6f3
+M f1474c76a33a6d84d588b1138c9816480d3e66de
+M f179d14aa702fcc08e64fe773eac7f2218c13725
+M f1c3bf9af13c5f25e0c354e6145731438aca089b
+M f2f957330bee46c0da7643504377163af212d118
+M f37752a54a51861aacb1d27b91ba13af91b92c11
+M f37eff902170f60b1b670700b9547d9540862a47
+M f3f330de2234a63b30df2199fdabbf861f2050d2
+M f40cf72912490c14e7a3f1becb411a442ffe0e06
+M f4db015fc658d5d86a0539259cad8b38d863ade1
+M f57a75aa40be9ab959ae1fade89c2803f2a5b45e
+M f5a82c1c393775334725b9de61b94f492cdd1f2f
+M f678cdd89d1ba6be3b5113743cfa5859806ba99a
+M f73a8780a2856a2df8f0d8499232b59845b8582a
+M f77a9ebf0d9ee8b2e5cf4ba1c2c38f2e33460759
+M f78c3622442b753cb49d47193a1ffa015f49af9b
+M f8d90c7acbba15be25d6fb75d167e1aa68bba0a2
+M f8ed98e684c1a67a77ae8726db05a04a4978a445
+M fa17e74e19a173438fd0b49deb8513ba0d61522b
+M fa7751342de04d5c642102466a260cfc0b21fb61
+M fce0ce3a7f173dec44473b17199b113a5cb1df12
+M fce8e753c2be355963a02bd585e4e74e9d8e5ebb
+M fd44f59923e02e53b504ae5577063c2b45aa1bd9
+M fdbf3b4d3bdc969b89ce6cec1dccf81339e0b006
+M fdc889d48cb7dbf1f2ed9dc23969ffd2b43ffdbe
+M fe03e8e76db39520876a5b2e45b8d1096649f019
+M fe69b42605a9fd3c8b2835dd98d9f9d91b232add
+M ffb4278e2c550f7ab7030f2120942e1bbc6ed16b


[3/3] git commit: Recording .gitmergeinfo Changes

Posted by dk...@apache.org.
Recording .gitmergeinfo Changes


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/d7cde023
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/d7cde023
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/d7cde023

Branch: refs/heads/2.7.x-fixes
Commit: d7cde02323cc48ad5777afcb301a51780873a9cc
Parents: 7163afc
Author: Daniel Kulp <dk...@apache.org>
Authored: Thu Feb 20 18:36:05 2014 -0500
Committer: Daniel Kulp <dk...@apache.org>
Committed: Thu Feb 20 18:36:05 2014 -0500

----------------------------------------------------------------------
 .gitmergeinfo | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/d7cde023/.gitmergeinfo
----------------------------------------------------------------------
diff --git a/.gitmergeinfo b/.gitmergeinfo
index 4a0a474..98cdf61 100644
--- a/.gitmergeinfo
+++ b/.gitmergeinfo
@@ -1018,6 +1018,7 @@ M 74cba458513b9308ab9da0165ec32906786506c6
 M 75a584de2b9ec8154222bd48c56568ef7041cd57
 M 75d0b126cf89d7ea11bb05e7ba11300fe3f0789f
 M 76d10e750efeb0f0533f1465b236a6b1900f52bf
+M 7837aec132d1f80c78a118544bf4caf420afcdc8
 M 78a2ca995c6ac70c637358c0327742af2f0ba2f7
 M 78bb09270488d503a4d8d54d839dc526f12e5183
 M 793c24bc6345b6a4c45522af1e0dbef20018dbdd


[2/3] git commit: Initial pass of DoMerges updates for the git repo

Posted by dk...@apache.org.
Initial pass of DoMerges updates for the git repo


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/7163afce
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/7163afce
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/7163afce

Branch: refs/heads/2.7.x-fixes
Commit: 7163afce80bfc3dcfb50184e9195e13f110e665b
Parents: f7165da
Author: Daniel Kulp <dk...@apache.org>
Authored: Thu Feb 20 18:31:51 2014 -0500
Committer: Daniel Kulp <dk...@apache.org>
Committed: Thu Feb 20 18:36:05 2014 -0500

----------------------------------------------------------------------
 bin/DoMerges.java | 802 +++++++++++--------------------------------------
 1 file changed, 181 insertions(+), 621 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/7163afce/bin/DoMerges.java
----------------------------------------------------------------------
diff --git a/bin/DoMerges.java b/bin/DoMerges.java
index c112b17..bc03fa5 100644
--- a/bin/DoMerges.java
+++ b/bin/DoMerges.java
@@ -64,124 +64,22 @@ import java.util.regex.Pattern;
 */
 
 public class DoMerges {
+    public static final String MERGEINFOFILE = ".gitmergeinfo";
+    
     public static boolean auto = false;
-    public static boolean isGit = false;
     public static Pattern jiraPattern = Pattern.compile("([A-Z]{2,10}+-\\d+)");
-
-    public static String propSource;
-    public static String svnSource;
-    public static String svnDest;
-    public static String svnRoot;
-    public static String gitSource;
-    
-    public static Ranges merged = new Ranges();
-    public static Ranges blocked = new Ranges();
-    
-    public static String maxRev;
     public static String username;
+    public static String fromBranch;
     
-    static class Ranges extends TreeSet<Range> {
-        private static final long serialVersionUID = 1L;
-        
-        public void addRange(Range r) {
-            add(r);
-        }
-        public boolean isInRange(int i) {
-            for (Range r2 : this) {
-                if (r2.contains(i)) {
-                    return true;
-                }
-            }
-            return false;
-        }
-        public String toProperty() {
-            StringBuilder b = new StringBuilder(propSource);
-            b.append(":");
-            boolean first = true;
-            for (Range r : this) {
-                if (!first) {
-                    b.append(',');
-                } else {
-                    first = false;
-                }
-                b.append(r.toString());
-            }
-            return b.toString();
-        }
-        public void optimize(Ranges blocked, Set<Integer> ignores) {
-            Iterator<Range> it = this.iterator();
-            if (!it.hasNext()) {
-                return;
-            }
-            Range last = it.next();
-            while (it.hasNext()) {
-                Range r = it.next();
-                if ((last.max + 1) == r.min) {
-                    last.max = r.max;
-                    it.remove();
-                } else {
-                    last = r;
-                }
-                /*
-                while (last.max < r.min) {
-                    if (!blocked.isInRange(last.max + 1)
-                        && !ignores.contains(last.max + 1)) {
-                        last.max++;
-                    } else {
-                        break;
-                    }
-                }
-                if (last.max == r.min) {
-                    last.max = r.max;
-                    it.remove();
-                } else {
-                    last = r;
-                }
-                */
-            }
-        }
-    }
-    
-    static class Range implements Comparable<Range> {
-        int min, max;
-        
-        public Range(int s) {
-            min = s;
-            max = s;
-        }
-        public Range(String s) {
-            int idx = s.indexOf('-');
-            if (idx == -1) {
-                min = Integer.parseInt(s);
-                max = min;
-            } else {
-                min = Integer.parseInt(s.substring(0, idx));
-                max = Integer.parseInt(s.substring(idx + 1));
-            }
-        }
-
-        public boolean contains(int i) {
-            return i >= min && i <= max;
-        }
-        
-        public String toString() {
-            if (min == max) {
-                return Integer.toString(min);
-            } 
-            return Integer.toString(min) + "-" + Integer.toString(max);
-        }
+    public static Set<String> records = new TreeSet<String>(String.CASE_INSENSITIVE_ORDER);
+    public static Set<String> patchIds = new TreeSet<String>(String.CASE_INSENSITIVE_ORDER);
 
-        public int compareTo(Range o) {
-            return Integer.valueOf(min).compareTo(Integer.valueOf(o.min));
-        }
+    static int waitFor(Process p) throws Exception  {
+        return waitFor(p, true);
     }
-
-
-    static void waitFor(Process p) throws Exception  {
-        waitFor(p, true);
-    }
-    static void waitFor(Process p, boolean exit) throws Exception  {
-        if (p.waitFor() != 0) {
+    static int waitFor(Process p, boolean exit) throws Exception  {
+        int i = p.waitFor();
+        if (i != 0) {
             System.out.println("ERROR!");
             BufferedReader reader = new BufferedReader(new InputStreamReader(p.getErrorStream()));
             String line = reader.readLine();
@@ -193,138 +91,23 @@ public class DoMerges {
                 System.exit(1);
             }
         }
+        return i;
     }
-    static void runProcess(Process p) throws Exception {
-        runProcess(p, true);
+    static int runProcess(Process p) throws Exception {
+        return runProcess(p, true);
     }
-    static void runProcess(Process p, boolean exit) throws Exception {
+    static int runProcess(Process p, boolean exit) throws Exception {
         BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
         String line = reader.readLine();
         while (line != null) {
             System.out.println(line);
             line = reader.readLine();
         }
-        waitFor(p, exit);
-    }
-    
-    static void initSvnInfo() throws Exception {
-        Process p;
-        if (isGit) { 
-            p = Runtime.getRuntime().exec(new String[] {"git", "svn", "info", "."});
-        } else {
-            p = Runtime.getRuntime().exec(new String[] {"svn", "info", "."});
-        }
-        BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
-        String line = reader.readLine();
-        while (line != null) {
-            if (line.startsWith("Repository Root: ")) {
-                svnRoot = line.substring("Repository Root: ".length()).trim();
-            } else if (line.startsWith("URL: ")) {
-                svnDest = line.substring(5).trim();
-            }
-            line = reader.readLine();
-        } 
-        p.waitFor();
-        
-        
-        if (isGit) { 
-            p = Runtime.getRuntime().exec(new String[] {"git", "svn", "propget", "svnmerge-integrated", "."});
-        } else {
-            p = Runtime.getRuntime().exec(new String[] {"svn", "propget", "svnmerge-integrated", "."});
-        }
-        reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
-        line = reader.readLine();
-        while (line != null) {
-            int idx = line.indexOf(':');
-            if (idx != -1) {
-                propSource = line.substring(0, idx);
-                svnSource = svnRoot + propSource;
-                if (isGit) {
-                    gitSource = line.substring(0, idx);
-                    if (gitSource.contains("/")) {
-                        gitSource = gitSource.substring(gitSource.lastIndexOf('/') + 1);
-                    }
-                    gitSource = "origin/" + gitSource;
-                }
-                parseRevs(line.substring(idx + 1), merged);
-            }
-            line = reader.readLine();
-        } 
-        p.waitFor();
-        
-        if (isGit) { 
-            p = Runtime.getRuntime().exec(new String[] {"git", "svn", "propget", "svnmerge-blocked", "."});
-        } else {
-            p = Runtime.getRuntime().exec(new String[] {"svn", "propget", "svnmerge-blocked", "."});
-        }
-        reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
-        line = reader.readLine();
-        while (line != null) {
-            int idx = line.indexOf(':');
-            if (idx != -1) {
-                parseRevs(line.substring(idx + 1).trim(), blocked);
-            }
-            line = reader.readLine();
-        } 
-        p.waitFor();
-        
-        
-        p = Runtime.getRuntime().exec(new String[] {"svn", "info", svnSource});
-        reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
-        line = reader.readLine();
-        while (line != null) {
-            if (line.startsWith("Revision: ")) {
-                maxRev = line.substring("Revision: ".length()).trim();
-            }
-            line = reader.readLine();
-        } 
-        p.waitFor();
+        return waitFor(p, exit);
     }
     
-    private static void parseRevs(String revs, Ranges ranges) {
-        String sp[] = revs.split(",");
-        for (String s : sp) {
-            ranges.addRange(new Range(s));
-        }
-    }
-
-
-
-    static void removeSvnMergeInfo() throws Exception {
-        if (isGit) {
-            return;
-        }
-        Process p = Runtime.getRuntime().exec(new String[] {"svn", "st", "."});
-        BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
-        List<String> list = new ArrayList<String>();
-        String line = reader.readLine();
-        while (line != null) {
-            if (line.charAt(1) == 'M') {
-                list.add(line.substring(5).trim());
-            } else if (line.charAt(1) == 'C' && line.charAt(0) != 'C') {
-                Process p2 = Runtime.getRuntime().exec(new String[] {"svn", "resolved", line.substring(5).trim()});
-                if (p2.waitFor() != 0) {
-                    Thread.sleep(10);
-                }
 
-                list.add(line.substring(5).trim());
-            }
-            line = reader.readLine();
-        }
-        p.waitFor();
-
-        for (String s : list) { 
-            p = Runtime.getRuntime().exec(new String[] {"svn", "propdel", "svn:mergeinfo", s});
-            reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
-            line = reader.readLine();
-            while (line != null) {
-                line = reader.readLine();
-            }
-            p.waitFor();
-        }
-    }
-
-    static boolean doCommit(int ver, String log) throws Exception {
+    static boolean doCommit() throws Exception {
         while (System.in.available() > 0) {
             System.in.read();
         }
@@ -336,250 +119,81 @@ public class DoMerges {
             c = Character.toUpperCase((char)i);
         }
         if (c == 'N') {
+            Process p = Runtime.getRuntime().exec(new String[] {"git", "reset", "--hard"});
+            runProcess(p);
             return false;
         }
-        if (!isGit) {
-            Process p = Runtime.getRuntime().exec(new String[] {"svn", "resolved", "."});
-            if (p.waitFor() != 0) {
-                Thread.sleep(10);
-            }
-        }
         
-        File file = createLog(ver, log);
-        Process p;
-        if (isGit) {
-            p = Runtime.getRuntime().exec(new String[] {"git", "commit", "-a", "-F", file.toString()});
-        } else {
-            p = Runtime.getRuntime().exec(new String[] {"svn", "commit", "-F", file.toString()});
-            runProcess(p);
-            p = Runtime.getRuntime().exec(new String[] {"svn", "up"});
-        }
+        Process p = Runtime.getRuntime().exec(new String[] {"git", "commit", "-a"});
         runProcess(p);
         return true;
     }   
-    
-    
-    private static File getLogFile(String action, String vers, List<VerLog> records) throws Exception {
-        File file = File.createTempFile("domerge", ".log");
-        file.deleteOnExit();
-        BufferedWriter writer = new BufferedWriter(new FileWriter(file));
-        writer.write(action);
-        writer.write(" revisions ");
-        writer.write(vers);
-        writer.write(" via ");
-        if (isGit) {
-            writer.write(" git from\n");
-        } else {
-            writer.write(" svn from\n");            
-        }
-        writer.write(svnSource);
-        writer.write("\n\n");
-        for (VerLog l : records) {
-            writer.write("........\n");
-            BufferedReader reader = new BufferedReader(new StringReader(l.log));
-            String line = reader.readLine();
-            while (line != null) {
-                if (!line.startsWith("--------")) {
-                    writer.write("  ");
-                    writer.write(line);
-                    writer.write("\n");
-                }
-                line = reader.readLine();
-            }
-            writer.write("........\n");
-        }
-        writer.close();
-        return file;
+
+    public static void changes(String ver) throws Exception {
+        Process p = Runtime.getRuntime().exec(getCommandLine(new String[] {"git", "show", ver}));
+        runProcess(p);
     }
     
-    private static File createLog(int ver, String log) throws Exception {
-        File file = File.createTempFile("domerge", ".log");
-        file.deleteOnExit();
-        BufferedWriter writer = new BufferedWriter(new FileWriter(file));
-        BufferedReader reader = new BufferedReader(new StringReader(log));
-        writer.write("Merged revisions ");
-        writer.write(Integer.toString(ver));
-        writer.write(" via ");
-        if (isGit) {
-            writer.write(" git cherry-pick from\n");
-        } else {
-            writer.write(" svn merge from\n");            
-        }
-        writer.write(svnSource);
-        writer.write("\n\n");
-        writer.write("........\n");
-        String line = reader.readLine();
-        while (line != null) {
-            if (!line.startsWith("--------")) {
-                writer.write("  ");
-                writer.write(line);
-                writer.write("\n");
-            }
-            line = reader.readLine();
-        }
-        writer.write("........\n");
+    public static void flush() throws Exception {
+        BufferedWriter writer = new BufferedWriter(new FileWriter(MERGEINFOFILE));
+        writer.write(fromBranch);
+        writer.newLine();
+        for (String s : records) {
+            writer.write(s);
+            writer.newLine();
+        }
+        writer.flush();
         writer.close();
-        return file;
-    }
-
-    public static void changes(int ver) throws Exception {
-        Process p;
-        if (isGit) {
-            String id = getGitVersion(ver);
-            p = Runtime.getRuntime().exec(getCommandLine(new String[] {"git", "diff", "-R", id + "^", id, gitSource}));
-        } else {
-            p = Runtime.getRuntime().exec(getCommandLine(new String[] {"svn", "diff", "-c", Integer.toString(ver), svnRoot}));
-        }
+        
+        Process p = Runtime.getRuntime().exec(getCommandLine(new String[] {"git", "commit", "-m",
+                                                                           "Recording .gitmergeinfo Changes",
+                                                                           MERGEINFOFILE}));
         runProcess(p);
     }
-
-    private static String getGitVersion(int ver) throws Exception {
-        Process p;
-        BufferedReader reader;
-        String line;
-
-        p = Runtime.getRuntime().exec(getCommandLine(new String[] {"git", "svn", "find-rev", "r" + ver, gitSource}));
-        reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
-        line = reader.readLine();
-        String version = null;
-        while (line != null) {
-            line = line.trim();
-            if (version == null && line.length() > 0) {
-                version = line;
-            }
-            line = reader.readLine();
-        }
-        waitFor(p);
-        return version;
-    }
-
-    public static void flush(List<VerLog> blocks, List<VerLog> records) throws Exception {
-        Process p;
-        BufferedReader reader;
-        String line;
-        File checkout = new File(".");
-        if (isGit) {
-            p = Runtime.getRuntime().exec(getCommandLine(new String[] {"git", "svn", "dcommit"}));
-            reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
+    public static void doUpdate() throws Exception {
+        Process p = Runtime.getRuntime().exec(new String[] {"git", "pull", "--rebase"});
+        runProcess(p);
+        
+        File file = new File(MERGEINFOFILE);
+        records.clear();
+        if (file.exists()) {
+            BufferedReader reader = new BufferedReader(new FileReader(MERGEINFOFILE));
+            String line = reader.readLine();
+            fromBranch = line;
             line = reader.readLine();
-            String version = null;
             while (line != null) {
-                line = line.trim();
-                if (version == null && line.length() > 0) {
-                    version = line;
-                }
+                records.add(line.trim());
                 line = reader.readLine();
             }
-            waitFor(p);
-            
-            if (!records.isEmpty() || !blocks.isEmpty()) {
-                checkout = File.createTempFile("gitsvn", ".co");
-                checkout.delete();
-                final File deleteDir = checkout;
-                Runtime.getRuntime().addShutdownHook(new Thread() {
-                    public void run() {
-                        deleteDirectory(deleteDir);
-                    }
-                    
-                });
-                
-                p = Runtime.getRuntime().exec(getCommandLine(new String[] {"svn", "co", "--depth", "empty", 
-                                                                           svnDest, checkout.toString()}));
-                runProcess(p);
-            } 
+            reader.close();
         }
-        
-        if (!records.isEmpty()) {
-            StringBuilder ver = new StringBuilder();
-            for (VerLog s : records) {
-                if (ver.length() > 0) {
-                    ver.append(',');
-                }
-                ver.append(Integer.toString(s.ver));
-                merged.addRange(new Range(s.ver));
+        file = new File("patch-info");
+        if (file.exists()) {
+            BufferedReader reader = new BufferedReader(new FileReader("patch-info"));
+            String line = reader.readLine();
+            while (line != null) {
+                patchIds.add(line.trim());
+                line = reader.readLine();
             }
-            System.out.println("Recording " + ver);
-            File logF = getLogFile("Recording", ver.toString(), new ArrayList<VerLog>());
-            p = Runtime.getRuntime().exec(getCommandLine(new String[] {"svn", "propset",
-                                                                       "svnmerge-integrated",
-                                                                       merged.toProperty(),
-                                                                       checkout.toString()}));
-            runProcess(p);
-            
-            p = Runtime.getRuntime().exec(getCommandLine(new String[] {"svn", "commit",
-                                                                       "-F",
-                                                                       logF.toString(),
-                                                                       checkout.toString()}));
-            runProcess(p);
+            reader.close();
         }
-
-        if (!blocks.isEmpty()) {
-            StringBuilder ver = new StringBuilder();
-            for (VerLog s : blocks) {
-                if (ver.length() > 0) {
-                    ver.append(',');
-                }
-                ver.append(Integer.toString(s.ver));
-                blocked.addRange(new Range(s.ver));
-            }
-            System.out.println("Blocking " + ver);
-            //File logF = getLogFile("Blocking", ver.toString(), blocks);
-            File logF = getLogFile("Blocking", ver.toString(), new ArrayList<VerLog>());
-            p = Runtime.getRuntime().exec(getCommandLine(new String[] {"svn", "propset",
-                                                                       "svnmerge-blocked",
-                                                                       blocked.toProperty(),
-                                                                       checkout.toString()}));
-            runProcess(p);
-            p = Runtime.getRuntime().exec(getCommandLine(new String[] {"svn", "commit",
-                                                                       "-F",
-                                                                       logF.toString(),
-                                                                       checkout.toString()}));
-            runProcess(p);
-            p = Runtime.getRuntime().exec(new String[] {"svn", "up"});
-            runProcess(p);
-        }
-        blocks.clear();
-        records.clear();
     }
 
-    public static void doUpdate() throws Exception {
-        if (isGit) {
-            Process p = Runtime.getRuntime().exec(new String[] {"git", "pull"});
-            runProcess(p);
-            p = Runtime.getRuntime().exec(new String[] {"git", "svn", "rebase"});
-            runProcess(p);
-        } else {
-            Process p = Runtime.getRuntime().exec(new String[] {"svn", "up", "-r", "head"});
-            runProcess(p);
-        }
-    }
-
-    public static Set<Integer> getAvailableUpdates() throws Exception {
-        Set<Integer> verList = new TreeSet<Integer>();
+    public static List<String> getAvailableUpdates() throws Exception {
+        List<String> verList = new LinkedList<String>();
         Process p;
         BufferedReader reader;
         String line;
         
-        String min = Integer.toString(merged.first().max);
-        if (isGit) {
-            p = Runtime.getRuntime().exec(getCommandLine(new String[] {"git", "svn", "log", 
-                                                                       "--oneline", "-r",
-                                                                       min + ":" + maxRev,
-                                                                       gitSource}));
-        } else {
-            p = Runtime.getRuntime().exec(getCommandLine(new String[] {"svn", "log", 
-                                                                       "--quiet", "-r",
-                                                                       min + ":" + maxRev,
-                                                                       svnSource})); 
-        }
-        
+        p = Runtime.getRuntime().exec(getCommandLine(new String[] {"git", "cherry",
+                                                                   "HEAD", fromBranch})); 
+            
         reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
         line = reader.readLine();
         while (line != null) {
-            if (line.charAt(0) == 'r') {
-                line = line.substring(0, line.indexOf(' ')).substring(1).trim();
-                int ver = Integer.parseInt(line);
-                if (!merged.isInRange(ver) && !blocked.isInRange(ver)) {
+            if (line.charAt(0) == '+') {
+                String ver = line.substring(2).trim(); 
+                if (!records.contains("B " + ver) && !records.contains("M " + ver)) {
                     verList.add(ver);
                 }
             }
@@ -589,36 +203,17 @@ public class DoMerges {
         return verList;
     }
 
-
-    public static List<String[]> getGitLogs(Integer starting) throws Exception {
+    public static List<String[]> getGitLogs() throws Exception {
         BufferedReader reader;
         String line;
-        Process p = Runtime.getRuntime().exec(new String[] {"git", "svn", "log", "-r" , starting.toString(), gitSource});
-        reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
-        line = reader.readLine();
-        String date = null;
-        while (line != null && date == null) {
-            if (line.indexOf('|') != -1) {
-                //strip of rev #
-                line = line.substring(line.indexOf('|') + 1).trim();
-                if (line.indexOf('|') != -1) {
-                    //strip off committer
-                    line = line.substring(line.indexOf('|') + 1).trim();
-                }
-                date = line.substring(0, line.indexOf(' '));
-            }
-            line = reader.readLine();
-        }
-        reader.close();
-        
-        p = Runtime.getRuntime().exec(new String[] {"git", "log", "--since=" + date});
+        Process p = Runtime.getRuntime().exec(new String[] {"git", "log", fromBranch + "..HEAD"});
         reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
         line = reader.readLine();
 
         List<String[]> map = new LinkedList<String[]>();
         List<String> list = new ArrayList<String>(10);
         while (line != null) {
-            if (line.length() > 0 && line.charAt(0) != ' ') {
+            if (line.length() > 0 && line.startsWith("commit ")) {
                 if (!list.isEmpty()) {
                     addIfNotMergeBlock(map, list);
                     list.clear();
@@ -637,6 +232,7 @@ public class DoMerges {
         }
         return map;
     }
+    
     private static void addIfNotMergeBlock(List<String[]> map, List<String> list) {
         for (String s: list) {
             if (s.trim().startsWith("Merged revision")
@@ -651,130 +247,115 @@ public class DoMerges {
                 && s.contains(" via ")) {
                 return;
             }
+            if (s.trim().contains("Recording .gitmergeinfo Changes")) {
+                return;
+            }
+            if (s.contains("[maven-release-plugin] prepare")) {
+                return;
+            }
+                
         }
         map.add(list.toArray(new String[list.size()]));
     }
-    public static String[] getLog(Integer ver, Set<String> jiras) throws Exception {
+    
+    public static String[] getLog(String ver, Set<String> jiras) throws Exception {
         Process p;
         BufferedReader reader;
         String line;
-        if (isGit) { 
-            p = Runtime.getRuntime().exec(new String[] {"git", "svn", "log", "-r" , ver.toString(), gitSource});
-        } else {
-            p = Runtime.getRuntime().exec(new String[] {"svn", "log", "-r" , ver.toString(), svnRoot});
-        }
+        p = Runtime.getRuntime().exec(new String[] {"git", "log", "--pretty=medium", "-n", "1" , ver});
+
         reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
         line = reader.readLine();
         List<String> lines = new ArrayList<String>(10);
         while (line != null) {
-            lines.add(line);
-            Matcher m = jiraPattern.matcher(line);
-            while (m.find()) {
-                jiras.add(m.group());
+            if (!line.startsWith("commit ")) {
+                lines.add(line);
+                Matcher m = jiraPattern.matcher(line);
+                while (m.find()) {
+                    jiras.add(m.group());
+                }
             }
             line = reader.readLine();
         }
         p.waitFor();
         return lines.toArray(new String[lines.size()]);
     }
-    
-    private static void doMerge(int ver, String log, List<VerLog> records) throws Exception {
-        Process p;
-        
-        if (isGit) {
-            String id = getGitVersion(ver);
-            p = Runtime.getRuntime().exec(getCommandLine(new String[] {"git", "cherry-pick",
-                                                                       "--no-commit", 
-                                                                       id}));
-        } else {
-            p = Runtime.getRuntime().exec(getCommandLine(new String[] {"svn", "merge", "--non-interactive",
-                                                                       "-c", Integer.toString(ver), svnSource}));
-        }
-        runProcess(p, false);
-        
-        if (!isGit) {
-            removeSvnMergeInfo();
-            
-            Range r = new Range(ver);
-            merged.add(r);
-            p = Runtime.getRuntime().exec(new String[] {"svn", "propset", "svnmerge-integrated", 
-                                                        merged.toProperty(), "."});
-            removeSvnMergeInfo();
-            runProcess(p);
-
-            if (!doCommit(ver, log)) {
-                merged.remove(r);                
-            }
-        } else {
+    private static void doMerge(String ver) throws Exception {
+        Process p = Runtime.getRuntime().exec(getCommandLine(new String[] {"git", "cherry-pick", ver}));
+        if (runProcess(p, false) != 0) {
             p = Runtime.getRuntime().exec(getCommandLine(new String[] {"git", "status"}));
             runProcess(p);
-            
-            if (doCommit(ver, log)) {
-                records.add(new VerLog(ver, log));
+                
+            if (doCommit()) {
+                records.add("M " + ver);
             }
+        } else {
+            records.add("M " + ver);
         }
     }
-
-    static class VerLog {
-        int ver;
-        String log;
+    private static String getPatchId(String id) throws Exception {
+       
+        String commands[] = new String[] { "git", "show", id};
+        Process p = Runtime.getRuntime().exec(commands);
+        InputStream in = p.getInputStream();
         
-        public VerLog(int v, String l) {
-            ver = v;
-            log = l;
+        commands = new String[] { "git", "patch-id"};
+        Process p2 = Runtime.getRuntime().exec(commands);
+        OutputStream out = p2.getOutputStream();
+        byte bytes[] = new byte[1024];
+        int len = in.read(bytes);
+        BufferedReader r2 = new BufferedReader(new InputStreamReader(p2.getInputStream()));
+        while (len > 0) {
+            out.write(bytes, 0, len);
+            len = in.read(bytes);
         }
+        p.waitFor();
+        out.close();
+        
+        id = r2.readLine();
+        p2.waitFor();
+        
+        id = id.substring(0, id.indexOf(" "));
+        return id;
     }
     
-    public static void main (String args[]) throws Exception {
-        File file = new File("svnmerge-commit-message.txt");
+    private static String getUserName() throws Exception {
+        BufferedReader reader;
+        String line;
+        Process p = Runtime.getRuntime().exec(new String[] {"git", "config", "user.name"});
+
+        reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
+        line = reader.readLine();
+        p.waitFor();
+        return line;
+    }
+    
+    public static void main (String a[]) throws Exception {
+        File file = new File(".git-commit-message.txt");
         if (file.exists()) {
             //make sure we delete this to not cause confusion
             file.delete();
         }
         
-        int onlyVersion = -1;
-        int fromVersion = -1;
-        if (args.length > 0) {
-            if ("-auto".equals(args[0])) { 
-                auto = true;
-            } else if ("-from".equals(args[0])) {
-                fromVersion = Integer.valueOf(args[1]);
-            } else if ("-me".equals(args[0])) {
-                username = System.getProperty("user.name");
-            } else if ("-user".equals(args[0])) {
-                username = args[1];
-            } else {
-                onlyVersion = Integer.valueOf(args[0]);
-            }
-        }
-        file = new File(".git");
-        if (file.exists() && file.isDirectory()) {
-            isGit = true;
-        }
-
         System.out.println("Updating directory");
 
         doUpdate();
-        initSvnInfo();
         
-        Set<Integer> verList = getAvailableUpdates();
-        if (onlyVersion != -1) {
-            if (!verList.contains(onlyVersion)) {
-                System.out.println("Version: " + onlyVersion + " does not need merging");
-                System.exit(0);
-            }
-            verList.clear();
-            verList.add(onlyVersion);
-        }
-        if (fromVersion != -1) {
-            Iterator<Integer> it = verList.iterator();
-            while (it.hasNext()) {
-                Integer i = it.next();
-                if (i < fromVersion) {
-                    it.remove();
-                }
+        List<String> args = new LinkedList<String>(Arrays.asList(a));
+        while (!args.isEmpty()) {
+            String get = args.remove(0);
+            
+            if ("-auto".equals(get)) { 
+                auto = true;
+            } else if ("-me".equals(get)) {
+                username = getUserName();
+            } else if ("-user".equals(get)) {
+                username = args.get(0);
             }
         }
+
+        
+        List<String> verList = getAvailableUpdates();
         if (verList.isEmpty()) {
             System.out.println("Nothing needs to be merged");
             System.exit(0);
@@ -782,32 +363,25 @@ public class DoMerges {
 
         System.out.println("Merging versions (" + verList.size() + "): " + verList);
 
-        Integer verArray[] = verList.toArray(new Integer[verList.size()]);
         List<String[]> gitLogs = null;
-        if (isGit && onlyVersion == -1) {
-            //with GIT, we can relatively quickly check the logs on the current branch 
-            //and compare with what should be merged and check if things are already merged
-            gitLogs = getGitLogs(verArray[0]);
-        }
+        //with GIT, we can relatively quickly check the logs on the current branch 
+        //and compare with what should be merged and check if things are already merged
+        gitLogs = getGitLogs();
         
-        List<VerLog> blocks = new ArrayList<VerLog>();
-        List<VerLog> records = new ArrayList<VerLog>();
-        Set<Integer> ignores = new TreeSet<Integer>();
         Set<String> jiras = new TreeSet<String>();
 
-        for (int cur = 0; cur < verArray.length; cur++) {
+        for (int cur = 0; cur < verList.size(); cur++) {
             jiras.clear();
-            int ver = verArray[cur];
+            String ver = verList.get(cur);
             String[] logLines = getLog(ver, jiras);
             if (logLines.length > 1
                 && username != null
-                && !logLines[1].contains("| " + username + " |")) {
+                && !logLines[0].contains(username)) {
                 continue;
             }
-            
+            System.out.println();
             System.out.println("Merging: " + ver + " (" + (cur + 1) + "/" + verList.size() + ")");
-            System.out.println("http://svn.apache.org/viewvc?view=revision&revision=" + ver);
-            
+            //System.out.println("http://svn.apache.org/viewvc?view=revision&revision=" + ver);
             
             for (String s : jiras) {
                 System.out.println("https://issues.apache.org/jira/browse/" + s);
@@ -817,10 +391,12 @@ public class DoMerges {
                 System.out.println(s);
                 log.append(s).append("\n");
             }
-
             
             char c = auto ? 'M' : 0;
-            if (checkAlreadyMerged(gitLogs, logLines)) {
+            if (checkPatchId(ver)) {
+                continue;
+            }
+            if (checkAlreadyMerged(ver, gitLogs, logLines)) {
                 c = 'R';
             }
 
@@ -832,7 +408,8 @@ public class DoMerges {
                    && c != 'I'
                    && c != 'R'
                    && c != 'F'
-                   && c != 'C') {
+                   && c != 'C'
+                   && c != 'P') {
                 System.out.print("[M]erge, [B]lock, or [I]gnore, [R]ecord only, [F]lush, [C]hanges? ");
                 int i = System.in.read();
                 c = Character.toUpperCase((char)i);
@@ -840,16 +417,20 @@ public class DoMerges {
 
             switch (c) {
             case 'M':
-                doMerge(ver, log.toString(), records);
+                doMerge(ver);
+                break;
+            case 'P':
+                System.out.println("Patch Id: " + getPatchId(ver));
+                cur--;
                 break;
             case 'B':
-                blocks.add(new VerLog(ver, log.toString()));
+                records.add("B " + ver);
                 break;
             case 'R':
-                records.add(new VerLog(ver, log.toString()));
+                records.add("M " + ver);
                 break;
             case 'F':
-                flush(blocks, records);
+                flush();
                 cur--;
                 break;
             case 'C':
@@ -858,15 +439,27 @@ public class DoMerges {
                 break;
             case 'I':
                 System.out.println("Ignoring");
-                ignores.add(Integer.valueOf(ver));
                 break;
             }
         }
-        optimizeRanges(ignores);
-        flush(blocks, records);
+        flush();
     }
-
-    private static boolean checkAlreadyMerged(List<String[]> gitLogs, String[] logLines) throws IOException {
+    private static boolean checkPatchId(String ver) throws Exception {
+        if (!patchIds.isEmpty()) {
+            String pid = getPatchId(ver);
+            if (patchIds.contains("B " + pid)) {
+                records.add("B " + ver);
+                System.out.println("Already blocked: " + ver);
+                return true;
+            } else if (patchIds.contains("M " + pid)) {
+                records.add("M " + ver);
+                System.out.println("Already merged: " + ver);
+                return true;
+            }
+        }
+        return false;
+    }
+    private static boolean checkAlreadyMerged(String ver, List<String[]> gitLogs, String[] logLines) throws Exception {
         if (gitLogs == null) {
             return false;
         }
@@ -912,10 +505,7 @@ public class DoMerges {
         }
         return false;
     }
-    private static void optimizeRanges(Set<Integer> ignores) {
-        merged.optimize(blocked, ignores);
-        blocked.optimize(merged, ignores);
-    }
+
     private static String[] getCommandLine(String[] args) {
         List<String> argLine = new ArrayList<String>();
         if (isWindows()) {
@@ -943,36 +533,6 @@ public class DoMerges {
     }
     
     
-    private static void deleteDirectory(File d) {
-        String[] list = d.list();
-        if (list == null) {
-            list = new String[0];
-        }
-        for (int i = 0; i < list.length; i++) {
-            String s = list[i];
-            File f = new File(d, s);
-            if (f.isDirectory()) {
-                deleteDirectory(f);
-            } else {
-                delete(f);
-            }
-        }
-        delete(d);
-    }
-
-    public static void delete(File f) {
-        if (!f.delete()) {
-            if (isWindows()) {
-                System.gc();
-            }
-            try {
-                Thread.sleep(1);
-            } catch (InterruptedException ex) {
-                // Ignore Exception
-            }
-            f.delete();
-        }
-    }
 }