вторник, 13 июля 2010 г.

Критический баг в sfGuardPlugin

Ахтунг! Ахтунг! Метод генерации случайного ключа, используемый в sfDoctrineGuardPlugin не обеспечивает необходимый уровень случайности! Полюбуйтесь на результат выполнения такого скрипта:

function generateRandomKey($len = 20)
  {
    $string = '';
    $pool   = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
    for ($i = 1; $i <= $len; $i++)
    {
      $string .= substr($pool, rand(0, 61), 1);
    }

    return md5($string);
  }
  
  $a=array();
  for ($i=1; $i<=10000; $i++)
  {
    $a[]=generateRandomKey();
  }
  
  sort($a);
  
  echo '<pre>'; print_r($a);echo '</pre>';

Array
(
    [0] => 00040277cdd17cb1bcf5c1fe6b6bfa3f
    [1] => 0005049e526fb4e0d81cacfd00dfbdb9
    [2] => 0005049e526fb4e0d81cacfd00dfbdb9
    [3] => 000c98ce3692ad65e04cfb8195c4ccf1
    [4] => 001a78a81e33dd2404ca77b26fe5062e
    [5] => 001afd9fd0211cc203732dbfff0e1a27
    [6] => 002609dc56a8a0b1ec954f8564a6d095
    [7] => 002698f027698c6c6870f168d3c16175
    [8] => 002698f027698c6c6870f168d3c16175
    [9] => 00551944377e6cd88423dd6bd4a405d7
    [10] => 0060cdb784e19b4e1a249eb7c41b9ad2
    [11] => 00660d7bf051a31e5711522567d0d896
    [12] => 0072e0ad1d3f4580525aa56a6e06760e
    [13] => 0072e0ad1d3f4580525aa56a6e06760e
    [14] => 007d0d32e7679d6d2993bbc22ee23855
    [15] => 009551f3c99ea3171996f5a7d6e81d00
    [16] => 00aa621d976fec56a6e026fbcd1eae8d
    [17] => 00aa621d976fec56a6e026fbcd1eae8d
    [18] => 00aba8e04b4bf5a9791cca1389cd6f8f
    [19] => 00aba8e04b4bf5a9791cca1389cd6f8f
    [20] => 00ad8cbda706afb345c67b2465e88415
    [21] => 00bc4422fee4df8afe008aa6427b4796
    [22] => 00c34e04985077b351ba3d837e342c37
    [23] => 00c34e04985077b351ba3d837e342c37
    [24] => 00c4b5ecd1e25055a077229da427289e
    [25] => 00c628de764e4c6e14cb86e7f3a9dfd1
    [26] => 00c9817c76bae39e19d81548808050e3
    [27] => 00cc63af717523d58c2ed046558f59f5
    [28] => 00ce29af4fa16fc8378ffc51c5f1ca5b
    [29] => 00dda66628da954f7143cdc6facf56ba
    [30] => 00e740ae0d8ca9a4a76fdfe0ffca12ac
    [31] => 00eb6e71364f207c6d12cc9f3ec8bd73
    [32] => 00f8924f002e0c06659ead91a08d9145
    [33] => 01059913459e6be4f1acec18741bfeba
    [34] => 01196c8cc40b501ee458d31ae9e73c51
    [35] => 011e964d7a31cbab2fd283cccc5f262a
    [36] => 012b16ee76bce5867639b0862f17ca4f
    [37] => 01317d9af5a85c702c537eb7b3e35839
    [38] => 0132bd4f35d4c4298f29d29cba2d5e28
    [39] => 0143bc1d79ba55b0f40b37562dd5687a
    [40] => 0143bc1d79ba55b0f40b37562dd5687a
    [41] => 01496015c9a2854cf0d1963bc8ac71cd
    [42] => 01512e05313deb2150fa3750009ad54a
    [43] => 01512e05313deb2150fa3750009ad54a
    [44] => 016ca64bc48ecc9bcbc5caaa27a356de
    [45] => 0174c23b7fa76bcb661cfa0e6c533b05
    [46] => 017b21fbb2c8527ed77681d3cb664fde
    [47] => 01809d2b6744ae47e67d6b65c059671e
    [48] => 01809d2b6744ae47e67d6b65c059671e
    [49] => 01873ea6c960562ba274bdb905a9ba01
    [50] => 01873ea6c960562ba274bdb905a9ba01
    [51] => 018adc381b6bd657131bc0ee372ca16d
    [52] => 01938aa6ebe2c429f5b01ff2e9a82293
    [53] => 01984d122e243e9b44ba7bf4606b8db9
    [54] => 01a33d182f20206fa48c91eb759e3dbf
    [55] => 01a729cfd1919861621a4dc6acadb5f8
    [56] => 01adf93d27dd99ee5ca83dac2b06ccd8
    [57] => 01b16badcbdd820adca7868b932e98fa
    [58] => 01b16badcbdd820adca7868b932e98fa
    [59] => 01ba3447370591b93aa22259fa9e38a1
    [60] => 01be17f3718779abbb31d5b1a9683c8c
    [61] => 01c0e6d3df469509433306a1cf60c760
    [62] => 01c2a5d4e137bf1c5a3bee343e42fc8d
    [63] => 01c2d87fc95d3fbfa456b5e4e821c11b
    [64] => 01c8a03886384d09782228af3b651ad9
    [65] => 01d517c30a07d0fb93f57f5bbbb9d4e1
    [66] => 01db12722f6e15b935f864a307e6f86c
    [67] => 01ddba314acb878e7ccbca842d7e113e
    [68] => 01e32bf20daff39513ef4c192ac75bad
    [69] => 01e48d154f6e5d41125ca2272a60ea2a
    [70] => 01effb42d483d6df520329a4c54a73ba
    [71] => 01f090603f553070e60c09bd50863bc8
    [72] => 01fc209ca27bfc847e33e6c44bcf192c
    [73] => 02036537652ed8ced10493d0696436d9
    [74] => 0209322e533c0304d9546f0db2335671
    [75] => 0211c6f1dba88cc94bcecfc1fef1ffa4
    [76] => 0211de83e3667b3b7f03034fdea8ce33
    [77] => 0211de83e3667b3b7f03034fdea8ce33
    [78] => 02291c6954d348af82621c15041b90fc
    [79] => 0236aa8ca0010e068af2b60d074b3836
    [80] => 0245aadacfd27b526ce9be501e0ac224
    [81] => 02481d1c850e3a1e964764c467052108
    [82] => 02497a3803ded174a0b2748ac0cd3cc7
    [83] => 024c35d5350ee3397bf231256f08722c
    [84] => 024c46e69b0b5e5e24ae1ecafd250657
    [85] => 02531e7d2071325c24b7797860b0f05f
    [86] => 0255131fc2d1179ff287fc473cf75ad2
    [87] => 025c0aace99127307554c1751af7e629
    [88] => 025c1fa493776894f9c11170cba6f969
    [89] => 026472f34996e7b86d93098732fa1330
    [90] => 0267824b7de2d6fc9b6ab781045cf8a8
    [91] => 026a5ba54042c5451abc3cb1642c27d1
    [92] => 0271b7f6b8f94cedf3ab35f871383f8a
    [93] => 02770b26c329b717fed37f5b23f5795d
    [94] => 0278d8a67053e27178ec9e9d83a12033
    [95] => 027fa55ff85ec3416f6137d332804e32
    [96] => 0283795037596004f80830cb201c320c
    [97] => 0286e923cdc3660d792fe996147f970a
    [98] => 028ab27242b582c59d79cfa63e62654a
    [99] => 028cf917bcef4254854048098cd7afbe
    [100] => 028cf917bcef4254854048098cd7afbe
    [101] => 02982254d08b2e6ee99139146fee7f4c
    [102] => 02982254d08b2e6ee99139146fee7f4c
    [103] => 029d546f32b00faa5ed5018dd2c8e238
    [104] => 029e1b28f8dc027ee36b1bdc813d6130
    [105] => 029e1b28f8dc027ee36b1bdc813d6130
    [106] => 02a51e68bdc049f520281e8b8b6c1ea2
    [107] => 02a51e68bdc049f520281e8b8b6c1ea2
    [108] => 02a84bc9cef9ceafefc8ec9f51af9473
    [109] => 02a84bc9cef9ceafefc8ec9f51af9473
    [110] => 02b02bc759bba1e0029076dca4337229
    [111] => 02b8fce804b8f09b5b3175d357013adb
    [112] => 02c9734bdbf18d69c9321ae3f3b59911
    [113] => 02d212cbb02f0bf98831352a1b11c2ea
    [114] => 02d212cbb02f0bf98831352a1b11c2ea
    [115] => 02d3c3c51d18094feedc29cd92888754
    [116] => 02d3c3c51d18094feedc29cd92888754
    [117] => 02dcf05f8bbcaf7d55d4829b3d6be8c4
    [118] => 02f007d2c5c35fc3f9f14b59e174a7ff
    [119] => 02f3a1fb3571d21af8965ea5540d8191
    [120] => 02f4538ee8c0c0865ebd2e0ec7d3ad30
    [121] => 02fbe963d51a128b1ae3823fd466ab96
    [122] => 030a7b87921f9a16dd6feb42fa94bfb2
    [123] => 030b13b71536daaa75072d6a7e43d3da
    [124] => 030b13b71536daaa75072d6a7e43d3da
    [125] => 03148b3639475eb5e3e76a406dac3dca
    [126] => 0314c19fb2de0d4c979c2d48c80b0c35
    [127] => 0320c6b711869bdfc3c72dd921c45ef2
    [128] => 032568d40e531a8961132a3857366ffc
    [129] => 0325ee296206a1a98dd2a90d94de36b2
    [130] => 032b32d34c8e7c03e94169b238469d00
    [131] => 032c82d26c1f03dc95ded89f3741e74c
    [132] => 032d4cce0451512577b23f55104ac717
    [133] => 032d4cce0451512577b23f55104ac717
    [134] => 03433e1537b387393975f25bf274ef4d
    [135] => 03657c51b7183d70bb1bc244288b9512
    [136] => 0366a72b731aaa8318cff6b6f8d0caa4
    [137] => 036945e69ec93894ab481f6ab12953a5
    [138] => 0375a37524fe2ad6feec755b86ccb3ac
    [139] => 0375e69481e5585b92775c98f01ba47a
    [140] => 0375e69481e5585b92775c98f01ba47a
    [141] => 039150c6ba39ef0af3f490cdc3fbdf3a
    [142] => 03967e6442d234ae3000328a8c912f6e
    [143] => 03a3b50c8b6d26da97bf21047f7c41b8
    [144] => 03a3b50c8b6d26da97bf21047f7c41b8
    [145] => 03abc75f55a1ff014285c5a24d39ba1c
    [146] => 03b93c6a8b372082aecfc622b6ea6f9c
    [147] => 03b93c6a8b372082aecfc622b6ea6f9c
    [148] => 03cdea2d10c5be0895cfe43805c5e1d8
    [149] => 03da5360cbe6a412b615f5b83fa68636
    [150] => 03ddfda092dcd7469aa4dabeeddb3bbe
    [151] => 03e17f1519c5c68b5cf839e943cb067c
    [152] => 03e534ddc3c394a5f5e510c9c0b940f5
    [153] => 03e534ddc3c394a5f5e510c9c0b940f5
    [154] => 03ebb7e5ff03ed3ad87f0367f6afd264
    [155] => 03f5e2ffd04a9d15024a61f386c02bc9
    [156] => 03f7ee33e650659c0b2c1611d120c6f5
    [157] => 03fd00cf3f80478683b68920c9c3e088
    [158] => 03fd00cf3f80478683b68920c9c3e088
    [159] => 03feb872baf61cd15816aa4a157e530f
    [160] => 0400784770b6d83ac76edf37d9f2029f
    [161] => 04049cc9384831e7b5683675d02309d6
    [162] => 0418d202582d7140734f5b524ee8883a
    [163] => 0418d202582d7140734f5b524ee8883a
    [164] => 041b4cec1af39c1f614bab6d9c975fb9
    [165] => 041f03de201e0329663b88b2a9676938
    [166] => 041f03de201e0329663b88b2a9676938
    [167] => 0421cf8d5b8dfaae46b70a991eeabffd
    [168] => 0421cf8d5b8dfaae46b70a991eeabffd
    [169] => 04269e9932f1d5a900e60849d3386c51
    [170] => 042ffd45a2dabc5dee028db885cf0e4c
    [171] => 043a25f3fe2037e704e6bd254304f87a
    [172] => 043affbadeafa3c60983eb5943f06434
    [173] => 043affbadeafa3c60983eb5943f06434
    [174] => 043c20e9a8002c483c8b3bd5d35f819c
    [175] => 0445706e315ca1fe62da7e2f62910cdd
    [176] => 044b245ee9beb39432082e565722be5d
    [177] => 044d05c180083efa375f9c01b1fa47c5
    [178] => 044ef92eaf05bd225a73391b9ba32a51
    [179] => 044ef92eaf05bd225a73391b9ba32a51
    [180] => 0465db45baa1fd36a0d9a1cc3d23bedf
    [181] => 046db175fd949308bacdcc74d06ab9de
    [182] => 0473fbe235b4cb7cb84519fb218ad7f6
    [183] => 047469b75a0f40a0a381fecf5351b1e4
    [184] => 0478b130d2b1728e6ada3f53968c3e37
    [185] => 0485462399a82b1dd51a578dbf5325a6
    [186] => 0485462399a82b1dd51a578dbf5325a6
    [187] => 048f75e54d45fdb17575c4278d8962d2
    [188] => 048f75e54d45fdb17575c4278d8962d2
    [189] => 0490c4cf021e0fb6734b026370b75b89
    [190] => 049113faeaf50a4c4313d73e01e1859e
    [191] => 04a03394c5d1037b8d2b3e0c95065951
    [192] => 04a03394c5d1037b8d2b3e0c95065951
    [193] => 04c3cd78a2301b625ffc8bebe6766e76
    [194] => 04cb72cf92a4c82a401a39d037980b73
    [195] => 04ce0db0bb29f8f64ec944772f0c03e1
    [196] => 04d0f8e3a2ba9f03a5e3928d342c37a0
    [197] => 04d80813adbf2624c931895561f2779f
    [198] => 04e2607a76d5bbd936d7c94f34041643
    [199] => 05005ce0ca1bbc76ac9ef70a12ed1a19
    [200] => 051b3f208bf05ed7364d1b47a5b3bb4a
    [201] => 051b3f208bf05ed7364d1b47a5b3bb4a
    [202] => 053662192a19ed99ba2516ff17bbdae7
    [203] => 053be8a824e724f4916626de45ba974c
    [204] => 053c9b974d38b4125801341cc86eeb4c
    [205] => 05421b1c1af6ae94585a7340b469aa9f
    [206] => 0546e49529000bcaaad28b9b138bb256
    [207] => 05484057ee95dd4d524180af71f2dad1
    [208] => 0549d5756561a668371a2607d7673e4a
    [209] => 05545c4f0f87876823fb37554206123e
    [210] => 055c3f443bfa0e744ffb0130724bc703
    [211] => 056cd71cf3aa097c60074634a9a24bfb
    [212] => 0577ca943aab1c32e21fb6e81916b674
    [213] => 0585571f873787c135e0dac2f733a5dc
    [214] => 058ed81f7276d74fff8dde8f3f097004
    [215] => 05976731c940e6a146b6a02d183f4a63
    [216] => 059f91fdd2706ea0650cabf49c4d9121
    [217] => 05a60d25b4ae534ac96d3f87b73cd4df
    [218] => 05aefee4323a61900eca13fd490a3feb
    [219] => 05bceca040babbfd957e229acafe5a3d
    [220] => 05bef6dce1911f7e0f359d5ead2d2068
    [221] => 05c22fd1024358412c81d8656908d5a2
    [222] => 05c95edd3e88a0901b04b8ca898992ae
    [223] => 05c95edd3e88a0901b04b8ca898992ae
    [224] => 05c9b2eb63b643e8829f061ead34d100
    [225] => 05d197dbbccee6665740a656b9901bf5
    [226] => 05df5fe6c8c12ca6fbad68b97d5c37a7
    [227] => 05e6e869afc0807325fc6188e5d69a7f
    [228] => 06055fea883edf47e724abb52bceab08
    [229] => 06185c71244c60c0f716a1c28e2e76de
    [230] => 061a9a552d26f21c17f847561d7bf58f
    [231] => 061ccc4d3cd49e746a5bec447bf43f6d
    [232] => 0622e0a7f2113c378e0d63464a9f9398
    [233] => 0622e0a7f2113c378e0d63464a9f9398
    [234] => 0625d57e6a45175a11f6181732c4e3a6
    [235] => 0627b966591dc374008e875f32807976
    [236] => 06325ad662c408b8b711d08b291510ec
    [237] => 063347a70465cc588341a252c99738cd
    [238] => 06339f235a5bcc95ef54385823bc94d8
    [239] => 06366d6b3c2df38a6e87d410fe376e36
    [240] => 0647eb6f66f6f557f08c5edd6dfcc4d1
    [241] => 064b655ec52a8a3b316d2b94cc57f141
    [242] => 065a085b595b0818a62cbbc535d133b1
    [243] => 067c3ca5e43ff08fa89a8420514a4a66
    [244] => 067c3ca5e43ff08fa89a8420514a4a66
    [245] => 067f69ffba109a56a662b390b40db200
    [246] => 06835ca2b69b20dc67ad9104757a19ec
    [247] => 06889ca36100ceb68e84fc9bac9cc258
    [248] => 06889ca36100ceb68e84fc9bac9cc258
    [249] => 0688ca65d633ee6e03a00132ed55b6fe
    [250] => 06890d84d1bcacd7d83ab364c086606d
    [251] => 068997232d17b7b9262f513cf5d177f5
    [252] => 068997232d17b7b9262f513cf5d177f5
    [253] => 068dbc0b9c99f5226da28e88251d7c3d
    [254] => 068e5d31da448eb30a7c8be77f097383
    [255] => 0691cdfdd04a40df77335941686da8bf
    [256] => 0697be7da0fd8e8541c59528a6d37ed6
    [257] => 069ba38e6a034ead4813aba5862e794c
    [258] => 069c05db9602ae7167a3775c07a2e353
    [259] => 069c32a87d299cf421dc8d135d9bf9aa
    [260] => 06b19d62af34b0c37e46c7efb9e369eb
    [261] => 06b5359ace9211d622bae7aeef5d9b91
    [262] => 06b7fa1055d28050b082229bc73d33d0
    [263] => 06c15e320a72f09eb2d9634a5d48284d
    [264] => 06c15e320a72f09eb2d9634a5d48284d
    [265] => 06c6a7db2df70bd408b6c7f70f0b41db
    [266] => 06d2475559530a4e183f90408bf15733
    [267] => 06d2475559530a4e183f90408bf15733
    [268] => 06dba9a99dcaeddae330de1e280de12f
    [269] => 06dcdba434f1d368f9d9ed41add12c5b
    [270] => 06de71f9635ca30a133fc8ef4c8dbc5b
    [271] => 06edb3c27104a66412daac409765634c
    [272] => 06edb3c27104a66412daac409765634c
    [273] => 06f153b68b95fd2a586e8d2065a91b34
    [274] => 06f71cb0e294d3f7a83b867579b71208
    [275] => 06f71cb0e294d3f7a83b867579b71208
    [276] => 06fd76743edf23fafd9cf78397ed01db
    [277] => 06fd76743edf23fafd9cf78397ed01db
    [278] => 07056502ae5dceca6e2d733e198bf30c
    [279] => 070b97edf2a67b567f8144008b920f94
    [280] => 0710ac1d3e0609f09aa628c241cb4e03
    [281] => 07140d434e15fbdc1bfe17d4361775a8
    [282] => 07140d434e15fbdc1bfe17d4361775a8
    [283] => 071699171636f93e74eb01304c724b36
    [284] => 072b309bbb4d068b02f3b5602129efb3
    [285] => 072b309bbb4d068b02f3b5602129efb3
    [286] => 0730390bf65c638d757c2fb81e93d63c
    [287] => 074c311e52c03fb473991434d4634f93
    [288] => 0757475f8cc96be23fc075ed02deacb2
    [289] => 076e9144314e5ce57257ce9a451803d2
    [290] => 077460611ef9ca13b4d92b2c2b743b6d
    [291] => 078b1693c06cf0dc8362051735d00a08
    [292] => 0790db7339507ba6470b2240642aae01
    [293] => 0797b8cf0a233568347a465b2f7771ce
    [294] => 079b9fe0d22fc92b508e5ffbfdf71c52
    [295] => 079f047d7645afe4990d6d93989bf650
    [296] => 07b815cc89798d961baa65c47c6a0a99
    [297] => 07c4390f347a311539623bcd0e1de125
    [298] => 07c4390f347a311539623bcd0e1de125
    [299] => 07d2a6aefc9eb0b7d24f142a1ee6ec77
    [300] => 07dc9c054e2670e56140a435ba323f93
    [301] => 07dc9c054e2670e56140a435ba323f93
    [302] => 07ddd6de7a0d52be7154ca762fdc842e
    [303] => 07ddd6de7a0d52be7154ca762fdc842e
    [304] => 07e40890425125f143dcd0e75d2da032
    [305] => 07e4de1a3b877852c0f9072ac2104430
    [306] => 07e4de1a3b877852c0f9072ac2104430
    [307] => 07eab6ca4daa7ca0b6ff59a41d231a4b
    [308] => 07ee3787620082a525f70a5a7249595f
    [309] => 080ae9f0f947a561663746b4e2c62009
    [310] => 080c888a8b0ac06108b50dec94831856
    [311] => 08114671f5d2e59ddd2e1a1aaf302eb7
    [312] => 08114671f5d2e59ddd2e1a1aaf302eb7
    [313] => 08151b4e83ad462e68e01cbdfc70f8f1
    [314] => 081c72f36a4243a5afc817aa21d8355b
    [315] => 081c72f36a4243a5afc817aa21d8355b
    [316] => 08238dfee9f5e0d329ca27ce9b07635c
    [317] => 08238dfee9f5e0d329ca27ce9b07635c
    [318] => 0830db123bfb567a1c8bb65688e99d64
    [319] => 08328825a2cc92080902b32037cf7c88
    [320] => 08328825a2cc92080902b32037cf7c88
    [321] => 0833a03b535203482d9c746b2915337c
    [322] => 0833d0ccd8710ff513722ff7aeb5b17e
    [323] => 0842e648afd3c8bfe9d1a53a0018610c
    [324] => 0842e648afd3c8bfe9d1a53a0018610c
    [325] => 0844a46f3083b4c95fb1343860ae5445
    [326] => 08499e2cb274d63697e964a742a8c637
    [327] => 0854e43f12ee56861f5bc113ce53e663
    [328] => 085722008af67535d0eb25f620fc8acc
    [329] => 085722008af67535d0eb25f620fc8acc
    [330] => 085d4b89f4ab3bfc678cdccd725ba0b9
    [331] => 0860e1234ea101be80b8f89e080811ed
    [332] => 086807492a03a7f5bd1ca4602d63030c
    [333] => 086807492a03a7f5bd1ca4602d63030c
    [334] => 0870847994bca74b666ce798b4e52964
    [335] => 0870847994bca74b666ce798b4e52964
    [336] => 08719098a48f398a9a748d736e4bc7d9
    [337] => 08729e96f99000a5709f142f83927ac4
    [338] => 08729e96f99000a5709f142f83927ac4
    [339] => 0873705ac77005f83ba8083c6d8af319
    [340] => 087573be9184efb044e86511c27c9641
    [341] => 0875fdcd002efa06a2e24c5ef1dd95e9
    [342] => 0880dcc72f2901f1e7da2811c9cd1e72
    [343] => 088a034b843f38fd48e4fae024f27e56
    [344] => 088d29418fae8106e6a4eaa96a6fa0fd
    [345] => 0892b26d665abd28594cd118ec4c608e
    [346] => 0892b26d665abd28594cd118ec4c608e
    [347] => 08935d6fd827f6705703779a53dbd30c
    [348] => 08935d6fd827f6705703779a53dbd30c
    [349] => 08a2d4ae6103943f2f902bbcf92caaef
    [350] => 08b3a830224fd11b7b935f94f37ddc33
    [351] => 08b7c8f82cccbf7af61314c24417f693
    [352] => 08b836176bf218aa7219b88214d4311f
    [353] => 08d8c053489afb41352d4adee806db85
    [354] => 08e54a310f41b89a9bb1af90293befe2
    [355] => 08edb6f9a7e1d4286d2b983ac7c4690f
    [356] => 08f3af834135175a0338699fa72c8d5a
    [357] => 08f3af834135175a0338699fa72c8d5a
    [358] => 08fb51a5bb49851492090fa3b3780d7f
    [359] => 08fb51a5bb49851492090fa3b3780d7f
    [360] => 0904e60378de08b03fb8c18f6283584a
    [361] => 0904e60378de08b03fb8c18f6283584a
    [362] => 090de1d0b52b17046584c4ff5bc6916f
    [363] => 091942d158a5de56c6b76f284f7f7c42
    [364] => 09228ac00d4d7d8cf9d38e21ad5ff94a
    [365] => 0924e97987f15d0aedf96c005d60ea78
    [366] => 092a36d3166214eda940fc07c0d86f2d
    [367] => 092a40c692a4cea09b4bd36aca56f776
    [368] => 092a40c692a4cea09b4bd36aca56f776
    [369] => 092a58d1d69f9ee2bad0cd4b96807211
    [370] => 09388fa93c0c1c485ef5c015b07b5f76
    [371] => 0938ebc4183ff7190fcc107095d192ca
    [372] => 093bdd9a7ffbb622c91b0bb0d8eecd88
    [373] => 093bdd9a7ffbb622c91b0bb0d8eecd88
    [374] => 09443de4662a8676320bc534b717d4cb
    [375] => 09443de4662a8676320bc534b717d4cb
    [376] => 0947e1d04692fb4b4d99e4be171e6033
    [377] => 09543a485f1388e90ad46b4a35d58204
    [378] => 09543a485f1388e90ad46b4a35d58204
    [379] => 096292fdc8f0a29e2a17685176c70723
    [380] => 0965db4f7126a7389ba2e87581b029d2
    [381] => 0965db4f7126a7389ba2e87581b029d2
    [382] => 097186d62989a518ccd579fc49ffb20b
    [383] => 097186d62989a518ccd579fc49ffb20b
    [384] => 097554dad7b0cd076c8c323bda86781f
    [385] => 097bd239a3b22ccdb6b4c1986696976f
    [386] => 0989df3c0de6831fc259ebcad63c9b80
    [387] => 099c4620f081d764ffbcb5b4748ff612
    [388] => 099fd3632e41f7498061ed35492d32b7
    [389] => 09a4d26f81d708e40fe83fd1be5a194a
    [390] => 09a4d26f81d708e40fe83fd1be5a194a
    [391] => 09a51e1a34da7a8c506ab0467c2caa12
    [392] => 09a91c5707a87132904ea853f84af4fd
    [393] => 09ba8bbb6b5b466783ae7604fdf393c3
    [394] => 09d21387d4f9a8a31285a942c503f31e
    [395] => 09d21387d4f9a8a31285a942c503f31e
    [396] => 09d8b5546e98c1068c3a04d7027010a8
    [397] => 09f08b915dd9b5192e55971ae59ee467
    [398] => 09fd9a8245cb97b10fdcd910e63b83b0
    [399] => 09fd9a8245cb97b10fdcd910e63b83b0
    [400] => 0a0e3368d4bce730a2a9433c25ab9475
    [401] => 0a11e04ec5b03ce706b7dcae7f01a1cd
    [402] => 0a11e04ec5b03ce706b7dcae7f01a1cd
    [403] => 0a1370ce0ddaa49f692486d4b5a45d03
    [404] => 0a1370ce0ddaa49f692486d4b5a45d03
    [405] => 0a1a9a79bde511d87f08cf37456f66fa
    [406] => 0a20bbc80ddaaa9971f9fa8a3befe679
    [407] => 0a20bbc80ddaaa9971f9fa8a3befe679
    [408] => 0a31e76dde78e98d19eef7f171f25fe2
    [409] => 0a3c69d29a7d3e975e0e363344cd330c
    [410] => 0a3c69d29a7d3e975e0e363344cd330c
    [411] => 0a3e0e3cebb102bf691b64922cdeec1f
    [412] => 0a41487ef47a9378e97927e708b9d771
    [413] => 0a41487ef47a9378e97927e708b9d771
    [414] => 0a4b538f8bbbcf7a05182cbf07bb7701
    [415] => 0a6a50faebf515ef666a306e5d4d45d0
    [416] => 0a7be52862a94f74186da63e3ab366c3
    [417] => 0a83f9604b86a705c00153537b22634b
    [418] => 0a8682796f8cacc16433586a330ba6b9
    [419] => 0a8682796f8cacc16433586a330ba6b9
    [420] => 0a88909790af0f4cd5d74c571ed94569
    [421] => 0a94ae31e9ae6b85c6dd487bab7a51fd
    [422] => 0a94b4fb0979e056618328a7ed51c0cd
    [423] => 0a9baf19697c59a209223f3a235cc15d
    [424] => 0a9de12c2938226b7afa8a8932914c89
    [425] => 0a9de12c2938226b7afa8a8932914c89
    [426] => 0a9f992d6d45ac93c6006e0c2042d3a4
    [427] => 0aa3846535dbf4fb5404eeaa5cf52999
    [428] => 0ab92e7f1e374669cb7b635030b6adce
    [429] => 0abecb87ebb157edb87a7c1a6cc5c296
    [430] => 0acdaf612fc1c99e9e10cccefeeec8af
    [431] => 0acff759415e064c6b70d11b0c6c92a6
    [432] => 0ad5f64d4d28f9a5a696f087ba559289
    [433] => 0adb16043780ace972193addd8d497c8
    [434] => 0adc0e4b7f838bf83832c664e9ff94e6
    [435] => 0adc0e4b7f838bf83832c664e9ff94e6
    [436] => 0ae3f3545b5030a8e77d0630f1cce754
    [437] => 0ae8df03cec69ceaaeefd1ceda981651
    [438] => 0aee2db7716e5fb26f0ae19cab60d129
    [439] => 0aee2db7716e5fb26f0ae19cab60d129
    [440] => 0aeff7e6f6b049c7f2e89525ac5d4ecb
    [441] => 0b012298632c432b44ebdf5845369072
    [442] => 0b1106d405b2d146eec9627dc1c0f1b7
    [443] => 0b1106d405b2d146eec9627dc1c0f1b7
    [444] => 0b1b0f41c0e1165a896fe1deec75dec0
    [445] => 0b1b0f41c0e1165a896fe1deec75dec0
    [446] => 0b1f568468d191478c8815328b743a08
    [447] => 0b1f568468d191478c8815328b743a08
    [448] => 0b48e3a16950403e8998b75fdabfda1c
    [449] => 0b4ea288cf284959cf2601fbdfb62aa5
    [450] => 0b5c31cdc75de8af51349236ae1559d8
    [451] => 0b5c31cdc75de8af51349236ae1559d8
    [452] => 0b5fc8bb53a0beb525679009a569010c
    [453] => 0b6ce38a2b9e693c9670be7eacc4aedd
    [454] => 0b6e251cfefca631e29701b3732d74b0
    [455] => 0b6e251cfefca631e29701b3732d74b0
    [456] => 0b734aea51e86c471b8d4c0fcf293fea
    [457] => 0b734aea51e86c471b8d4c0fcf293fea
    [458] => 0b7d74f953e442e77e263270db8c9a7d
    [459] => 0b83d436bc72e994223d92db29a6ab3a
    [460] => 0b83d436bc72e994223d92db29a6ab3a
    [461] => 0b8ba6e03162a4800acfc01b9c736c66
    [462] => 0b92918b5ccadadc538f193fa91080ca
    [463] => 0b96f11fc371099ca0031716ebc39078
    [464] => 0b973fc58a574f4a097197bda99a69b1
    [465] => 0b9d8aeea3a04a9a5d2f16715111c592
    [466] => 0bb88f940820313b724fc3aee44b0951
    [467] => 0bba63455607f94109603ab5d191c630
    [468] => 0bbafbc9c13c4784a92239da4accb0a0
    [469] => 0bbbeb79ce058c1c570159810790656d
    [470] => 0bbbeb79ce058c1c570159810790656d
    [471] => 0bbdf9f5a375cf4af5e85f12b2884781
    [472] => 0bbe27af8aa2a98cf71c90df4559aafa
    [473] => 0bc2aa6e5777b9704f5b7c4d511d91f4
    [474] => 0bcc3ce0ad636573745b8d24c45b1231
    [475] => 0bdd4d1862623f0f005c04ea09aaf936
    [476] => 0be5fbc64e3bebd0b4f548c9229df2bc
    [477] => 0be8a801c078187be15e52223eacc208
    [478] => 0becdf572d0c74f109f53a21787d7d97
    [479] => 0bf43f63075ec66815e337cc5c38607d
    [480] => 0bf43f63075ec66815e337cc5c38607d
    [481] => 0c0650e822e759980bd348883d81c280
    [482] => 0c0650e822e759980bd348883d81c280
    [483] => 0c21d34ecd5c5bcc8cdf9b4cd2fba043
    [484] => 0c2be6f64a10a6015eeea853d349fd60
    [485] => 0c305b681f1ce53d5e822e1ffb450731
    [486] => 0c3947d801e1c7eeb0e100d3c682e3a1
    [487] => 0c4975a6c89e7ba0654b82bf82ab7ab2
    [488] => 0c4f0dd63f988a1f6c7b7b7f0ac2c2c1
    [489] => 0c5f062726d57645af677198028560d2
    [490] => 0c76b2176a1f9aeace6a9c509ecd3e0e
    [491] => 0c8eea3eb34e3f3001becfb09653c0be
    [492] => 0c9d1db7657b2423c6140ac75f921c78
    [493] => 0c9d1db7657b2423c6140ac75f921c78
    [494] => 0ca01b36cf79a85c1c508c272e599c56
    [495] => 0ca01b36cf79a85c1c508c272e599c56
    [496] => 0ca0518a086c9edcc5612cc34b6b44ef
    [497] => 0ca3ce290a7723d316d55378d3da9f5a
    [498] => 0cb281ffb6acabd2a438245c9803ba4c
    [499] => 0cbef6e0942fb907b06ded51cc3b7036
    [500] => 0cbfb366dccb3e8e93f868388835a993
    [501] => 0cc41bd0cb9b1ca7ccc4092e6e9de429
    [502] => 0cc7c0b4e47744f6f9e71e58849b4fb8
    [503] => 0ccb1c8e8de9fa05e64731be5be1e703
    [504] => 0ccb7069f4bff64ef1203d7b66d4f2b8
    [505] => 0ccb7069f4bff64ef1203d7b66d4f2b8
    [506] => 0ce9272908905897321647de247be6f6
    [507] => 0ce9272908905897321647de247be6f6
    [508] => 0cf2064cfb0b2960cb3dba840c7a0592
    [509] => 0cfddb415dfa0766bfa0ee1ff7a33931
    [510] => 0d022f17d3fcaeda2f9306ef1c3a006c
    [511] => 0d09efa0abb188d995f1534b1dd542b6
    [512] => 0d0f237b138b41e83a24cc238b375c47
    [513] => 0d0f237b138b41e83a24cc238b375c47
    [514] => 0d1542ccf5acf031db162c56528ab77c
    [515] => 0d1542ccf5acf031db162c56528ab77c
    [516] => 0d17176bdc6fc0bd8858ebeddaf6310f
    [517] => 0d187a38ff21e9c36305874bca29911c
    [518] => 0d193484cb0374bd5a97ba44feb6d522
    [519] => 0d350f28cf35d981221baa93d8e39450
    [520] => 0d350f28cf35d981221baa93d8e39450
    [521] => 0d3b1a480cbf32f3f3cca7450320e209
    [522] => 0d3ef0c9d8be451b425f79b81063e8d6
    [523] => 0d3ef0c9d8be451b425f79b81063e8d6
    [524] => 0d40caa6996e50357516ef3e6b051cb2
    [525] => 0d40caa6996e50357516ef3e6b051cb2
    [526] => 0d587df373148f07b10c108b654b6f74
    [527] => 0d587df373148f07b10c108b654b6f74
    [528] => 0d58a3af10a8a6ebb6716714d861fe86
    [529] => 0d67e1173d43eee55b58ad13907d71a4
    [530] => 0d71bbb25c0cc59fd1ea6cf7ecd4e08b
    [531] => 0d8bca713f6567afbfc5ffbe06423923
    [532] => 0d8bca713f6567afbfc5ffbe06423923
    [533] => 0d90bcc1dbe70b355635b6a1701c5812
    [534] => 0d90bcc1dbe70b355635b6a1701c5812
    [535] => 0d935f87712c35aebf5a0d8ed82e28f0
    [536] => 0d9604cbc438bb1c8bfb5f7b33f1df31
    [537] => 0da2f09db89f7eab61c0724d10cfdccf
    [538] => 0dbf7e569b00dc4357e1aeac88df16d0
    [539] => 0dbf7e569b00dc4357e1aeac88df16d0
    [540] => 0dc20e73038e9d11be7572f5ae732cae
    [541] => 0dc20e73038e9d11be7572f5ae732cae
    [542] => 0dc503620fd1c1ed94cf76ce8d113187
    [543] => 0dca52a20c2dd71ec91d9a207c6ce984
    [544] => 0dd2fb0ac0bfb20b8d25eaa40b0e77c3
    [545] => 0dd2fb0ac0bfb20b8d25eaa40b0e77c3
    [546] => 0dd46345111c3a4117e79d573c825191
    [547] => 0dd46345111c3a4117e79d573c825191
    [548] => 0dd98a5cc4c7c8b39826c970f2b4feb3
    [549] => 0ddef3df913734bcbde2af25fe5bfff0
    [550] => 0ddef3df913734bcbde2af25fe5bfff0
    [551] => 0df048173706da9bb4e012195823bf9f
    [552] => 0df129696237932c3fe830a58ea5a0fa
    [553] => 0df129696237932c3fe830a58ea5a0fa
    [554] => 0df8f4fe607dee5c052e577785297a8d
    [555] => 0dff8028245d7136213428aaf332b051
    [556] => 0dffd21d51c9871eddec92dea819443e
    [557] => 0e032438fa50e36e95163846be5d62eb
    [558] => 0e18a415322f25170d5394bcbfa7148b
    [559] => 0e2095cc6c4e9c7808481cf9ca2eedfa
    [560] => 0e2095cc6c4e9c7808481cf9ca2eedfa
    [561] => 0e24ed229a77c925d0656cc1b677761f
    [562] => 0e26a23c642b3ba9bf08fc7804ff239e
    [563] => 0e2e464d32e4eafa9c5f2325c73d9212
    [564] => 0e2e464d32e4eafa9c5f2325c73d9212
    [565] => 0e2f8bba90d2da668c8b49859f0be0de
    [566] => 0e3462ba500f851bb65dad1573d8ff74
    [567] => 0e4671350e816cd5e58d0bdce1422445
    [568] => 0e53de7d163a30a6ddea20c0178e41bd
    [569] => 0e53de7d163a30a6ddea20c0178e41bd
    [570] => 0e6de792784655be09c54e00414f0f26
    [571] => 0e828ee937e840b4cda0467c3f29de0c
    [572] => 0e8eba3301c4fd43ae9a77c28896d780
    [573] => 0e9469e86da1f535f12e93f6f1aa57ab
    [574] => 0e9469e86da1f535f12e93f6f1aa57ab
    [575] => 0e973b8823ababacdaec1042d423d3cf
    [576] => 0ea06bb9f4dc5caa65477df5fd4d1b66
    [577] => 0ea7442909267bd81c79e66c24fad176
    [578] => 0eaa549b359d70257260bc1abb5cb99d
    [579] => 0ebc4d6571251df9942d2f3f6b08f9af
    [580] => 0ec585c51f2f1bcba6412d7df643b2c4
    [581] => 0ec86450c3fe4e052ba2609755eb7123
    [582] => 0ec885e665fca9679cbc2764276fce77
    [583] => 0ecc4bc131e8996849d24582d226d471
    [584] => 0ed25e764889787b66b879ba7dab2843
    [585] => 0ed25e764889787b66b879ba7dab2843
    [586] => 0edabb8d91a0a0efe572bbf31f43601f
    [587] => 0ee0314c1c735ba042547e89cfad6e14
    [588] => 0ee502f7672d32d0f73312d405d6a7d1
    [589] => 0f00685f01dfd419b7024234a3417400
    [590] => 0f13a5f3ccab681b17fd615adb432828
    [591] => 0f1658f7fa70258bdf24874fc7ba1501
    [592] => 0f294e1a325f5d3f18d91023edfac6b4
    [593] => 0f29df4a4d3eea90056932c948467ae0
    [594] => 0f30ce3ad6602843d9d049a684da6210
    [595] => 0f38fc27561b64ef0ba6fe2177cced90
    [596] => 0f3f042e543f2545dd2ab1b2fb36a4f4
    [597] => 0f40b4c5e1e92cad01676f06a5201ba5
    [598] => 0f4486ed802432abe28f8ba090c4027f
    [599] => 0f4d1b8bcfdfc983a3d0931b15606a95
    [600] => 0f4e429a0f92223c550951946291506a
    [601] => 0f59e03bb022ae452c67adb99eb00884
    [602] => 0f59e03bb022ae452c67adb99eb00884
    [603] => 0f6d8c47e943bb07b0383cafd9df5347
    [604] => 0f6fca2282f572c09f729c8c40b79699
    [605] => 0f880c489026be808c39bcf7ff3af692
    [606] => 0f880c489026be808c39bcf7ff3af692
    [607] => 0f905ba2d9ccbec42b0bb5d510620cb4
    [608] => 0f96f0c1bcb7e09f6f563b072c70a84e
    [609] => 0f9c103ce45b1f22a7304bff6c614321
    [610] => 0f9c103ce45b1f22a7304bff6c614321
    [611] => 0f9fbf22955450c6dbfdf57c30f5d592
    [612] => 0f9ff6b4d76083946969a86a8b9d9eff
    [613] => 0fa1bfef1a269135cd7ec6f1a834e583
    [614] => 0fa51a0d2dee026ec65a40162ca55243
    [615] => 0fa9a44274bb3895171d1878a13263f0
    [616] => 0facc206c9d4a4661be0de76d5ff0952
    [617] => 0fae065d534d10248d03f49995315333
    [618] => 0faee18c2f383a196c675b0e887e6c9d
    [619] => 0faee18c2f383a196c675b0e887e6c9d
    [620] => 0fb6620ef70b4e56b7dcb7bfc8373c01
    [621] => 0fc1d82a655e134cbf8fc1e961c1038d
    [622] => 0fd2266f9e530bc66e6d384d9d769a88
    [623] => 0fd7fde3c1a9d95d1c7087219269fd6d
    [624] => 0fdc9cea992703ef5fb1d432ab558aee
    [625] => 0fe60095f545c15936a6a791a67a6deb
    [626] => 0fe63c0edb03beb93b55d659f449f6b1
    [627] => 0feb393504ef877e1eca63a2008f6936
    [628] => 0ffb33600c3b130342d878dd07f590b3
    [629] => 1000b0218dabdb40681ce76facae3f16
    [630] => 10061e4e5c937f0f6bafadf40a3fd962
    [631] => 100ecac34c74e4494e1741b120cfd0e4
    [632] => 1012b09757e4b70d7bfe2d3d453a20e8
    [633] => 10201484cafb02d30509955d805eceb3
    [634] => 10203b0f3b3cf1de9afafe9de2c32373
    [635] => 1036c6b1d3be7124cca10385324f392a
    [636] => 10437abf1515d3a6c2fd40b7d2eb790f
    [637] => 10437abf1515d3a6c2fd40b7d2eb790f
    [638] => 1047dadea9e4426288f62df4daf167a5
    [639] => 1047dadea9e4426288f62df4daf167a5
    [640] => 105d250410f2d584874c2d11ffdc277f
    [641] => 105e1b582c7c940a3ba38a0a296dc66d
    [642] => 1070d6a7dc50c1e13c7629f0c2b64713
    [643] => 10765c556bfab3ba2162ea144d083ab4
    [644] => 108c349876b6352f824115ca33c8fe40
    [645] => 109240a7dff14d881cf8b1aa05db9e91
    [646] => 10aac565858f3c56dd0d689f41023081
    [647] => 10b7bc3dc0a95a453cf281324c0e2787
    [648] => 10bcc1fa1cd6721ed5bab271b4d894a9
    [649] => 10bd6d847ffe01e541997d4dd7557daa
    [650] => 10bd6d847ffe01e541997d4dd7557daa
    [651] => 10c40dc8e3b77677a5dbeff7cf9ebfb9
    [652] => 10d13e6e5f6dafdcbfa7d575ed503d7e
    [653] => 10e460e3821f632b886a35a3008b4d9b
    [654] => 10e5280a4e1732370a90031aa1f4cc7e
    [655] => 10e5280a4e1732370a90031aa1f4cc7e
    [656] => 10e64994117386ef90ef36e09905aa2d
    [657] => 10ebdeb172cfefe47e31a79973254e8a
    [658] => 10efd4787c84b0696de595124d284205
    [659] => 10efd4787c84b0696de595124d284205
    [660] => 10f34c53faf787f6f15141692cb5892b
    [661] => 11095e83339a60245855b6e7ce874350
    [662] => 110eeec9894419575af4724a3c1e0846
    [663] => 1117096bc711bb8925bde6804d33e7b7
    [664] => 1128d2bb2eb5f4cc8cbed7207dab2ab8
    [665] => 112e470ccc1e0c6841b97e48d23959b6
    [666] => 1130cb6d0b419e1e25a5c0c8325d9755
    [667] => 1130cb6d0b419e1e25a5c0c8325d9755
    [668] => 113534d9796eea9d4a1944e0a01ea376
    [669] => 114cd1cacf50d1ca1239839661f3304e
    [670] => 115d7158aa2d66005551001611df2a7d
    [671] => 1164f34d3f95495176672933390a5892
    [672] => 1164f34d3f95495176672933390a5892
    [673] => 117a160cce4e45231306c035f0541a37
    [674] => 117d207ae4c62af54e45be646a0737b5
    [675] => 11817529589915c2159cfaa85a041469
    [676] => 1187d4e9dca66d2141a885db4499af3c
    [677] => 119ec3f4b74c7dc4379d718f4305dc3f
    [678] => 119ec3f4b74c7dc4379d718f4305dc3f
    [679] => 11a2598c00a9c6f20e64b7c359d83bec
    [680] => 11aa723373050e4424ca1ffa87bb88e6
    [681] => 11b0ef4c036644587dcefe738c3fdd93
    [682] => 11b66c7483efb54119b626962c8fe8d9
    [683] => 11b6cecdf441338c15d1adb2f8181b4d
    [684] => 11b879c82c41721386b46fcd0a085464
    [685] => 11bf12303400017ca6a094ba807591a4
    [686] => 11c3d2ef052697b0330d1f21ce40e491
    [687] => 11c984487a009f8381b3e535257c014e
    [688] => 11d9cb6e98b0f36af33eb117f602ee94
    [689] => 11d9cb6e98b0f36af33eb117f602ee94
    [690] => 11f28bfebdc66409928fd06797b11127
    [691] => 11f3c31de92569051d0f77710f2a72f7
    [692] => 11f4d0d9a4490f0588f5d4b422fdcccb
    [693] => 11fa1e2070ef1ec24c0d20c57958dfd5
    [694] => 1207aa1444dcadd2ce25dfe206134401
    [695] => 1208e9957d1cdb502227a0dfc4c3e59e
    [696] => 1208e9957d1cdb502227a0dfc4c3e59e
    [697] => 12194a02b8bf2b1f527e5f7dd40f599c
    [698] => 121da6538856d04f457a23f2a3b95b25
    [699] => 1225ca4404fa588fefb4ed3bd1e38092
    [700] => 122a95d61f4bd17374b55cb1e8e08a1e
    [701] => 12408c0a2e59f1da153081d4a59c6c8f
    [702] => 125225c4a3128a19ca5d66fa6ee78391
    [703] => 125a763bfe7deb4f56c36c7ed8dc0b3e
    [704] => 125d83e52ed349b85846592863afb9c3
    [705] => 125d83e52ed349b85846592863afb9c3
    [706] => 125f84faeb728a449f39966b02077266
    [707] => 125fcf5f3efaab751daa5a078eaf39f0
    [708] => 1261ad4a1bd529d3dd51781708fa3097
    [709] => 1265f577cbddf8799de63275299da35b
    [710] => 126f856a578d0a12bd9133b7260090eb
    [711] => 1270ee38ed0eb95d950905f92de929d2
    [712] => 12733f6e14a46878b771f16d11fff627
    [713] => 1274965cd8f1e59e8aeea9060ec93d6b
    [714] => 12832fe684040b3d60540850576b0b81
    [715] => 128e0b659cfc98588d1e666361abf4c4
    [716] => 129d44f06bd59155022215b1865f42c9
    [717] => 129d44f06bd59155022215b1865f42c9
    [718] => 12a5f64b50640f832bc8437390943161
    [719] => 12b14d152e7c9e4d821077b327ce8ef8
    [720] => 12b649c2e98796308bff3b089d6c33df
    [721] => 12bb160eb34ade054ed81710acf3e7dc
    [722] => 12c7963a8d509ed68a560f92617fb34a
    [723] => 12ca27d37aa527d19d12da6f7e4152d8
    [724] => 12ca27d37aa527d19d12da6f7e4152d8
    [725] => 12d334d1ef89abf282598545592400cd
    [726] => 12e9eddd716056bc7500153513555d95
    [727] => 12ead0759929a9c73b3b3cc46af45581
    [728] => 12f0554018a99a8e4a8105bbee906c76
    [729] => 13050e3aa415d266c17b42450fb7cfa4
    [730] => 130da997036e38d6e9554490a3c0d282
    [731] => 130ea73828dea9145ff855fb53a3e179
    [732] => 1314e0ced38a1b4c377227aca7ec5d43
    [733] => 131fc62d57343e40d6ab7772c46daa4f
    [734] => 1322070a95032b432194c5d1fee1b6ab
    [735] => 13246ab224e7517bf2a6817df1ee926f
    [736] => 1330dd42b894164df8fdc249196ba556
    [737] => 1330dd42b894164df8fdc249196ba556
    [738] => 1337839c339889f505fc00c3947326e0
    [739] => 133ae55ca3780d36fb29c5657f4db538
    [740] => 133ca687b268fc94c5f9a7e5c25d6dac
    [741] => 133e56525514dc4ce436580c0828d8a1
    [742] => 133ef4c931613c8d8b7e61072dbe0cca
    [743] => 13469218fd16e478b6c90ade6a8469d2
    [744] => 135320c8d06dfb264525b4b7b1c0e587
    [745] => 13562f4682f95a3c9e18799d84910327
    [746] => 1359807a62c5643795ad87bcbb3e8a84
    [747] => 1361e354df13b819f9e9aaa2e7bb5674
    [748] => 1362d6c17beab0a0057def1d4ebd7c23
    [749] => 13660fae937f8c6f8d02823a8c28fda6
    [750] => 1373c394b8ac9a4ca06d3fc0ece1c5be
    [751] => 137deeb30ab85085fb42798695c69b3b
    [752] => 1380bf62d865d3b09c21b57a2c64804b
    [753] => 1380bf62d865d3b09c21b57a2c64804b
    [754] => 13852bfa2f3ed6dc50d1f5b5b79896f6
    [755] => 13989b4f50eca2665a357280481cfeda
    [756] => 139d21d0d62ff2ca149aa2bf805bdd5a
    [757] => 139d21d0d62ff2ca149aa2bf805bdd5a
    [758] => 13acefd40a8fc6bb0748c7af1e1b412e
    [759] => 13b3642a46eaa010fc3081501789fb84
    [760] => 13b7d0c66094e38eb8f50da109a28f4f
    [761] => 13c4c425f781559a70ac77f3d752c5c7
    [762] => 13c63a1b225d01aa2f5cae42f7685f18
    [763] => 13d411b5f57a2b1517e18c125d5dde03
    [764] => 13d6578b9ac27b734367743ec0e2c8a9
    [765] => 13d6fb0d11453451667c2eeeeeb5c1cd
    [766] => 13d8abf41f1bf4e7a89f7ea3ce114710
    [767] => 13da7f1597189b6b580ba7126e147aec
    [768] => 13db75c75e0d356accdd52f161a7c4dc
    [769] => 13dd97ecc1d1861a141769b838cdcf39
    [770] => 13e8ce3c459dff4c7932883f566cad04
    [771] => 13e8ce3c459dff4c7932883f566cad04
    [772] => 13eaa487057f1c0bfebbe9e2c76dcceb
    [773] => 13ee1a79b31ed582be87ca378c0fb098
    [774] => 13f53fad22b003c17cfab58abd6b1839
    [775] => 13f53fad22b003c17cfab58abd6b1839
    [776] => 13f6a3b34ea14983db25199d4561cf76
    [777] => 13f732ce8f0322344a92dda8f6eaf371
    [778] => 13f874c02de3da9de418fae825c94680
    [779] => 13f874c02de3da9de418fae825c94680
    [780] => 13f8757a77d6c71d2f9a20e7b30a4f09
    [781] => 13fef56954f7630e8894c71d95a14339
    [782] => 13fef56954f7630e8894c71d95a14339
    [783] => 140875b2453a30101c90c0a98cf61a12
    [784] => 141adcc0d2f1380508f4bbce58755b53
    [785] => 141adcc0d2f1380508f4bbce58755b53
    [786] => 1429fd3a8382ca91671d5a4d0219dbba
    [787] => 143054667badc088a398cc911058cf79
    [788] => 143054667badc088a398cc911058cf79
    [789] => 144b1a76e8c447a79f6a38098ef9407f
    [790] => 144cb66fbfc454ea4772f8643a09af5c
    [791] => 14539af86d587ffcf96955eaa6be91c3
    [792] => 14623aef48fc59c0836940feacaa69db
    [793] => 1488f30401189dcd1e0641763e1ccc57
    [794] => 148be61b7b735ae40d0b331f54f4886f
    [795] => 1493f91bb0aa036fd0fdd285ed587473
    [796] => 149475b1ffa4338352f4e17b2e9804d3
    [797] => 149b9b25a6c43034047ee2980076b3a1
    [798] => 14acf536df9a845e4e050e2eab18c08c
    [799] => 14b2abe9a9a0a7e94d459f74e7ce38b8
    [800] => 14ce42058c052fdc69a46a6c9f5aff65
    [801] => 14e49afb9764c0eeef7df029b9ed6279
    [802] => 14e916775e5d62d324d03fe9f84dd92a
    [803] => 14ecd6763f7adf9ef5e01eecd9534edc
    [804] => 14f2b20804b9b5de52f69148da49de32
    [805] => 14f2b20804b9b5de52f69148da49de32
    [806] => 151f6814980a0a9a4e1628f6264e2162
    [807] => 151f6814980a0a9a4e1628f6264e2162
    [808] => 1528ac67178639936b311f3e842fcb2b
    [809] => 1528ac67178639936b311f3e842fcb2b
    [810] => 152eadd933d30c03cf4bb37a25ff96b7
    [811] => 153a8e99aa137ca2d46f83ed98a7c33b
    [812] => 153d4b3c5a7a8ed9e0af109a0fadf020
    [813] => 153f7141ad79fe46558e2cf820f97f86
    [814] => 1540502206dd383ece6af63b12fa7039
    [815] => 1566d937c297e482aff64dfcd145ff1e
    [816] => 156cde2f154e828c6d3b754aa92c4e3d
    [817] => 156cde2f154e828c6d3b754aa92c4e3d
    [818] => 157802a52170ad10ad2450d5aad6168d
    [819] => 157937b006bd4ba1d53136f73679cc15
    [820] => 15abbe883c8721b5c65947fb4657ab15
    [821] => 15abf2a80537def8a930b5bec64e3b95
    [822] => 15bf1711f17f0fa7331c57e544061911
    [823] => 15c0ae33a0dcaa304a96ca7598df262f
    [824] => 15c0ae33a0dcaa304a96ca7598df262f
    [825] => 15c1a1b19680ebb25859ea32234fdef0
    [826] => 15c1a1b19680ebb25859ea32234fdef0
    [827] => 15c1b1b3fe8b4ddd55e95f620a5d654f
    [828] => 15c4073e17ae19f06071c63181e70033
    [829] => 15c57f1562ef20ee1c89f75b51c133ff
    [830] => 15c57f1562ef20ee1c89f75b51c133ff
    [831] => 15c7fd5f7783dd6a6eaf70b7228d4ef8
    [832] => 15c944cd5deb384ac58eed290547fa89
    [833] => 15f09255aaf7d27928b81a5322e50766
    [834] => 15f52b27d48841cc516f9d1d8d2bbe0b
    [835] => 15f87da82a4315252ea6ba0721ec79e9
    [836] => 1623d95ddde8df1a504f4c483a9be3c8
    [837] => 1626b70a90fb0b0fdb7a8e966c39ea4a
    [838] => 1630f6e3de31c8c1b5a66b9db58fdf12
    [839] => 1630f6e3de31c8c1b5a66b9db58fdf12
    [840] => 1641f8041634f1d8bf097b7c3a1e1c34
    [841] => 1641f8041634f1d8bf097b7c3a1e1c34
    [842] => 1656f07b5e5324bd970570a3b76bc389
    [843] => 16606aa10a6cabe3564bc378827a87e8
    [844] => 166fc57581b04bc94305f8430c118500
    [845] => 1684658f28ad77c9bce029e7c43e7c7d
    [846] => 1698a2f46e4f438f08533d33702957de
    [847] => 16b6b8b1b34bebc0858af1ea0fd95b01
    [848] => 16ba66dfe1c6cbfbe714ef6abce992ac
    [849] => 16c1e3d8643154cea78d2ed1fd5b46e2
    [850] => 16c61a92ebd4b02fd439b5d1d9d11583
    [851] => 16c62317db73d12cb4eceafed7c38d52
    [852] => 16c95efcab0c96f24b5329dc5b36b352
    [853] => 16c95efcab0c96f24b5329dc5b36b352
    [854] => 16d9b0745b8bf44e3363f955cd2b7f9d
    [855] => 16e6614fe83145748b5458166d064925
    [856] => 16e6614fe83145748b5458166d064925
    [857] => 16e80a180beab01df0cd0a8c5849b39b
    [858] => 16efe92ecb51d1372b47d8b6b1baec84
    [859] => 1700923e81c497a52120f3adee109c3d
    [860] => 1700923e81c497a52120f3adee109c3d
    [861] => 170ded09f78a2b3519d9f3155e3a004a
    [862] => 170ded09f78a2b3519d9f3155e3a004a
    [863] => 1711b1cd91909e3716b77543ef6e68bb
    [864] => 1711b1cd91909e3716b77543ef6e68bb
    [865] => 171c41ce74c13f435acba6f212b531d8
    [866] => 17286243113d9b5c38d902f29a9d21bb
    [867] => 172eb7e217b9755063a27b6417bb3fe5
    [868] => 172eb9d851014ca2e88937fa42b8f9a9
    [869] => 17463e2adab15780e5c191e9dbafb545
    [870] => 1749bf493a76d17f9ddd59ee6131a3ca
    [871] => 1749bf493a76d17f9ddd59ee6131a3ca
    [872] => 17685786ad04c9ce29beceeea2e15569
    [873] => 17685786ad04c9ce29beceeea2e15569
    [874] => 176e2e6c4c34f38e36ccfc062b4a2444
    [875] => 17755d3772652ba5b40583220c66f51c
    [876] => 17755d3772652ba5b40583220c66f51c
    [877] => 177fdfda876ffcc80a443f28d066106d
    [878] => 179c04fab09404762e341869dcfc58f9
    [879] => 179eb1a7c53bdc0db979957de7852d37
    [880] => 17a47385894eb3bdc9f6d7ba3095c625
    [881] => 17a67fdeb736857903d9248175f90c61
    [882] => 17a67fdeb736857903d9248175f90c61
    [883] => 17a694d44a77338c9e209e4e9b3016b4
    [884] => 17aa5f77407cd57861bed1d0b5c4af32
    [885] => 17ad19fe94eb5584065e07f91de59250
    [886] => 17b097c95f5aeca4f567c5f0947413e6
    [887] => 17b097c95f5aeca4f567c5f0947413e6
    [888] => 17c532edd514f7e553116973ea78db0d
    [889] => 17c938ced88f0003f13856bdd88d4b2e
    [890] => 17d39947a0a5785fbb95d01ae9f19e0d
    [891] => 17d6dce3660201f98a878dcc53bbf962
    [892] => 17d7734d9dcfcfa09cd811342860ec27
    [893] => 17d77df0546e9117ed558da498c051a2
    [894] => 17d8247b104d6ed27f01dab3ffdef688
    [895] => 17e5bdaeaec8d9308da5868b17f89de3
    [896] => 17e8c9d93554dc8a54336b56d1c18996
    [897] => 17ef1b82389841fdd3d15eb262a8b446
    [898] => 17fed1c7b74deda9b7384fbed3b06946
    [899] => 17fed1c7b74deda9b7384fbed3b06946
    [900] => 180061f5545e11d60a5c51254a87118d
    [901] => 1812609c98166507ade3bf212d316270
    [902] => 18134a8e5e6fecbb55bae6d60da47030
    [903] => 1817e36707b8bcdaf9d0a3d016bd3717
    [904] => 1819dc6e0cc70a91b579951f17865414
    [905] => 181e42ee10d256482eb4c7a532acf92d
    [906] => 18232cd6cb4c3eb89ef4807b2e4db7e4
    [907] => 18232cd6cb4c3eb89ef4807b2e4db7e4
    [908] => 1833c96f4c4dd3dd6d30835beb95c329
    [909] => 1842a10f9931732da0e61ba9e6570db1
    [910] => 1843f0c3436b6447f97aa2107d00937f
    [911] => 1843f0c3436b6447f97aa2107d00937f
    [912] => 184425d8c251bf40e0ccb0cc541b3cdc
    [913] => 184c90d83d361bfa849b91239a6b3c02
    [914] => 185fa37620c88c608031a1a8febedd7b
    [915] => 187a1e0c135d90dd23618e5bc3866f29
    [916] => 187a1e0c135d90dd23618e5bc3866f29
    [917] => 187f6027cd89c8f2bac2be26845f4171
    [918] => 18842fde82f87a808ae96e160e46bb24
    [919] => 18908502ff0fb2dd66a6271294155f56
    [920] => 18908502ff0fb2dd66a6271294155f56
    [921] => 189508e2f98f3b3e75aa9d4b7afeabcb
    [922] => 18972933c4a36889f98fa91ec3cc4f99
    [923] => 189e1f83d477345ee08d471265bc8d8e
    [924] => 18aa14202971cf205fe250c8b53ed248
    [925] => 18ab81b176ffb46f1b32330e90f2e362
    [926] => 18ab81b176ffb46f1b32330e90f2e362
    [927] => 18b1a7be892eba377d5fac99e9fe6b6b
    [928] => 18c1dd3fae6bd91e82c5a82075110ccd
    [929] => 18c1dd3fae6bd91e82c5a82075110ccd
    [930] => 18e1707eb4bb36cc55e0e5ca201824ca
    [931] => 18e8a8492eb4c0251caa2ad44f86f395
    [932] => 18e8a8492eb4c0251caa2ad44f86f395
    [933] => 18ef0bcb7865d51160f981ed39994249
    [934] => 18ef93e10ba1eecca52a04ccef3174f6
    [935] => 18f964d4b734ae0367ed79376627daf3
    [936] => 1921f64f19a45c6ae8c123ef349dc903
    [937] => 1921f64f19a45c6ae8c123ef349dc903
    [938] => 192986a50e8f2a0a35da50ef6ef0f0b6
    [939] => 194cf6d3abf0c80294b1a8da80ed43e6
    [940] => 194d96981cd04d4b605e4589ba7b6cc6
    [941] => 194d96981cd04d4b605e4589ba7b6cc6
    [942] => 195555f3feb9203c320adf4bba365cfa
    [943] => 195851dae2fdfc833061edf37e83bdcb
    [944] => 195caeccf2122f34de632c6064572876
    [945] => 195ff76959e29a45e075927db6dfb5dd
    [946] => 195ff76959e29a45e075927db6dfb5dd
    [947] => 1961b0d47b46b19b59211e80d9bc9d7e
    [948] => 1963a2e443b17d13816b6970b71cde2e
    [949] => 1998c1c65d00647007da6d07364440ef
    [950] => 19a4981055b8247431809b89c68928d0
    [951] => 19adbe9ffb613fa7f004f7e244aa5238
    [952] => 19adbe9ffb613fa7f004f7e244aa5238
    [953] => 19ba23ded13a9156ab79cb81e48e9e4c
    [954] => 19c08ba1223c74f655e1abb0d260115e
    [955] => 19d36cc18951ed096f77f223015e99c1
    [956] => 19f5f3532acc0a97981f8260391de4f4
    [957] => 19f97a56e56f6bba3e72e0a1bcc17447
    [958] => 19faa9827010e4017249c1dae384b59b
    [959] => 19ffe7412a5dd04a5d9c590fc86389e4
    [960] => 1a152b97311a82beb5c34381b342cb0c
    [961] => 1a26322219179ef965972569edec6bd2
    [962] => 1a26322219179ef965972569edec6bd2
    [963] => 1a38f6af31cdab6bd3eb17a16b481115
    [964] => 1a4d70c265282da304ac0e559644d3c6
    [965] => 1a5beb5725cbffede401ff68656b2557
    [966] => 1a60883f501759f707c82e00943867ef
    [967] => 1a7403e56634994c23d3f6adc5370077
    [968] => 1a88ea58ff7b8b0fdece278851f201a7
    [969] => 1a891757bf017f6156d456e21dad5a22
    [970] => 1a8acd1d5a06ad04ec0ea318af2bbf67
    [971] => 1a9524da2c6682fdab527817a58a5f9f
    [972] => 1a95a94361f252160c47b080d1313b78
    [973] => 1aa39219092327d113461856c56f97b5
    [974] => 1ab2f537075f0b2945c241ad937417fe
    [975] => 1ab6d44c436ab45f81b02e72f77ee251
    [976] => 1ac0ce39ae1b8eac3a3a8308622a9ae1
    [977] => 1ac83fee1a70f89fd7963c42c30503ea
    [978] => 1ad078b21e0293ef64ca374cf969354e
    [979] => 1ad28bcad97f8004a9b0d717b9750114
    [980] => 1ae62f4099662a34771fb2478ced9786
    [981] => 1ae62f4099662a34771fb2478ced9786
    [982] => 1af24d773234ad67a8d95e95b1f8a5b4
    [983] => 1af3480248d2b2964d368aedc4c919c7
    [984] => 1af3480248d2b2964d368aedc4c919c7
    [985] => 1b0b0e0e2a27bc1bc4ea4f204cb9c77e
    [986] => 1b0d285ebd5e02d8a463460a2eab138b
    [987] => 1b0f9109b5f9a539de1288a988d68bb2
    [988] => 1b0f9109b5f9a539de1288a988d68bb2
    [989] => 1b23370d2e569101559e4df6851b88c9
    [990] => 1b2b03d0f3c63d0e5bea9b1abab1df7d
    [991] => 1b2b8f07a7b7f1289f3b4bbee52d3d5c
    [992] => 1b2ec753aa0aa8d873727e23c0f2c20c
    [993] => 1b3f9c98fc88e1a4e3ea35ad199f574e
    [994] => 1b4af852e6c3656bf4608fee56aef3e3
    [995] => 1b4af852e6c3656bf4608fee56aef3e3
    [996] => 1b502511e35b7df62e5a44df79d176e4
    [997] => 1b68038ab059dbc7c6a233dafc15639f
    [998] => 1b726036c93023542bed135908019080
    [999] => 1b8dd7f9f531a85634212bac40106e04
    ...................
    ...................
    [9999] => ffffb3a7d8ee97bad136914291063465
)

Не находите ли повторений?

Самый главный побочный эффект: один "запомненный" юзер имеет высокие шансы залететь в аккаунт другого "запомненного" юзера.

UPD: Зарепортен баг

2 комментария:

  1. Не вижу где в коде могут появиться повторения. Так могло бы быть, если бы rand или md5 работали неправильно. Может кроме хэша попробовать повозвращать и сгенеренный стринг?

    кстати, generateRandomKey - функция прям из sfGuardPlugin-а? удивительно, что в ней соли

    ОтветитьУдалить
  2. Вот статья наглядно рассказывает про проблему и главное дает рекомендации, как улучшить ситуацию

    http://laurent.bachelier.name/2010/02/security-is-not-easy/

    ОтветитьУдалить