From aa0fe54b3bf8331c174c7be107fcfa2b67f2322a Mon Sep 17 00:00:00 2001 From: emln Date: Sun, 27 Apr 2025 19:24:27 +0200 Subject: [PATCH] CTFs and solutions --- back-to-the-future/2 | 71 ++++++ .../__pycache__/chall.cpython-313.pyc | Bin 0 -> 4997 bytes back-to-the-future/attack.py | 50 +++++ back-to-the-future/chall.py | 99 ++++++++ back-to-the-future/des.py | 158 +++++++++++++ .../0024f4d0c2b3d981466de18eb8f0a755 | Bin 0 -> 100 bytes .../013e1aa0bd32b92f105abddbcb2e4dfd | Bin 0 -> 100 bytes .../016f2deaa7b087afc8784da8397a22a5 | Bin 0 -> 100 bytes .../0339ca8760519fa43df56ddec27a24e7 | Bin 0 -> 100 bytes .../037f590478d87f55cedf7b1ab1d53a82 | Bin 0 -> 100 bytes .../03c414397bdde3743856111af41ff1bf | Bin 0 -> 100 bytes .../04433ec6a092234083ccb75f70be7844 | Bin 0 -> 100 bytes .../050e985a050d81dfa77f0827ff555076 | Bin 0 -> 100 bytes .../0571127e1b066fcd0ab93df9db3c231e | Bin 0 -> 100 bytes .../0753e7809f4e8bde6701b4d27193c28b | Bin 0 -> 100 bytes .../07b9966fa556e07bb7dbf9d7a97c5d6a | Bin 0 -> 100 bytes .../085e25cb55018865bad411eac1273ec2 | Bin 0 -> 100 bytes .../094a242c07093b9b0a8bf37702d4d6ed | Bin 0 -> 100 bytes .../09e32f0db5c88c55bc994ecd2d6cbcc6 | Bin 0 -> 100 bytes .../09eb19248af327923541b8fcae0c34f9 | Bin 0 -> 100 bytes .../0a52c4727ae4311cd3a51114e42472c6 | Bin 0 -> 100 bytes .../0a6d00dc979a6696c7dc339e4400a0c9 | Bin 0 -> 100 bytes .../0b8def7c22ef61cb5591a9c080f8c117 | Bin 0 -> 100 bytes .../0bbec9d663098e92dc7d014a4b7f032d | Bin 0 -> 100 bytes .../0c1f1c2450a35deebee44be732d558d8 | Bin 0 -> 100 bytes .../0c23ca3d1f4169ce2147cf8a3180d454 | Bin 0 -> 100 bytes .../0caac73c224f83af1261050ab6ca5bc6 | Bin 0 -> 100 bytes .../0d2a8e6c32cee51c76eef735eea453d4 | Bin 0 -> 100 bytes .../0eb3cd9a68a2d1328664c716c96074ce | Bin 0 -> 100 bytes .../0eb7bd4f6d34532740aad04e035261f4 | Bin 0 -> 100 bytes .../0f4b7f5961fc0914870a1d877d5af208 | Bin 0 -> 100 bytes .../102b39f6be00c1781f576ab0acfef156 | Bin 0 -> 100 bytes .../104cca7fdf9eb7752f4862d38e6eb718 | Bin 0 -> 100 bytes .../10fe679fe6f5a8d3c40032c9ffae4f6f | Bin 0 -> 100 bytes .../11955af46d6389a50ae2dd9582509472 | Bin 0 -> 100 bytes .../11c5a55a41c63c736331c462cf5c3e21 | Bin 0 -> 100 bytes .../11ea3092bffa93df79a32e656a8a0586 | Bin 0 -> 100 bytes .../124926dffa9468ff2a63e8ebbd70d4fc | Bin 0 -> 100 bytes .../12fcbc367eb9e88c32e55632361cc26b | Bin 0 -> 100 bytes .../153b504567a8ccb59e454c265f46b8cd | Bin 0 -> 100 bytes .../15626afe7c5a68139b2d0c823b10b225 | Bin 0 -> 100 bytes .../156991eb1d1094c1966cbe78ecf850e8 | Bin 0 -> 100 bytes .../16d0908062af6846734edfa5f045a7eb | Bin 0 -> 100 bytes .../16fd8e2a8030276090ee1af051f12820 | Bin 0 -> 100 bytes .../1758b09b9954119108661b47afd46133 | Bin 0 -> 100 bytes .../175c311f06644d8abf68bbbe58f2419c | Bin 0 -> 100 bytes .../1800c2925b752b572f86ed7ee84e6447 | Bin 0 -> 75 bytes .../1877a6d8ef9c4bef7b8b20352efd6315 | Bin 0 -> 100 bytes .../18c96d9bf2e5d9a806260b2073cc02ee | Bin 0 -> 100 bytes .../18e75151796c652d44534b00d0212909 | Bin 0 -> 100 bytes .../193c50b53639cb1c03e36dfc740123ac | Bin 0 -> 100 bytes .../1b2ca741d7a39db18a40eb32c2d11b34 | Bin 0 -> 100 bytes .../1e68c4649db3fe5e9f137d33b1750a88 | Bin 0 -> 100 bytes .../1f658eed99e5d7de9176b624a3adc574 | Bin 0 -> 100 bytes .../1f68d6d0f4c582b441f14dcde94228c5 | Bin 0 -> 100 bytes .../2029240f6d1128be89ddc32729463129 | Bin 0 -> 19 bytes .../203905a31c6f852e9d45c346da0c8e2e | Bin 0 -> 100 bytes .../208455b2dfc729e62e1d212617c5c103 | Bin 0 -> 100 bytes .../20874b46266e4b74b7ab1b03f63dcf73 | Bin 0 -> 100 bytes .../20989fe5ff4ecc9d2220dd6a0d753437 | Bin 0 -> 100 bytes .../210b1035151e9760b507a7c1edb1cb67 | Bin 0 -> 100 bytes .../220fce4c0ec426d5753fbaf01bfb9a8d | Bin 0 -> 100 bytes .../2216ab4b98005fa61b3b5a023e33106d | Bin 0 -> 100 bytes .../224eb7214627856502497725cace3e24 | Bin 0 -> 100 bytes .../22758786fc4b59ca7a0765ffdde20d3d | Bin 0 -> 100 bytes .../22aab843b3edce5f80919d3827c4a214 | Bin 0 -> 100 bytes .../23fac18da96856adfb0298e2ac196058 | Bin 0 -> 100 bytes .../2599a275682361c46cbf46b22160097b | Bin 0 -> 100 bytes .../26155c8b1c13dd23400c7885241f3b83 | Bin 0 -> 100 bytes .../2690b7f4cdbc7e9c649c07e63cd8f38d | Bin 0 -> 100 bytes .../26f220fa930f333872b125bc80cda0b5 | Bin 0 -> 100 bytes .../272e7e2567476c69996585bf3a75e852 | Bin 0 -> 100 bytes .../27e405db11e63c38bcb22f24fe2cab5b | Bin 0 -> 100 bytes .../2940ea81618bc3b9313c8a0818f9f9e8 | Bin 0 -> 100 bytes .../2a5f27fae53f8a864398fcc856e04e90 | Bin 0 -> 100 bytes .../2aeb371d8adeb94ded786e5bf923a3ef | Bin 0 -> 100 bytes .../2bac0005df40528459d260e16fe6fb80 | Bin 0 -> 100 bytes .../2c2b79e3fa4a76558fec5886a8bcf220 | Bin 0 -> 100 bytes .../2c386f464fb69ba5b9535527e53a1136 | Bin 0 -> 100 bytes .../2d46a4d5e411f544f3d308f41cc75a05 | Bin 0 -> 100 bytes .../2d8c6c66ee7c4a9f51f9b344f954d0b3 | Bin 0 -> 100 bytes .../2f320eaf6c96a4bc8f5852b93ae1ff3b | Bin 0 -> 100 bytes .../2f85fc72a4cb0c8616ef7fa12ce8d540 | Bin 0 -> 100 bytes .../2fd1a29c36876ebdafc41f35f5656a9e | Bin 0 -> 100 bytes .../300980f59c705be97d9ab183917839d5 | Bin 0 -> 100 bytes .../30a4aea5a1b256f0c0910058991850a2 | Bin 0 -> 100 bytes .../30f0532e5c0e8ee9d9919b13b022acbd | Bin 0 -> 100 bytes .../30f34c45eb7fef683df37d944322633f | Bin 0 -> 100 bytes .../3104ce046559c1c253a800af12c11e64 | Bin 0 -> 100 bytes .../31868a74a62f39bf8e8c2f3d378710c7 | Bin 0 -> 100 bytes .../322c54936eb99d2eee4406c2495ac1f5 | Bin 0 -> 100 bytes .../324b77917a59fd8c923e074f24fe00e5 | Bin 0 -> 100 bytes .../32f60d142583485078042e2210ad12cc | Bin 0 -> 100 bytes .../3399486a02f05b92c673a40871d73091 | Bin 0 -> 100 bytes .../341041db96bd1ad1e7781a5be2fa0091 | Bin 0 -> 100 bytes .../34ff82dc7a0ef493fa1869c893dca9da | Bin 0 -> 100 bytes .../3560f0c435443111efbf141078742f06 | Bin 0 -> 100 bytes .../35c1bd6a211d52bdc6395e2bb660143f | Bin 0 -> 100 bytes .../35d4108dbd8fac5efa936ceae3778e69 | Bin 0 -> 100 bytes .../36319ada12c1c741080f25750d19d96f | Bin 0 -> 100 bytes .../365ae5ec1d81f1a0e2d8e85fc19c7c73 | Bin 0 -> 100 bytes .../3952e9811cc447a49f1f7b36cf046cb4 | Bin 0 -> 100 bytes .../39d6ad670b8f10ada9ba0fe9481d661b | Bin 0 -> 100 bytes .../3b726120e586c42ee5db4859cffd5e61 | Bin 0 -> 100 bytes .../3b8ff83a8a50d3e0e3900805ecb3faba | Bin 0 -> 100 bytes .../3b9218f16c20b24822c1e7c2b21b2dbc | Bin 0 -> 100 bytes .../3bb632bde3434d70741228eda0bdf763 | Bin 0 -> 100 bytes .../3c32e3388a87a84a095d0afbe80823e2 | Bin 0 -> 100 bytes .../4045d29f0b79c1d08649341810340839 | Bin 0 -> 100 bytes .../4194f36392bf1754170d5fe415784bb6 | Bin 0 -> 100 bytes .../41e7ceab99b36b9c6ddfceda67b23d86 | Bin 0 -> 100 bytes .../44e295cb48a46ba798a4deb74c1d51fe | Bin 0 -> 100 bytes .../44fecfba0dc706bae1979dd26541f996 | Bin 0 -> 100 bytes .../4637adc8fcbadc7335a5db1afba82d5b | Bin 0 -> 100 bytes .../46d7e4294b97ab96e98ec04a25c1079d | Bin 0 -> 100 bytes .../474f2efa7ab0b8ebdd5b31d0e04d8936 | Bin 0 -> 100 bytes .../475265cc6b2f15d7876969341f9ecfe5 | Bin 0 -> 100 bytes .../475406c8bb6137367c32491d9b11e8b4 | Bin 0 -> 100 bytes .../4881cccd9d4e554d12b3b4cb562e121f | Bin 0 -> 100 bytes .../4a2fdee53084fd9c9cefaba0b3f2aafa | Bin 0 -> 100 bytes .../4b4d9e68e4fce71f0456346365a32eaa | Bin 0 -> 100 bytes .../4cf826448fa3bd52099306ea9b466de5 | Bin 0 -> 100 bytes .../4d8ef0814c65793be382a2cf0bc877e2 | Bin 0 -> 100 bytes .../4fc63499e023c5028c6a9da7d5480d60 | Bin 0 -> 100 bytes .../4ffef230349985069206288eb02d82b5 | Bin 0 -> 100 bytes .../51cecbf8195bfc6a13e0da953bd48148 | Bin 0 -> 100 bytes .../51eaea4bc081a86a1f3b45cb97d62cd2 | Bin 0 -> 100 bytes .../52cdc5894b84ba73ce12a4e2eccc036b | Bin 0 -> 100 bytes .../535ea9247d222f784cbe0fc03b48253c | Bin 0 -> 100 bytes .../53a2c58e148b94e301ec515a879fa4c0 | Bin 0 -> 100 bytes .../549ba9bf9c35c315878dea93d90b5258 | Bin 0 -> 100 bytes .../557c207c4a8f4aa12d0be3fb37f26c1b | Bin 0 -> 100 bytes .../5581e4f92bbbf541137bb9fd01e40138 | Bin 0 -> 100 bytes .../55d07cf56513f7b6dcf6720762cced16 | Bin 0 -> 100 bytes .../56c3c4879f2bddff9d00ef7e6275a697 | Bin 0 -> 100 bytes .../58b7ac10ff62c14e1de4311b560754b8 | Bin 0 -> 100 bytes .../590bd52c75abd2f0d3639406b0f1c30d | Bin 0 -> 100 bytes .../593c688f858bd03766e90a3e9a2b282a | Bin 0 -> 100 bytes .../599a13187cf3905bd83c51a88e15051b | Bin 0 -> 100 bytes .../5a348ab337dd4e8e7c4e4cea1f353ff7 | Bin 0 -> 100 bytes .../5aed18302d608521438e3a868452d8d8 | Bin 0 -> 100 bytes .../5b424fd21abff51f1e624a85d51b98d8 | Bin 0 -> 100 bytes .../5ba2f545b95750b6bfe1a51fab7fb873 | Bin 0 -> 100 bytes .../5d51a79f68d6250ed5b2f541cad26233 | Bin 0 -> 100 bytes .../5d651b3090eeb753c83660ab85f8f92e | Bin 0 -> 100 bytes .../5da1f95513e0a30f161b44e6a72ccd9e | Bin 0 -> 100 bytes .../5e0b5119963e598a12b2e8d11d826f87 | Bin 0 -> 100 bytes .../5e12e69a160901f3ba1f2aa5d61e6c55 | Bin 0 -> 100 bytes .../5e3ccf08d66b4f01faa3310cd9c2fa7e | Bin 0 -> 75 bytes .../5e650f50f36a1ec55b0481b8cd59cc16 | Bin 0 -> 100 bytes .../5ed3806c4c1423f7fe4b95ff8ba7b051 | Bin 0 -> 100 bytes .../5f9f092c20daaadd6e258cc43af81769 | Bin 0 -> 100 bytes .../5fb994cf3f73a61d50f371985221734c | Bin 0 -> 100 bytes .../603c3b0f06af7b425b5efd8e9e3b745a | Bin 0 -> 100 bytes .../60cfd184618711ba978b7e1b9f31a2b2 | Bin 0 -> 100 bytes .../6161ef45609b99d43b48b6b7ca147cfc | Bin 0 -> 100 bytes .../618643ea4d02452e823ec6df41f52bb0 | Bin 0 -> 100 bytes .../6211c8e9cd4e37476e3ae51a811e6b33 | Bin 0 -> 100 bytes .../62f15f1e29ed09ceeec0a334371c98ea | Bin 0 -> 100 bytes .../64eb52dbd0218e7e9211367cb1a370f0 | Bin 0 -> 100 bytes .../655a2ab36539350da3457188ca1b7936 | Bin 0 -> 100 bytes .../658ef25095bee94c521ccb986c8605a0 | Bin 0 -> 100 bytes .../66284e62f56cd4899ad8d91118241103 | Bin 0 -> 100 bytes .../66943cb90e86f8a416fd87c01c338159 | Bin 0 -> 100 bytes .../66946c8ad5068199b1d26cf3c6775eff | Bin 0 -> 100 bytes .../680932858c7c7bad9b25a0b904b14cea | Bin 0 -> 100 bytes .../681fac0a6daf110c6de16ea27eed86de | Bin 0 -> 100 bytes .../68e7a49a02a4835ef6c55562b07dbee2 | Bin 0 -> 100 bytes .../694f624b9ac56068b2b10be0b73cbe88 | Bin 0 -> 100 bytes .../6a2976642738f63614c8f3bf4707f895 | Bin 0 -> 100 bytes .../6cd96cb30ee9d148980fe470ad234108 | Bin 0 -> 100 bytes .../6f672b111009ff2b0f581d15fe590c40 | Bin 0 -> 100 bytes .../6f6a6c916e873716387a15a5b65b9bdd | Bin 0 -> 100 bytes .../6ffad316904ff85580781e6de604193b | Bin 0 -> 100 bytes .../7104cf420d98e3ad5d4a7ec2774bf6d8 | Bin 0 -> 100 bytes .../72c1be3fb528c9dad754a11c38157cb2 | Bin 0 -> 100 bytes .../7379c7079d5b3f39a728ca4db1efc909 | Bin 0 -> 100 bytes .../73b4f5158c17b7856f27d4223342263b | Bin 0 -> 100 bytes .../73d90008cfe88e6bcbd7d981ef97ce73 | Bin 0 -> 100 bytes .../75460bf321af4f464430c25b892c6401 | Bin 0 -> 100 bytes .../75b9032eb9a907c8bdf10a742869b93b | Bin 0 -> 100 bytes .../75e30eaa64fbc5c30aaafd1f6b5a1ec9 | Bin 0 -> 100 bytes .../7611e8459b1c57c139dd815af9c38a6d | Bin 0 -> 100 bytes .../7620eeef9aa9bb45aa4105100c2aba28 | Bin 0 -> 100 bytes .../774d132d942cc4e1df0a9b65f56d989d | Bin 0 -> 100 bytes .../7b351c93040332dfa14d20943ab1fffa | Bin 0 -> 100 bytes .../7b54bbd31475cdecc2ac6483b3d3d2d8 | Bin 0 -> 100 bytes .../7c0aa187bd2b31ed70f027ba782fe016 | Bin 0 -> 100 bytes .../7c5ea86c5f948df7d1b3a080ed06a534 | Bin 0 -> 100 bytes .../7c7acbc49ba72490e28e859d01efef4a | Bin 0 -> 100 bytes .../7cf9fbc07f681f6f75da84738dfe4855 | Bin 0 -> 100 bytes .../7d04354d3f2607804cc2a300edb151bf | Bin 0 -> 100 bytes .../7e06e982a4bb60d5c2dcca77c6cda329 | Bin 0 -> 100 bytes .../7fec0913063560cd930414cab2393246 | Bin 0 -> 100 bytes .../80261ed5475b925955fd4baddcb851e1 | Bin 0 -> 100 bytes .../8191d002f3140fa7d644547d5d095055 | Bin 0 -> 100 bytes .../81cc7626288f9a804b06b66307b37b3e | Bin 0 -> 100 bytes .../8360be0b64a48671598a410327283aea | Bin 0 -> 100 bytes .../845556a2734c30e0d96b7bdfa0a82d9f | Bin 0 -> 100 bytes .../846667689ca0fd8add512ce55c04fa72 | Bin 0 -> 100 bytes .../8487b52e9db2efa57f688178a32f1280 | Bin 0 -> 100 bytes .../8502fc6e0df4d9fc03abcd552c1bf898 | Bin 0 -> 100 bytes .../86524c3023c21547b5ece1e90b3acfc3 | Bin 0 -> 100 bytes .../8735ce113f7ae5b512f09140a41870d5 | Bin 0 -> 100 bytes .../893d4ff49053c750ae186c4ca8b0e913 | Bin 0 -> 100 bytes .../8975db8d69782ad129a121656c516c32 | Bin 0 -> 100 bytes .../89ae79a7f847f2aed1dec02434721beb | Bin 0 -> 100 bytes .../89ccf44a4bfcbe8d6334014843788840 | Bin 0 -> 100 bytes .../8b756f4b7369e6ebe3f9878cc3f84735 | Bin 0 -> 100 bytes .../8b85aa662e6655fcefdc9d802d6379b4 | Bin 0 -> 100 bytes .../8d01680ee416d58a97dba83e6fd6f876 | Bin 0 -> 100 bytes .../8dc34737beb8c62cf2ee397263f4884e | Bin 0 -> 100 bytes .../8e3397bf2f65f7d28b85af8059742f08 | Bin 0 -> 100 bytes .../8e944ccdcedd5715279e25e60964639b | Bin 0 -> 100 bytes .../8f24ad0909b3832bc1175d87e6d6dd67 | Bin 0 -> 100 bytes .../9022c917e9bb52f7a3f9df245ece4959 | Bin 0 -> 100 bytes .../920f185c31832f3643f275c94b6b6436 | Bin 0 -> 100 bytes .../93cfdcd1af2e31356ba3e4c797c7180e | Bin 0 -> 100 bytes .../9406fe9ae36b2cb3db15fcedf29d8992 | Bin 0 -> 100 bytes .../954589c7959251139379e24a16c9e437 | Bin 0 -> 100 bytes .../97178654b5c0c9ca132ba2720ad4bd0a | Bin 0 -> 100 bytes .../9764607bd0d51e03d21bc4f73d7a3fb0 | Bin 0 -> 75 bytes .../982cc845e05dfd464f333f7d16d55f3a | Bin 0 -> 100 bytes .../984f06e0ef3f2b3c55d9fbbe3cbd4811 | Bin 0 -> 100 bytes .../98e47b81eb2790747fd6a39be77f858e | Bin 0 -> 100 bytes .../990b8182389a471712fd4449c602f1a5 | Bin 0 -> 100 bytes .../9924990b4546e6196feae2e41bcded8c | Bin 0 -> 100 bytes .../9a15c035a8938bbaf7ee32ac1aa45f15 | Bin 0 -> 100 bytes .../9e013599d6b47a15db72409a1629f594 | Bin 0 -> 100 bytes .../9e57e62465a479e679a6adbd4b958157 | Bin 0 -> 100 bytes .../9ea35b83ec748d413674ea8e6ca87ccb | Bin 0 -> 100 bytes .../9fc417b4957fde835b5e7b64b5104ac8 | Bin 0 -> 100 bytes .../a00a363e74e8854d89553aedcabb4c6a | Bin 0 -> 100 bytes .../a07fed5d740a8dd02ef4928198e01133 | Bin 0 -> 100 bytes .../a0bf9254a3236ad8dac9f6675055541d | Bin 0 -> 100 bytes .../a0e8349de3483ae232069dbfc1396c7c | Bin 0 -> 100 bytes .../a101e31a62c14e8ea2cf4c779e1b7d37 | Bin 0 -> 100 bytes .../a22a2e117a8fe7f9a97f845528859ed0 | Bin 0 -> 100 bytes .../a348d839170ede14f17edd94e2f166a0 | Bin 0 -> 100 bytes .../a3d5bcca8210816c93aa4c61352532aa | Bin 0 -> 100 bytes .../a56aa0344508a51bd93a4f3ea8d6c30e | Bin 0 -> 100 bytes .../a57b6e892f4830587aea495552784ed9 | Bin 0 -> 100 bytes .../a5a7c21278a12837bd88b87302fe68a7 | Bin 0 -> 100 bytes .../a5e8f792a5f0fdcdf5f666a1d14a23bc | Bin 0 -> 100 bytes .../a803d35caa6bdd7e02955a7bd7319d28 | Bin 0 -> 100 bytes .../a8417dbcc14d9a8cf376b5d6ac2be10a | Bin 0 -> 100 bytes .../a86aa5afcb0a6f305aa8502781d96fcb | Bin 0 -> 100 bytes .../a97a1ab003cda1e66e80df2a97f4e4c8 | Bin 0 -> 100 bytes .../a99e725d1a5105e4330dbb2ab295b044 | Bin 0 -> 100 bytes .../a9dc030de1ace0b44370bee19e7acc70 | Bin 0 -> 100 bytes .../aa774380b6cfedcacd5229d8d55de6ea | Bin 0 -> 100 bytes .../aacf73f04458fb0cac639324f8d23ef9 | Bin 0 -> 100 bytes .../ad1354ac688b6e7cb3d324495b7f5eb2 | Bin 0 -> 100 bytes .../ad16b66739c9bbfbf32c3130f98dd0a7 | Bin 0 -> 100 bytes .../ad99f6117878482ab7106b4d974cfe90 | Bin 0 -> 100 bytes .../add69d43e0c9c22cb6ae3f24658b21cd | Bin 0 -> 100 bytes .../af23a5dd9dbbe86d6cae6ca8a95a94c9 | Bin 0 -> 100 bytes .../afd84e1511d5e9e36607751cf7b7ac96 | Bin 0 -> 100 bytes .../afe1ec12fb39790665014610669101bb | Bin 0 -> 100 bytes .../b05afd0b1ba046e6e56dfb91cade5852 | Bin 0 -> 100 bytes .../b1247ef5153c8cb20af6eaa532c4e53f | Bin 0 -> 100 bytes .../b34f7207987081570979b3c3bbc6ae2f | Bin 0 -> 100 bytes .../b593f82fb66d006980e8a43a0417a1ef | Bin 0 -> 100 bytes .../b5e3b8a6b694614c74fa55892ec7831b | Bin 0 -> 100 bytes .../b61f47d48cfde46dc72a64c6ff49259b | Bin 0 -> 100 bytes .../b775978d6a3936c4100e344e8378371e | Bin 0 -> 100 bytes .../b77f6ebf9bf330d992f7fcc42ad3eb80 | Bin 0 -> 100 bytes .../b79918f57d6585431b357364a047b2fb | Bin 0 -> 100 bytes .../b7fa05ef1c055c8721a0844fa2f9c517 | Bin 0 -> 100 bytes .../b807e74d42b1d517c52e3a34da1fc725 | Bin 0 -> 100 bytes .../b880a4c620be6a758aa72e4fac35b79b | Bin 0 -> 100 bytes .../b90531b031af291fc09f3b47f35d1871 | Bin 0 -> 100 bytes .../b9400bb738c7fb91a7635749b053a137 | Bin 0 -> 75 bytes .../ba501d97a8ebd9381fa271b3ab0d7697 | Bin 0 -> 100 bytes .../bb5f6cf3892f52c07e415dc25f8f101b | Bin 0 -> 100 bytes .../bb8d2676fc45b286c0960ab707864605 | Bin 0 -> 100 bytes .../bc7f8eea85fde0dab7441656a0720464 | Bin 0 -> 100 bytes .../bd172c6f4b31759dec337e178368e06c | Bin 0 -> 100 bytes .../bd3c4e53cec3fc00e19f9aa86d41cd67 | Bin 0 -> 100 bytes .../bf5fe566688bf3064500b3385ebbecc2 | Bin 0 -> 100 bytes .../c0cb3c32fbabf136c0e37c5c72fc0d72 | Bin 0 -> 100 bytes .../c1081ae4a28b263b856b460f1e3aad0b | Bin 0 -> 100 bytes .../c1414d247b0547ff543b9cc03c9b90d8 | Bin 0 -> 100 bytes .../c310c4fd7a943a6b153fc77027b5f8b0 | Bin 0 -> 100 bytes .../c31e413c0847de4691012ef81e31acae | Bin 0 -> 100 bytes .../c321ceed93116c26ec88e3254fa3cd97 | Bin 0 -> 100 bytes .../c4e25dd28c5cd961ccea2bd778bffd4e | Bin 0 -> 100 bytes .../c629ee7f10f944228ad6f78ae03738ea | Bin 0 -> 100 bytes .../c6506c668b96a1eb79cde01880bc8425 | Bin 0 -> 75 bytes .../c6997ce4a7d458b00b06210ae7446850 | Bin 0 -> 100 bytes .../c7f207647209e38730bbe64c9249abe5 | Bin 0 -> 100 bytes .../c88c19634f04d1be57cf5b79d52202c7 | Bin 0 -> 100 bytes .../c95a6b7b5656c9a6b3194a242f8231a7 | Bin 0 -> 100 bytes .../c9a0e34374ced611ddc8dbb936fd2c2b | Bin 0 -> 100 bytes .../ca8e5e6d4bad4979a94c477c5b411acd | Bin 0 -> 100 bytes .../caa93220695c6291992e702873ef8c6b | Bin 0 -> 100 bytes .../cafdd19d230fec60d9022e9e9eb67ff2 | Bin 0 -> 100 bytes .../cb03c2a66a4bf7139c9205ce5b0feb5a | Bin 0 -> 100 bytes .../cb5460332e84b66b455014c9b77bb6bc | Bin 0 -> 100 bytes .../cd07e684036026dc7d067803bde21393 | Bin 0 -> 100 bytes .../cd6b9d32946111528aaa6fefcba32cc4 | Bin 0 -> 100 bytes .../cd83f976398476e1f6633a24c82cca00 | Bin 0 -> 100 bytes .../ceaa00c54604860ca376a77131786d85 | Bin 0 -> 100 bytes .../cf835731cebab59413319af12a738e94 | Bin 0 -> 100 bytes .../cfa68eb972fa756c8697a8fcbcfcbbea | Bin 0 -> 100 bytes .../d0cad7b45a22150d0a5a8512bb72164b | Bin 0 -> 100 bytes .../d0d6526dc3928c1608dafa53c1fe9c9e | Bin 0 -> 100 bytes .../d0f85bd43b91c8a4ed49ef3267c4fa4c | Bin 0 -> 100 bytes .../d0fc857d940dbf06c737897ad95c2815 | Bin 0 -> 100 bytes .../d11382c4f410be6ea22b86a0420f0379 | Bin 0 -> 100 bytes .../d1b129979af646f1903f93fda426262a | Bin 0 -> 100 bytes .../d1d0d1e353b091e55d437fbba7768c0b | Bin 0 -> 100 bytes .../d1f6a6b3ff606b79ed83489af16c752c | Bin 0 -> 100 bytes .../d2d35bf9c724a0feec1b446af094e02a | Bin 0 -> 100 bytes .../d31b32fe78e9e7408d3b1f165ee3a823 | Bin 0 -> 100 bytes .../d3bc3c2a65cba96928e1ffa8889a3bf9 | Bin 0 -> 100 bytes .../d5998a88757db1c51a28bf64c368ad99 | Bin 0 -> 100 bytes .../d700947294c64219224e5510b68fce24 | Bin 0 -> 100 bytes .../d86641dc0fc1950fc5192156bcdd294d | Bin 0 -> 100 bytes .../da1192e27218f04c4df981b45eba12f0 | Bin 0 -> 100 bytes .../da5ffd2e4afdd8b1586525f65b5382f6 | Bin 0 -> 100 bytes .../da6d3b5ed9ccd8a18515221c7c29f2e1 | Bin 0 -> 100 bytes .../daeb7defe566351156bec27a5627566a | Bin 0 -> 100 bytes .../db5c89e54de75a14db842a65aa1a87b2 | Bin 0 -> 100 bytes .../db7303e646ac2d62cb8bbcaf68cca828 | Bin 0 -> 75 bytes .../db8deb947463b3320b1399cb9f87bfba | Bin 0 -> 100 bytes .../dc1dff4e65c17747a9f2043231a5b984 | Bin 0 -> 100 bytes .../dc296930884123b35a5c53bbcb1ad8fc | Bin 0 -> 100 bytes .../df0430679640015518d904b92776f724 | Bin 0 -> 100 bytes .../df11adc24639177bb9c0839d84daa593 | Bin 0 -> 100 bytes .../df924cf66e321a1348121a1cabcd29b5 | Bin 0 -> 100 bytes .../dfc2c46d59be654a2e332461cf11447e | Bin 0 -> 100 bytes .../e256a6fc2997892bd945dfa65d6e3d4a | Bin 0 -> 100 bytes .../e2b5a66739332a746d43f465ae9889ef | Bin 0 -> 100 bytes .../e30690e9f3419164d1ca1ed795944854 | Bin 0 -> 100 bytes .../e3b35579ddaa8fdca3bfdd7589f77f88 | Bin 0 -> 100 bytes .../e45611843e2ddaf7d897be760a2455c7 | Bin 0 -> 100 bytes .../e4cdb37fc6127fd3b2aa01d53d00f688 | Bin 0 -> 100 bytes .../e58c12d06f9064b0c53e828208001d5a | Bin 0 -> 100 bytes .../e5a6944a3ff0ebf60b4670fe40a7f593 | Bin 0 -> 100 bytes .../e74297c0a86ae1c128618618a8b50bc0 | Bin 0 -> 100 bytes .../e778dec5a8adbd18365d124ff668e7f1 | Bin 0 -> 100 bytes .../e88189732217df5915a5b1c3a8fb8379 | Bin 0 -> 100 bytes .../e8e138b0058292a5a274d344df3d1195 | Bin 0 -> 100 bytes .../e923b6aa9df3b01e5182b1a003bf35ec | Bin 0 -> 100 bytes .../e974e3a27a6325862014cc322254eae9 | Bin 0 -> 100 bytes .../e9fa9601ed3049fc587f4fe7a79b714d | Bin 0 -> 100 bytes .../ea4feb9cbd4982377f8952f693c508d7 | Bin 0 -> 100 bytes .../eb719038ef362e4fde8b7b3224d75098 | Bin 0 -> 100 bytes .../ee19c744649264c1537173fba3a11df4 | Bin 0 -> 100 bytes .../ee87118eb53b5c941f2134ee0cd61508 | Bin 0 -> 100 bytes .../ef064997d68d665a6ef04443d43eaae3 | Bin 0 -> 100 bytes .../efd4c0fb34e78ea7cd825af8f89b0fbc | Bin 0 -> 100 bytes .../f0dd61f72859cdbe4e4f9a417e659817 | Bin 0 -> 100 bytes .../f33166d7a9275a433902c984d9ae6b4a | Bin 0 -> 100 bytes .../f435dcda99208cbdac00b580b6e40b93 | Bin 0 -> 100 bytes .../f4745a9cf85051fd561cb8325c5e4314 | Bin 0 -> 100 bytes .../f49747bd1cb88b14c946e5a167412850 | Bin 0 -> 100 bytes .../f63cf29bae980013270fbf4f1f9ec772 | Bin 0 -> 100 bytes .../f700cc8bd7d384a318b16419cc59820b | Bin 0 -> 100 bytes .../f7dd1d01df355bed4bd0c3199557e610 | Bin 0 -> 100 bytes .../f84876bdeaa1e73ba1863dae6aac850e | Bin 0 -> 100 bytes .../f9385592b78b595cd41625cc39ab1c27 | Bin 0 -> 100 bytes .../f9a8c0ad84ed84cfeecd4ace493df951 | Bin 0 -> 100 bytes .../f9b86358cb779b1dd907dfa8f1849b55 | Bin 0 -> 100 bytes .../fa1ff5df9646c63b4c384ad7647eca9b | Bin 0 -> 100 bytes .../fc6babfe600fb622a3bb209a8fc10e30 | Bin 0 -> 100 bytes decrypt-the-flag/3 | 33 +++ decrypt-the-flag/attack.py | 34 +++ decrypt-the-flag/chall.py | 34 +++ fool-the-oracle-v2/attack.py | 108 +++++++++ fool-the-oracle-v2/chall.py | 41 ++++ fool-the-oracle-v3/attack.py | 81 +++++++ fool-the-oracle-v3/chall.py | 42 ++++ fool-the-oracle/attack.py | 85 +++++++ fool-the-oracle/chall.py | 43 ++++ fool-the-oracle/lecture.py | 67 ++++++ force-decryption/attack.py | 68 ++++++ force-decryption/chall.py | 77 +++++++ force-decryption/lecture.py | 3 + forge-a-cookie/attack.py | 58 +++++ forge-a-cookie/chall.py | 80 +++++++ forge-another-cookie/attack.py | 40 ++++ forge-another-cookie/chall.py | 94 ++++++++ guess-mode-double-shot/attack.py | 47 ++++ guess-mode-double-shot/chall.py | 61 +++++ guess-mode-one-shot/ECBvsCBCClient.py | 46 ++++ guess-mode-one-shot/chall.py | 61 +++++ guess-mode-one-shot/main.py | 68 ++++++ long-secret-message/attack.py | 211 ++++++++++++++++++ long-secret-message/chall-original.py | 19 ++ long-secret-message/chall.py | 21 ++ long-secret-message/hacker-manifesto.enc | 8 + long-secret-message/original.enc | 8 + openssl-asym/convert.py | 12 + openssl-asym/create_flag.py | 13 ++ openssl-asym/prime | Bin 0 -> 16696 bytes openssl-asym/prime.c | 85 +++++++ openssl-asym/python | 1 + openssl-dgst/HMAC_computation_EVP.c | 79 +++++++ openssl-dgst/file.txt | 3 + openssl-dgst/hash3 | Bin 0 -> 16712 bytes openssl-dgst/hash3.c | 53 +++++ openssl-dgst/hex | Bin 0 -> 16768 bytes openssl-dgst/keyedigest.c | 55 +++++ openssl-enc/COLORFGBG=15;0 | 2 + openssl-enc/aes128.txt | 0 openssl-enc/code.c | 118 ++++++++++ openssl-enc/enc | Bin 0 -> 16512 bytes openssl-enc/enc.exe | Bin 0 -> 17040 bytes openssl-enc/enc1.c | 44 ++++ openssl-enc/file.enc | 1 + openssl-enc/file.txt | 1 + openssl-enc/guess.exe | Bin 0 -> 16968 bytes openssl-enc/guess.py | 50 +++++ openssl-enc/guessalgo.c | 121 ++++++++++ openssl-enc/guessalgo.enc | 1 + openssl-enc/output.txt | 0 openssl-hmac/HMAC_computation_EVP.c | 81 +++++++ openssl-hmac/file.txt | 3 + openssl-hmac/file2.txt | 7 + openssl-hmac/hex | Bin 0 -> 16960 bytes openssl-hmac/hmac | Bin 0 -> 16944 bytes openssl-hmac/hmac.c | 83 +++++++ openssl-rand/format.py | 6 + openssl-rand/openssl-rand.c | 21 ++ 426 files changed, 2756 insertions(+) create mode 100644 back-to-the-future/2 create mode 100644 back-to-the-future/__pycache__/chall.cpython-313.pyc create mode 100644 back-to-the-future/attack.py create mode 100644 back-to-the-future/chall.py create mode 100644 back-to-the-future/des.py create mode 100644 back-to-the-future/flask_session/0024f4d0c2b3d981466de18eb8f0a755 create mode 100644 back-to-the-future/flask_session/013e1aa0bd32b92f105abddbcb2e4dfd create mode 100644 back-to-the-future/flask_session/016f2deaa7b087afc8784da8397a22a5 create mode 100644 back-to-the-future/flask_session/0339ca8760519fa43df56ddec27a24e7 create mode 100644 back-to-the-future/flask_session/037f590478d87f55cedf7b1ab1d53a82 create mode 100644 back-to-the-future/flask_session/03c414397bdde3743856111af41ff1bf create mode 100644 back-to-the-future/flask_session/04433ec6a092234083ccb75f70be7844 create mode 100644 back-to-the-future/flask_session/050e985a050d81dfa77f0827ff555076 create mode 100644 back-to-the-future/flask_session/0571127e1b066fcd0ab93df9db3c231e create mode 100644 back-to-the-future/flask_session/0753e7809f4e8bde6701b4d27193c28b create mode 100644 back-to-the-future/flask_session/07b9966fa556e07bb7dbf9d7a97c5d6a create mode 100644 back-to-the-future/flask_session/085e25cb55018865bad411eac1273ec2 create mode 100644 back-to-the-future/flask_session/094a242c07093b9b0a8bf37702d4d6ed create mode 100644 back-to-the-future/flask_session/09e32f0db5c88c55bc994ecd2d6cbcc6 create mode 100644 back-to-the-future/flask_session/09eb19248af327923541b8fcae0c34f9 create mode 100644 back-to-the-future/flask_session/0a52c4727ae4311cd3a51114e42472c6 create mode 100644 back-to-the-future/flask_session/0a6d00dc979a6696c7dc339e4400a0c9 create mode 100644 back-to-the-future/flask_session/0b8def7c22ef61cb5591a9c080f8c117 create mode 100644 back-to-the-future/flask_session/0bbec9d663098e92dc7d014a4b7f032d create mode 100644 back-to-the-future/flask_session/0c1f1c2450a35deebee44be732d558d8 create mode 100644 back-to-the-future/flask_session/0c23ca3d1f4169ce2147cf8a3180d454 create mode 100644 back-to-the-future/flask_session/0caac73c224f83af1261050ab6ca5bc6 create mode 100644 back-to-the-future/flask_session/0d2a8e6c32cee51c76eef735eea453d4 create mode 100644 back-to-the-future/flask_session/0eb3cd9a68a2d1328664c716c96074ce create mode 100644 back-to-the-future/flask_session/0eb7bd4f6d34532740aad04e035261f4 create mode 100644 back-to-the-future/flask_session/0f4b7f5961fc0914870a1d877d5af208 create mode 100644 back-to-the-future/flask_session/102b39f6be00c1781f576ab0acfef156 create mode 100644 back-to-the-future/flask_session/104cca7fdf9eb7752f4862d38e6eb718 create mode 100644 back-to-the-future/flask_session/10fe679fe6f5a8d3c40032c9ffae4f6f create mode 100644 back-to-the-future/flask_session/11955af46d6389a50ae2dd9582509472 create mode 100644 back-to-the-future/flask_session/11c5a55a41c63c736331c462cf5c3e21 create mode 100644 back-to-the-future/flask_session/11ea3092bffa93df79a32e656a8a0586 create mode 100644 back-to-the-future/flask_session/124926dffa9468ff2a63e8ebbd70d4fc create mode 100644 back-to-the-future/flask_session/12fcbc367eb9e88c32e55632361cc26b create mode 100644 back-to-the-future/flask_session/153b504567a8ccb59e454c265f46b8cd create mode 100644 back-to-the-future/flask_session/15626afe7c5a68139b2d0c823b10b225 create mode 100644 back-to-the-future/flask_session/156991eb1d1094c1966cbe78ecf850e8 create mode 100644 back-to-the-future/flask_session/16d0908062af6846734edfa5f045a7eb create mode 100644 back-to-the-future/flask_session/16fd8e2a8030276090ee1af051f12820 create mode 100644 back-to-the-future/flask_session/1758b09b9954119108661b47afd46133 create mode 100644 back-to-the-future/flask_session/175c311f06644d8abf68bbbe58f2419c create mode 100644 back-to-the-future/flask_session/1800c2925b752b572f86ed7ee84e6447 create mode 100644 back-to-the-future/flask_session/1877a6d8ef9c4bef7b8b20352efd6315 create mode 100644 back-to-the-future/flask_session/18c96d9bf2e5d9a806260b2073cc02ee create mode 100644 back-to-the-future/flask_session/18e75151796c652d44534b00d0212909 create mode 100644 back-to-the-future/flask_session/193c50b53639cb1c03e36dfc740123ac create mode 100644 back-to-the-future/flask_session/1b2ca741d7a39db18a40eb32c2d11b34 create mode 100644 back-to-the-future/flask_session/1e68c4649db3fe5e9f137d33b1750a88 create mode 100644 back-to-the-future/flask_session/1f658eed99e5d7de9176b624a3adc574 create mode 100644 back-to-the-future/flask_session/1f68d6d0f4c582b441f14dcde94228c5 create mode 100644 back-to-the-future/flask_session/2029240f6d1128be89ddc32729463129 create mode 100644 back-to-the-future/flask_session/203905a31c6f852e9d45c346da0c8e2e create mode 100644 back-to-the-future/flask_session/208455b2dfc729e62e1d212617c5c103 create mode 100644 back-to-the-future/flask_session/20874b46266e4b74b7ab1b03f63dcf73 create mode 100644 back-to-the-future/flask_session/20989fe5ff4ecc9d2220dd6a0d753437 create mode 100644 back-to-the-future/flask_session/210b1035151e9760b507a7c1edb1cb67 create mode 100644 back-to-the-future/flask_session/220fce4c0ec426d5753fbaf01bfb9a8d create mode 100644 back-to-the-future/flask_session/2216ab4b98005fa61b3b5a023e33106d create mode 100644 back-to-the-future/flask_session/224eb7214627856502497725cace3e24 create mode 100644 back-to-the-future/flask_session/22758786fc4b59ca7a0765ffdde20d3d create mode 100644 back-to-the-future/flask_session/22aab843b3edce5f80919d3827c4a214 create mode 100644 back-to-the-future/flask_session/23fac18da96856adfb0298e2ac196058 create mode 100644 back-to-the-future/flask_session/2599a275682361c46cbf46b22160097b create mode 100644 back-to-the-future/flask_session/26155c8b1c13dd23400c7885241f3b83 create mode 100644 back-to-the-future/flask_session/2690b7f4cdbc7e9c649c07e63cd8f38d create mode 100644 back-to-the-future/flask_session/26f220fa930f333872b125bc80cda0b5 create mode 100644 back-to-the-future/flask_session/272e7e2567476c69996585bf3a75e852 create mode 100644 back-to-the-future/flask_session/27e405db11e63c38bcb22f24fe2cab5b create mode 100644 back-to-the-future/flask_session/2940ea81618bc3b9313c8a0818f9f9e8 create mode 100644 back-to-the-future/flask_session/2a5f27fae53f8a864398fcc856e04e90 create mode 100644 back-to-the-future/flask_session/2aeb371d8adeb94ded786e5bf923a3ef create mode 100644 back-to-the-future/flask_session/2bac0005df40528459d260e16fe6fb80 create mode 100644 back-to-the-future/flask_session/2c2b79e3fa4a76558fec5886a8bcf220 create mode 100644 back-to-the-future/flask_session/2c386f464fb69ba5b9535527e53a1136 create mode 100644 back-to-the-future/flask_session/2d46a4d5e411f544f3d308f41cc75a05 create mode 100644 back-to-the-future/flask_session/2d8c6c66ee7c4a9f51f9b344f954d0b3 create mode 100644 back-to-the-future/flask_session/2f320eaf6c96a4bc8f5852b93ae1ff3b create mode 100644 back-to-the-future/flask_session/2f85fc72a4cb0c8616ef7fa12ce8d540 create mode 100644 back-to-the-future/flask_session/2fd1a29c36876ebdafc41f35f5656a9e create mode 100644 back-to-the-future/flask_session/300980f59c705be97d9ab183917839d5 create mode 100644 back-to-the-future/flask_session/30a4aea5a1b256f0c0910058991850a2 create mode 100644 back-to-the-future/flask_session/30f0532e5c0e8ee9d9919b13b022acbd create mode 100644 back-to-the-future/flask_session/30f34c45eb7fef683df37d944322633f create mode 100644 back-to-the-future/flask_session/3104ce046559c1c253a800af12c11e64 create mode 100644 back-to-the-future/flask_session/31868a74a62f39bf8e8c2f3d378710c7 create mode 100644 back-to-the-future/flask_session/322c54936eb99d2eee4406c2495ac1f5 create mode 100644 back-to-the-future/flask_session/324b77917a59fd8c923e074f24fe00e5 create mode 100644 back-to-the-future/flask_session/32f60d142583485078042e2210ad12cc create mode 100644 back-to-the-future/flask_session/3399486a02f05b92c673a40871d73091 create mode 100644 back-to-the-future/flask_session/341041db96bd1ad1e7781a5be2fa0091 create mode 100644 back-to-the-future/flask_session/34ff82dc7a0ef493fa1869c893dca9da create mode 100644 back-to-the-future/flask_session/3560f0c435443111efbf141078742f06 create mode 100644 back-to-the-future/flask_session/35c1bd6a211d52bdc6395e2bb660143f create mode 100644 back-to-the-future/flask_session/35d4108dbd8fac5efa936ceae3778e69 create mode 100644 back-to-the-future/flask_session/36319ada12c1c741080f25750d19d96f create mode 100644 back-to-the-future/flask_session/365ae5ec1d81f1a0e2d8e85fc19c7c73 create mode 100644 back-to-the-future/flask_session/3952e9811cc447a49f1f7b36cf046cb4 create mode 100644 back-to-the-future/flask_session/39d6ad670b8f10ada9ba0fe9481d661b create mode 100644 back-to-the-future/flask_session/3b726120e586c42ee5db4859cffd5e61 create mode 100644 back-to-the-future/flask_session/3b8ff83a8a50d3e0e3900805ecb3faba create mode 100644 back-to-the-future/flask_session/3b9218f16c20b24822c1e7c2b21b2dbc create mode 100644 back-to-the-future/flask_session/3bb632bde3434d70741228eda0bdf763 create mode 100644 back-to-the-future/flask_session/3c32e3388a87a84a095d0afbe80823e2 create mode 100644 back-to-the-future/flask_session/4045d29f0b79c1d08649341810340839 create mode 100644 back-to-the-future/flask_session/4194f36392bf1754170d5fe415784bb6 create mode 100644 back-to-the-future/flask_session/41e7ceab99b36b9c6ddfceda67b23d86 create mode 100644 back-to-the-future/flask_session/44e295cb48a46ba798a4deb74c1d51fe create mode 100644 back-to-the-future/flask_session/44fecfba0dc706bae1979dd26541f996 create mode 100644 back-to-the-future/flask_session/4637adc8fcbadc7335a5db1afba82d5b create mode 100644 back-to-the-future/flask_session/46d7e4294b97ab96e98ec04a25c1079d create mode 100644 back-to-the-future/flask_session/474f2efa7ab0b8ebdd5b31d0e04d8936 create mode 100644 back-to-the-future/flask_session/475265cc6b2f15d7876969341f9ecfe5 create mode 100644 back-to-the-future/flask_session/475406c8bb6137367c32491d9b11e8b4 create mode 100644 back-to-the-future/flask_session/4881cccd9d4e554d12b3b4cb562e121f create mode 100644 back-to-the-future/flask_session/4a2fdee53084fd9c9cefaba0b3f2aafa create mode 100644 back-to-the-future/flask_session/4b4d9e68e4fce71f0456346365a32eaa create mode 100644 back-to-the-future/flask_session/4cf826448fa3bd52099306ea9b466de5 create mode 100644 back-to-the-future/flask_session/4d8ef0814c65793be382a2cf0bc877e2 create mode 100644 back-to-the-future/flask_session/4fc63499e023c5028c6a9da7d5480d60 create mode 100644 back-to-the-future/flask_session/4ffef230349985069206288eb02d82b5 create mode 100644 back-to-the-future/flask_session/51cecbf8195bfc6a13e0da953bd48148 create mode 100644 back-to-the-future/flask_session/51eaea4bc081a86a1f3b45cb97d62cd2 create mode 100644 back-to-the-future/flask_session/52cdc5894b84ba73ce12a4e2eccc036b create mode 100644 back-to-the-future/flask_session/535ea9247d222f784cbe0fc03b48253c create mode 100644 back-to-the-future/flask_session/53a2c58e148b94e301ec515a879fa4c0 create mode 100644 back-to-the-future/flask_session/549ba9bf9c35c315878dea93d90b5258 create mode 100644 back-to-the-future/flask_session/557c207c4a8f4aa12d0be3fb37f26c1b create mode 100644 back-to-the-future/flask_session/5581e4f92bbbf541137bb9fd01e40138 create mode 100644 back-to-the-future/flask_session/55d07cf56513f7b6dcf6720762cced16 create mode 100644 back-to-the-future/flask_session/56c3c4879f2bddff9d00ef7e6275a697 create mode 100644 back-to-the-future/flask_session/58b7ac10ff62c14e1de4311b560754b8 create mode 100644 back-to-the-future/flask_session/590bd52c75abd2f0d3639406b0f1c30d create mode 100644 back-to-the-future/flask_session/593c688f858bd03766e90a3e9a2b282a create mode 100644 back-to-the-future/flask_session/599a13187cf3905bd83c51a88e15051b create mode 100644 back-to-the-future/flask_session/5a348ab337dd4e8e7c4e4cea1f353ff7 create mode 100644 back-to-the-future/flask_session/5aed18302d608521438e3a868452d8d8 create mode 100644 back-to-the-future/flask_session/5b424fd21abff51f1e624a85d51b98d8 create mode 100644 back-to-the-future/flask_session/5ba2f545b95750b6bfe1a51fab7fb873 create mode 100644 back-to-the-future/flask_session/5d51a79f68d6250ed5b2f541cad26233 create mode 100644 back-to-the-future/flask_session/5d651b3090eeb753c83660ab85f8f92e create mode 100644 back-to-the-future/flask_session/5da1f95513e0a30f161b44e6a72ccd9e create mode 100644 back-to-the-future/flask_session/5e0b5119963e598a12b2e8d11d826f87 create mode 100644 back-to-the-future/flask_session/5e12e69a160901f3ba1f2aa5d61e6c55 create mode 100644 back-to-the-future/flask_session/5e3ccf08d66b4f01faa3310cd9c2fa7e create mode 100644 back-to-the-future/flask_session/5e650f50f36a1ec55b0481b8cd59cc16 create mode 100644 back-to-the-future/flask_session/5ed3806c4c1423f7fe4b95ff8ba7b051 create mode 100644 back-to-the-future/flask_session/5f9f092c20daaadd6e258cc43af81769 create mode 100644 back-to-the-future/flask_session/5fb994cf3f73a61d50f371985221734c create mode 100644 back-to-the-future/flask_session/603c3b0f06af7b425b5efd8e9e3b745a create mode 100644 back-to-the-future/flask_session/60cfd184618711ba978b7e1b9f31a2b2 create mode 100644 back-to-the-future/flask_session/6161ef45609b99d43b48b6b7ca147cfc create mode 100644 back-to-the-future/flask_session/618643ea4d02452e823ec6df41f52bb0 create mode 100644 back-to-the-future/flask_session/6211c8e9cd4e37476e3ae51a811e6b33 create mode 100644 back-to-the-future/flask_session/62f15f1e29ed09ceeec0a334371c98ea create mode 100644 back-to-the-future/flask_session/64eb52dbd0218e7e9211367cb1a370f0 create mode 100644 back-to-the-future/flask_session/655a2ab36539350da3457188ca1b7936 create mode 100644 back-to-the-future/flask_session/658ef25095bee94c521ccb986c8605a0 create mode 100644 back-to-the-future/flask_session/66284e62f56cd4899ad8d91118241103 create mode 100644 back-to-the-future/flask_session/66943cb90e86f8a416fd87c01c338159 create mode 100644 back-to-the-future/flask_session/66946c8ad5068199b1d26cf3c6775eff create mode 100644 back-to-the-future/flask_session/680932858c7c7bad9b25a0b904b14cea create mode 100644 back-to-the-future/flask_session/681fac0a6daf110c6de16ea27eed86de create mode 100644 back-to-the-future/flask_session/68e7a49a02a4835ef6c55562b07dbee2 create mode 100644 back-to-the-future/flask_session/694f624b9ac56068b2b10be0b73cbe88 create mode 100644 back-to-the-future/flask_session/6a2976642738f63614c8f3bf4707f895 create mode 100644 back-to-the-future/flask_session/6cd96cb30ee9d148980fe470ad234108 create mode 100644 back-to-the-future/flask_session/6f672b111009ff2b0f581d15fe590c40 create mode 100644 back-to-the-future/flask_session/6f6a6c916e873716387a15a5b65b9bdd create mode 100644 back-to-the-future/flask_session/6ffad316904ff85580781e6de604193b create mode 100644 back-to-the-future/flask_session/7104cf420d98e3ad5d4a7ec2774bf6d8 create mode 100644 back-to-the-future/flask_session/72c1be3fb528c9dad754a11c38157cb2 create mode 100644 back-to-the-future/flask_session/7379c7079d5b3f39a728ca4db1efc909 create mode 100644 back-to-the-future/flask_session/73b4f5158c17b7856f27d4223342263b create mode 100644 back-to-the-future/flask_session/73d90008cfe88e6bcbd7d981ef97ce73 create mode 100644 back-to-the-future/flask_session/75460bf321af4f464430c25b892c6401 create mode 100644 back-to-the-future/flask_session/75b9032eb9a907c8bdf10a742869b93b create mode 100644 back-to-the-future/flask_session/75e30eaa64fbc5c30aaafd1f6b5a1ec9 create mode 100644 back-to-the-future/flask_session/7611e8459b1c57c139dd815af9c38a6d create mode 100644 back-to-the-future/flask_session/7620eeef9aa9bb45aa4105100c2aba28 create mode 100644 back-to-the-future/flask_session/774d132d942cc4e1df0a9b65f56d989d create mode 100644 back-to-the-future/flask_session/7b351c93040332dfa14d20943ab1fffa create mode 100644 back-to-the-future/flask_session/7b54bbd31475cdecc2ac6483b3d3d2d8 create mode 100644 back-to-the-future/flask_session/7c0aa187bd2b31ed70f027ba782fe016 create mode 100644 back-to-the-future/flask_session/7c5ea86c5f948df7d1b3a080ed06a534 create mode 100644 back-to-the-future/flask_session/7c7acbc49ba72490e28e859d01efef4a create mode 100644 back-to-the-future/flask_session/7cf9fbc07f681f6f75da84738dfe4855 create mode 100644 back-to-the-future/flask_session/7d04354d3f2607804cc2a300edb151bf create mode 100644 back-to-the-future/flask_session/7e06e982a4bb60d5c2dcca77c6cda329 create mode 100644 back-to-the-future/flask_session/7fec0913063560cd930414cab2393246 create mode 100644 back-to-the-future/flask_session/80261ed5475b925955fd4baddcb851e1 create mode 100644 back-to-the-future/flask_session/8191d002f3140fa7d644547d5d095055 create mode 100644 back-to-the-future/flask_session/81cc7626288f9a804b06b66307b37b3e create mode 100644 back-to-the-future/flask_session/8360be0b64a48671598a410327283aea create mode 100644 back-to-the-future/flask_session/845556a2734c30e0d96b7bdfa0a82d9f create mode 100644 back-to-the-future/flask_session/846667689ca0fd8add512ce55c04fa72 create mode 100644 back-to-the-future/flask_session/8487b52e9db2efa57f688178a32f1280 create mode 100644 back-to-the-future/flask_session/8502fc6e0df4d9fc03abcd552c1bf898 create mode 100644 back-to-the-future/flask_session/86524c3023c21547b5ece1e90b3acfc3 create mode 100644 back-to-the-future/flask_session/8735ce113f7ae5b512f09140a41870d5 create mode 100644 back-to-the-future/flask_session/893d4ff49053c750ae186c4ca8b0e913 create mode 100644 back-to-the-future/flask_session/8975db8d69782ad129a121656c516c32 create mode 100644 back-to-the-future/flask_session/89ae79a7f847f2aed1dec02434721beb create mode 100644 back-to-the-future/flask_session/89ccf44a4bfcbe8d6334014843788840 create mode 100644 back-to-the-future/flask_session/8b756f4b7369e6ebe3f9878cc3f84735 create mode 100644 back-to-the-future/flask_session/8b85aa662e6655fcefdc9d802d6379b4 create mode 100644 back-to-the-future/flask_session/8d01680ee416d58a97dba83e6fd6f876 create mode 100644 back-to-the-future/flask_session/8dc34737beb8c62cf2ee397263f4884e create mode 100644 back-to-the-future/flask_session/8e3397bf2f65f7d28b85af8059742f08 create mode 100644 back-to-the-future/flask_session/8e944ccdcedd5715279e25e60964639b create mode 100644 back-to-the-future/flask_session/8f24ad0909b3832bc1175d87e6d6dd67 create mode 100644 back-to-the-future/flask_session/9022c917e9bb52f7a3f9df245ece4959 create mode 100644 back-to-the-future/flask_session/920f185c31832f3643f275c94b6b6436 create mode 100644 back-to-the-future/flask_session/93cfdcd1af2e31356ba3e4c797c7180e create mode 100644 back-to-the-future/flask_session/9406fe9ae36b2cb3db15fcedf29d8992 create mode 100644 back-to-the-future/flask_session/954589c7959251139379e24a16c9e437 create mode 100644 back-to-the-future/flask_session/97178654b5c0c9ca132ba2720ad4bd0a create mode 100644 back-to-the-future/flask_session/9764607bd0d51e03d21bc4f73d7a3fb0 create mode 100644 back-to-the-future/flask_session/982cc845e05dfd464f333f7d16d55f3a create mode 100644 back-to-the-future/flask_session/984f06e0ef3f2b3c55d9fbbe3cbd4811 create mode 100644 back-to-the-future/flask_session/98e47b81eb2790747fd6a39be77f858e create mode 100644 back-to-the-future/flask_session/990b8182389a471712fd4449c602f1a5 create mode 100644 back-to-the-future/flask_session/9924990b4546e6196feae2e41bcded8c create mode 100644 back-to-the-future/flask_session/9a15c035a8938bbaf7ee32ac1aa45f15 create mode 100644 back-to-the-future/flask_session/9e013599d6b47a15db72409a1629f594 create mode 100644 back-to-the-future/flask_session/9e57e62465a479e679a6adbd4b958157 create mode 100644 back-to-the-future/flask_session/9ea35b83ec748d413674ea8e6ca87ccb create mode 100644 back-to-the-future/flask_session/9fc417b4957fde835b5e7b64b5104ac8 create mode 100644 back-to-the-future/flask_session/a00a363e74e8854d89553aedcabb4c6a create mode 100644 back-to-the-future/flask_session/a07fed5d740a8dd02ef4928198e01133 create mode 100644 back-to-the-future/flask_session/a0bf9254a3236ad8dac9f6675055541d create mode 100644 back-to-the-future/flask_session/a0e8349de3483ae232069dbfc1396c7c create mode 100644 back-to-the-future/flask_session/a101e31a62c14e8ea2cf4c779e1b7d37 create mode 100644 back-to-the-future/flask_session/a22a2e117a8fe7f9a97f845528859ed0 create mode 100644 back-to-the-future/flask_session/a348d839170ede14f17edd94e2f166a0 create mode 100644 back-to-the-future/flask_session/a3d5bcca8210816c93aa4c61352532aa create mode 100644 back-to-the-future/flask_session/a56aa0344508a51bd93a4f3ea8d6c30e create mode 100644 back-to-the-future/flask_session/a57b6e892f4830587aea495552784ed9 create mode 100644 back-to-the-future/flask_session/a5a7c21278a12837bd88b87302fe68a7 create mode 100644 back-to-the-future/flask_session/a5e8f792a5f0fdcdf5f666a1d14a23bc create mode 100644 back-to-the-future/flask_session/a803d35caa6bdd7e02955a7bd7319d28 create mode 100644 back-to-the-future/flask_session/a8417dbcc14d9a8cf376b5d6ac2be10a create mode 100644 back-to-the-future/flask_session/a86aa5afcb0a6f305aa8502781d96fcb create mode 100644 back-to-the-future/flask_session/a97a1ab003cda1e66e80df2a97f4e4c8 create mode 100644 back-to-the-future/flask_session/a99e725d1a5105e4330dbb2ab295b044 create mode 100644 back-to-the-future/flask_session/a9dc030de1ace0b44370bee19e7acc70 create mode 100644 back-to-the-future/flask_session/aa774380b6cfedcacd5229d8d55de6ea create mode 100644 back-to-the-future/flask_session/aacf73f04458fb0cac639324f8d23ef9 create mode 100644 back-to-the-future/flask_session/ad1354ac688b6e7cb3d324495b7f5eb2 create mode 100644 back-to-the-future/flask_session/ad16b66739c9bbfbf32c3130f98dd0a7 create mode 100644 back-to-the-future/flask_session/ad99f6117878482ab7106b4d974cfe90 create mode 100644 back-to-the-future/flask_session/add69d43e0c9c22cb6ae3f24658b21cd create mode 100644 back-to-the-future/flask_session/af23a5dd9dbbe86d6cae6ca8a95a94c9 create mode 100644 back-to-the-future/flask_session/afd84e1511d5e9e36607751cf7b7ac96 create mode 100644 back-to-the-future/flask_session/afe1ec12fb39790665014610669101bb create mode 100644 back-to-the-future/flask_session/b05afd0b1ba046e6e56dfb91cade5852 create mode 100644 back-to-the-future/flask_session/b1247ef5153c8cb20af6eaa532c4e53f create mode 100644 back-to-the-future/flask_session/b34f7207987081570979b3c3bbc6ae2f create mode 100644 back-to-the-future/flask_session/b593f82fb66d006980e8a43a0417a1ef create mode 100644 back-to-the-future/flask_session/b5e3b8a6b694614c74fa55892ec7831b create mode 100644 back-to-the-future/flask_session/b61f47d48cfde46dc72a64c6ff49259b create mode 100644 back-to-the-future/flask_session/b775978d6a3936c4100e344e8378371e create mode 100644 back-to-the-future/flask_session/b77f6ebf9bf330d992f7fcc42ad3eb80 create mode 100644 back-to-the-future/flask_session/b79918f57d6585431b357364a047b2fb create mode 100644 back-to-the-future/flask_session/b7fa05ef1c055c8721a0844fa2f9c517 create mode 100644 back-to-the-future/flask_session/b807e74d42b1d517c52e3a34da1fc725 create mode 100644 back-to-the-future/flask_session/b880a4c620be6a758aa72e4fac35b79b create mode 100644 back-to-the-future/flask_session/b90531b031af291fc09f3b47f35d1871 create mode 100644 back-to-the-future/flask_session/b9400bb738c7fb91a7635749b053a137 create mode 100644 back-to-the-future/flask_session/ba501d97a8ebd9381fa271b3ab0d7697 create mode 100644 back-to-the-future/flask_session/bb5f6cf3892f52c07e415dc25f8f101b create mode 100644 back-to-the-future/flask_session/bb8d2676fc45b286c0960ab707864605 create mode 100644 back-to-the-future/flask_session/bc7f8eea85fde0dab7441656a0720464 create mode 100644 back-to-the-future/flask_session/bd172c6f4b31759dec337e178368e06c create mode 100644 back-to-the-future/flask_session/bd3c4e53cec3fc00e19f9aa86d41cd67 create mode 100644 back-to-the-future/flask_session/bf5fe566688bf3064500b3385ebbecc2 create mode 100644 back-to-the-future/flask_session/c0cb3c32fbabf136c0e37c5c72fc0d72 create mode 100644 back-to-the-future/flask_session/c1081ae4a28b263b856b460f1e3aad0b create mode 100644 back-to-the-future/flask_session/c1414d247b0547ff543b9cc03c9b90d8 create mode 100644 back-to-the-future/flask_session/c310c4fd7a943a6b153fc77027b5f8b0 create mode 100644 back-to-the-future/flask_session/c31e413c0847de4691012ef81e31acae create mode 100644 back-to-the-future/flask_session/c321ceed93116c26ec88e3254fa3cd97 create mode 100644 back-to-the-future/flask_session/c4e25dd28c5cd961ccea2bd778bffd4e create mode 100644 back-to-the-future/flask_session/c629ee7f10f944228ad6f78ae03738ea create mode 100644 back-to-the-future/flask_session/c6506c668b96a1eb79cde01880bc8425 create mode 100644 back-to-the-future/flask_session/c6997ce4a7d458b00b06210ae7446850 create mode 100644 back-to-the-future/flask_session/c7f207647209e38730bbe64c9249abe5 create mode 100644 back-to-the-future/flask_session/c88c19634f04d1be57cf5b79d52202c7 create mode 100644 back-to-the-future/flask_session/c95a6b7b5656c9a6b3194a242f8231a7 create mode 100644 back-to-the-future/flask_session/c9a0e34374ced611ddc8dbb936fd2c2b create mode 100644 back-to-the-future/flask_session/ca8e5e6d4bad4979a94c477c5b411acd create mode 100644 back-to-the-future/flask_session/caa93220695c6291992e702873ef8c6b create mode 100644 back-to-the-future/flask_session/cafdd19d230fec60d9022e9e9eb67ff2 create mode 100644 back-to-the-future/flask_session/cb03c2a66a4bf7139c9205ce5b0feb5a create mode 100644 back-to-the-future/flask_session/cb5460332e84b66b455014c9b77bb6bc create mode 100644 back-to-the-future/flask_session/cd07e684036026dc7d067803bde21393 create mode 100644 back-to-the-future/flask_session/cd6b9d32946111528aaa6fefcba32cc4 create mode 100644 back-to-the-future/flask_session/cd83f976398476e1f6633a24c82cca00 create mode 100644 back-to-the-future/flask_session/ceaa00c54604860ca376a77131786d85 create mode 100644 back-to-the-future/flask_session/cf835731cebab59413319af12a738e94 create mode 100644 back-to-the-future/flask_session/cfa68eb972fa756c8697a8fcbcfcbbea create mode 100644 back-to-the-future/flask_session/d0cad7b45a22150d0a5a8512bb72164b create mode 100644 back-to-the-future/flask_session/d0d6526dc3928c1608dafa53c1fe9c9e create mode 100644 back-to-the-future/flask_session/d0f85bd43b91c8a4ed49ef3267c4fa4c create mode 100644 back-to-the-future/flask_session/d0fc857d940dbf06c737897ad95c2815 create mode 100644 back-to-the-future/flask_session/d11382c4f410be6ea22b86a0420f0379 create mode 100644 back-to-the-future/flask_session/d1b129979af646f1903f93fda426262a create mode 100644 back-to-the-future/flask_session/d1d0d1e353b091e55d437fbba7768c0b create mode 100644 back-to-the-future/flask_session/d1f6a6b3ff606b79ed83489af16c752c create mode 100644 back-to-the-future/flask_session/d2d35bf9c724a0feec1b446af094e02a create mode 100644 back-to-the-future/flask_session/d31b32fe78e9e7408d3b1f165ee3a823 create mode 100644 back-to-the-future/flask_session/d3bc3c2a65cba96928e1ffa8889a3bf9 create mode 100644 back-to-the-future/flask_session/d5998a88757db1c51a28bf64c368ad99 create mode 100644 back-to-the-future/flask_session/d700947294c64219224e5510b68fce24 create mode 100644 back-to-the-future/flask_session/d86641dc0fc1950fc5192156bcdd294d create mode 100644 back-to-the-future/flask_session/da1192e27218f04c4df981b45eba12f0 create mode 100644 back-to-the-future/flask_session/da5ffd2e4afdd8b1586525f65b5382f6 create mode 100644 back-to-the-future/flask_session/da6d3b5ed9ccd8a18515221c7c29f2e1 create mode 100644 back-to-the-future/flask_session/daeb7defe566351156bec27a5627566a create mode 100644 back-to-the-future/flask_session/db5c89e54de75a14db842a65aa1a87b2 create mode 100644 back-to-the-future/flask_session/db7303e646ac2d62cb8bbcaf68cca828 create mode 100644 back-to-the-future/flask_session/db8deb947463b3320b1399cb9f87bfba create mode 100644 back-to-the-future/flask_session/dc1dff4e65c17747a9f2043231a5b984 create mode 100644 back-to-the-future/flask_session/dc296930884123b35a5c53bbcb1ad8fc create mode 100644 back-to-the-future/flask_session/df0430679640015518d904b92776f724 create mode 100644 back-to-the-future/flask_session/df11adc24639177bb9c0839d84daa593 create mode 100644 back-to-the-future/flask_session/df924cf66e321a1348121a1cabcd29b5 create mode 100644 back-to-the-future/flask_session/dfc2c46d59be654a2e332461cf11447e create mode 100644 back-to-the-future/flask_session/e256a6fc2997892bd945dfa65d6e3d4a create mode 100644 back-to-the-future/flask_session/e2b5a66739332a746d43f465ae9889ef create mode 100644 back-to-the-future/flask_session/e30690e9f3419164d1ca1ed795944854 create mode 100644 back-to-the-future/flask_session/e3b35579ddaa8fdca3bfdd7589f77f88 create mode 100644 back-to-the-future/flask_session/e45611843e2ddaf7d897be760a2455c7 create mode 100644 back-to-the-future/flask_session/e4cdb37fc6127fd3b2aa01d53d00f688 create mode 100644 back-to-the-future/flask_session/e58c12d06f9064b0c53e828208001d5a create mode 100644 back-to-the-future/flask_session/e5a6944a3ff0ebf60b4670fe40a7f593 create mode 100644 back-to-the-future/flask_session/e74297c0a86ae1c128618618a8b50bc0 create mode 100644 back-to-the-future/flask_session/e778dec5a8adbd18365d124ff668e7f1 create mode 100644 back-to-the-future/flask_session/e88189732217df5915a5b1c3a8fb8379 create mode 100644 back-to-the-future/flask_session/e8e138b0058292a5a274d344df3d1195 create mode 100644 back-to-the-future/flask_session/e923b6aa9df3b01e5182b1a003bf35ec create mode 100644 back-to-the-future/flask_session/e974e3a27a6325862014cc322254eae9 create mode 100644 back-to-the-future/flask_session/e9fa9601ed3049fc587f4fe7a79b714d create mode 100644 back-to-the-future/flask_session/ea4feb9cbd4982377f8952f693c508d7 create mode 100644 back-to-the-future/flask_session/eb719038ef362e4fde8b7b3224d75098 create mode 100644 back-to-the-future/flask_session/ee19c744649264c1537173fba3a11df4 create mode 100644 back-to-the-future/flask_session/ee87118eb53b5c941f2134ee0cd61508 create mode 100644 back-to-the-future/flask_session/ef064997d68d665a6ef04443d43eaae3 create mode 100644 back-to-the-future/flask_session/efd4c0fb34e78ea7cd825af8f89b0fbc create mode 100644 back-to-the-future/flask_session/f0dd61f72859cdbe4e4f9a417e659817 create mode 100644 back-to-the-future/flask_session/f33166d7a9275a433902c984d9ae6b4a create mode 100644 back-to-the-future/flask_session/f435dcda99208cbdac00b580b6e40b93 create mode 100644 back-to-the-future/flask_session/f4745a9cf85051fd561cb8325c5e4314 create mode 100644 back-to-the-future/flask_session/f49747bd1cb88b14c946e5a167412850 create mode 100644 back-to-the-future/flask_session/f63cf29bae980013270fbf4f1f9ec772 create mode 100644 back-to-the-future/flask_session/f700cc8bd7d384a318b16419cc59820b create mode 100644 back-to-the-future/flask_session/f7dd1d01df355bed4bd0c3199557e610 create mode 100644 back-to-the-future/flask_session/f84876bdeaa1e73ba1863dae6aac850e create mode 100644 back-to-the-future/flask_session/f9385592b78b595cd41625cc39ab1c27 create mode 100644 back-to-the-future/flask_session/f9a8c0ad84ed84cfeecd4ace493df951 create mode 100644 back-to-the-future/flask_session/f9b86358cb779b1dd907dfa8f1849b55 create mode 100644 back-to-the-future/flask_session/fa1ff5df9646c63b4c384ad7647eca9b create mode 100644 back-to-the-future/flask_session/fc6babfe600fb622a3bb209a8fc10e30 create mode 100644 decrypt-the-flag/3 create mode 100644 decrypt-the-flag/attack.py create mode 100644 decrypt-the-flag/chall.py create mode 100644 fool-the-oracle-v2/attack.py create mode 100644 fool-the-oracle-v2/chall.py create mode 100644 fool-the-oracle-v3/attack.py create mode 100644 fool-the-oracle-v3/chall.py create mode 100644 fool-the-oracle/attack.py create mode 100644 fool-the-oracle/chall.py create mode 100644 fool-the-oracle/lecture.py create mode 100644 force-decryption/attack.py create mode 100644 force-decryption/chall.py create mode 100644 force-decryption/lecture.py create mode 100644 forge-a-cookie/attack.py create mode 100644 forge-a-cookie/chall.py create mode 100644 forge-another-cookie/attack.py create mode 100644 forge-another-cookie/chall.py create mode 100644 guess-mode-double-shot/attack.py create mode 100644 guess-mode-double-shot/chall.py create mode 100644 guess-mode-one-shot/ECBvsCBCClient.py create mode 100644 guess-mode-one-shot/chall.py create mode 100644 guess-mode-one-shot/main.py create mode 100644 long-secret-message/attack.py create mode 100644 long-secret-message/chall-original.py create mode 100644 long-secret-message/chall.py create mode 100644 long-secret-message/hacker-manifesto.enc create mode 100644 long-secret-message/original.enc create mode 100644 openssl-asym/convert.py create mode 100644 openssl-asym/create_flag.py create mode 100755 openssl-asym/prime create mode 100644 openssl-asym/prime.c create mode 100644 openssl-asym/python create mode 100644 openssl-dgst/HMAC_computation_EVP.c create mode 100644 openssl-dgst/file.txt create mode 100755 openssl-dgst/hash3 create mode 100644 openssl-dgst/hash3.c create mode 100755 openssl-dgst/hex create mode 100644 openssl-dgst/keyedigest.c create mode 100644 openssl-enc/COLORFGBG=15;0 create mode 100644 openssl-enc/aes128.txt create mode 100644 openssl-enc/code.c create mode 100755 openssl-enc/enc create mode 100755 openssl-enc/enc.exe create mode 100644 openssl-enc/enc1.c create mode 100644 openssl-enc/file.enc create mode 100644 openssl-enc/file.txt create mode 100755 openssl-enc/guess.exe create mode 100644 openssl-enc/guess.py create mode 100644 openssl-enc/guessalgo.c create mode 100644 openssl-enc/guessalgo.enc create mode 100644 openssl-enc/output.txt create mode 100644 openssl-hmac/HMAC_computation_EVP.c create mode 100644 openssl-hmac/file.txt create mode 100644 openssl-hmac/file2.txt create mode 100755 openssl-hmac/hex create mode 100755 openssl-hmac/hmac create mode 100644 openssl-hmac/hmac.c create mode 100644 openssl-rand/format.py create mode 100644 openssl-rand/openssl-rand.c diff --git a/back-to-the-future/2 b/back-to-the-future/2 new file mode 100644 index 0000000..2b4a4ca --- /dev/null +++ b/back-to-the-future/2 @@ -0,0 +1,71 @@ +#!/usr/bin/env python3 +from Cryptodome.Cipher import ChaCha20 +from Cryptodome.Random import get_random_bytes +from Cryptodome.Util.number import long_to_bytes, bytes_to_long +import time +from random import randint +from pwn import * +import base64 +import requests +import time +from requests.utils import cookiejar_from_dict +LOGIN ="http://130.192.5.212:6522/login" +FLAG = "http://130.192.5.212:6522/flag" +username='aa' +admin=0 +expire_date=int(time.time()) + 30 * 24 * 60 * 60 +cookie = f"username={username}&expires={expire_date}&admin={admin}" +print(f"Cookie len:{len(cookie.encode())}") +LOGIN="http://127.0.0.1:5000/login" +FLAG="http://127.0.0.1:5000/flag" +# expire = 1.748.345.396 +PARAMS = {"username":'aa','admin':1} + +s = requests.Session() +r = s.get(url=LOGIN,params=PARAMS) +cookie= r.json()['cookie'] +print(f"Cookie encrypted len:{len(long_to_bytes(cookie))}") +#sleep(1000) +nonce = r.json()['nonce'] + +cookie = bytearray(long_to_bytes(cookie)) + +for i in range(1,256): + cookie[-1]= cookie[-1] ^ i + + COOKIES = {'cookie':bytes_to_long(cookie), 'nonce': nonce} + f = s.get(url=FLAG,params=COOKIES) + print(f.text) + """if(f.text == "You have expired!"): + print(f"Guessed byte:{i}") + cookie[20] = 2 ^ i + COOKIES['cookie'] = bytes_to_long(cookie) + f = s.get(url=FLAG,params=COOKIES) + print(f.text)""" + #break +"""decCookie = cipher.decrypt(encCookie) +print(decCookie) +sleep(10000) +r = s.get(url=LOGIN,params=PARAMS) +for cookie in s.cookies: + print(cookie) + keyEncoded = cookie.value +key = base64.urlsafe_b64decode(keyEncoded+'=') + +print(f"LEN:{len(key)}") + +LOG_PARAMS = {"username":'aaaaaaaaa','admin':1} +r = s.get(url=LOGIN,params=LOG_PARAMS) +print(f"login:{r.json()}") +cookie=long_to_bytes(r.json()['cookie']) +nonce=long_to_bytes(r.json()['nonce']) +print(f"Nonce:{bytes_to_long(nonce)}") +cipher = ChaCha20.new(key=key, nonce=nonce) +decrypt=cipher.decrypt(cookie) +print(len(decrypt)) +sleep(1000) +nonce = bytes_to_long(nonce) +cookie = bytes_to_long(cipher.encrypt(testCookie.encode())) +PARAMS = {'cookie':cookie, 'nonce':nonce } +f = s.get(url=FLAG, params=PARAMS) +print(f.text)""" diff --git a/back-to-the-future/__pycache__/chall.cpython-313.pyc b/back-to-the-future/__pycache__/chall.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cc8664544419456af80cac6a8acf55a867573bfe GIT binary patch literal 4997 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 SigZ7)1h_sb0>Ut2-}^r^;I", "") \ + .replace('"', "") \ + .replace("'", "") \ + .replace("(", "") \ + .replace(")", "") \ + .replace("[", "") \ + .replace("]", "") \ + .replace("{", "") \ + .replace("}", "") \ + .replace("=", "") + + +def parse_cookie(cookie: str) -> dict: + parsed = {} + for field in cookie.split("&"): + key, value = field.split("=") + key = sanitize_field(key) + value = sanitize_field(value) + parsed[key] = value + + return parsed + + +@app.route("/login", methods=["GET"]) +def login(): + username = request.args.get("username") + admin = int(request.args.get("admin")) + + nonce, key, cipher = make_cipher() + session['key'] = key + username = sanitize_field(username) + if admin != 1: + admin = 0 + else: + #MAX = 22.377.600 + #MIN = 864.000 + session['admin_expire_date'] = int(time.time()) - randint(10, 259) * 24 * 60 * 60 + #ADD = 2.592.000 + expire_date = int(time.time()) + 30 * 24 * 60 * 60 + cookie = f"username={username}&expires={expire_date}&admin={admin}" + + return jsonify({ + "nonce": bytes_to_long(nonce), + "cookie": bytes_to_long(cipher.encrypt(cookie.encode())) + }) + + +@app.route("/flag", methods=["GET"]) +def get_flag(): + nonce = int(request.args.get("nonce")) + cookie = int(request.args.get("cookie")) + cipher = ChaCha20.new(nonce=long_to_bytes(nonce), key=session['key']) + + try: + dec_cookie = cipher.decrypt(long_to_bytes(cookie)).decode() + token = parse_cookie(dec_cookie) + if int(token["admin"]) != 1: + return f"Admin value:{token['admin']}" + #25.056.000 < value < 25.920.000 + # + if 290 * 24 * 60 * 60 < abs(int(token["expires"]) - session['admin_expire_date']) < 300 * 24 * 60 * 60: + return f"OK! Your flag: {flag}" + else: + return f"You have expired! with expiration: {token['expires']} and {session['admin_expire_date']}" + except: + return f"Something didn't work :C" diff --git a/back-to-the-future/des.py b/back-to-the-future/des.py new file mode 100644 index 0000000..54eefa0 --- /dev/null +++ b/back-to-the-future/des.py @@ -0,0 +1,158 @@ +#!/usr/bin/env python3 +# encoding: utf-8 + +""" +Flask session cookie toolkit. + +Decode, verify or generate a signed Flask session cookie. + +Credits to Terry Vogelsang for the original script (https://terryvogelsang.tech/MITRECTF2018-my-flask-app/) +which I just slightly modified for my personal use. +""" + +from hashlib import sha512 +from flask.sessions import session_json_serializer +from itsdangerous import URLSafeTimedSerializer, BadTimeSignature +import argparse +import base64 +from zlib import decompress +import sys +import json + +# GENERAL FUNCTIONS. + +def debug(msg): + if VERBOSE_OUTPUT: + print("[DEBUG] " + msg) + +def pretty_print_json_data(json_data): + json_pretty_str = json.dumps(json_data, indent=4) + print(json_pretty_str) + +# COOKIE DECODER. + +def decode_cookie_payload(cookie): + debug(f"Cookie:\n{cookie}") + # If the cookie starts with a dot the paylod is base64 encoded and GZIP compressed. + if cookie[0] == ".": + b64_gzip_payload = cookie[1:].split(".")[0] + # Python needs the padding which is stripped in the base64_URLsafe version (see https://stackoverflow.com/questions/2941995/python-ignore-incorrect-padding-error-when-base64-decoding#comment12174484_2942039) + b64_gzip_payload += "=" * (-len(b64_gzip_payload) % 4) + debug(f"Encoded and compressed payload:\n{b64_gzip_payload}") + gzip_payload = base64.urlsafe_b64decode(b64_gzip_payload) + payload = decompress(gzip_payload) + debug(f"Decoded and decompressed payload:\n{payload}") + else: + # If the cookie does not start with a dot the payload is just base64 encoded. + b64_payload = cookie.split(".")[0] + # Python needs the padding which is stripped in the base64_URLsafe version (see https://stackoverflow.com/questions/2941995/python-ignore-incorrect-padding-error-when-base64-decoding#comment12174484_2942039) + b64_payload += "=" * (-len(b64_payload) % 4) + debug(f"Encoded payload:\n{b64_payload}") + payload = base64.urlsafe_b64decode(b64_payload) + debug(f"Decoded payload:\n{payload}") + + return payload + +def output_decoded_payload(payload, json_pretty, str_encoding): + str_payload = payload.decode(str_encoding) + if json_pretty: + # Pretty print the JSON data. + try: + debug(f"Payload string (encoding=\"{str_encoding}\"):\n{str_payload}") + pretty_print_json_data(json.loads(str_payload)) + except: + print("The payload is not valid JSON!", file=sys.stderr) + sys.exit(1) + else: + # Do not pretty print the JSON data. + print(str_payload) + sys.exit(0) + +# COOKIE VERIFIER. + +def readAndVerifyCookie(cookie, secret_key): + debug(f"Cookie:\n{cookie}") + signer = URLSafeTimedSerializer( + secret_key, salt="cookie-session", + serializer=session_json_serializer, + signer_kwargs={"key_derivation": "hmac", "digest_method": sha512} + ) + try: + session_data = signer.loads(cookie) + print("The signature is correct!") + return session_data + except BadTimeSignature: + print(f"The signature is not correct!") + sys.exit(1) + +# COOKIE GENERATOR. + +def generate_cookie(json_str_payload, key): + try: + payload = json.loads(json_str_payload) + except: + print("Your payload is not a valid JSON string!") + sys.exit(1) + + signer = URLSafeTimedSerializer( + key, salt="cookie-session", + serializer=session_json_serializer, + signer_kwargs={"key_derivation": "hmac", "digest_method": sha512} + ) + cookie = signer.dumps(payload) + return cookie + +# MAIN. + +if __name__ == "__main__": + # Argparse setup. + argparser = argparse.ArgumentParser(description="Pefroma various actions regarding a Flask session COOKIE.") + argparser.add_argument("command", metavar="COMMAND", choices=["decode", "verify", "generate"], help="the command to execute") + argparser.add_argument("-c", "--cookie", metavar="COOKIE", help="the COOKIE to decode or verify") + argparser.add_argument("-k", "--key", metavar="SECRET_KEY", help="the SECRET_KEY to sign or verify the cookie with") + argparser.add_argument("-p", "--payload", metavar="PAYLOAD", help="the PAYLOAD to encode in teh cookie") + argparser.add_argument("-v", "--verbose", action="store_true", help="enable verbose output") + argparser.add_argument("--pretty-json", action="store_true", help="whether to pretty print the JSON data") + argparser.add_argument("--encoding", default="UTF-8", help="the ENCODING to use when parsing data as a string") + # Parse arguments. + args = argparser.parse_args() + command = args.command + VERBOSE_OUTPUT = args.verbose + # Choose command. + if command == "decode": + # Check arguments. + if args.cookie is None: + argparser.error("The 'decode' command requires the --cookie argument.") + cookie = args.cookie + json_pretty = args.pretty_json + str_encoding = args.encoding + # Decode. + payload = decode_cookie_payload(cookie) + # Output. + output_decoded_payload(payload, json_pretty, str_encoding) + elif command == "verify": + # Check arguments. + if args.cookie is None or args.key is None: + argparser.error("The 'verify' command requires both the --cookie and the --key arguments.") + cookie = args.cookie + key = args.key + pretty_json = args.pretty_json + # Verify. + session_data = readAndVerifyCookie(cookie, key) + # Output. + print('') + if pretty_json: + debug(f"Session data:\n{session_data}") + pretty_print_json_data(session_data) + else: + print(json.dumps(session_data)) + elif command == "generate": + # Check arguments. + if args.payload is None or args.key is None: + argparser.error("The 'generate' command requires both the --payload and the --key arguments.") + payload = args.payload + key = args.key + # Generate. + cookie = generate_cookie(payload, key) + # Output. + print(cookie) diff --git a/back-to-the-future/flask_session/0024f4d0c2b3d981466de18eb8f0a755 b/back-to-the-future/flask_session/0024f4d0c2b3d981466de18eb8f0a755 new file mode 100644 index 0000000000000000000000000000000000000000..8bad7b86b19e8dfd379272604bc055d6bc01f144 GIT binary patch literal 100 zcmZ1^Y@X4;IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;hianZ?Ne=mgI(wh87} z;-_W%&lgI0E2p!TPn1bS|5U{HDLsOTDY=<>@u?LBnMJAbDTyViQ@j>UVM;I60|2P5 BBtHNE literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/013e1aa0bd32b92f105abddbcb2e4dfd b/back-to-the-future/flask_session/013e1aa0bd32b92f105abddbcb2e4dfd new file mode 100644 index 0000000000000000000000000000000000000000..d04929200c3f2941214bf433f4e54548d54f119c GIT binary patch literal 100 zcma#yH_vEbof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaPz`@bg25n1;EwWzV@F z-J(Nm`#!zsJokCl2Df<8`h2BzQ+fmwQ*tx&;!`UMGK*5@u?LBnMJAbDTyViQ@r@}ThdGQ090Ei Ah5!Hn literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/0339ca8760519fa43df56ddec27a24e7 b/back-to-the-future/flask_session/0339ca8760519fa43df56ddec27a24e7 new file mode 100644 index 0000000000000000000000000000000000000000..4c0925740be4338752437dcd829ce7dcdefb5c8d GIT binary patch literal 100 zcmZ4T-7KSlb!sRB1k_H^=;4YlNG-}u%uCHHnbOh2oSj-Z#aY4a*@r7KHQZL6FYZ-M zd*dGe{dnZ_Jj(>Z-m9tC@19@oFr`N@F(o%MFFv)RAhRenJ|(dvb&A(wtEcIudI0|_ BD_#Hq literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/037f590478d87f55cedf7b1ab1d53a82 b/back-to-the-future/flask_session/037f590478d87f55cedf7b1ab1d53a82 new file mode 100644 index 0000000000000000000000000000000000000000..c423aa8076be3a6310f6fe59e75413284e2e8d2c GIT binary patch literal 100 zcma#hG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaK4!w=?@e1Rq-%hvtFb zK0$W%mMUDkB%X3VS(oE?l>7UxDLsOTDY=<>@u?LBnMJAbDTyViQ@pPC%ug@X0|4YG BCbs|p literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/03c414397bdde3743856111af41ff1bf b/back-to-the-future/flask_session/03c414397bdde3743856111af41ff1bf new file mode 100644 index 0000000000000000000000000000000000000000..add4892a409c716641b1934cb34c38fe71053d29 GIT binary patch literal 100 zcmX@CX`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;bP1ow+N~(dO7)%VTT$ zLzXIR^A{2LMNE BC({4` literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/04433ec6a092234083ccb75f70be7844 b/back-to-the-future/flask_session/04433ec6a092234083ccb75f70be7844 new file mode 100644 index 0000000000000000000000000000000000000000..ed2cfa63bffbe19e9140d4c774b1fe74dbc94d04 GIT binary patch literal 100 zcmea*G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaJ&l|7oKTxn|m|aL4$T zcl&zuE_#FqoGA-faP|<-jPD{Frt}CVrsQVk#iv#jWEQ2yrzDo7PVqWdXq;ZE2LL2f BC&B;# literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/050e985a050d81dfa77f0827ff555076 b/back-to-the-future/flask_session/050e985a050d81dfa77f0827ff555076 new file mode 100644 index 0000000000000000000000000000000000000000..cf0b1d3be226036b1134549e0c0365dc8a3035b5 GIT binary patch literal 100 zcmX@9X`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;dj4kfLn8`s|%<=I_C; zwuDyPb9?>oou2Pk1%rb2jZp%UQ+fmwQ*tx&;!`UMGK*5J+bi!jkEwdH{T{ BD82vy literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/0753e7809f4e8bde6701b4d27193c28b b/back-to-the-future/flask_session/0753e7809f4e8bde6701b4d27193c28b new file mode 100644 index 0000000000000000000000000000000000000000..9c0d869feee994cdd093502f27ff7b8adf851622 GIT binary patch literal 100 zcmYe)G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaK6Lg_A3)##DjtwExTZ z(Muf)S@JUGJYx)gpf-J;-gITrDLsOTDY=<>@u?LBnMJAbDTyViQ@j%RPN$dZ0RYK~ BB^m$# literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/07b9966fa556e07bb7dbf9d7a97c5d6a b/back-to-the-future/flask_session/07b9966fa556e07bb7dbf9d7a97c5d6a new file mode 100644 index 0000000000000000000000000000000000000000..9a0f47d835da56b31a5634973858bb877109cdeb GIT binary patch literal 100 zcma#nG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaNeR$gN>s)=RtPlZy@u?LBnMJAbDTyViQ@nhSuShS|0|4Ug BCWrt4 literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/094a242c07093b9b0a8bf37702d4d6ed b/back-to-the-future/flask_session/094a242c07093b9b0a8bf37702d4d6ed new file mode 100644 index 0000000000000000000000000000000000000000..2191370edbf410c91394980f435aedbaae7d019f GIT binary patch literal 100 zcmX@0X`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;i6x@c=u|+pE6(PPQGV zx;okdc0QWPAI> z(XFTR-^jK;58eCW==zU`BECg7PU#U$Ov%m6i%+d6$Sg{YPf09Eo#NHC=~H^C9srts BD(nCN literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/09eb19248af327923541b8fcae0c34f9 b/back-to-the-future/flask_session/09eb19248af327923541b8fcae0c34f9 new file mode 100644 index 0000000000000000000000000000000000000000..97bd7889a389966e2048c064b36cf118824a24d4 GIT binary patch literal 100 zcmdm`X`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;gX8@)5^A&V#PAE~@=& z=4v?f=1S(fWTwsM4%EHW7Z+~ko6;kgn39{B7oS>DkXe)(pORRTI>pQCf^T}M9sqAh BC{F+Y literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/0a52c4727ae4311cd3a51114e42472c6 b/back-to-the-future/flask_session/0a52c4727ae4311cd3a51114e42472c6 new file mode 100644 index 0000000000000000000000000000000000000000..06bbe537bba53f220d425c5cd4ed666b1b9491fc GIT binary patch literal 100 zcma#jG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaNe-HS^w<2-`A?9+gX~ z^NvcdNJ!6or`WG&Z#wObkmhvjDLsOTDY=<>@u?LBnMJAbDTyViQ@n0TGiH?P0RZv$ BC6NFC literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/0a6d00dc979a6696c7dc339e4400a0c9 b/back-to-the-future/flask_session/0a6d00dc979a6696c7dc339e4400a0c9 new file mode 100644 index 0000000000000000000000000000000000000000..3d26b1933e292f10e91a106bfa335aca07042770 GIT binary patch literal 100 zcmZ4b(=4Nbb!sRB1k_H^=;4YlNG-}u%uCHHnbOh2oSj-Z#aUtLaOO4DN(;I{%*PReM*mDVoGjiUVLgrL1s~Ed`eJ%@PLWlHHJpl8u BD!Bjv literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/0b8def7c22ef61cb5591a9c080f8c117 b/back-to-the-future/flask_session/0b8def7c22ef61cb5591a9c080f8c117 new file mode 100644 index 0000000000000000000000000000000000000000..8f27df9cfb39785a87173329eb3d4605eda81fc2 GIT binary patch literal 100 zcmX@8X`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;e8zJ?Sd1`j&}5KN&qv zu~_x;<}#}f7fSZuw$(q9YBT-G!zn$2i7C06dGV@u?LBnMJAbDTyViQ@o<@JWnsx0{|@0 BCn*2` literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/0c1f1c2450a35deebee44be732d558d8 b/back-to-the-future/flask_session/0c1f1c2450a35deebee44be732d558d8 new file mode 100644 index 0000000000000000000000000000000000000000..2c464c99405ea8098a3a59d4b406616e5de9a0e8 GIT binary patch literal 100 zcmaE;VV2RrIyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;bNX^l}XUrtRL#j(Z2x zwfHjIl-J(xzw||4J$^yaUA5pBQ+fmwQ*tx&;!`UMGK*51&Q4***d BDKG#4 literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/0c23ca3d1f4169ce2147cf8a3180d454 b/back-to-the-future/flask_session/0c23ca3d1f4169ce2147cf8a3180d454 new file mode 100644 index 0000000000000000000000000000000000000000..cf1a7059297708e08e0abc24ce2014cc98847c77 GIT binary patch literal 100 zcmYe&G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaQoTUi)m! z&7aHaStW3pHB;cY#$Nf1$9`)rOz9C!Ov%m6i%+d6$Sg{YPf09Eo#K`BQ6;@p4*)nl BC#V1b literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/0caac73c224f83af1261050ab6ca5bc6 b/back-to-the-future/flask_session/0caac73c224f83af1261050ab6ca5bc6 new file mode 100644 index 0000000000000000000000000000000000000000..d1292b909440719b37c71da5f201b9af2467cd1e GIT binary patch literal 100 zcmZ?LG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaNe6Cv|6^R@&D*V-3}# zhF2}F+j>7dZa(keq8sL-)1R3bOz9C!Ov%m6i%+d6$Sg{YPf09Eo#J&+=ucXy9smnM BCu{%! literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/0d2a8e6c32cee51c76eef735eea453d4 b/back-to-the-future/flask_session/0d2a8e6c32cee51c76eef735eea453d4 new file mode 100644 index 0000000000000000000000000000000000000000..8d531c4388476cf93c77e913c98ef95da00eb207 GIT binary patch literal 100 zcmdn^*DRxfb!sRB1k_H^=;4YlNG-}u%uCHHnbOh2oSj-Z#aSU=EPkKeQZDla3q=;( zIQ@Rfjs?P<_YXaIxFUalnLRhmj$rt}CVrsQVk#iv#jWEQ2yrzDo7PVvfr_&mK-4*;i| BDbN4_ literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/0eb7bd4f6d34532740aad04e035261f4 b/back-to-the-future/flask_session/0eb7bd4f6d34532740aad04e035261f4 new file mode 100644 index 0000000000000000000000000000000000000000..c1ef4dc12a10b11aea744ebb5d8dc1b3157b7793 GIT binary patch literal 100 zcmYe%G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaJ(C&pLMx_sO9srBh BDLnuH literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/0f4b7f5961fc0914870a1d877d5af208 b/back-to-the-future/flask_session/0f4b7f5961fc0914870a1d877d5af208 new file mode 100644 index 0000000000000000000000000000000000000000..ea5e7e25b3056f7cca243bfc2774b0f7c3e70e2f GIT binary patch literal 100 zcmWI5G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaNd7aeuur%j&P&xBWl; z!b0v{`~G#apUem<5MngAq?ZwYY)X${VoGjiUVLgrL1s~Ed`eJ+aldadcDdH|1z BDR%$> literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/102b39f6be00c1781f576ab0acfef156 b/back-to-the-future/flask_session/102b39f6be00c1781f576ab0acfef156 new file mode 100644 index 0000000000000000000000000000000000000000..380aebba75bfcada1a3c8a7d6027234b0f222b14 GIT binary patch literal 100 zcmd1RG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaOofdFc5E-=?(w-;*QU z=E~PRUN(2{1ff?4mae{iXjl5dIa7KB6H{_C^Wsx03NnjQ<5Ln#Qm1(3UfYpYss{k& Czbrif literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/104cca7fdf9eb7752f4862d38e6eb718 b/back-to-the-future/flask_session/104cca7fdf9eb7752f4862d38e6eb718 new file mode 100644 index 0000000000000000000000000000000000000000..fc36f43f2d9cb46ec5ab127fb2663eaabf9c6e6b GIT binary patch literal 100 zcmYe-G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaJ(xQd_35{n6h8qC3(j zFfLu26T9)`Ei2howtiu2`{G~nPU#U$Ov%m6i%+d6$Sg{YPf09Eo#OTUnQMBf9soCq BC`JGP literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/10fe679fe6f5a8d3c40032c9ffae4f6f b/back-to-the-future/flask_session/10fe679fe6f5a8d3c40032c9ffae4f6f new file mode 100644 index 0000000000000000000000000000000000000000..7861920db3ff3576fe6907bd9109550a4cbf2121 GIT binary patch literal 100 zcma#mG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaM4#ocTiPW9{PR`J1_a zGwJ_T%s6zB%fizlFW!8M-{Lo>Q+fmwQ*tx&;!`UMGK*5l_L- zdn3)Z2(s=wETrM{p6A57G|sCQQ+fmwQ*tx&;!`UMGK*5;Zirj$jW0+ zB{FTa)?L1oki9M9q~vJ^35OLYr}PLWrsQVk#iv#jWEQ2yrzDo7PVu^|x-7j^4*)^` BC#C=Z literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/124926dffa9468ff2a63e8ebbd70d4fc b/back-to-the-future/flask_session/124926dffa9468ff2a63e8ebbd70d4fc new file mode 100644 index 0000000000000000000000000000000000000000..47e5692197dace5d808f68e25db95dbc0631b30a GIT binary patch literal 100 zcmea&G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaKsZ$)T5XHp$~d_Re}% zu5IyQlP=dKe9N8EvN-TU&$*K^Q+fmwQ*tx&;!`UMGK*5{zw)G1!}=342cdH{h# BDKh{7 literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/153b504567a8ccb59e454c265f46b8cd b/back-to-the-future/flask_session/153b504567a8ccb59e454c265f46b8cd new file mode 100644 index 0000000000000000000000000000000000000000..5deabef1d97ba44aeb81148e98a649d8fabfeef8 GIT binary patch literal 100 zcmezR#Vn(Nb!sRB1k_H^=;4YlNG-}u%uCHHnbOh2oSj-Z#aZEE$cogsD`9yOd&4ZB zw9j!lA!)m%=;`*^>zNZ+rx}F3o6;kgn39{B7oS>DkXe)(pORRTI>oE>-;eZCJpi_- BDZ>B& literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/15626afe7c5a68139b2d0c823b10b225 b/back-to-the-future/flask_session/15626afe7c5a68139b2d0c823b10b225 new file mode 100644 index 0000000000000000000000000000000000000000..8435bab6561ed9c756b3059f03fa45564838c511 GIT binary patch literal 100 zcmdn-(=4Nbb!sRB1k_H^=;4YlNG-}u%uCHHnbOh2oSj-Z#aY2M*W&HOKXM;-S$Spc z&HOqmMR8qUNVOH?%ctMOcc?b-L$mlEWGNnf_F(o%MFFv)RAhRenJ|(dvb&A)ewUOzidH}7D BDpLRe literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/16d0908062af6846734edfa5f045a7eb b/back-to-the-future/flask_session/16d0908062af6846734edfa5f045a7eb new file mode 100644 index 0000000000000000000000000000000000000000..4f1c0d7ea3810e9852b99d2f81838c4de6a655a1 GIT binary patch literal 100 zcmc~$H_vEbof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaK4P8f?|VJc;q&@`yc> zcfyxlUtCzTy1eh{^y%Lt6P|@%oYEthn39{B7oS>DkXe)(pORRTI>jsX_@nevJpg70 BDe?dS literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/16fd8e2a8030276090ee1af051f12820 b/back-to-the-future/flask_session/16fd8e2a8030276090ee1af051f12820 new file mode 100644 index 0000000000000000000000000000000000000000..f283c965f6e940120a4124e97b3e3a7afc87a084 GIT binary patch literal 100 zcmea)G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaItjJaXG;pXaXK7nW(N ziN$|rFen$C&oKL_+fm{E3hM_qr}PLWrsQVk#iv#jWEQ2yrzDo7PVw>%tV}P}0|5O< BCR+di literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/1758b09b9954119108661b47afd46133 b/back-to-the-future/flask_session/1758b09b9954119108661b47afd46133 new file mode 100644 index 0000000000000000000000000000000000000000..001b14c3c0755ef67547672a22c92b1eeac10113 GIT binary patch literal 100 zcmZ?PG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaQ>FbIC)dNtOxjygDlL zwy3VEuF7t`_F+DkXe)(pORRTI>qaJ=-c#CJpgqQ BDTn|7 literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/1800c2925b752b572f86ed7ee84e6447 b/back-to-the-future/flask_session/1800c2925b752b572f86ed7ee84e6447 new file mode 100644 index 0000000000000000000000000000000000000000..a1a7c9e149d46c60bfddb7d66cd6e1d7a82c29f5 GIT binary patch literal 75 zcmcco(JZ5Zb*c>m1k_H^=;4YlNG-}u%uCHHnbOh2oSj-Z#aW?~ZEc}(R^_?isIzMg cTJ9bDu}@^b`qF1P&e@FLH(r{vb4sZm04mcU2mk;8 literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/1877a6d8ef9c4bef7b8b20352efd6315 b/back-to-the-future/flask_session/1877a6d8ef9c4bef7b8b20352efd6315 new file mode 100644 index 0000000000000000000000000000000000000000..a590be3ee63b9be52eac8c095fbfe3c011953eeb GIT binary patch literal 100 zcma#lG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaQ>I+WP#3xmi0zE=O~; z8tnAh@OzWvL%Z;Phc%`9W^V~|n9?Jdn39{B7oS>DkXe)(pORRTI>jp@voF0=4*-0a BDEa^Z literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/18c96d9bf2e5d9a806260b2073cc02ee b/back-to-the-future/flask_session/18c96d9bf2e5d9a806260b2073cc02ee new file mode 100644 index 0000000000000000000000000000000000000000..0d5581cd4158e68e4e1ce26ed9c1f68040e38514 GIT binary patch literal 100 zcmcbhX`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;g`}y5WfM0nW6)r9!)Z zq_3$mwPv_jb@xKV#BHlj9SeJ~WJ-@J+c@>VMNq^#E{M BDX#zk literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/18e75151796c652d44534b00d0212909 b/back-to-the-future/flask_session/18e75151796c652d44534b00d0212909 new file mode 100644 index 0000000000000000000000000000000000000000..247560b73e48b6c4fe3cd867627d07d26ba4aa06 GIT binary patch literal 100 zcmZ?NG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaQ=!;cCd6ZZEg>idr?_ z&AwH;4&L$cd7Yx(QW;#V#MV$VrAII^B{wrKKDDACvnVw_C9x!RikE}Q<+M^g0O~I$ A1poj5 literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/193c50b53639cb1c03e36dfc740123ac b/back-to-the-future/flask_session/193c50b53639cb1c03e36dfc740123ac new file mode 100644 index 0000000000000000000000000000000000000000..b9867e897464dfa653faef1415b753bc69f7107f GIT binary patch literal 100 zcmYe+G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaItN>^fllyIy5Zi|>v- z!r?UyrT$#2U7443WF<#P<^6jwrAII^B{wrKKDDACvnVw_C9x!Riq~Ul#*9)u0NY9> AjQ{`u literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/1b2ca741d7a39db18a40eb32c2d11b34 b/back-to-the-future/flask_session/1b2ca741d7a39db18a40eb32c2d11b34 new file mode 100644 index 0000000000000000000000000000000000000000..4bdddaaec954806711d1546fe085d5331656d9e6 GIT binary patch literal 100 zcmWIeYL?N!IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;e9IhE2V2MGengCPnqE zc`L)R@(sFf3ND<}U9;BXYn@m8lpevvl-$g`_|%Gm%%arzl*E$MDP9-u984?K0{}8g BC+`3N literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/1e68c4649db3fe5e9f137d33b1750a88 b/back-to-the-future/flask_session/1e68c4649db3fe5e9f137d33b1750a88 new file mode 100644 index 0000000000000000000000000000000000000000..d6deba6e2f2b343773ff1d0cfee5a753b9ce9338 GIT binary patch literal 100 zcmX@DX`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;gW>SuJCq=B6^g8wc-Q zP|$j~-gQ5t1%pWAOS|+pt3?l&Oz9C!Ov%m6i%+d6$Sg{YPf09Eo#N%)!IxgD2LM!E BCs_ah literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/1f658eed99e5d7de9176b624a3adc574 b/back-to-the-future/flask_session/1f658eed99e5d7de9176b624a3adc574 new file mode 100644 index 0000000000000000000000000000000000000000..bcc3376efebd4fff6ea5fd44e46f864ff75a7cd3 GIT binary patch literal 100 zcmdn4X`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;gXZ5tHZdQ^#~Y4!+yG zWlp8jl#FX63y!h0Lg3O}S_>{zw)G1!(z4Oyc^#H@~ BDsun; literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/1f68d6d0f4c582b441f14dcde94228c5 b/back-to-the-future/flask_session/1f68d6d0f4c582b441f14dcde94228c5 new file mode 100644 index 0000000000000000000000000000000000000000..5a26c943601aa183894f1e9e44718ea6c4e61918 GIT binary patch literal 100 zcmd1SG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaPDW(eJQ5f5EHAbEMVZ z*f4Z>uXcF4=$gK1PH{x=$GW_qQ+fmwQ*tx&;!`UMGK*517i0{~Ye BD475N literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/2029240f6d1128be89ddc32729463129 b/back-to-the-future/flask_session/2029240f6d1128be89ddc32729463129 new file mode 100644 index 0000000000000000000000000000000000000000..a104a1605bb888c385bba05c804d8c382b69f303 GIT binary patch literal 19 WcmZQzU|?uqoyr2FK)^SXQ4atTIRXR# literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/203905a31c6f852e9d45c346da0c8e2e b/back-to-the-future/flask_session/203905a31c6f852e9d45c346da0c8e2e new file mode 100644 index 0000000000000000000000000000000000000000..451116b18fd27a0b294e312e11bab1baa4228fe2 GIT binary patch literal 100 zcmdn4X`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;iss(Xrh7n|?V2Z+IGU zN%wTern0l!cP(*sDihNZ{mtiBIHgB0F(o%MFFv)RAhRenJ|(dvb&8jnertNE9ssvA BDE$Bc literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/208455b2dfc729e62e1d212617c5c103 b/back-to-the-future/flask_session/208455b2dfc729e62e1d212617c5c103 new file mode 100644 index 0000000000000000000000000000000000000000..d7fb87587d9cfe14cc667b2e4682574667cde678 GIT binary patch literal 100 zcmcE5G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaJhV8If^ZB& literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/20874b46266e4b74b7ab1b03f63dcf73 b/back-to-the-future/flask_session/20874b46266e4b74b7ab1b03f63dcf73 new file mode 100644 index 0000000000000000000000000000000000000000..0d15eac265a827b4a5fd208a95140f43f0bb6e80 GIT binary patch literal 100 zcmZ?zVV2RrIyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;hiSV1=%qZ}yGwZ?pFO z3fOqAc#YhfsY~uRWcFO0+`ENo)|4K>#FX63y!h0Lg3O}S_>{zw)G1z${%z@{dH~^< BDwO~L literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/20989fe5ff4ecc9d2220dd6a0d753437 b/back-to-the-future/flask_session/20989fe5ff4ecc9d2220dd6a0d753437 new file mode 100644 index 0000000000000000000000000000000000000000..22b461420eb25b441a7eca73cbb2ce204c056ef1 GIT binary patch literal 100 zcmdmJW}eZ&IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;b8)Hg`9Fv_5$6_0u~`rt}CVrsQVk#iv#jWEQ2yrzDo7PVw4UzB;{B4*)TG BC}RKs literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/210b1035151e9760b507a7c1edb1cb67 b/back-to-the-future/flask_session/210b1035151e9760b507a7c1edb1cb67 new file mode 100644 index 0000000000000000000000000000000000000000..52e2dca2f016e3ac8df44e61f41209b18e5e1c30 GIT binary patch literal 100 zcmcblX`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;gV|VZ9{Fy5euOC!R7t z@VYx$RzO12FHzIsLIWpL#%t@CDLsOTDY=<>@u?LBnMJAbDTyViQ@jGt+)OLg0{|CD BCXWCB literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/220fce4c0ec426d5753fbaf01bfb9a8d b/back-to-the-future/flask_session/220fce4c0ec426d5753fbaf01bfb9a8d new file mode 100644 index 0000000000000000000000000000000000000000..7f57a0c13bcb73e71386ccb66ea0f6b92dcddefe GIT binary patch literal 100 zcmb=oH_vEbof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaQ0ro|d^Vy{5QurA=Mu z4aPmcHI00aGzBKgzqxX!`P#YjQ+fmwQ*tx&;!`UMGK*5@u?LBnMJAbDTyViQ@m1wH>a2C0RYko BB@O@p literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/224eb7214627856502497725cace3e24 b/back-to-the-future/flask_session/224eb7214627856502497725cace3e24 new file mode 100644 index 0000000000000000000000000000000000000000..c22d2788a51b17ac70596b723d5fb2b53ceed707 GIT binary patch literal 100 zcmWIlW0ujtIyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;isrVoGjiUVLgrL1s~Ed`eJ%^AwL0mgdH|?1 BDJ=j1 literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/22758786fc4b59ca7a0765ffdde20d3d b/back-to-the-future/flask_session/22758786fc4b59ca7a0765ffdde20d3d new file mode 100644 index 0000000000000000000000000000000000000000..062554264b2f84ecfce8a665a0a7d64f93539b22 GIT binary patch literal 100 zcmWI3G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaJ&8cSwGv^l6Gh#^yCg zt#>!De{_+O7T}cao_@u?LBnMJAbDTyViQ@pPIFHbMk0|2)m BC7b{N literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/22aab843b3edce5f80919d3827c4a214 b/back-to-the-future/flask_session/22aab843b3edce5f80919d3827c4a214 new file mode 100644 index 0000000000000000000000000000000000000000..fe5b9604c763351a3b47fd9ac5df154f36aeed6d GIT binary patch literal 100 zcmcbtX`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;is{GoMBNfp_;5KNx?R z(8zoLL!92_^q9K3wMQpzXg?6}d`gdCVoGjiUVLgrL1s~Ed`eJ+cw=dS6cdH~Sz BD%$`6 literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/23fac18da96856adfb0298e2ac196058 b/back-to-the-future/flask_session/23fac18da96856adfb0298e2ac196058 new file mode 100644 index 0000000000000000000000000000000000000000..4d67a9163fa1e5cbea3081eb8b37c32424e0ae01 GIT binary patch literal 100 zcmbPbZJyDJ+b8COPS)dH{^X BDGUGr literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/2599a275682361c46cbf46b22160097b b/back-to-the-future/flask_session/2599a275682361c46cbf46b22160097b new file mode 100644 index 0000000000000000000000000000000000000000..c9272867823e244a6ad7309075431f69910f2a33 GIT binary patch literal 100 zcmX@6VwTasIyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;b;q^L%6T!@Bc@#fO;g zDu%u}Vz)`$^HtmbRI^!*KAoW|Q+fmwQ*tx&;!`UMGK*5|Gb>OVM>o+VoGjiUVLgrL1s~Ed`eJ+aBmk*|w>Hz?? CZYwze literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/26f220fa930f333872b125bc80cda0b5 b/back-to-the-future/flask_session/26f220fa930f333872b125bc80cda0b5 new file mode 100644 index 0000000000000000000000000000000000000000..af1fa887df72310f55d445c9879559fe3e07f8eb GIT binary patch literal 100 zcmdn1X`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;gVi?@Av3Gq#F3N9xQU zUDzu0STm~N?&f9u;q0e+N=_Xrn$jbfn39{B7oS>DkXe)(pORRTI>l>Guq`+`1Y zgck36xl{J*LdNipYqydX?^u`NJ*7u5F(o%MFFv)RAhRenJ|(dvb&6M3t$uo`9srHy BDR%$> literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/27e405db11e63c38bcb22f24fe2cab5b b/back-to-the-future/flask_session/27e405db11e63c38bcb22f24fe2cab5b new file mode 100644 index 0000000000000000000000000000000000000000..f09a089704d7b7bc8923a4ec66cc31b86870ae21 GIT binary patch literal 100 zcmZ?PG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaPdP)8Jj6y2|BE(#vCV z`a7<)PnY^Kmtl9rMfEV#^YcO#rt}CVrsQVk#iv#jWEQ2yrzDo7PVqYYqCUM;4*>E_ BCo}*6 literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/2940ea81618bc3b9313c8a0818f9f9e8 b/back-to-the-future/flask_session/2940ea81618bc3b9313c8a0818f9f9e8 new file mode 100644 index 0000000000000000000000000000000000000000..002356753764e2d8a7d518a262728a86b008f988 GIT binary patch literal 100 zcmd1PG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaM>e3iivH{C(pwm!mQY z$8|RLE|*v4=yTzC=#jD4tUaM=N{?V-N^WLed}>8OW>IQ_gn+ z=Uw~8ab)g~i;VNqJ+a-Nr%%)^#I7V BDuDn1 literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/2c2b79e3fa4a76558fec5886a8bcf220 b/back-to-the-future/flask_session/2c2b79e3fa4a76558fec5886a8bcf220 new file mode 100644 index 0000000000000000000000000000000000000000..5dab58a9d6b3cae2eb3a5c9f037433271e6628f7 GIT binary patch literal 100 zcmX@7X`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;dkx^g%5?CcfS5uYjy5 z@8Yy@rYXXcAKq+Md@uJnJ}pOTN{?V-N^WLed}>8OW>IQ(Wd00L^_R AmjD0& literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/2c386f464fb69ba5b9535527e53a1136 b/back-to-the-future/flask_session/2c386f464fb69ba5b9535527e53a1136 new file mode 100644 index 0000000000000000000000000000000000000000..d75773cb6db4b40024e645265146e324e9b45b72 GIT binary patch literal 100 zcmZ?OG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaNGK{YJCU_J!~IwefqO zT4&y?KJmoE*QKvf;^5`NLmX_2r}PLWrsQVk#iv#jWEQ2yrzDo7PVsX6IwQSQ4**eG BD69Yg literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/2d46a4d5e411f544f3d308f41cc75a05 b/back-to-the-future/flask_session/2d46a4d5e411f544f3d308f41cc75a05 new file mode 100644 index 0000000000000000000000000000000000000000..6ea7e5f6614fe4a9494ccb46c17654738cc7ef14 GIT binary patch literal 100 zcma!5H_vEbof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaPc+R{v-mG4XhSxcR1} zbC%*?<0dT7y}G3Pj@){miE6VJPw5d%Ov%m6i%+d6$Sg{YPf09Eo#J)V{bPEm9smbz BC!zoV literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/2d8c6c66ee7c4a9f51f9b344f954d0b3 b/back-to-the-future/flask_session/2d8c6c66ee7c4a9f51f9b344f954d0b3 new file mode 100644 index 0000000000000000000000000000000000000000..a31ea426425152fb557e4f82a5a8570741c42ae2 GIT binary patch literal 100 zcmd1!WtP#vIyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;gW=S*9m$4)g7k^;7m2 zKfmD|d^y1_WM;>kzLiqHvk%Jrozf$in39{B7oS>DkXe)(pORRTI>jqv(yz2qJpjqF BD#ri- literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/2f320eaf6c96a4bc8f5852b93ae1ff3b b/back-to-the-future/flask_session/2f320eaf6c96a4bc8f5852b93ae1ff3b new file mode 100644 index 0000000000000000000000000000000000000000..52b091629ccc7e9c0c691dee52eb062d3f619036 GIT binary patch literal 100 zcmWI0G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaK@yJ8$PE&b?QAI*Ott zy48Zy4KKTN?qB`7D|&%ea{qyaQ+fmwQ*tx&;!`UMGK*5DkXe)(pORRTI>n2B!FJpgA~ BD0=_^ literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/30a4aea5a1b256f0c0910058991850a2 b/back-to-the-future/flask_session/30a4aea5a1b256f0c0910058991850a2 new file mode 100644 index 0000000000000000000000000000000000000000..4cc9ddfb2c654dbe5ef9dc29ea0a019b999554cf GIT binary patch literal 100 zcmdNso4=0KWF-( ziTBy0Y}<6o6AJG8Dt=oo#CEY@N{?V-N^WLed}>8OW>IQT;%BcZ z3w-eIRb76Sa+>(QweoukxDpb$r}PLWrsQVk#iv#jWEQ2yrzDo7PVrJIznEUC2LQTC BD7gRt literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/30f34c45eb7fef683df37d944322633f b/back-to-the-future/flask_session/30f34c45eb7fef683df37d944322633f new file mode 100644 index 0000000000000000000000000000000000000000..23547f2cd2d3e73d2f33bf3d02d76328fe7dd83c GIT binary patch literal 100 zcmexsYL?N!IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;iuIq*_PWoY`AHyr>EO zWFPnL$K}P1i4T4I}4+O)_=VoHx-VoGjiUVLgrL1s~Ed`eJ+cPqL%5UdH@LN BD=`27 literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/3104ce046559c1c253a800af12c11e64 b/back-to-the-future/flask_session/3104ce046559c1c253a800af12c11e64 new file mode 100644 index 0000000000000000000000000000000000000000..cddc418891a22a9c9b8b44e8de2e4f4dd8e3ce0f GIT binary patch literal 100 zcmccp*DRxfb!sRB1k_H^=;4YlNG-}u%uCHHnbOh2oSj-Z#aSWjKx9U?MRC@T+`MIm zew&z|msrI4I%%fFC_Soq8OW>IQuJf!YzQpS*=y zW7L)&`*L!_zjYIOe`%T+s}}#gHKj)|F(o%MFFv)RAhRenJ|(dvb&A*CuQSq1^#F|i BDn0-J literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/322c54936eb99d2eee4406c2495ac1f5 b/back-to-the-future/flask_session/322c54936eb99d2eee4406c2495ac1f5 new file mode 100644 index 0000000000000000000000000000000000000000..c04d7af32140840662f1fb72692538b4d8b77228 GIT binary patch literal 100 zcmZ?QG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaOR{wzH+CsNj3nii;bo zJ60;@)g5(c?0cxNubHq)$ literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/324b77917a59fd8c923e074f24fe00e5 b/back-to-the-future/flask_session/324b77917a59fd8c923e074f24fe00e5 new file mode 100644 index 0000000000000000000000000000000000000000..c98d02d880a9cdc93c18d0f779aeaf0358d96e74 GIT binary patch literal 100 zcma#mG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaIVml8LEje&%d`MfYNj z+A7Z-IeX8mg*~;NBez%ndEuYeQ+fmwQ*tx&;!`UMGK*5UYnIW#IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;c~Pl|9cm{rjCA@2iVA z%fG08X5!)3Shp*0lk>?*#wW{XPw5d%Ov%m6i%+d6$Sg{YPf09Eo#OT5+_SV&Jph-Z BDe(XR literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/341041db96bd1ad1e7781a5be2fa0091 b/back-to-the-future/flask_session/341041db96bd1ad1e7781a5be2fa0091 new file mode 100644 index 0000000000000000000000000000000000000000..5783354c2702ad37ccbb0d6b4701f0e03b5f2ec1 GIT binary patch literal 100 zcmX@FX`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;bO}U0_oC3avfsi_&Gk ziPTTXdmZ^eFt0^%`kARpU5#cZrt}CVrsQVk#iv#jWEQ2yrzDo7PVw^p!<=5K2LMN@ BCz${M literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/34ff82dc7a0ef493fa1869c893dca9da b/back-to-the-future/flask_session/34ff82dc7a0ef493fa1869c893dca9da new file mode 100644 index 0000000000000000000000000000000000000000..fe6ff3e9347094ee9bbae3349ade4440b9a91690 GIT binary patch literal 100 zcma#kG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaKsmeJoXb^D1A?W52UY z9}4g5vXET3!Q$$dgd@x2cQo%lIHgB0F(o%MFFv)RAhRenJ|(dvb&6Nq=eYDzJph6n BDhB`n literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/3560f0c435443111efbf141078742f06 b/back-to-the-future/flask_session/3560f0c435443111efbf141078742f06 new file mode 100644 index 0000000000000000000000000000000000000000..2c9be29fc25d9ce76a12aebbefb241d681044da6 GIT binary patch literal 100 zcmeaWHqU5aof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaPzDkXe)(pORRTI>pQD#g4R6Jpgjf BDv1C9 literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/35c1bd6a211d52bdc6395e2bb660143f b/back-to-the-future/flask_session/35c1bd6a211d52bdc6395e2bb660143f new file mode 100644 index 0000000000000000000000000000000000000000..128e8fa4e8ed0e6f285473801926ca2379effc4e GIT binary patch literal 100 zcmaE^X`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;b;+cB06dz&Q+_e`*3X z8`Wpe`Nu50vAS{gj9YH%%@?k|n$jbfn39{B7oS>DkXe)(pORRTI>jsf@x`=KJpe_y BD5L-Y literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/35d4108dbd8fac5efa936ceae3778e69 b/back-to-the-future/flask_session/35d4108dbd8fac5efa936ceae3778e69 new file mode 100644 index 0000000000000000000000000000000000000000..dde9f3ecafd658f709d39420e6afb6c4a1aa3437 GIT binary patch literal 100 zcmezT+bpAjb!sRB1k_H^=;4YlNG-}u%uCHHnbOh2oSj-Z#aZEockFYI1zyEVs+F>j zMJ!3`QY*4o?%vk$Cb8Ok-`q!+r}PLWrsQVk#iv#jWEQ2yrzDo7PVxGzT$x^~2LQ)# BDZKyy literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/36319ada12c1c741080f25750d19d96f b/back-to-the-future/flask_session/36319ada12c1c741080f25750d19d96f new file mode 100644 index 0000000000000000000000000000000000000000..47a1a8c27088c730c14b0e871fdd5d50a0ea26f5 GIT binary patch literal 100 zcmd1RG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaLFyney^zS)}Op$*O&k zXJ7u?S^nr^1>*wFmtSi4KUi6RZc2|}VoGjiUVLgrL1s~Ed`eJ+axVg>1?dH}Tr BD)j&W literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/365ae5ec1d81f1a0e2d8e85fc19c7c73 b/back-to-the-future/flask_session/365ae5ec1d81f1a0e2d8e85fc19c7c73 new file mode 100644 index 0000000000000000000000000000000000000000..902ef667dd286b900a7fce86644b2ed4bd934c7c GIT binary patch literal 100 zcmb2LG0$jVof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaQmZYL52gUZD#Y?L1Yg(xu0Agw+ A7XSbN literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/3952e9811cc447a49f1f7b36cf046cb4 b/back-to-the-future/flask_session/3952e9811cc447a49f1f7b36cf046cb4 new file mode 100644 index 0000000000000000000000000000000000000000..73b09c2f98d35da7a72ccb80a0429602d698dcd6 GIT binary patch literal 100 zcmdm`X`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;is%;$wmKr7@|~v{T}y zKj2qi%pe;4uT5k^aPnR4Tgw9GP3aL#Ov%m6i%+d6$Sg{YPf09Eo#JIBxhlO>4*)bn BCf5J} literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/39d6ad670b8f10ada9ba0fe9481d661b b/back-to-the-future/flask_session/39d6ad670b8f10ada9ba0fe9481d661b new file mode 100644 index 0000000000000000000000000000000000000000..ba9805dd556f9dc856f122235934be49b4d0bb72 GIT binary patch literal 100 zcmWI1G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaItm@r`0VFh@#z`c6ka z)5Fg?pB>`!JYAmsK0!IFgil^)N{?V-N^WLed}>8OW>IQ`O1z0{{$G BCZzxX literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/3b8ff83a8a50d3e0e3900805ecb3faba b/back-to-the-future/flask_session/3b8ff83a8a50d3e0e3900805ecb3faba new file mode 100644 index 0000000000000000000000000000000000000000..a8ae65836d4c05eecc9b662b5db721451c8ffac8 GIT binary patch literal 100 zcmdm`X`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;azp7+ushW$R`(*W1R; z$F>~(x;yFpwD483M~^1?=_!17nbISen39{B7oS>DkXe)(pORRTI>l?}*BR-hdH{8| BDVhKP literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/3b9218f16c20b24822c1e7c2b21b2dbc b/back-to-the-future/flask_session/3b9218f16c20b24822c1e7c2b21b2dbc new file mode 100644 index 0000000000000000000000000000000000000000..28b0a95ff55b7d41f1376c094f6178c28af868ab GIT binary patch literal 100 zcmea$G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaNe}XOqDj*W;5Hd4HDG zc1XXt&qtlmRjzynbISen39{B7oS>DkXe)(pORRTI>pP2|3!MK9soj6 BC!7EP literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/3bb632bde3434d70741228eda0bdf763 b/back-to-the-future/flask_session/3bb632bde3434d70741228eda0bdf763 new file mode 100644 index 0000000000000000000000000000000000000000..6b499fc9ad298af6289515d3ac197238f9206b49 GIT binary patch literal 100 zcmX@9X`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;g{>YM<4-5<`dmdlz5g zX|(W546C}!y#HcD#-z(9{+P1Pn$jbfn39{B7oS>DkXe)(pORRTI>qZm_KEaTJpf*o BDBb`7 literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/3c32e3388a87a84a095d0afbe80823e2 b/back-to-the-future/flask_session/3c32e3388a87a84a095d0afbe80823e2 new file mode 100644 index 0000000000000000000000000000000000000000..1878ea740e08506c0f8e7f30259d258f5228d73a GIT binary patch literal 100 zcmdm~X`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;iuXcSUrSnX+}&LI?AY z?#w@`BwLpGN;rQ@`QZ2cs|xSTDLsOTDY=<>@u?LBnMJAbDTyViQ@nP3j!Q4q0{}w` BC@}y4 literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/4045d29f0b79c1d08649341810340839 b/back-to-the-future/flask_session/4045d29f0b79c1d08649341810340839 new file mode 100644 index 0000000000000000000000000000000000000000..c9d0f96d839b0a72289292b2be1b0e59f9c0392d GIT binary patch literal 100 zcmdnSZJyDDkXe)(pORRTI>jp}ASS(34*)(M BCtCmj literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/41e7ceab99b36b9c6ddfceda67b23d86 b/back-to-the-future/flask_session/41e7ceab99b36b9c6ddfceda67b23d86 new file mode 100644 index 0000000000000000000000000000000000000000..852d8f0583bf9122e3199cd327abd9d883447179 GIT binary patch literal 100 zcma#hG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaK6czw-6Xbx$PPJGabn z^kaSectVH|Q!Hz@C CNh+KG literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/44fecfba0dc706bae1979dd26541f996 b/back-to-the-future/flask_session/44fecfba0dc706bae1979dd26541f996 new file mode 100644 index 0000000000000000000000000000000000000000..43890249fe0318d38d77d5c85fb963889ff7bb61 GIT binary patch literal 100 zcmX@BX`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;e9HN#DG4_SXUw4RSnW z)2D^~o_;#%)76f!q>`dzKmGgCrt}CVrsQVk#iv#jWEQ2yrzDo7PVw^nAC+FJ2LO(a BDT@FA literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/4637adc8fcbadc7335a5db1afba82d5b b/back-to-the-future/flask_session/4637adc8fcbadc7335a5db1afba82d5b new file mode 100644 index 0000000000000000000000000000000000000000..a48d4e4c9e2eeae767a1876e171aac6ef53da75e GIT binary patch literal 100 zcmdn1X`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;hgR5_Yij@^|@Sw_Jm3 z_P4HVKDzejk~2n%NqK^y6V5NXKcz=7F(o%MFFv)RAhRenJ|(dvb&8kmuajw|dH|mh BDo+3a literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/46d7e4294b97ab96e98ec04a25c1079d b/back-to-the-future/flask_session/46d7e4294b97ab96e98ec04a25c1079d new file mode 100644 index 0000000000000000000000000000000000000000..78301b67054b8978dd65f49fdd156bcffe42fbb2 GIT binary patch literal 100 zcmZ?PG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaLfzcir?+`-3g@B99X1 z#s^IIxPS5Uql1Avy{DR-TOhXd&6FO&#FX63y!h0Lg3O}S_>{zw)G1zvBN)?5^#GWT BDeV9N literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/474f2efa7ab0b8ebdd5b31d0e04d8936 b/back-to-the-future/flask_session/474f2efa7ab0b8ebdd5b31d0e04d8936 new file mode 100644 index 0000000000000000000000000000000000000000..1a4bfc3189307ec1f23018618e176a8c62703d75 GIT binary patch literal 100 zcmb=hHP2{Zof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaJfkcr7_bsyfl@`tvzw z7Gy9vmui{tPd)MA)U}O2w(YsGY)X${VoGjiUVLgrL1s~Ed`eJ+aZ3}4bq^#F;O BDslh- literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/475265cc6b2f15d7876969341f9ecfe5 b/back-to-the-future/flask_session/475265cc6b2f15d7876969341f9ecfe5 new file mode 100644 index 0000000000000000000000000000000000000000..372274d8fc70134e9317d16e79071d893f2edd6f GIT binary patch literal 100 zcma$3W|q;wIyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;b;CAx*tpLWm=E1^dqv zX}k{;e9!lWUty|J+z?`A$1^8$N{?V-N^WLed}>8OW>IQ z_VB7KtP9-BbMZ3Y46TbhC%xGgKBY%6F(o%MFFv)RAhRenJ|(dvb&8kEk-+p)JpfQL BD1HC{ literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/4881cccd9d4e554d12b3b4cb562e121f b/back-to-the-future/flask_session/4881cccd9d4e554d12b3b4cb562e121f new file mode 100644 index 0000000000000000000000000000000000000000..db2296fcc7a14589adce6dc729c4f4840c5098f9 GIT binary patch literal 100 zcmXTWG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaNGC{`cMGm*&<5`9)Ei zpRN>Yca50P_w1hO3_ojg7k;)iQ+fmwQ*tx&;!`UMGK*5>;O#FX63y!h0Lg3O}S_>{zw)G1z1|0txF>Hz@H CwkyE^ literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/4b4d9e68e4fce71f0456346365a32eaa b/back-to-the-future/flask_session/4b4d9e68e4fce71f0456346365a32eaa new file mode 100644 index 0000000000000000000000000000000000000000..904c3d9f347f1a56028cbfb69064d9327dc8a629 GIT binary patch literal 100 zcmYe&G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaK?`{j+NNmV-Ovs^i!m zMxL&+UUjf)aS7j*n$ylfhwSy3rt}CVrsQVk#iv#jWEQ2yrzDo7PVq`?`ITO(2LM+3 BC~N=# literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/4cf826448fa3bd52099306ea9b466de5 b/back-to-the-future/flask_session/4cf826448fa3bd52099306ea9b466de5 new file mode 100644 index 0000000000000000000000000000000000000000..6590cb1da07066dc3d0782babbfc3fc3d3367bac GIT binary patch literal 100 zcmZ?QG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaLdw%HwpJ;-kwj(INao zMSNp@u?LBnMJAbDTyViQ@r;1+ozZ60RZi( BCBOgx literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/4fc63499e023c5028c6a9da7d5480d60 b/back-to-the-future/flask_session/4fc63499e023c5028c6a9da7d5480d60 new file mode 100644 index 0000000000000000000000000000000000000000..d4a4319dfb9090ba8da0fd8eb12222ad3a54b9c4 GIT binary patch literal 100 zcmd1)ZkEx&IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;iuc(C;5ot;gN}{gK{S zS9)w}XVdG*-z$gC***9El_@=fi7C06dGVHz>; C(JdYT literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/4ffef230349985069206288eb02d82b5 b/back-to-the-future/flask_session/4ffef230349985069206288eb02d82b5 new file mode 100644 index 0000000000000000000000000000000000000000..d25026a98a8959693d0150be0341ee59b635ecab GIT binary patch literal 100 zcmd1SHqU5aof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaKs%$g1~b|2xk6U$oXp z$CaJS3H6cvWPG6UYl_d|50^RIrt}CVrsQVk#iv#jWEQ2yrzDo7PVssjaXhV54**dP BDDMCO literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/51cecbf8195bfc6a13e0da953bd48148 b/back-to-the-future/flask_session/51cecbf8195bfc6a13e0da953bd48148 new file mode 100644 index 0000000000000000000000000000000000000000..1ca7b7f6a0d2edb4c6735a50690295685a2b21cf GIT binary patch literal 100 zcmZ?LG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaKsbTzAp>(wQU6xEt(! zH>x{+d^LaLy^HgIsHeOvld0OOHl;@}F(o%MFFv)RAhRenJ|(dvb&8jh+Jp2`JphG- BDR=+? literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/51eaea4bc081a86a1f3b45cb97d62cd2 b/back-to-the-future/flask_session/51eaea4bc081a86a1f3b45cb97d62cd2 new file mode 100644 index 0000000000000000000000000000000000000000..3256c642d8dce4b3379f92a573fe7a291aa449ea GIT binary patch literal 100 zcmd1NG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaOo|`0&Bxqg~Huel+1M zTX22f>$8EYp7k!_Q;6?SYYsL$KBY%6F(o%MFFv)RAhRenJ|(dvb&6Mxf>C;@9ssr3 BDNO(X literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/52cdc5894b84ba73ce12a4e2eccc036b b/back-to-the-future/flask_session/52cdc5894b84ba73ce12a4e2eccc036b new file mode 100644 index 0000000000000000000000000000000000000000..f59a3475ccabd1fd77eeca8ec9053ee1da4b45fd GIT binary patch literal 100 zcmYe%G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaLH_Xx_T)Ybv z9ar9()S+70x?*O%&8Z9R<+G>8PU#U$Ov%m6i%+d6$Sg{YPf09Eo#ORmM`(Jf9sq(_ BDdhkF literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/535ea9247d222f784cbe0fc03b48253c b/back-to-the-future/flask_session/535ea9247d222f784cbe0fc03b48253c new file mode 100644 index 0000000000000000000000000000000000000000..0d1f30e03ccf32f04ed2d5e345dbd5e8c9e233a4 GIT binary patch literal 100 zcmc~ZGtX#Xof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaK^BJS+9XK3z`pb?r-@ zpI=vBsQhXE+Q&7k{628G96x?IbV`q4VoGjiUVLgrL1s~Ed`eJ+a$XWsNuJph4t BDEa^Z literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/53a2c58e148b94e301ec515a879fa4c0 b/back-to-the-future/flask_session/53a2c58e148b94e301ec515a879fa4c0 new file mode 100644 index 0000000000000000000000000000000000000000..12b8dec4930171c6af7cce6aff89bdf52f3b6eb3 GIT binary patch literal 100 zcmdmCYM#-+IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;gXe@ZzHrZmpj-U$y(8 z?w#^OVsR2urx;(Hc%{+Ry&$B0$CMty#FX63y!h0Lg3O}S_>{zw)G1yTs;kmV^#HS# BDRck; literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/549ba9bf9c35c315878dea93d90b5258 b/back-to-the-future/flask_session/549ba9bf9c35c315878dea93d90b5258 new file mode 100644 index 0000000000000000000000000000000000000000..4962914ec2b9a1df63468485c30669038d8d704c GIT binary patch literal 100 zcmWIiX_nEzIyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;gXUU+M12@}s9@t9yg_O3JY zrtb;8qr{zw)G1!O{G!uK^#I0y BDklH{ literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/590bd52c75abd2f0d3639406b0f1c30d b/back-to-the-future/flask_session/590bd52c75abd2f0d3639406b0f1c30d new file mode 100644 index 0000000000000000000000000000000000000000..b5f41f5dfe4649ebd544701c5dff15c9fddbbf85 GIT binary patch literal 100 zcmWI5G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaPz^rL*lqnBu$(->esC( literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/599a13187cf3905bd83c51a88e15051b b/back-to-the-future/flask_session/599a13187cf3905bd83c51a88e15051b new file mode 100644 index 0000000000000000000000000000000000000000..3e3b21b8b41fe218e8cac1ebd8bc27f1f2dfb6e3 GIT binary patch literal 100 zcmZqYH_vEbof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaPD*|KMPMe|>M|*WDkXe)(pORRTI>oDfN?CfT9susS BD~tdD literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/5a348ab337dd4e8e7c4e4cea1f353ff7 b/back-to-the-future/flask_session/5a348ab337dd4e8e7c4e4cea1f353ff7 new file mode 100644 index 0000000000000000000000000000000000000000..895350b2e1e6cd8c3c66c703453c9d35e2e49914 GIT binary patch literal 100 zcmdm`W0ujtIyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;bODTkmDkXe)(pORRTI>oC(RyMs<4**)B BC(Qr= literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/5b424fd21abff51f1e624a85d51b98d8 b/back-to-the-future/flask_session/5b424fd21abff51f1e624a85d51b98d8 new file mode 100644 index 0000000000000000000000000000000000000000..17c5326fabac80c522bb59c158b3f9f3d26e12e5 GIT binary patch literal 100 zcmdm?X`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;it<>(O)His-Ah&Jy3c zmh;+gohK3IK1)C&=JnId*B@>LGkAW@u?LBnMJAbDTyViQ@oBja;BH+0RS`v BCn^8{ literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/5d51a79f68d6250ed5b2f541cad26233 b/back-to-the-future/flask_session/5d51a79f68d6250ed5b2f541cad26233 new file mode 100644 index 0000000000000000000000000000000000000000..90e7cd0a47491da52e46c2d50163fae4bad0df73 GIT binary patch literal 100 zcmaFQX`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;i6tpRLZ^&)G2F#9G}_ zpw3IEV$%P9pMwm&nj13&vLEYB=@Cp!$<54*Ppv4(EJ}?}Ni0d7;`PW?D!o(>0H1^; A0ssI2 literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/5d651b3090eeb753c83660ab85f8f92e b/back-to-the-future/flask_session/5d651b3090eeb753c83660ab85f8f92e new file mode 100644 index 0000000000000000000000000000000000000000..bb7972c1eeffbc5863bed4744ea7e628053c103e GIT binary patch literal 100 zcmca;Z=TV>IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;b-n_Pzd_vu}nj5ITB) z!@e&DSDKQUPkq?Y^}uOM+i}yRuqi!)i7C06dGVHz=( CZz~@F literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/5da1f95513e0a30f161b44e6a72ccd9e b/back-to-the-future/flask_session/5da1f95513e0a30f161b44e6a72ccd9e new file mode 100644 index 0000000000000000000000000000000000000000..a7cbb678577cb52d7afe754a5d63e6d788791d58 GIT binary patch literal 100 zcmX@1X`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;c}8;r#te&)0k}n47k` zAoRRPz)V*W{_5yAZ0oX9PN*oiOz9C!Ov%m6i%+d6$Sg{YPf09Eo#N#o{Up6q4*;MI BD6Ieh literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/5e0b5119963e598a12b2e8d11d826f87 b/back-to-the-future/flask_session/5e0b5119963e598a12b2e8d11d826f87 new file mode 100644 index 0000000000000000000000000000000000000000..c801723795fbc50cf2eda537baf83c9bf15b3600 GIT binary patch literal 100 zcmX@BX`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;bO~Z;{)2rs6~5ht+jA z`z~YCd2>+W^1wv7rj2We@c&FVoGjiUVLgrL1s~Ed`eJ+atUuUG3>Hz>( Cwkb{k literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/5e12e69a160901f3ba1f2aa5d61e6c55 b/back-to-the-future/flask_session/5e12e69a160901f3ba1f2aa5d61e6c55 new file mode 100644 index 0000000000000000000000000000000000000000..1b11f4fd2f7a4727f6a7ca60f564c96cb698e1f7 GIT binary patch literal 100 zcmX@CX`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;bNiH8AY#7bRDj&D+ek zPEI>oxbSMRrud!Q&+8J8e+!mhJ*7u5F(o%MFFv)RAhRenJ|(dvb&A)a#>MHSdH{Da BDRck; literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/5e3ccf08d66b4f01faa3310cd9c2fa7e b/back-to-the-future/flask_session/5e3ccf08d66b4f01faa3310cd9c2fa7e new file mode 100644 index 0000000000000000000000000000000000000000..2f766044ef7c6b59253d899cc3effef13436b6d0 GIT binary patch literal 75 zcmaF*(JZ5Zb*c>m1k_H^=;4YlNG-}u%uCHHnbOh2oSj-Z#aZEf-t(-`K-cy5I?9(8 coM!x|lV!Z literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/5e650f50f36a1ec55b0481b8cd59cc16 b/back-to-the-future/flask_session/5e650f50f36a1ec55b0481b8cd59cc16 new file mode 100644 index 0000000000000000000000000000000000000000..92e4cc6a86ff2287f2df0b7e5ac9bd883b9f3ae6 GIT binary patch literal 100 zcmYe*G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaO3Wh`VVOx_MWHm|55V z6BBB0?#oy@-S)Lv_ovIB{fnFbP3aL#Ov%m6i%+d6$Sg{YPf09Eo#ORW^GjN(9srrw BD)#^Y literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/5ed3806c4c1423f7fe4b95ff8ba7b051 b/back-to-the-future/flask_session/5ed3806c4c1423f7fe4b95ff8ba7b051 new file mode 100644 index 0000000000000000000000000000000000000000..a106e17f446c3b6568ace72ef5db4caabd428d92 GIT binary patch literal 100 zcmcblX`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;iuc^^x2C;uSBt8*0o9 z3-_%E3wySFvtU{H-s;CUmQ@?6PU#U$Ov%m6i%+d6$Sg{YPf09Eo#GXA?RR>q9ss{U BDv$sG literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/5f9f092c20daaadd6e258cc43af81769 b/back-to-the-future/flask_session/5f9f092c20daaadd6e258cc43af81769 new file mode 100644 index 0000000000000000000000000000000000000000..704615aed025005d453a1c5af6bd9953a045051b GIT binary patch literal 100 zcmaE)WuDQ%IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;c|&@ul>^y>piT^@F44 z8tWgmp7x`W&-eOE^L6>nsf9fgr}PLWrsQVk#iv#jWEQ2yrzDo7PVst}S(sj`2LP4( BDQo}$ literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/5fb994cf3f73a61d50f371985221734c b/back-to-the-future/flask_session/5fb994cf3f73a61d50f371985221734c new file mode 100644 index 0000000000000000000000000000000000000000..809d2173eb576bdfe1bb36f7a13d5fe8f9c7e264 GIT binary patch literal 100 zcmea#G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaOos7jRb2>FDv@mIv8I zZ@Ns#xA8vP;2HBIJnzr0Ip28;rt}CVrsQVk#iv#jWEQ2yrzDo7PVw@d^fs+j4*)7V BC?@~_ literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/603c3b0f06af7b425b5efd8e9e3b745a b/back-to-the-future/flask_session/603c3b0f06af7b425b5efd8e9e3b745a new file mode 100644 index 0000000000000000000000000000000000000000..eb93fbb4ed3a369ee2e2ddfe1a300520a0b8d36b GIT binary patch literal 100 zcmWI4G|OmUof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaOQA!f?9%*aczNMDeGL zYFcblcrMph8GViZxN*n+e_xZAPw5d%Ov%m6i%+d6$Sg{YPf09Eo#GYfZ)Bk{8{SJcIvL$eoYEthn39{B7oS>DkXe)(pORRTI>qbR<%8*^dH`>( BDdzwH literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/618643ea4d02452e823ec6df41f52bb0 b/back-to-the-future/flask_session/618643ea4d02452e823ec6df41f52bb0 new file mode 100644 index 0000000000000000000000000000000000000000..87303637a1ce6396546a6acb06f5aa7abc1b0d94 GIT binary patch literal 100 zcmX@7X`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;bO?>e|+y7lWUlo^vKU z=}yi`mYHd?BDY-&?=4iQyAi3uJEcc3F(o%MFFv)RAhRenJ|(dvb&A)yO|Q~R^#Hg2 BDo6kT literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/6211c8e9cd4e37476e3ae51a811e6b33 b/back-to-the-future/flask_session/6211c8e9cd4e37476e3ae51a811e6b33 new file mode 100644 index 0000000000000000000000000000000000000000..121e45bdacd06c8ebcc365ba149df11abf150529 GIT binary patch literal 100 zcmYe*G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaJgeoV%}+Gh+u!Y`*2% z`F02nML ArvLx| literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/62f15f1e29ed09ceeec0a334371c98ea b/back-to-the-future/flask_session/62f15f1e29ed09ceeec0a334371c98ea new file mode 100644 index 0000000000000000000000000000000000000000..41fbbaa3ea4866685a798fe426bfe72c94c1d52a GIT binary patch literal 100 zcmaF&#Vn(Nb!sRB1k_H^=;4YlNG-}u%uCHHnbOh2oSj-Z#aUsWHiyE*_S0+}J5vrx zB?K(8Cd2PjFvCdNOZDC91PU#U$Ov%m6i%+d6$Sg{YPf09Eo#GYVxH!F34*(kI BCvpG) literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/655a2ab36539350da3457188ca1b7936 b/back-to-the-future/flask_session/655a2ab36539350da3457188ca1b7936 new file mode 100644 index 0000000000000000000000000000000000000000..f4984e54febd8d51bb6b7418c418ce9121db0c90 GIT binary patch literal 100 zcma#iG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaK6ybZhh5$is091wD2y z-YLv{BQZUusN}WyM}DPRiGAf8r}PLWrsQVk#iv#jWEQ2yrzDo7PVtHkxsYC}2LL*s BC!+uW literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/658ef25095bee94c521ccb986c8605a0 b/back-to-the-future/flask_session/658ef25095bee94c521ccb986c8605a0 new file mode 100644 index 0000000000000000000000000000000000000000..8c3a39203181f1cb824007ade2118b9337f53778 GIT binary patch literal 100 zcmdm^X`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;gVW@X+QOrU@D=Z~mG2 zQ@SteUxDENeXfkm{YLLor!t+@oYEthn39{B7oS>DkXe)(pORRTI>l?x#0zPqdH`}1 BDCqzI literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/66284e62f56cd4899ad8d91118241103 b/back-to-the-future/flask_session/66284e62f56cd4899ad8d91118241103 new file mode 100644 index 0000000000000000000000000000000000000000..e2a733e2576fa6a2f9757dd73b44cf4058c1a878 GIT binary patch literal 100 zcmdP@W0ujtIyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;c~BQT%PG-4m(T-@Fy9 zlhYX!Z7dTf_ptD{He}zq&wN*GN{?V-N^WLed}>8OW>IQ0RTBI BCv5-# literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/66943cb90e86f8a416fd87c01c338159 b/back-to-the-future/flask_session/66943cb90e86f8a416fd87c01c338159 new file mode 100644 index 0000000000000000000000000000000000000000..88fb3f1635006a8e7a681565c2ec01390e77d3a6 GIT binary patch literal 100 zcmZ?JG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaNFfCLKGsPtl6$Q>O!` zpqp?^+>f9y)27=dFsH_G-`2S~rAII^B{wrKKDDACvnVw_C9x!Rir0awztcU zmTcR!|9jenwnu;d<}}{szpyS*d`gdCVoGjiUVLgrL1s~Ed`eJ+cWZ4T+BdH|t; BDyIMd literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/680932858c7c7bad9b25a0b904b14cea b/back-to-the-future/flask_session/680932858c7c7bad9b25a0b904b14cea new file mode 100644 index 0000000000000000000000000000000000000000..cb6ed8a5fcc8a18e596ffd3f6896111838c1ea94 GIT binary patch literal 100 zcmcE1G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaM?#!3rt}CVrsQVk#iv#jWEQ2yrzDo7PVw3&a44-*4*=w1 BCXoOD literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/681fac0a6daf110c6de16ea27eed86de b/back-to-the-future/flask_session/681fac0a6daf110c6de16ea27eed86de new file mode 100644 index 0000000000000000000000000000000000000000..a8c996fe083f924678b819847439482ae819ffe9 GIT binary patch literal 100 zcmWgmYL?N!IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;b;aHS>sKev!V3pIP`x zSA*8Q1?MmA{=LHM(dEldlVx5gOz9C!Ov%m6i%+d6$Sg{YPf09Eo#G|n)0SSU2LNGQ BC?Ws= literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/68e7a49a02a4835ef6c55562b07dbee2 b/back-to-the-future/flask_session/68e7a49a02a4835ef6c55562b07dbee2 new file mode 100644 index 0000000000000000000000000000000000000000..8890a5d2a1d45be5b41f5ee6a24a4b0324f1bd89 GIT binary patch literal 100 zcmYe)G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaLfu&a3~xZ_ne@ literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/694f624b9ac56068b2b10be0b73cbe88 b/back-to-the-future/flask_session/694f624b9ac56068b2b10be0b73cbe88 new file mode 100644 index 0000000000000000000000000000000000000000..0ae83e852332926f76502baa00981357b8c75b5e GIT binary patch literal 100 zcmb=@G|OmUof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaPz~RdIi4~&bJpir} BDUtvH literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/6cd96cb30ee9d148980fe470ad234108 b/back-to-the-future/flask_session/6cd96cb30ee9d148980fe470ad234108 new file mode 100644 index 0000000000000000000000000000000000000000..9e66b7e3f4a4fa2579b36ab011ed6ae3f38e99ee GIT binary patch literal 100 zcmb0#H_K>Xof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaM@3SXA3G{zw)G1z`>DkXe)(pORRTI>qb$^Q81rJpf6Y BDL()J literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/6ffad316904ff85580781e6de604193b b/back-to-the-future/flask_session/6ffad316904ff85580781e6de604193b new file mode 100644 index 0000000000000000000000000000000000000000..355861ade2ffcb12f05b98c701e807228ade7be6 GIT binary patch literal 100 zcmX@3YL?N!IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;b;!vR2lh$C9#beGEKJ9m>PU#U$Ov%m6i%+d6$Sg{YPf09Eo#J)o@bdIhJpg66 BDPI5p literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/7104cf420d98e3ad5d4a7ec2774bf6d8 b/back-to-the-future/flask_session/7104cf420d98e3ad5d4a7ec2774bf6d8 new file mode 100644 index 0000000000000000000000000000000000000000..5e005f142d2705097079b8537a7bc8fd99a781f5 GIT binary patch literal 100 zcmea%G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaKrKrdOhpdTcw#cK_v` zk8jRgSg^Nn`nvazI%NO_)!|LY7Ebs- zGa~-&O@S?Sv24y;MKX?7YAuWtoYEthn39{B7oS>DkXe)(pORRTI>pQP@x`=KJphs4 BDKY>6 literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/7379c7079d5b3f39a728ca4db1efc909 b/back-to-the-future/flask_session/7379c7079d5b3f39a728ca4db1efc909 new file mode 100644 index 0000000000000000000000000000000000000000..677b56705ecb52d92da4a4949ff35f914eb9d879 GIT binary patch literal 100 zcmd1OG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaOpN5XAm+MLuWl#Fss~ zugYH>ZQ4*K)hUr|t$+Q#{cDFkQ+fmwQ*tx&;!`UMGK*5J%@*%Zt-X^#GPV BDLMcE literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/73d90008cfe88e6bcbd7d981ef97ce73 b/back-to-the-future/flask_session/73d90008cfe88e6bcbd7d981ef97ce73 new file mode 100644 index 0000000000000000000000000000000000000000..36eb8f403bd75c6296719272e780dcb623917a90 GIT binary patch literal 100 zcmX@8X`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;itr)Ia81+(gTey9_BS z<8m$2j;`1{Z}K{cd)6hThwS1Vrt}CVrsQVk#iv#jWEQ2yrzDo7PVqXJbU3Y44**xP BC|Lji literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/75460bf321af4f464430c25b892c6401 b/back-to-the-future/flask_session/75460bf321af4f464430c25b892c6401 new file mode 100644 index 0000000000000000000000000000000000000000..722c6c0867e8d46166d2d20fb17f093ced8ae64b GIT binary patch literal 100 zcma!4Gs|dTof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaJ(QzkTddWV-Oqw{9m@ zqffN`*s%Fi#q>Jk4@ve1G9zkYrt}CVrsQVk#iv#jWEQ2yrzDo7PVtH~=1DKr0|0jx BD02V+ literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/75b9032eb9a907c8bdf10a742869b93b b/back-to-the-future/flask_session/75b9032eb9a907c8bdf10a742869b93b new file mode 100644 index 0000000000000000000000000000000000000000..78dcdf525d71f9ccf75d67ed1a92dcce79692bce GIT binary patch literal 100 zcmeDEX_nEzIyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;is@#`#?WOVxU0eIvej zM4#BKkQXQ%P|ciI0{~yE BCldew literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/75e30eaa64fbc5c30aaafd1f6b5a1ec9 b/back-to-the-future/flask_session/75e30eaa64fbc5c30aaafd1f6b5a1ec9 new file mode 100644 index 0000000000000000000000000000000000000000..b9556ebc34f1f6f051425133459adc3182d472be GIT binary patch literal 100 zcmebOW|q;wIyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;fKA+rU>iS8B21q`H%T zmpf*iPcqKl?JL)5n!&Yoi~I!VDLsOTDY=<>@u?LBnMJAbDTyViQ@qZfKbKyr2LK&r BCprKC literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/7611e8459b1c57c139dd815af9c38a6d b/back-to-the-future/flask_session/7611e8459b1c57c139dd815af9c38a6d new file mode 100644 index 0000000000000000000000000000000000000000..a1ca1454817bf0eea2c667a4481ca64bfac7645c GIT binary patch literal 100 zcmYfQYL?N!IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;azLbk4(hd##96&*?pF zy?MQ6w?tUV5Aq*=sL^oh24C{$DLsOTDY=<>@u?LBnMJAbDTyViQ@qmBuBMmj0RT>V BC+z?L literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/7620eeef9aa9bb45aa4105100c2aba28 b/back-to-the-future/flask_session/7620eeef9aa9bb45aa4105100c2aba28 new file mode 100644 index 0000000000000000000000000000000000000000..4af802aa2e6572511f7ce785760e078da744bbab GIT binary patch literal 100 zcmZ2$W1i8#IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;hg=XVZ$lfD0MVcl^@O z$d~Tky5{{FE$>7I{%Mvc4&?c>P3aL#Ov%m6i%+d6$Sg{YPf09Eo#Lgdvnst*4*+M_ BCw%|_ literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/774d132d942cc4e1df0a9b65f56d989d b/back-to-the-future/flask_session/774d132d942cc4e1df0a9b65f56d989d new file mode 100644 index 0000000000000000000000000000000000000000..e31221f22ba95147c49af1362d4e8320ed1205a6 GIT binary patch literal 100 zcmcE5G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaQ2B*E^8mbkAJq$kgK5 z9`*uSXXW1>QF*7iBXRRvzb2!SDLsOTDY=<>@u?LBnMJAbDTyViQ@re}Zlsm!0RYfK BCNTg2 literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/7b351c93040332dfa14d20943ab1fffa b/back-to-the-future/flask_session/7b351c93040332dfa14d20943ab1fffa new file mode 100644 index 0000000000000000000000000000000000000000..290fe25e60c271586acbe5bf9b26f1b4fc0fe041 GIT binary patch literal 100 zcmd1TG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaM?8m7lan)UHPT>C&jL zNnf938g+d*(iPowvX(Pw67xyPDLsOTDY=<>@u?LBnMJAbDTyViQ@q|Yolh^-0{|OB BCxrk2 literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/7b54bbd31475cdecc2ac6483b3d3d2d8 b/back-to-the-future/flask_session/7b54bbd31475cdecc2ac6483b3d3d2d8 new file mode 100644 index 0000000000000000000000000000000000000000..cf837ec24f84663d358ac9baeb9a5d5863d8188a GIT binary patch literal 100 zcmZ?&W|q;wIyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;dk_S!Vi5lTy|#Onh(o zR+{?GT^49DFJ{xBRZ9<*3jRI2cS?_7VoGjiUVLgrL1s~Ed`eJ+czJm=F&^#DHr BC<_1p literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/7c0aa187bd2b31ed70f027ba782fe016 b/back-to-the-future/flask_session/7c0aa187bd2b31ed70f027ba782fe016 new file mode 100644 index 0000000000000000000000000000000000000000..0c144e3a6573ec1c9c725a8370dedca3a9925bfa GIT binary patch literal 100 zcmZ3cYM#-+IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;hgTW*@jYp65#a+S{G& z_te;$XZq?s{r+M{_LZuRh7T`ert}CVrsQVk#iv#jWEQ2yrzDo7PVrJZz9+3z4*-HS BDfIvV literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/7c5ea86c5f948df7d1b3a080ed06a534 b/back-to-the-future/flask_session/7c5ea86c5f948df7d1b3a080ed06a534 new file mode 100644 index 0000000000000000000000000000000000000000..6e872815e422f248276424cd4bcc6ba7820a89ca GIT binary patch literal 100 zcmea(G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaNf5yY}Fv%4&fi*9pr_ zVk9`c%zwFkvy|JoLHOg^Klj)=r}PLWrsQVk#iv#jWEQ2yrzDo7PVqWxcqhG74*)07 BC;R{a literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/7c7acbc49ba72490e28e859d01efef4a b/back-to-the-future/flask_session/7c7acbc49ba72490e28e859d01efef4a new file mode 100644 index 0000000000000000000000000000000000000000..59ba3162b99fa1c9107f14bd72db1c64ccdb2b3b GIT binary patch literal 100 zcma#oG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaITt-=!SV@$gwDciDGy z-lAPiEWgaz;(mKMa?WP(?I^09(j%CdlADD#p_;&c6zBE0Lt+t ASpWb4 literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/7cf9fbc07f681f6f75da84738dfe4855 b/back-to-the-future/flask_session/7cf9fbc07f681f6f75da84738dfe4855 new file mode 100644 index 0000000000000000000000000000000000000000..c35118fc3040771e31b232670b2eb465ac16595f GIT binary patch literal 100 zcmea%G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaLIPs5|!D-Z_gi6wkP_ z6)k1jDK=}~p?&fUNyn3okA2b=p3)DkXe)(pORRTI>pQPlVf_R9snsS BCqDoH literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/7d04354d3f2607804cc2a300edb151bf b/back-to-the-future/flask_session/7d04354d3f2607804cc2a300edb151bf new file mode 100644 index 0000000000000000000000000000000000000000..b2098ac4db6a18edcdcff822278dc557cf9c35e5 GIT binary patch literal 100 zcmb>ZYL?N!IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;it8cY68u)Ef@kCy#Nw zKCrpPt5*5uEB1E&S~flR1+w>aPw5d%Ov%m6i%+d6$Sg{YPf09Eo#J&y?nhdw9so2M BCzk*K literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/7fec0913063560cd930414cab2393246 b/back-to-the-future/flask_session/7fec0913063560cd930414cab2393246 new file mode 100644 index 0000000000000000000000000000000000000000..47eeb032bfa7503ef967979ee5de8e4a76cf84f8 GIT binary patch literal 100 zcmX@4X`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;bNB!jbqjV_(&)_x2NZ zT+h3|b8^+whbpT!tDL!O(!{|&eM*mDVoGjiUVLgrL1s~Ed`eJ+a-vbWPp^#G%A BDe3?K literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/80261ed5475b925955fd4baddcb851e1 b/back-to-the-future/flask_session/80261ed5475b925955fd4baddcb851e1 new file mode 100644 index 0000000000000000000000000000000000000000..07cb220056eb2553923ef3af100fb776977f8f80 GIT binary patch literal 100 zcmYe+G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaM@k8N1PI-w(%(O%gd8 zd{ZpK)z4}E6;@ik_ta8n#e5;>DLsOTDY=<>@u?LBnMJAbDTyViQ@oN={-%}c0RZIa BCH4RS literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/8191d002f3140fa7d644547d5d095055 b/back-to-the-future/flask_session/8191d002f3140fa7d644547d5d095055 new file mode 100644 index 0000000000000000000000000000000000000000..82e2e74101e44ed5a74369a5bffe8ee22ba94b51 GIT binary patch literal 100 zcmcE5G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaQQK`gL!r>hg(Gj$2Mt z{9UdhoXgB*y485`h7;b?Kde$*G^Ix{F(o%MFFv)RAhRenJ|(dvb&A)1%`a)CdH^i> BC-DFP literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/81cc7626288f9a804b06b66307b37b3e b/back-to-the-future/flask_session/81cc7626288f9a804b06b66307b37b3e new file mode 100644 index 0000000000000000000000000000000000000000..0e5e8cdfecffa975a1b5dbabf11b184d388c734d GIT binary patch literal 100 zcmX?XZJyDn4^=n0SO&5iJ zU)gh^H{4{73&*rcb{@u?LBnMJAbDTyViQ@oy)KTI#x0{}CR BC}#iw literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/846667689ca0fd8add512ce55c04fa72 b/back-to-the-future/flask_session/846667689ca0fd8add512ce55c04fa72 new file mode 100644 index 0000000000000000000000000000000000000000..071e0bfaedf95d01187e9868a0f3be4de593ebd5 GIT binary patch literal 100 zcmcEgWtP#vIyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;it~%joc?s7;0Y3N5WC zUg@d&cqa7i)el_T0wY~#+P^EfHKj)|F(o%MFFv)RAhRenJ|(dvb&A&xZR_+>Jpj^q BDn$SQ literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/8487b52e9db2efa57f688178a32f1280 b/back-to-the-future/flask_session/8487b52e9db2efa57f688178a32f1280 new file mode 100644 index 0000000000000000000000000000000000000000..58978719a6c3bcc8b0a738937af4b6f5bd7553c6 GIT binary patch literal 100 zcmZ?NG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaOpT*Ru4j#h0De8vj(h z)DLPb57L^blZr{(#Ii*K1F(o%MFFv)RAhRenJ|(dvb&A*av>oZCdH|Le BCiVaT literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/8735ce113f7ae5b512f09140a41870d5 b/back-to-the-future/flask_session/8735ce113f7ae5b512f09140a41870d5 new file mode 100644 index 0000000000000000000000000000000000000000..30736ace4a61c198a2a7edcd347140f671d7ea0a GIT binary patch literal 100 zcmX@FX`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;f+ZVdeT*Ls5f&CJ7S- zRu*e|uX8Rx>fduj_kLjg)0IV$} A=>Px# literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/8975db8d69782ad129a121656c516c32 b/back-to-the-future/flask_session/8975db8d69782ad129a121656c516c32 new file mode 100644 index 0000000000000000000000000000000000000000..99953204eda6ab301070a93a0ae78976e489d761 GIT binary patch literal 100 zcmd1MG|OmUof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaP!&V8+TdV|tH)jfb8= zoJIcR$E|@*rOf=n7tJ1hSmn8RN{?V-N^WLed}>8OW>IQDkXe)(pORRTI>qbS<%8*^dH{TF BDh2=m literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/89ccf44a4bfcbe8d6334014843788840 b/back-to-the-future/flask_session/89ccf44a4bfcbe8d6334014843788840 new file mode 100644 index 0000000000000000000000000000000000000000..9db4931618980fbbead0bff592908bec5054b015 GIT binary patch literal 100 zcmaDMXr9r)IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;i8CoL$;}{nGib@284y zxYT@LeomL}`-|t^)=KB>V`NdZpVA|kn39{B7oS>DkXe)(pORRTI>jqV)H}UY4*+gF BC!zoV literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/8b756f4b7369e6ebe3f9878cc3f84735 b/back-to-the-future/flask_session/8b756f4b7369e6ebe3f9878cc3f84735 new file mode 100644 index 0000000000000000000000000000000000000000..48f32b09bc7296bf8db19ed92011b63abeaddd35 GIT binary patch literal 100 zcmZ2tZJyDDkXe)(pORRTI>qaQ_^k9&JpjZr BDVYEO literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/8d01680ee416d58a97dba83e6fd6f876 b/back-to-the-future/flask_session/8d01680ee416d58a97dba83e6fd6f876 new file mode 100644 index 0000000000000000000000000000000000000000..1dab9f81db0048635e9ef942778b845db34ea03d GIT binary patch literal 100 zcmcbjX`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;dk}V)uoXum#&5-E#R8 z{LP3lMEp&L$*MEwa`ntZr{4T0JEcc3F(o%MFFv)RAhRenJ|(dvb&A(zc82s)Jph}= BD8~Q* literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/8dc34737beb8c62cf2ee397263f4884e b/back-to-the-future/flask_session/8dc34737beb8c62cf2ee397263f4884e new file mode 100644 index 0000000000000000000000000000000000000000..01302ffacdaa7477813ecbd2c199a90d124d8dd1 GIT binary patch literal 100 zcmd1MG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaLIV;l%WdPp_%2_ULMK zv%6bjz|O5dX-V=5uB8k1#>{>qI;BT2F(o%MFFv)RAhRenJ|(dvb&6NU{sU>HdH`OQ BD4YNQ literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/8e3397bf2f65f7d28b85af8059742f08 b/back-to-the-future/flask_session/8e3397bf2f65f7d28b85af8059742f08 new file mode 100644 index 0000000000000000000000000000000000000000..c011575e6e34c533a362efaf8b89330019dd7e84 GIT binary patch literal 100 zcmdm^X`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;f*aHScer|E%4dDlYr7 z&rQ0xW6P;O|7sGoF5EDmFDh93V@i);VoGjiUVLgrL1s~Ed`eJ+ct@6M)`>Hz?i C4=R%Y literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/8e944ccdcedd5715279e25e60964639b b/back-to-the-future/flask_session/8e944ccdcedd5715279e25e60964639b new file mode 100644 index 0000000000000000000000000000000000000000..1cf99b8149dc8c97dec9613c63526f8953a1960b GIT binary patch literal 100 zcmYe&G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaO2$wEN|m9j>o!q($UD zteSte`czV-=(9Hm>&hP;{rSVPX-bb^VoGjiUVLgrL1s~Ed`eJ+a>5sc}jdH~Bp BD;59% literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/8f24ad0909b3832bc1175d87e6d6dd67 b/back-to-the-future/flask_session/8f24ad0909b3832bc1175d87e6d6dd67 new file mode 100644 index 0000000000000000000000000000000000000000..5e4e7f423825c60bfcb0369216a3be1f321a4a49 GIT binary patch literal 100 zcmdm^X`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;gXg<{FvD4!r44lWsQk zZa@7(>gJP>WuDn(U)ZyzY}~N9eM*mDVoGjiUVLgrL1s~Ed`eJ%@VxJl`ydH}n_ BDj)y= literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/9022c917e9bb52f7a3f9df245ece4959 b/back-to-the-future/flask_session/9022c917e9bb52f7a3f9df245ece4959 new file mode 100644 index 0000000000000000000000000000000000000000..37aa7d489a879b6e851fe3eaf1974cb088765731 GIT binary patch literal 100 zcmdn3X`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;e9Yx!!x7?eZEgf)vvd zkJ}{MUhLmcydmsv#e?tL)9bW-rt}CVrsQVk#iv#jWEQ2yrzDo7PVw3;voEbw4*+XF BD9r!> literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/920f185c31832f3643f275c94b6b6436 b/back-to-the-future/flask_session/920f185c31832f3643f275c94b6b6436 new file mode 100644 index 0000000000000000000000000000000000000000..20e7165472b00bab58dd417601e0b83070f66909 GIT binary patch literal 100 zcma#kG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaKt3JDhjRci$vc*PSw- zvpSvzE;@JRbl)_o&VGS1uRoLWr}PLWrsQVk#iv#jWEQ2yrzDo7PVu^T=382+9sp<@ BDhB`n literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/93cfdcd1af2e31356ba3e4c797c7180e b/back-to-the-future/flask_session/93cfdcd1af2e31356ba3e4c797c7180e new file mode 100644 index 0000000000000000000000000000000000000000..15f2340ba7be96fc227b237f43ccb7bac2174d22 GIT binary patch literal 100 zcmZp(Fw1CQof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaQ@u?LBnMJAbDTyViQ@q&b?oKb&0{}2+ BCu{%! literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/9406fe9ae36b2cb3db15fcedf29d8992 b/back-to-the-future/flask_session/9406fe9ae36b2cb3db15fcedf29d8992 new file mode 100644 index 0000000000000000000000000000000000000000..4ca756866d9c0336140565520e9e3e30299f5919 GIT binary patch literal 100 zcmca?ZkEx&IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;axOHU095{(lq7rQS5z zy`JDQ;oZ5UDkXe)(pORRTI>qa9!qoIqJpi%1 BDir_# literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/954589c7959251139379e24a16c9e437 b/back-to-the-future/flask_session/954589c7959251139379e24a16c9e437 new file mode 100644 index 0000000000000000000000000000000000000000..76a7d97b22a7fba485e2d1c01e7a9c58ab40d945 GIT binary patch literal 100 zcmdm|X`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;i7f`@P@=k&ibMPpmlI zG}q>dvB3%jKQ|4g*!?#ICn<@T5jirQQYRVx! z?KgeXocS)F_0YMm#sBkX&;RhODLsOTDY=<>@u?LBnMJAbDTyViQ@jHBU!<4n0RSbH BCy)RD literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/9764607bd0d51e03d21bc4f73d7a3fb0 b/back-to-the-future/flask_session/9764607bd0d51e03d21bc4f73d7a3fb0 new file mode 100644 index 0000000000000000000000000000000000000000..f469bd51e94c99b687b8fb6630a9fb5a66cb6074 GIT binary patch literal 75 zcmbRC-Ylbmb*c>m1k_H^=;4YlNG-}u%uCHHnbOh2oSj-Z#aTgDv?pU*q-`;KvYbFb bMUUR3U1mI`?^a)aeC5+0@0Kk2DW!S<(*_+6 literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/982cc845e05dfd464f333f7d16d55f3a b/back-to-the-future/flask_session/982cc845e05dfd464f333f7d16d55f3a new file mode 100644 index 0000000000000000000000000000000000000000..79c7d09b10a9d1d8dd10ea7f2a6400514ccc0e26 GIT binary patch literal 100 zcmZqCHqU5aof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaIub|G2C`l3j(bZ>DZf z)QcFY6=}@u?LBnMJAbDTyViQ@k$Dn4Mm#2LLH4 BC({4` literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/98e47b81eb2790747fd6a39be77f858e b/back-to-the-future/flask_session/98e47b81eb2790747fd6a39be77f858e new file mode 100644 index 0000000000000000000000000000000000000000..5e0f3133920b041ff3eb1276ab8c814fd705ef4f GIT binary patch literal 100 zcmdmOYo5`-IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;fKyJMr@Qz$*o_mYkZZ zcK+?5>#oKVA7_U=dJvOx;_QbB4O4mq6H{_C^Wsx03NnjQ<5Ln#Qm1%XKVOnwss{iI CkSuTj literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/990b8182389a471712fd4449c602f1a5 b/back-to-the-future/flask_session/990b8182389a471712fd4449c602f1a5 new file mode 100644 index 0000000000000000000000000000000000000000..8c60d412bd20010c6d7f7cf1ade0d59b75b1b777 GIT binary patch literal 100 zcmX@1X`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;hg&{i@u=-0ja+8Sz*j z@(sJ`lP%fM5SI7cLDswM(eGNFDLsOTDY=<>@u?LBnMJAbDTyViQ@l>F9!o3L0{}-| BC$j(m literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/9924990b4546e6196feae2e41bcded8c b/back-to-the-future/flask_session/9924990b4546e6196feae2e41bcded8c new file mode 100644 index 0000000000000000000000000000000000000000..d9b171c362f280abecd3be303c085c238117dc62 GIT binary patch literal 100 zcmYe%G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaLG-kh7AVtM_;0-CJAM zH14=vE~w=jCiULyZD3P-KkxhgDLsOTDY=<>@u?LBnMJAbDTyViQ@m0_-=>%90RTTM BC_DfF literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/9a15c035a8938bbaf7ee32ac1aa45f15 b/back-to-the-future/flask_session/9a15c035a8938bbaf7ee32ac1aa45f15 new file mode 100644 index 0000000000000000000000000000000000000000..493b38f269a79e5d488261a227a2c55fd4e485b5 GIT binary patch literal 100 zcmea)G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaQo1JMa6BZQTm{XNmoE zoxSwG(S_uB`jLMM*vseKkkZ*CIHgB0F(o%MFFv)RAhRenJ|(dvb&8jlxmJ3q9spYh BCz1dF literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/9e013599d6b47a15db72409a1629f594 b/back-to-the-future/flask_session/9e013599d6b47a15db72409a1629f594 new file mode 100644 index 0000000000000000000000000000000000000000..1dcdb2a56ff7afd3a1a7b623789864dbaf2a9dbe GIT binary patch literal 100 zcmeySX`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;e8f{LUSvW0TU#J|2Db zqN;o6J+c%wfgC$dH@i| BEA#*W literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/9e57e62465a479e679a6adbd4b958157 b/back-to-the-future/flask_session/9e57e62465a479e679a6adbd4b958157 new file mode 100644 index 0000000000000000000000000000000000000000..84da51bd1ff7c1a53f3c2be54a41bb384bcaad00 GIT binary patch literal 100 zcmcbpX`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;hhG{Kj-rY5KHZvt#y( zvtD3xy$!tkCnMq{Qk~&a=z8=nAG;yQ+fmwQ*tx&;!`UMGK*5Q#Qs#qD`Z8H*g%wcBgYD^LD6rAII^B{wrKKDDACvnVw_C9x!RikG+g-}F*F0G*d4 Ar2qf` literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/a07fed5d740a8dd02ef4928198e01133 b/back-to-the-future/flask_session/a07fed5d740a8dd02ef4928198e01133 new file mode 100644 index 0000000000000000000000000000000000000000..22fd075b65499146d2db878552d6bbb87d005278 GIT binary patch literal 100 zcmea!G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaM>~Y5^yZkJY-n z_WUyUjae1-kH0Hr>#c$G`ucoYEthn39{B7oS>DkXe)(pORRTI>qb4>6>Y#dH`(C BDnbAN literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/a101e31a62c14e8ea2cf4c779e1b7d37 b/back-to-the-future/flask_session/a101e31a62c14e8ea2cf4c779e1b7d37 new file mode 100644 index 0000000000000000000000000000000000000000..435571d3c10e7ad7fc842499eacda5c6d9c2e036 GIT binary patch literal 100 zcmWI5G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaQ2nxAL&ewJT>g@u?LBnMJAbDTyViQ@rA>=cSkG0RSDe BCm{d; literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/a348d839170ede14f17edd94e2f166a0 b/back-to-the-future/flask_session/a348d839170ede14f17edd94e2f166a0 new file mode 100644 index 0000000000000000000000000000000000000000..712589669ed03c4949cf225b1501925eb9c55ad4 GIT binary patch literal 100 zcmZ?KG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaQwDO_Y(n{gP zh3|ahHl7xA6ZxAV)6;Ky_K45oDLsOTDY=<>@u?LBnMJAbDTyViQ@jqBE>ADj0{|mh BC)NM} literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/a3d5bcca8210816c93aa4c61352532aa b/back-to-the-future/flask_session/a3d5bcca8210816c93aa4c61352532aa new file mode 100644 index 0000000000000000000000000000000000000000..8bcc523fbbd6ab773217439c7b80a39cf7f8aa8d GIT binary patch literal 100 zcmX@3X`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;gW=ZHL#5`9TLVdjuT5 ze_VIMpFeHpnIjLi(|_;S@L;mcvMD`+i7C06dGV@u?LBnMJAbDTyViQ@mbXY)>!M0|5Un BCiegU literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/a57b6e892f4830587aea495552784ed9 b/back-to-the-future/flask_session/a57b6e892f4830587aea495552784ed9 new file mode 100644 index 0000000000000000000000000000000000000000..12304654dd5c951fa236875984ee48002b3026a8 GIT binary patch literal 100 zcmWI2G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaQ<~kn8_Fo^6Zuan798 zVn=giZ13+pdDHz_snP59WU9ZxK?(7(v%*-#FX63y!h0Lg3O}S_>{zw)G1y*(O1$-^#G~O BDWL!W literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/a5e8f792a5f0fdcdf5f666a1d14a23bc b/back-to-the-future/flask_session/a5e8f792a5f0fdcdf5f666a1d14a23bc new file mode 100644 index 0000000000000000000000000000000000000000..25091233bafa5778a968b2ae7c97015e7a53d2de GIT binary patch literal 100 zcmZotHOpvVof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaJgOz^fYiE%qsc@OECc ze}N1<(=@(BunJkZyNKo=eP_00N{?V-N^WLed}>8OW>IQO< zI@u?LBnMJAbDTyViQ@maZOQx6V0RZ{l BCPM%K literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/a8417dbcc14d9a8cf376b5d6ac2be10a b/back-to-the-future/flask_session/a8417dbcc14d9a8cf376b5d6ac2be10a new file mode 100644 index 0000000000000000000000000000000000000000..a93ba7ea931f0801e7b739af96653fc264d1c2c2 GIT binary patch literal 100 zcmaE_VV=>zIyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;f*>ZE>;P^bNW#z3$+UZ== zA~#zFuXfox!STCmV%DSuUE7vEp3)DkXe)(pORRTI>qbE!*^+=dH^)w BDNFzW literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/a97a1ab003cda1e66e80df2a97f4e4c8 b/back-to-the-future/flask_session/a97a1ab003cda1e66e80df2a97f4e4c8 new file mode 100644 index 0000000000000000000000000000000000000000..ebf218a6e00cda1b7c0797c85928f6b51882dd2c GIT binary patch literal 100 zcmeZQH_K>Xof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaQ2}^FZ5d)|@j20nav` z*(6aM(f2&z(SoRde`PjoaM-o^#FQSv#FX63y!h0Lg3O}S_>{zw)G1#6b*<^8dH|1w BDklH{ literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/a99e725d1a5105e4330dbb2ab295b044 b/back-to-the-future/flask_session/a99e725d1a5105e4330dbb2ab295b044 new file mode 100644 index 0000000000000000000000000000000000000000..26bf9df9b3343b9f02a7d0e10306e2049d7827ce GIT binary patch literal 100 zcmb36YL?N!IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;g{>iobN_w5N-_vR_2+ z3q0;}=y#eB#FX63y!h0Lg3O}S_>{zw)G1ywHfp4o>Hz?= C6DimL literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/a9dc030de1ace0b44370bee19e7acc70 b/back-to-the-future/flask_session/a9dc030de1ace0b44370bee19e7acc70 new file mode 100644 index 0000000000000000000000000000000000000000..6f56c81a1f1d64bd32f9ef8db2a941a3e96234b2 GIT binary patch literal 100 zcmX@3X`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;gVR>58aYrbpD|tf38 z9qnbW)|QG=QLVZ-aRDLsOTDY=<>@u?LBnMJAbDTyViQ@oyCIhS6l2LP>N BDlPy3 literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/ad1354ac688b6e7cb3d324495b7f5eb2 b/back-to-the-future/flask_session/ad1354ac688b6e7cb3d324495b7f5eb2 new file mode 100644 index 0000000000000000000000000000000000000000..75a0e29cd9f76ee0580cb55901e871900d4a10cc GIT binary patch literal 100 zcmcbhX`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;is)zu5dQxA?l|bNqEx z=DkXe)(pORRTI>qaP?Tz$OJph^c BDWL!W literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/ad16b66739c9bbfbf32c3130f98dd0a7 b/back-to-the-future/flask_session/ad16b66739c9bbfbf32c3130f98dd0a7 new file mode 100644 index 0000000000000000000000000000000000000000..1e63090233df04f468e651989bc18ee02e538f11 GIT binary patch literal 100 zcmWI2G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaIs@Fip#-mp1)c{cb0x zrnz#d-;dX+U)JqU@OA7uByOiSrAII^B{wrKKDDACvnVw_C9x!RidW!AmGn|Q0MTqE A(EtDd literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/ad99f6117878482ab7106b4d974cfe90 b/back-to-the-future/flask_session/ad99f6117878482ab7106b4d974cfe90 new file mode 100644 index 0000000000000000000000000000000000000000..7bfc587d9ac0b7dfd31606651b2acb50e41cc33c GIT binary patch literal 100 zcmZ?MG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaLGp612m6bGD1t`M!&~ zw;%tvjjeR#e3>@oR*U{FrHz|1rt}CVrsQVk#iv#jWEQ2yrzDo7PVqYS=we!_9soZg BDJB2_ literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/add69d43e0c9c22cb6ae3f24658b21cd b/back-to-the-future/flask_session/add69d43e0c9c22cb6ae3f24658b21cd new file mode 100644 index 0000000000000000000000000000000000000000..3ced8cc63a01c138632ce3ae8c88853e0e6fc20c GIT binary patch literal 100 zcma#lG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaIUwJ~6Rs!gl`>H<#Z9 zpWjb?YQe?5>&#t0{q6S5(i6D@r}PLWrsQVk#iv#jWEQ2yrzDo7PVtJIbv38IHgB0F(o%MFFv)RAhRenJ|(dvb&A)SwxaY>Jpgf3 BC@TN} literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/afe1ec12fb39790665014610669101bb b/back-to-the-future/flask_session/afe1ec12fb39790665014610669101bb new file mode 100644 index 0000000000000000000000000000000000000000..56be671dd8afe246fe0035fa16f7af50196624d9 GIT binary patch literal 100 zcmccf-7KSlb!sRB1k_H^=;4YlNG-}u%uCHHnbOh2oSj-Z#aUsWsPxY*<}BwD7SGLD z*q*{L&q5&1!E@!Kpp7f$PpX{$XG)J?VoGjiUVLgrL1s~Ed`eJ+crMt{>v^#GUB BDO3Oe literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/b05afd0b1ba046e6e56dfb91cade5852 b/back-to-the-future/flask_session/b05afd0b1ba046e6e56dfb91cade5852 new file mode 100644 index 0000000000000000000000000000000000000000..c97bc870fd7d78ad30c05bf636fe86a2de01fc1a GIT binary patch literal 100 zcmdn~#Vn(Nb!sRB1k_H^=;4YlNG-}u%uCHHnbOh2oSj-Z#aUtHy$y{5Z2`VdG)?9# z(TSWj=lPCfel2J%^Y+}QL|Jpi=J BDE$Bc literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/b1247ef5153c8cb20af6eaa532c4e53f b/back-to-the-future/flask_session/b1247ef5153c8cb20af6eaa532c4e53f new file mode 100644 index 0000000000000000000000000000000000000000..010d04714c3304fd61fdc3517a2e2f1956153cb2 GIT binary patch literal 100 zcmea*G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaOSZ5fN_h={2o>l~>%P zKd%$dKia{zw)G1y;ZCBDt^#IOT BDyskh literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/b5e3b8a6b694614c74fa55892ec7831b b/back-to-the-future/flask_session/b5e3b8a6b694614c74fa55892ec7831b new file mode 100644 index 0000000000000000000000000000000000000000..a15a02fd1c79f597ca863ca9267ce2bac56b595b GIT binary patch literal 100 zcma#jG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaK^axvaR??SsaD?n67m z)tAX%KlxrhJ+cD4Q=VAdH{u| BDJcK| literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/b775978d6a3936c4100e344e8378371e b/back-to-the-future/flask_session/b775978d6a3936c4100e344e8378371e new file mode 100644 index 0000000000000000000000000000000000000000..c9e6458333a54be75b908f27772b7e7ea151f4c1 GIT binary patch literal 100 zcmXTaG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaLIBxA(wmn|4nB-F-hF zue2$z6qjYRXPz!|M!317@$%QpQ+fmwQ*tx&;!`UMGK*5Y3wmKxV2@b^av)V&`hc2OqZZ zM+OH3sVMzEySF$grQzs)RqMkdQ+fmwQ*tx&;!`UMGK*5`1?CYmrt}CVrsQVk#iv#jWEQ2yrzDo7PVw5cVMBVU9snk) BCxHL} literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/b807e74d42b1d517c52e3a34da1fc725 b/back-to-the-future/flask_session/b807e74d42b1d517c52e3a34da1fc725 new file mode 100644 index 0000000000000000000000000000000000000000..a8dbdce7e899e6cb472cb775a5cf828b5b569422 GIT binary patch literal 100 zcmaEAZ=TV>IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;eA4{Pc5GDHj(>9kV3< znl~3VZ%W(9+|wfV|MRqyDpRaAr}PLWrsQVk#iv#jWEQ2yrzDo7PVtIy_>xwt2LMMi BC!_!X literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/b880a4c620be6a758aa72e4fac35b79b b/back-to-the-future/flask_session/b880a4c620be6a758aa72e4fac35b79b new file mode 100644 index 0000000000000000000000000000000000000000..9ef28498c18fa645bc2d944877aa5b8416bf11d0 GIT binary patch literal 100 zcmY%UZI;o%IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;hhcBDUFiX3xTzVq0g| zolRuFdTvw1ErYpzt4z0qnO<}HHl;@}F(o%MFFv)RAhRenJ|(dvb&8i-_Kx&YJpi1F BDOUgh literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/b90531b031af291fc09f3b47f35d1871 b/back-to-the-future/flask_session/b90531b031af291fc09f3b47f35d1871 new file mode 100644 index 0000000000000000000000000000000000000000..3880eba8a8a3a7643f6a5a7169224612c8486545 GIT binary patch literal 100 zcmWgtYL?N!IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;f(;W9V5tRps^?7Y(-+ zmaEQ3-{7u)GXJvDv0{PFvkjaaQ+fmwQ*tx&;!`UMGK*5P|1!0{{|* BCRYFe literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/b9400bb738c7fb91a7635749b053a137 b/back-to-the-future/flask_session/b9400bb738c7fb91a7635749b053a137 new file mode 100644 index 0000000000000000000000000000000000000000..2004e05e64128e2be21879dc6957cfef67d986e9 GIT binary patch literal 75 zcmd1&WR}suI@N{&0&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;i6%>FWcH4DIBw9i^Mn ba*rz5WWG(g_i%B+f%Wn_NAAvuc$4lpevvl-$g`_|%Gm%%arzl*E$MDPDUQ#-^9*0RZkP BCc6Lt literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/bb5f6cf3892f52c07e415dc25f8f101b b/back-to-the-future/flask_session/bb5f6cf3892f52c07e415dc25f8f101b new file mode 100644 index 0000000000000000000000000000000000000000..3e6eac0a125defdda74c04f9881e3cd06cb1fc1a GIT binary patch literal 100 zcmYe)G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaJ(U*7{$$`O+7yEx&aY~P1VoGjiUVLgrL1s~Ed`eJ+cU=NjpydH}_o BDl7m1 literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/bc7f8eea85fde0dab7441656a0720464 b/back-to-the-future/flask_session/bc7f8eea85fde0dab7441656a0720464 new file mode 100644 index 0000000000000000000000000000000000000000..9fe1cd82ee92211ba2a3d02e99f94b1a5b393021 GIT binary patch literal 100 zcmX@8X`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;c};JhS{4Tg}A(`JoDO zxn_DxOWp+sSP5wvI=nbISen39{B7oS>DkXe)(pORRTI>l?=k*(>adH~u= BDs}(> literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/bd3c4e53cec3fc00e19f9aa86d41cd67 b/back-to-the-future/flask_session/bd3c4e53cec3fc00e19f9aa86d41cd67 new file mode 100644 index 0000000000000000000000000000000000000000..ca57fb760716729df032747998381994f73219a4 GIT binary patch literal 100 zcmdm~X`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;e9qtx|Tbo8`?_x>K^B zhhI`&wRNiMlKbwOdv6|Dx^~C(<|#dbi7C06dGV6_#ADLsOTDY=<>@u?LBnMJAbDTyViQ@k#V2B(+m0RSSo BCrkhU literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/c0cb3c32fbabf136c0e37c5c72fc0d72 b/back-to-the-future/flask_session/c0cb3c32fbabf136c0e37c5c72fc0d72 new file mode 100644 index 0000000000000000000000000000000000000000..46e7a8321d007e0a2d7b8ed7224e8ac8097f84bc GIT binary patch literal 100 zcmcbpX`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;dl3Echw6>f+9%H?yCFYLs zz2x?)h~@eD?)pLdr}PLWrsQVk#iv#jWEQ2yrzDo7PVwrQusf|(4*)Z1 BC;R{a literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/c310c4fd7a943a6b153fc77027b5f8b0 b/back-to-the-future/flask_session/c310c4fd7a943a6b153fc77027b5f8b0 new file mode 100644 index 0000000000000000000000000000000000000000..715ff45e396acb5580b45124947a6dee744f2db3 GIT binary patch literal 100 zcmd1RG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaNf3WMBM^P5ol;3=X{y zcRQ}$;>M~VHRsjR_=`*dtB!hYn9?Jdn39{B7oS>DkXe)(pORRTI>jsZz}>V`Jpf>h BDB}PC literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/c31e413c0847de4691012ef81e31acae b/back-to-the-future/flask_session/c31e413c0847de4691012ef81e31acae new file mode 100644 index 0000000000000000000000000000000000000000..c95d1f2cedb18e05b680f2d9b8b0559311d2b408 GIT binary patch literal 100 zcma#iG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaQ2@_M`LhX1nhZSs~94 zUs&vX;I!@br)!QS&bV-0*Kl3h@hLrmi7C06dGVHz@S C;VWhU literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/c321ceed93116c26ec88e3254fa3cd97 b/back-to-the-future/flask_session/c321ceed93116c26ec88e3254fa3cd97 new file mode 100644 index 0000000000000000000000000000000000000000..c0c8790d27f49f5fa38d3987180191e5062c626b GIT binary patch literal 100 zcmea!G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaQ8`y^S1({H(lA~bb4lZ$I&Cbg;RP26H{_C^Wsx03NnjQ<5Ln#Qm1%%+|o%e)dK(~ C;4Ihx literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/c4e25dd28c5cd961ccea2bd778bffd4e b/back-to-the-future/flask_session/c4e25dd28c5cd961ccea2bd778bffd4e new file mode 100644 index 0000000000000000000000000000000000000000..e758d7da444619072844c55e686f0309773c948e GIT binary patch literal 100 zcmd1MG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaQ={u;7eQ#>AlcXH8@u?LBnMJAbDTyViQ@ma**^*wW2LM8Q BD8&E( literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/c629ee7f10f944228ad6f78ae03738ea b/back-to-the-future/flask_session/c629ee7f10f944228ad6f78ae03738ea new file mode 100644 index 0000000000000000000000000000000000000000..d5e8a8204ee0ead46f4e3d8b2673a060f00dce4c GIT binary patch literal 100 zcmd1TG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaQ>F>v!U@6?3cR{8{vL z%R-UcJ_bG0Z>mb2Q;^BCPkL{#a7vG0VoGjiUVLgrL1s~Ed`eJ+c{3mno*^#Hr4 BDkA^@ literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/c6506c668b96a1eb79cde01880bc8425 b/back-to-the-future/flask_session/c6506c668b96a1eb79cde01880bc8425 new file mode 100644 index 0000000000000000000000000000000000000000..10183476c86d293ec4299d57e181dea94dbeffa0 GIT binary patch literal 75 zcmWG|ZBsu0^nw+6Xir;BR?sricQ%dy!=m;FM literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/c6997ce4a7d458b00b06210ae7446850 b/back-to-the-future/flask_session/c6997ce4a7d458b00b06210ae7446850 new file mode 100644 index 0000000000000000000000000000000000000000..4496d8db8c86d3075888c647c7122e792b95293a GIT binary patch literal 100 zcma#kG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaKrNCh`ADn&?m0a0AiF z;U`{tK3p*4%AtP}C!;LW?)UWko6;kgn39{B7oS>DkXe)(pORRTI>qbm6YlgDkXe)(pORRTI>qb2YWeh1JpgUO BD1iU~ literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/c88c19634f04d1be57cf5b79d52202c7 b/back-to-the-future/flask_session/c88c19634f04d1be57cf5b79d52202c7 new file mode 100644 index 0000000000000000000000000000000000000000..e648db29e00681e3d8a177372dcdd9aca2f01be3 GIT binary patch literal 100 zcmaE)W0ujtIyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;gXh(^{2R4}2BB^L>`@ z7C1Yh<3ap`Z4PfI`UOl#ydP5|F{MW^F(o%MFFv)RAhRenJ|(dvb&6M#>FxAVJpi); BDX9Pe literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/c95a6b7b5656c9a6b3194a242f8231a7 b/back-to-the-future/flask_session/c95a6b7b5656c9a6b3194a242f8231a7 new file mode 100644 index 0000000000000000000000000000000000000000..8e3fda7c80f094db39dad5ed42ae4be362df64b0 GIT binary patch literal 100 zcmd1MG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaNeU&%S59?5wYyZ|7ZG z&~tAVmvi*l-w*EpX*j!W9!KY{%Tsy;6H{_C^Wsx03NnjQ<5Ln#Qm1%5KP#MGss{k- Ce=JM@ literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/c9a0e34374ced611ddc8dbb936fd2c2b b/back-to-the-future/flask_session/c9a0e34374ced611ddc8dbb936fd2c2b new file mode 100644 index 0000000000000000000000000000000000000000..2cb007e4058e3b15d991f2627b66c1930fb660d6 GIT binary patch literal 100 zcmd1OG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaQ$~wJN4*+&! BDOUgh literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/ca8e5e6d4bad4979a94c477c5b411acd b/back-to-the-future/flask_session/ca8e5e6d4bad4979a94c477c5b411acd new file mode 100644 index 0000000000000000000000000000000000000000..ca4351bb04a77f619f659b7cd416bb12ca6496df GIT binary patch literal 100 zcmZ?NG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaIuV_4JKXDkXe)(pORRTI>pQJSa*7<9su-w BCwl+@ literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/caa93220695c6291992e702873ef8c6b b/back-to-the-future/flask_session/caa93220695c6291992e702873ef8c6b new file mode 100644 index 0000000000000000000000000000000000000000..b446ad01b133419d353afdebcc4c0b6d1596f01f GIT binary patch literal 100 zcmdm?WuDQ%IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;dl3{hpHh$*prjW#8yO zb8_o9dlkRZNO{M<>>nG8!fyK(Pw5d%Ov%m6i%+d6$Sg{YPf09Eo#M6Qz=5<27j1Z2NM+^v4D}zM z4)j+F9z3-=UaMerLYB8*UhbkjQ+fmwQ*tx&;!`UMGK*5T+ literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/cb03c2a66a4bf7139c9205ce5b0feb5a b/back-to-the-future/flask_session/cb03c2a66a4bf7139c9205ce5b0feb5a new file mode 100644 index 0000000000000000000000000000000000000000..c5f90b065fa68c02c1281253ce48e02ac2c3b534 GIT binary patch literal 100 zcma#nG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaORJ_by=d{I5BjKi{*t z&39-|kjXI>IPuMY)%MEkhuBXqp3)DkXe)(pORRTI>jqGXj*!y9so`Z BC`teT literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/cb5460332e84b66b455014c9b77bb6bc b/back-to-the-future/flask_session/cb5460332e84b66b455014c9b77bb6bc new file mode 100644 index 0000000000000000000000000000000000000000..c4fe137361a8297b46597f9495d435644b21bf3c GIT binary patch literal 100 zcmb<4GS6sWof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaJ(=IK?0=?keY^Z*?;@ zMLjLlOLw<-`Mr8E>+#O-cDxs6PU#U$Ov%m6i%+d6$Sg{YPf09Eo#IuwV{&?_9sox< BD7ydv literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/cd07e684036026dc7d067803bde21393 b/back-to-the-future/flask_session/cd07e684036026dc7d067803bde21393 new file mode 100644 index 0000000000000000000000000000000000000000..b5812b8cbe3ca4815b0385ce870fe6a4e90e8842 GIT binary patch literal 100 zcma#lG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaO3=7r7%QPJn&dy#0@k zzP#vjrN~46NYPP&J;(WM9W!2cP3aL#Ov%m6i%+d6$Sg{YPf09Eo#GX#=$~Gy2LMVA BC#V1b literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/cd6b9d32946111528aaa6fefcba32cc4 b/back-to-the-future/flask_session/cd6b9d32946111528aaa6fefcba32cc4 new file mode 100644 index 0000000000000000000000000000000000000000..6dc52d460ec1c4f6bd1a4ee7338d42d32a780e21 GIT binary patch literal 100 zcmcE3G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaPceeA{6al-2a==Jg2f z4>eww-@J@p8Gn8Lm#O(DPB+@dP3aL#Ov%m6i%+d6$Sg{YPf09Eo#JJibU3Y44*-i$ BDi{C& literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/cd83f976398476e1f6633a24c82cca00 b/back-to-the-future/flask_session/cd83f976398476e1f6633a24c82cca00 new file mode 100644 index 0000000000000000000000000000000000000000..a5b7ebc1901dc25ed24d181715c5db367ba0eacc GIT binary patch literal 100 zcmea&G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaLH8%xxbWwq*5ZcU|TO zBBw4SUVJBV^mCZbiT>A9wnXP&o6;kgn39{B7oS>DkXe)(pORRTI>qaxYi)X|9soh; BDAND{ literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/ceaa00c54604860ca376a77131786d85 b/back-to-the-future/flask_session/ceaa00c54604860ca376a77131786d85 new file mode 100644 index 0000000000000000000000000000000000000000..b9a4bfb943dd02fe58535a30e78390f100c783dd GIT binary patch literal 100 zcmdm?WuDQ%IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;c|`lzabznTq?=4x02& zlGw7dz`SAEgz)*czc(I!dA@4Hl_@=fi7C06dGVHz?X CI4QFL literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/cf835731cebab59413319af12a738e94 b/back-to-the-future/flask_session/cf835731cebab59413319af12a738e94 new file mode 100644 index 0000000000000000000000000000000000000000..84a08917a74826174be9d725f9d210dfc887a7b0 GIT binary patch literal 100 zcmd1QG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaK5KQSvRUa*C;r&&{TA zo`jS0?cUVhZ*-o#dyS7wop)Q@lpevvl-$g`_|%Gm%%arzl*E$MDP9@L57J8Y04OCV AlK=n! literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/cfa68eb972fa756c8697a8fcbcfcbbea b/back-to-the-future/flask_session/cfa68eb972fa756c8697a8fcbcfcbbea new file mode 100644 index 0000000000000000000000000000000000000000..56dd63d51b3eeac7d1a8d27c1358a01757233825 GIT binary patch literal 100 zcmZ?OG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaOqF7rmhKnPcRk3u_Lk z7F+GSX1@KTwcNQiJ)hg#oJ{UEPw5d%Ov%m6i%+d6$Sg{YPf09Eo#J)0;$M2H9sqiO BDj@&> literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/d0cad7b45a22150d0a5a8512bb72164b b/back-to-the-future/flask_session/d0cad7b45a22150d0a5a8512bb72164b new file mode 100644 index 0000000000000000000000000000000000000000..03ab19ace7bb667ab525a4bb7a6421b768bb4898 GIT binary patch literal 100 zcmeZLG0SLRof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaQ2}&%Z=H6 z4&je0CRwNJ2a4s(Y2S#7vSQyhrAII^B{wrKKDDACvnVw_C9x!Riq|QDp!8Bb0Nc4G AN&o-= literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/d0d6526dc3928c1608dafa53c1fe9c9e b/back-to-the-future/flask_session/d0d6526dc3928c1608dafa53c1fe9c9e new file mode 100644 index 0000000000000000000000000000000000000000..0869d9e4afda2d4e890216fa51ad0978258ea975 GIT binary patch literal 100 zcmdn5X`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;isgF{AL{-qk9vEZ=W) z6ui)Qqv5gt<@Y|iE0%73eEnD}-;^G~#FX63y!h0Lg3O}S_>{zw)G1zeB9iH)dH}=; BDZu~$ literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/d0f85bd43b91c8a4ed49ef3267c4fa4c b/back-to-the-future/flask_session/d0f85bd43b91c8a4ed49ef3267c4fa4c new file mode 100644 index 0000000000000000000000000000000000000000..defbd595ed6dd339b07a04c8091ae060973da556 GIT binary patch literal 100 zcmX@5X`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;c|?J>%8PhkJOFj$}AK zi#K|Hoy}~Hv(<;vjc?yN8wCljn$jbfn39{B7oS>DkXe)(pORRTI>pP&=uUd69sqcW BD24z4 literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/d0fc857d940dbf06c737897ad95c2815 b/back-to-the-future/flask_session/d0fc857d940dbf06c737897ad95c2815 new file mode 100644 index 0000000000000000000000000000000000000000..0bf176fc2bae106b5d8d83aed53875cf62ffdcdc GIT binary patch literal 100 zcma#hG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaP!*Xy-0>XkJPFCx&ZR zPg~V3&8_xo?sYyMD!a;#+32|Flpevvl-$g`_|%Gm%%arzl*E$MDP9q`J=06|0QKx9 AF8}}l literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/d11382c4f410be6ea22b86a0420f0379 b/back-to-the-future/flask_session/d11382c4f410be6ea22b86a0420f0379 new file mode 100644 index 0000000000000000000000000000000000000000..fb977cbb2973d7fc9442a20e456e9cc97548b68c GIT binary patch literal 100 zcmcE1G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaPFV_cflU(l7q%xbCqp z@m`nDM#Z)tp4j(8X!fQ0v_qRsr}PLWrsQVk#iv#jWEQ2yrzDo7PVw6NFDkuM4*)TT BDCGbE literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/d1b129979af646f1903f93fda426262a b/back-to-the-future/flask_session/d1b129979af646f1903f93fda426262a new file mode 100644 index 0000000000000000000000000000000000000000..848e20ab9985cb7b8f44ac3950fdc5648685e0d1 GIT binary patch literal 100 zcmX@DX`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;g_O7U5FA%xo=#%qrc~ z=w;On3%seZ<9snqI BD6s$l literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/d1f6a6b3ff606b79ed83489af16c752c b/back-to-the-future/flask_session/d1f6a6b3ff606b79ed83489af16c752c new file mode 100644 index 0000000000000000000000000000000000000000..3be2452caa6e8b84ce9ea9f051dd4c0b6208a9ff GIT binary patch literal 100 zcmcbrX`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;e9+f7+GFT{ARvwz;g3IRn&OFc(Hl;@}F(o%MFFv)RAhRenJ|(dvb&A(jwFl{?dH_6V BC$Inj literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/d2d35bf9c724a0feec1b446af094e02a b/back-to-the-future/flask_session/d2d35bf9c724a0feec1b446af094e02a new file mode 100644 index 0000000000000000000000000000000000000000..5bed18c8899ab5d46cdf2e841bb9bb58807faed3 GIT binary patch literal 100 zcmbQFW}eZ&IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;i7if%#DH^(krht20bD zES?*8D(hZBCQAC3{PuD5CS%6sKU{xaoYEthn39{B7oS>DkXe)(pORRTI>pPG`B+-19sqwz BDYF0o literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/d5998a88757db1c51a28bf64c368ad99 b/back-to-the-future/flask_session/d5998a88757db1c51a28bf64c368ad99 new file mode 100644 index 0000000000000000000000000000000000000000..d3c4c8efee2db32c583434a4359abc8f193fc1aa GIT binary patch literal 100 zcmcbrW0ujtIyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;bN_nCKgSB6Hc^{aO<% z7M-79EN=Q(B3Ba!-+8Kcz=7F(o%MFFv)RAhRenJ|(dvb&6N0%j>jKJpfqj BC|>{o literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/d700947294c64219224e5510b68fce24 b/back-to-the-future/flask_session/d700947294c64219224e5510b68fce24 new file mode 100644 index 0000000000000000000000000000000000000000..6311527d7309eb8adf7aa6aff7a44c24a7ef1032 GIT binary patch literal 100 zcmca&XP(i(IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;b-jB}3bz{2d7<(^lVT zzQ4PD{X1_bl~t8@H#6znJQcsna!QY2VoGjiUVLgrL1s~Ed`eJ+aKL6-DVJpiZR BD60Sf literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/d86641dc0fc1950fc5192156bcdd294d b/back-to-the-future/flask_session/d86641dc0fc1950fc5192156bcdd294d new file mode 100644 index 0000000000000000000000000000000000000000..9581a28b686bcc087662b53c6438682ca7d79939 GIT binary patch literal 100 zcmcbjX`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;iuFVe~|sTbe&w9)zrQ z3fp(_-z4E_Oi2gCHz=08pQ!3BIHgB0F(o%MFFv)RAhRenJ|(dvb&A)O(6{NOdH|OW BDN+Cc literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/da1192e27218f04c4df981b45eba12f0 b/back-to-the-future/flask_session/da1192e27218f04c4df981b45eba12f0 new file mode 100644 index 0000000000000000000000000000000000000000..70cca3aa39ec533009216cf6e61ca76b17fc60ea GIT binary patch literal 100 zcmZ?LG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaMRQnLYDJ>WSE8%r1Tl zmz29c$>mm_9P;3HPVZU^!`hg~Q+fmwQ*tx&;!`UMGK*5Xof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaQPgvb@6N{^dQVk6WC& zbGu;Hy|3T(_Ln)APM4c=A^VlzwkbV=i7C06dGVCHLQ51ji_ z5}i>$-D=Ic`G?<6|M`7W&BiNy#Z!6&6H{_C^Wsx03NnjQ<5Ln#Qm1&G@?}jg)dK(! Cekn)H@{Cv}BFQ+fmwQ*tx&;!`UMGK*5+p4X(d6lf=wlBRGrJ+bFt?Ox}dH}FR BDW(7b literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/dc296930884123b35a5c53bbcb1ad8fc b/back-to-the-future/flask_session/dc296930884123b35a5c53bbcb1ad8fc new file mode 100644 index 0000000000000000000000000000000000000000..7661a0c7aee9a013911581d904dfb811e9b7fd03 GIT binary patch literal 100 zcmea(G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaIU@7rHX!|J)Dv7e?kf zy!|bqvs`U@S9_bxf2P%&uD+_iFr`N@F(o%MFFv)RAhRenJ|(dvb&8jd`rq_YJph|s BDm4HA literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/df0430679640015518d904b92776f724 b/back-to-the-future/flask_session/df0430679640015518d904b92776f724 new file mode 100644 index 0000000000000000000000000000000000000000..9b2e0e31f9bba5251688eef0814c315751be7b1a GIT binary patch literal 100 zcmcE3G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaIVM%{*h_q-Sp)@4u^Y zp)P}!!^?ZBZ&Xeg$1@wQfQsn?Q+fmwQ*tx&;!`UMGK*5DkXe)(pORRTI>qaCTxoi#9sqn_ BDN6tV literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/df924cf66e321a1348121a1cabcd29b5 b/back-to-the-future/flask_session/df924cf66e321a1348121a1cabcd29b5 new file mode 100644 index 0000000000000000000000000000000000000000..032b3eadc602aba29bfe4e62ec09683ca489dce4 GIT binary patch literal 100 zcmZ2zZJyD<#0jyuSGsrwyDg> z+pjZc_RfR{hyFDCz3u*gns3MH&?!BFi7C06dGV=@u?LBnMJAbDTyViQ@jFX?9)s20CNT> AUjP6A literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/e30690e9f3419164d1ca1ed795944854 b/back-to-the-future/flask_session/e30690e9f3419164d1ca1ed795944854 new file mode 100644 index 0000000000000000000000000000000000000000..e6ec6e06ddd01d413c4c2e0912d7a3cfa4ab37e8 GIT binary patch literal 100 zcmcc0Z=TV>IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;eA{PlYQtQ%YjAyszHN zofDnzTOMSaZd5<-`4^677xlZBPw5d%Ov%m6i%+d6$Sg{YPf09Eo#J(c_iuWs9soZ8 BC{F+Y literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/e3b35579ddaa8fdca3bfdd7589f77f88 b/back-to-the-future/flask_session/e3b35579ddaa8fdca3bfdd7589f77f88 new file mode 100644 index 0000000000000000000000000000000000000000..4bdcb21771ae6ccee0614ac52c8578a91b3400d9 GIT binary patch literal 100 zcmX@9X`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;bMV9B}xudo3~n;oo{`kFOj%wN{?V-N^WLed}>8OW>IQzi989WYJ5HKYA2x zSJDkXe)(pORRTI>jqV*D$?Q4*;N> BDR%$> literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/e4cdb37fc6127fd3b2aa01d53d00f688 b/back-to-the-future/flask_session/e4cdb37fc6127fd3b2aa01d53d00f688 new file mode 100644 index 0000000000000000000000000000000000000000..ec091b48845bed62308f6e2e6e5ac738e38d1da9 GIT binary patch literal 100 zcmWI4G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaM>=asK|^r2dGrTS`Ts z-V7D%1FsJJx^?|p8}Ikj<_SjbQ+fmwQ*tx&;!`UMGK*5o6;kgn39{B7oS>DkXe)(pORRTI>l?Q8OW>IQ A+W-In literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/e778dec5a8adbd18365d124ff668e7f1 b/back-to-the-future/flask_session/e778dec5a8adbd18365d124ff668e7f1 new file mode 100644 index 0000000000000000000000000000000000000000..e6eb6e1d85dc5498c5d632529186b220f2ffcad7 GIT binary patch literal 100 zcmX@0X`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;gXd+{~BzQ!f4CmOSqG z(chb0>0IjjqNUfiZOpyB42)dK+6 CdMg+J literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/e88189732217df5915a5b1c3a8fb8379 b/back-to-the-future/flask_session/e88189732217df5915a5b1c3a8fb8379 new file mode 100644 index 0000000000000000000000000000000000000000..cccb5e29db0cdfec32550e2e715ed42c662920bc GIT binary patch literal 100 zcmZSoZkEx&IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;bM&LrXjG=Ue?F&L1a8 zNq@_K^WVv*O-N)1!|vJluC=68Pw5d%Ov%m6i%+d6$Sg{YPf09Eo#Mq_Ws_d22LM#* BCy@XE literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/e8e138b0058292a5a274d344df3d1195 b/back-to-the-future/flask_session/e8e138b0058292a5a274d344df3d1195 new file mode 100644 index 0000000000000000000000000000000000000000..5680d01badb2ee40cb592f3b24432c6f3ea09bbe GIT binary patch literal 100 zcmbPfW1i8#IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;i6);N}tW)gn`GU-|5) z!5^CtQ2d)+E{lh8|A~f{vo#+dPU#U$Ov%m6i%+d6$Sg{YPf09Eo#Hif>Vfo9JpfWR BD5d}a literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/e923b6aa9df3b01e5182b1a003bf35ec b/back-to-the-future/flask_session/e923b6aa9df3b01e5182b1a003bf35ec new file mode 100644 index 0000000000000000000000000000000000000000..a0675859ce89400fc88cd50d0e648d258676333b GIT binary patch literal 100 zcmea*G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaLe_yWr=y?A(T5&TC&c z|ENB;Xvbvx#P^$jhGj^HxW2SDo6;kgn39{B7oS>DkXe)(pORRTI>pPM(<;4G4*;?n BDPaHr literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/e974e3a27a6325862014cc322254eae9 b/back-to-the-future/flask_session/e974e3a27a6325862014cc322254eae9 new file mode 100644 index 0000000000000000000000000000000000000000..237b8a508d181f1db9cccf7f19d14529a55c1251 GIT binary patch literal 100 zcmdn5X`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;e9Y(p8?fi`X=m2AG?y zcu{gU>hIm|Z3j=L_G!yzO@u?LBnMJAbDTyViQ@pN4%B7d;0RSqB BC;%`BsVb!sRB1k_H^=;4YlNG-}u%uCHHnbOh2oSj-Z#aY2M@qRwbfdvgF_oSZ) zrS{x;9PP2gC1c@@oxb+7>r2Z|Oz9C!Ov%m6i%+d6$Sg{YPf09Eo#JIBl#pJk2LP<{ BD3$;K literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/eb719038ef362e4fde8b7b3224d75098 b/back-to-the-future/flask_session/eb719038ef362e4fde8b7b3224d75098 new file mode 100644 index 0000000000000000000000000000000000000000..0da91f98a659cc151987bf1acc072d65d63fcdf3 GIT binary patch literal 100 zcmcbrX`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;gWTDcAn6{F481rk>&5 zQ#)nr-c}}=?H8Lo!DoH{P1|K#rt}CVrsQVk#iv#jWEQ2yrzDo7PVu_h@+-Ym4*)~* BD5L-Y literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/ee19c744649264c1537173fba3a11df4 b/back-to-the-future/flask_session/ee19c744649264c1537173fba3a11df4 new file mode 100644 index 0000000000000000000000000000000000000000..031f05de3c6e9979930722be071842c3518c47ce GIT binary patch literal 100 zcmaE8W|q;wIyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;bOiW;N|;V!^E{H^nF0 zuCxCQE|}$i#s2=Jm;wz(!@u?LBnMJAbDTyViQ@kGjQ%*0{0{~Wl BC>sC( literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/ee87118eb53b5c941f2134ee0cd61508 b/back-to-the-future/flask_session/ee87118eb53b5c941f2134ee0cd61508 new file mode 100644 index 0000000000000000000000000000000000000000..e1f823c539623e514ebc3db122fb5d7941a16229 GIT binary patch literal 100 zcmeBhFwbaUof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaK4dsj?wkSn#Uk<%WvV zY0)KZ1&@w+wk8+t50+gjYizP)N{?V-N^WLed}>8OW>IQ@u?LBnMJAbDTyViQ@oC~JxnXr0{~yG BC^P^7 literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/efd4c0fb34e78ea7cd825af8f89b0fbc b/back-to-the-future/flask_session/efd4c0fb34e78ea7cd825af8f89b0fbc new file mode 100644 index 0000000000000000000000000000000000000000..6fe65ad2c391e118fe9336c17d2ca6d709ab9137 GIT binary patch literal 100 zcmWf#HP2{Zof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaM3t+RqvJF+uXpp`7A9 z553<+FXO99>sj9M{k`4qef$n>Q+fmwQ*tx&;!`UMGK*50{}MZ BD186` literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/f0dd61f72859cdbe4e4f9a417e659817 b/back-to-the-future/flask_session/f0dd61f72859cdbe4e4f9a417e659817 new file mode 100644 index 0000000000000000000000000000000000000000..9d178c16d054a518521af9655eacc47caab55be0 GIT binary patch literal 100 zcmdm?X`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;b;?*TZHnH|C$Oli$of zPa@2r}PLWrsQVk#iv#jWEQ2yrzDo7PVq|n>y=)r2LPg- BD5?Me literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/f435dcda99208cbdac00b580b6e40b93 b/back-to-the-future/flask_session/f435dcda99208cbdac00b580b6e40b93 new file mode 100644 index 0000000000000000000000000000000000000000..e7c625dcf2c3dccf132b73b967e31d0709e0fab3 GIT binary patch literal 100 zcmd;3H_vEbof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaP!QOFnJV*K4(tlJw(u z6}SAjVUyrprPjp1S|~JRuK7x-DLsOTDY=<>@u?LBnMJAbDTyViQ@mJ>E~l010RRYA BCO-fG literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/f4745a9cf85051fd561cb8325c5e4314 b/back-to-the-future/flask_session/f4745a9cf85051fd561cb8325c5e4314 new file mode 100644 index 0000000000000000000000000000000000000000..9fcf4fbbfb21f40edb462a02c92979e6f4555ac7 GIT binary patch literal 100 zcmea$G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaQ1!N-|0+*9>3#wSm(j zDY&nHLHV)hUT&_sHnwVWsfyK8dIS?wax?SdQ!5HGi&EoL5=&C2czHG7O)u300D&ze AHUIzs literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/f49747bd1cb88b14c946e5a167412850 b/back-to-the-future/flask_session/f49747bd1cb88b14c946e5a167412850 new file mode 100644 index 0000000000000000000000000000000000000000..e2f17a6a6a050852a0bf8e6ae49d6398b25e8504 GIT binary patch literal 100 zcmdm{X`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;g{a`F#5Btit(f?QZv_ zz6d#$M*BTqSu9wg-B!4^tvn^9FY^4FWwpOWrt}CVrsQVk#iv#jWEQ2yrzDo7PVrK*`;u0w2LMlq BC%*sy literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/f700cc8bd7d384a318b16419cc59820b b/back-to-the-future/flask_session/f700cc8bd7d384a318b16419cc59820b new file mode 100644 index 0000000000000000000000000000000000000000..27b7a8eb823038dc39f8e3e1a9b19a07cbe7b119 GIT binary patch literal 100 zcmbRL)hwfdb!sRB1k_H^=;4YlNG-}u%uCHHnbOh2oSj-Z#aUsRF|VFX^|5H9&J`Am zvI^F(w!P1^TcF6u_fyhCsc-MkP3aL#Ov%m6i%+d6$Sg{YPf09Eo#HirnNE7C9spU% BC<*`o literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/f7dd1d01df355bed4bd0c3199557e610 b/back-to-the-future/flask_session/f7dd1d01df355bed4bd0c3199557e610 new file mode 100644 index 0000000000000000000000000000000000000000..c81a3489bf6aefe7b12cd370a271a5a5535fdc02 GIT binary patch literal 100 zcmd1NG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaJ(Cz1Xc%>Hql&0meK= zC-gR@nZ-6H-<#-VS<0p{gKtgUlpevvl-$g`_|%Gm%%arzl*E$MDPC_bElDrc0|4jA BCXWCB literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/f84876bdeaa1e73ba1863dae6aac850e b/back-to-the-future/flask_session/f84876bdeaa1e73ba1863dae6aac850e new file mode 100644 index 0000000000000000000000000000000000000000..2627cea99964562013661c350531eb103b1fb51c GIT binary patch literal 100 zcmYe$G|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaKqRIeq#%=ee5;r`2$6 zQoR1+JNFHV{#q{i-*?LPRy>@&b4rh3VoGjiUVLgrL1s~Ed`eJ+aB&d%wjdH|9W BDewRQ literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/f9385592b78b595cd41625cc39ab1c27 b/back-to-the-future/flask_session/f9385592b78b595cd41625cc39ab1c27 new file mode 100644 index 0000000000000000000000000000000000000000..992a15e2b4b36ed7760f3a76a0eda50489750005 GIT binary patch literal 100 zcmd1TG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaJgt5?fNZ_f(dQ++9|Y zf7VmQ)$HUG&lWy;tK(-~v%h-Dlpevvl-$g`_|%Gm%%arzl*E$MDPDOu`O{1F0PzJ+cgr`+kKdH~pp BDkT5_ literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/f9b86358cb779b1dd907dfa8f1849b55 b/back-to-the-future/flask_session/f9b86358cb779b1dd907dfa8f1849b55 new file mode 100644 index 0000000000000000000000000000000000000000..e8bf17a3b12cdcfd36d97232e7d63d68646c61f8 GIT binary patch literal 100 zcmdmCVV2RrIyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;e9?z3oY7SI)F0kGK?- z*R+})z96F;_xD3xt=!|t>#GD5rt}CVrsQVk#iv#jWEQ2yrzDo7PVus6G)gbk0|0sT BC=~zz literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/fa1ff5df9646c63b4c384ad7647eca9b b/back-to-the-future/flask_session/fa1ff5df9646c63b4c384ad7647eca9b new file mode 100644 index 0000000000000000000000000000000000000000..bbfd8cf5ffd6b19f89c4325711e3c9aabb222d29 GIT binary patch literal 100 zcmZ?MG|y;Yof^sj0ku;!dbr{XQj2mE^HTFlrgZc$XQx(9aaL&Is&o%HxAXWmLsjv) z++XBBd}`R%DDvaEonA*|7vmP8DLsOTDY=<>@u?LBnMJAbDTyViQ@mVlcBhx>0RRO5 BCY%5O literal 0 HcmV?d00001 diff --git a/back-to-the-future/flask_session/fc6babfe600fb622a3bb209a8fc10e30 b/back-to-the-future/flask_session/fc6babfe600fb622a3bb209a8fc10e30 new file mode 100644 index 0000000000000000000000000000000000000000..81768d90e3c99d0d2966cf7f70522bb5085b2916 GIT binary patch literal 100 zcmX@5X`a!*IyIC50&1sd^l-%&q!#5S=B4J9OzG%h&Q7hI;;dl5HR`^P#J@YU7O-46 zdElki&&2k^vl}C>$p5~3Ww)8uyD2?_i7C06dGV ")) + random.seed(seed) + nonce = random.getrandbits(12*8) + + print("OK! I can now give you the encrypted secret!") + print(encrypt_and_update(flag, nonce).hex()) + + confirm = input("Do you want to encrypt something else? (y/n)") + while confirm.lower() != 'n': + if confirm.lower() == 'y': + msg = input("What is the message? ") + print(encrypt_and_update(msg, nonce).hex()) + confirm = input("Do you want to encrypt something else? (y/n)") + + +if __name__ == '__main__': + main() diff --git a/decrypt-the-flag/attack.py b/decrypt-the-flag/attack.py new file mode 100644 index 0000000..a4b3d04 --- /dev/null +++ b/decrypt-the-flag/attack.py @@ -0,0 +1,34 @@ +#!/usr/bin/env python3 + +from pwn import * +import random +from Cryptodome.Cipher import ChaCha20 +from Cryptodome.Util.number import long_to_bytes + +HOST = "130.192.5.212" +PORT = "6561" +#Using the same seed I generate the same random numbers +#in the same order +# Repeating a nonce with the same key +# reveals the XOR of two different messages, which allows decryption. +seed = 123 +nlen = 12*8 +random.seed(seed) +nonce = random.getrandbits(nlen) +print(f"Nonce:{nonce}") +random.seed(seed) +nonce1 = random.getrandbits(nlen) +#Use this nonce +print(f"Nonce1:{nonce1}") +print(long_to_bytes(nonce1).hex()) +# Used nonce +flag="81d36783bb44a32f060a30aa0551f71c12d81a888dfdd8c317dd3afd0905db796357dbb8642a2c9eae2ab1db2eb7" +flag = bytes.fromhex(flag) +amsg="83c07f92ae4ad05b3c7e10dd7472856c63b43df8f588b4b660aa4a917170ab5a0f73fb9b120e5ce78b08c0ad5c8b" +amsg = bytes.fromhex(amsg) +apayload = b'A'*46 +ks = bytes(m ^ a for m,a in zip(amsg,apayload)) +fflag = bytes(f ^ k for f,k in zip(flag,ks)) +print(fflag) +#ks= bytes([f ^ a for f,a in zip(bytes.fromhex(b'A'*46),bytes.fromhex(amsg))]) +#print(bytes([f ^ a for f,a in zip(flag,ks)])) diff --git a/decrypt-the-flag/chall.py b/decrypt-the-flag/chall.py new file mode 100644 index 0000000..20bace6 --- /dev/null +++ b/decrypt-the-flag/chall.py @@ -0,0 +1,34 @@ +import random +from Cryptodome.Cipher import ChaCha20 +from Cryptodome.Util.number import long_to_bytes +#from secret import flag, randkey + +nonce = -1 +flag = 'Z'*46 +randkey= b'A'*32 +def encrypt_and_update(msg, nonce): + print(f"Encrypting with NONCE:{nonce}") + cipher = ChaCha20.new(key=randkey, nonce=long_to_bytes(nonce)) + nonce = random.getrandbits(12*8) + return cipher.encrypt(msg.encode()) + + +def main(): + seed = int(input( + "Hi, our system doesn't support analogic entropy... so please give a value to initialize me!\n> ")) + random.seed(seed) + nonce = random.getrandbits(12*8) + + print("OK! I can now give you the encrypted secret!") + print(encrypt_and_update(flag, nonce).hex()) + + confirm = input("Do you want to encrypt something else? (y/n)") + while confirm.lower() != 'n': + if confirm.lower() == 'y': + msg = input("What is the message? ") + print(encrypt_and_update(msg, nonce).hex()) + confirm = input("Do you want to encrypt something else? (y/n)") + + +if __name__ == '__main__': + main() diff --git a/fool-the-oracle-v2/attack.py b/fool-the-oracle-v2/attack.py new file mode 100644 index 0000000..d921811 --- /dev/null +++ b/fool-the-oracle-v2/attack.py @@ -0,0 +1,108 @@ +#!/usr/bin/env python3 +from pwn import * + +HOST = "130.192.5.212" +PORT = "6542" + +server = remote(HOST,PORT) +sleepT = 0.1 + +payload = b'A'*32 +flag = "CRYPTO25{ad3c6c1e-5cac-4c87-b5c3-a5dab511fee3}" +firstBlock = b"CRYPTO25{ad3c6c1" +secondBlock = b"e-5cac-4c87-b5c3" +thirdBlock=b"-a5dab511fee3}" +flagGuessed = b'' +"""for i in range(16): + # Create one pad block with the 5 random bytes + beforePad = b'A'*11 + pad = b'A'*(16-(i+1)) + fPayload = pad + flagGuessed + for guess in string.printable: + guess = bytes(guess,'utf-8') + server.send(b'enc\n') + sleep(sleepT) + server.recv(1024) + sleep(sleepT) + print(f"Payload len: {len(fPayload+guess)} Pad len: {len(pad)}") + toSend = beforePad+fPayload+guess+pad + print(f"Sending {toSend} with len {len(toSend)}") + server.send( toSend.hex()) + server.send(b'\n') + sleep(sleepT) + #print(server.recv(1024)) + ciphertext = server.recv(1024) + #print(f"Ciphertext:{ciphertext}") + ciphertext = bytes.fromhex(ciphertext.strip(b" >").split(b"\n")[0].decode('utf-8')) + if ciphertext[16:32] == ciphertext[32:48]: + print(f"Block1:{ciphertext[16:32]} Block2:{ciphertext[32:48]}") + print(f"Matched guess: {guess}") + flagGuessed += guess + print(f"Already Guessed: {flagGuessed}") + break + sleep(sleepT) + #ciphertext//AES.blocksize +""" + +"""for i in range(16): + beforePad = b'A'*11 + pad = firstBlock[(i+1):] + #pad = b'A'*(16 - (len(flagGuessed)+1) ) + fPayload = pad + flagGuessed + #fPayload = b"A"*(16 - (len(fBlock+flagGuessed)+1) )+fBlock+flagGuessed + #fPayload = fBlock[(i+1):]+flagGuessed + for guess in string.printable: + guess = bytes(guess,'utf-8') + server.send(b'enc\n') + server.recv(1024) + sleep(sleepT) + #The second pad can be whatever + toSend = beforePad + fPayload+guess+pad + print(f"Payload len: {len(fPayload+guess)} Pad len: {len(pad)}") + print(f"Sending {toSend} with len {len(toSend)}") + server.send( toSend.hex()) + server.send(b'\n') + sleep(sleepT) + #print(server.recv(1024)) + ciphertext = server.recv(1024) + #print(f"Ciphertext:{ciphertext}") + ciphertext = bytes.fromhex(ciphertext.strip(b" >").split(b"\n")[0].decode('utf-8')) + if ciphertext[16:32] == ciphertext[48:64]: + print(f"Block1:{ciphertext[0:16]} Block2:{ciphertext[16:32]}") + print(f"Matched guess: {guess}") + flagGuessed += guess + print(f"Already Guessed: {flagGuessed}") + break + sleep(sleepT) + #ciphertext//AES.blocksize +""" +for i in range(16): + beforePad = b'A'*11 + pad = secondBlock[(i+1):] + #pad = b'A'*(16 - (len(flagGuessed)+1) ) + fPayload = pad + flagGuessed + #fPayload = b"A"*(16 - (len(fBlock+flagGuessed)+1) )+fBlock+flagGuessed + #fPayload = fBlock[(i+1):]+flagGuessed + for guess in string.printable: + guess = bytes(guess,'utf-8') + server.send(b'enc\n') + server.recv(1024) + sleep(sleepT) + #The second pad can be whatever + toSend = beforePad + fPayload+guess+pad + print(f"Payload len: {len(fPayload+guess)} Pad len: {len(pad)}") + print(f"Sending {toSend} with len {len(toSend)}") + server.send( toSend.hex()) + server.send(b'\n') + sleep(sleepT) + #print(server.recv(1024)) + ciphertext = server.recv(1024) + #print(f"Ciphertext:{ciphertext}") + ciphertext = bytes.fromhex(ciphertext.strip(b" >").split(b"\n")[0].decode('utf-8')) + if ciphertext[16:32] == ciphertext[64:80]: + print(f"Block1:{ciphertext[0:16]} Block2:{ciphertext[16:32]}") + print(f"Matched guess: {guess}") + flagGuessed += guess + print(f"Already Guessed: {flagGuessed}") + break + sleep(sleepT) diff --git a/fool-the-oracle-v2/chall.py b/fool-the-oracle-v2/chall.py new file mode 100644 index 0000000..49e8bdf --- /dev/null +++ b/fool-the-oracle-v2/chall.py @@ -0,0 +1,41 @@ +from Cryptodome.Cipher import AES +from Cryptodome.Util.Padding import pad, unpad +from Cryptodome.Random import get_random_bytes +#from secret import flag +flag = "puppa" +assert (len(flag) == len("CRYPTO25{}") + 36) + +key = get_random_bytes(24) +padding = get_random_bytes(5) +flag = flag.encode() + + +def encrypt() -> bytes: + data = bytes.fromhex(input("> ").strip()) + payload = padding + data + flag + + cipher = AES.new(key=key, mode=AES.MODE_ECB) + print(cipher.encrypt(pad(payload, AES.block_size)).hex()) + + +def main(): + menu = \ + "What do you want to do?\n" + \ + "quit - quit the program\n" + \ + "enc - encrypt something\n" + \ + "help - show this menu again\n" + \ + "> " + + while True: + cmd = input(menu).strip() + + if cmd == "quit": + break + elif cmd == "help": + continue + elif cmd == "enc": + encrypt() + + +if __name__ == '__main__': + main() diff --git a/fool-the-oracle-v3/attack.py b/fool-the-oracle-v3/attack.py new file mode 100644 index 0000000..56ecef5 --- /dev/null +++ b/fool-the-oracle-v3/attack.py @@ -0,0 +1,81 @@ +#!/usr/bin/env python3 +from pwn import * + +HOST = "130.192.5.212" +PORT = "6543" + +server = remote(HOST,PORT) +sleepT = 0.1 + +firstBlock=b"CRYPTO25{e3ab216" +#If the pad generated is correct the second and third block are equal +#Then I guessed the random pad +for i in range(16): + pad=b'A'*i + secondBlock=b'B'*16 + thirdBlock=b'B'*16 + server.send(b'enc\n') + server.recv(1024) + sleep(sleepT) + #The second pad can be whatever + toSend = pad + secondBlock + thirdBlock + print(f"Sending {toSend} with len {len(toSend)}") + server.send( toSend.hex()) + server.send(b'\n') + sleep(sleepT) + ciphertext = server.recv(1024) + ciphertext = bytes.fromhex(ciphertext.strip(b" >").split(b"\n")[0].decode('utf-8')) + if ciphertext[16:32] == ciphertext[32:48]: + PAD_NUM=i + print(f"Found the right padding num:{PAD_NUM}") + break +firstBlock=b"CRYPTO25{e3ab216" +secondBlock="9-39d5-43aa-bde7" +thirdBlock="-02286c2e2e56}" +flag="CRYPTO25{e3ab2169-39d5-43aa-bde7-02286c2e2e56}" +#lastBlock=b'A'*16 +lastBlock=firstBlock +flagGuessed=b'' +#beginning=32 +#end=48 +beginning=48 +end=64 +flag=b'' + +for j in range(1,3): + print(f"{'-'*5} Finding block n:{j+1} {'-'*5}") + for i in range(16): + beforePad = b'A'*PAD_NUM + pad = lastBlock[(i+1):] + #pad = b'A'*(16 - (len(flagGuessed)+1) ) + fPayload = pad + flagGuessed + for guess in string.printable: + guess = bytes(guess,'utf-8') + server.send(b'enc\n') + server.recv(1024) + sleep(sleepT) + #The second pad can be whatever + toSend = beforePad + fPayload+guess+pad + print(f"Payload len: {len(fPayload+guess)} Pad len: {len(pad)}") + print(f"Sending {toSend} with len {len(toSend)}") + server.send( toSend.hex()) + server.send(b'\n') + sleep(sleepT) + ciphertext = server.recv(1024) + ciphertext = bytes.fromhex(ciphertext.strip(b" >").split(b"\n")[0].decode('utf-8')) + if ciphertext[16:32] == ciphertext[beginning:end]: + #print(f"Block1:{ciphertext[0:16]} Block2:{ciphertext[16:32]}") + print(f"Matched guess: {guess}") + flagGuessed += guess + print(f"Already Guessed: {flagGuessed}") + break + sleep(sleepT) + lastBlock=flagGuessed + flag+=lastBlock + print(f"Entire block guessed:{lastBlock}") + flagGuessed=b'' + beginning+=16 + end+=16 + if(b'}' in flagGuessed): + break +print(flag) diff --git a/fool-the-oracle-v3/chall.py b/fool-the-oracle-v3/chall.py new file mode 100644 index 0000000..f6c78a6 --- /dev/null +++ b/fool-the-oracle-v3/chall.py @@ -0,0 +1,42 @@ +from Crypto.Cipher import AES +from Crypto.Util.Padding import pad, unpad +from Crypto.Random import get_random_bytes +from random import randint +from secret import flag + +assert (len(flag) == len("CRYPTO25{}") + 36) + +key = get_random_bytes(24) +padding = get_random_bytes(randint(1, 15)) +flag = flag.encode() + + +def encrypt() -> bytes: + data = bytes.fromhex(input("> ").strip()) + payload = padding + data + flag + + cipher = AES.new(key=key, mode=AES.MODE_ECB) + print(cipher.encrypt(pad(payload, AES.block_size)).hex()) + + +def main(): + menu = \ + "What do you want to do?\n" + \ + "quit - quit the program\n" + \ + "enc - encrypt something\n" + \ + "help - show this menu again\n" + \ + "> " + + while True: + cmd = input(menu).strip() + + if cmd == "quit": + break + elif cmd == "help": + continue + elif cmd == "enc": + encrypt() + + +if __name__ == '__main__': + main() diff --git a/fool-the-oracle/attack.py b/fool-the-oracle/attack.py new file mode 100644 index 0000000..e572196 --- /dev/null +++ b/fool-the-oracle/attack.py @@ -0,0 +1,85 @@ +#!/usr/bin/env python3 + +from Cryptodome.Cipher import AES +from pwn import * +import math +os.environ['PWNLIB_NOTERM'] = 'True' +os.environ['PWNLIB_SILENT'] = 'True' +HOST = "130.192.5.212" +PORT = "6541" +server = remote(HOST, PORT) +sleepT = 0.1 +# First block +#discoveringFlag=b"CRYPTO25{96ce8a93-d548-4f88-bc6" +firstBlock=b"CRYPTO25{96ce8a9" +secondBlock=b"3-d548-4f88-bc6c" +thirdBlock=b"-db6eb3c96382}" + +print(firstBlock+secondBlock+thirdBlock) +sleep(1000) + +flagGuessed=b"" +"""for i in range(15): + pad = b'A'*(16 - (len(flagGuessed)+1) ) + fPayload = pad + flagGuessed + #fPayload = b"A"*(16 - (len(fBlock+flagGuessed)+1) )+fBlock+flagGuessed + #fPayload = fBlock[(i+1):]+flagGuessed + for guess in string.printable: + guess = bytes(guess,'utf-8') + server.send(b'enc\n') + server.recv(1024) + sleep(sleepT) + toSend = fPayload+guess+pad + #toSend = fPayload+guess+fPayload[i:] + #print(len(fPayload[i:])) + print(f"Sending {toSend} with len {len(toSend)}") + server.send( toSend.hex()) + server.send(b'\n') + sleep(sleepT) + #print(server.recv(1024)) + ciphertext = server.recv(1024) + #print(f"Ciphertext:{ciphertext}") + ciphertext = bytes.fromhex(ciphertext.strip(b" >").split(b"\n")[0].decode('utf-8')) + if ciphertext[0:16] == ciphertext[16:32]: + print(f"Block1:{ciphertext[0:16]} Block2:{ciphertext[16:32]}") + print(f"Matched guess: {guess}") + flagGuessed += guess + print(f"Already Guessed: {flagGuessed}") + break + sleep(sleepT) + #ciphertext//AES.blocksize +""" +for i in range(16): + pad = secondBlock[(i+1):] + #pad = b'A'*(16 - (len(flagGuessed)+1) ) + fPayload = pad + flagGuessed + #fPayload = b"A"*(16 - (len(fBlock+flagGuessed)+1) )+fBlock+flagGuessed + #fPayload = fBlock[(i+1):]+flagGuessed + for guess in string.printable: + guess = bytes(guess,'utf-8') + server.send(b'enc\n') + server.recv(1024) + sleep(sleepT) + #The second pad can be whatever + toSend = fPayload+guess+pad + print(f"Sending {toSend} with len {len(toSend)}") + server.send( toSend.hex()) + server.send(b'\n') + sleep(sleepT) + #print(server.recv(1024)) + ciphertext = server.recv(1024) + #print(f"Ciphertext:{ciphertext}") + ciphertext = bytes.fromhex(ciphertext.strip(b" >").split(b"\n")[0].decode('utf-8')) + if ciphertext[0:16] == ciphertext[48:64]: + print(f"Block1:{ciphertext[0:16]} Block2:{ciphertext[16:32]}") + print(f"Matched guess: {guess}") + flagGuessed += guess + print(f"Already Guessed: {flagGuessed}") + break + sleep(sleepT) + #ciphertext//AES.blocksize + +server.close() +# CRYPTO25{flag} total length of 46, almost 3 blocks less 2 bytes +# One block is 16 bytes +#flag = CRYPTO25{CCCCCC diff --git a/fool-the-oracle/chall.py b/fool-the-oracle/chall.py new file mode 100644 index 0000000..7741997 --- /dev/null +++ b/fool-the-oracle/chall.py @@ -0,0 +1,43 @@ +from Cryptodome.Cipher import AES +from Cryptodome.Util.Padding import pad, unpad +from Cryptodome.Random import get_random_bytes +#from secret import flag + +flag = f"CRYPTO25({'A'*36})" +#Total flag len is 46 +#The block size is 16 +#16 32 48 +assert (len(flag) == len("CRYPTO25{}") + 36) +key = get_random_bytes(24) +flag = flag.encode() + +# the encrypted payload is the given Data + Flag +def encrypt() -> bytes: + data = bytes.fromhex(input("> ")) + payload = data + flag + + cipher = AES.new(key=key, mode=AES.MODE_ECB) + print(cipher.encrypt(pad(payload, AES.block_size)).hex()) + + +def main(): + menu = \ + "What do you want to do?\n" + \ + "quit - quit the program\n" + \ + "enc - encrypt something\n" + \ + "help - show this menu again\n" + \ + "> " + + while True: + cmd = input(menu).strip() + + if cmd == "quit": + break + elif cmd == "help": + continue + elif cmd == "enc": + encrypt() + + +if __name__ == '__main__': + main() diff --git a/fool-the-oracle/lecture.py b/fool-the-oracle/lecture.py new file mode 100644 index 0000000..0abb21a --- /dev/null +++ b/fool-the-oracle/lecture.py @@ -0,0 +1,67 @@ +import os +os.environ['PWNLIB_NOTERM'] = 'True' +os.environ['PWNLIB_SILENT'] = 'True' + +if __name__ == '__main__': + #server = remote(HOST, PORT) + #server.send(iv) + #server.send(ciphertext) + #response = server.recv(1024) + #print(response) + #server.close() + + #server = remote(HOST, PORT) + #server.send(iv) + + #edt = bytearray(ciphertext) + #edt[-1] = 0 + #server.send(edt) + #response = server.recv(1024) + #print(response) + #server.close() +#--------------- + print(len(ciphertext)//AES.block_size) + N = len(ciphertext)//AES.block_size) + #This initial part will be non modifiabke + #We put all the block except the last one + initial_part = ciphertext[:(N-2)*AES.block_size] + #The second to last block is the one swapped in CBC then it is not dependent from the others(?) + block_to_modify = bytearray(ciphertext[(N-2)*AES.block_size:(N-1)*AES.block_size]) + last_block = ciphertext[(N-1]*AES.block_size:] + + byte_index = AES.block_size - 1 + c15 = block_to_modify[byte_index] + + for c_prime_15 in range(256): + + block_to_modify[byte_index] = c_prime_15 + to_send = initial_part + block_to_modify + last_block + + server = remote(HOST, PORT) + server.send(iv) + server.send(to_send) + response = server.recv(1024) + #print(response) + server.close() + + if response = b'OK': + print("c_prime_15"+str(c_prime_15)) + p_prime_15 = c_prime_15 ^ 1 + p_15 = p_prime_15 ^ c_15 + print("p_prime_15"+str(p_prime_15)) + print("p_15"+str(p_15)) + p_prime_15 = 191 + + c_second_15 = p_prime_15 ^ 2 + block_to_modify[byte_index] = c_second_15 + + byte_index -= 1 + c_14 = block_to_modify[byte_index] + + for c_prime_14 in range(256): + + block_to_modify[byte_index] = c_prime_14 + to_send = initial_part + block_to_modify + last_block + + ##connect to the server etc + diff --git a/force-decryption/attack.py b/force-decryption/attack.py new file mode 100644 index 0000000..d926e45 --- /dev/null +++ b/force-decryption/attack.py @@ -0,0 +1,68 @@ +#!/usr/bin/env python3 +from pwn import * +from Cryptodome.Cipher import AES +from Cryptodome.Random import get_random_bytes +import os +HOST = "130.192.5.212" +PORT = "6523" +server = remote(HOST, PORT) +# I cant encrypt iamsuperadmin +# I can encrypt a xorred version of it +# I can generate a different IV to obtain the original iamsuperadmin? +# (iamsuperadmin XOR something) XOR IV -> Encrypted +# Encrypted -> Decrypted XORRED +# P XOR S XOR IV = P' +# S XOR IV = IV'? To give in decryption phase? +sleepT = 1 +print(server.recv(1024)) +server.send(b'enc') +server.send(b'\n') +sleep(sleepT) +print(server.recv(1024)) + +leak = b"mynamesuperadmin" +#XOR the leak +payload = bytes([l ^ 1 for l in leak]) +print(f"Sending payload {payload.hex()}") +server.send(payload.hex()) +server.send(b'\n') +sleep(sleepT) +mres = server.recv(1024).split(b'\n') +print(mres) +iv = mres[0].split(b':')[1].strip() +iv = bytes.fromhex(iv.decode('utf-8')) +enc = mres[1].split(b':')[1].strip() +print(f"Received IV {iv.hex()} enc {enc}") +#Do not touch encrypted block +ivm = bytes([i ^ 1 for i in iv]) +print(f"Malicious IV:{ivm.hex()} len:{len(ivm)}") +sleep(sleepT) +server.send(b'dec\n') +print(server.recv(1024)) +sleep(sleepT) +server.send(enc) +server.send(b'\n') +sleep(sleepT) +print(server.recv(1024)) +server.send(ivm.hex()) +server.send(b'\n') +sleep(sleepT) +print(server.recv(1024)) +#string = "6c786f606c64727471647360656c686\n" +#string = bytes.fromhex(string) +#Maybe like an inverse known text attack? +# I can decrypt with the same key and IV multiple given cipherblock + #to obtain the key? +# P ----> C1 +# P2 ----> C2 L + +"""leak = b"mynamesuperadmin" +#XOR the leak +payload = bytes([l ^ 1 for l in leak]) +print(f"leak:{leak.hex()} len:{len(leak)}") +print(f"payload:{bytes.fromhex(payload.hex())}") +#XOR the original IV +iv = b"" +ivm = bytes([i ^ 1 for i in iv]) +print(f"Malicious IV:{ivm.hex()} len:{len(ivm)}") +""" diff --git a/force-decryption/chall.py b/force-decryption/chall.py new file mode 100644 index 0000000..434b7ac --- /dev/null +++ b/force-decryption/chall.py @@ -0,0 +1,77 @@ +from Cryptodome.Cipher import AES +from Cryptodome.Random import get_random_bytes +#from secret import flag + +key = get_random_bytes(16) +leak = b"mynamesuperadmin" + + +def make_cipher(): + IV = get_random_bytes(16) + cipher = AES.new(key, AES.MODE_CBC, IV=IV) + return IV, cipher + + +def encrypt(): + string = input("What do you want to encrypt?\n> ") + #string = leak + #stringX = bytes(([s ^ 1 for s in string])) + string = bytes.fromhex(string) + #string = stringX + if len(string) != 16: + + print("Sorry, you can encrypt only 16 bytes!") + return + + if leak == string: + print("Sorry, you can't encrypt that!") + return + + IV, cipher = make_cipher() + encrypted = cipher.encrypt(string) + + print(F"IV: {IV.hex()}\nEncrypted: {encrypted.hex()}\n") + + +def decrypt(): + string = input("What do you want to decrypt?\n> ") + string = bytes.fromhex(string) + + IV = input("Gimme the IV\n> ") + IV = bytes.fromhex(IV) + + if (IV == leak): + print("Nice try...") + return + + cipher = AES.new(key, AES.MODE_CBC, IV=IV) + + decrypted = cipher.decrypt(string) + if leak == decrypted: + print(f"Good job. Your flag: PUPPA") + else: + print(f"Mh, a normal day.\nDecrypted: {decrypted.hex()}") + + +if __name__ == '__main__': + menu = \ + "What do you want to do?\n" + \ + "quit - quit the program\n" + \ + "enc - encrypt something\n" + \ + "dec - decrypt something\n" + \ + "help - show this menu again\n" + \ + "> " + + while True: + cmd = input(menu).strip() + + if cmd == "quit": + break + elif cmd == "help": + continue + elif cmd == "enc": + encrypt() + elif cmd == "dec": + decrypt() + elif cmd == "crack": + decrypt(encrypt()) diff --git a/force-decryption/lecture.py b/force-decryption/lecture.py new file mode 100644 index 0000000..2076cba --- /dev/null +++ b/force-decryption/lecture.py @@ -0,0 +1,3 @@ +#!/usr/bin/env python3 + +import os diff --git a/forge-a-cookie/attack.py b/forge-a-cookie/attack.py new file mode 100644 index 0000000..c643e02 --- /dev/null +++ b/forge-a-cookie/attack.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python3 +from Cryptodome.Cipher import ChaCha20 +from Cryptodome.Random import get_random_bytes +import json +import base64 +def foo(name,nonce): + + #token = json.dumps({ + # "username" : name + #}) + token = json.dumps({ + "admin" : True + }) + if json.loads(token).get("admin",False) == True: + print("ADMIN achieved") + else: + print("erorr") + #ENCRYPTED token.encode() + tc = token.encode() + etc = base64.b64encode(tc).decode() + dec_token = base64.b64decode(etc) + user = json.loads(dec_token) + print(user) + print(user.get("admin",False)) + print(f"Token encoded: {tc}") + print(f"Token:{token}") +foo("admin",1) +name = input("Give me name!\n").strip() +token = json.dumps({ + "username" : name +}) +print(token.encode()) + +def attack(): + enc_token = input("Give me the token:") + nonce, token = enc_token.split(".") + print(f"{nonce}, {token}") + payload = json.dumps({ + "username" : "aaaa" + }).encode() + adminPayload = json.dumps({ + "admin" : True + }).encode() + adminTok = b'' + tok = base64.b64decode(token) + keystream = b'' + print(f"Len payload:{len(payload)} Len tok:{len(tok)}") + keystream = bytes([p ^ t for p, t in zip(payload, tok)]) + print(len(keystream)) + adminTok = bytes([aP ^ k for aP, k in zip(adminPayload, keystream)]) + print(f"admin Token:{adminTok} len admin Payload:{len(adminPayload)} lenTok:{len(adminTok)}") + print(f"{nonce}.{base64.b64encode(adminTok).decode()}") + #for i,j in zip(tok,payload): + + # print(bytes(i^j)) + #print(keystream) +#attack("j5l1MgGWqU06x2GvgXGEnXkoFPs=") +attack() diff --git a/forge-a-cookie/chall.py b/forge-a-cookie/chall.py new file mode 100644 index 0000000..ba531d5 --- /dev/null +++ b/forge-a-cookie/chall.py @@ -0,0 +1,80 @@ +from Cryptodome.Cipher import ChaCha20 +from Cryptodome.Random import get_random_bytes +#from secret import flag +import json +import base64 + +key = get_random_bytes(32) + + +def make_cipher(): + nonce = get_random_bytes(12) + cipher = ChaCha20.new(key=key, nonce=nonce) + return nonce, cipher + + +def get_user_token(name): + nonce, cipher = make_cipher() + token = json.dumps({ + "username": name + }) + #token = json.dumps({ + # "admin": True + #}) + print(f"{token.encode()}") + + enc_token = cipher.encrypt(token.encode()) + print(f"ENC_TOKEN:{enc_token}, NONCE:{nonce}") + return f"{base64.b64encode(nonce).decode()}.{base64.b64encode(enc_token).decode()}" + + +def check_user_token(token): + nonce, token = token.split(".") + #It uses the nonce from the token + nonce = base64.b64decode(nonce) + print(f"CHECK NONCE {nonce} TOKEN {base64.b64decode(token)}") + #Uses the same KEY used at the beginning + #cipher = ChaCha20.new(key=key, nonce=nonce) + cipher = ChaCha20.new(key=key, nonce=nonce) + #Obtain from the token and the nonce the key used + #at the beginning forge new cookie enjoy + dec_token = cipher.decrypt(base64.b64decode(token)) + + user = json.loads(dec_token) + print(user.get("admin",False)) + if user.get("admin", False) == True: + return True + else: + return False + + +def get_flag(token): + #token = input("What is your token?\n> ").strip() + if check_user_token(token): + print("You are admin!") + print(f"This is your flag!\nPUPPA") + else: + print("HEY! WHAT ARE YOU DOING!?") + exit(1) + + +if __name__ == "__main__": + name = input("Hi, please tell me your name!\n> ").strip() + token = get_user_token(name) + print("This is your token: " + token) + menu = \ + "What do you want to do?\n" + \ + "quit - quit the program\n" + \ + "help - show this menu again\n" + \ + "flag - get the flag\n" + \ + "> " + while True: + cmd = input(menu).strip() + + if cmd == "quit": + break + elif cmd == "help": + continue + elif cmd == "flag": + #check_user_token(token) + get_flag(token) diff --git a/forge-another-cookie/attack.py b/forge-another-cookie/attack.py new file mode 100644 index 0000000..60d4e5d --- /dev/null +++ b/forge-another-cookie/attack.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python3 + +from pwn import * +from Cryptodome.Cipher import AES +from Cryptodome.Util.Padding import pad, unpad +from Cryptodome.Util.number import long_to_bytes, bytes_to_long +HOST = "130.192.5.212" +PORT = "6552" +server = remote(HOST,PORT) +sleepT = 0.1 +#21 bytes of cookie + username bytes to add +"""firstBlock=b'username='+b'A'*7 +print(len(firstBlock)) +#secondBlock=pad(b'true',AES.block_size) +thirdBlock=b'A'*9+b'&admin=' +print(len(firstBlock+thirdBlock))""" +payload = b'A'*7+pad(b'true',AES.block_size)+b'B'*9 +# &admin in one block and false in another one +# remove false and add true block +print(server.recv(1024)) +sleep(sleepT) +print(f"Sending:{payload,len(payload)}") +server.send(payload) +server.send(b'\n') +sleep(sleepT) +enc = server.recv(1024).strip().split(b'\n')[0] +enc = int(enc) +enc=long_to_bytes(enc) +#print(enc[0:16]) +#print(enc[16:32]) +copypaste=enc[0:16]+enc[32:48]+enc[16:32] +out=bytes_to_long(copypaste) +sleep(sleepT) +server.send(b'flag\n') +print(server.recv(1024)) +sleep(sleepT) +server.send(str(out)) +server.send(b'\n') +print(server.recv(1024)) +sleep(sleepT) diff --git a/forge-another-cookie/chall.py b/forge-another-cookie/chall.py new file mode 100644 index 0000000..65f02ae --- /dev/null +++ b/forge-another-cookie/chall.py @@ -0,0 +1,94 @@ +from Cryptodome.Cipher import AES +from Cryptodome.Util.Padding import pad, unpad +from Cryptodome.Random import get_random_bytes +from Cryptodome.Util.number import long_to_bytes, bytes_to_long +#from secret import flag + +key = get_random_bytes(32) + +flag="puppa" + +def sanitize_field(field: str): + return field \ + .replace("/", "_") \ + .replace("&", "") \ + .replace(":", "") \ + .replace(";", "") \ + .replace("<", "") \ + .replace(">", "") \ + .replace('"', "") \ + .replace("'", "") \ + .replace("(", "") \ + .replace(")", "") \ + .replace("[", "") \ + .replace("]", "") \ + .replace("{", "") \ + .replace("}", "") \ + .replace("=", "") + + +def parse_cookie(cookie: str) -> dict: + parsed = {} + for field in cookie.split("&"): + key, value = field.strip().split("=") + key = sanitize_field(key.strip()) + value = sanitize_field(value.strip()) + parsed[key] = value + + return parsed + + +def login(): + username = input("Username: ") + username = sanitize_field(username) + + cipher = AES.new(key, AES.MODE_ECB) + + cookie = f"username={username}&admin=false" + #cookie=f"username={'A'*11}&admin=false" + print(cookie.encode()) + print(len(cookie.encode())) + print(pad(cookie.encode(),AES.block_size)) + out = bytes_to_long(cipher.encrypt(pad(cookie.encode(), AES.block_size))) + print(len(long_to_bytes(out))) + print(out) + #print(len(bytes_to_long(cipher.encrypt(pad(cookie.encode(), AES.block_size))))) + +def get_flag(): + cookie = int(input("Cookie: ")) + + cipher = AES.new(key=key, mode=AES.MODE_ECB) + + try: + dec_cookie = unpad(cipher.decrypt( + long_to_bytes(cookie)), AES.block_size).decode() + print("Dec:"+dec_cookie) + token = parse_cookie(dec_cookie) + print(token) + if token["admin"] != 'true': + print("You are not an admin!") + return + + print(f"OK! Your flag: {flag}") + except: + print("Something didn't work :C") + + +if __name__ == "__main__": + login() + + menu = \ + "What do you want to do?\n" + \ + "quit - quit the program\n" + \ + "help - show this menu again\n" + \ + "flag - get the flag\n" + \ + "> " + while True: + cmd = input(menu).strip() + + if cmd == "quit": + break + elif cmd == "help": + continue + elif cmd == "flag": + get_flag() diff --git a/guess-mode-double-shot/attack.py b/guess-mode-double-shot/attack.py new file mode 100644 index 0000000..0694ee4 --- /dev/null +++ b/guess-mode-double-shot/attack.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python3 + +from pwn import * + +HOST = "130.192.5.212" +PORT = "6532" + +server = remote(HOST, PORT) +sleepT = 0.5 +# Different IV when CBC therefore different encryption? +for i in range(128): + print('-'*20) + print(server.recv(1024)) + payload = (b'A'*32).hex() + server.send(payload) + server.send('\n') + sleep(sleepT) + enc = server.recv(1024).split(b":")[1].split(b'\n')[0].strip() + print(f"Encryption1:{enc}") + enc = bytes.fromhex(enc.decode('utf-8')) + sleep(sleepT) + #payload2 = bytes([d1 ^ e1 for d1, e1 in zip(b'A'*32, enc)]) + payload2 = (b'A'*32).hex() + #print(payload2) + + #payload2= (b'B'*32).hex() + server.send(payload2) + server.send('\n') + sleep(sleepT) + enc2 = server.recv(1024).split(b":")[1].split(b'\n')[0].strip() + #print(enc) + print(f"Encryption2:{enc2}") + enc2 = bytes.fromhex(enc2.decode('utf-8')) + sleep(sleepT) + if(enc==enc2): + print("ECB") + server.send(b"ECB") + server.send("\n") + else: + print("CBC") + server.send(b"CBC") + server.send("\n") + sleep(sleepT) + #print(server.recv(1024)) + sleep(sleepT) + +print(server.recv(1024)) diff --git a/guess-mode-double-shot/chall.py b/guess-mode-double-shot/chall.py new file mode 100644 index 0000000..f3aa2e1 --- /dev/null +++ b/guess-mode-double-shot/chall.py @@ -0,0 +1,61 @@ +from Cryptodome.Cipher import AES +from Cryptodome.Random import get_random_bytes +#from secret import flag +import random +flag="puppa" +modes_mapping = { + "ECB": AES.MODE_ECB, + "CBC": AES.MODE_CBC +} + + +class RandomCipherRandomMode(): + def __init__(self): + modes = [AES.MODE_ECB, AES.MODE_CBC] + self.mode = random.choice(modes) + self.key = get_random_bytes(32) + if self.mode == AES.MODE_ECB: + self.iv = None + self.cipher = AES.new(key=self.key, mode=self.mode) + else: + self.iv = get_random_bytes(16) + self.cipher = AES.new(key=self.key, iv=self.iv, mode=self.mode) + + def encrypt(self, data): + return self.cipher.encrypt(data) + + def decrypt(self, data): + return self.cipher.decrypt(data) + + +def main(): + + for i in range(128): + cipher = RandomCipherRandomMode() + + print(f"Challenge #{i}") + + data = b"\00"*32 + + otp = get_random_bytes(len(data)) + #I dont know the OTP generated + for _ in range(2): + print(f"The otp is:{otp.hex()}") + #data = bytes.fromhex(input("Input: ").strip()) + if len(data) != 32: + print("Data must be 32 bytes long") + return + data = bytes([d ^ o for d, o in zip(data, otp)]) + print(f"Output: {cipher.encrypt(data).hex()}") + mode_test = input(f"What mode did I use? (ECB, CBC)\n") + if mode_test in modes_mapping.keys() and modes_mapping[mode_test] == cipher.mode: + print("OK, next") + else: + print("Wrong, sorry") + return + + print(f"The flag is: {flag}") + + +if __name__ == "__main__": + main() diff --git a/guess-mode-one-shot/ECBvsCBCClient.py b/guess-mode-one-shot/ECBvsCBCClient.py new file mode 100644 index 0000000..a65b247 --- /dev/null +++ b/guess-mode-one-shot/ECBvsCBCClient.py @@ -0,0 +1,46 @@ +import os +os.environ['PWNLIB_NOTERM'] = 'True' # Configuration patch to allow pwntools to be run inside of an IDE +os.environ['PWNLIB_SILENT'] = 'True' + +from pwn import * +from math import ceil +from Cryptodome.Cipher import AES + +#from myconfig import HOST,PORT + + + +BLOCK_SIZE = AES.block_size +BLOCK_SIZE_HEX = 2*BLOCK_SIZE + +HOST = "130.192.5.212" +PORT = "6531" + +server = remote(HOST, PORT) + +# stole from the server code... +# message = "This is what I received: " + msg + " -- END OF MESSAGE" +start_str = "This is what I received: " +# print(len(start_str)) +pad_len = ceil(len(start_str)/BLOCK_SIZE)*BLOCK_SIZE-len(start_str) + +msg = b"A"*(16*2+pad_len) #2 * AES.block_size + oad_len +print("Sending: "+str(msg)) +server.send(msg) + + +ciphertext = server.recv(1024) +ciphertext_hex = ciphertext.hex() +print(ciphertext_hex) + +server.close() + +for i in range(0,int(len(ciphertext_hex)//BLOCK_SIZE_HEX)): + print(ciphertext_hex[i*BLOCK_SIZE_HEX:(i+1)*BLOCK_SIZE_HEX]) + + +print("Selected mode is", end=' ') +if ciphertext[2*BLOCK_SIZE:3*BLOCK_SIZE] == ciphertext[3*BLOCK_SIZE:4*BLOCK_SIZE] : + print("ECB") +else: + print("CBC") diff --git a/guess-mode-one-shot/chall.py b/guess-mode-one-shot/chall.py new file mode 100644 index 0000000..7b04ee4 --- /dev/null +++ b/guess-mode-one-shot/chall.py @@ -0,0 +1,61 @@ +# see note info on smartphone + +from Cryptodome.Cipher import AES +from Cryptodome.Random import get_random_bytes +#from secret import flag +import random + +modes_mapping = { + "ECB": AES.MODE_ECB, + "CBC": AES.MODE_CBC +} + + +class RandomCipherRandomMode(): + def __init__(self): + modes = [AES.MODE_ECB, AES.MODE_CBC] + self.mode = random.choice(modes) + self.key = get_random_bytes(32) + if self.mode == AES.MODE_ECB: + self.iv = None + self.cipher = AES.new(key=self.key, mode=self.mode) + else: + self.iv = get_random_bytes(16) + self.cipher = AES.new(key=self.key, iv=self.iv, mode=self.mode) + + def encrypt(self, data): + return self.cipher.encrypt(data) + + def decrypt(self, data): + return self.cipher.decrypt(data) + + +def main(): + + for i in range(128): + cipher = RandomCipherRandomMode() + + print(f"Challenge #{i}") + + otp = get_random_bytes(32) + print(f"The otp I'm using: {otp.hex()}") + data = bytes.fromhex(input("Input: ").strip()) + if len(data) != 32: + print("Data must be 32 bytes long") + return + + data = bytes([d ^ o for d, o in zip(data, otp)]) + print(f"Output: {cipher.encrypt(data).hex()}") + + mode_test = input(f"What mode did I use? (ECB, CBC)\n") + if mode_test in modes_mapping.keys() and modes_mapping[mode_test] == cipher.mode: + print("OK, next") + else: + print("Wrong, sorry") + return + + print(f"The flag is: puppa") + + +if __name__ == "__main__": + main() diff --git a/guess-mode-one-shot/main.py b/guess-mode-one-shot/main.py new file mode 100644 index 0000000..d5be861 --- /dev/null +++ b/guess-mode-one-shot/main.py @@ -0,0 +1,68 @@ +import os + +os.environ['PWNLIB_NOTERM'] = 'True' +os.environ['PWNLIB_SILENT'] = 'True' + +#The python script consider two bytes sent as one (Ex aa is \xaa so one byte) the same thing on the otp received. +from pwn import * +from Cryptodome.Cipher import AES + + +# see note info on smartphone +from Cryptodome.Random import get_random_bytes +#from secret import flag +import random +############################ +BLOCK_SIZE = AES.block_size +BLOCK_SIZE_HEX = 2*BLOCK_SIZE +############################ +HOST = "130.192.5.212" +PORT = "6531" +server = remote(HOST, PORT) +############################ +for i in range(128): + print("-"*10+f"{i}"+"-"*10) + print(f"{server.recvuntil(b'\n')}") + otp = server.recvuntil(b'\n').split(b':')[1].strip() + print(f"Received OTP:{otp}") + sleep(0.1) + otp_bytes = bytes.fromhex(otp.decode('utf-8')) + print(f"OTP bytes len:{len(otp_bytes)}") + prepayload = b"A"*32 # Remember to send newline + payload = bytes([p ^ o for p, o in zip(prepayload,otp_bytes)]) + ############################ + hex_string = "" + for byte in payload: + hex_string += f'{byte:02x}' + print(f"hexstring len:{len(hex_string)}") + ############################# + server.send(hex_string) + server.send(b'\n') + # "Input:" + print(f"{server.recv(6)}") + sleep(0.1) + ciphertext = server.recvuntil(b'\n').split(b'\n')[0].split(b':')[1].strip() + sleep(0.1) + ########################### + ciphertext_hex = ciphertext.hex() + + print(f"Ciphertext obtained len:{len(ciphertext)} AES_block_size:{AES.block_size}") + + for i in range(0,int(len(ciphertext_hex)//BLOCK_SIZE_HEX)): + print(ciphertext_hex[i*BLOCK_SIZE_HEX:(i+1)*BLOCK_SIZE_HEX]) + + print("Selected mode is", end=' ') + if ciphertext[0:32] == ciphertext[32:64] : + server.send("ECB") + print("ECB") + else: + server.send("CBC") + print("CBC") + server.send(b'\n') + print(f"{server.recvuntil(b'\n')}") + sleep(0.1) + print(f"Should be 'Ok Next':{server.recvuntil(b'\n')}") + print("-"*10+"-"*10) + #print(f"{server.recv(1024)}") + #print(f"{server.recv(1024)}") +print(f"FLAG:{server.recv(1024)}") \ No newline at end of file diff --git a/long-secret-message/attack.py b/long-secret-message/attack.py new file mode 100644 index 0000000..834382d --- /dev/null +++ b/long-secret-message/attack.py @@ -0,0 +1,211 @@ +#!/usr/bin/env python3 +import numpy +from string import * +with open("./hacker-manifesto.enc") as f: + lines = f.readlines() + +for i in range(len(lines)): + lines[i] = bytes.fromhex(lines[i]) + +#shortest_line = min(lines,key=len) +#min_len = len(shortest_line) +longest_line = max(lines, key=len) +max_len = len(longest_line) +candidates_list = [] + +CHARACTER_FREQ = { + 'a': 0.0651738, 'b': 0.0124248, 'c': 0.0217339, 'd': 0.0349835, 'e': 0.1041442, 'f': 0.0197881, 'g': 0.0158610, + 'h': 0.0492888, 'i': 0.0558094, 'j': 0.0009033, 'k': 0.0050529, 'l': 0.0331490, 'm': 0.0202124, 'n': 0.0564513, + 'o': 0.0596302, 'p': 0.0137645, 'q': 0.0008606, 'r': 0.0497563, 's': 0.0515760, 't': 0.0729357, 'u': 0.0225134, + 'v': 0.0082903, 'w': 0.0171272, 'x': 0.0013692, 'y': 0.0145984, 'z': 0.0007836, ' ': 0.1918182 +} # ',' + +for byte_to_guess in range(max_len): + #print(f"Byte num:{byte_to_guess}") + counters = numpy.zeros(256,dtype=float) + for guessed_byte in range(256): + for line in lines: + #print(f"Now line: {line}") + #line = bytes.fromhex(line) + if byte_to_guess >= len(line): + continue + if chr(line[byte_to_guess] ^ guessed_byte) in printable: + counters[guessed_byte] += CHARACTER_FREQ.get(chr(line[byte_to_guess] ^ guessed_byte).lower(),0) + + max_match = max(counters) + + match_list = [(counters[i],i) for i in range(256)] + ordered_match_list=sorted(match_list, reverse=True) + + candidates = [] + #for pair in ordered_match_list: + # if pair[0] < max_match * .95: + # break + # candidates.append(pair) + + candidates_list.append(ordered_match_list) + +keystream = bytearray() +for x in candidates_list: + keystream += x[0][1].to_bytes(1,byteorder='big') + + +from Cryptodome.Util.strxor import strxor + +dec = keystream[0] ^ lines[0][0] +mask = dec ^ ord('T') +keystream[0] = keystream[0] ^ mask + +dec1 = keystream[1] ^ lines[0][1] +mask = dec1 ^ ord('h') +keystream[1] = keystream[1] ^ mask + +dec2 = keystream[2] ^ lines[0][2] +mask = dec2 ^ ord('i') +keystream[2] = keystream[2] ^ mask + +dec3 = keystream[3] ^ lines[0][3] +mask = dec3 ^ ord('s') +keystream[3] = keystream[3] ^ mask + +dec5 = keystream[5] ^ lines[0][5] +mask = dec5 ^ ord('i') +keystream[5] = keystream[5] ^ mask + +pos=28 +dec = keystream[pos] ^ lines[0][pos] +mask = dec ^ ord('o') +keystream[pos] = keystream[pos] ^ mask + +l=4 +pos=17 +dec = keystream[pos] ^ lines[4][pos] +mask = dec ^ ord('s') +keystream[pos] = keystream[pos] ^ mask + +l=4 +pos=20 +dec = keystream[pos] ^ lines[l][pos] +mask = dec ^ ord('w') +keystream[pos] = keystream[pos] ^ mask + +l=1 +pos=34 +dec = keystream[pos] ^ lines[l][pos] +mask = dec ^ ord(' ') +keystream[pos] = keystream[pos] ^ mask + +l=1 +pos=36 +dec = keystream[pos] ^ lines[l][pos] +mask = dec ^ ord(' ') +keystream[pos] = keystream[pos] ^ mask + +l=1 +pos=37 +dec = keystream[pos] ^ lines[l][pos] +mask = dec ^ ord('s') +keystream[pos] = keystream[pos] ^ mask + +l=1 +pos=38 +dec = keystream[pos] ^ lines[l][pos] +mask = dec ^ ord('e') +keystream[pos] = keystream[pos] ^ mask + +l=1 +pos=40 +dec = keystream[pos] ^ lines[l][pos] +mask = dec ^ ord('v') +keystream[pos] = keystream[pos] ^ mask + +l=2 +pos=49 +dec = keystream[pos] ^ lines[l][pos] +mask = dec ^ ord('r') +keystream[pos] = keystream[pos] ^ mask + +l=2 +pos=53 +dec = keystream[pos] ^ lines[l][pos] +mask = dec ^ ord('b') +keystream[pos] = keystream[pos] ^ mask + +l=2 +pos=42 +dec = keystream[pos] ^ lines[l][pos] +mask = dec ^ ord('w') +keystream[pos] = keystream[pos] ^ mask + +l=2 +pos=43 +dec = keystream[pos] ^ lines[l][pos] +mask = dec ^ ord('a') +keystream[pos] = keystream[pos] ^ mask + +l=2 +pos=45 +dec = keystream[pos] ^ lines[l][pos] +mask = dec ^ ord('n') +keystream[pos] = keystream[pos] ^ mask + +l=0 +pos=46 +dec = keystream[pos] ^ lines[l][pos] +mask = dec ^ ord('o') +keystream[pos] = keystream[pos] ^ mask + +l=1 +pos=57 +dec = keystream[pos] ^ lines[l][pos] +mask = dec ^ ord('t') +keystream[pos] = keystream[pos] ^ mask + +l=1 +pos=58 +dec = keystream[pos] ^ lines[l][pos] +mask = dec ^ ord('i') +keystream[pos] = keystream[pos] ^ mask + +l=1 +pos=59 +dec = keystream[pos] ^ lines[l][pos] +mask = dec ^ ord('n') +keystream[pos] = keystream[pos] ^ mask + +l=1 +pos=64 +dec = keystream[pos] ^ lines[l][pos] +mask = dec ^ ord('t') +keystream[pos] = keystream[pos] ^ mask + +l=1 +pos=65 +dec = keystream[pos] ^ lines[l][pos] +mask = dec ^ ord('h') +keystream[pos] = keystream[pos] ^ mask + +l=1 +pos=67 +dec = keystream[pos] ^ lines[l][pos] +mask = dec ^ ord('u') +keystream[pos] = keystream[pos] ^ mask + + + + + + + + + + + + + + + + +for line in lines: + l = min(len(keystream),len(line)) + print(strxor(line[:l],keystream[:l])) diff --git a/long-secret-message/chall-original.py b/long-secret-message/chall-original.py new file mode 100644 index 0000000..15c5b71 --- /dev/null +++ b/long-secret-message/chall-original.py @@ -0,0 +1,19 @@ +import os +from Cryptodome.Cipher import ChaCha20 + +key = os.urandom(32) +nonce = os.urandom(12) +print(f"Using key: {key.hex()}, nonce: {nonce.hex()}") + +with open("./hacker-manifesto.txt") as f: + lines = f.readlines() +# +#hacker-manifesto.txt encrypted in enc +enc = [] + +for line in lines: + cipher = ChaCha20.new(key=key, nonce=nonce) + enc.append(cipher.encrypt(line.encode()).hex()) + +with open("./hacker-manifesto.enc", "w") as f: + f.write("\n".join(enc)) diff --git a/long-secret-message/chall.py b/long-secret-message/chall.py new file mode 100644 index 0000000..944429b --- /dev/null +++ b/long-secret-message/chall.py @@ -0,0 +1,21 @@ +import os +from Cryptodome.Cipher import ChaCha20 + +key = os.urandom(32) +nonce = os.urandom(12) +print(f"Using key: {key.hex()}, nonce: {nonce.hex()}") + +with open("./hacker-manifesto.txt") as f: + lines = f.readlines() +# +#hacker-manifesto.txt encrypted in enc +enc = [] +#Maybe recreating the cipher generate the same keystream? +# Yes it is. + +for line in lines: + cipher = ChaCha20.new(key=key, nonce=nonce) + enc.append(cipher.encrypt(line.encode()).hex()) + +with open("./hacker-manifesto.enc", "w") as f: + f.write("\n".join(enc)) diff --git a/long-secret-message/hacker-manifesto.enc b/long-secret-message/hacker-manifesto.enc new file mode 100644 index 0000000..f0f47e4 --- /dev/null +++ b/long-secret-message/hacker-manifesto.enc @@ -0,0 +1,8 @@ +bafb25656f777862abf3da47fc6cacbd314a2b551260ffa17ac09bc4b88a42ac31620c5733294beae8087fb92801c8bc8c0b682f294ea8bb60ed3dbe02f933f68eade8aa43 +8cf62d633b672b2da2a6dc0fda1888fc2a41725b6b2bff9873cede93a28b4be87e6b4a1667324bb8fb0d79bf7c12cba0c90b6232295fb8b733ea23b911ba2cb3dab1efba3d79 +9ef2357f21792b24abf48810d7599ebd3c4a2917586ebd9032c1d2c1a3d84da0746c1a572e270ea3f9446dbb2f1d80a68c1873252958b9fe30ec25b11fee3ebfdcb0eea86979 +89ff39623b716531e8a6c909db1893f22a053f1a5022ff806185f8e18ea87a872338115967164beae81c6ab63301c2fc8244260a675ee0a72feb6ab417f637fadbaaa0c5 +8de1257b26706a2eb7a88830da188fe53656285b4b27ab9d7dd0cf93a49347a6316e051b283302eafa0d6eb23306d3f2c20b72226654a1b229ea33fb56ed32aec6b6f5bb6979 +9cf6207f28776437b7a6ca0ede4bc4b371051d15586ea69a6785d8d2bb940ebd622d09052e2c47a4ec0869f47c2ac8a78c087322655ee0bf34f127be15ba39b5c3bbf3e36979 +97fc3936387f6c27e4f1c915cc14cae430507c16493cbb9060899bcab88d0eab79680b036b614fa4e94476b33953d3bd8c1f756b6854a4fe34ec33f702f57bb7cfb2e5ef3c005b9c +8cf6207f2a686e62adf28f149f5e85ef7f4a29091c21a89b32c3d7d2b0d40eab21680940257319e7bc527fe27147c4e49c473f2a685eeded21a679b315f96aef97eee2e1 \ No newline at end of file diff --git a/long-secret-message/original.enc b/long-secret-message/original.enc new file mode 100644 index 0000000..f0f47e4 --- /dev/null +++ b/long-secret-message/original.enc @@ -0,0 +1,8 @@ +bafb25656f777862abf3da47fc6cacbd314a2b551260ffa17ac09bc4b88a42ac31620c5733294beae8087fb92801c8bc8c0b682f294ea8bb60ed3dbe02f933f68eade8aa43 +8cf62d633b672b2da2a6dc0fda1888fc2a41725b6b2bff9873cede93a28b4be87e6b4a1667324bb8fb0d79bf7c12cba0c90b6232295fb8b733ea23b911ba2cb3dab1efba3d79 +9ef2357f21792b24abf48810d7599ebd3c4a2917586ebd9032c1d2c1a3d84da0746c1a572e270ea3f9446dbb2f1d80a68c1873252958b9fe30ec25b11fee3ebfdcb0eea86979 +89ff39623b716531e8a6c909db1893f22a053f1a5022ff806185f8e18ea87a872338115967164beae81c6ab63301c2fc8244260a675ee0a72feb6ab417f637fadbaaa0c5 +8de1257b26706a2eb7a88830da188fe53656285b4b27ab9d7dd0cf93a49347a6316e051b283302eafa0d6eb23306d3f2c20b72226654a1b229ea33fb56ed32aec6b6f5bb6979 +9cf6207f28776437b7a6ca0ede4bc4b371051d15586ea69a6785d8d2bb940ebd622d09052e2c47a4ec0869f47c2ac8a78c087322655ee0bf34f127be15ba39b5c3bbf3e36979 +97fc3936387f6c27e4f1c915cc14cae430507c16493cbb9060899bcab88d0eab79680b036b614fa4e94476b33953d3bd8c1f756b6854a4fe34ec33f702f57bb7cfb2e5ef3c005b9c +8cf6207f2a686e62adf28f149f5e85ef7f4a29091c21a89b32c3d7d2b0d40eab21680940257319e7bc527fe27147c4e49c473f2a685eeded21a679b315f96aef97eee2e1 \ No newline at end of file diff --git a/openssl-asym/convert.py b/openssl-asym/convert.py new file mode 100644 index 0000000..5e5b653 --- /dev/null +++ b/openssl-asym/convert.py @@ -0,0 +1,12 @@ +payload1 = "00:9e:ee:82:dc:2c:d4:a0:0c:4f:5a:7b:86:63:b0:c1:ed:06:77:fc:eb:de:1a:23:5d:f4:c3:ff:87:6a:7d:ad:c6:07:fa:a8:35:f6:ae:05:03:57:3e:22:36:76:d5:0d:57:4f:99:f9:58:ad:63:7a:e7:45:a6:aa:fa:02:34:23:b6:9d:34:15:7b:11:41:b6:b1:ca:b9:1a:cd:29:55:bd:42:f5:04:ab:df:45:4a:9d:4e:ca:4e:01:f9:f8:74:59:67:ee:b6:a9:fb:96:b7:c0:94:00:17:8a:53:0e:b6:d8:31:c9:68:e6:64:38:d3:63:3a:04:d7:88:6b:f0:e1:ad:60:7f:41:bd:85:7b:d9:04:e1:97:5b:1f:9b:05:ce:ac:2c:c4:55:3f:b4:8b:89:4d:0a:50:9a:09:4e:5e:8f:5b:5f:55:69:72:5f:04:9b:3a:8a:09:b4:7f:8d:b2:ca:52:0e:5e:bf:f4:b0:ee:c9:ba:dc:93:4f:6d:d3:1f:82:1a:d9:fc:2c:a7:3f:18:23:0d:d7:44:c7:28:54:67:84:ee:73:92:65:f0:1c:e8:1e:6d:4d:95:65:b4:c8:4f:b8:04:62:58:2b:ee:32:64:a0:a7:dc:99:25:0e:50:53:76:bc:30:db:71:5e:93:d6:9f:1f:88:1c:76:5d:82:c8:59:39:51" +payload2 = "00:d2:c6:01:32:6b:4c:4b:85:5f:52:7b:b7:8e:d6:8a:e4:c8:76:7e:6b:c9:24:9a:3e:ca:cd:2f:c9:b8:75:d4:f9:71:11:e1:cf:be:62:d3:2c:5f:f9:fd:9b:fa:ed:62:f3:df:44:c7:57:fb:ee:9b:b2:32:cb:54:49:29:6c:69:2e:30:1d:8c:1f:fa:b1:8e:e4:49:66:c1:fb:92:7c:82:ca:60:c9:40:a4:0a:b2:db:50:ec:f6:ff:98:a7:16:23:38:8d:06:d2:7c:a9:85:8a:c2:2b:4d:d4:e6:f1:89:e5:b0:42:54:a0:5f:3c:dd:c7:64:33:05:11:fb:ee:8b:26:07" +print("Payload1:") +for i in payload1.split(":"): + print(i, end="") +print("") +print("Payload2:") +for i in payload2.split(":"): + print(i, end="") +print("") +print("Length "+ str(len(payload1.split(":")))) +print("Length "+ str(len(payload2.split(":")))) \ No newline at end of file diff --git a/openssl-asym/create_flag.py b/openssl-asym/create_flag.py new file mode 100644 index 0000000..4ff8d0a --- /dev/null +++ b/openssl-asym/create_flag.py @@ -0,0 +1,13 @@ +import sys + +for i in sys.argv: + payload = i + mlen = len(payload.split(":")) + print("------") + print("CRYPTO25{",end="") + if mlen % 64 == 0: + print("00:",end="") + print(payload,end="") + print("}") + print("Length:"+str(mlen)) + print("------") \ No newline at end of file diff --git a/openssl-asym/prime b/openssl-asym/prime new file mode 100755 index 0000000000000000000000000000000000000000..080049bab2c85fb7c71c0611da14e0f4a853b08b GIT binary patch literal 16696 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 literal 0 HcmV?d00001 diff --git a/openssl-asym/prime.c b/openssl-asym/prime.c new file mode 100644 index 0000000..4c6b57a --- /dev/null +++ b/openssl-asym/prime.c @@ -0,0 +1,85 @@ +#include +#include +#include +#define PRINT(obj) print_fmt(BN_bn2hex(obj)) +void print_fmt(char* after){ + for(int i=0; i < strlen(after); i++){ + if(i != 0 && i % 2 == 0) + printf(":"); + if(after[i] - '0' <= 9 && after[i] - '0' >= 0) + printf("%c",after[i]); + else + printf("%c", after[i]+32); + } +} +int main(){ + BIGNUM *bn1 = BN_new(); + BIGNUM *bn2 = BN_new(); + BIGNUM *res = BN_new(); + BIGNUM *rem = BN_new(); + BN_CTX *ctx = BN_CTX_new(); + char payload1[] = "009eee82dc2cd4a00c4f5a7b8663b0c1ed0677fcebde1a235df4c3ff876a7dadc607faa835f6ae0503573e223676d50d574f99f958ad637ae745a6aafa023423b69d34157b1141b6b1cab91acd2955bd42f504abdf454a9d4eca4e01f9f8745967eeb6a9fb96b7c09400178a530eb6d831c968e66438d3633a04d7886bf0e1ad607f41bd857bd904e1975b1f9b05ceac2cc4553fb48b894d0a509a094e5e8f5b5f5569725f049b3a8a09b47f8db2ca520e5ebff4b0eec9badc934f6dd31f821ad9fc2ca73f18230dd744c728546784ee739265f01ce81e6d4d9565b4c84fb80462582bee3264a0a7dc99250e505376bc30db715e93d69f1f881c765d82c8593951"; + char payload2[] = "00d2c601326b4c4b855f527bb78ed68ae4c8767e6bc9249a3ecacd2fc9b875d4f97111e1cfbe62d32c5ff9fd9bfaed62f3df44c757fbee9bb232cb5449296c692e301d8c1ffab18ee44966c1fb927c82ca60c940a40ab2db50ecf6ff98a71623388d06d27ca9858ac22b4dd4e6f189e5b04254a05f3cddc764330511fbee8b2607"; + BN_hex2bn(&bn1, payload1); + BN_hex2bn(&bn2,payload2); + //printf(" --- ADD Operation: ---\n"); + BN_add(res, bn1, bn2); + //if(BN_check_prime(bn1, NULL, NULL)) + // printf("\n NUMBER is prime \n"); + PRINT(res); + printf(" "); + //printf("\n--- SUB Operation ---\n"); + BN_sub(res, bn1, bn2); + //if(BN_check_prime(bn1, NULL, NULL)) + // printf("\n NUMBER is prime \n"); + PRINT(res); + printf(" "); + //printf("\n--- MUL Operation --- \n"); + BN_mul(res,bn1,bn2,ctx); + //if(BN_check_prime(bn1, NULL, NULL)) + // printf("\n NUMBER is prime \n"); + PRINT(res); + printf(" "); + //Skip BN_sqr + BN_div(res,rem,bn1,bn2,ctx); + PRINT(res); + printf(" "); + //if(BN_check_prime(bn1, NULL, NULL)) + // printf("\n DIV is prime \n"); + //else + // printf("DIV is not prime \n"); + //printf("\nReminder:\n"); + PRINT(rem); + printf(" "); + //printf("\n --- MOD Operation --- \n"); + BN_mod(rem, bn1, bn2,ctx); + //if(BN_check_prime(bn1, NULL, NULL)) + // printf("\n NUMBER is prime \n"); + PRINT(rem); + printf(" "); + //printf("\n --- NNMOD Operation --- \n"); + BN_nnmod(rem, bn1, bn2, ctx); + //if(BN_check_prime(bn1, NULL, NULL)) + // printf("\n NUMBER is prime \n"); + + PRINT(rem); + printf(" "); + //printf("\n --- GCD Operation --- \n"); + BN_gcd(res, bn1, bn2, ctx); + //if(BN_check_prime(bn1, NULL, NULL)) + // printf("\n NUMBER is prime \n"); + PRINT(res); + printf("\n"); + //if(BN_check_prime(bn1,NULL,NULL)){ + // printf("BN1 is prime\n"); + //} + //if(BN_check_prime(bn2,NULL,NULL)){ + // printf("BN2 is prime\n"); + //} + BN_free(bn1); + BN_free(bn2); + BN_free(res); + BN_free(rem); + BN_CTX_free(ctx); + return 0; +} \ No newline at end of file diff --git a/openssl-asym/python b/openssl-asym/python new file mode 100644 index 0000000..1532560 --- /dev/null +++ b/openssl-asym/python @@ -0,0 +1 @@ +9e:ee:82:dc:2c:d4:a0:0c:4f:5a:7b:86:63:b0:c1:ed:06:77:fc:eb:de:1a:23:5d:f4:c3:ff:87:6a:7d:ad:c6:07:fa:a8:35:f6:ae:05:03:57:3e:22:36:76:d5:0d:57:4f:99:f9:58:ad:63:7a:e7:45:a6:aa:fa:02:34:23:b6:9d:34:15:7b:11:41:b6:b1:ca:b9:1a:cd:29:55:bd:42:f5:04:ab:df:45:4a:9d:4e:ca:4e:01:f9:f8:74:59:67:ee:b6:a9:fb:96:b7:c0:94:00:17:8a:53:0e:b6:d8:31:c9:68:e6:64:38:d3:63:3a:04:d7:88:6b:f0:e1:ad:61:52:07:be:b7:e7:25:50:66:f6:ad:9b:52:94:a5:37:11:8c:cb:be:20:54:ad:e7:49:1b:67:39:18:17:05:30:58:c6:7b:54:2e:c2:fe:0d:b6:69:ae:7d:29:ad:b7:b5:02:3e:04:bc:08:ea:b8:56:8e:c6:1a:c2:1c:48:ee:84:08:2c:4a:33:5f:12:d4:9c:bb:8e:2d:ea:4f:fa:01:71:3d:f3:2f:30:c0:f2:d1:48:9e:82:5c:b4:60:f6:ce:27:9a:e5:32:c0:af:0e:26:32:9e:c4:72:e3:37:45:00:a1:e1:1d:c5:fe:f3:13:7c:e6:ec:4f:7b:6f:7e:b6:e4:5f:58 9e:ee:82:dc:2c:d4:a0:0c:4f:5a:7b:86:63:b0:c1:ed:06:77:fc:eb:de:1a:23:5d:f4:c3:ff:87:6a:7d:ad:c6:07:fa:a8:35:f6:ae:05:03:57:3e:22:36:76:d5:0d:57:4f:99:f9:58:ad:63:7a:e7:45:a6:aa:fa:02:34:23:b6:9d:34:15:7b:11:41:b6:b1:ca:b9:1a:cd:29:55:bd:42:f5:04:ab:df:45:4a:9d:4e:ca:4e:01:f9:f8:74:59:67:ee:b6:a9:fb:96:b7:c0:94:00:17:8a:53:0e:b6:d8:31:c9:68:e6:64:38:d3:63:3a:04:d7:88:6b:f0:e1:ad:5f:ac:7b:bc:53:10:8c:b9:5c:38:08:a3:e3:76:f8:21:47:fb:de:c1:48:c2:64:b2:cb:85:cc:d9:84:a6:19:86:65:e4:57:90:8f:46:38:67:5d:a9:ba:81:f1:b7:dc:ef:1a:7f:7b:2d:58:f2:db:1f:2a:60:84:19:89:f6:15:b1:ab:cc:0f:1b:1f:1d:71:7e:f2:fb:60:66:58:d5:08:6b:a9:31:9c:af:78:dd:6b:91:fc:a8:6e:b5:2f:a8:a1:e1:29:cb:25:1b:b5:bb:1b:1d:1a:6d:d7:39:69:61:ec:d6:80:99:1c:be:34:99:c1:58:23:e9:71:4b:86:d9:ce:13:4a 82:da:94:90:0e:c6:91:4f:06:4d:4b:55:0d:42:f9:30:54:4b:20:56:7e:44:bd:29:20:83:df:71:b1:37:69:b6:b8:be:5f:ec:b9:b4:eb:55:85:d1:7f:39:00:38:11:9e:22:f2:6d:ad:cc:0e:e5:27:60:01:ab:7e:a0:3e:55:7a:4b:e7:71:bc:ed:69:7f:44:07:20:94:27:49:a9:04:20:82:65:e9:e3:84:0a:e2:86:70:18:23:87:1a:f6:2e:cf:3c:67:c1:59:09:4b:ca:1e:c2:4f:6f:b6:ef:bd:a1:4b:fe:00:02:87:ab:29:05:2d:0a:f1:43:0c:f1:c4:2a:ed:83:af:9b:b1:10:bc:c4:78:bc:57:43:5b:3d:ed:61:8c:de:e3:14:15:f3:09:7a:d9:27:e2:b0:22:9c:4c:57:b2:59:59:71:c2:5f:79:92:ca:29:9c:06:d9:80:2d:89:45:b0:e5:42:fa:85:fb:0b:75:4f:9b:de:b9:22:5a:72:d2:48:c0:6d:d6:11:d2:18:ee:6f:78:0e:87:04:14:8c:eb:84:52:47:5c:69:f2:e7:4e:83:2f:b0:22:0d:54:25:b1:67:fd:0b:5f:da:2a:79:19:50:e5:03:56:08:d9:5d:25:24:a7:4f:41:4a:fc:5d:f0:f5:d8:df:65:fa:db:52:e7:74:1d:4b:82:c5:6d:29:d2:5a:ff:7f:e8:58:72:42:ca:02:b5:e8:db:bc:b4:3b:4e:d3:d9:12:94:d7:b1:50:2b:be:05:8e:32:ce:13:15:d9:4b:af:a9:c0:5e:5b:28:38:76:31:41:d2:0e:c5:1e:85:61:f6:b0:6c:10:43:18:d4:e1:21:05:1b:da:3a:9d:36:d3:06:6a:3f:fb:7c:da:4e:f5:4f:82:d0:6d:85:59:f9:e2:20:f4:60:bd:5f:e7:dc:82:b3:16:89:bd:d9:cc:05:4a:08:c7:be:91:89:dd:de:a9:ad:0b:3d:e1:75:f9:7c:53:42:47:77:25:ed:97:37 c1:08:c9:57:09:e0:73:72:7d:b4:5e:4b:4b:20:bf:3c:57:41:bf:5c:bc:14:4d:a6:6a:bd:4d:86:69:06:9f:73:9d:40:2c:60:0f:29:7b:0b:4c:c7:7b:f6:5e:e5:a6:10:02:71:3e:74:a5:ac:b9:7f:f3:c5:78:42:ca:fe:50:6f:5b:1b:df:c7:ee:36:20:bb:56:73:ab:11:fa:e2:bf:a8:69:7d:e6:f4:5c:27:c1:21:69:3c:0e:1d:2d:dd:70:25:11:57:9f:8a:5a:60:58:09:90:5c:54:e0:55:2a:55:1c:e1:36:9d:14:70:ab:b4:e2:ce:c4:92:6b:fa:14:8f:e7 0 0 0 d2:c6:01:32:6b:4c:4b:85:5f:52:7b:b7:8e:d6:8a:e4:c8:76:7e:6b:c9:24:9a:3e:ca:cd:2f:c9:b8:75:d4:f9:71:11:e1:cf:be:62:d3:2c:5f:f9:fd:9b:fa:ed:62:f3:df:44:c7:57:fb:ee:9b:b2:32:cb:54:49:29:6c:69:2e:30:1d:8c:1f:fa:b1:8e:e4:49:66:c1:fb:92:7c:82:ca:60:c9:40:a4:0a:b2:db:50:ec:f6:ff:98:a7:16:23:38:8d:06:d2:7c:a9:85:8a:c2:2b:4d:d4:e6:f1:89:e5:b0:42:54:a0:5f:3c:dd:c7:64:33:05:11:fb:ee:8b:26:07 diff --git a/openssl-dgst/HMAC_computation_EVP.c b/openssl-dgst/HMAC_computation_EVP.c new file mode 100644 index 0000000..fb25e0a --- /dev/null +++ b/openssl-dgst/HMAC_computation_EVP.c @@ -0,0 +1,79 @@ +#include +#include +#include +#include +#include + +#define MAXBUF 1024 + +void handle_errors(){ + ERR_print_errors_fp(stderr); + abort(); +} + + +int main(int argc, char **argv){ + + + unsigned char key[] = "deadbeefdeadbeef"; + unsigned char secret[] = "this_is_my_secret"; + if(argc != 2){ + fprintf(stderr,"Invalid parameters. Usage: %s filename\n",argv[0]); + exit(1); + } + + + FILE *f_in; + if((f_in = fopen(argv[1],"r")) == NULL) { + fprintf(stderr,"Couldn't open the input file, try again\n"); + exit(1); + } + + + + //EVP_MD_CTX *EVP_MD_CTX_new(void); + //pedantic mode? Check if md == NULL + EVP_MD_CTX *hmac_ctx = EVP_MD_CTX_new(); + + //int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type); + // int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl); + // Returns 1 for success and 0 for failure. + EVP_PKEY *hkey; + hkey = EVP_PKEY_new_mac_key(EVP_PKEY_HMAC, NULL, key, 16); + + if(!EVP_DigestSignInit(hmac_ctx, NULL, EVP_sha512(), NULL, hkey)) + handle_errors(); + + size_t n; + unsigned char buffer[MAXBUF]; + if(!EVP_DigestSignUpdate(hmac_ctx, secret, strlen(secret))) + handle_errors(); + while((n = fread(buffer,1,MAXBUF,f_in)) > 0){ + // Returns 1 for success and 0 for failure. + if(!EVP_DigestSignUpdate(hmac_ctx, buffer, n)) + handle_errors(); + } + if(!EVP_DigestSignUpdate(hmac_ctx, secret, strlen(secret))) + handle_errors(); + + unsigned char hmac_value[EVP_MD_size(EVP_sha512())]; + size_t hmac_len = EVP_MD_size(EVP_sha512 + ()); + + //int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, unsigned size_t *s); + // EVP_DigestSignFinal(hmac_ctx, NULL, &hmac_len); + if(!EVP_DigestSignFinal(hmac_ctx, hmac_value, &hmac_len)) + handle_errors(); + + // void EVP_MD_CTX_free(EVP_MD_CTX *ctx); + EVP_MD_CTX_free(hmac_ctx); + + printf("CRYPTO25{"); + for(int i = 0; i < hmac_len; i++) + printf("%02x", hmac_value[i]); + printf("}"); + + + return 0; + +} \ No newline at end of file diff --git a/openssl-dgst/file.txt b/openssl-dgst/file.txt new file mode 100644 index 0000000..b350ab7 --- /dev/null +++ b/openssl-dgst/file.txt @@ -0,0 +1,3 @@ +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. +Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. \ No newline at end of file diff --git a/openssl-dgst/hash3 b/openssl-dgst/hash3 new file mode 100755 index 0000000000000000000000000000000000000000..1e28fd678aea2fbc5f7ed190ea20a378257dc00f GIT binary patch literal 16712 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 +#include +#include +#include + +#define MAXBUF 1024 + +int main(int argc, char **argv){ + + + if(argc != 2){ + fprintf(stderr,"Invalid parameters. Usage: %s filename\n",argv[0]); + exit(1); + } + + + FILE *f_in; + if((f_in = fopen(argv[1],"r")) == NULL) { + fprintf(stderr,"Couldn't open the input file, try again\n"); + exit(1); + } + + + //EVP_MD_CTX *EVP_MD_CTX_new(void); + EVP_MD_CTX *md = EVP_MD_CTX_new(); + + //int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type); + // int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl); + EVP_DigestInit(md, EVP_sha256()); + + int n; + unsigned char buffer[MAXBUF]; + while((n = fread(buffer,1,MAXBUF,f_in)) > 0){ + EVP_DigestUpdate(md, buffer, n); + } + + unsigned char md_value[EVP_MD_size(EVP_sha256())]; + int md_len; + + //int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s); + EVP_DigestFinal_ex(md, md_value, &md_len); + + // void EVP_MD_CTX_free(EVP_MD_CTX *ctx); + EVP_MD_CTX_free(md); + + printf("The digest is: "); + for(int i = 0; i < md_len; i++) + printf("%02x", md_value[i]); + printf("\n"); + + return 0; + +} diff --git a/openssl-dgst/hex b/openssl-dgst/hex new file mode 100755 index 0000000000000000000000000000000000000000..d7368f7eedccc63683df419282a6c507ee4c7c27 GIT binary patch literal 16768 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 literal 0 HcmV?d00001 diff --git a/openssl-dgst/keyedigest.c b/openssl-dgst/keyedigest.c new file mode 100644 index 0000000..73518f2 --- /dev/null +++ b/openssl-dgst/keyedigest.c @@ -0,0 +1,55 @@ +#include +#include +#include +#include + +#define MAXBUF 1024 + +int main(int argc, char **argv){ + + + unsigned char secret[] = "this_is_my_secret"; + if(argc != 2){ + fprintf(stderr,"Invalid parameters. Usage: %s filename\n",argv[0]); + exit(1); + } + + + FILE *f_in; + if((f_in = fopen(argv[1],"r")) == NULL) { + fprintf(stderr,"Couldn't open the input file, try again\n"); + exit(1); + } + + + //EVP_MD_CTX *EVP_MD_CTX_new(void); + EVP_MD_CTX *md = EVP_MD_CTX_new(); + + //int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type); + // int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl); + EVP_DigestInit(md, EVP_sha512()); + + int n; + unsigned char buffer[MAXBUF]; + EVP_DigestUpdate(md, secret, strlen(secret)); + while((n = fread(buffer,1,MAXBUF,f_in)) > 0){ + EVP_DigestUpdate(md, buffer, n); + } + EVP_DigestUpdate(md, secret, strlen(secret)); + unsigned char md_value[EVP_MD_size(EVP_sha512())]; + int md_len; + + //int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s); + EVP_DigestFinal_ex(md, md_value, &md_len); + + // void EVP_MD_CTX_free(EVP_MD_CTX *ctx); + EVP_MD_CTX_free(md); + + printf("The digest is: "); + for(int i = 0; i < md_len; i++) + printf("%02x", md_value[i]); + printf("\n"); + + return 0; + +} \ No newline at end of file diff --git a/openssl-enc/COLORFGBG=15;0 b/openssl-enc/COLORFGBG=15;0 new file mode 100644 index 0000000..71db247 --- /dev/null +++ b/openssl-enc/COLORFGBG=15;0 @@ -0,0 +1,2 @@ + ÒçôÿûZÔ +®á5Xìº1¿sºàb7bÆ\kËHP&³p‘ãÜ«8 \ No newline at end of file diff --git a/openssl-enc/aes128.txt b/openssl-enc/aes128.txt new file mode 100644 index 0000000..e69de29 diff --git a/openssl-enc/code.c b/openssl-enc/code.c new file mode 100644 index 0000000..73a49f0 --- /dev/null +++ b/openssl-enc/code.c @@ -0,0 +1,118 @@ +#include +#include + +#include +#include + + +#define ENCRYPT 1 +#define DECRYPT 0 +#define MAX_BUFFER 1024 + +void handle_errors(){ + ERR_print_errors_fp(stderr); + abort(); +} + +int main(int argc, char **argv) +{ + +// int EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, const unsigned char *key, const unsigned char *iv, int enc); +// int EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, const unsigned char *in, int inl); +// int EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); + + + + + if(argc != 5){ + fprintf(stderr,"Invalid parameters. Usage: %s file_in key iv file_out\n",argv[0]); + exit(1); + } + + FILE *f_in; + if((f_in = fopen(argv[1],"r")) == NULL) { + fprintf(stderr,"Couldn't open the input file, try again\n"); + abort(); + } + + if(strlen(argv[2])!=64){ + fprintf(stderr,"Wrong key length\n"); + abort(); + } + if(strlen(argv[3])!=32){ + fprintf(stderr,"Wrong IV length\n"); + abort(); + } + + FILE *f_out; + if((f_out = fopen(argv[4],"wb")) == NULL) { + fprintf(stderr,"Couldn't open the output file, try again\n"); + abort(); + } + + unsigned char key[strlen(argv[2])/2]; + for(int i = 0; i < strlen(argv[2])/2;i++){ + sscanf(&argv[2][2*i],"%2hhx", &key[i]); + } + + unsigned char iv[strlen(argv[3])/2]; + for(int i = 0; i < strlen(argv[3])/2;i++){ + sscanf(&argv[3][2*i],"%2hhx", &iv[i]); + } + + /* Load the human readable error strings for libcrypto */ + ERR_load_crypto_strings(); + /* Load all digest and cipher algorithms */ + OpenSSL_add_all_algorithms(); + + + + // pedantic mode: check NULL + EVP_CIPHER_CTX *ctx = EVP_CIPHER_CTX_new(); + + if(!EVP_CipherInit(ctx,EVP_chacha20(), key, iv, DECRYPT)) + handle_errors(); + + int length; + unsigned char ciphertext[MAX_BUFFER+16]; + + int n_read; + unsigned char buffer[MAX_BUFFER]; + + while((n_read = fread(buffer,1,MAX_BUFFER,f_in)) > 0){ + printf("n_Read=%d-",n_read); + if(!EVP_CipherUpdate(ctx,ciphertext,&length,buffer,n_read)) + handle_errors(); + printf("length=%d\n",length); + if(fwrite(ciphertext, 1, length,f_out) < length){ + fprintf(stderr,"Error writing the output file\n"); + abort(); + } + } + + if(!EVP_CipherFinal_ex(ctx,ciphertext,&length)) + handle_errors(); + + printf("lenght=%d\n",length); + + if(fwrite(ciphertext,1, length, f_out) < length){ + fprintf(stderr,"Error writing in the output file\n"); + abort(); + } + + EVP_CIPHER_CTX_free(ctx); + + fclose(f_in); + fclose(f_out); + + printf("File encrypted!\n"); + + + // completely free all the cipher data + CRYPTO_cleanup_all_ex_data(); + /* Remove error strings */ + ERR_free_strings(); + + return 0; +} + diff --git a/openssl-enc/enc b/openssl-enc/enc new file mode 100755 index 0000000000000000000000000000000000000000..e00342206181da9f0737d25b584c8fa149a28935 GIT binary patch literal 16512 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 literal 0 HcmV?d00001 diff --git a/openssl-enc/enc.exe b/openssl-enc/enc.exe new file mode 100755 index 0000000000000000000000000000000000000000..41b2e90cde27db5806fb7edda1f00bebb81e3275 GIT binary patch literal 17040 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%0DbD9EDx~D$jS9rFdb3%r zM&~;!8~??r73w!1Jn_ZrJNu%pj6Ra`FHXCtqaPIkln=Y`;T4}N5zg)#c4EDtPDar| zt|e2B9Ue%Igwq+kg~>SkMA(ITM-n(smWYcmPRrPtw2*>>vFxA-$M+>+R8c3RTK3=# zP$HGAU@Wv{?4cMb=vsQnA&a=&VN}BdDO4PL6rXgLLntNhq_91x@9V)hj4-F;Yu(zh zmL?o&NX-mNpX=}!8&32gn3O|)5GviDVO&WO#)LDBd8Eo5`=3Cx-l4DVn9gP4bBRn1 zjWgl(1M}FXSfQWBd`pEXy|3{W{$9dZD=K(oyZ(dD#j-rfdJBEOd>v~Jj(<}7XSzxY z^SaC*|4y{i8jSUMoyL@&(^P03N4{B~*K6+wMlM;O*L_TRod*$F{PFhzr8O1n^E!&@ zCauTuvmDbj+G&l(Jg?K3?$-JgKgn?X8WtZ$g{}$fr?mi6UMI4D*604`wEk9Ykk_3| zd7Vo7q~q8B3^2+Guan*HRr>oCuV*15i+}ul0;pHt(0WWGzJ&AFHl|F?I-8m1ht z@?MUg@kf37e2$#yrEbTR1@_DK4*T@^doEL2w|R@d|7tx`zJ9{c(wc7d^`GNro8Lu+ zMELsiI)^EbKbH6VKjG6Ky+TPc{TVB2>i7Q)aPR!%KVNP5^!@&Sh4u#g>D%62AM!b7 zzdz=g7NFbc(dYH(6gDYSVL8Q>dB*>Y2D-%TpVxzYo}JIF^DtmN9tU(DnDWp1e9kX_ zH9(YAinyPw&-5*{c=dVRS +#include + +#include + + +#define ENCRYPT 1 +#define DECRYPT 0 + +int main() +{ + + + unsigned char key[] = "0123456789ABCDEF"; + unsigned char iv[] = "1111111111111111"; + + EVP_CIPHER_CTX *ctx = EVP_CIPHER_CTX_new(); + EVP_CipherInit(ctx,EVP_aes_128_cbc(), key, iv, ENCRYPT); + //This disable the padding + EVP_CIPHER_CTX_set_padding(ctx, 0); + + unsigned char plaintext[] = "This is the plaintext to encrypt."; //len 33 + unsigned char ciphertext[48]; + + int update_len, final_len; + int ciphertext_len=0; + + EVP_CipherUpdate(ctx,ciphertext,&update_len,plaintext,strlen(plaintext)); + ciphertext_len+=update_len; + printf("update size: %d\n",ciphertext_len); + + EVP_CipherFinal_ex(ctx,ciphertext+ciphertext_len,&final_len); + ciphertext_len+=final_len; + + EVP_CIPHER_CTX_free(ctx); + + printf("Ciphertext lenght = %d\n", ciphertext_len); + for(int i = 0; i < ciphertext_len; i++) + printf("%02x", ciphertext[i]); + printf("\n"); + + return 0; +} + diff --git a/openssl-enc/file.enc b/openssl-enc/file.enc new file mode 100644 index 0000000..e3b93ce --- /dev/null +++ b/openssl-enc/file.enc @@ -0,0 +1 @@ +$·4€jz|‚ZÈÚ9»ìýÜÙmi2+`Ù \ No newline at end of file diff --git a/openssl-enc/file.txt b/openssl-enc/file.txt new file mode 100644 index 0000000..e7b7fa4 --- /dev/null +++ b/openssl-enc/file.txt @@ -0,0 +1 @@ +CRYPTO25{MyDecryptedString} diff --git a/openssl-enc/guess.exe b/openssl-enc/guess.exe new file mode 100755 index 0000000000000000000000000000000000000000..16d0e396c83a97483cd1f46f01f11130cc7c2ab6 GIT binary patch literal 16968 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 literal 0 HcmV?d00001 diff --git a/openssl-enc/guess.py b/openssl-enc/guess.py new file mode 100644 index 0000000..5b0d96b --- /dev/null +++ b/openssl-enc/guess.py @@ -0,0 +1,50 @@ +import os +cipher_names = [ + "AES-128-CBC", + "AES-192-CBC", + "AES-256-CBC", + "AES-128-CTR", + "AES-192-CTR", + "AES-256-CTR", + "AES-128-GCM", + "AES-192-GCM", + "AES-256-GCM", + "DES-CBC", + "DES-EDE3-CBC", + "ChaCha20-Poly1305", + "Camellia-128-CBC", + "Camellia-192-CBC", + "Camellia-256-CBC", + "Camellia-128-CTR", + "Camellia-192-CTR", + "Camellia-256-CTR", + "BF-CBC", # Blowfish + "BF-CFB", # Blowfish + "BF-OFB", # Blowfish + "BF-ECB", # Blowfish + "CAST5-CBC", # CAST5 + "CAST5-CFB", # CAST5 + "CAST5-OFB", # CAST5 + "CAST5-ECB", # CAST5 + "IDEA-CBC", # IDEA + "IDEA-CFB", # IDEA + "IDEA-OFB", # IDEA + "IDEA-ECB", # IDEA + "RC2-CBC", # RC2 + "RC2-CFB", # RC2 + "RC2-OFB", # RC2 + "RC2-ECB", # RC2 + "RC4", # RC4 (stream cipher) + "ARIA-128-CBC", #ARIA + "ARIA-192-CBC", #ARIA + "ARIA-256-CBC", #ARIA + "ARIA-128-CTR", #ARIA + "ARIA-192-CTR", #ARIA + "ARIA-256-CTR", #ARIA + "ARIA-128-GCM", #ARIA + "ARIA-192-GCM", #ARIA + "ARIA-256-GCM", #ARIA +] + +for i in cipher_names: + os.system("./guess.exe guessalgo.enc "+i) diff --git a/openssl-enc/guessalgo.c b/openssl-enc/guessalgo.c new file mode 100644 index 0000000..9500441 --- /dev/null +++ b/openssl-enc/guessalgo.c @@ -0,0 +1,121 @@ +#include +#include + +#include +#include + + +#define ENCRYPT 1 +#define DECRYPT 0 +#define MAX_BUFFER 1024 + +void handle_errors(){ + ERR_print_errors_fp(stderr); + abort(); +} + +int main(int argc, char **argv) +{ + +// int EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, const unsigned char *key, const unsigned char *iv, int enc); +// int EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, const unsigned char *in, int inl); +// int EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); + + + + + if(argc != 3){ + fprintf(stderr,"Invalid parameters. Usage: %s file_in ALGO-TO-USE\n",argv[0]); + exit(1); + } + + + FILE *f_in; + if((f_in = fopen(argv[1],"r")) == NULL) { + fprintf(stderr,"Couldn't open the input file, try again\n"); + abort(); + } + /* + if(strlen(argv[2])!=32){ + fprintf(stderr,"Wrong key length\n"); + abort(); + } + if(strlen(argv[3])!=32){ + fprintf(stderr,"Wrong IV length\n"); + abort(); + } + */ + /*FILE *f_out; + if((f_out = fopen(argv[2],"wb")) == NULL) { + fprintf(stderr,"Couldn't open the output file, try again\n"); + abort(); + }*/ + unsigned char key[] = "0123456789ABCDEF"; + unsigned char iv[] = "0123456789ABCDEF"; + /*unsigned char key[strlen(argv[2])/2]; + for(int i = 0; i < strlen(argv[2])/2;i++){ + sscanf(&argv[2][2*i],"%2hhx", &key[i]); + } + + unsigned char iv[strlen(argv[3])/2]; + for(int i = 0; i < strlen(argv[3])/2;i++){ + sscanf(&argv[3][2*i],"%2hhx", &iv[i]); + } + */ + /* Load the human readable error strings for libcrypto */ + ERR_load_crypto_strings(); + /* Load all digest and cipher algorithms */ + OpenSSL_add_all_algorithms(); // deprecated since version 1.1.1 + + + + // pedantic mode: check NULL + EVP_CIPHER_CTX *ctx = EVP_CIPHER_CTX_new(); + + if(!EVP_CipherInit(ctx,EVP_get_cipherbyname(argv[2]), key, iv, DECRYPT)) + handle_errors(); + EVP_CIPHER_CTX_set_padding(ctx,0); + int length; + unsigned char ciphertext[MAX_BUFFER+16]; + + int n_read; + unsigned char buffer[MAX_BUFFER]; + + while((n_read = fread(buffer,1,MAX_BUFFER,f_in)) > 0){ + //printf("n_Read=%d-",n_read); + if(!EVP_CipherUpdate(ctx,ciphertext,&length,buffer,n_read)) + handle_errors(); + //printf("length=%d\n",length); + + /*if(fwrite(ciphertext, 1, length,f_out) < length){ + fprintf(stderr,"Error writing the output file\n"); + abort(); + }*/ + } + + if(!EVP_CipherFinal_ex(ctx,ciphertext,&length)) + handle_errors(); + + //printf("lenght=%d\n",length); + printf("ALGORITHM:%s, Output: %s\n", argv[2], ciphertext); + /*if(fwrite(ciphertext,1, length, f_out) < length){ + fprintf(stderr,"Error writing in the output file\n"); + abort(); + } + */ + EVP_CIPHER_CTX_free(ctx); + + fclose(f_in); +// fclose(f_out); + + //printf("File decrypted!\n"); + + + // completely free all the cipher data + CRYPTO_cleanup_all_ex_data(); + /* Remove error strings */ + ERR_free_strings(); + + return 0; +} + diff --git a/openssl-enc/guessalgo.enc b/openssl-enc/guessalgo.enc new file mode 100644 index 0000000..7a382ce --- /dev/null +++ b/openssl-enc/guessalgo.enc @@ -0,0 +1 @@ +e’~¢Mv•ÀÚ6—ñ˜9"Ôh•­|†/y0oÿQ>ø \ No newline at end of file diff --git a/openssl-enc/output.txt b/openssl-enc/output.txt new file mode 100644 index 0000000..e69de29 diff --git a/openssl-hmac/HMAC_computation_EVP.c b/openssl-hmac/HMAC_computation_EVP.c new file mode 100644 index 0000000..3540d15 --- /dev/null +++ b/openssl-hmac/HMAC_computation_EVP.c @@ -0,0 +1,81 @@ +#include +#include +#include +#include +#include + +#define MAXBUF 1024 + +void handle_errors(){ + ERR_print_errors_fp(stderr); + abort(); +} + + +int main(int argc, char **argv){ + + + unsigned char key[] = "keykeykeykeykeykey"; + if(argc != 3){ + fprintf(stderr,"Invalid parameters. Usage: %s filename\n",argv[0]); + exit(1); + } + + + FILE *f_in,*f_in2; + if((f_in = fopen(argv[1],"r")) == NULL) { + fprintf(stderr,"Couldn't open the input file, try again\n"); + exit(1); + } + if((f_in2 = fopen(argv[2],"r")) == NULL) { + fprintf(stderr,"Couldn't open the second input file, try again\n"); + exit(1); + } + + + //EVP_MD_CTX *EVP_MD_CTX_new(void); + //pedantic mode? Check if md == NULL + EVP_MD_CTX *hmac_ctx = EVP_MD_CTX_new(); + + //int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type); + // int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl); + // Returns 1 for success and 0 for failure. + EVP_PKEY *hkey; + hkey = EVP_PKEY_new_mac_key(EVP_PKEY_HMAC, NULL, key, 18); + + if(!EVP_DigestSignInit(hmac_ctx, NULL, EVP_sha256(), NULL, hkey)) + handle_errors(); + + size_t n; + unsigned char buffer[MAXBUF]; + while((n = fread(buffer,1,MAXBUF,f_in)) > 0){ + // Returns 1 for success and 0 for failure. + if(!EVP_DigestSignUpdate(hmac_ctx, buffer, n)) + handle_errors(); + } + unsigned char buf2[MAXBUF]; + while((n = fread(buf2,1,MAXBUF,f_in2)) > 0){ + if(!EVP_DigestSignUpdate(hmac_ctx, buf2, n)) + handle_errors(); + } + + unsigned char hmac_value[EVP_MD_size(EVP_sha256())]; + size_t hmac_len = EVP_MD_size(EVP_sha256()); + + //int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, unsigned size_t *s); + // EVP_DigestSignFinal(hmac_ctx, NULL, &hmac_len); + if(!EVP_DigestSignFinal(hmac_ctx, hmac_value, &hmac_len)) + handle_errors(); + + // void EVP_MD_CTX_free(EVP_MD_CTX *ctx); + EVP_MD_CTX_free(hmac_ctx); + + printf("The HMAC is: "); + for(int i = 0; i < hmac_len; i++) + printf("%02x", hmac_value[i]); + printf("\n"); + + + return 0; + +} \ No newline at end of file diff --git a/openssl-hmac/file.txt b/openssl-hmac/file.txt new file mode 100644 index 0000000..b350ab7 --- /dev/null +++ b/openssl-hmac/file.txt @@ -0,0 +1,3 @@ +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. +Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. \ No newline at end of file diff --git a/openssl-hmac/file2.txt b/openssl-hmac/file2.txt new file mode 100644 index 0000000..6be9cca --- /dev/null +++ b/openssl-hmac/file2.txt @@ -0,0 +1,7 @@ +In placerat sagittis efficitur. Vestibulum id erat pharetra, ultricies elit vitae, maximus nisi. Mauris placerat ipsum ac arcu fringilla, et placerat erat blandit. Ut eget ligula id tortor vehicula lacinia a eu dui. Praesent vestibulum, nibh a euismod fringilla, elit eros tempor ex, vitae luctus urna dui pellentesque mauris. Ut viverra quam in eleifend pretium. Interdum et malesuada fames ac ante ipsum primis in faucibus. + +Sed bibendum a velit et dignissim. Phasellus euismod fringilla augue, ut iaculis nibh vestibulum et. Maecenas molestie enim ac ligula dignissim placerat. Sed bibendum, odio ac gravida mattis, tellus eros posuere risus, vitae sagittis metus diam sed orci. Suspendisse pulvinar tortor nec metus iaculis congue. Aenean egestas leo ac dignissim vulputate. Etiam tempus justo tellus, nec elementum magna pulvinar at. Praesent justo eros, ultricies nec gravida vitae, cursus a ipsum. Integer semper quam nunc. Mauris pulvinar ultricies varius. Proin velit enim, dapibus vitae lorem id, facilisis sodales ligula. Aenean fermentum ante a semper mattis. Fusce finibus ullamcorper nisi, ac commodo tortor. Donec urna augue, gravida in erat a, vehicula pulvinar lacus. + +Sed non erat at nisl facilisis consectetur. Cras fringilla diam et neque varius sollicitudin. Proin lacinia dui vel quam venenatis, id mollis ante ullamcorper. Vivamus nisl mi, convallis a dolor et, pellentesque congue est. Nulla dictum et massa ut egestas. Nunc porta commodo arcu eu egestas. Nullam ut mollis diam. Mauris vulputate, magna ultricies ullamcorper venenatis, purus elit consectetur ipsum, ac dictum magna ante a ex. Ut posuere fermentum sapien. Mauris accumsan mattis ex quis dictum. + +Maecenas at augue eu sem egestas rhoncus vitae at nisi. Proin faucibus tincidunt ipsum at molestie. Praesent et condimentum tortor, id eleifend elit. Fusce interdum congue magna eget dapibus. Pellentesque a odio laoreet arcu tempus venenatis at vitae nisl. In venenatis dapibus velit eu semper. Etiam orci lorem, dignissim et lorem at, malesuada sollicitudin nulla. Sed egestas iaculis metus. Curabitur cursus interdum gravida. Donec ultrices dictum mi vel varius. Nunc ex ante, blandit eu rhoncus sed, volutpat non massa. Nam sed molestie ipsum. \ No newline at end of file diff --git a/openssl-hmac/hex b/openssl-hmac/hex new file mode 100755 index 0000000000000000000000000000000000000000..bc295b2bd0e9a314a6ebb15a5be2693af9d75ea8 GIT binary patch literal 16960 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 literal 0 HcmV?d00001 diff --git a/openssl-hmac/hmac b/openssl-hmac/hmac new file mode 100755 index 0000000000000000000000000000000000000000..0ee119158500291d840c926ab77a665fc0b7ee9b GIT binary patch literal 16944 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 literal 0 HcmV?d00001 diff --git a/openssl-hmac/hmac.c b/openssl-hmac/hmac.c new file mode 100644 index 0000000..2722fda --- /dev/null +++ b/openssl-hmac/hmac.c @@ -0,0 +1,83 @@ +#include +#include +#include +#include +#include + +#define MAXBUF 1024 + +void handle_errors(){ + ERR_print_errors_fp(stderr); + abort(); +} + + +int main(int argc, char **argv){ + + + unsigned char key[] = "keykeykeykeykeykey"; + if(argc != 3){ + fprintf(stderr,"Invalid parameters. Usage: %s filename filename\n",argv[0]); + exit(1); + } + + + FILE *f_in1,*f_in2; + if((f_in1 = fopen(argv[1],"r")) == NULL) { + fprintf(stderr,"Couldn't open the first input file, try again\n"); + exit(1); + } + if((f_in2 = fopen(argv[2],"r")) == NULL) { + fprintf(stderr,"Couldn't open the second input file, try again\n"); + exit(1); + } + + + //EVP_MD_CTX *EVP_MD_CTX_new(void); + //pedantic mode? Check if md == NULL + EVP_MD_CTX *hmac_ctx = EVP_MD_CTX_new(); + + //int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type); + // int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl); + // Returns 1 for success and 0 for failure. + EVP_PKEY *hkey; + hkey = EVP_PKEY_new_mac_key(EVP_PKEY_HMAC, NULL, key, 16); + + if(!EVP_DigestSignInit(hmac_ctx, NULL, EVP_sha256(), NULL, hkey)) + handle_errors(); + + size_t n; + unsigned char buffer[MAXBUF]; + while((n = fread(buffer,1,MAXBUF,f_in1)) > 0){ + // Returns 1 for success and 0 for failure. + if(!EVP_DigestSignUpdate(hmac_ctx, buffer, n)) + handle_errors(); + } + size_t n2; + unsigned char buffer2[MAXBUF]; + while((n2 = fread(buffer2,1,MAXBUF,f_in2)) > 0){ + // Returns 1 for success and 0 for failure. + if(!EVP_DigestSignUpdate(hmac_ctx, buffer2, n2)) + handle_errors(); + } + + unsigned char hmac_value[EVP_MD_size(EVP_sha256())]; + size_t hmac_len = EVP_MD_size(EVP_sha256()); + + //int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, unsigned size_t *s); + // EVP_DigestSignFinal(hmac_ctx, NULL, &hmac_len); + if(!EVP_DigestSignFinal(hmac_ctx, hmac_value, &hmac_len)) + handle_errors(); + + // void EVP_MD_CTX_free(EVP_MD_CTX *ctx); + EVP_MD_CTX_free(hmac_ctx); + + printf("CRYPTO25{"); + for(int i = 0; i < hmac_len; i++) + printf("%02x", hmac_value[i]); + printf("}"); + + + return 0; + +} \ No newline at end of file diff --git a/openssl-rand/format.py b/openssl-rand/format.py new file mode 100644 index 0000000..650a4f4 --- /dev/null +++ b/openssl-rand/format.py @@ -0,0 +1,6 @@ +rand1="4c-75-82-ca-02-07-bd-1d-8d-52-f0-6c-7a-d6-b7-87-83-95-06-2f-e0-f7-d4-24-f8-03-68-97-41-4c-85-29-e5-0d-b0-e4-3c-ee-74-dc-18-8a-aa-26-f0-46-94-e8-52-91-4a-43-8f-dd-ea-bb-a8-cf-51-14-79-ec-17-c2" +rand1=rand1.split("-") +output="" +for i in rand1: + output+="\\x"+i +print(output) \ No newline at end of file diff --git a/openssl-rand/openssl-rand.c b/openssl-rand/openssl-rand.c new file mode 100644 index 0000000..be2740e --- /dev/null +++ b/openssl-rand/openssl-rand.c @@ -0,0 +1,21 @@ +#include +#define MAX 64 +int main(){ + unsigned char rand1[MAX]="\xed\x8a\x3b\xe8\x17\x68\x38\x78\xf6\xb1\x77\x3e\x73\xb3\xf7\x97\xf3\x00\x47\x76\x54\xee\x8d\x51\x0a\x2f\x10\x79\x17\xf8\xea\xd8\x81\x83\x6e\x0f\x0c\xb8\x49\x5a\x77\xef\x2d\x62\xb6\x5e\xe2\x10\x69\xd6\xcc\xd6\xa0\x77\xa2\x0a\xd3\xf7\x9f\xa7\x9e\xa7\xc9\x08"; + unsigned char rand2[MAX]="\x4c\x75\x82\xca\x02\x07\xbd\x1d\x8d\x52\xf0\x6c\x7a\xd6\xb7\x87\x83\x95\x06\x2f\xe0\xf7\xd4\x24\xf8\x03\x68\x97\x41\x4c\x85\x29\xe5\x0d\xb0\xe4\x3c\xee\x74\xdc\x18\x8a\xaa\x26\xf0\x46\x94\xe8\x52\x91\x4a\x43\x8f\xdd\xea\xbb\xa8\xcf\x51\x14\x79\xec\x17\xc2"; + + unsigned char k1[MAX]; + unsigned char k2[MAX]; + unsigned char key[MAX]; + for(int i=0; i<64; i++){ + k1[i]=rand1[i]|rand2[i]; + k2[i]=rand1[i]&rand2[i]; + key[i]=k1[i]^k2[i]; + } + printf("CRYPTO25{"); + for(int i=0; i < MAX; i++) + printf("%02x-", key[i]); + printf("}"); + printf("\n"); + return 0; +} \ No newline at end of file