diff options
530 files changed, 2238 insertions, 4 deletions
diff --git a/.git_old/logs/refs/remotes/github/master b/.git_old/logs/refs/remotes/github/master new file mode 100644 index 0000000..55f52dc --- /dev/null +++ b/.git_old/logs/refs/remotes/github/master @@ -0,0 +1,9 @@ +0000000000000000000000000000000000000000 cc8e0c0221e2730b05b85f7577e0f7ebe93c43e2 Peter Stone <thepeterstone@gmail.com> 1773434689 +0000 update by push +cc8e0c0221e2730b05b85f7577e0f7ebe93c43e2 de76ff1737469545a5391db38ef3b0af6db14b2d Peter Stone <thepeterstone@gmail.com> 1773443052 +0000 pull --rebase github master: fast-forward +de76ff1737469545a5391db38ef3b0af6db14b2d 93abc5940e864d4944d2aa62e03c7cf7aab06ba6 Peter Stone <thepeterstone@gmail.com> 1773443056 +0000 update by push +93abc5940e864d4944d2aa62e03c7cf7aab06ba6 15c6c9be5934878c52760c12d29c8ac47a1fa8b1 Peter Stone <thepeterstone@gmail.com> 1773443144 +0000 update by push +15c6c9be5934878c52760c12d29c8ac47a1fa8b1 801e2f3aa7dee907dc64c5b7e92113d878ad021f Peter Stone <thepeterstone@gmail.com> 1773443209 +0000 update by push +801e2f3aa7dee907dc64c5b7e92113d878ad021f 4e9bb7d776298144bb40b2bb11be6b37877ed851 Peter Stone <thepeterstone@gmail.com> 1773443353 +0000 update by push +4e9bb7d776298144bb40b2bb11be6b37877ed851 3f777eb3d2c418fc9456d7cc6ad14b7c6c1e6e86 Peter Stone <thepeterstone@gmail.com> 1773443506 +0000 update by push +3f777eb3d2c418fc9456d7cc6ad14b7c6c1e6e86 48f3efa1f1db1b04e9d2f2a966051f9d7736f244 Peter Stone <thepeterstone@gmail.com> 1773445655 +0000 update by push +48f3efa1f1db1b04e9d2f2a966051f9d7736f244 2f4283b85337d018fe0ee5d88a132f6476f3d6b0 Peter Stone <thepeterstone@gmail.com> 1773446274 +0000 update by push diff --git a/.git_old/logs/refs/remotes/local/master b/.git_old/logs/refs/remotes/local/master new file mode 100644 index 0000000..f9aa2e9 --- /dev/null +++ b/.git_old/logs/refs/remotes/local/master @@ -0,0 +1 @@ +0000000000000000000000000000000000000000 0b3fc43df0f522a9d2b308c79b35870e3afb08db Peter Stone <thepeterstone@gmail.com> 1773396666 +0000 update by push diff --git a/.git_old/objects/01/3ea45488da6e8e2cfe1ba5904ba58a26ee0105 b/.git_old/objects/01/3ea45488da6e8e2cfe1ba5904ba58a26ee0105 Binary files differnew file mode 100644 index 0000000..144fa8e --- /dev/null +++ b/.git_old/objects/01/3ea45488da6e8e2cfe1ba5904ba58a26ee0105 diff --git a/.git_old/objects/01/bdaa1da7d937c7e7d98e54ba912f88ab95c7f2 b/.git_old/objects/01/bdaa1da7d937c7e7d98e54ba912f88ab95c7f2 Binary files differnew file mode 100644 index 0000000..4a39d31 --- /dev/null +++ b/.git_old/objects/01/bdaa1da7d937c7e7d98e54ba912f88ab95c7f2 diff --git a/.git_old/objects/02/61ffe786d577cbf825858c1d809303565756c1 b/.git_old/objects/02/61ffe786d577cbf825858c1d809303565756c1 Binary files differnew file mode 100644 index 0000000..f29dbd1 --- /dev/null +++ b/.git_old/objects/02/61ffe786d577cbf825858c1d809303565756c1 diff --git a/.git_old/objects/02/6c1986ae55df8b23409188c917e698a796509f b/.git_old/objects/02/6c1986ae55df8b23409188c917e698a796509f Binary files differnew file mode 100644 index 0000000..0d58579 --- /dev/null +++ b/.git_old/objects/02/6c1986ae55df8b23409188c917e698a796509f diff --git a/.git_old/objects/02/a94cc8cc0aad6b74d6cfd899b7527b2bbbc38b b/.git_old/objects/02/a94cc8cc0aad6b74d6cfd899b7527b2bbbc38b Binary files differnew file mode 100644 index 0000000..d978716 --- /dev/null +++ b/.git_old/objects/02/a94cc8cc0aad6b74d6cfd899b7527b2bbbc38b diff --git a/.git_old/objects/02/b0f4216535b51d446045a3bc72f7890da2f6c1 b/.git_old/objects/02/b0f4216535b51d446045a3bc72f7890da2f6c1 Binary files differnew file mode 100644 index 0000000..0ec2bc7 --- /dev/null +++ b/.git_old/objects/02/b0f4216535b51d446045a3bc72f7890da2f6c1 diff --git a/.git_old/objects/03/c03e788a2b407323d4d8bcd4f4ca970f16a66d b/.git_old/objects/03/c03e788a2b407323d4d8bcd4f4ca970f16a66d Binary files differnew file mode 100644 index 0000000..ce52d97 --- /dev/null +++ b/.git_old/objects/03/c03e788a2b407323d4d8bcd4f4ca970f16a66d diff --git a/.git_old/objects/03/c80a94002463dd718e576725ab0cfcf0a74cb1 b/.git_old/objects/03/c80a94002463dd718e576725ab0cfcf0a74cb1 Binary files differnew file mode 100644 index 0000000..15f697d --- /dev/null +++ b/.git_old/objects/03/c80a94002463dd718e576725ab0cfcf0a74cb1 diff --git a/.git_old/objects/03/e6a2f8d7b57bdce34b294d5ad7c4cb0687db17 b/.git_old/objects/03/e6a2f8d7b57bdce34b294d5ad7c4cb0687db17 Binary files differnew file mode 100644 index 0000000..a4ae117 --- /dev/null +++ b/.git_old/objects/03/e6a2f8d7b57bdce34b294d5ad7c4cb0687db17 diff --git a/.git_old/objects/04/0614ef804ebb8e4d34fbb9dccb0ea1f5efb7ab b/.git_old/objects/04/0614ef804ebb8e4d34fbb9dccb0ea1f5efb7ab Binary files differnew file mode 100644 index 0000000..bde4db2 --- /dev/null +++ b/.git_old/objects/04/0614ef804ebb8e4d34fbb9dccb0ea1f5efb7ab diff --git a/.git_old/objects/04/a3387aff7c97953a54229ed29590966175647e b/.git_old/objects/04/a3387aff7c97953a54229ed29590966175647e Binary files differnew file mode 100644 index 0000000..65a107b --- /dev/null +++ b/.git_old/objects/04/a3387aff7c97953a54229ed29590966175647e diff --git a/.git_old/objects/05/4025ae7b22f170572ac4c8a7671bd8e8478be6 b/.git_old/objects/05/4025ae7b22f170572ac4c8a7671bd8e8478be6 Binary files differnew file mode 100644 index 0000000..a941ca1 --- /dev/null +++ b/.git_old/objects/05/4025ae7b22f170572ac4c8a7671bd8e8478be6 diff --git a/.git_old/objects/05/f0832b5d5b550725c7e882ab5797a01511ce4b b/.git_old/objects/05/f0832b5d5b550725c7e882ab5797a01511ce4b Binary files differnew file mode 100644 index 0000000..9ffdf4e --- /dev/null +++ b/.git_old/objects/05/f0832b5d5b550725c7e882ab5797a01511ce4b diff --git a/.git_old/objects/06/37a088a01e8ddab3bf3fa98dbe804cbde1a0dc b/.git_old/objects/06/37a088a01e8ddab3bf3fa98dbe804cbde1a0dc Binary files differnew file mode 100644 index 0000000..b897c0a --- /dev/null +++ b/.git_old/objects/06/37a088a01e8ddab3bf3fa98dbe804cbde1a0dc diff --git a/.git_old/objects/06/959a3c39dee18b5274eff81d0cb5c513d17bb5 b/.git_old/objects/06/959a3c39dee18b5274eff81d0cb5c513d17bb5 Binary files differnew file mode 100644 index 0000000..b831090 --- /dev/null +++ b/.git_old/objects/06/959a3c39dee18b5274eff81d0cb5c513d17bb5 diff --git a/.git_old/objects/06/cbab6375d69ac688183e1ab2103da48a4be8ec b/.git_old/objects/06/cbab6375d69ac688183e1ab2103da48a4be8ec new file mode 100644 index 0000000..9a95d02 --- /dev/null +++ b/.git_old/objects/06/cbab6375d69ac688183e1ab2103da48a4be8ec @@ -0,0 +1,2 @@ +x +@ϣZ`EˠeAZEL2
oEiw=^g~N(/fb͕A%LQ:S~^uPWjʮ\7UP:Hs$ft&pt!TYk*sR>Y(syfo)NoJ%eKlݿ>܈=T7Ж0F#`0F/ x/
\ No newline at end of file diff --git a/.git_old/objects/06/dbb3c2d9c1fddf8f47a662638f84f41f8ec0c8 b/.git_old/objects/06/dbb3c2d9c1fddf8f47a662638f84f41f8ec0c8 Binary files differnew file mode 100644 index 0000000..e4923a4 --- /dev/null +++ b/.git_old/objects/06/dbb3c2d9c1fddf8f47a662638f84f41f8ec0c8 diff --git a/.git_old/objects/07/b7738146fd3dd51a5fc95caf2dabbc486e307b b/.git_old/objects/07/b7738146fd3dd51a5fc95caf2dabbc486e307b Binary files differnew file mode 100644 index 0000000..e2ae033 --- /dev/null +++ b/.git_old/objects/07/b7738146fd3dd51a5fc95caf2dabbc486e307b diff --git a/.git_old/objects/07/fc139079ec660e911f55c1e2a5f15b16b9bd2f b/.git_old/objects/07/fc139079ec660e911f55c1e2a5f15b16b9bd2f Binary files differnew file mode 100644 index 0000000..4a54bca --- /dev/null +++ b/.git_old/objects/07/fc139079ec660e911f55c1e2a5f15b16b9bd2f diff --git a/.git_old/objects/08/650b15f563ebd50a4c0b8c4a6ad55ebb6b8d30 b/.git_old/objects/08/650b15f563ebd50a4c0b8c4a6ad55ebb6b8d30 Binary files differnew file mode 100644 index 0000000..e39812f --- /dev/null +++ b/.git_old/objects/08/650b15f563ebd50a4c0b8c4a6ad55ebb6b8d30 diff --git a/.git_old/objects/08/684c396d8367f96af62281f55f406756aad7e2 b/.git_old/objects/08/684c396d8367f96af62281f55f406756aad7e2 Binary files differnew file mode 100644 index 0000000..a1f7bf6 --- /dev/null +++ b/.git_old/objects/08/684c396d8367f96af62281f55f406756aad7e2 diff --git a/.git_old/objects/08/98853965b558f9ee91862d9d1912173c23c246 b/.git_old/objects/08/98853965b558f9ee91862d9d1912173c23c246 Binary files differnew file mode 100644 index 0000000..134432d --- /dev/null +++ b/.git_old/objects/08/98853965b558f9ee91862d9d1912173c23c246 diff --git a/.git_old/objects/08/aa4d727361add1abea262a55505ceb78c95e99 b/.git_old/objects/08/aa4d727361add1abea262a55505ceb78c95e99 new file mode 100644 index 0000000..7e7e7f8 --- /dev/null +++ b/.git_old/objects/08/aa4d727361add1abea262a55505ceb78c95e99 @@ -0,0 +1,2 @@ +x͑N0y +E$$[H֑ T<;>@ivv֎ɲۻEFLr+X@<`Rrx#֛b0=@ baM)!H.iEeR@5o$9er!CArZ&K[gpz^;)-VOP)l\PhVe~cYSg&[
7zI`
\ No newline at end of file diff --git a/.git_old/objects/08/cdadab57dc28fab5ff838eae234484af0b7cfd b/.git_old/objects/08/cdadab57dc28fab5ff838eae234484af0b7cfd Binary files differnew file mode 100644 index 0000000..6e68cb9 --- /dev/null +++ b/.git_old/objects/08/cdadab57dc28fab5ff838eae234484af0b7cfd diff --git a/.git_old/objects/08/f4ebeab550e5b7670413a1d354bc2bba12a1d1 b/.git_old/objects/08/f4ebeab550e5b7670413a1d354bc2bba12a1d1 Binary files differnew file mode 100644 index 0000000..5c015fa --- /dev/null +++ b/.git_old/objects/08/f4ebeab550e5b7670413a1d354bc2bba12a1d1 diff --git a/.git_old/objects/09/16bd8a9765c2a0ad651da6e44038179ac89a56 b/.git_old/objects/09/16bd8a9765c2a0ad651da6e44038179ac89a56 Binary files differnew file mode 100644 index 0000000..7df7e22 --- /dev/null +++ b/.git_old/objects/09/16bd8a9765c2a0ad651da6e44038179ac89a56 diff --git a/.git_old/objects/09/b6aa5d5af66190c76441f1a702f557bfa3ddd8 b/.git_old/objects/09/b6aa5d5af66190c76441f1a702f557bfa3ddd8 new file mode 100644 index 0000000..1aa7704 --- /dev/null +++ b/.git_old/objects/09/b6aa5d5af66190c76441f1a702f557bfa3ddd8 @@ -0,0 +1,2 @@ +x0~ +_`x%1$D</e
K+ƿpt䜧JGNhNA/%FaaYt`g^O$.%:V]x3xGŇI2/3@`/{줎mU|Po4ZMMEe{an-~bNP6
\ No newline at end of file diff --git a/.git_old/objects/0a/4e17383b5f644b604fb9e43be29b781d64ca26 b/.git_old/objects/0a/4e17383b5f644b604fb9e43be29b781d64ca26 Binary files differnew file mode 100644 index 0000000..80f13ec --- /dev/null +++ b/.git_old/objects/0a/4e17383b5f644b604fb9e43be29b781d64ca26 diff --git a/.git_old/objects/0a/d0df20c52a0c45d312768650810e100391588a b/.git_old/objects/0a/d0df20c52a0c45d312768650810e100391588a Binary files differnew file mode 100644 index 0000000..492b625 --- /dev/null +++ b/.git_old/objects/0a/d0df20c52a0c45d312768650810e100391588a diff --git a/.git_old/objects/0c/ad87911c38df8fd057443c199c2e8688372e34 b/.git_old/objects/0c/ad87911c38df8fd057443c199c2e8688372e34 new file mode 100644 index 0000000..a714b56 --- /dev/null +++ b/.git_old/objects/0c/ad87911c38df8fd057443c199c2e8688372e34 @@ -0,0 +1 @@ +x+)JMU01`040031Q(JM,JM.+(a軴72\և_)
\ No newline at end of file diff --git a/.git_old/objects/0d/76ca1a76e1cc3a4a1312a7ebdd4038de4d1f0e b/.git_old/objects/0d/76ca1a76e1cc3a4a1312a7ebdd4038de4d1f0e Binary files differnew file mode 100644 index 0000000..322d8fa --- /dev/null +++ b/.git_old/objects/0d/76ca1a76e1cc3a4a1312a7ebdd4038de4d1f0e diff --git a/.git_old/objects/0d/878ae5a356eca475078b4b15a37305d25996f1 b/.git_old/objects/0d/878ae5a356eca475078b4b15a37305d25996f1 Binary files differnew file mode 100644 index 0000000..3ede9a1 --- /dev/null +++ b/.git_old/objects/0d/878ae5a356eca475078b4b15a37305d25996f1 diff --git a/.git_old/objects/0d/9a6ce42faa94eb2f36c956e90810b899cd0cb1 b/.git_old/objects/0d/9a6ce42faa94eb2f36c956e90810b899cd0cb1 Binary files differnew file mode 100644 index 0000000..8db8aed --- /dev/null +++ b/.git_old/objects/0d/9a6ce42faa94eb2f36c956e90810b899cd0cb1 diff --git a/.git_old/objects/0d/a156cc93b83232d88f5baa7e112bf79e9626ff b/.git_old/objects/0d/a156cc93b83232d88f5baa7e112bf79e9626ff Binary files differnew file mode 100644 index 0000000..9546998 --- /dev/null +++ b/.git_old/objects/0d/a156cc93b83232d88f5baa7e112bf79e9626ff diff --git a/.git_old/objects/0d/e88076bc38804012ad32577592bbf5f88b3fc9 b/.git_old/objects/0d/e88076bc38804012ad32577592bbf5f88b3fc9 Binary files differnew file mode 100644 index 0000000..7f8d80a --- /dev/null +++ b/.git_old/objects/0d/e88076bc38804012ad32577592bbf5f88b3fc9 diff --git a/.git_old/objects/0e/6c8bab1e097e09f5c695b14c706d67fcd9b209 b/.git_old/objects/0e/6c8bab1e097e09f5c695b14c706d67fcd9b209 Binary files differnew file mode 100644 index 0000000..aa83fb8 --- /dev/null +++ b/.git_old/objects/0e/6c8bab1e097e09f5c695b14c706d67fcd9b209 diff --git a/.git_old/objects/0e/98a3506df9da2ca9e934d0895c3e59d310db23 b/.git_old/objects/0e/98a3506df9da2ca9e934d0895c3e59d310db23 Binary files differnew file mode 100644 index 0000000..26607b7 --- /dev/null +++ b/.git_old/objects/0e/98a3506df9da2ca9e934d0895c3e59d310db23 diff --git a/.git_old/objects/0e/ba3a124eaf889ba6f9687d6981ddaabaa1e78d b/.git_old/objects/0e/ba3a124eaf889ba6f9687d6981ddaabaa1e78d Binary files differnew file mode 100644 index 0000000..60b41bf --- /dev/null +++ b/.git_old/objects/0e/ba3a124eaf889ba6f9687d6981ddaabaa1e78d diff --git a/.git_old/objects/0f/025c5eef5a69cf614237f39d512a1c32a5b491 b/.git_old/objects/0f/025c5eef5a69cf614237f39d512a1c32a5b491 Binary files differnew file mode 100644 index 0000000..8bf78c9 --- /dev/null +++ b/.git_old/objects/0f/025c5eef5a69cf614237f39d512a1c32a5b491 diff --git a/.git_old/objects/0f/34d26d08f2cb31928928f331488d6609719981 b/.git_old/objects/0f/34d26d08f2cb31928928f331488d6609719981 Binary files differnew file mode 100644 index 0000000..0ce5969 --- /dev/null +++ b/.git_old/objects/0f/34d26d08f2cb31928928f331488d6609719981 diff --git a/.git_old/objects/0f/d650751fd8e3e4cf72233de771915f94c0f796 b/.git_old/objects/0f/d650751fd8e3e4cf72233de771915f94c0f796 new file mode 100644 index 0000000..8103191 --- /dev/null +++ b/.git_old/objects/0f/d650751fd8e3e4cf72233de771915f94c0f796 @@ -0,0 +1 @@ +xJ0mJ =IORhez={Q:MbMBշW,:םϧ啷X>\=:]3Jz{DekI[n>,ȮifXEBӲ"+Ӣؔ]Ky:Ɍ,[kuE8=xczzEȸKhߤ@[ᅠJ-zJQ
t,GL"f`u!VXQA=+G?I'tq0hݟ?!
\ No newline at end of file diff --git a/.git_old/objects/10/036193fa4b85dc058d9dcefb5e0de6eaf7e3b5 b/.git_old/objects/10/036193fa4b85dc058d9dcefb5e0de6eaf7e3b5 Binary files differnew file mode 100644 index 0000000..f7c77e0 --- /dev/null +++ b/.git_old/objects/10/036193fa4b85dc058d9dcefb5e0de6eaf7e3b5 diff --git a/.git_old/objects/10/55d77d328b7c099f59fccb99b91469df89bf3c b/.git_old/objects/10/55d77d328b7c099f59fccb99b91469df89bf3c Binary files differnew file mode 100644 index 0000000..5ad6ad9 --- /dev/null +++ b/.git_old/objects/10/55d77d328b7c099f59fccb99b91469df89bf3c diff --git a/.git_old/objects/10/7a9e478c05661bb77f1d600aa9199f473641e1 b/.git_old/objects/10/7a9e478c05661bb77f1d600aa9199f473641e1 Binary files differnew file mode 100644 index 0000000..037b984 --- /dev/null +++ b/.git_old/objects/10/7a9e478c05661bb77f1d600aa9199f473641e1 diff --git a/.git_old/objects/10/7c64fce47d8f1f923a7a20b0a6799e387e6da4 b/.git_old/objects/10/7c64fce47d8f1f923a7a20b0a6799e387e6da4 Binary files differnew file mode 100644 index 0000000..2456ec7 --- /dev/null +++ b/.git_old/objects/10/7c64fce47d8f1f923a7a20b0a6799e387e6da4 diff --git a/.git_old/objects/10/807e6a2fe5386940ed65bcd3a23a7a40d07c4f b/.git_old/objects/10/807e6a2fe5386940ed65bcd3a23a7a40d07c4f Binary files differnew file mode 100644 index 0000000..ff0875c --- /dev/null +++ b/.git_old/objects/10/807e6a2fe5386940ed65bcd3a23a7a40d07c4f diff --git a/.git_old/objects/10/d5a3fe2c99fb121523e751a8c77406318e5e60 b/.git_old/objects/10/d5a3fe2c99fb121523e751a8c77406318e5e60 new file mode 100644 index 0000000..4b44e80 --- /dev/null +++ b/.git_old/objects/10/d5a3fe2c99fb121523e751a8c77406318e5e60 @@ -0,0 +1,4 @@ +xбJAE">@ AD,+Tr@@*! +7Xk4,f!Uj`NԨl"bGo9%25#[?Ö'c|=ߟ'h1؏xE.bo0-~O2k))^}}L9#=7+u<wX.Ie7{p^Q +D(@Q +DRpf
\ No newline at end of file diff --git a/.git_old/objects/11/87cb75aff9caccd6929476c04ff30afca59db2 b/.git_old/objects/11/87cb75aff9caccd6929476c04ff30afca59db2 Binary files differnew file mode 100644 index 0000000..8ad1df5 --- /dev/null +++ b/.git_old/objects/11/87cb75aff9caccd6929476c04ff30afca59db2 diff --git a/.git_old/objects/14/10b5fc469f580416feaa0740977851a465e271 b/.git_old/objects/14/10b5fc469f580416feaa0740977851a465e271 Binary files differnew file mode 100644 index 0000000..08b39c2 --- /dev/null +++ b/.git_old/objects/14/10b5fc469f580416feaa0740977851a465e271 diff --git a/.git_old/objects/14/a06c0c724eeb212e2bb205be9ed6c9a6562569 b/.git_old/objects/14/a06c0c724eeb212e2bb205be9ed6c9a6562569 Binary files differnew file mode 100644 index 0000000..74db27c --- /dev/null +++ b/.git_old/objects/14/a06c0c724eeb212e2bb205be9ed6c9a6562569 diff --git a/.git_old/objects/14/e195bc2bbe25a5d674937c540c02eaf529f2ff b/.git_old/objects/14/e195bc2bbe25a5d674937c540c02eaf529f2ff Binary files differnew file mode 100644 index 0000000..ba7f90c --- /dev/null +++ b/.git_old/objects/14/e195bc2bbe25a5d674937c540c02eaf529f2ff diff --git a/.git_old/objects/14/f8d29674d71dd115da3e3d07d808ef6995574f b/.git_old/objects/14/f8d29674d71dd115da3e3d07d808ef6995574f new file mode 100644 index 0000000..ac8b331 --- /dev/null +++ b/.git_old/objects/14/f8d29674d71dd115da3e3d07d808ef6995574f @@ -0,0 +1,4 @@ +xV]k0sōic026&6KȶlIHJJ?VgKaysB$p}sHQ-*9QIIZDʸgJ̕rtٔ8'
``0帶.)7HZhW3YL&]];0"2( JE)F؟no*-arߋf*4AwAx^?I-kؓD3*r&^=(EAT,Sc9a;IJU!ŚjX +3HӲ o
љqrlfz<`CBtw9&9V`c;$I\$N7yqFu4Lp
1f +M̿;f,jMx[tc,_+RwD6,+W,5 7H4ܧرkN"5bêS{tЛ@4y'kcMX%|;غ=ulW(ZKKS'@/4Bv`F㽙eT+m0d+ a+YH
ëӋW^W/|N2?`xszq,_u.Kp6\,(`%3s|x3Za2wG//z +
\ No newline at end of file diff --git a/.git_old/objects/18/630b243b5156de2d9910e92dece1a272847bdc b/.git_old/objects/18/630b243b5156de2d9910e92dece1a272847bdc Binary files differnew file mode 100644 index 0000000..0d79176 --- /dev/null +++ b/.git_old/objects/18/630b243b5156de2d9910e92dece1a272847bdc diff --git a/.git_old/objects/18/b8820074fda8fab0985073c03e74b88210449d b/.git_old/objects/18/b8820074fda8fab0985073c03e74b88210449d Binary files differnew file mode 100644 index 0000000..86ab7b9 --- /dev/null +++ b/.git_old/objects/18/b8820074fda8fab0985073c03e74b88210449d diff --git a/.git_old/objects/18/c133201a226d29c5ecd92cba8180db5c635a20 b/.git_old/objects/18/c133201a226d29c5ecd92cba8180db5c635a20 Binary files differnew file mode 100644 index 0000000..f944968 --- /dev/null +++ b/.git_old/objects/18/c133201a226d29c5ecd92cba8180db5c635a20 diff --git a/.git_old/objects/18/e819c1f24d598a5a4ef23997b2ed7a57ca9b57 b/.git_old/objects/18/e819c1f24d598a5a4ef23997b2ed7a57ca9b57 Binary files differnew file mode 100644 index 0000000..1e05bc6 --- /dev/null +++ b/.git_old/objects/18/e819c1f24d598a5a4ef23997b2ed7a57ca9b57 diff --git a/.git_old/objects/19/54aa0089eeb2f14afc10b69d8cfda1d386a758 b/.git_old/objects/19/54aa0089eeb2f14afc10b69d8cfda1d386a758 Binary files differnew file mode 100644 index 0000000..7cd170d --- /dev/null +++ b/.git_old/objects/19/54aa0089eeb2f14afc10b69d8cfda1d386a758 diff --git a/.git_old/objects/19/65b6a927faa139adcdcb5b54b52e5ab5187599 b/.git_old/objects/19/65b6a927faa139adcdcb5b54b52e5ab5187599 Binary files differnew file mode 100644 index 0000000..93d48d9 --- /dev/null +++ b/.git_old/objects/19/65b6a927faa139adcdcb5b54b52e5ab5187599 diff --git a/.git_old/objects/19/df7d6693875c91c44305ba910f696dc8aab1ab b/.git_old/objects/19/df7d6693875c91c44305ba910f696dc8aab1ab Binary files differnew file mode 100644 index 0000000..4ff3fc8 --- /dev/null +++ b/.git_old/objects/19/df7d6693875c91c44305ba910f696dc8aab1ab diff --git a/.git_old/objects/19/ee4d5fdda38313840e84e2a335c44590fc980e b/.git_old/objects/19/ee4d5fdda38313840e84e2a335c44590fc980e Binary files differnew file mode 100644 index 0000000..fb9e9a4 --- /dev/null +++ b/.git_old/objects/19/ee4d5fdda38313840e84e2a335c44590fc980e diff --git a/.git_old/objects/1c/472d04a6d1e79d17e0fa4cbef4f1bc747e08eb b/.git_old/objects/1c/472d04a6d1e79d17e0fa4cbef4f1bc747e08eb Binary files differnew file mode 100644 index 0000000..896e349 --- /dev/null +++ b/.git_old/objects/1c/472d04a6d1e79d17e0fa4cbef4f1bc747e08eb diff --git a/.git_old/objects/1c/56c8fbc1d4ea8d37679e2196d9dd06e8896708 b/.git_old/objects/1c/56c8fbc1d4ea8d37679e2196d9dd06e8896708 new file mode 100644 index 0000000..8475b1e --- /dev/null +++ b/.git_old/objects/1c/56c8fbc1d4ea8d37679e2196d9dd06e8896708 @@ -0,0 +1,2 @@ +xOO09ST_Dt6meBh*7uKXTIZ6>=E;3e +M2?UРu)F$@-L.u9%/gĢ3fy*
GRߡѮsx)VRrHfǣш%/Ư@cJ)T2=ใX=]sa&<ѕhv=U*,''skd>G1e1`!"N%,beo7JLZwD{t/(gtPH9;ʚW;ʟoT2xEK
\ No newline at end of file diff --git a/.git_old/objects/1c/8b3faf250ec9e7823432494450d8f3f9d572f8 b/.git_old/objects/1c/8b3faf250ec9e7823432494450d8f3f9d572f8 Binary files differnew file mode 100644 index 0000000..054cd9b --- /dev/null +++ b/.git_old/objects/1c/8b3faf250ec9e7823432494450d8f3f9d572f8 diff --git a/.git_old/objects/1c/91b474990f6126b8bf66e3f245c215ab02bf75 b/.git_old/objects/1c/91b474990f6126b8bf66e3f245c215ab02bf75 new file mode 100644 index 0000000..10e8ca7 --- /dev/null +++ b/.git_old/objects/1c/91b474990f6126b8bf66e3f245c215ab02bf75 @@ -0,0 +1 @@ +xMO =p`؏ƓWZ tcbmmո;2<ygִ}!ԍC{ʠ,ҝ7>JҶe'̌I7p5$ɉ.F[?~jַP,ñt2h'K 5?oY넶%eʴ*ErVly.x9eB'aZ+|bSbCǘ UpH!/Qcce.¯B8=\Yn@G_R9L~X
\ No newline at end of file diff --git a/.git_old/objects/1c/e84db3a2a297e2dd6bd5d4b6a211bc037cb98e b/.git_old/objects/1c/e84db3a2a297e2dd6bd5d4b6a211bc037cb98e Binary files differnew file mode 100644 index 0000000..b26126f --- /dev/null +++ b/.git_old/objects/1c/e84db3a2a297e2dd6bd5d4b6a211bc037cb98e diff --git a/.git_old/objects/1e/8c38e31de21bba4ce64175027ce97f4e243b0c b/.git_old/objects/1e/8c38e31de21bba4ce64175027ce97f4e243b0c Binary files differnew file mode 100644 index 0000000..6a08c2f --- /dev/null +++ b/.git_old/objects/1e/8c38e31de21bba4ce64175027ce97f4e243b0c diff --git a/.git_old/objects/1e/f28296bce6f33bb163ed8c08e019c911ca2c20 b/.git_old/objects/1e/f28296bce6f33bb163ed8c08e019c911ca2c20 Binary files differnew file mode 100644 index 0000000..86b7a1c --- /dev/null +++ b/.git_old/objects/1e/f28296bce6f33bb163ed8c08e019c911ca2c20 diff --git a/.git_old/objects/1f/b004429a404059cfde34fd15673274ac3b0db1 b/.git_old/objects/1f/b004429a404059cfde34fd15673274ac3b0db1 Binary files differnew file mode 100644 index 0000000..fe5b038 --- /dev/null +++ b/.git_old/objects/1f/b004429a404059cfde34fd15673274ac3b0db1 diff --git a/.git_old/objects/1f/e02cbe76eeeac32f488ae970b1a018cb4c0235 b/.git_old/objects/1f/e02cbe76eeeac32f488ae970b1a018cb4c0235 Binary files differnew file mode 100644 index 0000000..afd091b --- /dev/null +++ b/.git_old/objects/1f/e02cbe76eeeac32f488ae970b1a018cb4c0235 diff --git a/.git_old/objects/1f/f599e759c3a56ebf0a7c19847f737a76a15d47 b/.git_old/objects/1f/f599e759c3a56ebf0a7c19847f737a76a15d47 Binary files differnew file mode 100644 index 0000000..c15edcd --- /dev/null +++ b/.git_old/objects/1f/f599e759c3a56ebf0a7c19847f737a76a15d47 diff --git a/.git_old/objects/1f/fce7770822cb9f0e8cefba1dafb9a1c97e875d b/.git_old/objects/1f/fce7770822cb9f0e8cefba1dafb9a1c97e875d Binary files differnew file mode 100644 index 0000000..cc836e8 --- /dev/null +++ b/.git_old/objects/1f/fce7770822cb9f0e8cefba1dafb9a1c97e875d diff --git a/.git_old/objects/20/445618aba29dfdc8553d4613fff41c4ad7c2f5 b/.git_old/objects/20/445618aba29dfdc8553d4613fff41c4ad7c2f5 Binary files differnew file mode 100644 index 0000000..a163c4e --- /dev/null +++ b/.git_old/objects/20/445618aba29dfdc8553d4613fff41c4ad7c2f5 diff --git a/.git_old/objects/20/bb6569b628c33327e8a53466496920c734aca8 b/.git_old/objects/20/bb6569b628c33327e8a53466496920c734aca8 Binary files differnew file mode 100644 index 0000000..477f6cd --- /dev/null +++ b/.git_old/objects/20/bb6569b628c33327e8a53466496920c734aca8 diff --git a/.git_old/objects/20/e1ce9bdf1153d8f7f0c3500984799343368aba b/.git_old/objects/20/e1ce9bdf1153d8f7f0c3500984799343368aba Binary files differnew file mode 100644 index 0000000..0f69f54 --- /dev/null +++ b/.git_old/objects/20/e1ce9bdf1153d8f7f0c3500984799343368aba diff --git a/.git_old/objects/23/1d2ee68e82a818c776f2996a38a5df9c5ff499 b/.git_old/objects/23/1d2ee68e82a818c776f2996a38a5df9c5ff499 Binary files differnew file mode 100644 index 0000000..1d7b4d6 --- /dev/null +++ b/.git_old/objects/23/1d2ee68e82a818c776f2996a38a5df9c5ff499 diff --git a/.git_old/objects/23/35e689f1486a86baa282d2200dae5ba51ddc67 b/.git_old/objects/23/35e689f1486a86baa282d2200dae5ba51ddc67 Binary files differnew file mode 100644 index 0000000..df181fa --- /dev/null +++ b/.git_old/objects/23/35e689f1486a86baa282d2200dae5ba51ddc67 diff --git a/.git_old/objects/23/89c93e45fc43d34a229519f4031aaf4d50494e b/.git_old/objects/23/89c93e45fc43d34a229519f4031aaf4d50494e new file mode 100644 index 0000000..0d39e20 --- /dev/null +++ b/.git_old/objects/23/89c93e45fc43d34a229519f4031aaf4d50494e @@ -0,0 +1,2 @@ +xmn ;)]Bo%UԥSvU,@I/8NHe8u;:mtvJК~ԁ-:k}4q袩Tt;0e'/?WVf9Xvo6b>g뭌k#SD"IrȠX"Jn)-<L" +2gREhvCUZqP'xSTM'q
\ No newline at end of file diff --git a/.git_old/objects/23/95a15f990d6a64668d4de36312cef305cd6ec3 b/.git_old/objects/23/95a15f990d6a64668d4de36312cef305cd6ec3 Binary files differnew file mode 100644 index 0000000..7e29465 --- /dev/null +++ b/.git_old/objects/23/95a15f990d6a64668d4de36312cef305cd6ec3 diff --git a/.git_old/objects/23/a581be2bfd6232a1de2246f1512f11d856f601 b/.git_old/objects/23/a581be2bfd6232a1de2246f1512f11d856f601 Binary files differnew file mode 100644 index 0000000..05d32e8 --- /dev/null +++ b/.git_old/objects/23/a581be2bfd6232a1de2246f1512f11d856f601 diff --git a/.git_old/objects/24/78c0e600dfd02698f5ff36ec8bba98317b0c9a b/.git_old/objects/24/78c0e600dfd02698f5ff36ec8bba98317b0c9a Binary files differnew file mode 100644 index 0000000..e38c58f --- /dev/null +++ b/.git_old/objects/24/78c0e600dfd02698f5ff36ec8bba98317b0c9a diff --git a/.git_old/objects/24/baed86102cae14cf54493c64a8570791eb811b b/.git_old/objects/24/baed86102cae14cf54493c64a8570791eb811b Binary files differnew file mode 100644 index 0000000..e4066df --- /dev/null +++ b/.git_old/objects/24/baed86102cae14cf54493c64a8570791eb811b diff --git a/.git_old/objects/26/7d9f52ceedbd420d060090d3bbafce4423d1f8 b/.git_old/objects/26/7d9f52ceedbd420d060090d3bbafce4423d1f8 Binary files differnew file mode 100644 index 0000000..7e7cd31 --- /dev/null +++ b/.git_old/objects/26/7d9f52ceedbd420d060090d3bbafce4423d1f8 diff --git a/.git_old/objects/26/b1691b3981ab2731f798d7fdd3cf554172a2b6 b/.git_old/objects/26/b1691b3981ab2731f798d7fdd3cf554172a2b6 Binary files differnew file mode 100644 index 0000000..5136239 --- /dev/null +++ b/.git_old/objects/26/b1691b3981ab2731f798d7fdd3cf554172a2b6 diff --git a/.git_old/objects/26/be0403019c3cb31fe6a93a1113a1badcf67d3d b/.git_old/objects/26/be0403019c3cb31fe6a93a1113a1badcf67d3d Binary files differnew file mode 100644 index 0000000..386da10 --- /dev/null +++ b/.git_old/objects/26/be0403019c3cb31fe6a93a1113a1badcf67d3d diff --git a/.git_old/objects/27/25b968ef4a15dee09f51ce676b5481fba35705 b/.git_old/objects/27/25b968ef4a15dee09f51ce676b5481fba35705 Binary files differnew file mode 100644 index 0000000..258b097 --- /dev/null +++ b/.git_old/objects/27/25b968ef4a15dee09f51ce676b5481fba35705 diff --git a/.git_old/objects/27/5d852f3cc7cefc2ae9053caf9a07167af1dcc6 b/.git_old/objects/27/5d852f3cc7cefc2ae9053caf9a07167af1dcc6 Binary files differnew file mode 100644 index 0000000..616efdf --- /dev/null +++ b/.git_old/objects/27/5d852f3cc7cefc2ae9053caf9a07167af1dcc6 diff --git a/.git_old/objects/27/d1f5bff76c8c2821de6d900d881123fb6a81b7 b/.git_old/objects/27/d1f5bff76c8c2821de6d900d881123fb6a81b7 Binary files differnew file mode 100644 index 0000000..e7fa4ac --- /dev/null +++ b/.git_old/objects/27/d1f5bff76c8c2821de6d900d881123fb6a81b7 diff --git a/.git_old/objects/29/0be1f2cd98cdcbae2ea5f8e08d13a6bd7282c0 b/.git_old/objects/29/0be1f2cd98cdcbae2ea5f8e08d13a6bd7282c0 Binary files differnew file mode 100644 index 0000000..6f38776 --- /dev/null +++ b/.git_old/objects/29/0be1f2cd98cdcbae2ea5f8e08d13a6bd7282c0 diff --git a/.git_old/objects/29/58ef32684e4fed3ff316877693cc687d77f583 b/.git_old/objects/29/58ef32684e4fed3ff316877693cc687d77f583 Binary files differnew file mode 100644 index 0000000..ef10888 --- /dev/null +++ b/.git_old/objects/29/58ef32684e4fed3ff316877693cc687d77f583 diff --git a/.git_old/objects/29/9eedbe23b2a95aaae714f8728ff8f6f192fbf6 b/.git_old/objects/29/9eedbe23b2a95aaae714f8728ff8f6f192fbf6 Binary files differnew file mode 100644 index 0000000..57f931a --- /dev/null +++ b/.git_old/objects/29/9eedbe23b2a95aaae714f8728ff8f6f192fbf6 diff --git a/.git_old/objects/2a/418e3b39b926719c85c60f8da227e5c567617e b/.git_old/objects/2a/418e3b39b926719c85c60f8da227e5c567617e Binary files differnew file mode 100644 index 0000000..c9d3c9d --- /dev/null +++ b/.git_old/objects/2a/418e3b39b926719c85c60f8da227e5c567617e diff --git a/.git_old/objects/2a/6441a73f043180f92cb72ca042e06dda7cd945 b/.git_old/objects/2a/6441a73f043180f92cb72ca042e06dda7cd945 Binary files differnew file mode 100644 index 0000000..ef9d17b --- /dev/null +++ b/.git_old/objects/2a/6441a73f043180f92cb72ca042e06dda7cd945 diff --git a/.git_old/objects/2a/f6c39a22803efc8330fda85a210b2cb996d78e b/.git_old/objects/2a/f6c39a22803efc8330fda85a210b2cb996d78e Binary files differnew file mode 100644 index 0000000..37c8a60 --- /dev/null +++ b/.git_old/objects/2a/f6c39a22803efc8330fda85a210b2cb996d78e diff --git a/.git_old/objects/2d/053afd279a1c787a96ea7ffa046566d7163799 b/.git_old/objects/2d/053afd279a1c787a96ea7ffa046566d7163799 Binary files differnew file mode 100644 index 0000000..0b4019e --- /dev/null +++ b/.git_old/objects/2d/053afd279a1c787a96ea7ffa046566d7163799 diff --git a/.git_old/objects/2d/0adaeb856985817dcf81833ebdcd98390e4ca5 b/.git_old/objects/2d/0adaeb856985817dcf81833ebdcd98390e4ca5 Binary files differnew file mode 100644 index 0000000..a43a79e --- /dev/null +++ b/.git_old/objects/2d/0adaeb856985817dcf81833ebdcd98390e4ca5 diff --git a/.git_old/objects/2d/20c165d514f028bd2d578040982e3db5eeef77 b/.git_old/objects/2d/20c165d514f028bd2d578040982e3db5eeef77 Binary files differnew file mode 100644 index 0000000..2db79cb --- /dev/null +++ b/.git_old/objects/2d/20c165d514f028bd2d578040982e3db5eeef77 diff --git a/.git_old/objects/2d/25e443b29f42fd199a4adabe61175a4e3c82a5 b/.git_old/objects/2d/25e443b29f42fd199a4adabe61175a4e3c82a5 Binary files differnew file mode 100644 index 0000000..8ca349b --- /dev/null +++ b/.git_old/objects/2d/25e443b29f42fd199a4adabe61175a4e3c82a5 diff --git a/.git_old/objects/2d/262588143b919231cbe2fa9f1eb35219fa668c b/.git_old/objects/2d/262588143b919231cbe2fa9f1eb35219fa668c new file mode 100644 index 0000000..d3eb037 --- /dev/null +++ b/.git_old/objects/2d/262588143b919231cbe2fa9f1eb35219fa668c @@ -0,0 +1,3 @@ +x_o O<ATZ=-YץWZh,Cں?!/s!:_o2~ZA-٭ߦݨѽzHѦuB +M+Zݛm;6}y",黒~0][ecFfvJ‖9Q6HXA"? +a66"/4Lop9
nmnN]|{)bܴ8>h٫v?ᗪ&X[4榳g|9doR'}:~x
\ No newline at end of file diff --git a/.git_old/objects/2d/34068aab328b7449983d3e299eb5b2594f0c06 b/.git_old/objects/2d/34068aab328b7449983d3e299eb5b2594f0c06 Binary files differnew file mode 100644 index 0000000..7d09a28 --- /dev/null +++ b/.git_old/objects/2d/34068aab328b7449983d3e299eb5b2594f0c06 diff --git a/.git_old/objects/2d/4e27644bade87e0732cbb7633073007d5c7b6a b/.git_old/objects/2d/4e27644bade87e0732cbb7633073007d5c7b6a Binary files differnew file mode 100644 index 0000000..de285fa --- /dev/null +++ b/.git_old/objects/2d/4e27644bade87e0732cbb7633073007d5c7b6a diff --git a/.git_old/objects/2d/6a8b7a2c854db504af93186e24faece3527d70 b/.git_old/objects/2d/6a8b7a2c854db504af93186e24faece3527d70 Binary files differnew file mode 100644 index 0000000..af5d6ad --- /dev/null +++ b/.git_old/objects/2d/6a8b7a2c854db504af93186e24faece3527d70 diff --git a/.git_old/objects/2d/ea15f0ae9c2d7fe6a47e7ef700c1f04c279cb7 b/.git_old/objects/2d/ea15f0ae9c2d7fe6a47e7ef700c1f04c279cb7 Binary files differnew file mode 100644 index 0000000..369513a --- /dev/null +++ b/.git_old/objects/2d/ea15f0ae9c2d7fe6a47e7ef700c1f04c279cb7 diff --git a/.git_old/objects/30/4fa24f090304c45139ce7d97a27cbd5f063f09 b/.git_old/objects/30/4fa24f090304c45139ce7d97a27cbd5f063f09 Binary files differnew file mode 100644 index 0000000..2a4d35c --- /dev/null +++ b/.git_old/objects/30/4fa24f090304c45139ce7d97a27cbd5f063f09 diff --git a/.git_old/objects/32/806a8d1ed1c374f30585f7b7ed25cde678e257 b/.git_old/objects/32/806a8d1ed1c374f30585f7b7ed25cde678e257 Binary files differnew file mode 100644 index 0000000..eb01555 --- /dev/null +++ b/.git_old/objects/32/806a8d1ed1c374f30585f7b7ed25cde678e257 diff --git a/.git_old/objects/32/954a0865a90fab633fffbfc2dc068b47c3d4c4 b/.git_old/objects/32/954a0865a90fab633fffbfc2dc068b47c3d4c4 Binary files differnew file mode 100644 index 0000000..a97382e --- /dev/null +++ b/.git_old/objects/32/954a0865a90fab633fffbfc2dc068b47c3d4c4 diff --git a/.git_old/objects/33/0d41558af0a6abb6662cd29d36c27c5f7f1b19 b/.git_old/objects/33/0d41558af0a6abb6662cd29d36c27c5f7f1b19 Binary files differnew file mode 100644 index 0000000..47790e4 --- /dev/null +++ b/.git_old/objects/33/0d41558af0a6abb6662cd29d36c27c5f7f1b19 diff --git a/.git_old/objects/33/140ac7015f853a103da02560f38e3138eee519 b/.git_old/objects/33/140ac7015f853a103da02560f38e3138eee519 Binary files differnew file mode 100644 index 0000000..0c8d696 --- /dev/null +++ b/.git_old/objects/33/140ac7015f853a103da02560f38e3138eee519 diff --git a/.git_old/objects/33/37b4a569c3dd2966cf0f66f5fe44b64247ecc9 b/.git_old/objects/33/37b4a569c3dd2966cf0f66f5fe44b64247ecc9 Binary files differnew file mode 100644 index 0000000..eb62557 --- /dev/null +++ b/.git_old/objects/33/37b4a569c3dd2966cf0f66f5fe44b64247ecc9 diff --git a/.git_old/objects/33/beb455612568ad671b60dd2cd4261a0984a8a7 b/.git_old/objects/33/beb455612568ad671b60dd2cd4261a0984a8a7 Binary files differnew file mode 100644 index 0000000..42f5966 --- /dev/null +++ b/.git_old/objects/33/beb455612568ad671b60dd2cd4261a0984a8a7 diff --git a/.git_old/objects/35/d8468081e635a14db5f96f8c4194ce106c7c9e b/.git_old/objects/35/d8468081e635a14db5f96f8c4194ce106c7c9e Binary files differnew file mode 100644 index 0000000..d28a45e --- /dev/null +++ b/.git_old/objects/35/d8468081e635a14db5f96f8c4194ce106c7c9e diff --git a/.git_old/objects/37/7b8e4a43d9ff130eb5c69ad5713ae127c66a92 b/.git_old/objects/37/7b8e4a43d9ff130eb5c69ad5713ae127c66a92 Binary files differnew file mode 100644 index 0000000..eda2d9a --- /dev/null +++ b/.git_old/objects/37/7b8e4a43d9ff130eb5c69ad5713ae127c66a92 diff --git a/.git_old/objects/37/87e5b31f16a6e73f0d432f61b6fe6bc0e8cead b/.git_old/objects/37/87e5b31f16a6e73f0d432f61b6fe6bc0e8cead Binary files differnew file mode 100644 index 0000000..ed97b26 --- /dev/null +++ b/.git_old/objects/37/87e5b31f16a6e73f0d432f61b6fe6bc0e8cead diff --git a/.git_old/objects/37/b76aa9769e0a30b3b75121abb5376b20d71ce3 b/.git_old/objects/37/b76aa9769e0a30b3b75121abb5376b20d71ce3 Binary files differnew file mode 100644 index 0000000..41f6365 --- /dev/null +++ b/.git_old/objects/37/b76aa9769e0a30b3b75121abb5376b20d71ce3 diff --git a/.git_old/objects/38/02b676fdca19867b4735da4644a56c44c4c33d b/.git_old/objects/38/02b676fdca19867b4735da4644a56c44c4c33d Binary files differnew file mode 100644 index 0000000..a408dc3 --- /dev/null +++ b/.git_old/objects/38/02b676fdca19867b4735da4644a56c44c4c33d diff --git a/.git_old/objects/38/4893bc4bcc8adf16d09a8d52e3e96d33bcd82f b/.git_old/objects/38/4893bc4bcc8adf16d09a8d52e3e96d33bcd82f Binary files differnew file mode 100644 index 0000000..200762f --- /dev/null +++ b/.git_old/objects/38/4893bc4bcc8adf16d09a8d52e3e96d33bcd82f diff --git a/.git_old/objects/38/9bbce0699828e85c6ceb0ca64dc5d5e00d8c45 b/.git_old/objects/38/9bbce0699828e85c6ceb0ca64dc5d5e00d8c45 Binary files differnew file mode 100644 index 0000000..c146d4e --- /dev/null +++ b/.git_old/objects/38/9bbce0699828e85c6ceb0ca64dc5d5e00d8c45 diff --git a/.git_old/objects/38/9dc0bc367ed98105a961a5be97220d3bf6c2bf b/.git_old/objects/38/9dc0bc367ed98105a961a5be97220d3bf6c2bf Binary files differnew file mode 100644 index 0000000..4063d1e --- /dev/null +++ b/.git_old/objects/38/9dc0bc367ed98105a961a5be97220d3bf6c2bf diff --git a/.git_old/objects/3a/530d1d35bcbaae52ead7fcf7ef190449de644f b/.git_old/objects/3a/530d1d35bcbaae52ead7fcf7ef190449de644f Binary files differnew file mode 100644 index 0000000..af97af9 --- /dev/null +++ b/.git_old/objects/3a/530d1d35bcbaae52ead7fcf7ef190449de644f diff --git a/.git_old/objects/3a/cd13dd22eb2d78ef29e314ce6e5df810b79d5c b/.git_old/objects/3a/cd13dd22eb2d78ef29e314ce6e5df810b79d5c Binary files differnew file mode 100644 index 0000000..90e8e70 --- /dev/null +++ b/.git_old/objects/3a/cd13dd22eb2d78ef29e314ce6e5df810b79d5c diff --git a/.git_old/objects/3a/db1a5b6b81d0865e0e3e92ab4518bd65debbb5 b/.git_old/objects/3a/db1a5b6b81d0865e0e3e92ab4518bd65debbb5 Binary files differnew file mode 100644 index 0000000..77b9b73 --- /dev/null +++ b/.git_old/objects/3a/db1a5b6b81d0865e0e3e92ab4518bd65debbb5 diff --git a/.git_old/objects/3b/54559b684f1b22c6b69177096225c3ec69230a b/.git_old/objects/3b/54559b684f1b22c6b69177096225c3ec69230a Binary files differnew file mode 100644 index 0000000..66c7287 --- /dev/null +++ b/.git_old/objects/3b/54559b684f1b22c6b69177096225c3ec69230a diff --git a/.git_old/objects/3b/628a8a3201a1cb1ad2efad2cda2ee8e6065d81 b/.git_old/objects/3b/628a8a3201a1cb1ad2efad2cda2ee8e6065d81 Binary files differnew file mode 100644 index 0000000..761b983 --- /dev/null +++ b/.git_old/objects/3b/628a8a3201a1cb1ad2efad2cda2ee8e6065d81 diff --git a/.git_old/objects/3b/cc94af78ca69df01a10b2ab9e7e470e6593ad4 b/.git_old/objects/3b/cc94af78ca69df01a10b2ab9e7e470e6593ad4 Binary files differnew file mode 100644 index 0000000..e0ba528 --- /dev/null +++ b/.git_old/objects/3b/cc94af78ca69df01a10b2ab9e7e470e6593ad4 diff --git a/.git_old/objects/3b/cfe893ea8f88be8fa1bc2680034c2d6ba69a67 b/.git_old/objects/3b/cfe893ea8f88be8fa1bc2680034c2d6ba69a67 Binary files differnew file mode 100644 index 0000000..6804561 --- /dev/null +++ b/.git_old/objects/3b/cfe893ea8f88be8fa1bc2680034c2d6ba69a67 diff --git a/.git_old/objects/3e/3495b8932c17c13dda8c7a27f56aee6ddf209c b/.git_old/objects/3e/3495b8932c17c13dda8c7a27f56aee6ddf209c Binary files differnew file mode 100644 index 0000000..0df7c78 --- /dev/null +++ b/.git_old/objects/3e/3495b8932c17c13dda8c7a27f56aee6ddf209c diff --git a/.git_old/objects/3e/40fdfcead6ac0356c9dcec50e9dcdb92d5676c b/.git_old/objects/3e/40fdfcead6ac0356c9dcec50e9dcdb92d5676c Binary files differnew file mode 100644 index 0000000..cf948f5 --- /dev/null +++ b/.git_old/objects/3e/40fdfcead6ac0356c9dcec50e9dcdb92d5676c diff --git a/.git_old/objects/3f/5118ee6ec11c3f3fbc939aaa2e66468f9cf9e2 b/.git_old/objects/3f/5118ee6ec11c3f3fbc939aaa2e66468f9cf9e2 Binary files differnew file mode 100644 index 0000000..9f3a1a8 --- /dev/null +++ b/.git_old/objects/3f/5118ee6ec11c3f3fbc939aaa2e66468f9cf9e2 diff --git a/.git_old/objects/3f/777eb3d2c418fc9456d7cc6ad14b7c6c1e6e86 b/.git_old/objects/3f/777eb3d2c418fc9456d7cc6ad14b7c6c1e6e86 new file mode 100644 index 0000000..13db299 --- /dev/null +++ b/.git_old/objects/3f/777eb3d2c418fc9456d7cc6ad14b7c6c1e6e86 @@ -0,0 +1,3 @@ +xNIj1Y!H#izdB䒫=`IFRZb+ee&dX]$L1$G*nSe0B8OnQƄ`dBP*4.u *_ms9 + +Qpb^v&zϾH[/yg[/4Z
\ No newline at end of file diff --git a/.git_old/objects/3f/f98a9f792668cdac3a6a5347671cc51b2d08d3 b/.git_old/objects/3f/f98a9f792668cdac3a6a5347671cc51b2d08d3 Binary files differnew file mode 100644 index 0000000..f423292 --- /dev/null +++ b/.git_old/objects/3f/f98a9f792668cdac3a6a5347671cc51b2d08d3 diff --git a/.git_old/objects/40/1e2b192d8c13a5a4bd75832051c8316c318927 b/.git_old/objects/40/1e2b192d8c13a5a4bd75832051c8316c318927 Binary files differnew file mode 100644 index 0000000..ddf2be0 --- /dev/null +++ b/.git_old/objects/40/1e2b192d8c13a5a4bd75832051c8316c318927 diff --git a/.git_old/objects/40/f8fd76162fe5473a8f47af3bce29cb1caf107e b/.git_old/objects/40/f8fd76162fe5473a8f47af3bce29cb1caf107e Binary files differnew file mode 100644 index 0000000..e7dac71 --- /dev/null +++ b/.git_old/objects/40/f8fd76162fe5473a8f47af3bce29cb1caf107e diff --git a/.git_old/objects/42/80446fa9b38fa34775f1efe239f8a871678f4d b/.git_old/objects/42/80446fa9b38fa34775f1efe239f8a871678f4d new file mode 100644 index 0000000..a4be3da --- /dev/null +++ b/.git_old/objects/42/80446fa9b38fa34775f1efe239f8a871678f4d @@ -0,0 +1 @@ +xRKO0b(m)UīP`ʢ@7m٘jԒ|PZK.VpHoZG66#|Cwz]6hGn
h[jjЙ"VlPn\ůCOdjwᾘe#Js㓸1UExF\5u*9Tr~&yFH5]%41MlP8ښ!y8FO2`A@/;:iצq!@;=v@e LA%Ȝcɜf(@STP]AS*9d!Bg EE)ůr\7y:}?O
\ No newline at end of file diff --git a/.git_old/objects/43/91e1ea300932d2edadfc2ddeb85720cbadf25d b/.git_old/objects/43/91e1ea300932d2edadfc2ddeb85720cbadf25d Binary files differnew file mode 100644 index 0000000..1f66872 --- /dev/null +++ b/.git_old/objects/43/91e1ea300932d2edadfc2ddeb85720cbadf25d diff --git a/.git_old/objects/43/ceff7eb219367d571b08b5ee05757f28d19f69 b/.git_old/objects/43/ceff7eb219367d571b08b5ee05757f28d19f69 Binary files differnew file mode 100644 index 0000000..a357cc0 --- /dev/null +++ b/.git_old/objects/43/ceff7eb219367d571b08b5ee05757f28d19f69 diff --git a/.git_old/objects/43/e728c028b09d47a708434df9a4624a546c1757 b/.git_old/objects/43/e728c028b09d47a708434df9a4624a546c1757 Binary files differnew file mode 100644 index 0000000..f935d2b --- /dev/null +++ b/.git_old/objects/43/e728c028b09d47a708434df9a4624a546c1757 diff --git a/.git_old/objects/46/12c7512924b002596d5e400c8f7013429445b0 b/.git_old/objects/46/12c7512924b002596d5e400c8f7013429445b0 Binary files differnew file mode 100644 index 0000000..9a9877f --- /dev/null +++ b/.git_old/objects/46/12c7512924b002596d5e400c8f7013429445b0 diff --git a/.git_old/objects/46/70c29bd0bbe739af135861423cc9b6aa4213c6 b/.git_old/objects/46/70c29bd0bbe739af135861423cc9b6aa4213c6 Binary files differnew file mode 100644 index 0000000..d64af8f --- /dev/null +++ b/.git_old/objects/46/70c29bd0bbe739af135861423cc9b6aa4213c6 diff --git a/.git_old/objects/47/cb55fab93aaf0e35b7c0f5ed6feb7980e378c9 b/.git_old/objects/47/cb55fab93aaf0e35b7c0f5ed6feb7980e378c9 Binary files differnew file mode 100644 index 0000000..d1726b2 --- /dev/null +++ b/.git_old/objects/47/cb55fab93aaf0e35b7c0f5ed6feb7980e378c9 diff --git a/.git_old/objects/47/ec2c9a6513accb718f9f2762a22cb60bdb9893 b/.git_old/objects/47/ec2c9a6513accb718f9f2762a22cb60bdb9893 Binary files differnew file mode 100644 index 0000000..bc89bff --- /dev/null +++ b/.git_old/objects/47/ec2c9a6513accb718f9f2762a22cb60bdb9893 diff --git a/.git_old/objects/48/2bc14821c49fcbe38a9c409a73d0f403ff88e6 b/.git_old/objects/48/2bc14821c49fcbe38a9c409a73d0f403ff88e6 Binary files differnew file mode 100644 index 0000000..70de33a --- /dev/null +++ b/.git_old/objects/48/2bc14821c49fcbe38a9c409a73d0f403ff88e6 diff --git a/.git_old/objects/48/512afb673b4d6c58d7b2e65ae033c5b92c4472 b/.git_old/objects/48/512afb673b4d6c58d7b2e65ae033c5b92c4472 Binary files differnew file mode 100644 index 0000000..f953391 --- /dev/null +++ b/.git_old/objects/48/512afb673b4d6c58d7b2e65ae033c5b92c4472 diff --git a/.git_old/objects/48/f3efa1f1db1b04e9d2f2a966051f9d7736f244 b/.git_old/objects/48/f3efa1f1db1b04e9d2f2a966051f9d7736f244 new file mode 100644 index 0000000..f6c4def --- /dev/null +++ b/.git_old/objects/48/f3efa1f1db1b04e9d2f2a966051f9d7736f244 @@ -0,0 +1,2 @@ +x]j0S{ JRr +=~VJ.k_
|ÄZJ /3H =IJ:$6 G 1NIf@:JZ*ʠqJGmEMF?*ubu!xZnjyV}Ipo?D+0:|#{&@<?;%~_c@@̕y`
\ No newline at end of file diff --git a/.git_old/objects/49/319a4ec2ab95c130ebec1a8e075b33cac9acc1 b/.git_old/objects/49/319a4ec2ab95c130ebec1a8e075b33cac9acc1 Binary files differnew file mode 100644 index 0000000..93340e8 --- /dev/null +++ b/.git_old/objects/49/319a4ec2ab95c130ebec1a8e075b33cac9acc1 diff --git a/.git_old/objects/49/fb3891ee38dc3a246c2e27480f1293c6c7c13e b/.git_old/objects/49/fb3891ee38dc3a246c2e27480f1293c6c7c13e Binary files differnew file mode 100644 index 0000000..0ac4586 --- /dev/null +++ b/.git_old/objects/49/fb3891ee38dc3a246c2e27480f1293c6c7c13e diff --git a/.git_old/objects/4a/3713f2756f369a8034a8f646311d5471741629 b/.git_old/objects/4a/3713f2756f369a8034a8f646311d5471741629 Binary files differnew file mode 100644 index 0000000..5a100e5 --- /dev/null +++ b/.git_old/objects/4a/3713f2756f369a8034a8f646311d5471741629 diff --git a/.git_old/objects/4a/678cc620a110cc0220eefd42763adb519523a8 b/.git_old/objects/4a/678cc620a110cc0220eefd42763adb519523a8 Binary files differnew file mode 100644 index 0000000..10f8054 --- /dev/null +++ b/.git_old/objects/4a/678cc620a110cc0220eefd42763adb519523a8 diff --git a/.git_old/objects/4a/fe783b2111e86ad3a2155b991b2c2135fa20a5 b/.git_old/objects/4a/fe783b2111e86ad3a2155b991b2c2135fa20a5 new file mode 100644 index 0000000..8c144d8 --- /dev/null +++ b/.git_old/objects/4a/fe783b2111e86ad3a2155b991b2c2135fa20a5 @@ -0,0 +1,2 @@ +x1 +@EcV"ls X!eg ^+Ԗ9@nf|Zإar'|Λ4 _ߛ(#g3*4#z1cSXa`0%f\PȀȀȀȀȀȀ~T7
\ No newline at end of file diff --git a/.git_old/objects/4c/9f52f7e79f1f149e8f229859c9229889543867 b/.git_old/objects/4c/9f52f7e79f1f149e8f229859c9229889543867 Binary files differnew file mode 100644 index 0000000..09bde76 --- /dev/null +++ b/.git_old/objects/4c/9f52f7e79f1f149e8f229859c9229889543867 diff --git a/.git_old/objects/4c/a28686c44976d6b6bbe31d454f1de552e8726c b/.git_old/objects/4c/a28686c44976d6b6bbe31d454f1de552e8726c Binary files differnew file mode 100644 index 0000000..3bab690 --- /dev/null +++ b/.git_old/objects/4c/a28686c44976d6b6bbe31d454f1de552e8726c diff --git a/.git_old/objects/4d/32e2862a4c2be59e0edcf369469d7ddca03178 b/.git_old/objects/4d/32e2862a4c2be59e0edcf369469d7ddca03178 Binary files differnew file mode 100644 index 0000000..d8aaa4d --- /dev/null +++ b/.git_old/objects/4d/32e2862a4c2be59e0edcf369469d7ddca03178 diff --git a/.git_old/objects/4d/4ea324ac90ce425a3256811f66cf2ab2f910d1 b/.git_old/objects/4d/4ea324ac90ce425a3256811f66cf2ab2f910d1 Binary files differnew file mode 100644 index 0000000..6305d46 --- /dev/null +++ b/.git_old/objects/4d/4ea324ac90ce425a3256811f66cf2ab2f910d1 diff --git a/.git_old/objects/51/19f5e782d0adb4e4227ac2cf8714163b0625b6 b/.git_old/objects/51/19f5e782d0adb4e4227ac2cf8714163b0625b6 Binary files differnew file mode 100644 index 0000000..89f602c --- /dev/null +++ b/.git_old/objects/51/19f5e782d0adb4e4227ac2cf8714163b0625b6 diff --git a/.git_old/objects/51/79d3df0dc4ce6d36eace443551a40dab35ff41 b/.git_old/objects/51/79d3df0dc4ce6d36eace443551a40dab35ff41 Binary files differnew file mode 100644 index 0000000..3824425 --- /dev/null +++ b/.git_old/objects/51/79d3df0dc4ce6d36eace443551a40dab35ff41 diff --git a/.git_old/objects/51/f6368b202486fe1d116ca74dfb8afbb17ea3e7 b/.git_old/objects/51/f6368b202486fe1d116ca74dfb8afbb17ea3e7 Binary files differnew file mode 100644 index 0000000..fe424da --- /dev/null +++ b/.git_old/objects/51/f6368b202486fe1d116ca74dfb8afbb17ea3e7 diff --git a/.git_old/objects/51/fe95eb5dc6bf72330c36968512f718841715a4 b/.git_old/objects/51/fe95eb5dc6bf72330c36968512f718841715a4 Binary files differnew file mode 100644 index 0000000..1c2bd71 --- /dev/null +++ b/.git_old/objects/51/fe95eb5dc6bf72330c36968512f718841715a4 diff --git a/.git_old/objects/52/028de0930de9c3aa47939474f27f89d5e81c84 b/.git_old/objects/52/028de0930de9c3aa47939474f27f89d5e81c84 Binary files differnew file mode 100644 index 0000000..445f282 --- /dev/null +++ b/.git_old/objects/52/028de0930de9c3aa47939474f27f89d5e81c84 diff --git a/.git_old/objects/52/73d6c6d94c63141d4f9963a630878716c3f05a b/.git_old/objects/52/73d6c6d94c63141d4f9963a630878716c3f05a Binary files differnew file mode 100644 index 0000000..1be9c64 --- /dev/null +++ b/.git_old/objects/52/73d6c6d94c63141d4f9963a630878716c3f05a diff --git a/.git_old/objects/52/7fe272d7047409f033b11cdba2aa3385515977 b/.git_old/objects/52/7fe272d7047409f033b11cdba2aa3385515977 Binary files differnew file mode 100644 index 0000000..8ebd33c --- /dev/null +++ b/.git_old/objects/52/7fe272d7047409f033b11cdba2aa3385515977 diff --git a/.git_old/objects/52/d541707af6e906743733579bbd05a2ac02f2b2 b/.git_old/objects/52/d541707af6e906743733579bbd05a2ac02f2b2 new file mode 100644 index 0000000..bfd82dd --- /dev/null +++ b/.git_old/objects/52/d541707af6e906743733579bbd05a2ac02f2b2 @@ -0,0 +1,3 @@ +xu;0DSs +=l@On?`"@"E|7҈?KݽmKʙvuC%ڬFKέ$Dž +dUMK3"Bux#@9VXj*qG1?O$i"QsIVICks>W
\ No newline at end of file diff --git a/.git_old/objects/54/3ddb1834ccb820f0cb3ca7f65e86954ad275a9 b/.git_old/objects/54/3ddb1834ccb820f0cb3ca7f65e86954ad275a9 Binary files differnew file mode 100644 index 0000000..fe8604e --- /dev/null +++ b/.git_old/objects/54/3ddb1834ccb820f0cb3ca7f65e86954ad275a9 diff --git a/.git_old/objects/55/f915374e4b42a5a9edb65631fe177453f5d25a b/.git_old/objects/55/f915374e4b42a5a9edb65631fe177453f5d25a Binary files differnew file mode 100644 index 0000000..d158bd6 --- /dev/null +++ b/.git_old/objects/55/f915374e4b42a5a9edb65631fe177453f5d25a diff --git a/.git_old/objects/56/30afa8dfe40b445f1a2c0e938c030000a50ec0 b/.git_old/objects/56/30afa8dfe40b445f1a2c0e938c030000a50ec0 Binary files differnew file mode 100644 index 0000000..e2bfabb --- /dev/null +++ b/.git_old/objects/56/30afa8dfe40b445f1a2c0e938c030000a50ec0 diff --git a/.git_old/objects/56/4aa81238eb37eba7d319f31ad9c0e6504da33b b/.git_old/objects/56/4aa81238eb37eba7d319f31ad9c0e6504da33b Binary files differnew file mode 100644 index 0000000..3427a40 --- /dev/null +++ b/.git_old/objects/56/4aa81238eb37eba7d319f31ad9c0e6504da33b diff --git a/.git_old/objects/56/53fd74a48a9db3dd65d6b6f7ed39d2a6dc3888 b/.git_old/objects/56/53fd74a48a9db3dd65d6b6f7ed39d2a6dc3888 Binary files differnew file mode 100644 index 0000000..3ab7df8 --- /dev/null +++ b/.git_old/objects/56/53fd74a48a9db3dd65d6b6f7ed39d2a6dc3888 diff --git a/.git_old/objects/56/7d90cc85a313b1125333af3b34d12ef4f1d28e b/.git_old/objects/56/7d90cc85a313b1125333af3b34d12ef4f1d28e new file mode 100644 index 0000000..bd27124 --- /dev/null +++ b/.git_old/objects/56/7d90cc85a313b1125333af3b34d12ef4f1d28e @@ -0,0 +1 @@ +x+)JMU01b040031QI,.M*IKc{bNg)m
\ No newline at end of file diff --git a/.git_old/objects/56/a6051ca2b02b04ef92d5150c9ef600403cb1de b/.git_old/objects/56/a6051ca2b02b04ef92d5150c9ef600403cb1de Binary files differnew file mode 100644 index 0000000..b17dfe3 --- /dev/null +++ b/.git_old/objects/56/a6051ca2b02b04ef92d5150c9ef600403cb1de diff --git a/.git_old/objects/58/01ce82e80501087cfe2b724bb3866c0321aac1 b/.git_old/objects/58/01ce82e80501087cfe2b724bb3866c0321aac1 Binary files differnew file mode 100644 index 0000000..8c7c431 --- /dev/null +++ b/.git_old/objects/58/01ce82e80501087cfe2b724bb3866c0321aac1 diff --git a/.git_old/objects/58/933eb406a099d615e390069aabef79c9cffdaa b/.git_old/objects/58/933eb406a099d615e390069aabef79c9cffdaa Binary files differnew file mode 100644 index 0000000..aaf6ca6 --- /dev/null +++ b/.git_old/objects/58/933eb406a099d615e390069aabef79c9cffdaa diff --git a/.git_old/objects/58/e47f69d8286ca0e899424d075d11ec82682af6 b/.git_old/objects/58/e47f69d8286ca0e899424d075d11ec82682af6 Binary files differnew file mode 100644 index 0000000..1bb165b --- /dev/null +++ b/.git_old/objects/58/e47f69d8286ca0e899424d075d11ec82682af6 diff --git a/.git_old/objects/58/fe02d3dfef09366e54ae53c956dc98e2db1ea8 b/.git_old/objects/58/fe02d3dfef09366e54ae53c956dc98e2db1ea8 Binary files differnew file mode 100644 index 0000000..21b07eb --- /dev/null +++ b/.git_old/objects/58/fe02d3dfef09366e54ae53c956dc98e2db1ea8 diff --git a/.git_old/objects/5b/f5d80f562cfb5b407c298d416d247d9ee88236 b/.git_old/objects/5b/f5d80f562cfb5b407c298d416d247d9ee88236 Binary files differnew file mode 100644 index 0000000..e3f83c7 --- /dev/null +++ b/.git_old/objects/5b/f5d80f562cfb5b407c298d416d247d9ee88236 diff --git a/.git_old/objects/5c/87136e19a0d6fd468c4b045d79aae2a2e1ef50 b/.git_old/objects/5c/87136e19a0d6fd468c4b045d79aae2a2e1ef50 Binary files differnew file mode 100644 index 0000000..e1f65c8 --- /dev/null +++ b/.git_old/objects/5c/87136e19a0d6fd468c4b045d79aae2a2e1ef50 diff --git a/.git_old/objects/5c/88b2b7c00aab316739fce59ac8044459165750 b/.git_old/objects/5c/88b2b7c00aab316739fce59ac8044459165750 Binary files differnew file mode 100644 index 0000000..cbcaea0 --- /dev/null +++ b/.git_old/objects/5c/88b2b7c00aab316739fce59ac8044459165750 diff --git a/.git_old/objects/5c/8ca6b875398cb04d0293ad9d21433a06f32ab9 b/.git_old/objects/5c/8ca6b875398cb04d0293ad9d21433a06f32ab9 Binary files differnew file mode 100644 index 0000000..49a07ed --- /dev/null +++ b/.git_old/objects/5c/8ca6b875398cb04d0293ad9d21433a06f32ab9 diff --git a/.git_old/objects/5c/a8621afdaee76cae8fc805c04dcafa91fb792d b/.git_old/objects/5c/a8621afdaee76cae8fc805c04dcafa91fb792d Binary files differnew file mode 100644 index 0000000..0be1e90 --- /dev/null +++ b/.git_old/objects/5c/a8621afdaee76cae8fc805c04dcafa91fb792d diff --git a/.git_old/objects/5c/ba644a7cea3589a35725a08ea548da2390bcac b/.git_old/objects/5c/ba644a7cea3589a35725a08ea548da2390bcac Binary files differnew file mode 100644 index 0000000..13825f5 --- /dev/null +++ b/.git_old/objects/5c/ba644a7cea3589a35725a08ea548da2390bcac diff --git a/.git_old/objects/5f/6c87b4ec18b5fc57bafdc8a799803bfd84ff19 b/.git_old/objects/5f/6c87b4ec18b5fc57bafdc8a799803bfd84ff19 Binary files differnew file mode 100644 index 0000000..537fad7 --- /dev/null +++ b/.git_old/objects/5f/6c87b4ec18b5fc57bafdc8a799803bfd84ff19 diff --git a/.git_old/objects/5f/8640bca290e7708d80fb5fa8b52c2e69cc3d7b b/.git_old/objects/5f/8640bca290e7708d80fb5fa8b52c2e69cc3d7b new file mode 100644 index 0000000..00c29a0 --- /dev/null +++ b/.git_old/objects/5f/8640bca290e7708d80fb5fa8b52c2e69cc3d7b @@ -0,0 +1,3 @@ +xMk0w(>/uc`уiY +ȯWVLf9}^C e*v+g} GBVuüi"
(im .J6;qՆO:\+K+87i,&±t5h;#OpeP@J^oyE)2Zd2 O7"ł +i$VpQ0%6To٫FOSyn۱~#(7S3lTNoR:eP`/R:'˧+uQ߯N?T/
\ No newline at end of file diff --git a/.git_old/objects/5f/870cac1e2a9a47f42f5b2d8323f65ca1d69bd8 b/.git_old/objects/5f/870cac1e2a9a47f42f5b2d8323f65ca1d69bd8 Binary files differnew file mode 100644 index 0000000..41838ac --- /dev/null +++ b/.git_old/objects/5f/870cac1e2a9a47f42f5b2d8323f65ca1d69bd8 diff --git a/.git_old/objects/5f/a5de460698f1bb961a3d16e15b6cbc381d4dac b/.git_old/objects/5f/a5de460698f1bb961a3d16e15b6cbc381d4dac Binary files differnew file mode 100644 index 0000000..13ebe9e --- /dev/null +++ b/.git_old/objects/5f/a5de460698f1bb961a3d16e15b6cbc381d4dac diff --git a/.git_old/objects/5f/a6ce90c91d3d8210ddf61127a724422e39bf7f b/.git_old/objects/5f/a6ce90c91d3d8210ddf61127a724422e39bf7f Binary files differnew file mode 100644 index 0000000..8d10e72 --- /dev/null +++ b/.git_old/objects/5f/a6ce90c91d3d8210ddf61127a724422e39bf7f diff --git a/.git_old/objects/60/1f245f575611e9ee7dd20b1adfb34054ece53a b/.git_old/objects/60/1f245f575611e9ee7dd20b1adfb34054ece53a Binary files differnew file mode 100644 index 0000000..ae2da92 --- /dev/null +++ b/.git_old/objects/60/1f245f575611e9ee7dd20b1adfb34054ece53a diff --git a/.git_old/objects/60/20b54fa3de86638f3177e9bad11df5d0232ff4 b/.git_old/objects/60/20b54fa3de86638f3177e9bad11df5d0232ff4 Binary files differnew file mode 100644 index 0000000..e1abaff --- /dev/null +++ b/.git_old/objects/60/20b54fa3de86638f3177e9bad11df5d0232ff4 diff --git a/.git_old/objects/60/5659c461090611fc6f3a7c828210b023010b7a b/.git_old/objects/60/5659c461090611fc6f3a7c828210b023010b7a Binary files differnew file mode 100644 index 0000000..9db9958 --- /dev/null +++ b/.git_old/objects/60/5659c461090611fc6f3a7c828210b023010b7a diff --git a/.git_old/objects/60/e01288e117fe780c526287ad0703b525479e16 b/.git_old/objects/60/e01288e117fe780c526287ad0703b525479e16 Binary files differnew file mode 100644 index 0000000..513214b --- /dev/null +++ b/.git_old/objects/60/e01288e117fe780c526287ad0703b525479e16 diff --git a/.git_old/objects/61/200d4b60c0dd15e6df7aed6d4bdf9d2626cdda b/.git_old/objects/61/200d4b60c0dd15e6df7aed6d4bdf9d2626cdda Binary files differnew file mode 100644 index 0000000..5434ee5 --- /dev/null +++ b/.git_old/objects/61/200d4b60c0dd15e6df7aed6d4bdf9d2626cdda diff --git a/.git_old/objects/61/2bba15aa8b80e76101d0c031c93c737a88d786 b/.git_old/objects/61/2bba15aa8b80e76101d0c031c93c737a88d786 Binary files differnew file mode 100644 index 0000000..f96b859 --- /dev/null +++ b/.git_old/objects/61/2bba15aa8b80e76101d0c031c93c737a88d786 diff --git a/.git_old/objects/61/411b8cb37b99272f13aa8079ec46e13c421c67 b/.git_old/objects/61/411b8cb37b99272f13aa8079ec46e13c421c67 Binary files differnew file mode 100644 index 0000000..e2842b3 --- /dev/null +++ b/.git_old/objects/61/411b8cb37b99272f13aa8079ec46e13c421c67 diff --git a/.git_old/objects/61/9a8cce87975cd599188c443e9f5add3a3490be b/.git_old/objects/61/9a8cce87975cd599188c443e9f5add3a3490be Binary files differnew file mode 100644 index 0000000..c078de8 --- /dev/null +++ b/.git_old/objects/61/9a8cce87975cd599188c443e9f5add3a3490be diff --git a/.git_old/objects/61/b4ace8a9797ca63350d67dbb6dc81230080727 b/.git_old/objects/61/b4ace8a9797ca63350d67dbb6dc81230080727 Binary files differnew file mode 100644 index 0000000..2f55433 --- /dev/null +++ b/.git_old/objects/61/b4ace8a9797ca63350d67dbb6dc81230080727 diff --git a/.git_old/objects/61/b6c81b2f2b29eea03f9516089eb864df189546 b/.git_old/objects/61/b6c81b2f2b29eea03f9516089eb864df189546 Binary files differnew file mode 100644 index 0000000..34b53c5 --- /dev/null +++ b/.git_old/objects/61/b6c81b2f2b29eea03f9516089eb864df189546 diff --git a/.git_old/objects/61/bfedba98ba079a49741cb5ab50e6712207272b b/.git_old/objects/61/bfedba98ba079a49741cb5ab50e6712207272b Binary files differnew file mode 100644 index 0000000..7510a95 --- /dev/null +++ b/.git_old/objects/61/bfedba98ba079a49741cb5ab50e6712207272b diff --git a/.git_old/objects/61/c5ef1f397d45822972d6c88290c7bff49e3bb3 b/.git_old/objects/61/c5ef1f397d45822972d6c88290c7bff49e3bb3 Binary files differnew file mode 100644 index 0000000..b25cb89 --- /dev/null +++ b/.git_old/objects/61/c5ef1f397d45822972d6c88290c7bff49e3bb3 diff --git a/.git_old/objects/62/2c257cfcb1539ce183dd5205e2578ac1ab45d3 b/.git_old/objects/62/2c257cfcb1539ce183dd5205e2578ac1ab45d3 Binary files differnew file mode 100644 index 0000000..bf90d30 --- /dev/null +++ b/.git_old/objects/62/2c257cfcb1539ce183dd5205e2578ac1ab45d3 diff --git a/.git_old/objects/65/60cfd1a71cd88f2874ce4637320d31d70c7265 b/.git_old/objects/65/60cfd1a71cd88f2874ce4637320d31d70c7265 Binary files differnew file mode 100644 index 0000000..4d62eb3 --- /dev/null +++ b/.git_old/objects/65/60cfd1a71cd88f2874ce4637320d31d70c7265 diff --git a/.git_old/objects/65/7329c10b527d3142fc1e922c23e5ec4c98d219 b/.git_old/objects/65/7329c10b527d3142fc1e922c23e5ec4c98d219 Binary files differnew file mode 100644 index 0000000..f37650c --- /dev/null +++ b/.git_old/objects/65/7329c10b527d3142fc1e922c23e5ec4c98d219 diff --git a/.git_old/objects/65/b0c4c87a55be4def76c7f08fddf1afa71bfb14 b/.git_old/objects/65/b0c4c87a55be4def76c7f08fddf1afa71bfb14 Binary files differnew file mode 100644 index 0000000..3bea620 --- /dev/null +++ b/.git_old/objects/65/b0c4c87a55be4def76c7f08fddf1afa71bfb14 diff --git a/.git_old/objects/66/0fc01c83dffd65cc411e0469aa774f0f71b743 b/.git_old/objects/66/0fc01c83dffd65cc411e0469aa774f0f71b743 Binary files differnew file mode 100644 index 0000000..0d01f5d --- /dev/null +++ b/.git_old/objects/66/0fc01c83dffd65cc411e0469aa774f0f71b743 diff --git a/.git_old/objects/66/be14e957ae4ede1e48267d9761436364a1bc7b b/.git_old/objects/66/be14e957ae4ede1e48267d9761436364a1bc7b Binary files differnew file mode 100644 index 0000000..4731fbc --- /dev/null +++ b/.git_old/objects/66/be14e957ae4ede1e48267d9761436364a1bc7b diff --git a/.git_old/objects/66/c145675ce0fd65e968e7656bf7f182fb5f6ee3 b/.git_old/objects/66/c145675ce0fd65e968e7656bf7f182fb5f6ee3 Binary files differnew file mode 100644 index 0000000..e116445 --- /dev/null +++ b/.git_old/objects/66/c145675ce0fd65e968e7656bf7f182fb5f6ee3 diff --git a/.git_old/objects/66/e46e475ee71acdd01bc03fa54f9947dce76e92 b/.git_old/objects/66/e46e475ee71acdd01bc03fa54f9947dce76e92 Binary files differnew file mode 100644 index 0000000..86d9f46 --- /dev/null +++ b/.git_old/objects/66/e46e475ee71acdd01bc03fa54f9947dce76e92 diff --git a/.git_old/objects/6a/294aa5b14ac464848e0bfb5de63659bfa3bedc b/.git_old/objects/6a/294aa5b14ac464848e0bfb5de63659bfa3bedc Binary files differnew file mode 100644 index 0000000..b85ed18 --- /dev/null +++ b/.git_old/objects/6a/294aa5b14ac464848e0bfb5de63659bfa3bedc diff --git a/.git_old/objects/6b/356e80bc5f998979c357a42d0247138f9e033c b/.git_old/objects/6b/356e80bc5f998979c357a42d0247138f9e033c Binary files differnew file mode 100644 index 0000000..cf745f4 --- /dev/null +++ b/.git_old/objects/6b/356e80bc5f998979c357a42d0247138f9e033c diff --git a/.git_old/objects/6c/06015c5e937a3be4aeb03557ea1aa51c355d3c b/.git_old/objects/6c/06015c5e937a3be4aeb03557ea1aa51c355d3c Binary files differnew file mode 100644 index 0000000..be95b51 --- /dev/null +++ b/.git_old/objects/6c/06015c5e937a3be4aeb03557ea1aa51c355d3c diff --git a/.git_old/objects/6c/27a278414b92d504acd67400841ff279964633 b/.git_old/objects/6c/27a278414b92d504acd67400841ff279964633 Binary files differnew file mode 100644 index 0000000..f136ea5 --- /dev/null +++ b/.git_old/objects/6c/27a278414b92d504acd67400841ff279964633 diff --git a/.git_old/objects/6c/c922fad4c2f466c09574cfc699f9d2b425c52d b/.git_old/objects/6c/c922fad4c2f466c09574cfc699f9d2b425c52d Binary files differnew file mode 100644 index 0000000..5882da2 --- /dev/null +++ b/.git_old/objects/6c/c922fad4c2f466c09574cfc699f9d2b425c52d diff --git a/.git_old/objects/6c/cda32b27a329d4e9295d60a03f179b6272fb68 b/.git_old/objects/6c/cda32b27a329d4e9295d60a03f179b6272fb68 Binary files differnew file mode 100644 index 0000000..2a667d1 --- /dev/null +++ b/.git_old/objects/6c/cda32b27a329d4e9295d60a03f179b6272fb68 diff --git a/.git_old/objects/6c/d89abcf7133c3ceea2dc72d3aa46660d94e475 b/.git_old/objects/6c/d89abcf7133c3ceea2dc72d3aa46660d94e475 Binary files differnew file mode 100644 index 0000000..b408dbc --- /dev/null +++ b/.git_old/objects/6c/d89abcf7133c3ceea2dc72d3aa46660d94e475 diff --git a/.git_old/objects/6e/044869b795fd67b1f534170ab253b0d1949483 b/.git_old/objects/6e/044869b795fd67b1f534170ab253b0d1949483 Binary files differnew file mode 100644 index 0000000..8e2cdcb --- /dev/null +++ b/.git_old/objects/6e/044869b795fd67b1f534170ab253b0d1949483 diff --git a/.git_old/objects/70/73ca2fad3a7b904cd164d01632d0f3cb370998 b/.git_old/objects/70/73ca2fad3a7b904cd164d01632d0f3cb370998 Binary files differnew file mode 100644 index 0000000..84a9ed8 --- /dev/null +++ b/.git_old/objects/70/73ca2fad3a7b904cd164d01632d0f3cb370998 diff --git a/.git_old/objects/71/57cf88240c726efea7b2be3245a96e4b763b86 b/.git_old/objects/71/57cf88240c726efea7b2be3245a96e4b763b86 Binary files differnew file mode 100644 index 0000000..17f2768 --- /dev/null +++ b/.git_old/objects/71/57cf88240c726efea7b2be3245a96e4b763b86 diff --git a/.git_old/objects/71/5dc99cbe145ccc7a11dadcd6dd67796ad73863 b/.git_old/objects/71/5dc99cbe145ccc7a11dadcd6dd67796ad73863 Binary files differnew file mode 100644 index 0000000..f5af1fb --- /dev/null +++ b/.git_old/objects/71/5dc99cbe145ccc7a11dadcd6dd67796ad73863 diff --git a/.git_old/objects/73/12d422d9041df3022dfc9a8828de730e5dba16 b/.git_old/objects/73/12d422d9041df3022dfc9a8828de730e5dba16 Binary files differnew file mode 100644 index 0000000..dd40976 --- /dev/null +++ b/.git_old/objects/73/12d422d9041df3022dfc9a8828de730e5dba16 diff --git a/.git_old/objects/73/25a93c61c6844228d6f800e7d061b0d8f8acfb b/.git_old/objects/73/25a93c61c6844228d6f800e7d061b0d8f8acfb new file mode 100644 index 0000000..06da8cb --- /dev/null +++ b/.git_old/objects/73/25a93c61c6844228d6f800e7d061b0d8f8acfb @@ -0,0 +1 @@ +xu1k0%)A(j:rC).K(2gYuL$Ȳɘ?Vwq29/(M7[nP{I`h3j#h-̻SB<Y{P}ϋ7:/訕;uT*ʈCBflYYn3:D-N
&x58yH`iJ6 %#@u-^_I
\ No newline at end of file diff --git a/.git_old/objects/73/444bacdc7aa2cf1c4d4a1c2a89aa65b6d07711 b/.git_old/objects/73/444bacdc7aa2cf1c4d4a1c2a89aa65b6d07711 Binary files differnew file mode 100644 index 0000000..198264e --- /dev/null +++ b/.git_old/objects/73/444bacdc7aa2cf1c4d4a1c2a89aa65b6d07711 diff --git a/.git_old/objects/73/b1f96adf2f1145995093a0ebb925b6bd71edcb b/.git_old/objects/73/b1f96adf2f1145995093a0ebb925b6bd71edcb Binary files differnew file mode 100644 index 0000000..a23fbf0 --- /dev/null +++ b/.git_old/objects/73/b1f96adf2f1145995093a0ebb925b6bd71edcb diff --git a/.git_old/objects/73/e663cd2f206640e05c225ebcceea0b03d416d5 b/.git_old/objects/73/e663cd2f206640e05c225ebcceea0b03d416d5 Binary files differnew file mode 100644 index 0000000..05c1626 --- /dev/null +++ b/.git_old/objects/73/e663cd2f206640e05c225ebcceea0b03d416d5 diff --git a/.git_old/objects/74/6fe32f5f63386aa5800c1135ea50b2400713fa b/.git_old/objects/74/6fe32f5f63386aa5800c1135ea50b2400713fa Binary files differnew file mode 100644 index 0000000..401ea2d --- /dev/null +++ b/.git_old/objects/74/6fe32f5f63386aa5800c1135ea50b2400713fa diff --git a/.git_old/objects/75/1de6970611dd71c1c28a0daf1cd7c6a08c2599 b/.git_old/objects/75/1de6970611dd71c1c28a0daf1cd7c6a08c2599 Binary files differnew file mode 100644 index 0000000..b7fc330 --- /dev/null +++ b/.git_old/objects/75/1de6970611dd71c1c28a0daf1cd7c6a08c2599 diff --git a/.git_old/objects/76/1fe3bf2e32e0ebebf6124af005dfeadd19d974 b/.git_old/objects/76/1fe3bf2e32e0ebebf6124af005dfeadd19d974 Binary files differnew file mode 100644 index 0000000..7a8ab50 --- /dev/null +++ b/.git_old/objects/76/1fe3bf2e32e0ebebf6124af005dfeadd19d974 diff --git a/.git_old/objects/76/e2362709f5a9491378627014fed63642b394aa b/.git_old/objects/76/e2362709f5a9491378627014fed63642b394aa Binary files differnew file mode 100644 index 0000000..3b753b0 --- /dev/null +++ b/.git_old/objects/76/e2362709f5a9491378627014fed63642b394aa diff --git a/.git_old/objects/77/f73335ef694719019ecb3f58b8400dea8cb2de b/.git_old/objects/77/f73335ef694719019ecb3f58b8400dea8cb2de Binary files differnew file mode 100644 index 0000000..489adcd --- /dev/null +++ b/.git_old/objects/77/f73335ef694719019ecb3f58b8400dea8cb2de diff --git a/.git_old/objects/78/05f93896bf5d6a147c409cfa1d4360d2fc8abf b/.git_old/objects/78/05f93896bf5d6a147c409cfa1d4360d2fc8abf Binary files differnew file mode 100644 index 0000000..5f85f2a --- /dev/null +++ b/.git_old/objects/78/05f93896bf5d6a147c409cfa1d4360d2fc8abf diff --git a/.git_old/objects/78/0703e21d892cb53dbbc72ff4a662f776ca550e b/.git_old/objects/78/0703e21d892cb53dbbc72ff4a662f776ca550e new file mode 100644 index 0000000..904780b --- /dev/null +++ b/.git_old/objects/78/0703e21d892cb53dbbc72ff4a662f776ca550e @@ -0,0 +1,3 @@ +xMk {_xna{mP1]ԄB^MHv-[d|}yǩw_mL~>ޢ21L? +`yK47p5$+ddH镀?BK۱h!kO~x˅RN]]ʠU!S,TK%3
j;Ćjhq*sD +9ϭ9?3:FOUJ~
(LM(LYVۜ=ԵrX'9}
\ No newline at end of file diff --git a/.git_old/objects/78/584dc0b516ac50008089969cec0763b162deac b/.git_old/objects/78/584dc0b516ac50008089969cec0763b162deac Binary files differnew file mode 100644 index 0000000..013bce0 --- /dev/null +++ b/.git_old/objects/78/584dc0b516ac50008089969cec0763b162deac diff --git a/.git_old/objects/79/8082ed849bf17f8d2fd4a7ac6119364113356b b/.git_old/objects/79/8082ed849bf17f8d2fd4a7ac6119364113356b Binary files differnew file mode 100644 index 0000000..585ec17 --- /dev/null +++ b/.git_old/objects/79/8082ed849bf17f8d2fd4a7ac6119364113356b diff --git a/.git_old/objects/7a/047ac53d280cdc1a864831c689dc93b13a6619 b/.git_old/objects/7a/047ac53d280cdc1a864831c689dc93b13a6619 Binary files differnew file mode 100644 index 0000000..722340a --- /dev/null +++ b/.git_old/objects/7a/047ac53d280cdc1a864831c689dc93b13a6619 diff --git a/.git_old/objects/7a/07a6cdda5ad1f19f48982d6cab8f31a0f2c578 b/.git_old/objects/7a/07a6cdda5ad1f19f48982d6cab8f31a0f2c578 Binary files differnew file mode 100644 index 0000000..e3d226e --- /dev/null +++ b/.git_old/objects/7a/07a6cdda5ad1f19f48982d6cab8f31a0f2c578 diff --git a/.git_old/objects/7a/297b8c6781f7ddcf936c5ec360b4ed7c611fb2 b/.git_old/objects/7a/297b8c6781f7ddcf936c5ec360b4ed7c611fb2 Binary files differnew file mode 100644 index 0000000..37486f1 --- /dev/null +++ b/.git_old/objects/7a/297b8c6781f7ddcf936c5ec360b4ed7c611fb2 diff --git a/.git_old/objects/7a/3b405335aee913885f4ebab4677add598bcd57 b/.git_old/objects/7a/3b405335aee913885f4ebab4677add598bcd57 Binary files differnew file mode 100644 index 0000000..3168338 --- /dev/null +++ b/.git_old/objects/7a/3b405335aee913885f4ebab4677add598bcd57 diff --git a/.git_old/objects/7a/a3d6ee1a054c74b2edad32a13007cacfcb2c3f b/.git_old/objects/7a/a3d6ee1a054c74b2edad32a13007cacfcb2c3f Binary files differnew file mode 100644 index 0000000..12580f2 --- /dev/null +++ b/.git_old/objects/7a/a3d6ee1a054c74b2edad32a13007cacfcb2c3f diff --git a/.git_old/objects/7e/6734eaa7292439f01a4e751437f9c01b4f0eb0 b/.git_old/objects/7e/6734eaa7292439f01a4e751437f9c01b4f0eb0 Binary files differnew file mode 100644 index 0000000..314a476 --- /dev/null +++ b/.git_old/objects/7e/6734eaa7292439f01a4e751437f9c01b4f0eb0 diff --git a/.git_old/objects/7e/7bcdd1e44510e3fa2a9a54c71c341cac95112b b/.git_old/objects/7e/7bcdd1e44510e3fa2a9a54c71c341cac95112b Binary files differnew file mode 100644 index 0000000..d6a1b96 --- /dev/null +++ b/.git_old/objects/7e/7bcdd1e44510e3fa2a9a54c71c341cac95112b diff --git a/.git_old/objects/7e/98a11fa5ce9ede7efedf43602c9fd6762d3463 b/.git_old/objects/7e/98a11fa5ce9ede7efedf43602c9fd6762d3463 Binary files differnew file mode 100644 index 0000000..c920fde --- /dev/null +++ b/.git_old/objects/7e/98a11fa5ce9ede7efedf43602c9fd6762d3463 diff --git a/.git_old/objects/7e/eb78dcd4183fea19c8640344644e594ada6802 b/.git_old/objects/7e/eb78dcd4183fea19c8640344644e594ada6802 Binary files differnew file mode 100644 index 0000000..7bac971 --- /dev/null +++ b/.git_old/objects/7e/eb78dcd4183fea19c8640344644e594ada6802 diff --git a/.git_old/objects/7f/4948e94fe3204c58017edd0eaf02b0ddb03e09 b/.git_old/objects/7f/4948e94fe3204c58017edd0eaf02b0ddb03e09 Binary files differnew file mode 100644 index 0000000..f71379a --- /dev/null +++ b/.git_old/objects/7f/4948e94fe3204c58017edd0eaf02b0ddb03e09 diff --git a/.git_old/objects/7f/8e91139cc59c1e37b1fc4a7ef39c620e9370f7 b/.git_old/objects/7f/8e91139cc59c1e37b1fc4a7ef39c620e9370f7 Binary files differnew file mode 100644 index 0000000..7f25567 --- /dev/null +++ b/.git_old/objects/7f/8e91139cc59c1e37b1fc4a7ef39c620e9370f7 diff --git a/.git_old/objects/7f/9ba6e71bed9c4e4f125b397f09442aac11f17b b/.git_old/objects/7f/9ba6e71bed9c4e4f125b397f09442aac11f17b Binary files differnew file mode 100644 index 0000000..e73a38a --- /dev/null +++ b/.git_old/objects/7f/9ba6e71bed9c4e4f125b397f09442aac11f17b diff --git a/.git_old/objects/7f/c0b18d3f69a328cc44f6254ecf41674da624a1 b/.git_old/objects/7f/c0b18d3f69a328cc44f6254ecf41674da624a1 Binary files differnew file mode 100644 index 0000000..4017330 --- /dev/null +++ b/.git_old/objects/7f/c0b18d3f69a328cc44f6254ecf41674da624a1 diff --git a/.git_old/objects/7f/d46b98a0ae2f82cbeb4163e20b6c0c32674c31 b/.git_old/objects/7f/d46b98a0ae2f82cbeb4163e20b6c0c32674c31 Binary files differnew file mode 100644 index 0000000..76df068 --- /dev/null +++ b/.git_old/objects/7f/d46b98a0ae2f82cbeb4163e20b6c0c32674c31 diff --git a/.git_old/objects/80/01553a495cb860f9f55064d13973d58af8ca5f b/.git_old/objects/80/01553a495cb860f9f55064d13973d58af8ca5f Binary files differnew file mode 100644 index 0000000..7ae3137 --- /dev/null +++ b/.git_old/objects/80/01553a495cb860f9f55064d13973d58af8ca5f diff --git a/.git_old/objects/80/1e2f3aa7dee907dc64c5b7e92113d878ad021f b/.git_old/objects/80/1e2f3aa7dee907dc64c5b7e92113d878ad021f new file mode 100644 index 0000000..9319846 --- /dev/null +++ b/.git_old/objects/80/1e2f3aa7dee907dc64c5b7e92113d878ad021f @@ -0,0 +1 @@ +xJ0ST4" z+vk9[00|u-:nDnoJ8MRe㜬c4~BhcPL6&V{'QIG OjN!+^jbju#x.''>|a]@y?3jVv?<~-poJZvn%\6^<I/\
\ No newline at end of file diff --git a/.git_old/objects/80/4a41ea8ddb8377af675ab1aa534abaa808003a b/.git_old/objects/80/4a41ea8ddb8377af675ab1aa534abaa808003a Binary files differnew file mode 100644 index 0000000..abda165 --- /dev/null +++ b/.git_old/objects/80/4a41ea8ddb8377af675ab1aa534abaa808003a diff --git a/.git_old/objects/80/6ddd77f31a3076590a91ea180ad655f8041c09 b/.git_old/objects/80/6ddd77f31a3076590a91ea180ad655f8041c09 Binary files differnew file mode 100644 index 0000000..e5a2703 --- /dev/null +++ b/.git_old/objects/80/6ddd77f31a3076590a91ea180ad655f8041c09 diff --git a/.git_old/objects/80/813e4dc9628def746a65400ea9fa390501dcf1 b/.git_old/objects/80/813e4dc9628def746a65400ea9fa390501dcf1 Binary files differnew file mode 100644 index 0000000..98ba503 --- /dev/null +++ b/.git_old/objects/80/813e4dc9628def746a65400ea9fa390501dcf1 diff --git a/.git_old/objects/81/2d25b93306ed73a2f809585631f30afc348194 b/.git_old/objects/81/2d25b93306ed73a2f809585631f30afc348194 Binary files differnew file mode 100644 index 0000000..b87b4f5 --- /dev/null +++ b/.git_old/objects/81/2d25b93306ed73a2f809585631f30afc348194 diff --git a/.git_old/objects/81/f1e7a74931b01356d0216fbec8da9bb506c83d b/.git_old/objects/81/f1e7a74931b01356d0216fbec8da9bb506c83d Binary files differnew file mode 100644 index 0000000..b67e3f5 --- /dev/null +++ b/.git_old/objects/81/f1e7a74931b01356d0216fbec8da9bb506c83d diff --git a/.git_old/objects/82/76662669048d980280f2de19d4d1395c670622 b/.git_old/objects/82/76662669048d980280f2de19d4d1395c670622 Binary files differnew file mode 100644 index 0000000..81c5d38 --- /dev/null +++ b/.git_old/objects/82/76662669048d980280f2de19d4d1395c670622 diff --git a/.git_old/objects/82/8d6187bbba3ed4d015bd4cbfa2da9d9351456a b/.git_old/objects/82/8d6187bbba3ed4d015bd4cbfa2da9d9351456a Binary files differnew file mode 100644 index 0000000..a7f23e4 --- /dev/null +++ b/.git_old/objects/82/8d6187bbba3ed4d015bd4cbfa2da9d9351456a diff --git a/.git_old/objects/83/3b095873b42062c5ebbbc376dc392f88185b91 b/.git_old/objects/83/3b095873b42062c5ebbbc376dc392f88185b91 Binary files differnew file mode 100644 index 0000000..8e1651d --- /dev/null +++ b/.git_old/objects/83/3b095873b42062c5ebbbc376dc392f88185b91 diff --git a/.git_old/objects/83/53e96910ef6a58c61ad65c4e742c583a1241b9 b/.git_old/objects/83/53e96910ef6a58c61ad65c4e742c583a1241b9 Binary files differnew file mode 100644 index 0000000..26f1689 --- /dev/null +++ b/.git_old/objects/83/53e96910ef6a58c61ad65c4e742c583a1241b9 diff --git a/.git_old/objects/83/f5c4f5e51cbb37cb4cbb7817d3df8709315348 b/.git_old/objects/83/f5c4f5e51cbb37cb4cbb7817d3df8709315348 Binary files differnew file mode 100644 index 0000000..6b3bf6e --- /dev/null +++ b/.git_old/objects/83/f5c4f5e51cbb37cb4cbb7817d3df8709315348 diff --git a/.git_old/objects/84/3746fc17bcae9beb08c677a875197f3f3b77f7 b/.git_old/objects/84/3746fc17bcae9beb08c677a875197f3f3b77f7 Binary files differnew file mode 100644 index 0000000..23b6f66 --- /dev/null +++ b/.git_old/objects/84/3746fc17bcae9beb08c677a875197f3f3b77f7 diff --git a/.git_old/objects/84/6dea11a1c02484e7be49b5e91cc4a02a0fb02a b/.git_old/objects/84/6dea11a1c02484e7be49b5e91cc4a02a0fb02a Binary files differnew file mode 100644 index 0000000..a6d6457 --- /dev/null +++ b/.git_old/objects/84/6dea11a1c02484e7be49b5e91cc4a02a0fb02a diff --git a/.git_old/objects/84/c676c4f58bfef955925bd38d80b8aa5c6141f6 b/.git_old/objects/84/c676c4f58bfef955925bd38d80b8aa5c6141f6 Binary files differnew file mode 100644 index 0000000..3a9ae0a --- /dev/null +++ b/.git_old/objects/84/c676c4f58bfef955925bd38d80b8aa5c6141f6 diff --git a/.git_old/objects/84/e291c63f61ba660b0a8d6e79b7362255dc990c b/.git_old/objects/84/e291c63f61ba660b0a8d6e79b7362255dc990c Binary files differnew file mode 100644 index 0000000..ee9ba5f --- /dev/null +++ b/.git_old/objects/84/e291c63f61ba660b0a8d6e79b7362255dc990c diff --git a/.git_old/objects/84/f4c4c9f0914b99566491af90bd62d61a707445 b/.git_old/objects/84/f4c4c9f0914b99566491af90bd62d61a707445 Binary files differnew file mode 100644 index 0000000..e81773f --- /dev/null +++ b/.git_old/objects/84/f4c4c9f0914b99566491af90bd62d61a707445 diff --git a/.git_old/objects/85/308156712a0d05911b90082ad23bf4e2e29dc2 b/.git_old/objects/85/308156712a0d05911b90082ad23bf4e2e29dc2 Binary files differnew file mode 100644 index 0000000..4491bde --- /dev/null +++ b/.git_old/objects/85/308156712a0d05911b90082ad23bf4e2e29dc2 diff --git a/.git_old/objects/85/68b5b7d116bc70fc271e6d36378a6d7e90b62b b/.git_old/objects/85/68b5b7d116bc70fc271e6d36378a6d7e90b62b Binary files differnew file mode 100644 index 0000000..de9fed9 --- /dev/null +++ b/.git_old/objects/85/68b5b7d116bc70fc271e6d36378a6d7e90b62b diff --git a/.git_old/objects/85/bd075d4153d68a70aa6433fcd3e2f5f038d32b b/.git_old/objects/85/bd075d4153d68a70aa6433fcd3e2f5f038d32b Binary files differnew file mode 100644 index 0000000..b859bb4 --- /dev/null +++ b/.git_old/objects/85/bd075d4153d68a70aa6433fcd3e2f5f038d32b diff --git a/.git_old/objects/86/5b95bd47a31436a8b94c40173d04c42b01c097 b/.git_old/objects/86/5b95bd47a31436a8b94c40173d04c42b01c097 Binary files differnew file mode 100644 index 0000000..8707cd9 --- /dev/null +++ b/.git_old/objects/86/5b95bd47a31436a8b94c40173d04c42b01c097 diff --git a/.git_old/objects/86/caae8b9d2c816ab70032bd7972655fb0c80803 b/.git_old/objects/86/caae8b9d2c816ab70032bd7972655fb0c80803 Binary files differnew file mode 100644 index 0000000..766afa0 --- /dev/null +++ b/.git_old/objects/86/caae8b9d2c816ab70032bd7972655fb0c80803 diff --git a/.git_old/objects/86/d631036ce6961b74ea43fc606f56dce1cfdf7f b/.git_old/objects/86/d631036ce6961b74ea43fc606f56dce1cfdf7f Binary files differnew file mode 100644 index 0000000..335e9db --- /dev/null +++ b/.git_old/objects/86/d631036ce6961b74ea43fc606f56dce1cfdf7f diff --git a/.git_old/objects/87/3bef4d622b29dd4122eadd4c7a7953f13f842a b/.git_old/objects/87/3bef4d622b29dd4122eadd4c7a7953f13f842a Binary files differnew file mode 100644 index 0000000..e22f9bd --- /dev/null +++ b/.git_old/objects/87/3bef4d622b29dd4122eadd4c7a7953f13f842a diff --git a/.git_old/objects/87/73f86035940e9386ebce62a62b0b642e9faadc b/.git_old/objects/87/73f86035940e9386ebce62a62b0b642e9faadc Binary files differnew file mode 100644 index 0000000..833afd8 --- /dev/null +++ b/.git_old/objects/87/73f86035940e9386ebce62a62b0b642e9faadc diff --git a/.git_old/objects/87/c4282cf3f6e1c735773c97cc673d7d096b1ec7 b/.git_old/objects/87/c4282cf3f6e1c735773c97cc673d7d096b1ec7 Binary files differnew file mode 100644 index 0000000..069f1a2 --- /dev/null +++ b/.git_old/objects/87/c4282cf3f6e1c735773c97cc673d7d096b1ec7 diff --git a/.git_old/objects/88/8a92ddbb58e04a13720c042ea87d1804778766 b/.git_old/objects/88/8a92ddbb58e04a13720c042ea87d1804778766 Binary files differnew file mode 100644 index 0000000..7cd8f98 --- /dev/null +++ b/.git_old/objects/88/8a92ddbb58e04a13720c042ea87d1804778766 diff --git a/.git_old/objects/88/944b823eb2e9cfb3fc29797a84758aab5c3a88 b/.git_old/objects/88/944b823eb2e9cfb3fc29797a84758aab5c3a88 Binary files differnew file mode 100644 index 0000000..ad7be83 --- /dev/null +++ b/.git_old/objects/88/944b823eb2e9cfb3fc29797a84758aab5c3a88 diff --git a/.git_old/objects/88/a8d0d87ae1bf7adf5e7c0f0ffc9dd23964b5e5 b/.git_old/objects/88/a8d0d87ae1bf7adf5e7c0f0ffc9dd23964b5e5 Binary files differnew file mode 100644 index 0000000..9c31049 --- /dev/null +++ b/.git_old/objects/88/a8d0d87ae1bf7adf5e7c0f0ffc9dd23964b5e5 diff --git a/.git_old/objects/88/f5191e8a7c9d92da35c7d485e5c284c7a89763 b/.git_old/objects/88/f5191e8a7c9d92da35c7d485e5c284c7a89763 Binary files differnew file mode 100644 index 0000000..d9b4fbd --- /dev/null +++ b/.git_old/objects/88/f5191e8a7c9d92da35c7d485e5c284c7a89763 diff --git a/.git_old/objects/89/25332df570873ad6524faa081e5d59368fbbf5 b/.git_old/objects/89/25332df570873ad6524faa081e5d59368fbbf5 Binary files differnew file mode 100644 index 0000000..4d55225 --- /dev/null +++ b/.git_old/objects/89/25332df570873ad6524faa081e5d59368fbbf5 diff --git a/.git_old/objects/89/c87369bf48fc835534e6626440ba546e435f51 b/.git_old/objects/89/c87369bf48fc835534e6626440ba546e435f51 Binary files differnew file mode 100644 index 0000000..d9375c7 --- /dev/null +++ b/.git_old/objects/89/c87369bf48fc835534e6626440ba546e435f51 diff --git a/.git_old/objects/8c/415c6b2083c87e67469ca0e4a2b695b6e6d000 b/.git_old/objects/8c/415c6b2083c87e67469ca0e4a2b695b6e6d000 Binary files differnew file mode 100644 index 0000000..353cd55 --- /dev/null +++ b/.git_old/objects/8c/415c6b2083c87e67469ca0e4a2b695b6e6d000 diff --git a/.git_old/objects/8c/41c6a4938358b68c7f2c515a375bc84f556b6b b/.git_old/objects/8c/41c6a4938358b68c7f2c515a375bc84f556b6b Binary files differnew file mode 100644 index 0000000..cff5feb --- /dev/null +++ b/.git_old/objects/8c/41c6a4938358b68c7f2c515a375bc84f556b6b diff --git a/.git_old/objects/8c/87cfeae03ec9806e329c01d98eaa686c6217e1 b/.git_old/objects/8c/87cfeae03ec9806e329c01d98eaa686c6217e1 Binary files differnew file mode 100644 index 0000000..481e17d --- /dev/null +++ b/.git_old/objects/8c/87cfeae03ec9806e329c01d98eaa686c6217e1 diff --git a/.git_old/objects/8c/da98e7a0cc30fb75437a3fca6b564e58c27f83 b/.git_old/objects/8c/da98e7a0cc30fb75437a3fca6b564e58c27f83 Binary files differnew file mode 100644 index 0000000..1471202 --- /dev/null +++ b/.git_old/objects/8c/da98e7a0cc30fb75437a3fca6b564e58c27f83 diff --git a/.git_old/objects/8c/dc1d2c8407858a60196fac9b60beb8b7cb71c3 b/.git_old/objects/8c/dc1d2c8407858a60196fac9b60beb8b7cb71c3 Binary files differnew file mode 100644 index 0000000..ed6c817 --- /dev/null +++ b/.git_old/objects/8c/dc1d2c8407858a60196fac9b60beb8b7cb71c3 diff --git a/.git_old/objects/8d/e469d4d0a0ac5b85d2a197d276555ba15b8a13 b/.git_old/objects/8d/e469d4d0a0ac5b85d2a197d276555ba15b8a13 Binary files differnew file mode 100644 index 0000000..0b0ec22 --- /dev/null +++ b/.git_old/objects/8d/e469d4d0a0ac5b85d2a197d276555ba15b8a13 diff --git a/.git_old/objects/8f/7d508fcc94364df57c4c480dff2d136f276bcd b/.git_old/objects/8f/7d508fcc94364df57c4c480dff2d136f276bcd new file mode 100644 index 0000000..5f4ea42 --- /dev/null +++ b/.git_old/objects/8f/7d508fcc94364df57c4c480dff2d136f276bcd @@ -0,0 +1 @@ +xEN@ƽzh}v$#q]JpCR'vvfgF36w^>Uמ{@Tl~lWVo"a+xx}8iғ27L0,e>?c]sk'3߾c3x-h{xj)~>G;fNfJ/~=lh2@f!.WfqܹwbmMpX0x+А91d*MB~Ť0r]~KٳoMT+.?:By^WB8oqb1.©,dz%MTDJ#EO&TM9"ɛ)˴kg
\ No newline at end of file diff --git a/.git_old/objects/8f/93989ec9abf51473b89f3763c82ed1b1584d17 b/.git_old/objects/8f/93989ec9abf51473b89f3763c82ed1b1584d17 Binary files differnew file mode 100644 index 0000000..7cfa4e1 --- /dev/null +++ b/.git_old/objects/8f/93989ec9abf51473b89f3763c82ed1b1584d17 diff --git a/.git_old/objects/8f/d6cd4caa5ef36321fbc22679166562f0aa2f06 b/.git_old/objects/8f/d6cd4caa5ef36321fbc22679166562f0aa2f06 Binary files differnew file mode 100644 index 0000000..820da5e --- /dev/null +++ b/.git_old/objects/8f/d6cd4caa5ef36321fbc22679166562f0aa2f06 diff --git a/.git_old/objects/8f/f77a80d7a312ee5ff84107113a4b4423c8a71f b/.git_old/objects/8f/f77a80d7a312ee5ff84107113a4b4423c8a71f Binary files differnew file mode 100644 index 0000000..5c89a3a --- /dev/null +++ b/.git_old/objects/8f/f77a80d7a312ee5ff84107113a4b4423c8a71f diff --git a/.git_old/objects/90/55cb633d0f80c767f5d47f8d89dff33f1917b4 b/.git_old/objects/90/55cb633d0f80c767f5d47f8d89dff33f1917b4 Binary files differnew file mode 100644 index 0000000..0f99760 --- /dev/null +++ b/.git_old/objects/90/55cb633d0f80c767f5d47f8d89dff33f1917b4 diff --git a/.git_old/objects/90/83bdb0f155e4b37cf4a88c01fa480ebb26ca23 b/.git_old/objects/90/83bdb0f155e4b37cf4a88c01fa480ebb26ca23 Binary files differnew file mode 100644 index 0000000..687b1d4 --- /dev/null +++ b/.git_old/objects/90/83bdb0f155e4b37cf4a88c01fa480ebb26ca23 diff --git a/.git_old/objects/90/b017854de7416072125048c01e8d51a63a1aa8 b/.git_old/objects/90/b017854de7416072125048c01e8d51a63a1aa8 new file mode 100644 index 0000000..e9b6b45 --- /dev/null +++ b/.git_old/objects/90/b017854de7416072125048c01e8d51a63a1aa8 @@ -0,0 +1 @@ +xAK@xTPzd=1łPѣ$5bHF~x5[y9웙ln͵xFjjJ
uZ:jFЫa2YmUiF1O)Ω/pTՊFs?yz9A'wLvN+V-?L*ΘY~q5IJGrCft@A:H>v?{
L,NVg6}~Mqod˻#_>BoEL' x' x' x7}.
\ No newline at end of file diff --git a/.git_old/objects/90/d5279ec5de6a10c0ef1efc6ca36cf08fb46f7a b/.git_old/objects/90/d5279ec5de6a10c0ef1efc6ca36cf08fb46f7a Binary files differnew file mode 100644 index 0000000..0b07617 --- /dev/null +++ b/.git_old/objects/90/d5279ec5de6a10c0ef1efc6ca36cf08fb46f7a diff --git a/.git_old/objects/93/63a17137f14df19034ee830428468cad5bf168 b/.git_old/objects/93/63a17137f14df19034ee830428468cad5bf168 Binary files differnew file mode 100644 index 0000000..41c63e8 --- /dev/null +++ b/.git_old/objects/93/63a17137f14df19034ee830428468cad5bf168 diff --git a/.git_old/objects/93/abc5940e864d4944d2aa62e03c7cf7aab06ba6 b/.git_old/objects/93/abc5940e864d4944d2aa62e03c7cf7aab06ba6 new file mode 100644 index 0000000..551d7d8 --- /dev/null +++ b/.git_old/objects/93/abc5940e864d4944d2aa62e03c7cf7aab06ba6 @@ -0,0 +1,4 @@ +xJ0S̽Po+""x'fmҩxyY"+n0' + +DX:Pj`ɚVA+Z;0rop9Wx# +T^<Ov3kRS=w{o p\a+A
3:_ڄ_J>\oyXJp)nq1h
\ No newline at end of file diff --git a/.git_old/objects/93/b47ae2ccd38d0111f52ee11a4f50add0fe8e2e b/.git_old/objects/93/b47ae2ccd38d0111f52ee11a4f50add0fe8e2e Binary files differnew file mode 100644 index 0000000..f15fd6f --- /dev/null +++ b/.git_old/objects/93/b47ae2ccd38d0111f52ee11a4f50add0fe8e2e diff --git a/.git_old/objects/93/bc1bd866c339494ed9aa255131039ee15422ce b/.git_old/objects/93/bc1bd866c339494ed9aa255131039ee15422ce new file mode 100644 index 0000000..e2bb4d6 --- /dev/null +++ b/.git_old/objects/93/bc1bd866c339494ed9aa255131039ee15422ce @@ -0,0 +1,4 @@ +xMO078gЋpH6yI@"މơ)kuʋ ~1/&~?#&}I'Ͽ#V.YV K쫖M'U,y},jwLAy,OLEF@C{t4vhܦѸ\O?NnY%ZmsC +/!@pا!,@&(4e(h +ȨRu*lMgd3RTRtb'K>]ƽ +ﵝOEhҶȄr%)8XK4ɶ#_]-.FM)}B{8L*;ecG41m;^N+;g=$IfԒ]X!#T}l?a'81_`+Q@
\ No newline at end of file diff --git a/.git_old/objects/93/fc646ebb367e97a58597c988d4e56b7c5546d0 b/.git_old/objects/93/fc646ebb367e97a58597c988d4e56b7c5546d0 Binary files differnew file mode 100644 index 0000000..986f8b4 --- /dev/null +++ b/.git_old/objects/93/fc646ebb367e97a58597c988d4e56b7c5546d0 diff --git a/.git_old/objects/98/0a48345abc47c1b8aef497ee31679020c7633c b/.git_old/objects/98/0a48345abc47c1b8aef497ee31679020c7633c Binary files differnew file mode 100644 index 0000000..b486900 --- /dev/null +++ b/.git_old/objects/98/0a48345abc47c1b8aef497ee31679020c7633c diff --git a/.git_old/objects/9a/0150a9fe4a800ecf299ed095864dad15ad29e4 b/.git_old/objects/9a/0150a9fe4a800ecf299ed095864dad15ad29e4 Binary files differnew file mode 100644 index 0000000..f138d1f --- /dev/null +++ b/.git_old/objects/9a/0150a9fe4a800ecf299ed095864dad15ad29e4 diff --git a/.git_old/objects/9a/72c7c3824c4530c9896679965cc311a9fe7746 b/.git_old/objects/9a/72c7c3824c4530c9896679965cc311a9fe7746 Binary files differnew file mode 100644 index 0000000..7d66907 --- /dev/null +++ b/.git_old/objects/9a/72c7c3824c4530c9896679965cc311a9fe7746 diff --git a/.git_old/objects/9a/80df955dbfb1d7071359a00107f35e5d41a864 b/.git_old/objects/9a/80df955dbfb1d7071359a00107f35e5d41a864 Binary files differnew file mode 100644 index 0000000..096e817 --- /dev/null +++ b/.git_old/objects/9a/80df955dbfb1d7071359a00107f35e5d41a864 diff --git a/.git_old/objects/9a/9865dbed9c638ae6af1d5627f8a51bf0579204 b/.git_old/objects/9a/9865dbed9c638ae6af1d5627f8a51bf0579204 Binary files differnew file mode 100644 index 0000000..863a654 --- /dev/null +++ b/.git_old/objects/9a/9865dbed9c638ae6af1d5627f8a51bf0579204 diff --git a/.git_old/objects/9b/046f731af9fe06ca4645d53a2653e782b66fae b/.git_old/objects/9b/046f731af9fe06ca4645d53a2653e782b66fae Binary files differnew file mode 100644 index 0000000..63b8098 --- /dev/null +++ b/.git_old/objects/9b/046f731af9fe06ca4645d53a2653e782b66fae diff --git a/.git_old/objects/9b/56dc751c1cc7dff75ed80ccbb45f027058e8ce b/.git_old/objects/9b/56dc751c1cc7dff75ed80ccbb45f027058e8ce Binary files differnew file mode 100644 index 0000000..6435654 --- /dev/null +++ b/.git_old/objects/9b/56dc751c1cc7dff75ed80ccbb45f027058e8ce diff --git a/.git_old/objects/9b/846e6856ed38ea505d843aea06ed7dbf93fb71 b/.git_old/objects/9b/846e6856ed38ea505d843aea06ed7dbf93fb71 new file mode 100644 index 0000000..3fe7bd5 --- /dev/null +++ b/.git_old/objects/9b/846e6856ed38ea505d843aea06ed7dbf93fb71 @@ -0,0 +1,3 @@ +xMk0{_\ǮBײQGWH$Q +e{k
!L<̼Ʉʶ}ln*C۷6(>D"mgj"JWԢ66Sh[OzE:zOa*m] +rXKhWF;XU2<2ePd9'4jhL4^Rq'iv@#칿O]&5\8Llmnq]j%{(b,h\78L_~iNtAd3M,
hlĻ{;[>Sqy Vb
\ No newline at end of file diff --git a/.git_old/objects/9b/91330a37258f62a8288ee71bf3307f008f2a10 b/.git_old/objects/9b/91330a37258f62a8288ee71bf3307f008f2a10 Binary files differnew file mode 100644 index 0000000..c89c92e --- /dev/null +++ b/.git_old/objects/9b/91330a37258f62a8288ee71bf3307f008f2a10 diff --git a/.git_old/objects/9b/9caad1f8eb43385f1d74622051fe8f38d39f27 b/.git_old/objects/9b/9caad1f8eb43385f1d74622051fe8f38d39f27 Binary files differnew file mode 100644 index 0000000..1e2bdc6 --- /dev/null +++ b/.git_old/objects/9b/9caad1f8eb43385f1d74622051fe8f38d39f27 diff --git a/.git_old/objects/a1/16228e869ea572040366531b8935ebc32e85d7 b/.git_old/objects/a1/16228e869ea572040366531b8935ebc32e85d7 Binary files differnew file mode 100644 index 0000000..5118237 --- /dev/null +++ b/.git_old/objects/a1/16228e869ea572040366531b8935ebc32e85d7 diff --git a/.git_old/objects/a1/b96d397019d2bc3e6174aabade83744389f63b b/.git_old/objects/a1/b96d397019d2bc3e6174aabade83744389f63b Binary files differnew file mode 100644 index 0000000..9d20237 --- /dev/null +++ b/.git_old/objects/a1/b96d397019d2bc3e6174aabade83744389f63b diff --git a/.git_old/objects/a1/f401dc616f323b17b6a60f4d2b7a134028f72b b/.git_old/objects/a1/f401dc616f323b17b6a60f4d2b7a134028f72b Binary files differnew file mode 100644 index 0000000..90a1b0e --- /dev/null +++ b/.git_old/objects/a1/f401dc616f323b17b6a60f4d2b7a134028f72b diff --git a/.git_old/objects/a4/0885917e911e1baa1edded6bfb56eea006dbb2 b/.git_old/objects/a4/0885917e911e1baa1edded6bfb56eea006dbb2 Binary files differnew file mode 100644 index 0000000..ed25b3b --- /dev/null +++ b/.git_old/objects/a4/0885917e911e1baa1edded6bfb56eea006dbb2 diff --git a/.git_old/objects/a4/29c7219d30e797d4a6b3cfb579266f323dd030 b/.git_old/objects/a4/29c7219d30e797d4a6b3cfb579266f323dd030 Binary files differnew file mode 100644 index 0000000..930aa1c --- /dev/null +++ b/.git_old/objects/a4/29c7219d30e797d4a6b3cfb579266f323dd030 diff --git a/.git_old/objects/a4/d300d48636e732a2a708b26381c5f55b30bb18 b/.git_old/objects/a4/d300d48636e732a2a708b26381c5f55b30bb18 Binary files differnew file mode 100644 index 0000000..2e10f9a --- /dev/null +++ b/.git_old/objects/a4/d300d48636e732a2a708b26381c5f55b30bb18 diff --git a/.git_old/objects/a4/ec2c5c2247a7a3995064cf0fb1e7a74004c225 b/.git_old/objects/a4/ec2c5c2247a7a3995064cf0fb1e7a74004c225 Binary files differnew file mode 100644 index 0000000..938ab19 --- /dev/null +++ b/.git_old/objects/a4/ec2c5c2247a7a3995064cf0fb1e7a74004c225 diff --git a/.git_old/objects/a5/211140afa41f0e712f185e050d5a5decd32079 b/.git_old/objects/a5/211140afa41f0e712f185e050d5a5decd32079 Binary files differnew file mode 100644 index 0000000..b6ccc4c --- /dev/null +++ b/.git_old/objects/a5/211140afa41f0e712f185e050d5a5decd32079 diff --git a/.git_old/objects/a5/49ded3961f3e74f007f8b8cc4139662e4c7399 b/.git_old/objects/a5/49ded3961f3e74f007f8b8cc4139662e4c7399 Binary files differnew file mode 100644 index 0000000..763a7cf --- /dev/null +++ b/.git_old/objects/a5/49ded3961f3e74f007f8b8cc4139662e4c7399 diff --git a/.git_old/objects/a5/ef711d28fbd8cded7b78aad33d85826c3e19e9 b/.git_old/objects/a5/ef711d28fbd8cded7b78aad33d85826c3e19e9 Binary files differnew file mode 100644 index 0000000..27b144b --- /dev/null +++ b/.git_old/objects/a5/ef711d28fbd8cded7b78aad33d85826c3e19e9 diff --git a/.git_old/objects/a7/2f6a64c6d1763ec553f453e09e3b7bd47ff19d b/.git_old/objects/a7/2f6a64c6d1763ec553f453e09e3b7bd47ff19d Binary files differnew file mode 100644 index 0000000..2d954c9 --- /dev/null +++ b/.git_old/objects/a7/2f6a64c6d1763ec553f453e09e3b7bd47ff19d diff --git a/.git_old/objects/a7/5a2e16a06c840cb13f802dd24927d35eff2bdc b/.git_old/objects/a7/5a2e16a06c840cb13f802dd24927d35eff2bdc Binary files differnew file mode 100644 index 0000000..c7b45ef --- /dev/null +++ b/.git_old/objects/a7/5a2e16a06c840cb13f802dd24927d35eff2bdc diff --git a/.git_old/objects/a7/5a3dad73783002a63dfa9e516c7c5131ea7fab b/.git_old/objects/a7/5a3dad73783002a63dfa9e516c7c5131ea7fab new file mode 100644 index 0000000..f913302 --- /dev/null +++ b/.git_old/objects/a7/5a3dad73783002a63dfa9e516c7c5131ea7fab @@ -0,0 +1,4 @@ +x_o O<ATZ=-YץW:,Cں?!/s!:_o2~ZA-٭_ݨѽzHѦuB +M3Zݛm;6} ò$e0+In +E)_N*9=fdFkhm +(^2g6 8XYgB!"L<fFDƒ)
7 N9!3ͩ+sO#E_"їW:;-{Np'TUqƶ0W={CA{|.|~'L diff --git a/.git_old/objects/a7/5c1fac47277b4711f5b0036204c07b09e5b50c b/.git_old/objects/a7/5c1fac47277b4711f5b0036204c07b09e5b50c Binary files differnew file mode 100644 index 0000000..0027ce7 --- /dev/null +++ b/.git_old/objects/a7/5c1fac47277b4711f5b0036204c07b09e5b50c diff --git a/.git_old/objects/a7/7e48f9609b912d3e488ef5f6bc6dd8f4a278b4 b/.git_old/objects/a7/7e48f9609b912d3e488ef5f6bc6dd8f4a278b4 Binary files differnew file mode 100644 index 0000000..993d347 --- /dev/null +++ b/.git_old/objects/a7/7e48f9609b912d3e488ef5f6bc6dd8f4a278b4 diff --git a/.git_old/objects/a7/94ed5630fc48fd799d9cd64d1802441998053b b/.git_old/objects/a7/94ed5630fc48fd799d9cd64d1802441998053b Binary files differnew file mode 100644 index 0000000..4269f31 --- /dev/null +++ b/.git_old/objects/a7/94ed5630fc48fd799d9cd64d1802441998053b diff --git a/.git_old/objects/a7/e91f7d4ba81835bce5614163a8721e809c92b4 b/.git_old/objects/a7/e91f7d4ba81835bce5614163a8721e809c92b4 Binary files differnew file mode 100644 index 0000000..dcf09eb --- /dev/null +++ b/.git_old/objects/a7/e91f7d4ba81835bce5614163a8721e809c92b4 diff --git a/.git_old/objects/a8/8c5bd9b5f17af70ab9601a781388418e0b772f b/.git_old/objects/a8/8c5bd9b5f17af70ab9601a781388418e0b772f Binary files differnew file mode 100644 index 0000000..f1947c9 --- /dev/null +++ b/.git_old/objects/a8/8c5bd9b5f17af70ab9601a781388418e0b772f diff --git a/.git_old/objects/a8/e7ed70102ee5b766456fb055b833fe47f9f26f b/.git_old/objects/a8/e7ed70102ee5b766456fb055b833fe47f9f26f Binary files differnew file mode 100644 index 0000000..e2335d6 --- /dev/null +++ b/.git_old/objects/a8/e7ed70102ee5b766456fb055b833fe47f9f26f diff --git a/.git_old/objects/a9/47b6c304bdd5181562035a99a7bb4e74637bfa b/.git_old/objects/a9/47b6c304bdd5181562035a99a7bb4e74637bfa Binary files differnew file mode 100644 index 0000000..6d03ab7 --- /dev/null +++ b/.git_old/objects/a9/47b6c304bdd5181562035a99a7bb4e74637bfa diff --git a/.git_old/objects/a9/f80ae0249093f1db8b14f71053acce35747e3d b/.git_old/objects/a9/f80ae0249093f1db8b14f71053acce35747e3d Binary files differnew file mode 100644 index 0000000..b316ac3 --- /dev/null +++ b/.git_old/objects/a9/f80ae0249093f1db8b14f71053acce35747e3d diff --git a/.git_old/objects/ad/3f9c9d47daa186c59e667a30320a50f1265615 b/.git_old/objects/ad/3f9c9d47daa186c59e667a30320a50f1265615 Binary files differnew file mode 100644 index 0000000..b393037 --- /dev/null +++ b/.git_old/objects/ad/3f9c9d47daa186c59e667a30320a50f1265615 diff --git a/.git_old/objects/ad/85c61265b840464e838f869a7f7f30b3bf0e0f b/.git_old/objects/ad/85c61265b840464e838f869a7f7f30b3bf0e0f Binary files differnew file mode 100644 index 0000000..a2128fa --- /dev/null +++ b/.git_old/objects/ad/85c61265b840464e838f869a7f7f30b3bf0e0f diff --git a/.git_old/objects/ad/a3868496584cc48e25802c1196ee1bfc2600ef b/.git_old/objects/ad/a3868496584cc48e25802c1196ee1bfc2600ef Binary files differnew file mode 100644 index 0000000..de3c402 --- /dev/null +++ b/.git_old/objects/ad/a3868496584cc48e25802c1196ee1bfc2600ef diff --git a/.git_old/objects/ad/a765109b6a21da055084d4e48a4dfcd480697e b/.git_old/objects/ad/a765109b6a21da055084d4e48a4dfcd480697e Binary files differnew file mode 100644 index 0000000..96c3250 --- /dev/null +++ b/.git_old/objects/ad/a765109b6a21da055084d4e48a4dfcd480697e diff --git a/.git_old/objects/ad/c2db0fb080d089a7580676e2d1e64b91cf0250 b/.git_old/objects/ad/c2db0fb080d089a7580676e2d1e64b91cf0250 Binary files differnew file mode 100644 index 0000000..edc8efd --- /dev/null +++ b/.git_old/objects/ad/c2db0fb080d089a7580676e2d1e64b91cf0250 diff --git a/.git_old/objects/ad/fa4d90cd3b208fd65ddacdc7bc813475b10b83 b/.git_old/objects/ad/fa4d90cd3b208fd65ddacdc7bc813475b10b83 Binary files differnew file mode 100644 index 0000000..3419bd6 --- /dev/null +++ b/.git_old/objects/ad/fa4d90cd3b208fd65ddacdc7bc813475b10b83 diff --git a/.git_old/objects/af/452f874398472e73d659f8971598fce28a551e b/.git_old/objects/af/452f874398472e73d659f8971598fce28a551e Binary files differnew file mode 100644 index 0000000..dfea081 --- /dev/null +++ b/.git_old/objects/af/452f874398472e73d659f8971598fce28a551e diff --git a/.git_old/objects/af/a2d2b97bdd9cc04d1523429f3d14171c0ac186 b/.git_old/objects/af/a2d2b97bdd9cc04d1523429f3d14171c0ac186 Binary files differnew file mode 100644 index 0000000..0f40519 --- /dev/null +++ b/.git_old/objects/af/a2d2b97bdd9cc04d1523429f3d14171c0ac186 diff --git a/.git_old/objects/af/f1e35fa1ded8433960e247027a65de0c8ecfc9 b/.git_old/objects/af/f1e35fa1ded8433960e247027a65de0c8ecfc9 Binary files differnew file mode 100644 index 0000000..16234b6 --- /dev/null +++ b/.git_old/objects/af/f1e35fa1ded8433960e247027a65de0c8ecfc9 diff --git a/.git_old/objects/b0/41f792deb034128baae6bf0953dabf51c51ab6 b/.git_old/objects/b0/41f792deb034128baae6bf0953dabf51c51ab6 Binary files differnew file mode 100644 index 0000000..242617d --- /dev/null +++ b/.git_old/objects/b0/41f792deb034128baae6bf0953dabf51c51ab6 diff --git a/.git_old/objects/b0/c43444921f40feed4c4506447874fa61c9d5b7 b/.git_old/objects/b0/c43444921f40feed4c4506447874fa61c9d5b7 Binary files differnew file mode 100644 index 0000000..14ae161 --- /dev/null +++ b/.git_old/objects/b0/c43444921f40feed4c4506447874fa61c9d5b7 diff --git a/.git_old/objects/b2/a9d0bf7bd463a6361898b36f010edd05c0cf6e b/.git_old/objects/b2/a9d0bf7bd463a6361898b36f010edd05c0cf6e Binary files differnew file mode 100644 index 0000000..c4537d9 --- /dev/null +++ b/.git_old/objects/b2/a9d0bf7bd463a6361898b36f010edd05c0cf6e diff --git a/.git_old/objects/b2/c5446f61370a193ae2147475cfe0d28bda8806 b/.git_old/objects/b2/c5446f61370a193ae2147475cfe0d28bda8806 Binary files differnew file mode 100644 index 0000000..8104e10 --- /dev/null +++ b/.git_old/objects/b2/c5446f61370a193ae2147475cfe0d28bda8806 diff --git a/.git_old/objects/b2/d5b7aba351db62a182c55763343dab54e25042 b/.git_old/objects/b2/d5b7aba351db62a182c55763343dab54e25042 Binary files differnew file mode 100644 index 0000000..e6a033e --- /dev/null +++ b/.git_old/objects/b2/d5b7aba351db62a182c55763343dab54e25042 diff --git a/.git_old/objects/b2/ef39b7b99f7197666750f517124fcf49ae5faa b/.git_old/objects/b2/ef39b7b99f7197666750f517124fcf49ae5faa Binary files differnew file mode 100644 index 0000000..2ddd98e --- /dev/null +++ b/.git_old/objects/b2/ef39b7b99f7197666750f517124fcf49ae5faa diff --git a/.git_old/objects/b2/efafcbc7252ea6915631ae98a5b4ed53ca04fa b/.git_old/objects/b2/efafcbc7252ea6915631ae98a5b4ed53ca04fa Binary files differnew file mode 100644 index 0000000..8ede4b3 --- /dev/null +++ b/.git_old/objects/b2/efafcbc7252ea6915631ae98a5b4ed53ca04fa diff --git a/.git_old/objects/b2/fec41466c83cdfceefef491283b36c7f2c6c70 b/.git_old/objects/b2/fec41466c83cdfceefef491283b36c7f2c6c70 Binary files differnew file mode 100644 index 0000000..9c25e54 --- /dev/null +++ b/.git_old/objects/b2/fec41466c83cdfceefef491283b36c7f2c6c70 diff --git a/.git_old/objects/b5/0f86caf963bf483b6ea707cc9d6b389d8ac70c b/.git_old/objects/b5/0f86caf963bf483b6ea707cc9d6b389d8ac70c Binary files differnew file mode 100644 index 0000000..d722efb --- /dev/null +++ b/.git_old/objects/b5/0f86caf963bf483b6ea707cc9d6b389d8ac70c diff --git a/.git_old/objects/b5/64dd22e31f8c5915494ce25867dc92c5c71ae3 b/.git_old/objects/b5/64dd22e31f8c5915494ce25867dc92c5c71ae3 Binary files differnew file mode 100644 index 0000000..e6c62de --- /dev/null +++ b/.git_old/objects/b5/64dd22e31f8c5915494ce25867dc92c5c71ae3 diff --git a/.git_old/objects/b6/0db521984b45977c8d21219eb9a145cdf3c0b2 b/.git_old/objects/b6/0db521984b45977c8d21219eb9a145cdf3c0b2 Binary files differnew file mode 100644 index 0000000..086a6b5 --- /dev/null +++ b/.git_old/objects/b6/0db521984b45977c8d21219eb9a145cdf3c0b2 diff --git a/.git_old/objects/b6/4f35e0817be741b9ad9014dea60c9d7a43c9fb b/.git_old/objects/b6/4f35e0817be741b9ad9014dea60c9d7a43c9fb Binary files differnew file mode 100644 index 0000000..5f2d5c4 --- /dev/null +++ b/.git_old/objects/b6/4f35e0817be741b9ad9014dea60c9d7a43c9fb diff --git a/.git_old/objects/b6/d36014cf3b98cbb4831a5c8dd5628570a35852 b/.git_old/objects/b6/d36014cf3b98cbb4831a5c8dd5628570a35852 Binary files differnew file mode 100644 index 0000000..9285b61 --- /dev/null +++ b/.git_old/objects/b6/d36014cf3b98cbb4831a5c8dd5628570a35852 diff --git a/.git_old/objects/b7/3106511e2add44d5611191274d4586e0446c70 b/.git_old/objects/b7/3106511e2add44d5611191274d4586e0446c70 Binary files differnew file mode 100644 index 0000000..c297af3 --- /dev/null +++ b/.git_old/objects/b7/3106511e2add44d5611191274d4586e0446c70 diff --git a/.git_old/objects/b7/3828b5c5f95918c7abd1123fcc9f5b0c4becb9 b/.git_old/objects/b7/3828b5c5f95918c7abd1123fcc9f5b0c4becb9 Binary files differnew file mode 100644 index 0000000..5ea4e98 --- /dev/null +++ b/.git_old/objects/b7/3828b5c5f95918c7abd1123fcc9f5b0c4becb9 diff --git a/.git_old/objects/b7/dc91120ef99841038923626b75352022625c6e b/.git_old/objects/b7/dc91120ef99841038923626b75352022625c6e Binary files differnew file mode 100644 index 0000000..efc3e04 --- /dev/null +++ b/.git_old/objects/b7/dc91120ef99841038923626b75352022625c6e diff --git a/.git_old/objects/b7/e4fd67eb36b628a8bf03a2e747b09ff67017b9 b/.git_old/objects/b7/e4fd67eb36b628a8bf03a2e747b09ff67017b9 Binary files differnew file mode 100644 index 0000000..e22ee8c --- /dev/null +++ b/.git_old/objects/b7/e4fd67eb36b628a8bf03a2e747b09ff67017b9 diff --git a/.git_old/objects/bf/d9b3abe648f71482cf7143c949d7b4bdadcae6 b/.git_old/objects/bf/d9b3abe648f71482cf7143c949d7b4bdadcae6 Binary files differnew file mode 100644 index 0000000..63ca79a --- /dev/null +++ b/.git_old/objects/bf/d9b3abe648f71482cf7143c949d7b4bdadcae6 diff --git a/.git_old/objects/bf/f7b3b7d18ad2fd923d2cbfd4f2fb601abc73c7 b/.git_old/objects/bf/f7b3b7d18ad2fd923d2cbfd4f2fb601abc73c7 Binary files differnew file mode 100644 index 0000000..adbef0b --- /dev/null +++ b/.git_old/objects/bf/f7b3b7d18ad2fd923d2cbfd4f2fb601abc73c7 diff --git a/.git_old/objects/c1/09d41e374e7fd73d8d29a1d420e258e7433690 b/.git_old/objects/c1/09d41e374e7fd73d8d29a1d420e258e7433690 Binary files differnew file mode 100644 index 0000000..0d2aefb --- /dev/null +++ b/.git_old/objects/c1/09d41e374e7fd73d8d29a1d420e258e7433690 diff --git a/.git_old/objects/c1/212b745a1a958b34d6dca9baac3dc579ba69ae b/.git_old/objects/c1/212b745a1a958b34d6dca9baac3dc579ba69ae Binary files differnew file mode 100644 index 0000000..8a0fac3 --- /dev/null +++ b/.git_old/objects/c1/212b745a1a958b34d6dca9baac3dc579ba69ae diff --git a/.git_old/objects/c1/29a362ae0768284161653966fb7d99b0a2853a b/.git_old/objects/c1/29a362ae0768284161653966fb7d99b0a2853a Binary files differnew file mode 100644 index 0000000..2d2ea72 --- /dev/null +++ b/.git_old/objects/c1/29a362ae0768284161653966fb7d99b0a2853a diff --git a/.git_old/objects/c1/41aa72e589db90292ea092c242027e04a098d4 b/.git_old/objects/c1/41aa72e589db90292ea092c242027e04a098d4 Binary files differnew file mode 100644 index 0000000..80f3f70 --- /dev/null +++ b/.git_old/objects/c1/41aa72e589db90292ea092c242027e04a098d4 diff --git a/.git_old/objects/c1/f28126a76ee9c02e0cedbca27c5baa6fef37da b/.git_old/objects/c1/f28126a76ee9c02e0cedbca27c5baa6fef37da Binary files differnew file mode 100644 index 0000000..85d1e9d --- /dev/null +++ b/.git_old/objects/c1/f28126a76ee9c02e0cedbca27c5baa6fef37da diff --git a/.git_old/objects/c3/13eeb1404ea6e7d459140b6bf81f8288eac397 b/.git_old/objects/c3/13eeb1404ea6e7d459140b6bf81f8288eac397 new file mode 100644 index 0000000..729fce2 --- /dev/null +++ b/.git_old/objects/c3/13eeb1404ea6e7d459140b6bf81f8288eac397 @@ -0,0 +1,5 @@ +xUn@$m'CiA--#TTVb9{Ɠ4"!=;mvON1N8~{rϹ.3 +TzxRѷzvԝTGux>:b<pYjn1Z+7_ܩmKdKfH4\~N9hxp<Ć)(92''|"P +(vaj#f~/)0h1Suu*$)H>t.f+ik`)VE +j;Q2[!(MlYԳHe#R9(]ʊ40֩kRRfpT|IULA: e*\c[Br`<Do5XE|j{A#C4p0IFc{|xk7d24d1]qV 9kɆ{#-h`#LN@#nx5sE.1zCE+bm565վۡ7e/返>79s]lܛQ#p,4w`
G.M%Y55 `e+ne8AAzō6MW7d|qUy96Z-v,_}w +!@yD_^J3X^b?riPTḚ5>E8'{/E98fCbI_,ΨUr`[p,EaxnI 7
\ No newline at end of file diff --git a/.git_old/objects/c3/93062c3eca2a1f8282ea821de1d7c8803b3dd3 b/.git_old/objects/c3/93062c3eca2a1f8282ea821de1d7c8803b3dd3 Binary files differnew file mode 100644 index 0000000..4ea5e5a --- /dev/null +++ b/.git_old/objects/c3/93062c3eca2a1f8282ea821de1d7c8803b3dd3 diff --git a/.git_old/objects/c3/eef538cf2b8ea8f8a3b1d5fb5271452ad8a10a b/.git_old/objects/c3/eef538cf2b8ea8f8a3b1d5fb5271452ad8a10a Binary files differnew file mode 100644 index 0000000..4d78dfb --- /dev/null +++ b/.git_old/objects/c3/eef538cf2b8ea8f8a3b1d5fb5271452ad8a10a diff --git a/.git_old/objects/c4/46bb37547947b574c756efccb122a67ae30888 b/.git_old/objects/c4/46bb37547947b574c756efccb122a67ae30888 Binary files differnew file mode 100644 index 0000000..ed65876 --- /dev/null +++ b/.git_old/objects/c4/46bb37547947b574c756efccb122a67ae30888 diff --git a/.git_old/objects/c4/8c1a839f22d46a67f9296524ce467000cac804 b/.git_old/objects/c4/8c1a839f22d46a67f9296524ce467000cac804 Binary files differnew file mode 100644 index 0000000..dad1523 --- /dev/null +++ b/.git_old/objects/c4/8c1a839f22d46a67f9296524ce467000cac804 diff --git a/.git_old/objects/c4/f29c94a63c23f6444c5b46f039ed6bd727a908 b/.git_old/objects/c4/f29c94a63c23f6444c5b46f039ed6bd727a908 Binary files differnew file mode 100644 index 0000000..af7d6c2 --- /dev/null +++ b/.git_old/objects/c4/f29c94a63c23f6444c5b46f039ed6bd727a908 diff --git a/.git_old/objects/c5/0748de7d8d5339a157655736a680c811ad8f67 b/.git_old/objects/c5/0748de7d8d5339a157655736a680c811ad8f67 Binary files differnew file mode 100644 index 0000000..acc67f2 --- /dev/null +++ b/.git_old/objects/c5/0748de7d8d5339a157655736a680c811ad8f67 diff --git a/.git_old/objects/c5/1e0e531b586d71bb698a090ba3feb37f6f421f b/.git_old/objects/c5/1e0e531b586d71bb698a090ba3feb37f6f421f Binary files differnew file mode 100644 index 0000000..198534a --- /dev/null +++ b/.git_old/objects/c5/1e0e531b586d71bb698a090ba3feb37f6f421f diff --git a/.git_old/objects/c6/49f0ace2bfb58c9a36143453aa7cdb72e963c3 b/.git_old/objects/c6/49f0ace2bfb58c9a36143453aa7cdb72e963c3 Binary files differnew file mode 100644 index 0000000..997dd2c --- /dev/null +++ b/.git_old/objects/c6/49f0ace2bfb58c9a36143453aa7cdb72e963c3 diff --git a/.git_old/objects/c6/8ea7abbf5810c6581de09e331d158e9ce26912 b/.git_old/objects/c6/8ea7abbf5810c6581de09e331d158e9ce26912 Binary files differnew file mode 100644 index 0000000..aebc5fc --- /dev/null +++ b/.git_old/objects/c6/8ea7abbf5810c6581de09e331d158e9ce26912 diff --git a/.git_old/objects/c9/1879875d6c766425371c9179bcec2dda997141 b/.git_old/objects/c9/1879875d6c766425371c9179bcec2dda997141 Binary files differnew file mode 100644 index 0000000..4c861b1 --- /dev/null +++ b/.git_old/objects/c9/1879875d6c766425371c9179bcec2dda997141 diff --git a/.git_old/objects/c9/98a4c1db97edbad6d7592a01ece2ba48ee3cc5 b/.git_old/objects/c9/98a4c1db97edbad6d7592a01ece2ba48ee3cc5 Binary files differnew file mode 100644 index 0000000..b30d9f7 --- /dev/null +++ b/.git_old/objects/c9/98a4c1db97edbad6d7592a01ece2ba48ee3cc5 diff --git a/.git_old/objects/c9/d69f1e4f8dc452d11b4c0da2a32ce52724a689 b/.git_old/objects/c9/d69f1e4f8dc452d11b4c0da2a32ce52724a689 Binary files differnew file mode 100644 index 0000000..0c4c53a --- /dev/null +++ b/.git_old/objects/c9/d69f1e4f8dc452d11b4c0da2a32ce52724a689 diff --git a/.git_old/objects/cb/027fc4550beab95edb12a4c4c3cf5e2615e713 b/.git_old/objects/cb/027fc4550beab95edb12a4c4c3cf5e2615e713 Binary files differnew file mode 100644 index 0000000..35e191a --- /dev/null +++ b/.git_old/objects/cb/027fc4550beab95edb12a4c4c3cf5e2615e713 diff --git a/.git_old/objects/cb/49add39e8550778fb4b135f34712d0c8081ada b/.git_old/objects/cb/49add39e8550778fb4b135f34712d0c8081ada Binary files differnew file mode 100644 index 0000000..ab25ebb --- /dev/null +++ b/.git_old/objects/cb/49add39e8550778fb4b135f34712d0c8081ada diff --git a/.git_old/objects/cb/fc7487e3165883e0b005311c0efc1155cd0a58 b/.git_old/objects/cb/fc7487e3165883e0b005311c0efc1155cd0a58 Binary files differnew file mode 100644 index 0000000..415adf8 --- /dev/null +++ b/.git_old/objects/cb/fc7487e3165883e0b005311c0efc1155cd0a58 diff --git a/.git_old/objects/cd/2a899d3c6c34d0049b92c6d81c7f19bab4186c b/.git_old/objects/cd/2a899d3c6c34d0049b92c6d81c7f19bab4186c Binary files differnew file mode 100644 index 0000000..8a37d9c --- /dev/null +++ b/.git_old/objects/cd/2a899d3c6c34d0049b92c6d81c7f19bab4186c diff --git a/.git_old/objects/cd/76a247a5d7f5a55a0d14bb8935daf2f8f78df8 b/.git_old/objects/cd/76a247a5d7f5a55a0d14bb8935daf2f8f78df8 Binary files differnew file mode 100644 index 0000000..d171688 --- /dev/null +++ b/.git_old/objects/cd/76a247a5d7f5a55a0d14bb8935daf2f8f78df8 diff --git a/.git_old/objects/cd/7bd37018220cd089db3dcbc923742e4588dfdf b/.git_old/objects/cd/7bd37018220cd089db3dcbc923742e4588dfdf Binary files differnew file mode 100644 index 0000000..b67e7a9 --- /dev/null +++ b/.git_old/objects/cd/7bd37018220cd089db3dcbc923742e4588dfdf diff --git a/.git_old/objects/cd/f707356ccbd28d1c27db3b575c33f4f9df204a b/.git_old/objects/cd/f707356ccbd28d1c27db3b575c33f4f9df204a Binary files differnew file mode 100644 index 0000000..9408b15 --- /dev/null +++ b/.git_old/objects/cd/f707356ccbd28d1c27db3b575c33f4f9df204a diff --git a/.git_old/objects/ce/0f3596ee8dae8546fb12ca50d7a1fceaea609d b/.git_old/objects/ce/0f3596ee8dae8546fb12ca50d7a1fceaea609d Binary files differnew file mode 100644 index 0000000..1dfcbc1 --- /dev/null +++ b/.git_old/objects/ce/0f3596ee8dae8546fb12ca50d7a1fceaea609d diff --git a/.git_old/objects/ce/3dfcb94e28c90e99b1cde73236eeb6ddef8f01 b/.git_old/objects/ce/3dfcb94e28c90e99b1cde73236eeb6ddef8f01 Binary files differnew file mode 100644 index 0000000..be23a92 --- /dev/null +++ b/.git_old/objects/ce/3dfcb94e28c90e99b1cde73236eeb6ddef8f01 diff --git a/.git_old/objects/ce/805ca96242916773494c35868ea830daea5e74 b/.git_old/objects/ce/805ca96242916773494c35868ea830daea5e74 Binary files differnew file mode 100644 index 0000000..e72d968 --- /dev/null +++ b/.git_old/objects/ce/805ca96242916773494c35868ea830daea5e74 diff --git a/.git_old/objects/ce/9594062bcc2bc603c6caba46a60a2e1d3d1435 b/.git_old/objects/ce/9594062bcc2bc603c6caba46a60a2e1d3d1435 new file mode 100644 index 0000000..45e3952 --- /dev/null +++ b/.git_old/objects/ce/9594062bcc2bc603c6caba46a60a2e1d3d1435 @@ -0,0 +1 @@ +x]Kk0{ί0{.!=L[)ED6
%G"Чٝڶse0+wFk1[ppCaJ/ؕ}QW۲94XqB#Yt#.WNTAc1'܈9,Y8j1xWEi5(CgƯ*Fs0Q~-c(<_[鍗?Ŀ-_;8uZ,ʽ0+1hߝ@nlJ
\ No newline at end of file diff --git a/.git_old/objects/ce/c4691bd77129fa53940300e690237320d28655 b/.git_old/objects/ce/c4691bd77129fa53940300e690237320d28655 Binary files differnew file mode 100644 index 0000000..0474f93 --- /dev/null +++ b/.git_old/objects/ce/c4691bd77129fa53940300e690237320d28655 diff --git a/.git_old/objects/ce/d6b41a25fd8eed3d76fc7f49820887a2366ea1 b/.git_old/objects/ce/d6b41a25fd8eed3d76fc7f49820887a2366ea1 Binary files differnew file mode 100644 index 0000000..163dc57 --- /dev/null +++ b/.git_old/objects/ce/d6b41a25fd8eed3d76fc7f49820887a2366ea1 diff --git a/.git_old/objects/ce/e90743a3282961a6909d201d14117181875d50 b/.git_old/objects/ce/e90743a3282961a6909d201d14117181875d50 Binary files differnew file mode 100644 index 0000000..74fd7f0 --- /dev/null +++ b/.git_old/objects/ce/e90743a3282961a6909d201d14117181875d50 diff --git a/.git_old/objects/d0/c7a2114e7a20a6b048fbecf180e8975d28c6ad b/.git_old/objects/d0/c7a2114e7a20a6b048fbecf180e8975d28c6ad Binary files differnew file mode 100644 index 0000000..3612b14 --- /dev/null +++ b/.git_old/objects/d0/c7a2114e7a20a6b048fbecf180e8975d28c6ad diff --git a/.git_old/objects/d0/f3fd9a7f1b30879ffaf3abc23d8ac0bf0970d6 b/.git_old/objects/d0/f3fd9a7f1b30879ffaf3abc23d8ac0bf0970d6 Binary files differnew file mode 100644 index 0000000..7e70e90 --- /dev/null +++ b/.git_old/objects/d0/f3fd9a7f1b30879ffaf3abc23d8ac0bf0970d6 diff --git a/.git_old/objects/d2/0cc62fa2decdcf6273020653a007502c5582c4 b/.git_old/objects/d2/0cc62fa2decdcf6273020653a007502c5582c4 Binary files differnew file mode 100644 index 0000000..b3560b6 --- /dev/null +++ b/.git_old/objects/d2/0cc62fa2decdcf6273020653a007502c5582c4 diff --git a/.git_old/objects/d2/2d2becdabb718538bf01fd37026bb3dbbba44e b/.git_old/objects/d2/2d2becdabb718538bf01fd37026bb3dbbba44e Binary files differnew file mode 100644 index 0000000..a6864da --- /dev/null +++ b/.git_old/objects/d2/2d2becdabb718538bf01fd37026bb3dbbba44e diff --git a/.git_old/objects/d2/deb82521f8094dfe65c79298453a7f67788f6e b/.git_old/objects/d2/deb82521f8094dfe65c79298453a7f67788f6e Binary files differnew file mode 100644 index 0000000..151eff0 --- /dev/null +++ b/.git_old/objects/d2/deb82521f8094dfe65c79298453a7f67788f6e diff --git a/.git_old/objects/d3/71423f5f2c572789da7a118e5aef799f58d8f4 b/.git_old/objects/d3/71423f5f2c572789da7a118e5aef799f58d8f4 Binary files differnew file mode 100644 index 0000000..a8a4198 --- /dev/null +++ b/.git_old/objects/d3/71423f5f2c572789da7a118e5aef799f58d8f4 diff --git a/.git_old/objects/d3/c76016f2c463d87a4972ce937d02fff6901f71 b/.git_old/objects/d3/c76016f2c463d87a4972ce937d02fff6901f71 Binary files differnew file mode 100644 index 0000000..360184a --- /dev/null +++ b/.git_old/objects/d3/c76016f2c463d87a4972ce937d02fff6901f71 diff --git a/.git_old/objects/d8/13efb8bcb4357bc8506574b2c49346b239683c b/.git_old/objects/d8/13efb8bcb4357bc8506574b2c49346b239683c Binary files differnew file mode 100644 index 0000000..0da1093 --- /dev/null +++ b/.git_old/objects/d8/13efb8bcb4357bc8506574b2c49346b239683c diff --git a/.git_old/objects/d8/1a8e22eae44ad1084ec867bace3185c6dbf250 b/.git_old/objects/d8/1a8e22eae44ad1084ec867bace3185c6dbf250 Binary files differnew file mode 100644 index 0000000..ac8fe81 --- /dev/null +++ b/.git_old/objects/d8/1a8e22eae44ad1084ec867bace3185c6dbf250 diff --git a/.git_old/objects/db/cb3be78d0b30fd6494e2c3a79247615c04dc8e b/.git_old/objects/db/cb3be78d0b30fd6494e2c3a79247615c04dc8e Binary files differnew file mode 100644 index 0000000..630626f --- /dev/null +++ b/.git_old/objects/db/cb3be78d0b30fd6494e2c3a79247615c04dc8e diff --git a/.git_old/objects/df/687f2eb87052e9fe4d2dcbfc169d9495bfff74 b/.git_old/objects/df/687f2eb87052e9fe4d2dcbfc169d9495bfff74 Binary files differnew file mode 100644 index 0000000..e8d4a2e --- /dev/null +++ b/.git_old/objects/df/687f2eb87052e9fe4d2dcbfc169d9495bfff74 diff --git a/.git_old/objects/df/6cd7f439db8cf3cb8f56981b9d0a7ae294273b b/.git_old/objects/df/6cd7f439db8cf3cb8f56981b9d0a7ae294273b Binary files differnew file mode 100644 index 0000000..01a8e9e --- /dev/null +++ b/.git_old/objects/df/6cd7f439db8cf3cb8f56981b9d0a7ae294273b diff --git a/.git_old/objects/df/7b8f5a55abcb9b2b253c6fda98ace1898881b1 b/.git_old/objects/df/7b8f5a55abcb9b2b253c6fda98ace1898881b1 Binary files differnew file mode 100644 index 0000000..daac9ab --- /dev/null +++ b/.git_old/objects/df/7b8f5a55abcb9b2b253c6fda98ace1898881b1 diff --git a/.git_old/objects/df/c1ea41554e16354672e7512a15bdcdbd4c8386 b/.git_old/objects/df/c1ea41554e16354672e7512a15bdcdbd4c8386 Binary files differnew file mode 100644 index 0000000..8c4d749 --- /dev/null +++ b/.git_old/objects/df/c1ea41554e16354672e7512a15bdcdbd4c8386 diff --git a/.git_old/objects/df/d4e7d744e8ce6bb2d659a89668241ad98dcd8e b/.git_old/objects/df/d4e7d744e8ce6bb2d659a89668241ad98dcd8e Binary files differnew file mode 100644 index 0000000..503a987 --- /dev/null +++ b/.git_old/objects/df/d4e7d744e8ce6bb2d659a89668241ad98dcd8e diff --git a/.git_old/objects/df/ed011abd3ec6df00beea7615cff44a1fdf9af2 b/.git_old/objects/df/ed011abd3ec6df00beea7615cff44a1fdf9af2 Binary files differnew file mode 100644 index 0000000..db77de3 --- /dev/null +++ b/.git_old/objects/df/ed011abd3ec6df00beea7615cff44a1fdf9af2 diff --git a/.git_old/objects/e1/18db677944d8c23af685dfd5295a797590c5e1 b/.git_old/objects/e1/18db677944d8c23af685dfd5295a797590c5e1 Binary files differnew file mode 100644 index 0000000..c99e6a9 --- /dev/null +++ b/.git_old/objects/e1/18db677944d8c23af685dfd5295a797590c5e1 diff --git a/.git_old/objects/e1/7dfd4a0004da22960c92deb1647099cb45702f b/.git_old/objects/e1/7dfd4a0004da22960c92deb1647099cb45702f new file mode 100644 index 0000000..9843f39 --- /dev/null +++ b/.git_old/objects/e1/7dfd4a0004da22960c92deb1647099cb45702f @@ -0,0 +1,2 @@ +xAo {_a8Wk4`71Iն-2<{2eĊk:DiP&}L? +[cy57p8-eU?Bhymö1hk'\( >oy㤱SyRgH%gT$B=.4npBl!t}Së#5FѨN7#݄_tG8ϯЈ%-p 74]4Eg;Rq
\ No newline at end of file diff --git a/.git_old/objects/e2/9ca2a61524a204219a142d527b4833cea5047f b/.git_old/objects/e2/9ca2a61524a204219a142d527b4833cea5047f Binary files differnew file mode 100644 index 0000000..b68b939 --- /dev/null +++ b/.git_old/objects/e2/9ca2a61524a204219a142d527b4833cea5047f diff --git a/.git_old/objects/e3/08b606d4e63455057c08a43e74c5631e17eb15 b/.git_old/objects/e3/08b606d4e63455057c08a43e74c5631e17eb15 Binary files differnew file mode 100644 index 0000000..5b9d403 --- /dev/null +++ b/.git_old/objects/e3/08b606d4e63455057c08a43e74c5631e17eb15 diff --git a/.git_old/objects/e3/bbf225aa3310cdfeec2fe5513cae6de42f7d43 b/.git_old/objects/e3/bbf225aa3310cdfeec2fe5513cae6de42f7d43 Binary files differnew file mode 100644 index 0000000..b0fd71f --- /dev/null +++ b/.git_old/objects/e3/bbf225aa3310cdfeec2fe5513cae6de42f7d43 diff --git a/.git_old/objects/e3/d61961db69772dab111401f27b911b8a74ef5e b/.git_old/objects/e3/d61961db69772dab111401f27b911b8a74ef5e Binary files differnew file mode 100644 index 0000000..e628c65 --- /dev/null +++ b/.git_old/objects/e3/d61961db69772dab111401f27b911b8a74ef5e diff --git a/.git_old/objects/e3/ed27d64e17905f2ea4e370622d916446eba9f6 b/.git_old/objects/e3/ed27d64e17905f2ea4e370622d916446eba9f6 Binary files differnew file mode 100644 index 0000000..6b3a626 --- /dev/null +++ b/.git_old/objects/e3/ed27d64e17905f2ea4e370622d916446eba9f6 diff --git a/.git_old/objects/e7/110ec12c5d2f8269805fd67ead52c8d0e4bf5e b/.git_old/objects/e7/110ec12c5d2f8269805fd67ead52c8d0e4bf5e Binary files differnew file mode 100644 index 0000000..ce1cf1e --- /dev/null +++ b/.git_old/objects/e7/110ec12c5d2f8269805fd67ead52c8d0e4bf5e diff --git a/.git_old/objects/e7/75ac150786e280de9c82067a0623920c20ca8b b/.git_old/objects/e7/75ac150786e280de9c82067a0623920c20ca8b Binary files differnew file mode 100644 index 0000000..6138759 --- /dev/null +++ b/.git_old/objects/e7/75ac150786e280de9c82067a0623920c20ca8b diff --git a/.git_old/objects/e7/e626574780637abd55ae3f2790352e14ce09c3 b/.git_old/objects/e7/e626574780637abd55ae3f2790352e14ce09c3 Binary files differnew file mode 100644 index 0000000..1a0212c --- /dev/null +++ b/.git_old/objects/e7/e626574780637abd55ae3f2790352e14ce09c3 diff --git a/.git_old/objects/e9/0d35d04becf67f5c02e5b2af5eddc71cabede0 b/.git_old/objects/e9/0d35d04becf67f5c02e5b2af5eddc71cabede0 Binary files differnew file mode 100644 index 0000000..92d51a7 --- /dev/null +++ b/.git_old/objects/e9/0d35d04becf67f5c02e5b2af5eddc71cabede0 diff --git a/.git_old/objects/e9/76589d8a6ad227acfbfabf16c01b6f7878bd5d b/.git_old/objects/e9/76589d8a6ad227acfbfabf16c01b6f7878bd5d Binary files differnew file mode 100644 index 0000000..8f89f80 --- /dev/null +++ b/.git_old/objects/e9/76589d8a6ad227acfbfabf16c01b6f7878bd5d diff --git a/.git_old/objects/e9/eed802e7df5d6989158c3bcfc58cd30dea7d81 b/.git_old/objects/e9/eed802e7df5d6989158c3bcfc58cd30dea7d81 Binary files differnew file mode 100644 index 0000000..7f6d87a --- /dev/null +++ b/.git_old/objects/e9/eed802e7df5d6989158c3bcfc58cd30dea7d81 diff --git a/.git_old/objects/ea/0cd6fbb8719ccb107dc5f4dadf33a55e521b5d b/.git_old/objects/ea/0cd6fbb8719ccb107dc5f4dadf33a55e521b5d Binary files differnew file mode 100644 index 0000000..22c6fd4 --- /dev/null +++ b/.git_old/objects/ea/0cd6fbb8719ccb107dc5f4dadf33a55e521b5d diff --git a/.git_old/objects/ea/53e153faa830df95cdadafef5929e15b62b02c b/.git_old/objects/ea/53e153faa830df95cdadafef5929e15b62b02c Binary files differnew file mode 100644 index 0000000..9bb8914 --- /dev/null +++ b/.git_old/objects/ea/53e153faa830df95cdadafef5929e15b62b02c diff --git a/.git_old/objects/eb/31c9e51493408788b2b315dd3884c0d61de43c b/.git_old/objects/eb/31c9e51493408788b2b315dd3884c0d61de43c Binary files differnew file mode 100644 index 0000000..4f4583f --- /dev/null +++ b/.git_old/objects/eb/31c9e51493408788b2b315dd3884c0d61de43c diff --git a/.git_old/objects/eb/4a58c0855a598147a76b0e6f013637114951c9 b/.git_old/objects/eb/4a58c0855a598147a76b0e6f013637114951c9 Binary files differnew file mode 100644 index 0000000..2a653e1 --- /dev/null +++ b/.git_old/objects/eb/4a58c0855a598147a76b0e6f013637114951c9 diff --git a/.git_old/objects/eb/6b865feba6c1b2dc07bfdb842016832cef1016 b/.git_old/objects/eb/6b865feba6c1b2dc07bfdb842016832cef1016 Binary files differnew file mode 100644 index 0000000..a3e674d --- /dev/null +++ b/.git_old/objects/eb/6b865feba6c1b2dc07bfdb842016832cef1016 diff --git a/.git_old/objects/eb/ded20acfd7137ff458c81c66914332f66e0d5d b/.git_old/objects/eb/ded20acfd7137ff458c81c66914332f66e0d5d Binary files differnew file mode 100644 index 0000000..0122b40 --- /dev/null +++ b/.git_old/objects/eb/ded20acfd7137ff458c81c66914332f66e0d5d diff --git a/.git_old/objects/ec/0fb6914d980e6632862e47a5e62a76b4052db4 b/.git_old/objects/ec/0fb6914d980e6632862e47a5e62a76b4052db4 Binary files differnew file mode 100644 index 0000000..441b4b3 --- /dev/null +++ b/.git_old/objects/ec/0fb6914d980e6632862e47a5e62a76b4052db4 diff --git a/.git_old/objects/ec/29cec978359d9c1494f9d95d490a3c67638eaa b/.git_old/objects/ec/29cec978359d9c1494f9d95d490a3c67638eaa Binary files differnew file mode 100644 index 0000000..fbb1607 --- /dev/null +++ b/.git_old/objects/ec/29cec978359d9c1494f9d95d490a3c67638eaa diff --git a/.git_old/objects/ec/72700df2d4cce63f0018044d53a0ea3da5548b b/.git_old/objects/ec/72700df2d4cce63f0018044d53a0ea3da5548b Binary files differnew file mode 100644 index 0000000..6f8958c --- /dev/null +++ b/.git_old/objects/ec/72700df2d4cce63f0018044d53a0ea3da5548b diff --git a/.git_old/objects/ec/8ad90f2b25d014115edba4935bf6feb9fe78e4 b/.git_old/objects/ec/8ad90f2b25d014115edba4935bf6feb9fe78e4 Binary files differnew file mode 100644 index 0000000..64e355c --- /dev/null +++ b/.git_old/objects/ec/8ad90f2b25d014115edba4935bf6feb9fe78e4 diff --git a/.git_old/objects/ec/c213ea7e44f0b519db95d91a089ff35043998e b/.git_old/objects/ec/c213ea7e44f0b519db95d91a089ff35043998e Binary files differnew file mode 100644 index 0000000..1d21b72 --- /dev/null +++ b/.git_old/objects/ec/c213ea7e44f0b519db95d91a089ff35043998e diff --git a/.git_old/objects/ec/dd4fb5aa85228b167d95327dd69274dc0efda4 b/.git_old/objects/ec/dd4fb5aa85228b167d95327dd69274dc0efda4 new file mode 100644 index 0000000..7d75ad1 --- /dev/null +++ b/.git_old/objects/ec/dd4fb5aa85228b167d95327dd69274dc0efda4 @@ -0,0 +1 @@ +xQ]k sEĨ1}`dAM~+S{xխeɇ2mz>e#rhs!V!4!>U}p
<vhU.dCo>O>NRF3'PtT]gm iNT:_[g|*,J*,hVJ0~1**Д4#.v>kgMt{cAv0b9]w!<Z=n]k]{ELĴ_LvWRë4wHWb1[ ̹@?uvΑoo(
\ No newline at end of file diff --git a/.git_old/objects/ec/e2739145b3de04f61e5649cd8de77827e5f8e7 b/.git_old/objects/ec/e2739145b3de04f61e5649cd8de77827e5f8e7 Binary files differnew file mode 100644 index 0000000..2d15ed2 --- /dev/null +++ b/.git_old/objects/ec/e2739145b3de04f61e5649cd8de77827e5f8e7 diff --git a/.git_old/objects/ec/e82d4c61d6e6880e3f68f16f3071ca758a37cf b/.git_old/objects/ec/e82d4c61d6e6880e3f68f16f3071ca758a37cf Binary files differnew file mode 100644 index 0000000..eadfba2 --- /dev/null +++ b/.git_old/objects/ec/e82d4c61d6e6880e3f68f16f3071ca758a37cf diff --git a/.git_old/objects/ed/45ee1e0c4fe5e8e1393101cc3f92e2fc4d1845 b/.git_old/objects/ed/45ee1e0c4fe5e8e1393101cc3f92e2fc4d1845 Binary files differnew file mode 100644 index 0000000..89bba71 --- /dev/null +++ b/.git_old/objects/ed/45ee1e0c4fe5e8e1393101cc3f92e2fc4d1845 diff --git a/.git_old/objects/ed/f5541ff0f904daea392da7e829faa8b78e6d01 b/.git_old/objects/ed/f5541ff0f904daea392da7e829faa8b78e6d01 Binary files differnew file mode 100644 index 0000000..04b1ee9 --- /dev/null +++ b/.git_old/objects/ed/f5541ff0f904daea392da7e829faa8b78e6d01 diff --git a/.git_old/objects/ee/738fa9f4b5854b16a483800c2fc1c72733d59d b/.git_old/objects/ee/738fa9f4b5854b16a483800c2fc1c72733d59d Binary files differnew file mode 100644 index 0000000..349853b --- /dev/null +++ b/.git_old/objects/ee/738fa9f4b5854b16a483800c2fc1c72733d59d diff --git a/.git_old/objects/ee/7736abe15ca2b9e0da3f36ae994b13a0dfd7d6 b/.git_old/objects/ee/7736abe15ca2b9e0da3f36ae994b13a0dfd7d6 Binary files differnew file mode 100644 index 0000000..c6d1d4e --- /dev/null +++ b/.git_old/objects/ee/7736abe15ca2b9e0da3f36ae994b13a0dfd7d6 diff --git a/.git_old/objects/ee/7bb7d8fa485db20d433c32fee61aac8f916ab4 b/.git_old/objects/ee/7bb7d8fa485db20d433c32fee61aac8f916ab4 Binary files differnew file mode 100644 index 0000000..b74e344 --- /dev/null +++ b/.git_old/objects/ee/7bb7d8fa485db20d433c32fee61aac8f916ab4 diff --git a/.git_old/objects/ee/8588127461d8cbf66f763fae6cfa40431404d5 b/.git_old/objects/ee/8588127461d8cbf66f763fae6cfa40431404d5 Binary files differnew file mode 100644 index 0000000..b1c04d0 --- /dev/null +++ b/.git_old/objects/ee/8588127461d8cbf66f763fae6cfa40431404d5 diff --git a/.git_old/objects/ef/0a9a7ae755497cdb90dedb21a8ffdbc82966ae b/.git_old/objects/ef/0a9a7ae755497cdb90dedb21a8ffdbc82966ae new file mode 100644 index 0000000..dd458a1 --- /dev/null +++ b/.git_old/objects/ef/0a9a7ae755497cdb90dedb21a8ffdbc82966ae @@ -0,0 +1,2 @@ +xuj0`Ȣ. qH3Хt %[s-d Y6S.}>Zehs8\&'Fkt%^2r6.-ŋ]4\4lZ?v [2.3:II?BW2.*%pCn +dƥز\;U`i0"p6^wi]X]4m|;%0\%I
\ No newline at end of file diff --git a/.git_old/objects/ef/466401365f4b7a28f709f16a1707115799f3dc b/.git_old/objects/ef/466401365f4b7a28f709f16a1707115799f3dc Binary files differnew file mode 100644 index 0000000..0e70fe7 --- /dev/null +++ b/.git_old/objects/ef/466401365f4b7a28f709f16a1707115799f3dc diff --git a/.git_old/objects/ef/945c56aee06e5becbe7e54df3582999b16ad26 b/.git_old/objects/ef/945c56aee06e5becbe7e54df3582999b16ad26 Binary files differnew file mode 100644 index 0000000..5686663 --- /dev/null +++ b/.git_old/objects/ef/945c56aee06e5becbe7e54df3582999b16ad26 diff --git a/.git_old/objects/ef/9b01a66abea25eda3aa7c53b6499bb20a461ba b/.git_old/objects/ef/9b01a66abea25eda3aa7c53b6499bb20a461ba Binary files differnew file mode 100644 index 0000000..818546c --- /dev/null +++ b/.git_old/objects/ef/9b01a66abea25eda3aa7c53b6499bb20a461ba diff --git a/.git_old/objects/ef/beac6f7efad8eaa5ea44c59d1eccaf7ffe1626 b/.git_old/objects/ef/beac6f7efad8eaa5ea44c59d1eccaf7ffe1626 Binary files differnew file mode 100644 index 0000000..7468961 --- /dev/null +++ b/.git_old/objects/ef/beac6f7efad8eaa5ea44c59d1eccaf7ffe1626 diff --git a/.git_old/objects/f2/7142bab679c45b6f768b2452eae133b69a5eda b/.git_old/objects/f2/7142bab679c45b6f768b2452eae133b69a5eda Binary files differnew file mode 100644 index 0000000..be033db --- /dev/null +++ b/.git_old/objects/f2/7142bab679c45b6f768b2452eae133b69a5eda diff --git a/.git_old/objects/f2/722d0b67c0ee0d6064307ae9a15f354401e2eb b/.git_old/objects/f2/722d0b67c0ee0d6064307ae9a15f354401e2eb Binary files differnew file mode 100644 index 0000000..f76a7e2 --- /dev/null +++ b/.git_old/objects/f2/722d0b67c0ee0d6064307ae9a15f354401e2eb diff --git a/.git_old/objects/f3/31e04209fa4fd05e428b8dc418fb840af3a177 b/.git_old/objects/f3/31e04209fa4fd05e428b8dc418fb840af3a177 Binary files differnew file mode 100644 index 0000000..313cf28 --- /dev/null +++ b/.git_old/objects/f3/31e04209fa4fd05e428b8dc418fb840af3a177 diff --git a/.git_old/objects/f3/8b16b011b322c80d4ef4e47071292f4e48ce0d b/.git_old/objects/f3/8b16b011b322c80d4ef4e47071292f4e48ce0d Binary files differnew file mode 100644 index 0000000..a7a084a --- /dev/null +++ b/.git_old/objects/f3/8b16b011b322c80d4ef4e47071292f4e48ce0d diff --git a/.git_old/objects/f3/ce2910b218507d348bcd3c33b25578ca13c2bc b/.git_old/objects/f3/ce2910b218507d348bcd3c33b25578ca13c2bc Binary files differnew file mode 100644 index 0000000..c7ebd2d --- /dev/null +++ b/.git_old/objects/f3/ce2910b218507d348bcd3c33b25578ca13c2bc diff --git a/.git_old/objects/f4/e021e59dbe8465ecf4406d75491069665f6d40 b/.git_old/objects/f4/e021e59dbe8465ecf4406d75491069665f6d40 Binary files differnew file mode 100644 index 0000000..edf14aa --- /dev/null +++ b/.git_old/objects/f4/e021e59dbe8465ecf4406d75491069665f6d40 diff --git a/.git_old/objects/f6/1e07eccb68da58d5c52079b1f5577a753a50cd b/.git_old/objects/f6/1e07eccb68da58d5c52079b1f5577a753a50cd new file mode 100644 index 0000000..8af9da1 --- /dev/null +++ b/.git_old/objects/f6/1e07eccb68da58d5c52079b1f5577a753a50cd @@ -0,0 +1,2 @@ +x% +@[]mBZu!&H_њcFie4~봰jQb6UAxAo<O'IItiMɏࢬ, t߷Hwђ1b\`V ;T6#[Iۛe9S
\ No newline at end of file diff --git a/.git_old/objects/f6/20c4078293812e22ddf3275f49688a2aacc105 b/.git_old/objects/f6/20c4078293812e22ddf3275f49688a2aacc105 Binary files differnew file mode 100644 index 0000000..6a07ebb --- /dev/null +++ b/.git_old/objects/f6/20c4078293812e22ddf3275f49688a2aacc105 diff --git a/.git_old/objects/f6/4a8c905646bb3632482d7654623f5df9c2fd31 b/.git_old/objects/f6/4a8c905646bb3632482d7654623f5df9c2fd31 Binary files differnew file mode 100644 index 0000000..c7d7ee7 --- /dev/null +++ b/.git_old/objects/f6/4a8c905646bb3632482d7654623f5df9c2fd31 diff --git a/.git_old/objects/f6/8cf44af94ff576253ddef50bf5cd5fd601b35a b/.git_old/objects/f6/8cf44af94ff576253ddef50bf5cd5fd601b35a Binary files differnew file mode 100644 index 0000000..27905be --- /dev/null +++ b/.git_old/objects/f6/8cf44af94ff576253ddef50bf5cd5fd601b35a diff --git a/.git_old/objects/f6/a2246c29022e40a77ccdad5a1f45dd6d0c5f8b b/.git_old/objects/f6/a2246c29022e40a77ccdad5a1f45dd6d0c5f8b Binary files differnew file mode 100644 index 0000000..2cc9bce --- /dev/null +++ b/.git_old/objects/f6/a2246c29022e40a77ccdad5a1f45dd6d0c5f8b diff --git a/.git_old/objects/f7/6dd238ade08917e6712764a16a22005a50573d b/.git_old/objects/f7/6dd238ade08917e6712764a16a22005a50573d Binary files differnew file mode 100644 index 0000000..b3a2d99 --- /dev/null +++ b/.git_old/objects/f7/6dd238ade08917e6712764a16a22005a50573d diff --git a/.git_old/objects/f8/8aec1ab2b5f690f03a157f3bbeb41871cebc54 b/.git_old/objects/f8/8aec1ab2b5f690f03a157f3bbeb41871cebc54 Binary files differnew file mode 100644 index 0000000..9ce74e5 --- /dev/null +++ b/.git_old/objects/f8/8aec1ab2b5f690f03a157f3bbeb41871cebc54 diff --git a/.git_old/objects/f9/0af36980c40ad1db629290a75b8ab4129dbde4 b/.git_old/objects/f9/0af36980c40ad1db629290a75b8ab4129dbde4 Binary files differnew file mode 100644 index 0000000..5834775 --- /dev/null +++ b/.git_old/objects/f9/0af36980c40ad1db629290a75b8ab4129dbde4 diff --git a/.git_old/objects/f9/22af3427acb58974c3d1007ed8cf67842e3750 b/.git_old/objects/f9/22af3427acb58974c3d1007ed8cf67842e3750 Binary files differnew file mode 100644 index 0000000..f7259fd --- /dev/null +++ b/.git_old/objects/f9/22af3427acb58974c3d1007ed8cf67842e3750 diff --git a/.git_old/objects/f9/4ba4e7c176037d781fa462a5cc388f1d85de12 b/.git_old/objects/f9/4ba4e7c176037d781fa462a5cc388f1d85de12 Binary files differnew file mode 100644 index 0000000..cd76b52 --- /dev/null +++ b/.git_old/objects/f9/4ba4e7c176037d781fa462a5cc388f1d85de12 diff --git a/.git_old/objects/f9/98af32077eb6c1ca42d245aa8fd091561bd5f4 b/.git_old/objects/f9/98af32077eb6c1ca42d245aa8fd091561bd5f4 Binary files differnew file mode 100644 index 0000000..6ca3f1c --- /dev/null +++ b/.git_old/objects/f9/98af32077eb6c1ca42d245aa8fd091561bd5f4 diff --git a/.git_old/objects/fa/0c0b7ffc10f9ccce7682b6506eb2965a06ad04 b/.git_old/objects/fa/0c0b7ffc10f9ccce7682b6506eb2965a06ad04 Binary files differnew file mode 100644 index 0000000..d318aa3 --- /dev/null +++ b/.git_old/objects/fa/0c0b7ffc10f9ccce7682b6506eb2965a06ad04 diff --git a/.git_old/objects/fa/17a0a845921a7aa7e6622e3ee78f2ffbd31ff7 b/.git_old/objects/fa/17a0a845921a7aa7e6622e3ee78f2ffbd31ff7 Binary files differnew file mode 100644 index 0000000..2da8cd1 --- /dev/null +++ b/.git_old/objects/fa/17a0a845921a7aa7e6622e3ee78f2ffbd31ff7 diff --git a/.git_old/objects/fa/22a1ea430a015a69cb9aa1acd8111cb446e24f b/.git_old/objects/fa/22a1ea430a015a69cb9aa1acd8111cb446e24f Binary files differnew file mode 100644 index 0000000..e3e9948 --- /dev/null +++ b/.git_old/objects/fa/22a1ea430a015a69cb9aa1acd8111cb446e24f diff --git a/.git_old/objects/fa/5c971cf492cc6b1330fc24a4a796201520280a b/.git_old/objects/fa/5c971cf492cc6b1330fc24a4a796201520280a Binary files differnew file mode 100644 index 0000000..68a3e0f --- /dev/null +++ b/.git_old/objects/fa/5c971cf492cc6b1330fc24a4a796201520280a diff --git a/.git_old/objects/fa/5faf7e98b2b94117ad8098f2c98aa98fe65023 b/.git_old/objects/fa/5faf7e98b2b94117ad8098f2c98aa98fe65023 Binary files differnew file mode 100644 index 0000000..f7807e0 --- /dev/null +++ b/.git_old/objects/fa/5faf7e98b2b94117ad8098f2c98aa98fe65023 diff --git a/.git_old/objects/fa/902fa8b4ec3b0b75d9e4917b34547e68e2913d b/.git_old/objects/fa/902fa8b4ec3b0b75d9e4917b34547e68e2913d Binary files differnew file mode 100644 index 0000000..4669dac --- /dev/null +++ b/.git_old/objects/fa/902fa8b4ec3b0b75d9e4917b34547e68e2913d diff --git a/.git_old/objects/fa/f3fa860c76a47caf3feb6eaa1eb0438b854c9a b/.git_old/objects/fa/f3fa860c76a47caf3feb6eaa1eb0438b854c9a Binary files differnew file mode 100644 index 0000000..eba6dc2 --- /dev/null +++ b/.git_old/objects/fa/f3fa860c76a47caf3feb6eaa1eb0438b854c9a diff --git a/.git_old/objects/fa/fdd7f99a06a6607e659b77cde6ec7be9caecca b/.git_old/objects/fa/fdd7f99a06a6607e659b77cde6ec7be9caecca Binary files differnew file mode 100644 index 0000000..ded7d5a --- /dev/null +++ b/.git_old/objects/fa/fdd7f99a06a6607e659b77cde6ec7be9caecca diff --git a/.git_old/objects/fb/68f0ae06adec33f31cd56c3a89fe14f73f1efb b/.git_old/objects/fb/68f0ae06adec33f31cd56c3a89fe14f73f1efb Binary files differnew file mode 100644 index 0000000..3c1d6dd --- /dev/null +++ b/.git_old/objects/fb/68f0ae06adec33f31cd56c3a89fe14f73f1efb diff --git a/.git_old/objects/fb/6af826ac23fa50d7bcfdabe66b1bf2fc22c623 b/.git_old/objects/fb/6af826ac23fa50d7bcfdabe66b1bf2fc22c623 Binary files differnew file mode 100644 index 0000000..349b938 --- /dev/null +++ b/.git_old/objects/fb/6af826ac23fa50d7bcfdabe66b1bf2fc22c623 diff --git a/.git_old/objects/fb/70b39ac2121710d6b1524cfcd132dd2611e97b b/.git_old/objects/fb/70b39ac2121710d6b1524cfcd132dd2611e97b Binary files differnew file mode 100644 index 0000000..b19c534 --- /dev/null +++ b/.git_old/objects/fb/70b39ac2121710d6b1524cfcd132dd2611e97b diff --git a/.git_old/objects/fb/917286390153ec7ee16ad1843a743663e7e523 b/.git_old/objects/fb/917286390153ec7ee16ad1843a743663e7e523 Binary files differnew file mode 100644 index 0000000..36edb87 --- /dev/null +++ b/.git_old/objects/fb/917286390153ec7ee16ad1843a743663e7e523 diff --git a/.git_old/objects/fb/e805bfa690a1a8fdd8f39ae21d63deb2401583 b/.git_old/objects/fb/e805bfa690a1a8fdd8f39ae21d63deb2401583 Binary files differnew file mode 100644 index 0000000..c56e167 --- /dev/null +++ b/.git_old/objects/fb/e805bfa690a1a8fdd8f39ae21d63deb2401583 diff --git a/.git_old/objects/fc/c69b1d93a9a120652ca291c3992c1c749c0cef b/.git_old/objects/fc/c69b1d93a9a120652ca291c3992c1c749c0cef Binary files differnew file mode 100644 index 0000000..9aa050e --- /dev/null +++ b/.git_old/objects/fc/c69b1d93a9a120652ca291c3992c1c749c0cef diff --git a/.git_old/objects/fc/c89967e1bdca9ecd2bcec0eaded60a6bb383e8 b/.git_old/objects/fc/c89967e1bdca9ecd2bcec0eaded60a6bb383e8 new file mode 100644 index 0000000..3622d6e --- /dev/null +++ b/.git_old/objects/fc/c89967e1bdca9ecd2bcec0eaded60a6bb383e8 @@ -0,0 +1,2 @@ +xmOK01xzYfR{]vv(4 IZ_ȍWI],KQYn!4Ψ`>#?dZۆy3{ƍZ
,{p;pQnF} K+.;&S_%odؓ4N{`R`٣JQ +3A\Vf.A$QpY|9twϼ[%qn9IYrC/\
\ No newline at end of file diff --git a/.git_old/objects/fc/e65edcc9e8225fb850b7c7cc145de43fea3e0b b/.git_old/objects/fc/e65edcc9e8225fb850b7c7cc145de43fea3e0b Binary files differnew file mode 100644 index 0000000..cc99820 --- /dev/null +++ b/.git_old/objects/fc/e65edcc9e8225fb850b7c7cc145de43fea3e0b diff --git a/.git_old/objects/fd/442b7b748f5dd75edbf6d63799efc73fb800d1 b/.git_old/objects/fd/442b7b748f5dd75edbf6d63799efc73fb800d1 Binary files differnew file mode 100644 index 0000000..c195283 --- /dev/null +++ b/.git_old/objects/fd/442b7b748f5dd75edbf6d63799efc73fb800d1 diff --git a/.git_old/objects/fd/5e6f29dd615e94dd084c8058074a0b13d7b185 b/.git_old/objects/fd/5e6f29dd615e94dd084c8058074a0b13d7b185 Binary files differnew file mode 100644 index 0000000..4e2f0f1 --- /dev/null +++ b/.git_old/objects/fd/5e6f29dd615e94dd084c8058074a0b13d7b185 diff --git a/.git_old/objects/fd/6a17dcd546ab4bc5921f212815fd5e01dbfac4 b/.git_old/objects/fd/6a17dcd546ab4bc5921f212815fd5e01dbfac4 Binary files differnew file mode 100644 index 0000000..b3b8f56 --- /dev/null +++ b/.git_old/objects/fd/6a17dcd546ab4bc5921f212815fd5e01dbfac4 diff --git a/.git_old/objects/fd/6b42cff4dca52f9ee6da1cc7bbb0259cb3d5cc b/.git_old/objects/fd/6b42cff4dca52f9ee6da1cc7bbb0259cb3d5cc Binary files differnew file mode 100644 index 0000000..76b3b70 --- /dev/null +++ b/.git_old/objects/fd/6b42cff4dca52f9ee6da1cc7bbb0259cb3d5cc diff --git a/.git_old/objects/fe/a533ba3c841fe808815a47b539d0da5579e4b0 b/.git_old/objects/fe/a533ba3c841fe808815a47b539d0da5579e4b0 Binary files differnew file mode 100644 index 0000000..ed1985c --- /dev/null +++ b/.git_old/objects/fe/a533ba3c841fe808815a47b539d0da5579e4b0 diff --git a/.git_old/objects/fe/c0e3208d5675adbdf54e7975b61de582c85c6d b/.git_old/objects/fe/c0e3208d5675adbdf54e7975b61de582c85c6d Binary files differnew file mode 100644 index 0000000..818d6a2 --- /dev/null +++ b/.git_old/objects/fe/c0e3208d5675adbdf54e7975b61de582c85c6d diff --git a/.git_old/objects/ff/0bce599cda81037d54548927f5013f3d00d119 b/.git_old/objects/ff/0bce599cda81037d54548927f5013f3d00d119 Binary files differnew file mode 100644 index 0000000..c09caad --- /dev/null +++ b/.git_old/objects/ff/0bce599cda81037d54548927f5013f3d00d119 diff --git a/.git_old/objects/ff/13715977c2ed4a368b3df7b87f2493c900e562 b/.git_old/objects/ff/13715977c2ed4a368b3df7b87f2493c900e562 Binary files differnew file mode 100644 index 0000000..a7977b1 --- /dev/null +++ b/.git_old/objects/ff/13715977c2ed4a368b3df7b87f2493c900e562 diff --git a/.git_old/objects/ff/3b59a03eb4fd09b406e4ad1cb2f7aadf4ba381 b/.git_old/objects/ff/3b59a03eb4fd09b406e4ad1cb2f7aadf4ba381 Binary files differnew file mode 100644 index 0000000..757800d --- /dev/null +++ b/.git_old/objects/ff/3b59a03eb4fd09b406e4ad1cb2f7aadf4ba381 diff --git a/.git_old/objects/ff/916876ec0156e1aad64cb2bbc20f355bdda9a9 b/.git_old/objects/ff/916876ec0156e1aad64cb2bbc20f355bdda9a9 Binary files differnew file mode 100644 index 0000000..b05ad63 --- /dev/null +++ b/.git_old/objects/ff/916876ec0156e1aad64cb2bbc20f355bdda9a9 diff --git a/.git_old/objects/ff/930a2d64c0c9e8feb152600e74cadc7f467681 b/.git_old/objects/ff/930a2d64c0c9e8feb152600e74cadc7f467681 Binary files differnew file mode 100644 index 0000000..1109b95 --- /dev/null +++ b/.git_old/objects/ff/930a2d64c0c9e8feb152600e74cadc7f467681 diff --git a/.git_old/objects/ff/bd130a1356fe570edcf6e1f34ef77ba0a56a22 b/.git_old/objects/ff/bd130a1356fe570edcf6e1f34ef77ba0a56a22 Binary files differnew file mode 100644 index 0000000..9ae752c --- /dev/null +++ b/.git_old/objects/ff/bd130a1356fe570edcf6e1f34ef77ba0a56a22 diff --git a/.git_old/refs/remotes/github/master b/.git_old/refs/remotes/github/master new file mode 100644 index 0000000..6137a2a --- /dev/null +++ b/.git_old/refs/remotes/github/master @@ -0,0 +1 @@ +2f4283b85337d018fe0ee5d88a132f6476f3d6b0 diff --git a/.git_old/refs/remotes/local/master b/.git_old/refs/remotes/local/master new file mode 100644 index 0000000..b7f0e71 --- /dev/null +++ b/.git_old/refs/remotes/local/master @@ -0,0 +1 @@ +0b3fc43df0f522a9d2b308c79b35870e3afb08db diff --git a/android-app/.gradle_old/8.7/checksums/checksums.lock b/android-app/.gradle_old/8.7/checksums/checksums.lock Binary files differnew file mode 100644 index 0000000..e40cb9a --- /dev/null +++ b/android-app/.gradle_old/8.7/checksums/checksums.lock diff --git a/android-app/.gradle_old/8.7/checksums/md5-checksums.bin b/android-app/.gradle_old/8.7/checksums/md5-checksums.bin Binary files differnew file mode 100644 index 0000000..3695fd6 --- /dev/null +++ b/android-app/.gradle_old/8.7/checksums/md5-checksums.bin diff --git a/android-app/.gradle_old/8.7/checksums/sha1-checksums.bin b/android-app/.gradle_old/8.7/checksums/sha1-checksums.bin Binary files differnew file mode 100644 index 0000000..8a61fc6 --- /dev/null +++ b/android-app/.gradle_old/8.7/checksums/sha1-checksums.bin diff --git a/android-app/.gradle_old/8.7/dependencies-accessors/gc.properties b/android-app/.gradle_old/8.7/dependencies-accessors/gc.properties new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/android-app/.gradle_old/8.7/dependencies-accessors/gc.properties diff --git a/android-app/.gradle_old/8.7/executionHistory/executionHistory.bin b/android-app/.gradle_old/8.7/executionHistory/executionHistory.bin Binary files differnew file mode 100644 index 0000000..b4b4b5d --- /dev/null +++ b/android-app/.gradle_old/8.7/executionHistory/executionHistory.bin diff --git a/android-app/.gradle_old/8.7/executionHistory/executionHistory.lock b/android-app/.gradle_old/8.7/executionHistory/executionHistory.lock Binary files differnew file mode 100644 index 0000000..a947b6c --- /dev/null +++ b/android-app/.gradle_old/8.7/executionHistory/executionHistory.lock diff --git a/android-app/.gradle_old/8.7/fileChanges/last-build.bin b/android-app/.gradle_old/8.7/fileChanges/last-build.bin Binary files differnew file mode 100644 index 0000000..f76dd23 --- /dev/null +++ b/android-app/.gradle_old/8.7/fileChanges/last-build.bin diff --git a/android-app/.gradle_old/8.7/fileHashes/fileHashes.bin b/android-app/.gradle_old/8.7/fileHashes/fileHashes.bin Binary files differnew file mode 100644 index 0000000..ea53e15 --- /dev/null +++ b/android-app/.gradle_old/8.7/fileHashes/fileHashes.bin diff --git a/android-app/.gradle_old/8.7/fileHashes/fileHashes.lock b/android-app/.gradle_old/8.7/fileHashes/fileHashes.lock Binary files differnew file mode 100644 index 0000000..aec713a --- /dev/null +++ b/android-app/.gradle_old/8.7/fileHashes/fileHashes.lock diff --git a/android-app/.gradle_old/8.7/fileHashes/resourceHashesCache.bin b/android-app/.gradle_old/8.7/fileHashes/resourceHashesCache.bin Binary files differnew file mode 100644 index 0000000..06959a3 --- /dev/null +++ b/android-app/.gradle_old/8.7/fileHashes/resourceHashesCache.bin diff --git a/android-app/.gradle_old/8.7/gc.properties b/android-app/.gradle_old/8.7/gc.properties new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/android-app/.gradle_old/8.7/gc.properties diff --git a/android-app/.gradle_old/buildOutputCleanup/buildOutputCleanup.lock b/android-app/.gradle_old/buildOutputCleanup/buildOutputCleanup.lock Binary files differnew file mode 100644 index 0000000..377b8e4 --- /dev/null +++ b/android-app/.gradle_old/buildOutputCleanup/buildOutputCleanup.lock diff --git a/android-app/.gradle_old/buildOutputCleanup/cache.properties b/android-app/.gradle_old/buildOutputCleanup/cache.properties new file mode 100644 index 0000000..36b13e2 --- /dev/null +++ b/android-app/.gradle_old/buildOutputCleanup/cache.properties @@ -0,0 +1,2 @@ +#Fri Mar 13 23:14:04 UTC 2026 +gradle.version=8.7 diff --git a/android-app/.gradle_old/buildOutputCleanup/outputFiles.bin b/android-app/.gradle_old/buildOutputCleanup/outputFiles.bin Binary files differnew file mode 100644 index 0000000..1410b5f --- /dev/null +++ b/android-app/.gradle_old/buildOutputCleanup/outputFiles.bin diff --git a/android-app/.gradle_old/file-system.probe b/android-app/.gradle_old/file-system.probe Binary files differnew file mode 100644 index 0000000..2d053af --- /dev/null +++ b/android-app/.gradle_old/file-system.probe diff --git a/android-app/.gradle_old/vcs-1/gc.properties b/android-app/.gradle_old/vcs-1/gc.properties new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/android-app/.gradle_old/vcs-1/gc.properties diff --git a/android-app/app/src/main/kotlin/org/terst/nav/BarometerData.kt b/android-app/app/src/main/kotlin/org/terst/nav/BarometerData.kt new file mode 100644 index 0000000..5a8ccce --- /dev/null +++ b/android-app/app/src/main/kotlin/org/terst/nav/BarometerData.kt @@ -0,0 +1,42 @@ +package org.terst.nav + +import java.util.Locale + +data class BarometerReading( + val pressureHpa: Float, + val timestamp: Long = System.currentTimeMillis() +) + +enum class PressureTrend { + RISING_FAST, + RISING, + STEADY, + FALLING, + FALLING_FAST; + + override fun toString(): String { + return when (this) { + RISING_FAST -> "Rising Fast" + RISING -> "Rising" + STEADY -> "Steady" + FALLING -> "Falling" + FALLING_FAST -> "Falling Fast" + } + } +} + +data class BarometerStatus( + val currentPressureHpa: Float = 1013.25f, + val trend: PressureTrend = PressureTrend.STEADY, + val pressureChange3h: Float = 0f, + val history: List<BarometerReading> = emptyList() +) { + fun formatPressure(): String { + return String.format(Locale.getDefault(), "%.1f hPa", currentPressureHpa) + } + + fun formatTrend(): String { + val sign = if (pressureChange3h >= 0) "+" else "" + return String.format(Locale.getDefault(), "%s (%s%.1f hPa/3h)", trend.toString(), sign, pressureChange3h) + } +} diff --git a/android-app/app/src/main/kotlin/org/terst/nav/BarometerSensorManager.kt b/android-app/app/src/main/kotlin/org/terst/nav/BarometerSensorManager.kt new file mode 100644 index 0000000..cdd7f76 --- /dev/null +++ b/android-app/app/src/main/kotlin/org/terst/nav/BarometerSensorManager.kt @@ -0,0 +1,99 @@ +package org.terst.nav + +import android.content.Context +import android.hardware.Sensor +import android.hardware.SensorEvent +import android.hardware.SensorEventListener +import android.hardware.SensorManager +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.update +import java.util.concurrent.TimeUnit +import android.util.Log + +class BarometerSensorManager(context: Context) : SensorEventListener { + + private val sensorManager = context.getSystemService(Context.SENSOR_SERVICE) as SensorManager + private val pressureSensor: Sensor? = sensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE) + + private val _barometerStatus = MutableStateFlow(BarometerStatus()) + val barometerStatus: StateFlow<BarometerStatus> = _barometerStatus.asStateFlow() + + private val historyMaxDurationMs = TimeUnit.HOURS.toMillis(24) // Keep 24h history + private val historySampleIntervalMs = TimeUnit.MINUTES.toMillis(15) // Sample every 15 min for history + private var lastHistorySampleTime = 0L + + fun start() { + if (pressureSensor != null) { + sensorManager.registerListener(this, pressureSensor, SensorManager.SENSOR_DELAY_NORMAL) + Log.d("BarometerManager", "Pressure sensor registered") + } else { + Log.w("BarometerManager", "No pressure sensor found on this device") + } + } + + fun stop() { + sensorManager.unregisterListener(this) + Log.d("BarometerManager", "Pressure sensor unregistered") + } + + override fun onSensorChanged(event: SensorEvent) { + if (event.sensor.type == Sensor.TYPE_PRESSURE) { + val pressure = event.values[0] + updateCurrentPressure(pressure) + } + } + + override fun onAccuracyChanged(sensor: Sensor?, accuracy: Int) { + // Not used + } + + private fun updateCurrentPressure(pressure: Float) { + val now = System.currentTimeMillis() + + _barometerStatus.update { currentStatus -> + val isFirstSample = currentStatus.history.isEmpty() + val newHistory = if (isFirstSample || now - lastHistorySampleTime >= historySampleIntervalMs) { + lastHistorySampleTime = now + val updatedHistory = currentStatus.history + BarometerReading(pressure, now) + // Trim history to 24h + updatedHistory.filter { now - it.timestamp <= historyMaxDurationMs } + } else { + currentStatus.history + } + + val change3h = calculatePressureChange(newHistory, now, TimeUnit.HOURS.toMillis(3)) + val trend = determineTrend(change3h) + + currentStatus.copy( + currentPressureHpa = pressure, + trend = trend, + pressureChange3h = change3h, + history = newHistory + ) + } + } + + private fun calculatePressureChange(history: List<BarometerReading>, now: Long, durationMs: Long): Float { + if (history.isEmpty()) return 0f + + val targetTime = now - durationMs + val oldReading = history.find { it.timestamp >= targetTime } ?: history.first() + val currentReading = history.last() + + // If we don't have enough history, we might not be able to calculate a meaningful 3h change + // but we'll return the difference between the oldest available and current. + return currentReading.pressureHpa - oldReading.pressureHpa + } + + private fun determineTrend(change3h: Float): PressureTrend { + return when { + change3h >= 2.0f -> PressureTrend.RISING_FAST + change3h >= 0.5f -> PressureTrend.RISING + change3h <= -2.0f -> PressureTrend.FALLING_FAST + change3h <= -0.5f -> PressureTrend.FALLING + else -> PressureTrend.STEADY + } + } +} diff --git a/android-app/app/src/main/kotlin/org/terst/nav/BarometerTrendView.kt b/android-app/app/src/main/kotlin/org/terst/nav/BarometerTrendView.kt new file mode 100644 index 0000000..944d198 --- /dev/null +++ b/android-app/app/src/main/kotlin/org/terst/nav/BarometerTrendView.kt @@ -0,0 +1,72 @@ +package org.terst.nav + +import android.content.Context +import android.graphics.Canvas +import android.graphics.Paint +import android.graphics.Path +import android.util.AttributeSet +import android.view.View +import androidx.core.content.ContextCompat + +class BarometerTrendView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : View(context, attrs, defStyleAttr) { + + private var history: List<BarometerReading> = emptyList() + + private val linePaint = Paint(Paint.ANTI_ALIAS_FLAG).apply { + color = ContextCompat.getColor(context, R.color.instrument_text_normal) + strokeWidth = 4f + style = Paint.Style.STROKE + strokeCap = Paint.Cap.ROUND + strokeJoin = Paint.Join.ROUND + } + + private val gridPaint = Paint(Paint.ANTI_ALIAS_FLAG).apply { + color = ContextCompat.getColor(context, R.color.instrument_text_secondary) + strokeWidth = 1f + style = Paint.Style.STROKE + } + + fun setHistory(newHistory: List<BarometerReading>) { + history = newHistory + invalidate() + } + + override fun onDraw(canvas: Canvas) { + super.onDraw(canvas) + if (history.size < 2) return + + val padding = 20f + val w = width.toFloat() - 2 * padding + val h = height.toFloat() - 2 * padding + + val minP = history.minOf { it.pressureHpa } + val maxP = history.maxOf { it.pressureHpa } + val rangeP = (maxP - minP).coerceAtLeast(1.0f) // Show at least 1 hPa range + + val minT = history.first().timestamp + val maxT = history.last().timestamp + val rangeT = (maxT - minT).coerceAtLeast(1L) + + // Draw simple grid + canvas.drawLine(padding, padding, padding, h + padding, gridPaint) + canvas.drawLine(padding, h + padding, w + padding, h + padding, gridPaint) + + val path = Path() + history.forEachIndexed { index, reading -> + val x = padding + (reading.timestamp - minT).toFloat() / rangeT * w + val y = padding + h - (reading.pressureHpa - minP) / rangeP * h + + if (index == 0) { + path.moveTo(x, y) + } else { + path.lineTo(x, y) + } + } + + canvas.drawPath(path, linePaint) + } +} diff --git a/android-app/app/src/main/kotlin/org/terst/nav/LocationService.kt b/android-app/app/src/main/kotlin/org/terst/nav/LocationService.kt index 22290a5..24eb498 100644 --- a/android-app/app/src/main/kotlin/org/terst/nav/LocationService.kt +++ b/android-app/app/src/main/kotlin/org/terst/nav/LocationService.kt @@ -47,6 +47,7 @@ class LocationService : Service() { private lateinit var fusedLocationClient: FusedLocationProviderClient private lateinit var locationCallback: LocationCallback private lateinit var anchorAlarmManager: AnchorAlarmManager + private lateinit var barometerSensorManager: BarometerSensorManager private val serviceScope = CoroutineScope(Dispatchers.IO + SupervisorJob()) private val NOTIFICATION_CHANNEL_ID = "location_service_channel" @@ -59,8 +60,16 @@ class LocationService : Service() { Log.d("LocationService", "Service created") fusedLocationClient = LocationServices.getFusedLocationProviderClient(this) anchorAlarmManager = AnchorAlarmManager(this) // Initialize with service context + barometerSensorManager = BarometerSensorManager(this) createNotificationChannel() + // Observe barometer status and update our public state + serviceScope.launch { + barometerSensorManager.barometerStatus.collect { status -> + _barometerStatus.value = status + } + } + // Mock tidal current data generator serviceScope.launch { while (true) { @@ -121,10 +130,12 @@ class LocationService : Service() { Log.d("LocationService", "Starting foreground service") startForeground(NOTIFICATION_ID, createNotification()) startLocationUpdatesInternal() + barometerSensorManager.start() } ACTION_STOP_FOREGROUND_SERVICE -> { Log.d("LocationService", "Stopping foreground service") stopLocationUpdatesInternal() + barometerSensorManager.stop() stopSelf() } ACTION_START_ANCHOR_WATCH -> { @@ -158,6 +169,7 @@ class LocationService : Service() { Log.d("LocationService", "Service destroyed") stopLocationUpdatesInternal() anchorAlarmManager.stopAlarm() + barometerSensorManager.stop() _anchorWatchState.value = AnchorWatchState(isActive = false) isAlarmTriggered = false // Reset alarm trigger state serviceScope.cancel() // Cancel the coroutine scope @@ -284,9 +296,12 @@ class LocationService : Service() { get() = _anchorWatchState val tidalCurrentState: StateFlow<TidalCurrentState> get() = _tidalCurrentState + val barometerStatus: StateFlow<BarometerStatus> + get() = _barometerStatus private val _locationFlow = MutableSharedFlow<GpsData>(replay = 1) private val _anchorWatchState = MutableStateFlow(AnchorWatchState()) private val _tidalCurrentState = MutableStateFlow(TidalCurrentState()) + private val _barometerStatus = MutableStateFlow(BarometerStatus()) } } diff --git a/android-app/app/src/main/kotlin/org/terst/nav/MainActivity.kt b/android-app/app/src/main/kotlin/org/terst/nav/MainActivity.kt index b638136..e208892 100644 --- a/android-app/app/src/main/kotlin/org/terst/nav/MainActivity.kt +++ b/android-app/app/src/main/kotlin/org/terst/nav/MainActivity.kt @@ -104,6 +104,9 @@ class MainActivity : AppCompatActivity() { private lateinit var valueVmg: TextView private lateinit var valueDepth: TextView private lateinit var valuePolarPct: TextView + private lateinit var valueBaro: TextView + private lateinit var labelTrend: TextView + private lateinit var barometerTrendView: BarometerTrendView private lateinit var polarDiagramView: PolarDiagramView // Reference to the custom view // Anchor Watch UI elements @@ -134,6 +137,7 @@ class MainActivity : AppCompatActivity() { startLocationService() observeLocationUpdates() // Start observing location updates observeAnchorWatchState() // Start observing anchor watch state + observeBarometerStatus() // Start observing barometer status } else { // Permissions denied, handle the case (e.g., show a message to the user) Toast.makeText(this, "Location permissions denied", Toast.LENGTH_LONG).show() @@ -167,6 +171,7 @@ class MainActivity : AppCompatActivity() { startLocationService() observeLocationUpdates() // Start observing location updates observeAnchorWatchState() // Start observing anchor watch state + observeBarometerStatus() // Start observing barometer status } mapView = findViewById<MapView>(R.id.mapView) @@ -201,6 +206,9 @@ class MainActivity : AppCompatActivity() { valueVmg = findViewById(R.id.value_vmg) valueDepth = findViewById(R.id.value_depth) valuePolarPct = findViewById(R.id.value_polar_pct) + valueBaro = findViewById(R.id.value_baro) + labelTrend = findViewById(R.id.label_trend) + barometerTrendView = findViewById(R.id.barometer_trend_view) // Initialize PolarDiagramView polarDiagramView = findViewById(R.id.polar_diagram_view) @@ -226,7 +234,8 @@ class MainActivity : AppCompatActivity() { sog = "%.1f".format(Locale.getDefault(), simulatedBsp * 0.95), // SOG usually slightly less than BSP vmg = "%.1f".format(Locale.getDefault(), mockPolarTable.curves.firstOrNull { it.twS == simulatedTws }?.calculateVmg(simulatedTwa, simulatedBsp) ?: 0.0), depth = getString(R.string.placeholder_depth_value), - polarPct = "%.0f%%".format(Locale.getDefault(), mockPolarTable.calculatePolarPercentage(simulatedTws, simulatedTwa, simulatedBsp)) + polarPct = "%.0f%%".format(Locale.getDefault(), mockPolarTable.calculatePolarPercentage(simulatedTws, simulatedTwa, simulatedBsp)), + baro = getString(R.string.placeholder_baro_value) ) polarDiagramView.setCurrentPerformance(simulatedTws, simulatedTwa, simulatedBsp) @@ -259,7 +268,8 @@ class MainActivity : AppCompatActivity() { sog = getString(R.string.placeholder_sog_value), vmg = getString(R.string.placeholder_vmg_value), depth = getString(R.string.placeholder_depth_value), - polarPct = getString(R.string.placeholder_polar_value) + polarPct = getString(R.string.placeholder_polar_value), + baro = getString(R.string.placeholder_baro_value) ) fabToggleInstruments.setOnClickListener { @@ -535,6 +545,18 @@ class MainActivity : AppCompatActivity() { } } + private fun observeBarometerStatus() { + lifecycleScope.launch { + LocationService.barometerStatus.collect { status -> + withContext(Dispatchers.Main) { + valueBaro.text = String.format(Locale.getDefault(), "%.1f", status.currentPressureHpa) + labelTrend.text = String.format(Locale.getDefault(), "TREND: %s", status.formatTrend()) + barometerTrendView.setHistory(status.history) + } + } + } + } + private fun observeTidalCurrentState() { lifecycleScope.launch { LocationService.tidalCurrentState.collect { state -> @@ -708,7 +730,8 @@ class MainActivity : AppCompatActivity() { sog: String, vmg: String, depth: String, - polarPct: String + polarPct: String, + baro: String ) { valueAws.text = aws valueTws.text = tws @@ -719,6 +742,7 @@ class MainActivity : AppCompatActivity() { valueVmg.text = vmg valueDepth.text = depth valuePolarPct.text = polarPct + valueBaro.text = baro } override fun onStart() { diff --git a/android-app/app/src/main/kotlin_old/org/terst/nav/AnchorAlarmManager.kt b/android-app/app/src/main/kotlin_old/org/terst/nav/AnchorAlarmManager.kt new file mode 100644 index 0000000..d4423db --- /dev/null +++ b/android-app/app/src/main/kotlin_old/org/terst/nav/AnchorAlarmManager.kt @@ -0,0 +1,108 @@ +package org.terst.nav + +import android.app.NotificationChannel +import android.app.NotificationManager +import android.content.Context +import android.media.AudioAttributes +import android.media.RingtoneManager +import android.net.Uri +import android.os.Build +import android.os.VibrationEffect +import android.os.Vibrator +import android.os.VibratorManager // For API 31+ +import androidx.core.app.NotificationCompat +import androidx.core.app.NotificationManagerCompat + +class AnchorAlarmManager(private val context: Context) { + + private val CHANNEL_ID = "anchor_alarm_channel" + private val NOTIFICATION_ID = 1001 + + private var isAlarming: Boolean = false + private var ringtone: android.media.Ringtone? = null + + init { + createNotificationChannel() + } + + private fun createNotificationChannel() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + val name = "Anchor Alarm" + val descriptionText = "Notifications for anchor drag events" + val importance = NotificationManager.IMPORTANCE_HIGH + val channel = NotificationChannel(CHANNEL_ID, name, importance).apply { + description = descriptionText + } + val notificationManager: NotificationManager = + context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager + notificationManager.createNotificationChannel(channel) + } + } + + @Suppress("DEPRECATION") + private fun getVibrator(): Vibrator? { + return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { + val vibratorManager = context.getSystemService(Context.VIBRATOR_MANAGER_SERVICE) as VibratorManager + vibratorManager.defaultVibrator + } else { + context.getSystemService(Context.VIBRATOR_SERVICE) as Vibrator + } + } + + fun startAlarm() { + if (isAlarming) return + + isAlarming = true + // Play sound + try { + val alarmUri: Uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM) + ringtone = RingtoneManager.getRingtone(context, alarmUri) + ringtone?.audioAttributes = AudioAttributes.Builder() + .setUsage(AudioAttributes.USAGE_ALARM) + .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION) + .build() + ringtone?.play() + } catch (e: Exception) { + e.printStackTrace() + } + + // Vibrate + val vibrator = getVibrator() + if (vibrator?.hasVibrator() == true) { + val pattern = longArrayOf(0, 1000, 1000) // Start immediately, vibrate for 1s, pause for 1s + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + vibrator.vibrate(VibrationEffect.createWaveform(pattern, 0)) // Repeat indefinitely + } else { + vibrator.vibrate(pattern, 0) // Repeat indefinitely + } + } + + // Show persistent notification + showNotification("Anchor Drag Detected!", "Your boat is outside the watch circle.") + } + + fun stopAlarm() { + if (!isAlarming) return + + isAlarming = false + ringtone?.stop() + getVibrator()?.cancel() + NotificationManagerCompat.from(context).cancel(NOTIFICATION_ID) + } + + private fun showNotification(title: String, message: String) { + val builder = NotificationCompat.Builder(context, CHANNEL_ID) + .setSmallIcon(android.R.drawable.ic_dialog_alert) // Replace with a proper icon + .setContentTitle(title) + .setContentText(message) + .setPriority(NotificationCompat.PRIORITY_HIGH) + .setCategory(NotificationCompat.CATEGORY_ALARM) + .setOngoing(true) // Makes the notification persistent + .setAutoCancel(false) // Does not disappear when tapped + .setDefaults(NotificationCompat.DEFAULT_ALL) // Use default sound, vibrate, light (though we manually control sound/vibration) + + with(NotificationManagerCompat.from(context)) { + notify(NOTIFICATION_ID, builder.build()) + } + } +} diff --git a/android-app/app/src/main/kotlin_old/org/terst/nav/AnchorWatchData.kt b/android-app/app/src/main/kotlin_old/org/terst/nav/AnchorWatchData.kt new file mode 100644 index 0000000..03e6a2f --- /dev/null +++ b/android-app/app/src/main/kotlin_old/org/terst/nav/AnchorWatchData.kt @@ -0,0 +1,22 @@ +package org.terst.nav + +import android.location.Location + +data class AnchorWatchState( + val anchorLocation: Location? = null, + val watchCircleRadiusMeters: Double = DEFAULT_WATCH_CIRCLE_RADIUS_METERS, + val setTimeMillis: Long = 0L, + val isActive: Boolean = false +) { + companion object { + const val DEFAULT_WATCH_CIRCLE_RADIUS_METERS = 50.0 // Default 50 meters + } + + fun isDragging(currentLocation: Location): Boolean { + anchorLocation ?: return false // Cannot drag if anchor not set + if (!isActive) return false // Not active, so not dragging + + val distance = anchorLocation.distanceTo(currentLocation) + return distance > watchCircleRadiusMeters + } +} diff --git a/android-app/app/src/main/kotlin_old/org/terst/nav/LocationService.kt b/android-app/app/src/main/kotlin_old/org/terst/nav/LocationService.kt new file mode 100644 index 0000000..4b59139 --- /dev/null +++ b/android-app/app/src/main/kotlin_old/org/terst/nav/LocationService.kt @@ -0,0 +1,254 @@ +package org.terst.nav + +import android.annotation.SuppressLint +import android.app.Notification +import android.app.NotificationChannel +import android.app.NotificationManager +import android.app.PendingIntent +import android.app.Service +import android.content.Context +import android.content.Intent +import android.location.Location +import android.os.IBinder +import android.os.Looper +import androidx.core.app.NotificationCompat +import com.google.android.gms.location.* +import kotlinx.coroutines.flow.MutableSharedFlow +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.SharedFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.update +import android.util.Log +import kotlinx.coroutines.tasks.await +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.SupervisorJob +import kotlinx.coroutines.cancel +import kotlinx.coroutines.launch + +data class GpsData( + val latitude: Double, + val longitude: Double, + val speedOverGround: Float, // m/s + val courseOverGround: Float // degrees +) { + fun toLocation(): Location { + val location = Location("GpsData") + location.latitude = latitude + location.longitude = longitude + location.speed = speedOverGround + location.bearing = courseOverGround + return location + } +} + +class LocationService : Service() { + + private lateinit var fusedLocationClient: FusedLocationProviderClient + private lateinit var locationCallback: LocationCallback + private lateinit var anchorAlarmManager: AnchorAlarmManager + private val serviceScope = CoroutineScope(Dispatchers.IO + SupervisorJob()) + + private val NOTIFICATION_CHANNEL_ID = "location_service_channel" + private val NOTIFICATION_ID = 123 + + private var isAlarmTriggered = false // To prevent repeated alarm triggering + + override fun onCreate() { + super.onCreate() + Log.d("LocationService", "Service created") + fusedLocationClient = LocationServices.getFusedLocationProviderClient(this) + anchorAlarmManager = AnchorAlarmManager(this) // Initialize with service context + createNotificationChannel() + + locationCallback = object : LocationCallback() { + override fun onLocationResult(locationResult: LocationResult) { + locationResult.lastLocation?.let { location -> + val gpsData = GpsData( + latitude = location.latitude, + longitude = location.longitude, + speedOverGround = location.speed, + courseOverGround = location.bearing + ) + serviceScope.launch { + _locationFlow.emit(gpsData) // Emit to shared flow + } + + + // Check for anchor drag if anchor watch is active + _anchorWatchState.update { currentState -> + if (currentState.isActive && currentState.anchorLocation != null) { + val isDragging = currentState.isDragging(location) + if (isDragging) { + Log.w("AnchorWatch", "!!! ANCHOR DRAG DETECTED !!! Distance: ${currentState.anchorLocation.distanceTo(location)}m, Radius: ${currentState.watchCircleRadiusMeters}m") + if (!isAlarmTriggered) { + anchorAlarmManager.startAlarm() + isAlarmTriggered = true + } + } else { + Log.d("AnchorWatch", "Anchor holding. Distance: ${currentState.anchorLocation.distanceTo(location)}m, Radius: ${currentState.watchCircleRadiusMeters}m") + if (isAlarmTriggered) { + anchorAlarmManager.stopAlarm() + isAlarmTriggered = false + } + } + } else { + // If anchor watch is not active, ensure alarm is stopped + if (isAlarmTriggered) { + anchorAlarmManager.stopAlarm() + isAlarmTriggered = false + } + } + currentState + } + } + } + } + } + + override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { + when (intent?.action) { + ACTION_START_FOREGROUND_SERVICE -> { + Log.d("LocationService", "Starting foreground service") + startForeground(NOTIFICATION_ID, createNotification()) + startLocationUpdatesInternal() + } + ACTION_STOP_FOREGROUND_SERVICE -> { + Log.d("LocationService", "Stopping foreground service") + stopLocationUpdatesInternal() + stopSelf() + } + ACTION_START_ANCHOR_WATCH -> { + Log.d("LocationService", "Received ACTION_START_ANCHOR_WATCH") + val radius = intent.getDoubleExtra(EXTRA_WATCH_RADIUS, AnchorWatchState.DEFAULT_WATCH_CIRCLE_RADIUS_METERS) + serviceScope.launch { startAnchorWatch(radius) } + } + ACTION_STOP_ANCHOR_WATCH -> { + Log.d("LocationService", "Received ACTION_STOP_ANCHOR_WATCH") + stopAnchorWatch() + } + ACTION_UPDATE_WATCH_RADIUS -> { + Log.d("LocationService", "Received ACTION_UPDATE_WATCH_RADIUS") + val radius = intent.getDoubleExtra(EXTRA_WATCH_RADIUS, AnchorWatchState.DEFAULT_WATCH_CIRCLE_RADIUS_METERS) + updateWatchCircleRadius(radius) + } + } + return START_NOT_STICKY + } + + override fun onBind(intent: Intent?): IBinder? { + return null // Not a bound service + } + + override fun onDestroy() { + super.onDestroy() + Log.d("LocationService", "Service destroyed") + stopLocationUpdatesInternal() + anchorAlarmManager.stopAlarm() + _anchorWatchState.value = AnchorWatchState(isActive = false) + isAlarmTriggered = false // Reset alarm trigger state + serviceScope.cancel() // Cancel the coroutine scope + } + + @SuppressLint("MissingPermission") + private fun startLocationUpdatesInternal() { + Log.d("LocationService", "Requesting location updates") + val locationRequest = LocationRequest.Builder(Priority.PRIORITY_HIGH_ACCURACY, 1000) + .setMinUpdateIntervalMillis(500) + .build() + fusedLocationClient.requestLocationUpdates( + locationRequest, + locationCallback, + Looper.getMainLooper() + ) + } + + private fun stopLocationUpdatesInternal() { + Log.d("LocationService", "Removing location updates") + fusedLocationClient.removeLocationUpdates(locationCallback) + } + + private fun createNotificationChannel() { + val serviceChannel = NotificationChannel( + NOTIFICATION_CHANNEL_ID, + "Location Service Channel", + NotificationManager.IMPORTANCE_LOW + ) + val manager = getSystemService(NotificationManager::class.java) as NotificationManager + manager.createNotificationChannel(serviceChannel) + } + + private fun createNotification(): Notification { + val notificationIntent = Intent(this, MainActivity::class.java) + val pendingIntent = PendingIntent.getActivity( + this, + 0, + notificationIntent, + PendingIntent.FLAG_IMMUTABLE + ) + + return NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID) + .setContentTitle("Sailing Companion") + .setContentText("Tracking your location in the background...") + .setSmallIcon(R.drawable.ic_anchor) + .setContentIntent(pendingIntent) + .build() + } + + /** + * Starts the anchor watch with the current location as the anchor point. + * @param radiusMeters The watch circle radius in meters. + */ + @SuppressLint("MissingPermission") + suspend fun startAnchorWatch(radiusMeters: Double = AnchorWatchState.DEFAULT_WATCH_CIRCLE_RADIUS_METERS) { + val lastLocation = fusedLocationClient.lastLocation.await() + lastLocation?.let { location -> + _anchorWatchState.update { AnchorWatchState( + anchorLocation = location, + watchCircleRadiusMeters = radiusMeters, + setTimeMillis = System.currentTimeMillis(), + isActive = true + ) } + Log.i("AnchorWatch", "Anchor watch started at lat: ${location.latitude}, lon: ${location.longitude} with radius: ${radiusMeters}m") + } ?: run { + Log.e("AnchorWatch", "Could not start anchor watch: Last known location is null.") + // Handle error, e.g., show a toast to the user + } + } + + /** + * Stops the anchor watch. + */ + fun stopAnchorWatch() { + _anchorWatchState.update { AnchorWatchState(isActive = false) } + Log.i("AnchorWatch", "Anchor watch stopped.") + anchorAlarmManager.stopAlarm() + isAlarmTriggered = false + } + + /** + * Updates the watch circle radius. + */ + fun updateWatchCircleRadius(radiusMeters: Double) { + _anchorWatchState.update { it.copy(watchCircleRadiusMeters = radiusMeters) } + Log.d("AnchorWatch", "Watch circle radius updated to ${radiusMeters}m.") + } + + companion object { + const val ACTION_START_FOREGROUND_SERVICE = "ACTION_START_FOREGROUND_SERVICE" + const val ACTION_STOP_FOREGROUND_SERVICE = "ACTION_STOP_FOREGROUND_SERVICE" + const val ACTION_START_ANCHOR_WATCH = "ACTION_START_ANCHOR_WATCH" + const val ACTION_STOP_ANCHOR_WATCH = "ACTION_STOP_ANCHOR_WATCH" + const val ACTION_UPDATE_WATCH_RADIUS = "ACTION_UPDATE_WATCH_RADIUS" + const val EXTRA_WATCH_RADIUS = "extra_watch_radius" + + // Publicly accessible flows + val locationFlow: SharedFlow<GpsData> + get() = _locationFlow + val anchorWatchState: StateFlow<AnchorWatchState> + get() = _anchorWatchState + + private val _locationFlow = MutableSharedFlow<GpsData>(replay = 1) + private val _anchorWatchState = MutableStateFlow(AnchorWatchState()) + } +} diff --git a/android-app/app/src/main/kotlin_old/org/terst/nav/MainActivity.kt b/android-app/app/src/main/kotlin_old/org/terst/nav/MainActivity.kt new file mode 100644 index 0000000..a32fb18 --- /dev/null +++ b/android-app/app/src/main/kotlin_old/org/terst/nav/MainActivity.kt @@ -0,0 +1,670 @@ +package org.terst.nav + +import android.Manifest +import android.content.pm.PackageManager +import android.graphics.BitmapFactory +import android.location.Location +import android.media.MediaPlayer +import android.os.Build +import android.os.Bundle +import android.content.Intent +import android.util.Log +import android.view.View +import android.widget.Button +import android.widget.LinearLayout +import android.widget.TextView +import android.widget.Toast +import androidx.activity.result.contract.ActivityResultContracts +import androidx.appcompat.app.AppCompatActivity +import androidx.constraintlayout.widget.ConstraintLayout +import androidx.core.content.ContextCompat +import androidx.lifecycle.lifecycleScope +import com.google.android.material.floatingactionbutton.FloatingActionButton +import org.maplibre.android.MapLibre +import org.maplibre.android.maps.MapView +import org.maplibre.android.maps.MapLibreMap +import org.maplibre.android.maps.Style +import org.maplibre.android.style.layers.CircleLayer +import org.maplibre.android.style.layers.PropertyFactory +import org.maplibre.android.style.layers.SymbolLayer +import org.maplibre.android.style.sources.GeoJsonSource +import org.maplibre.geojson.Feature +import org.maplibre.geojson.FeatureCollection +import org.maplibre.geojson.Point +import org.maplibre.geojson.Polygon +import org.maplibre.geojson.LineString +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.flow.distinctUntilChanged +import kotlinx.coroutines.flow.filterNotNull +import kotlinx.coroutines.flow.firstOrNull +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext +import java.util.Locale +import java.util.concurrent.TimeUnit +import kotlin.math.cos +import kotlin.math.sin +import kotlin.math.sqrt +import kotlin.math.atan2 + +data class MobWaypoint( + val latitude: Double, + val longitude: Double, + val timestamp: Long // System.currentTimeMillis() +) + +class MainActivity : AppCompatActivity() { + + private var mapView: MapView? = null + private lateinit var instrumentDisplayContainer: ConstraintLayout + private lateinit var fabToggleInstruments: FloatingActionButton + private lateinit var fabMob: FloatingActionButton + + // MapLibreMap instance + private var maplibreMap: MapLibreMap? = null + + // MapLibre Layers and Sources for Anchor Watch + private val ANCHOR_POINT_SOURCE_ID = "anchor-point-source" + private val ANCHOR_CIRCLE_SOURCE_ID = "anchor-circle-source" + private val ANCHOR_POINT_LAYER_ID = "anchor-point-layer" + private val ANCHOR_CIRCLE_LAYER_ID = "anchor-circle-layer" + private val ANCHOR_ICON_ID = "anchor-icon" + + private var anchorPointSource: GeoJsonSource? = null + private var anchorCircleSource: GeoJsonSource? = null + + // MOB UI elements + private lateinit var mobNavigationContainer: ConstraintLayout + private lateinit var mobValueDistance: TextView + private lateinit var mobValueElapsedTime: TextView + private lateinit var mobRecoveredButton: Button + + // MOB State + private var mobActivated: Boolean = false + private var activeMobWaypoint: MobWaypoint? = null + + // Media player for MOB alarm + private var mobMediaPlayer: MediaPlayer? = null + + // Instrument TextViews + private lateinit var valueAws: TextView + private lateinit var valueTws: TextView + private lateinit var valueHdg: TextView + private lateinit var valueCog: TextView + private lateinit var valueBsp: TextView + private lateinit var valueSog: TextView + private lateinit var valueVmg: TextView + private lateinit var valueDepth: TextView + private lateinit var valuePolarPct: TextView + private lateinit var polarDiagramView: PolarDiagramView // Reference to the custom view + + // Anchor Watch UI elements + private lateinit var fabAnchor: FloatingActionButton + private lateinit var anchorConfigContainer: ConstraintLayout + private lateinit var anchorStatusText: TextView + private lateinit var anchorRadiusText: TextView + private lateinit var buttonDecreaseRadius: Button + private lateinit var buttonIncreaseRadius: Button + private lateinit var buttonSetAnchor: Button + private lateinit var buttonStopAnchor: Button + + private var currentWatchCircleRadius = AnchorWatchState.DEFAULT_WATCH_CIRCLE_RADIUS_METERS + + // Register the permissions callback, which handles the user's response to the + // system permissions dialog. + private val requestPermissionLauncher = + registerForActivityResult(ActivityResultContracts.RequestMultiplePermissions()) { permissions -> + val fineLocationGranted = permissions[Manifest.permission.ACCESS_FINE_LOCATION] == true + val coarseLocationGranted = permissions[Manifest.permission.ACCESS_COARSE_LOCATION] == true + val backgroundLocationGranted = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + permissions[Manifest.permission.ACCESS_BACKGROUND_LOCATION] == true + } else true // Not needed below Android 10 + + if (fineLocationGranted && coarseLocationGranted && backgroundLocationGranted) { + // Permissions granted, start location service and observe updates + Toast.makeText(this, "Location permissions granted", Toast.LENGTH_SHORT).show() + startLocationService() + observeLocationUpdates() // Start observing location updates + observeAnchorWatchState() // Start observing anchor watch state + } else { + // Permissions denied, handle the case (e.g., show a message to the user) + Toast.makeText(this, "Location permissions denied", Toast.LENGTH_LONG).show() + Log.e("MainActivity", "Location permissions denied by user.") + } + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + // MapLibre access token only needed for Mapbox styles, but good practice to initialize + MapLibre.getInstance(this) + setContentView(R.layout.activity_main) + + val permissionsToRequest = mutableListOf( + Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.ACCESS_COARSE_LOCATION + ) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + permissionsToRequest.add(Manifest.permission.ACCESS_BACKGROUND_LOCATION) + } + + // Check and request location permissions + val allPermissionsGranted = permissionsToRequest.all { + ContextCompat.checkSelfPermission(this, it) == PackageManager.PERMISSION_GRANTED + } + + if (!allPermissionsGranted) { + requestPermissionLauncher.launch(permissionsToRequest.toTypedArray()) + } else { + // Permissions already granted, start location service + startLocationService() + observeLocationUpdates() // Start observing location updates + observeAnchorWatchState() // Start observing anchor watch state + } + + mapView = findViewById<MapView>(R.id.mapView) + mapView?.onCreate(savedInstanceState) + mapView?.getMapAsync { maplibreMap -> + this.maplibreMap = maplibreMap // Assign to class member + maplibreMap.setStyle(Style.Builder().fromUri("https://tiles.openseamap.org/seamark/osm-bright/style.json")) { style -> + setupAnchorMapLayers(style) + } + } + + instrumentDisplayContainer = findViewById(R.id.instrument_display_container) + fabToggleInstruments = findViewById(R.id.fab_toggle_instruments) + fabMob = findViewById(R.id.fab_mob) + + // Initialize MOB UI elements + mobNavigationContainer = findViewById(R.id.mob_navigation_container) + mobValueDistance = findViewById(R.id.mob_value_distance) + mobValueElapsedTime = findViewById(R.id.mob_value_elapsed_time) + mobRecoveredButton = findViewById(R.id.mob_recovered_button) + + // Initialize instrument TextViews + valueAws = findViewById(R.id.value_aws) + valueTws = findViewById(R.id.value_tws) + valueHdg = findViewById(R.id.value_hdg) + valueCog = findViewById(R.id.value_cog) + valueBsp = findViewById(R.id.value_bsp) + valueSog = findViewById(R.id.value_sog) + valueVmg = findViewById(R.id.value_vmg) + valueDepth = findViewById(R.id.value_depth) + valuePolarPct = findViewById(R.id.value_polar_pct) + + // Initialize PolarDiagramView + polarDiagramView = findViewById(R.id.polar_diagram_view) + + // Set up mock polar data + val mockPolarTable = createMockPolarTable() + polarDiagramView.setPolarTable(mockPolarTable) + + // Simulate real-time updates for the polar diagram + lifecycleScope.launch { + var simulatedTws = 8.0 + var simulatedTwa = 40.0 + var simulatedBsp = mockPolarTable.interpolateBsp(simulatedTws, simulatedTwa) + + while (true) { + // Update instrument display with current simulated values + updateInstrumentDisplay( + aws = "%.1f".format(Locale.getDefault(), simulatedTws * 1.1), // AWS usually higher than TWS + tws = "%.1f".format(Locale.getDefault(), simulatedTws), + hdg = "---", // No mock for HDG + cog = "---", // No mock for COG + bsp = "%.1f".format(Locale.getDefault(), simulatedBsp), + sog = "%.1f".format(Locale.getDefault(), simulatedBsp * 0.95), // SOG usually slightly less than BSP + vmg = "%.1f".format(Locale.getDefault(), mockPolarTable.curves.firstOrNull { it.twS == simulatedTws }?.calculateVmg(simulatedTwa, simulatedBsp) ?: 0.0), + depth = getString(R.string.placeholder_depth_value), + polarPct = "%.0f%%".format(Locale.getDefault(), mockPolarTable.calculatePolarPercentage(simulatedTws, simulatedTwa, simulatedBsp)) + ) + polarDiagramView.setCurrentPerformance(simulatedTws, simulatedTwa, simulatedBsp) + + // Slowly change TWA to simulate sailing + simulatedTwa += 0.5 // Change by 0.5 degrees + if (simulatedTwa > 170) simulatedTwa = 40.0 // Reset or change direction + simulatedBsp = mockPolarTable.interpolateBsp(simulatedTws, simulatedTwa) + + kotlinx.coroutines.delay(1000) // Update every second + } + } + + // Initialize Anchor Watch UI elements + fabAnchor = findViewById(R.id.fab_anchor) + anchorConfigContainer = findViewById(R.id.anchor_config_container) + anchorStatusText = findViewById(R.id.anchor_status_text) + anchorRadiusText = findViewById(R.id.anchor_radius_text) + buttonDecreaseRadius = findViewById(R.id.button_decrease_radius) + buttonIncreaseRadius = findViewById(R.id.button_increase_radius) + buttonSetAnchor = findViewById(R.id.button_set_anchor) + buttonStopAnchor = findViewById(R.id.button_stop_anchor) + + // Set initial placeholder values + updateInstrumentDisplay( + aws = getString(R.string.placeholder_aws_value), + tws = getString(R.string.placeholder_tws_value), + hdg = getString(R.string.placeholder_hdg_value), + cog = getString(R.string.placeholder_cog_value), + bsp = getString(R.string.placeholder_bsp_value), + sog = getString(R.string.placeholder_sog_value), + vmg = getString(R.string.placeholder_vmg_value), + depth = getString(R.string.placeholder_depth_value), + polarPct = getString(R.string.placeholder_polar_value) + ) + + fabToggleInstruments.setOnClickListener { + if (instrumentDisplayContainer.visibility == View.VISIBLE) { + instrumentDisplayContainer.visibility = View.GONE + mapView?.visibility = View.VISIBLE + } else { + instrumentDisplayContainer.visibility = View.VISIBLE + mapView?.visibility = View.GONE + } + } + + fabMob.setOnClickListener { + activateMob() + } + + fabAnchor.setOnClickListener { + if (anchorConfigContainer.visibility == View.VISIBLE) { + anchorConfigContainer.visibility = View.GONE + } else { + anchorConfigContainer.visibility = View.VISIBLE + // Ensure anchor radius display is updated when shown + anchorRadiusText.text = String.format(Locale.getDefault(), "Radius: %.1fm", currentWatchCircleRadius) + } + } + + buttonDecreaseRadius.setOnClickListener { + currentWatchCircleRadius = (currentWatchCircleRadius - 5).coerceAtLeast(10.0) // Minimum 10m + anchorRadiusText.text = String.format(Locale.getDefault(), "Radius: %.1fm", currentWatchCircleRadius) + val intent = Intent(this, LocationService::class.java).apply { + action = LocationService.ACTION_UPDATE_WATCH_RADIUS + putExtra(LocationService.EXTRA_WATCH_RADIUS, currentWatchCircleRadius) + } + startService(intent) + } + + buttonIncreaseRadius.setOnClickListener { + currentWatchCircleRadius = (currentWatchCircleRadius + 5).coerceAtMost(200.0) // Maximum 200m + anchorRadiusText.text = String.format(Locale.getDefault(), "Radius: %.1fm", currentWatchCircleRadius) + val intent = Intent(this, LocationService::class.java).apply { + action = LocationService.ACTION_UPDATE_WATCH_RADIUS + putExtra(LocationService.EXTRA_WATCH_RADIUS, currentWatchCircleRadius) + } + startService(intent) + } + + buttonSetAnchor.setOnClickListener { + val intent = Intent(this, LocationService::class.java).apply { + action = LocationService.ACTION_START_ANCHOR_WATCH + putExtra(LocationService.EXTRA_WATCH_RADIUS, currentWatchCircleRadius) + } + startService(intent) + Toast.makeText(this@MainActivity, "Anchor watch set!", Toast.LENGTH_SHORT).show() + } + + buttonStopAnchor.setOnClickListener { + val intent = Intent(this, LocationService::class.java).apply { + action = LocationService.ACTION_STOP_ANCHOR_WATCH + } + startService(intent) + Toast.makeText(this@MainActivity, "Anchor watch stopped.", Toast.LENGTH_SHORT).show() + } + + mobRecoveredButton.setOnClickListener { + recoverMob() + } + } + + private fun startLocationService() { + val intent = Intent(this, LocationService::class.java).apply { + action = LocationService.ACTION_START_FOREGROUND_SERVICE + } + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + startForegroundService(intent) + } else { + startService(intent) + } + } + + private fun stopLocationService() { + val intent = Intent(this, LocationService::class.java).apply { + action = LocationService.ACTION_STOP_FOREGROUND_SERVICE + } + stopService(intent) + } + + private fun createMockPolarTable(): PolarTable { + // Example polar data for a hypothetical boat + // TWS 6 knots + val polar6k = PolarCurve( + twS = 6.0, + points = listOf( + PolarPoint(tWa = 30.0, bSp = 3.0), + PolarPoint(tWa = 45.0, bSp = 4.0), + PolarPoint(tWa = 60.0, bSp = 4.5), + PolarPoint(tWa = 90.0, bSp = 4.8), + PolarPoint(tWa = 120.0, bSp = 4.0), + PolarPoint(tWa = 150.0, bSp = 3.0), + PolarPoint(tWa = 180.0, bSp = 2.0) + ) + ) + + // TWS 8 knots + val polar8k = PolarCurve( + twS = 8.0, + points = listOf( + PolarPoint(tWa = 30.0, bSp = 4.0), + PolarPoint(tWa = 45.0, bSp = 5.0), + PolarPoint(tWa = 60.0, bSp = 5.5), + PolarPoint(tWa = 90.0, bSp = 5.8), + PolarPoint(tWa = 120.0, bSp = 5.0), + PolarPoint(tWa = 150.0, bSp = 4.0), + PolarPoint(tWa = 180.0, bSp = 2.5) + ) + ) + + // TWS 10 knots + val polar10k = PolarCurve( + twS = 10.0, + points = listOf( + PolarPoint(tWa = 30.0, bSp = 5.0), + PolarPoint(tWa = 45.0, bSp = 6.0), + PolarPoint(tWa = 60.0, bSp = 6.5), + PolarPoint(tWa = 90.0, bSp = 6.8), + PolarPoint(tWa = 120.0, bSp = 6.0), + PolarPoint(tWa = 150.0, bSp = 4.5), + PolarPoint(tWa = 180.0, bSp = 3.0) + ) + ) + + return PolarTable(curves = listOf(polar6k, polar8k, polar10k)) + } + + + private fun setupAnchorMapLayers(style: Style) { + // Add anchor icon + style.addImage(ANCHOR_ICON_ID, BitmapFactory.decodeResource(resources, R.drawable.ic_anchor)) + + // Create sources + anchorPointSource = GeoJsonSource(ANCHOR_POINT_SOURCE_ID) + anchorPointSource?.setGeoJson(FeatureCollection.fromFeatures(emptyList<Feature>())) + + anchorCircleSource = GeoJsonSource(ANCHOR_CIRCLE_SOURCE_ID) + anchorCircleSource?.setGeoJson(FeatureCollection.fromFeatures(emptyList<Feature>())) + + style.addSource(anchorPointSource!!) + style.addSource(anchorCircleSource!!) + + // Create layers + val anchorPointLayer = SymbolLayer(ANCHOR_POINT_LAYER_ID, ANCHOR_POINT_SOURCE_ID).apply { + setProperties( + PropertyFactory.iconImage(ANCHOR_ICON_ID), + PropertyFactory.iconAllowOverlap(true), + PropertyFactory.iconIgnorePlacement(true) + ) + } + val anchorCircleLayer = CircleLayer(ANCHOR_CIRCLE_LAYER_ID, ANCHOR_CIRCLE_SOURCE_ID).apply { + setProperties( + PropertyFactory.circleColor(ContextCompat.getColor(this@MainActivity, R.color.anchor_button_background)), + PropertyFactory.circleOpacity(0.3f), + PropertyFactory.circleStrokeWidth(2.0f), + PropertyFactory.circleStrokeColor(ContextCompat.getColor(this@MainActivity, R.color.anchor_button_background)) + ) + } + + style.addLayer(anchorCircleLayer) + style.addLayer(anchorPointLayer) + } + + private fun updateAnchorMapLayers(state: AnchorWatchState) { + maplibreMap?.getStyle { style -> + if (state.isActive && state.anchorLocation != null) { + // Update anchor point + val anchorPoint = Point.fromLngLat(state.anchorLocation.longitude, state.anchorLocation.latitude) + anchorPointSource?.setGeoJson(Feature.fromGeometry(anchorPoint)) + + // Update watch circle + val watchCirclePolygon = createWatchCirclePolygon(anchorPoint, state.watchCircleRadiusMeters) + anchorCircleSource?.setGeoJson(Feature.fromGeometry(watchCirclePolygon)) + + // Set layer visibility to visible + style.getLayer(ANCHOR_POINT_LAYER_ID)?.setProperties(PropertyFactory.visibility(org.maplibre.android.style.layers.Property.VISIBLE)) + style.getLayer(ANCHOR_CIRCLE_LAYER_ID)?.setProperties(PropertyFactory.visibility(org.maplibre.android.style.layers.Property.VISIBLE)) + } else { + // Clear sources and hide layers + anchorPointSource?.setGeoJson(FeatureCollection.fromFeatures(emptyList<Feature>())) + anchorCircleSource?.setGeoJson(FeatureCollection.fromFeatures(emptyList<Feature>())) + style.getLayer(ANCHOR_POINT_LAYER_ID)?.setProperties(PropertyFactory.visibility(org.maplibre.android.style.layers.Property.NONE)) + style.getLayer(ANCHOR_CIRCLE_LAYER_ID)?.setProperties(PropertyFactory.visibility(org.maplibre.android.style.layers.Property.NONE)) + } + } + } + + // Helper function to create a GeoJSON Polygon for a circle + private fun createWatchCirclePolygon(center: Point, radiusMeters: Double, steps: Int = 64): Polygon { + val coordinates = mutableListOf<Point>() + val earthRadius = 6371000.0 // Earth's radius in meters + + for (i in 0..steps) { + val angle = 2 * Math.PI * i / steps + val lat = center.latitude() + (radiusMeters / earthRadius) * (180 / Math.PI) * Math.cos(angle) + val lon = center.longitude() + (radiusMeters / earthRadius) * (180 / Math.PI) * Math.sin(angle) / Math.cos(Math.toRadians(center.latitude())) + coordinates.add(Point.fromLngLat(lon, lat)) + } + return Polygon.fromLngLats(listOf(coordinates)) + } + + private fun observeLocationUpdates() { + lifecycleScope.launch { + // Observe from the static locationFlow in LocationService + LocationService.locationFlow.distinctUntilChanged().collect { gpsData -> + if (mobActivated && activeMobWaypoint != null) { + val mobLocation = Location("").apply { + latitude = activeMobWaypoint!!.latitude + longitude = activeMobWaypoint!!.longitude + } + val currentPosition = Location("").apply { + latitude = gpsData.latitude + longitude = gpsData.longitude + } + + val distance = currentPosition.distanceTo(mobLocation) // distance in meters + val elapsedTime = System.currentTimeMillis() - activeMobWaypoint!!.timestamp + + withContext(Dispatchers.Main) { + mobValueDistance.text = String.format(Locale.getDefault(), "%.1f m", distance) + mobValueElapsedTime.text = formatElapsedTime(elapsedTime) + // TODO: Update bearing arrow (requires custom view or rotation logic) + } + } + } + } + } + + private fun observeAnchorWatchState() { + lifecycleScope.launch { + // Observe from the static anchorWatchState in LocationService + LocationService.anchorWatchState.collect { state -> + withContext(Dispatchers.Main) { + updateAnchorMapLayers(state) // Update map layers + if (state.isActive && state.anchorLocation != null) { + currentWatchCircleRadius = state.watchCircleRadiusMeters + anchorRadiusText.text = String.format(Locale.getDefault(), "Radius: %.1fm", currentWatchCircleRadius) + + // Get the current location from the static flow + val currentLocation = LocationService.locationFlow.firstOrNull()?.toLocation() + if (currentLocation != null) { + val distance = state.anchorLocation.distanceTo(currentLocation) + val distanceDiff = distance - state.watchCircleRadiusMeters + if (distanceDiff > 0) { + anchorStatusText.text = String.format( + Locale.getDefault(), + getString(R.string.anchor_active_dragging_format), + state.anchorLocation.latitude, + state.anchorLocation.longitude, + state.watchCircleRadiusMeters, + distance, + distanceDiff + ) + anchorStatusText.setTextColor(ContextCompat.getColor(this@MainActivity, R.color.instrument_text_alarm)) + } else { + anchorStatusText.text = String.format( + Locale.getDefault(), + getString(R.string.anchor_active_format), + state.anchorLocation.latitude, + state.anchorLocation.longitude, + state.watchCircleRadiusMeters, + distance, + -distanceDiff // distance FROM limit + ) + anchorStatusText.setTextColor(ContextCompat.getColor(this@MainActivity, R.color.instrument_text_normal)) + } + } else { + anchorStatusText.text = "Anchor watch active (waiting for location...)" + anchorStatusText.setTextColor(ContextCompat.getColor(this@MainActivity, R.color.instrument_text_normal)) + } + } else { + anchorStatusText.text = getString(R.string.anchor_inactive) + anchorStatusText.setTextColor(ContextCompat.getColor(this@MainActivity, R.color.instrument_text_normal)) + } + } + } + } + } + + private fun activateMob() { + // Get last known location from the static flow + lifecycleScope.launch { + val lastGpsData: GpsData? = LocationService.locationFlow.firstOrNull() + if (lastGpsData != null) { + activeMobWaypoint = MobWaypoint( + latitude = lastGpsData.latitude, + longitude = lastGpsData.longitude, + timestamp = System.currentTimeMillis() + ) + mobActivated = true + Log.d("MainActivity", "MOB Activated! Location: ${activeMobWaypoint!!.latitude}, ${activeMobWaypoint!!.longitude} at ${activeMobWaypoint!!.timestamp}") + Toast.makeText(this@MainActivity, "MOB Activated!", Toast.LENGTH_SHORT).show() + + // Switch display to MOB navigation view + mapView?.visibility = View.GONE + instrumentDisplayContainer.visibility = View.GONE + fabToggleInstruments.visibility = View.GONE + fabMob.visibility = View.GONE + anchorConfigContainer.visibility = View.GONE // Hide anchor config + fabAnchor.visibility = View.GONE // Hide anchor FAB + mobNavigationContainer.visibility = View.VISIBLE + + + // Sound continuous alarm + mobMediaPlayer = MediaPlayer.create(this@MainActivity, R.raw.mob_alarm).apply { + isLooping = true + start() + } + + // Log event to logbook + logMobEvent(activeMobWaypoint!!) + } else { + Toast.makeText(this@MainActivity, "Could not get current location for MOB", Toast.LENGTH_SHORT).show() + Log.e("MainActivity", "Last known location is null, cannot activate MOB.") + } + } + } + + private fun recoverMob() { + mobActivated = false + activeMobWaypoint = null + stopMobAlarm() + + mobNavigationContainer.visibility = View.GONE + mapView?.visibility = View.VISIBLE + // instrumentDisplayContainer visibility is controlled by fabToggleInstruments, so leave as is + fabToggleInstruments.visibility = View.VISIBLE + fabMob.visibility = View.VISIBLE + fabAnchor.visibility = View.VISIBLE // Show anchor FAB + anchorConfigContainer.visibility = View.GONE // Hide anchor config + + Toast.makeText(this, "MOB Recovery initiated.", Toast.LENGTH_SHORT).show() + Log.d("MainActivity", "MOB Recovery initiated.") + } + + private fun stopMobAlarm() { + mobMediaPlayer?.stop() + mobMediaPlayer?.release() + mobMediaPlayer = null + Log.d("MainActivity", "MOB Alarm stopped and released.") + } + + private fun logMobEvent(mobWaypoint: MobWaypoint) { + Log.i("Logbook", "MOB Event: Lat ${mobWaypoint.latitude}, Lon ${mobWaypoint.longitude}, Time ${mobWaypoint.timestamp}") + // TODO: Integrate with actual logbook system for persistence + } + + + private fun formatElapsedTime(milliseconds: Long): String { + val hours = TimeUnit.MILLISECONDS.toHours(milliseconds) + val minutes = TimeUnit.MILLISECONDS.toMinutes(milliseconds) % 60 + val seconds = TimeUnit.MILLISECONDS.toSeconds(milliseconds) % 60 + return String.format(Locale.getDefault(), "%02d:%02d:%02d", hours, minutes, seconds) + } + + private fun updateInstrumentDisplay( + aws: String, + tws: String, + hdg: String, + cog: String, + bsp: String, + sog: String, + vmg: String, + depth: String, + polarPct: String + ) { + valueAws.text = aws + valueTws.text = tws + valueHdg.text = hdg + valueCog.text = cog + valueBsp.text = bsp + valueSog.text = sog + valueVmg.text = vmg + valueDepth.text = depth + valuePolarPct.text = polarPct + } + + override fun onStart() { + super.onStart() + mapView?.onStart() + } + + override fun onResume() { + super.onResume() + mapView?.onResume() + } + + override fun onPause() { + super.onPause() + mapView?.onPause() + } + + override fun onStop() { + super.onStop() + mapView?.onStop() + } + + override fun onSaveInstanceState(outState: Bundle) { + super.onSaveInstanceState(outState) + mapView?.onSaveInstanceState(outState) + } + + override fun onLowMemory() { + super.onLowMemory() + mapView?.onLowMemory() + } + + override fun onDestroy() { + super.onDestroy() + mapView?.onDestroy() + mobMediaPlayer?.release() // Ensure media player is released on destroy + } +} diff --git a/android-app/app/src/main/kotlin_old/org/terst/nav/PolarData.kt b/android-app/app/src/main/kotlin_old/org/terst/nav/PolarData.kt new file mode 100644 index 0000000..88a8d0d --- /dev/null +++ b/android-app/app/src/main/kotlin_old/org/terst/nav/PolarData.kt @@ -0,0 +1,168 @@ +package org.terst.nav + +import kotlin.math.abs +import kotlin.math.cos +import kotlin.math.max +import kotlin.math.min + +// Represents a single point on a polar curve: True Wind Angle and target Boat Speed +data class PolarPoint(val tWa: Double, val bSp: Double) + +// Represents a polar curve for a specific True Wind Speed +data class PolarCurve(val twS: Double, val points: List<PolarPoint>) { + init { + require(points.isNotEmpty()) { "PolarCurve must have at least one point." } + require(points.all { it.tWa in 0.0..180.0 }) { + "TWA in PolarCurve must be between 0 and 180 degrees." + } + require(points.zipWithNext().all { it.first.tWa < it.second.tWa }) { + "PolarPoints in a PolarCurve must be sorted by TWA." + } + } + + /** + * Interpolates the target boat speed for a given True Wind Angle (TWA) + * within this specific polar curve (constant TWS). + */ + fun interpolateBsp(twa: Double): Double { + val absoluteTwa = abs(twa) + if (absoluteTwa < points.first().tWa) return points.first().bSp + if (absoluteTwa > points.last().tWa) return points.last().bSp + + for (i in 0 until points.size - 1) { + val p1 = points[i] + val p2 = points[i + 1] + if (absoluteTwa >= p1.tWa && absoluteTwa <= p2.tWa) { + val ratio = (absoluteTwa - p1.tWa) / (p2.tWa - p1.tWa) + return p1.bSp + ratio * (p2.bSp - p1.bSp) + } + } + return 0.0 + } + + /** + * Calculates the Velocity Made Good (VMG) for a given TWA and BSP. + * VMG = BSP * cos(TWA) + */ + fun calculateVmg(twa: Double, bsp: Double): Double { + return bsp * cos(Math.toRadians(twa)) + } + + /** + * Finds the TWA that yields the maximum upwind VMG for this polar curve. + */ + fun findOptimalUpwindTwa(): Double { + var maxVmg = -Double.MAX_VALUE + var optimalTwa = 0.0 + // Search through TWA 0 to 90 + for (twa in 0..90) { + val bsp = interpolateBsp(twa.toDouble()) + val vmg = calculateVmg(twa.toDouble(), bsp) + if (vmg > maxVmg) { + maxVmg = vmg + optimalTwa = twa.toDouble() + } + } + return optimalTwa + } + + /** + * Finds the TWA that yields the maximum downwind VMG for this polar curve. + */ + fun findOptimalDownwindTwa(): Double { + var maxVmg = -Double.MAX_VALUE // We want the most negative VMG for downwind + var optimalTwa = 180.0 + // Search through TWA 90 to 180 + // For downwind, VMG is negative (moving away from wind) + // We look for the minimum value (largest absolute negative) + for (twa in 90..180) { + val bsp = interpolateBsp(twa.toDouble()) + val vmg = calculateVmg(twa.toDouble(), bsp) + if (vmg < maxVmg) { + maxVmg = vmg + optimalTwa = twa.toDouble() + } + } + return optimalTwa + } +} + +// Represents the complete polar table for a boat, containing multiple PolarCurves for different TWS +data class PolarTable(val curves: List<PolarCurve>) { + init { + require(curves.isNotEmpty()) { "PolarTable must have at least one curve." } + require(curves.zipWithNext().all { it.first.twS < it.second.twS }) { + "PolarCurves in a PolarTable must be sorted by TWS." + } + } + + /** + * Interpolates the target boat speed for a given True Wind Speed (TWS) and True Wind Angle (TWA). + */ + fun interpolateBsp(tws: Double, twa: Double): Double { + if (tws <= curves.first().twS) return curves.first().interpolateBsp(twa) + if (tws >= curves.last().twS) return curves.last().interpolateBsp(twa) + + for (i in 0 until curves.size - 1) { + val c1 = curves[i] + val c2 = curves[i + 1] + if (tws >= c1.twS && tws <= c2.twS) { + val ratio = (tws - c1.twS) / (c2.twS - c1.twS) + val bsp1 = c1.interpolateBsp(twa) + val bsp2 = c2.interpolateBsp(twa) + return bsp1 + ratio * (bsp2 - bsp1) + } + } + return 0.0 + } + + /** + * Finds the optimal upwind TWA for a given TWS by interpolating between curves. + */ + fun findOptimalUpwindTwa(tws: Double): Double { + if (tws <= curves.first().twS) return curves.first().findOptimalUpwindTwa() + if (tws >= curves.last().twS) return curves.last().findOptimalUpwindTwa() + + for (i in 0 until curves.size - 1) { + val c1 = curves[i] + val c2 = curves[i + 1] + if (tws >= c1.twS && tws <= c2.twS) { + val ratio = (tws - c1.twS) / (c2.twS - c1.twS) + return c1.findOptimalUpwindTwa() + ratio * (c2.findOptimalUpwindTwa() - c1.findOptimalUpwindTwa()) + } + } + return 0.0 + } + + /** + * Finds the optimal downwind TWA for a given TWS by interpolating between curves. + */ + fun findOptimalDownwindTwa(tws: Double): Double { + if (tws <= curves.first().twS) return curves.first().findOptimalDownwindTwa() + if (tws >= curves.last().twS) return curves.last().findOptimalDownwindTwa() + + for (i in 0 until curves.size - 1) { + val c1 = curves[i] + val c2 = curves[i + 1] + if (tws >= c1.twS && tws <= c2.twS) { + val ratio = (tws - c1.twS) / (c2.twS - c1.twS) + return c1.findOptimalDownwindTwa() + ratio * (c2.findOptimalDownwindTwa() - c1.findOptimalDownwindTwa()) + } + } + return 0.0 + } + + /** + * Calculates the "Polar Percentage" for current boat performance. + * Polar % = (Actual BSP / Target BSP) * 100 + * @return Polar percentage, or 0.0 if target BSP cannot be determined. + */ + fun calculatePolarPercentage(currentTwS: Double, currentTwa: Double, currentBsp: Double): Double { + val targetBsp = interpolateBsp(currentTwS, currentTwa) + return if (targetBsp > 0) { + (currentBsp / targetBsp) * 100.0 + } else { + 0.0 + } + } +} diff --git a/android-app/app/src/main/kotlin_old/org/terst/nav/PolarDiagramView.kt b/android-app/app/src/main/kotlin_old/org/terst/nav/PolarDiagramView.kt new file mode 100644 index 0000000..4a678cc --- /dev/null +++ b/android-app/app/src/main/kotlin_old/org/terst/nav/PolarDiagramView.kt @@ -0,0 +1,270 @@ +package org.terst.nav + +import android.content.Context +import android.graphics.Canvas +import android.graphics.Color +import android.graphics.Paint +import android.graphics.RectF +import android.util.AttributeSet +import android.view.View +import kotlin.math.cos +import kotlin.math.min +import kotlin.math.sin + +class PolarDiagramView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : View(context, attrs, defStyleAttr) { + + private val gridPaint = Paint().apply { + color = Color.parseColor("#404040") // Dark gray for grid lines + style = Paint.Style.STROKE + strokeWidth = 1f + isAntiAlias = true + } + + private val textPaint = Paint().apply { + color = Color.WHITE + textSize = 24f + isAntiAlias = true + textAlign = Paint.Align.CENTER + } + + private val polarCurvePaint = Paint().apply { + color = Color.CYAN // Bright color for the polar curve + style = Paint.Style.STROKE + strokeWidth = 3f + isAntiAlias = true + } + + private val currentPerformancePaint = Paint().apply { + color = Color.RED // Red dot for current performance + style = Paint.Style.FILL + isAntiAlias = true + } + + private val noSailZonePaint = Paint().apply { + color = Color.parseColor("#80FF0000") // Semi-transparent red for no-sail zone + style = Paint.Style.FILL + isAntiAlias = true + } + + private val optimalVmgPaint = Paint().apply { + color = Color.GREEN // Green for optimal VMG angles + style = Paint.Style.STROKE + strokeWidth = 4f + isAntiAlias = true + } + + private var viewCenterX: Float = 0f + private var viewCenterY: Float = 0f + private var radius: Float = 0f + + // Data for rendering + private var polarTable: PolarTable? = null + private var currentTws: Double = 0.0 + private var currentTwa: Double = 0.0 + private var currentBsp: Double = 0.0 + + // Configuration for the diagram + private val maxSpeedKnots = 10.0 // Max speed for the outermost circle in knots + private val speedCircleInterval = 2.0 // Interval between speed circles in knots + private val twaInterval = 30 // Interval between TWA radial lines in degrees + private val noSailZoneAngle = 20.0 // Angle +/- from 0 degrees for no-sail zone + + override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) { + super.onSizeChanged(w, h, oldw, oldh) + viewCenterX = w / 2f + viewCenterY = h / 2f + radius = min(w, h) / 2f * 0.9f // Use 90% of the minimum dimension for radius + } + + override fun onDraw(canvas: Canvas) { + super.onDraw(canvas) + + // Draw basic diagram elements + drawGrid(canvas) + drawTwaLabels(canvas) + drawNoSailZone(canvas) + + // Draw polar curve if data is available + polarTable?.let { + drawPolarCurve(canvas, it, currentTws) + drawOptimalVmgAngles(canvas, it, currentTws) // Draw optimal VMG angles + } + + // Draw current performance if data is available and not zero + if (currentTws > 0 && currentTwa > 0 && currentBsp > 0) { + drawCurrentPerformance(canvas, currentTwa, currentBsp) + } + } + + private fun drawGrid(canvas: Canvas) { + // Draw TWA radial lines (0 to 360 degrees) + for (i in 0 until 360 step twaInterval) { + val angleRad = Math.toRadians(i.toDouble()) + val x = viewCenterX + radius * cos(angleRad).toFloat() + val y = viewCenterY + radius * sin(angleRad).toFloat() + canvas.drawLine(viewCenterX, viewCenterY, x, y, gridPaint) + } + + // Draw speed circles + for (i in 0..maxSpeedKnots.toInt() step speedCircleInterval.toInt()) { + val currentRadius = (i / maxSpeedKnots * radius).toFloat() + canvas.drawCircle(viewCenterX, viewCenterY, currentRadius, gridPaint) + } + } + + private fun drawTwaLabels(canvas: Canvas) { + // Draw TWA labels around the perimeter + for (i in 0 until 360 step twaInterval) { + val displayAngleRad = Math.toRadians(i.toDouble()) + // Position the text slightly outside the outermost circle + val textX = viewCenterX + (radius + 40) * cos(displayAngleRad).toFloat() + // Adjust textY to account for text height, so it's centered vertically on the arc + val textY = viewCenterY + (radius + 40) * sin(displayAngleRad).toFloat() + (textPaint.textSize / 3) + + // Map canvas angle (0=right, 90=down) to polar diagram angle (0=up, 90=right) + // Example: canvas 270 is polar 0, canvas 0 is polar 90, canvas 90 is polar 180, canvas 180 is polar 270 + val polarAngle = ( (i + 90) % 360 ) + canvas.drawText(polarAngle.toString(), textX, textY, textPaint) + } + + // Draw speed labels on the horizontal axis + for (i in 0..maxSpeedKnots.toInt() step speedCircleInterval.toInt()) { + if (i > 0) { + val currentRadius = (i / maxSpeedKnots * radius).toFloat() + // Left side + canvas.drawText(i.toString(), viewCenterX - currentRadius - 10, viewCenterY + (textPaint.textSize / 3), textPaint) + // Right side + canvas.drawText(i.toString(), viewCenterX + currentRadius + 10, viewCenterY + (textPaint.textSize / 3), textPaint) + } + } + } + + private fun drawNoSailZone(canvas: Canvas) { + // The no-sail zone is typically symmetric around the wind direction (0 TWA, which is 'up' on our diagram) + // In canvas coordinates, 'up' is -90 degrees or 270 degrees. + // So the arc will be centered around 270 degrees. + val startAngle = (270 - noSailZoneAngle).toFloat() + val sweepAngle = (2 * noSailZoneAngle).toFloat() + + val oval = RectF(viewCenterX - radius, viewCenterY - radius, viewCenterX + radius, viewCenterY + radius) + canvas.drawArc(oval, startAngle, sweepAngle, true, noSailZonePaint) + } + + private fun drawPolarCurve(canvas: Canvas, polarTable: PolarTable, tws: Double) { + val path = android.graphics.Path() + var firstPoint = true + + // Generate points for 0 to 180 TWA (starboard side) + for (twa in 0..180) { + val bsp = polarTable.interpolateBsp(tws, twa.toDouble()) + if (bsp > 0) { + // Map TWA to canvas angle for the starboard side (0 TWA at 270, 90 TWA at 0, 180 TWA at 90) + val canvasAngle = (270 + twa).toDouble() % 360 + val currentRadius = (bsp / maxSpeedKnots * radius).toFloat() + val x = viewCenterX + currentRadius * cos(Math.toRadians(canvasAngle)).toFloat() + val y = viewCenterY + currentRadius * sin(Math.toRadians(canvasAngle)).toFloat() + + if (firstPoint) { + path.moveTo(x, y) + firstPoint = false + } else { + path.lineTo(x, y) + } + } + } + + // Generate points for 0 to -180 TWA (port side) by mirroring + // Start from 180 back to 0 to connect the curve + for (twa in 180 downTo 0) { + val bsp = polarTable.interpolateBsp(tws, twa.toDouble()) + if (bsp > 0) { + // Map negative TWA to canvas angle for the port side (0 TWA at 270, -90 TWA at 180, -180 TWA at 90) + val canvasAngle = (270 - twa).toDouble() // This maps TWA 0 to 270, TWA 90 to 180, TWA 180 to 90 + val currentRadius = (bsp / maxSpeedKnots * radius).toFloat() + val x = viewCenterX + currentRadius * cos(Math.toRadians(canvasAngle)).toFloat() + val y = viewCenterY + currentRadius * sin(Math.toRadians(canvasAngle)).toFloat() + + path.lineTo(x, y) // Continue drawing the path + } + } + canvas.drawPath(path, polarCurvePaint) + } + + private fun drawCurrentPerformance(canvas: Canvas, twa: Double, bsp: Double) { + val canvasAngle = if (twa >= 0) { + (270 + twa).toDouble() % 360 // Starboard side + } else { + (270 + twa).toDouble() // Port side (e.g., -30 TWA is 240 canvas angle) + } + + val currentRadius = (bsp / maxSpeedKnots * radius).toFloat() + val x = viewCenterX + currentRadius * cos(Math.toRadians(canvasAngle)).toFloat() + val y = viewCenterY + currentRadius * sin(Math.toRadians(canvasAngle)).toFloat() + + canvas.drawCircle(x, y, 10f, currentPerformancePaint) // Draw a small circle for current performance + } + + private fun drawOptimalVmgAngles(canvas: Canvas, polarTable: PolarTable, tws: Double) { + // Find optimal upwind TWA + val optimalUpwindTwa = polarTable.findOptimalUpwindTwa(tws) + if (optimalUpwindTwa > 0) { + // Draw a line indicating the optimal upwind TWA (both port and starboard) + val upwindBsp = polarTable.interpolateBsp(tws, optimalUpwindTwa) + val currentRadius = (upwindBsp / maxSpeedKnots * radius).toFloat() * 1.05f // Slightly longer + + // Starboard side + var canvasAngle = (270 + optimalUpwindTwa).toDouble() % 360 + var x = viewCenterX + currentRadius * cos(Math.toRadians(canvasAngle)).toFloat() + var y = viewCenterY + currentRadius * sin(Math.toRadians(canvasAngle)).toFloat() + canvas.drawLine(viewCenterX, viewCenterY, x, y, optimalVmgPaint) + + // Port side + canvasAngle = (270 - optimalUpwindTwa).toDouble() // Use negative TWA for port side + x = viewCenterX + currentRadius * cos(Math.toRadians(canvasAngle)).toFloat() + y = viewCenterY + currentRadius * sin(Math.toRadians(canvasAngle)).toFloat() + canvas.drawLine(viewCenterX, viewCenterY, x, y, optimalVmgPaint) + } + + // Find optimal downwind TWA + val optimalDownwindTwa = polarTable.findOptimalDownwindTwa(tws) + if (optimalDownwindTwa > 0) { + // Draw a line indicating the optimal downwind TWA (both port and starboard) + val downwindBsp = polarTable.interpolateBsp(tws, optimalDownwindTwa) + val currentRadius = (downwindBsp / maxSpeedKnots * radius).toFloat() * 1.05f // Slightly longer + + // Starboard side + var canvasAngle = (270 + optimalDownwindTwa).toDouble() % 360 + var x = viewCenterX + currentRadius * cos(Math.toRadians(canvasAngle)).toFloat() + var y = viewCenterY + currentRadius * sin(Math.toRadians(canvasAngle)).toFloat() + canvas.drawLine(viewCenterX, viewCenterY, x, y, optimalVmgPaint) + + // Port side + canvasAngle = (270 - optimalDownwindTwa).toDouble() // Use negative TWA for port side + x = viewCenterX + currentRadius * cos(Math.toRadians(canvasAngle)).toFloat() + y = viewCenterY + currentRadius * sin(Math.toRadians(canvasAngle)).toFloat() + canvas.drawLine(viewCenterX, viewCenterY, x, y, optimalVmgPaint) + } + } + + /** + * Sets the polar table data for the view. + */ + fun setPolarTable(table: PolarTable) { + this.polarTable = table + invalidate() // Redraw the view + } + + /** + * Sets the current true wind speed, true wind angle, and boat speed. + */ + fun setCurrentPerformance(tws: Double, twa: Double, bsp: Double) { + this.currentTws = tws + this.currentTwa = twa + this.currentBsp = bsp + invalidate() // Redraw the view + } +} diff --git a/android-app/app/src/main/res/layout/activity_main.xml b/android-app/app/src/main/res/layout/activity_main.xml index cfeea6c..8c734d5 100644 --- a/android-app/app/src/main/res/layout/activity_main.xml +++ b/android-app/app/src/main/res/layout/activity_main.xml @@ -227,6 +227,51 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" /> + <!-- Barometer Instrument --> + <TextView + android:id="@+id/label_barometer" + style="@style/InstrumentLabel" + android:text="@string/instrument_label_barometer" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/value_vmg" + app:layout_constraintEnd_toStartOf="@+id/guideline_vertical_33" + app:layout_constraintHorizontal_bias="0.5" /> + <TextView + android:id="@+id/value_baro" + style="@style/InstrumentPrimaryValue" + tools:text="1013.2" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/label_barometer" + app:layout_constraintEnd_toStartOf="@+id/guideline_vertical_33" + app:layout_constraintHorizontal_bias="0.5" /> + <TextView + android:id="@+id/label_baro_unit" + style="@style/InstrumentSecondaryLabel" + android:text="hPa" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/value_baro" + app:layout_constraintEnd_toStartOf="@+id/guideline_vertical_33" + app:layout_constraintHorizontal_bias="0.5" /> + + <!-- Barometer Trend --> + <TextView + android:id="@+id/label_trend" + style="@style/InstrumentLabel" + android:text="@string/instrument_label_trend" + app:layout_constraintStart_toStartOf="@+id/guideline_vertical_33" + app:layout_constraintTop_toBottomOf="@+id/value_depth" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHorizontal_bias="0.5" /> + + <org.terst.nav.BarometerTrendView + android:id="@+id/barometer_trend_view" + android:layout_width="0dp" + android:layout_height="0dp" + app:layout_constraintStart_toStartOf="@+id/guideline_vertical_33" + app:layout_constraintTop_toBottomOf="@+id/label_trend" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintBottom_toBottomOf="@+id/label_baro_unit" /> + <!-- Polar Diagram View --> <org.terst.nav.PolarDiagramView android:id="@+id/polar_diagram_view" @@ -236,7 +281,7 @@ app:layout_constraintDimensionRatio="1:1" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintTop_toBottomOf="@+id/label_vmg" + app:layout_constraintTop_toBottomOf="@+id/label_baro_unit" app:layout_constraintBottom_toBottomOf="parent" /> diff --git a/android-app/app/src/main/res/values/colors.xml b/android-app/app/src/main/res/values/colors.xml index 7ccb28f..32f5036 100644..100755 --- a/android-app/app/src/main/res/values/colors.xml +++ b/android-app/app/src/main/res/values/colors.xml @@ -9,6 +9,7 @@ <!-- Colors for instrument display --> <color name="instrument_text_normal">#FFFFFFFF</color> <!-- White for normal text on dark background --> + <color name="instrument_text_secondary">#B3FFFFFF</color> <!-- 70% white --> <color name="instrument_text_alarm">#FFFF0000</color> <!-- Red for alarm --> <color name="instrument_text_stale">#FFFFFF00</color> <!-- Yellow for stale data --> <color name="instrument_background">#E61E1E1E</color> <!-- Slightly transparent dark grey --> diff --git a/android-app/app/src/main/res/values/dimens.xml b/android-app/app/src/main/res/values/dimens.xml index 1b65ea9..1b65ea9 100644..100755 --- a/android-app/app/src/main/res/values/dimens.xml +++ b/android-app/app/src/main/res/values/dimens.xml diff --git a/android-app/app/src/main/res/values/strings.xml b/android-app/app/src/main/res/values/strings.xml index b6d3601..cec4850 100644..100755 --- a/android-app/app/src/main/res/values/strings.xml +++ b/android-app/app/src/main/res/values/strings.xml @@ -14,6 +14,8 @@ <string name="instrument_label_vmg">VMG</string> <string name="instrument_label_depth">DEPTH</string> <string name="instrument_label_polar_pct">POLAR %</string> + <string name="instrument_label_barometer">BAROMETER</string> + <string name="instrument_label_trend">TREND</string> <!-- Placeholder values for initial display --> <string name="placeholder_aws_value">--.-</string> @@ -25,6 +27,7 @@ <string name="placeholder_vmg_value">--.-</string> <string name="placeholder_depth_value">--.-</string> <string name="placeholder_polar_value">---</string> + <string name="placeholder_baro_value">----.-</string> <string name="fab_mob_content_description">Activate Man Overboard (MOB) alarm</string> <string name="fab_anchor_content_description">Toggle Anchor Watch Configuration</string> diff --git a/android-app/app/src/main/res/values/themes.xml b/android-app/app/src/main/res/values/themes.xml index 612bba1..612bba1 100644..100755 --- a/android-app/app/src/main/res/values/themes.xml +++ b/android-app/app/src/main/res/values/themes.xml diff --git a/android-app/app/src/main/res_old/drawable/ic_anchor.xml b/android-app/app/src/main/res_old/drawable/ic_anchor.xml new file mode 100644 index 0000000..2389c93 --- /dev/null +++ b/android-app/app/src/main/res_old/drawable/ic_anchor.xml @@ -0,0 +1,9 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24" + android:viewportHeight="24"> + <path + android:fillColor="#FF000000" + android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,14c-1.1,0 -2,-0.9 -2,-2s0.9,-2 2,-2 2,0.9 2,2S13.1,14 12,14z" /> +</vector> diff --git a/android-app/app/src/main/res_old/mipmap-anydpi-v26/ic_launcher.xml b/android-app/app/src/main/res_old/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..52d5417 --- /dev/null +++ b/android-app/app/src/main/res_old/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8"?> +<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> + <background android:drawable="@android:color/white" /> + <foreground android:drawable="@drawable/ic_anchor" /> +</adaptive-icon> diff --git a/android-app/app/src/main/res_old/mipmap-anydpi-v26/ic_launcher_round.xml b/android-app/app/src/main/res_old/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..52d5417 --- /dev/null +++ b/android-app/app/src/main/res_old/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8"?> +<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> + <background android:drawable="@android:color/white" /> + <foreground android:drawable="@drawable/ic_anchor" /> +</adaptive-icon> diff --git a/android-app/app/src/main/res_old/raw/mob_alarm.mp3 b/android-app/app/src/main/res_old/raw/mob_alarm.mp3 new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/android-app/app/src/main/res_old/raw/mob_alarm.mp3 @@ -0,0 +1 @@ + diff --git a/android-app/app/src/main/temp/CompassRoseView.kt b/android-app/app/src/main/temp/CompassRoseView.kt new file mode 100755 index 0000000..8e755a3 --- /dev/null +++ b/android-app/app/src/main/temp/CompassRoseView.kt @@ -0,0 +1,217 @@ +package org.terst.nav.temp // Temporarily placing in 'temp' due to permissions, actual package should be 'org.terst.nav' + +import android.content.Context +import android.graphics.Canvas +import android.graphics.Color +import android.graphics.Paint +import android.graphics.Rect +import android.util.AttributeSet +import android.view.View +import kotlin.math.cos +import kotlin.math.min +import kotlin.math.sin + +class CompassRoseView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : View(context, attrs, defStyleAttr) { + + private var heading: Float = 0f // Current heading in degrees + set(value) { + field = value % 360 // Ensure heading is within 0-359 + invalidate() + } + private var cog: Float = 0f // Course Over Ground in degrees + set(value) { + field = value % 360 + invalidate() + } + private var isTrueHeading: Boolean = true // True for True heading, false for Magnetic + + private val rosePaint = Paint(Paint.ANTI_ALIAS_FLAG).apply { + color = Color.DKGRAY + style = Paint.Style.STROKE + strokeWidth = 2f + } + + private val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).apply { + color = Color.WHITE + textSize = 30f + textAlign = Paint.Align.CENTER + } + + private val cardinalTextPaint = Paint(Paint.ANTI_ALIAS_FLAG).apply { + color = Color.WHITE + textSize = 40f + textAlign = Paint.Align.CENTER + isFakeBoldText = true + } + + private val majorTickPaint = Paint(Paint.ANTI_ALIAS_FLAG).apply { + color = Color.WHITE + strokeWidth = 3f + } + + private val minorTickPaint = Paint(Paint.ANTI_ALIAS_FLAG).apply { + color = Color.GRAY + strokeWidth = 1f + } + + private val headingNeedlePaint = Paint(Paint.ANTI_ALIAS_FLAG).apply { + color = Color.RED + style = Paint.Style.FILL + } + + private val cogArrowPaint = Paint(Paint.ANTI_ALIAS_FLAG).apply { + color = Color.BLUE + style = Paint.Style.FILL + strokeWidth = 5f + } + + private var viewCenterX: Float = 0f + private var viewCenterY: Float = 0f + private var radius: Float = 0f + + override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) { + super.onSizeChanged(w, h, oldw, oldh) + viewCenterX = w / 2f + viewCenterY = h / 2f + radius = min(w, h) / 2f - 40f // Leave some padding + textPaint.textSize = radius / 6f + cardinalTextPaint.textSize = radius / 4.5f + } + + override fun onDraw(canvas: Canvas) { + super.onDraw(canvas) + + // Draw outer circle + canvas.drawCircle(viewCenterX, viewCenterY, radius, rosePaint) + + // Draw cardinal and intercardinal points + drawCardinalPoints(canvas) + + // Draw tick marks and degree labels + drawDegreeMarks(canvas) + + // Draw heading needle + drawHeadingNeedle(canvas, heading, headingNeedlePaint, radius * 0.8f) + + // Draw COG arrow + drawCogArrow(canvas, cog, cogArrowPaint, radius * 0.6f) + + // Draw current heading text in the center + drawHeadingText(canvas) + } + + private fun drawCardinalPoints(canvas: Canvas) { + val cardinalPoints = listOf("N", "E", "S", "W") + val angles = listOf(0f, 90f, 180f, 270f) + val textBound = Rect() + + for (i in cardinalPoints.indices) { + val angleRad = Math.toRadians((angles[i] - 90).toDouble()).toFloat() // Adjust for canvas 0deg at 3 o'clock + val x = viewCenterX + (radius * 0.9f) * cos(angleRad) + val y = viewCenterY + (radius * 0.9f) * sin(angleRad) + + val text = cardinalPoints[i] + cardinalTextPaint.getTextBounds(text, 0, text.length, textBound) + val textHeight = textBound.height() + + canvas.drawText(text, x, y + textHeight / 2, cardinalTextPaint) + } + } + + private fun drawDegreeMarks(canvas: Canvas) { + for (i in 0 until 360 step 5) { + val isMajor = (i % 30 == 0) // Major ticks every 30 degrees + val tickLength = if (isMajor) 30f else 15f + val currentTickPaint = if (isMajor) majorTickPaint else minorTickPaint + val startRadius = radius - tickLength + + val angleRad = Math.toRadians((i - 90).toDouble()).toFloat() // Adjust for canvas 0deg at 3 o'clock + + val startX = viewCenterX + startRadius * cos(angleRad) + val startY = viewCenterY + startRadius * sin(angleRad) + val endX = viewCenterX + radius * cos(angleRad) + val endY = viewCenterY + radius * sin(angleRad) + + canvas.drawLine(startX, startY, endX, endY, currentTickPaint) + + if (isMajor && i != 0) { // Draw degree labels for major ticks (except North) + val textRadius = radius - tickLength - textPaint.textSize / 2 - 10f + val textX = viewCenterX + textRadius * cos(angleRad) + val textY = viewCenterY + textRadius * sin(angleRad) + textPaint.textSize / 2 + + canvas.drawText(i.toString(), textX, textY, textPaint) + } + } + } + + private fun drawHeadingNeedle(canvas: Canvas, angle: Float, paint: Paint, length: Float) { + val angleRad = Math.toRadians((angle - 90).toDouble()).toFloat() // Adjust for canvas 0deg at 3 o'clock + val endX = viewCenterX + length * cos(angleRad) + val endY = viewCenterY + length * sin(angleRad) + + // Draw a simple triangle for the needle + val needleWidth = 20f + val path = android.graphics.Path() + path.moveTo(endX, endY) + path.lineTo(viewCenterX + needleWidth * cos(angleRad - Math.toRadians(90.0).toFloat()), + viewCenterY + needleWidth * sin(angleRad - Math.toRadians(90.0).toFloat())) + path.lineTo(viewCenterX + needleWidth * cos(angleRad + Math.toRadians(90.0).toFloat()), + viewCenterY + needleWidth * sin(angleRad + Math.toRadians(90.0).toFloat())) + path.close() + canvas.drawPath(path, paint) + } + + private fun drawCogArrow(canvas: Canvas, angle: Float, paint: Paint, length: Float) { + val angleRad = Math.toRadians((angle - 90).toDouble()).toFloat() // Adjust for canvas 0deg at 3 o'clock + val endX = viewCenterX + length * cos(angleRad) + val endY = viewCenterY + length * sin(angleRad) + + val startX = viewCenterX + (length * 0.5f) * cos(angleRad) + val startY = viewCenterY + (length * 0.5f) * sin(angleRad) + + canvas.drawLine(startX, startY, endX, endY, paint) + + // Draw arrow head + val arrowHeadLength = 25f + val arrowHeadWidth = 15f + val arrowPath = android.graphics.Path() + arrowPath.moveTo(endX, endY) + arrowPath.lineTo(endX - arrowHeadLength * cos(angleRad - Math.toRadians(30.0).toFloat()), + endY - arrowHeadLength * sin(angleRad - Math.toRadians(30.0).toFloat())) + arrowPath.moveTo(endX, endY) + arrowPath.lineTo(endX - arrowHeadLength * cos(angleRad + Math.toRadians(30.0).toFloat()), + endY - arrowHeadLength * sin(angleRad + Math.toRadians(30.0).toFloat())) + canvas.drawPath(arrowPath, paint) + } + + private fun drawHeadingText(canvas: Canvas) { + val headingText = "${heading.toInt()}°" + if (isTrueHeading) "T" else "M" + textPaint.color = Color.WHITE + textPaint.textSize = radius / 3.5f // Larger text for main heading + canvas.drawText(headingText, viewCenterX, viewCenterY + textPaint.textSize / 3, textPaint) + } + + /** + * Sets the current heading to display. + * @param newHeading The new heading value in degrees (0-359). + * @param isTrue Whether the heading is True (magnetic variation applied) or Magnetic. + */ + fun setHeading(newHeading: Float, isTrue: Boolean) { + this.heading = newHeading + this.isTrueHeading = isTrue + invalidate() + } + + /** + * Sets the Course Over Ground (COG) to display. + * @param newCog The new COG value in degrees (0-359). + */ + fun setCog(newCog: Float) { + this.cog = newCog + invalidate() + } +} diff --git a/android-app/app/src/main/temp/HeadingDataProcessor.kt b/android-app/app/src/main/temp/HeadingDataProcessor.kt new file mode 100755 index 0000000..7625f90 --- /dev/null +++ b/android-app/app/src/main/temp/HeadingDataProcessor.kt @@ -0,0 +1,108 @@ +package org.terst.nav.temp // Temporarily placing in 'temp' due to permissions + +import android.hardware.GeomagneticField +import android.location.Location +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.update +import java.util.Date + +/** + * Data class representing processed heading information. + * @param trueHeading The heading relative to true North (0-359.9 degrees). + * @param magneticHeading The heading relative to magnetic North (0-359.9 degrees). + * @param magneticVariation The difference between true and magnetic North at the current location (+E, -W). + * @param cog Course Over Ground (0-359.9 degrees). + */ +data class HeadingInfo( + val trueHeading: Float, + val magneticHeading: Float, + val magneticVariation: Float, + val cog: Float +) + +/** + * Processor for handling heading data, including magnetic variation calculations + * using the Android GeomagneticField. + */ +class HeadingDataProcessor { + + private val _headingInfoFlow = MutableStateFlow(HeadingInfo(0f, 0f, 0f, 0f)) + val headingInfoFlow: StateFlow<HeadingInfo> = _headingInfoFlow.asStateFlow() + + private var currentLatitude: Double = 0.0 + private var currentLongitude: Double = 0.0 + private var currentAltitude: Double = 0.0 + + /** + * Updates the current geographic location for magnetic variation calculations. + */ + fun updateLocation(latitude: Double, longitude: Double, altitude: Double) { + currentLatitude = latitude + currentLongitude = longitude + currentAltitude = altitude + // Recalculate magnetic variation if location changes + updateHeadingInfo(_headingInfoFlow.value.trueHeading, _headingInfoFlow.value.cog, true) + } + + /** + * Processes a new true heading and Course Over Ground (COG) value. + * @param newTrueHeading The new true heading in degrees. + * @param newCog The new COG in degrees. + */ + fun updateTrueHeadingAndCog(newTrueHeading: Float, newCog: Float) { + updateHeadingInfo(newTrueHeading, newCog, true) + } + + /** + * Processes a new magnetic heading and Course Over Ground (COG) value. + * @param newMagneticHeading The new magnetic heading in degrees. + * @param newCog The new COG in degrees. + */ + fun updateMagneticHeadingAndCog(newMagneticHeading: Float, newCog: Float) { + updateHeadingInfo(newMagneticHeading, newCog, false) + } + + private fun updateHeadingInfo(heading: Float, cog: Float, isTrueHeadingInput: Boolean) { + val magneticVariation = calculateMagneticVariation() + val (finalTrueHeading, finalMagneticHeading) = if (isTrueHeadingInput) { + Pair(heading, (heading - magneticVariation + 360) % 360) + } else { + Pair((heading + magneticVariation + 360) % 360, heading) + } + + _headingInfoFlow.update { + it.copy( + trueHeading = finalTrueHeading, + magneticHeading = finalMagneticHeading, + magneticVariation = magneticVariation, + cog = cog + ) + } + } + + /** + * Calculates the magnetic variation (declination) for the current location. + * @return Magnetic variation in degrees (+E, -W). + */ + private fun calculateMagneticVariation(): Float { + // GeomagneticField requires current time in milliseconds + val currentTimeMillis = System.currentTimeMillis() + + // Create a dummy Location object to get altitude if only lat/lon are updated + // GeomagneticField needs altitude, using 0 if not provided + val geoField = GeomagneticField( + currentLatitude.toFloat(), + currentLongitude.toFloat(), + currentAltitude.toFloat(), // Altitude in meters + currentTimeMillis + ) + return geoField.declination // Declination is the magnetic variation + } + + // Helper function to normalize angles (0-359.9) - though modulo handles this for positive floats + private fun normalizeAngle(angle: Float): Float { + return (angle % 360 + 360) % 360 + } +} diff --git a/android-app/app/src/test/kotlin/org/test.txt b/android-app/app/src/test/kotlin/org/test.txt new file mode 100755 index 0000000..e69de29 --- /dev/null +++ b/android-app/app/src/test/kotlin/org/test.txt diff --git a/android-app/gradle/wrapper/gradle-wrapper.jar b/android-app/gradle/wrapper/gradle-wrapper.jar Binary files differindex e644113..e644113 100644..100755 --- a/android-app/gradle/wrapper/gradle-wrapper.jar +++ b/android-app/gradle/wrapper/gradle-wrapper.jar diff --git a/android-app/gradle/wrapper/gradle-wrapper.properties b/android-app/gradle/wrapper/gradle-wrapper.properties index b82aa23..b82aa23 100644..100755 --- a/android-app/gradle/wrapper/gradle-wrapper.properties +++ b/android-app/gradle/wrapper/gradle-wrapper.properties diff --git a/android-app/gradlew.bat b/android-app/gradlew.bat index 9d21a21..9d21a21 100644..100755 --- a/android-app/gradlew.bat +++ b/android-app/gradlew.bat diff --git a/android-app/local.properties b/android-app/local.properties index 7c003fd..7c003fd 100644..100755 --- a/android-app/local.properties +++ b/android-app/local.properties diff --git a/android-app/settings.gradle b/android-app/settings.gradle index 1b841d9..1b841d9 100644..100755 --- a/android-app/settings.gradle +++ b/android-app/settings.gradle diff --git a/docs/RAW_NARRATIVE.md b/docs/RAW_NARRATIVE.md index ab5913f..1d1dfa9 100644 --- a/docs/RAW_NARRATIVE.md +++ b/docs/RAW_NARRATIVE.md @@ -19,3 +19,9 @@ request necessary android permissions --- 2026-03-13T23:56:30Z --- request necessary android permissions + +--- 2026-03-14T00:04:22Z --- +Request necessary android permissions + +--- 2026-03-14T00:06:44Z --- +Request necessary android permissions |
