diff --git a/docker/docker-bind/README.md b/docker/docker-bind/README.md
index 9fd7d532..5f3c4a01 100644
--- a/docker/docker-bind/README.md
+++ b/docker/docker-bind/README.md
@@ -42,3 +42,9 @@ bash ./tester.sh
---
### Ответ
+
+sudo docker run -d --name jusan-docker-bind -p 7777:80 -v /home/sbeissov/nginx.conf:/etc/nginx/nginx.conf nginx:mainline
+
+sudo docker ps
+
+sudo docker logs jusan-docker-bind
diff --git a/docker/docker-bind/solution.sh b/docker/docker-bind/solution.sh
new file mode 100755
index 00000000..3e23eba4
--- /dev/null
+++ b/docker/docker-bind/solution.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+sudo docker run -d --name jusan-docker-bind -p 7777:80 -v /home/sbeissov/nginx.conf:/etc/nginx/nginx.conf nginx:mainline
+
+sudo docker ps
+
+sudo docker logs jusan-docker-bind
diff --git a/docker/docker-bind/tester-docker-bind.sh b/docker/docker-bind/tester-docker-bind.sh
old mode 100644
new mode 100755
diff --git a/docker/docker-compose/docker-compose.yml b/docker/docker-compose/docker-compose.yml
new file mode 100644
index 00000000..ff7c73b8
--- /dev/null
+++ b/docker/docker-compose/docker-compose.yml
@@ -0,0 +1,8 @@
+services:
+ api:
+ image: jusan-dockerize:latest
+ build: ../dockerize
+ container_name: jusan-compose
+ ports:
+ - 8080:8080
+ restart: on-failure
\ No newline at end of file
diff --git a/docker/docker-exec/README.md b/docker/docker-exec/README.md
index 1cfe97f5..d34e752b 100644
--- a/docker/docker-exec/README.md
+++ b/docker/docker-exec/README.md
@@ -57,3 +57,29 @@ bash ./tester.sh
---
### Ответ
+
+ 1904 sudo docker run -d --name jusan-docker-exec -p 8181:80 nginx:mainline
+ 1905 sudo docker exec -it jusan-docker-exec bash
+ 1906 curl http://localhost:8181
+ 1907 curl http://localhost:8181/home
+ 1908 curl http://localhost:8181/about
+ 1909 sudo docker logs jusan-docker-exec
+
+ 1 cd /etc/nginx/conf.d/
+ 2 ls
+ 3 nano jusan-docker-exec.conf
+ 4 cat << EOF > /etc/nginx/conf.d/jusan-docker-exec.conf
+server {
+ listen 80;
+ server_name jusan.singularity;
+
+ location / {return 200 'Hello, from jusan-docker-exec';}
+ location /home {return 201 'This is my home!';}
+ location /about {return 202 'I am just an exercise!';}
+}
+EOF
+
+ 5 cat jusan-docker-exec.conf
+ 6 rm default.conf
+ 7 nginx -s reload
+
diff --git a/docker/docker-exec/solution.sh b/docker/docker-exec/solution.sh
new file mode 100644
index 00000000..8cf2c35d
--- /dev/null
+++ b/docker/docker-exec/solution.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+sudo docker run -d --name jusan-docker-exec -p 8181:80 nginx:mainline
+sudo docker exec -it jusan-docker-exec bash
+curl http://localhost:8181
+curl http://localhost:8181/home
+curl http://localhost:8181/about
+sudo docker logs jusan-docker-exec
+
+cd /etc/nginx/conf.d/
+nano jusan-docker-exec.conf
+cat << EOF > /etc/nginx/conf.d/jusan-docker-exec.conf
+server {
+ listen 80;
+ server_name jusan.singularity;
+
+ location / {return 200 'Hello, from jusan-docker-exec';}
+ location /home {return 201 'This is my home!';}
+ location /about {return 202 'I am just an exercise!';}
+}
+EOF
+
+cat jusan-docker-exec.conf
+rm default.conf
+nginx -s reload
diff --git a/docker/docker-mount/README.md b/docker/docker-mount/README.md
index d7abe89d..262d6cb8 100644
--- a/docker/docker-mount/README.md
+++ b/docker/docker-mount/README.md
@@ -47,3 +47,5 @@ bash ./tester.sh
---
### Ответ
+
+sudo docker run -d --name jusan-docker-mount -p 9988:80 -v /home/sbeissov/github/TechOrda/docker/docker-mount/jusan-docker-mount.conf:/etc/nginx/conf.d/nginx.conf -v /home/sbeissov/github/TechOrda/docker/docker-mount/jusan-docker-mount:/usr/share/nginx/html nginx:mainline
diff --git a/docker/docker-mount/jusan-docker-mount.conf b/docker/docker-mount/jusan-docker-mount.conf
new file mode 100755
index 00000000..e51712dc
--- /dev/null
+++ b/docker/docker-mount/jusan-docker-mount.conf
@@ -0,0 +1,8 @@
+server {
+ listen 80;
+ server_name example.com;
+
+ location / {
+ root /var/www/example;
+ }
+}
diff --git a/docker/docker-mount/jusan-docker-mount.zip b/docker/docker-mount/jusan-docker-mount.zip
new file mode 100644
index 00000000..121e844c
Binary files /dev/null and b/docker/docker-mount/jusan-docker-mount.zip differ
diff --git a/docker/docker-mount/jusan-docker-mount/__MACOSX/jusan-docker-mount/._.DS_Store b/docker/docker-mount/jusan-docker-mount/__MACOSX/jusan-docker-mount/._.DS_Store
new file mode 100644
index 00000000..a5b28df1
Binary files /dev/null and b/docker/docker-mount/jusan-docker-mount/__MACOSX/jusan-docker-mount/._.DS_Store differ
diff --git a/docker/docker-mount/jusan-docker-mount/jusan-docker-mount/.DS_Store b/docker/docker-mount/jusan-docker-mount/jusan-docker-mount/.DS_Store
new file mode 100644
index 00000000..5008ddfc
Binary files /dev/null and b/docker/docker-mount/jusan-docker-mount/jusan-docker-mount/.DS_Store differ
diff --git a/docker/docker-mount/jusan-docker-mount/jusan-docker-mount/index.html b/docker/docker-mount/jusan-docker-mount/jusan-docker-mount/index.html
new file mode 100644
index 00000000..84836c45
--- /dev/null
+++ b/docker/docker-mount/jusan-docker-mount/jusan-docker-mount/index.html
@@ -0,0 +1 @@
+
Hello, from jusan-docker-mount
\ No newline at end of file
diff --git a/docker/docker-mount/jusan-docker-mount/jusan-docker-mount/test b/docker/docker-mount/jusan-docker-mount/jusan-docker-mount/test
new file mode 100644
index 00000000..e1453b44
--- /dev/null
+++ b/docker/docker-mount/jusan-docker-mount/jusan-docker-mount/test
@@ -0,0 +1 @@
+Singularity
\ No newline at end of file
diff --git a/docker/docker-mount/jusan-docker-mount/jusan-docker-mount/token b/docker/docker-mount/jusan-docker-mount/jusan-docker-mount/token
new file mode 100644
index 00000000..461e0831
--- /dev/null
+++ b/docker/docker-mount/jusan-docker-mount/jusan-docker-mount/token
@@ -0,0 +1 @@
+Jusan
\ No newline at end of file
diff --git a/docker/docker-mount/solution.sh b/docker/docker-mount/solution.sh
new file mode 100644
index 00000000..085ff1e6
--- /dev/null
+++ b/docker/docker-mount/solution.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+sudo docker run -d --name jusan-docker-mount -p 9988:80 -v /home/sbeissov/github/TechOrda/docker/docker-mount/jusan-docker-mount.conf:/etc/nginx/conf.d/nginx.conf -v /home/sbeissov/github/TechOrda/docker/docker-mount/jusan-docker-mount:/usr/share/nginx/html nginx:mainline
diff --git a/docker/docker-run/README.md b/docker/docker-run/README.md
index 2e7f0b3b..a781b85c 100644
--- a/docker/docker-run/README.md
+++ b/docker/docker-run/README.md
@@ -54,4 +54,15 @@ bash ./tester.sh
---
### Ответ
+sudo docker run -d --name jsn-dkr-run -p 8887:80 nginx:mainline
+8e2cfdffa414de0acda7dc746ca3a0c1656c7d130269853e932a324f8a4348e9
+
+ sudo docker ps
+8e2cfdffa414 nginx:mainline "/docker-entrypoint.…" 6 minutes ago Up 6 minutes 0.0.0.0:8887->80/tcp, [::]:8887->80/tcp
+
+sudo docker stop jsn-dkr-run
+
+sudo docker ps -a
+
+
diff --git a/docker/docker-run/solution.sh b/docker/docker-run/solution.sh
new file mode 100644
index 00000000..c6cf6451
--- /dev/null
+++ b/docker/docker-run/solution.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+sudo docker run -d --name jsn-dkr-run -p 8888:80 nginx:mainline
+sudo docker ps
+docker stop jsn-dkr-run
+sudo docker ps
+sudo docker ps -a
\ No newline at end of file
diff --git a/docker/dockerfile/dockerfile b/docker/dockerfile/dockerfile
new file mode 100644
index 00000000..78c4ad13
--- /dev/null
+++ b/docker/dockerfile/dockerfile
@@ -0,0 +1,5 @@
+FROM nginx:mainline
+WORKDIR /var/www/jusan-dockerfile
+COPY index.html .
+COPY jusan-dockerfile.conf /etc/nginx/conf.d/default.conf
+
diff --git a/docker/dockerfile/jusan-dockerfile/index.html b/docker/dockerfile/jusan-dockerfile/index.html
new file mode 100644
index 00000000..624e4ccb
--- /dev/null
+++ b/docker/dockerfile/jusan-dockerfile/index.html
@@ -0,0 +1 @@
+Hello, from jusan-dockerfile!
\ No newline at end of file
diff --git a/docker/dockerfile/jusan-dockerfile/jusan-dockerfile.conf b/docker/dockerfile/jusan-dockerfile/jusan-dockerfile.conf
new file mode 100644
index 00000000..174ecf94
--- /dev/null
+++ b/docker/dockerfile/jusan-dockerfile/jusan-dockerfile.conf
@@ -0,0 +1,13 @@
+server {
+ listen 80;
+ server_name jusan.dockerfile;
+
+ location / {
+ root /var/www/jusan-dockerfile;
+ }
+
+ location /secret { return 201 'jusan-dockerfile';
+ }
+ location /jusan { return 201 'singularity' ;
+ }
+}
diff --git a/docker/dockerfile/solution.sh b/docker/dockerfile/solution.sh
new file mode 100644
index 00000000..ef9841fd
--- /dev/null
+++ b/docker/dockerfile/solution.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+curl -O https://stepik.org/media/attachments/lesson/686238/jusan-dockerfile.conf
+curl -O https://stepik.org/media/attachments/lesson/686238/jusan-dockerfile.zip
+unzip jusan-dockerfile.zip
+sudo docker build -t nginx:jusan-dockerfile .
+sudo docker run -d -p 6060:80 --name jusan-dockerfile nginx:jusan-dockerfile
\ No newline at end of file
diff --git a/docker/dockerize/.gitignore b/docker/dockerize/.gitignore
new file mode 100644
index 00000000..efa407c3
--- /dev/null
+++ b/docker/dockerize/.gitignore
@@ -0,0 +1,162 @@
+# Byte-compiled / optimized / DLL files
+__pycache__/
+*.py[cod]
+*$py.class
+
+# C extensions
+*.so
+
+# Distribution / packaging
+.Python
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+wheels/
+share/python-wheels/
+*.egg-info/
+.installed.cfg
+*.egg
+MANIFEST
+
+# PyInstaller
+# Usually these files are written by a python script from a template
+# before PyInstaller builds the exe, so as to inject date/other infos into it.
+*.manifest
+*.spec
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.nox/
+.coverage
+.coverage.*
+.cache
+nosetests.xml
+coverage.xml
+*.cover
+*.py,cover
+.hypothesis/
+.pytest_cache/
+cover/
+
+# Translations
+*.mo
+*.pot
+
+# Django stuff:
+*.log
+local_settings.py
+db.sqlite3
+db.sqlite3-journal
+
+# Flask stuff:
+instance/
+.webassets-cache
+
+# Scrapy stuff:
+.scrapy
+
+# Sphinx documentation
+docs/_build/
+
+# PyBuilder
+.pybuilder/
+target/
+
+# Jupyter Notebook
+.ipynb_checkpoints
+
+# IPython
+profile_default/
+ipython_config.py
+
+# pyenv
+# For a library or package, you might want to ignore these files since the code is
+# intended to run in multiple environments; otherwise, check them in:
+# .python-version
+
+# pipenv
+# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
+# However, in case of collaboration, if having platform-specific dependencies or dependencies
+# having no cross-platform support, pipenv may install dependencies that don't work, or not
+# install all needed dependencies.
+#Pipfile.lock
+
+# poetry
+# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
+# This is especially recommended for binary packages to ensure reproducibility, and is more
+# commonly ignored for libraries.
+# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
+#poetry.lock
+
+# pdm
+# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
+#pdm.lock
+# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
+# in version control.
+# https://pdm.fming.dev/latest/usage/project/#working-with-version-control
+.pdm.toml
+.pdm-python
+.pdm-build/
+
+# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
+__pypackages__/
+
+# Celery stuff
+celerybeat-schedule
+celerybeat.pid
+
+# SageMath parsed files
+*.sage.py
+
+# Environments
+.env
+.venv
+env/
+venv/
+ENV/
+env.bak/
+venv.bak/
+
+# Spyder project settings
+.spyderproject
+.spyproject
+
+# Rope project settings
+.ropeproject
+
+# mkdocs documentation
+/site
+
+# mypy
+.mypy_cache/
+.dmypy.json
+dmypy.json
+
+# Pyre type checker
+.pyre/
+
+# pytype static type analyzer
+.pytype/
+
+# Cython debug symbols
+cython_debug/
+
+# PyCharm
+# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
+# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
+# and can be added to the global gitignore or merged into this file. For a more nuclear
+# option (not recommended) you can uncomment the following to ignore the entire idea folder.
+#.idea/
\ No newline at end of file
diff --git a/docker/dockerize/Dockerfile b/docker/dockerize/Dockerfile
new file mode 100644
index 00000000..678d8ba9
--- /dev/null
+++ b/docker/dockerize/Dockerfile
@@ -0,0 +1,6 @@
+FROM python:3.8
+WORKDIR /app
+COPY main.py /app/
+RUN pip3 install fastapi uvicorn
+EXPOSE 8080
+CMD [ "uvicorn", "main:app", "--host", "0.0.0.0","--port", "8080" ]
diff --git a/docker/dockerize/main.py b/docker/dockerize/main.py
new file mode 100644
index 00000000..02e74cb9
--- /dev/null
+++ b/docker/dockerize/main.py
@@ -0,0 +1,67 @@
+from fastapi import FastAPI
+from fastapi import Header, HTTPException
+from pydantic import BaseModel
+app=FastAPI()
+
+elements = []
+
+class Element_in(BaseModel):
+ element:str
+
+class Expression(BaseModel):
+ expr: str
+
+@app.get("/")
+def read_root():
+ return {"Hello": "World"}
+
+@app.get("/sum1n/{item}")
+def sum_array(item:int):
+ sum=0
+ for i in range(item+1):
+ sum+=i
+ return {sum}
+
+@app.get("/fibo/{number}")
+def fibo(number:int):
+ fib1, fib2 = 0, 1
+ for i in range(number - 1):
+ fib1, fib2 = fib2, fib1 + fib2
+ return {fib2}
+
+@app.post("/reverse")
+def reverse_string(string:str=Header(...)):
+ rev_str=string[::-1]
+ return {rev_str}
+
+@app.put("/list")
+def add_element(item:Element_in):
+ elements.append(item.element)
+
+@app.get("/list")
+def get_element():
+ return {elements}
+
+@app.post("/calculator")
+def calculator(expression: Expression):
+ try:
+ num1, operator, num2 = expression.expr.split(',')
+ num1, num2 = float(num1), float(num2)
+
+ if operator == '+':
+ result = num1 + num2
+ elif operator == '-':
+ result = num1 - num2
+ elif operator == '*':
+ result = num1 * num2
+ elif operator == '/':
+ if num2 == 0:
+ raise HTTPException(status_code=403, detail="zerodiv")
+ result = num1 / num2
+ else:
+ raise HTTPException(status_code=400, detail="invalid")
+
+ return {"result": result}
+
+ except ValueError:
+ raise HTTPException(status_code=400, detail="invalid")
diff --git a/docker/dockerize/requirements.txt b/docker/dockerize/requirements.txt
new file mode 100644
index 00000000..782e7086
--- /dev/null
+++ b/docker/dockerize/requirements.txt
@@ -0,0 +1,97 @@
+aiofiles==23.2.1
+anyio==4.2.0
+attrs==23.2.0
+Babel==2.10.3
+bcc==0.29.1
+bcrypt==3.2.2
+blinker==1.7.0
+Brlapi==0.8.5
+certifi==2023.11.17
+chardet==5.2.0
+click==8.1.6
+cloud-init==24.2
+colorama==0.4.6
+command-not-found==0.3
+configobj==5.0.8
+cryptography==41.0.7
+cupshelpers==1.0
+dbus-python==1.3.2
+defer==1.0.6
+distro==1.9.0
+distro-info==1.7+build1
+docker==5.0.3
+docker-compose==1.29.2
+dockerpty==0.4.1
+docopt==0.6.2
+duplicity==2.1.4
+fastapi==0.101.0
+fasteners==0.18
+h11==0.14.0
+httplib2==0.20.4
+idna==3.6
+itsdangerous==2.1.2
+Jinja2==3.1.2
+jsonpatch==1.32
+jsonpointer==2.0
+jsonschema==4.10.3
+language-selector==0.1
+launchpadlib==1.11.0
+lazr.restfulclient==0.14.6
+lazr.uri==1.0.6
+louis==3.29.0
+Mako==1.3.2.dev0
+markdown-it-py==3.0.0
+MarkupSafe==2.1.5
+mdurl==0.1.2
+monotonic==1.6
+netaddr==0.8.0
+netifaces==0.11.0
+oauthlib==3.2.2
+olefile==0.46
+packaging==24.0
+paramiko==2.12.0
+pexpect==4.9.0
+pillow==10.2.0
+ptyprocess==0.7.0
+pycairo==1.25.1
+pycups==2.0.1
+pydantic==1.10.14
+Pygments==2.17.2
+PyGObject==3.48.2
+PyJWT==2.7.0
+PyNaCl==1.5.0
+pyparsing==3.1.1
+pyrsistent==0.20.0
+pyserial==3.5
+python-apt==2.7.7+ubuntu3
+python-dateutil==2.8.2
+python-debian==0.1.49+ubuntu2
+python-dotenv==1.0.1
+python-multipart==0.0.9
+pytz==2024.1
+pyxdg==0.28
+PyYAML==6.0.1
+requests==2.31.0
+rich==13.7.1
+setuptools==68.1.2
+simplejson==3.19.2
+six==1.16.0
+sniffio==1.3.0
+starlette==0.31.1
+systemd-python==235
+texttable==1.6.7
+typing_extensions==4.10.0
+ubuntu-drivers-common==0.0.0
+ubuntu-pro-client==8001
+ufw==0.36.2
+unattended-upgrades==0.1
+urllib3==2.0.7
+usb-creator==0.3.16
+uvicorn==0.27.1
+uvloop==0.19.0
+wadllib==1.3.6
+websocket-client==1.7.0
+wheel==0.42.0
+wsproto==1.2.0
+xdg==5
+xkit==0.0.0
diff --git a/docker/dockerize/solution.sh b/docker/dockerize/solution.sh
new file mode 100644
index 00000000..3cd0b866
--- /dev/null
+++ b/docker/dockerize/solution.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+sudo docker build -t jusan-fastapi-final:dockerized .
+
+sudo docker run -d -p 8080:8080 --name jusan-dockerize jusan-fastapi-final:dockerized
\ No newline at end of file
diff --git a/git/1 git-init/README.md b/git/1 git-init/README.md
index d9d05ba5..64dd6ae9 100644
--- a/git/1 git-init/README.md
+++ b/git/1 git-init/README.md
@@ -45,3 +45,5 @@ P.S.
- Красивый вывод логов `git log --all --decorate --oneline --graph`
[Рецензия](./REVIEW.md)
+
+https://github.com/serikbeissov/jusan-git
diff --git a/git/2 readme/README.md b/git/2 readme/README.md
index e0f14c3d..fc643009 100644
--- a/git/2 readme/README.md
+++ b/git/2 readme/README.md
@@ -89,3 +89,5 @@ int main() {
| WhatsApp | [Ссылка](whats.app) | 30 минут |
| Telegram | [Ссылка](tg.me) | 5 минут |
````
+
+https://github.com/serikbeissov/jusan-git/commit/31eba8d51d34be3bb47e09238b937e01358b2769
diff --git a/git/3 gitignore/README.md b/git/3 gitignore/README.md
index ccc52219..09a79b25 100644
--- a/git/3 gitignore/README.md
+++ b/git/3 gitignore/README.md
@@ -35,3 +35,5 @@ https://github.com/username/jusan-git/tree/5a1e0d9c4c864e13f0682bec96a9f19786fad
```
temp
```
+
+https://github.com/serikbeissov/jusan-git/commit/e914a939432fb500ba96b3ab9a7fe6d878eadb5b
diff --git a/git/4 branch/README.md b/git/4 branch/README.md
index 6b39c1aa..01165b61 100644
--- a/git/4 branch/README.md
+++ b/git/4 branch/README.md
@@ -46,3 +46,5 @@ git checkout authorization
5. Загрузите изменения `git push`
6. Прислать ссылку на репозиторий c указанием последнего коммита мастера в URL.
+
+https://github.com/serikbeissov/jusan-git/commit/e914a939432fb500ba96b3ab9a7fe6d878eadb5b
diff --git a/git/5 merge/README.md b/git/5 merge/README.md
index 0e3b2fd2..37b152d0 100644
--- a/git/5 merge/README.md
+++ b/git/5 merge/README.md
@@ -12,3 +12,5 @@
1. В репозитории `jusan-git` объедините ветку `feature/username` с `master`.
2. Загрузите изменения `git push`.
3. Прислать ссылку на репозиторий c указанием последнего коммита мастера в URL.
+
+https://github.com/serikbeissov/jusan-git/tree/78506335d583ee1365dc0ad5c25a53cc0ff6bb28
diff --git a/git/6 my-pr/README.md b/git/6 my-pr/README.md
index 3ee51a47..5e2725ea 100644
--- a/git/6 my-pr/README.md
+++ b/git/6 my-pr/README.md
@@ -12,3 +12,5 @@ Pull request позволяют вам сообщать другим об изм
1. В репозитории `jusan-git` создать "Pull request" из ветки `new-readme` в `master`.
2. Посмотрите на странице пулл-реквеста, как отображаются окна: Conversation, Commits, Checks, Files changed.
3. Прислать ссылку на pull-request.
+
+https://github.com/serikbeissov/jusan-git/pull/1
diff --git a/git/7 fork-pr/README.md b/git/7 fork-pr/README.md
index 71abbe4d..9fbce4b1 100644
--- a/git/7 fork-pr/README.md
+++ b/git/7 fork-pr/README.md
@@ -32,3 +32,5 @@ fork - это клонирование чужого репозитория на
```bash
curl -s https://stepik.org:443/api/course-lists\?page\=1 | jq --raw-output '."course-lists"[].title'
```
+
+https://github.com/jusan-singularity/fork-me/pull/109
diff --git a/nginx/nginx-auth/README.md b/nginx/nginx-auth/README.md
index 6fd4b886..49bea19a 100644
--- a/nginx/nginx-auth/README.md
+++ b/nginx/nginx-auth/README.md
@@ -10,3 +10,34 @@
6. Учетка `design` не должна иметь доступ на другие пути, тоже самое касается других учеток.
---
+
+ GNU nano 7.2 hwnginx.conf
+server {
+ listen 8080;
+ server_name example.com;
+ location / {
+ auth_basic "private site";
+ auth_basic_user_file /etc/nginx/conf.d/passwd;
+ root /var/www/example.com;
+ index index.html;
+ }
+ location /images {
+ auth_basic "design site";
+ auth_basic_user_file /etc/nginx/conf.d/design_passwd;
+ root /var/www/example.com/cats/;
+ }
+ location /gifs {
+ auth_basic "marketing site";
+ auth_basic_user_file /etc/nginx/conf.d/marketing_passwd;
+ root /var/www/example.com/gifs/;
+ }
+ location /secret_word {
+ return 201 'jusan-nginx-locations';
+ }
+
+ location /api/ {
+ proxy_pass http://localhost:9090;
+ }
+}
+
+
diff --git a/nginx/nginx-cert/README.md b/nginx/nginx-cert/README.md
index 066febbe..99298aa3 100644
--- a/nginx/nginx-cert/README.md
+++ b/nginx/nginx-cert/README.md
@@ -41,3 +41,20 @@ curl -H "Host: jusan.kz" -k https://localhost/secret_word
Флаг `-k` нужен для того, чтобы `curl` не ругался на самоподписанный сертификат.
---
+
+server {
+ listen 443 ssl;
+ server_name jusan.kz;
+ ssl_certificate /etc/nginx/ssl/track-devops.crt;
+ ssl_certificate_key /etc/nginx/ssl/track-devops.key;
+ ssl_dhparam /etc/nginx/ssl/dhparam.pem;
+ ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
+ ssl_ciphers HIGH:!aNULL:!MD5;
+ ssl_prefer_server_ciphers on;
+ location /secret_word {
+ return 201 "jusan-nginx-cert";
+ }
+}
+
+curl -H "Host: jusan.kz" -k https://localhost/secret_word
+jusan-nginx-cert
diff --git a/nginx/nginx-install/README.md b/nginx/nginx-install/README.md
index 5b8285e0..35fc9708 100644
--- a/nginx/nginx-install/README.md
+++ b/nginx/nginx-install/README.md
@@ -114,3 +114,29 @@ curl http://127.0.0.1
---
### Ответ
+
+sbeissov@sbeissov-HP-EliteBook-850-G3:~$ curl http://127.0.0.1
+
+
+
+Welcome to nginx!
+
+
+
+Welcome to nginx!
+If you see this page, the nginx web server is successfully installed and
+working. Further configuration is required.
+
+For online documentation and support please refer to
+nginx.org.
+Commercial support is available at
+nginx.com.
+
+Thank you for using nginx.
+
+
+
diff --git a/nginx/nginx-ip/README.md b/nginx/nginx-ip/README.md
index cd550736..e0737537 100644
--- a/nginx/nginx-ip/README.md
+++ b/nginx/nginx-ip/README.md
@@ -22,3 +22,40 @@
---
### Ответ
+
+ GNU nano 7.2 hwnginx.conf *
+server {
+ listen 8080;
+ server_name example.com;
+ location / {
+ auth_basic "private site";
+ auth_basic_user_file /etc/nginx/conf.d/passwd;
+ root /var/www/example.com;
+ index index.html;
+ }
+ location /images {
+ auth_basic "design site";
+ auth_basic_user_file /etc/nginx/conf.d/design_passwd;
+ root /var/www/example.com/cats/;
+ }
+ location /gifs {
+ auth_basic "marketing site";
+ auth_basic_user_file /etc/nginx/conf.d/marketing_passwd;
+ root /var/www/example.com/gifs/;
+ }
+
+ location /secret_word {
+ allow 192.0.0.1/20;
+ deny 192.0.0.1;
+ deny all;
+ return 203 'jusan-nginx-ip';
+ }
+
+ location /api/ {
+ proxy_pass http://localhost:9090;
+ }
+}
+
+curl http://localhost:8080/secret_word
+jusan-nginx-ip
+
diff --git a/nginx/nginx-locations/README.md b/nginx/nginx-locations/README.md
index cb0dc0ae..138d16ea 100644
--- a/nginx/nginx-locations/README.md
+++ b/nginx/nginx-locations/README.md
@@ -25,3 +25,62 @@ curl -H "Host: example.com" http://localhost:8080/
---
### Ответ
+server {
+ listen 8080;
+ server_name example.com;
+ location / {
+ root /var/www/example.com;
+ index index.html;
+ }
+ location /images {
+ alias /var/www/example.com/cats/;
+ }
+ location /gifs {
+ alias /var/www/example.com/gifs/;
+ }
+ location /secret_word {
+ return 201 'jusan-nginx-locations';
+ }
+}
+
+
+curl -H "Host: example.com" http://localhost:8080/
+
+
+
+
+
+
+
+
+ Cats Page
+
+
+
+
+
Cat with Flower
+
+
+
+
+
Cat with Glasses
+
+
+
+
+
Gray Cat
+
+
+
+
+
Cats mafia
+
+
+
+
+
Sleepy Cat
+
+
+
+
+
diff --git a/nginx/nginx-proxy/README.md b/nginx/nginx-proxy/README.md
index 58a6d47e..3d89d9ff 100644
--- a/nginx/nginx-proxy/README.md
+++ b/nginx/nginx-proxy/README.md
@@ -35,3 +35,16 @@ web-server: 0
---
### Ответ
+
+server {
+ listen 8080;
+ server_name example.com;
+
+ location /api/ {
+ proxy_pass http://localhost:9090;
+ }
+}
+
+curl http://localhost:8080/api/
+404 page not found
+
diff --git a/nginx/nginx-ufw/README.md b/nginx/nginx-ufw/README.md
index 2c776dcd..2e439d3a 100644
--- a/nginx/nginx-ufw/README.md
+++ b/nginx/nginx-ufw/README.md
@@ -20,3 +20,23 @@
---
### Ответ
+sudo apt update
+sudo apt install ufw
+sudo ufw disable
+sudo ufw allow ssh
+sudo ufw allow 'Nginx Full'
+sudo ufw enable
+sudo ufw status verbose
+
+Status: active
+Logging: on (low)
+Default: deny (incoming), allow (outgoing), deny (routed)
+New profiles: skip
+
+To Action From
+-- ------ ----
+22/tcp ALLOW IN Anywhere
+80,443/tcp (Nginx Full) ALLOW IN Anywhere
+22/tcp (v6) ALLOW IN Anywhere (v6)
+80,443/tcp (Nginx Full (v6)) ALLOW IN Anywhere (v6)
+
diff --git a/python/api/fastapi-final/api-project/.gitignore b/python/api/fastapi-final/api-project/.gitignore
new file mode 100644
index 00000000..efa407c3
--- /dev/null
+++ b/python/api/fastapi-final/api-project/.gitignore
@@ -0,0 +1,162 @@
+# Byte-compiled / optimized / DLL files
+__pycache__/
+*.py[cod]
+*$py.class
+
+# C extensions
+*.so
+
+# Distribution / packaging
+.Python
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+wheels/
+share/python-wheels/
+*.egg-info/
+.installed.cfg
+*.egg
+MANIFEST
+
+# PyInstaller
+# Usually these files are written by a python script from a template
+# before PyInstaller builds the exe, so as to inject date/other infos into it.
+*.manifest
+*.spec
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.nox/
+.coverage
+.coverage.*
+.cache
+nosetests.xml
+coverage.xml
+*.cover
+*.py,cover
+.hypothesis/
+.pytest_cache/
+cover/
+
+# Translations
+*.mo
+*.pot
+
+# Django stuff:
+*.log
+local_settings.py
+db.sqlite3
+db.sqlite3-journal
+
+# Flask stuff:
+instance/
+.webassets-cache
+
+# Scrapy stuff:
+.scrapy
+
+# Sphinx documentation
+docs/_build/
+
+# PyBuilder
+.pybuilder/
+target/
+
+# Jupyter Notebook
+.ipynb_checkpoints
+
+# IPython
+profile_default/
+ipython_config.py
+
+# pyenv
+# For a library or package, you might want to ignore these files since the code is
+# intended to run in multiple environments; otherwise, check them in:
+# .python-version
+
+# pipenv
+# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
+# However, in case of collaboration, if having platform-specific dependencies or dependencies
+# having no cross-platform support, pipenv may install dependencies that don't work, or not
+# install all needed dependencies.
+#Pipfile.lock
+
+# poetry
+# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
+# This is especially recommended for binary packages to ensure reproducibility, and is more
+# commonly ignored for libraries.
+# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
+#poetry.lock
+
+# pdm
+# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
+#pdm.lock
+# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
+# in version control.
+# https://pdm.fming.dev/latest/usage/project/#working-with-version-control
+.pdm.toml
+.pdm-python
+.pdm-build/
+
+# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
+__pypackages__/
+
+# Celery stuff
+celerybeat-schedule
+celerybeat.pid
+
+# SageMath parsed files
+*.sage.py
+
+# Environments
+.env
+.venv
+env/
+venv/
+ENV/
+env.bak/
+venv.bak/
+
+# Spyder project settings
+.spyderproject
+.spyproject
+
+# Rope project settings
+.ropeproject
+
+# mkdocs documentation
+/site
+
+# mypy
+.mypy_cache/
+.dmypy.json
+dmypy.json
+
+# Pyre type checker
+.pyre/
+
+# pytype static type analyzer
+.pytype/
+
+# Cython debug symbols
+cython_debug/
+
+# PyCharm
+# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
+# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
+# and can be added to the global gitignore or merged into this file. For a more nuclear
+# option (not recommended) you can uncomment the following to ignore the entire idea folder.
+#.idea/
\ No newline at end of file
diff --git a/python/api/fastapi-final/api-project/main.py b/python/api/fastapi-final/api-project/main.py
new file mode 100644
index 00000000..02e74cb9
--- /dev/null
+++ b/python/api/fastapi-final/api-project/main.py
@@ -0,0 +1,67 @@
+from fastapi import FastAPI
+from fastapi import Header, HTTPException
+from pydantic import BaseModel
+app=FastAPI()
+
+elements = []
+
+class Element_in(BaseModel):
+ element:str
+
+class Expression(BaseModel):
+ expr: str
+
+@app.get("/")
+def read_root():
+ return {"Hello": "World"}
+
+@app.get("/sum1n/{item}")
+def sum_array(item:int):
+ sum=0
+ for i in range(item+1):
+ sum+=i
+ return {sum}
+
+@app.get("/fibo/{number}")
+def fibo(number:int):
+ fib1, fib2 = 0, 1
+ for i in range(number - 1):
+ fib1, fib2 = fib2, fib1 + fib2
+ return {fib2}
+
+@app.post("/reverse")
+def reverse_string(string:str=Header(...)):
+ rev_str=string[::-1]
+ return {rev_str}
+
+@app.put("/list")
+def add_element(item:Element_in):
+ elements.append(item.element)
+
+@app.get("/list")
+def get_element():
+ return {elements}
+
+@app.post("/calculator")
+def calculator(expression: Expression):
+ try:
+ num1, operator, num2 = expression.expr.split(',')
+ num1, num2 = float(num1), float(num2)
+
+ if operator == '+':
+ result = num1 + num2
+ elif operator == '-':
+ result = num1 - num2
+ elif operator == '*':
+ result = num1 * num2
+ elif operator == '/':
+ if num2 == 0:
+ raise HTTPException(status_code=403, detail="zerodiv")
+ result = num1 / num2
+ else:
+ raise HTTPException(status_code=400, detail="invalid")
+
+ return {"result": result}
+
+ except ValueError:
+ raise HTTPException(status_code=400, detail="invalid")
diff --git a/python/api/fastapi-final/api-project/requirements.txt b/python/api/fastapi-final/api-project/requirements.txt
new file mode 100644
index 00000000..782e7086
--- /dev/null
+++ b/python/api/fastapi-final/api-project/requirements.txt
@@ -0,0 +1,97 @@
+aiofiles==23.2.1
+anyio==4.2.0
+attrs==23.2.0
+Babel==2.10.3
+bcc==0.29.1
+bcrypt==3.2.2
+blinker==1.7.0
+Brlapi==0.8.5
+certifi==2023.11.17
+chardet==5.2.0
+click==8.1.6
+cloud-init==24.2
+colorama==0.4.6
+command-not-found==0.3
+configobj==5.0.8
+cryptography==41.0.7
+cupshelpers==1.0
+dbus-python==1.3.2
+defer==1.0.6
+distro==1.9.0
+distro-info==1.7+build1
+docker==5.0.3
+docker-compose==1.29.2
+dockerpty==0.4.1
+docopt==0.6.2
+duplicity==2.1.4
+fastapi==0.101.0
+fasteners==0.18
+h11==0.14.0
+httplib2==0.20.4
+idna==3.6
+itsdangerous==2.1.2
+Jinja2==3.1.2
+jsonpatch==1.32
+jsonpointer==2.0
+jsonschema==4.10.3
+language-selector==0.1
+launchpadlib==1.11.0
+lazr.restfulclient==0.14.6
+lazr.uri==1.0.6
+louis==3.29.0
+Mako==1.3.2.dev0
+markdown-it-py==3.0.0
+MarkupSafe==2.1.5
+mdurl==0.1.2
+monotonic==1.6
+netaddr==0.8.0
+netifaces==0.11.0
+oauthlib==3.2.2
+olefile==0.46
+packaging==24.0
+paramiko==2.12.0
+pexpect==4.9.0
+pillow==10.2.0
+ptyprocess==0.7.0
+pycairo==1.25.1
+pycups==2.0.1
+pydantic==1.10.14
+Pygments==2.17.2
+PyGObject==3.48.2
+PyJWT==2.7.0
+PyNaCl==1.5.0
+pyparsing==3.1.1
+pyrsistent==0.20.0
+pyserial==3.5
+python-apt==2.7.7+ubuntu3
+python-dateutil==2.8.2
+python-debian==0.1.49+ubuntu2
+python-dotenv==1.0.1
+python-multipart==0.0.9
+pytz==2024.1
+pyxdg==0.28
+PyYAML==6.0.1
+requests==2.31.0
+rich==13.7.1
+setuptools==68.1.2
+simplejson==3.19.2
+six==1.16.0
+sniffio==1.3.0
+starlette==0.31.1
+systemd-python==235
+texttable==1.6.7
+typing_extensions==4.10.0
+ubuntu-drivers-common==0.0.0
+ubuntu-pro-client==8001
+ufw==0.36.2
+unattended-upgrades==0.1
+urllib3==2.0.7
+usb-creator==0.3.16
+uvicorn==0.27.1
+uvloop==0.19.0
+wadllib==1.3.6
+websocket-client==1.7.0
+wheel==0.42.0
+wsproto==1.2.0
+xdg==5
+xkit==0.0.0
diff --git "a/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/calc-deposit.py" "b/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/calc-deposit.py"
new file mode 100644
index 00000000..d8e9911f
--- /dev/null
+++ "b/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/calc-deposit.py"
@@ -0,0 +1,5 @@
+def calc(balance:float,procent:float,srok:int):
+ for i in range(srok):
+ balance += balance*procent/100
+ print(round(balance,2))
+calc(1000,5,1)
\ No newline at end of file
diff --git "a/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/int-cmp.py" "b/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/int-cmp.py"
new file mode 100644
index 00000000..530f0170
--- /dev/null
+++ "b/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/int-cmp.py"
@@ -0,0 +1,9 @@
+a=float(input("vvedite a: "))
+b=float(input("vvedite b: "))
+if a>b:
+ print("ответ: 1")
+elif a=b and a>=c:
+ print("max number is: ",a)
+elif b>=c and b>a:
+ print("max number is: ",b)
+else:
+ print("max number is: ",c)
\ No newline at end of file
diff --git "a/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/min.py" "b/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/min.py"
new file mode 100644
index 00000000..14ebb6b4
--- /dev/null
+++ "b/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/min.py"
@@ -0,0 +1,12 @@
+def min_num(array):
+ if not array:
+ return 0
+ min=array[0]
+ for i in range(len(array)):
+ if min>array[i]:
+ min=array[i]
+ print("min number is",min)
+
+min_num([1,2,3])
+
+
diff --git "a/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/pow-a-b.py" "b/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/pow-a-b.py"
new file mode 100644
index 00000000..57367dc4
--- /dev/null
+++ "b/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/pow-a-b.py"
@@ -0,0 +1,6 @@
+a=int(input("vvedite chislo a:"))
+b=int(input("vvedite chislo b:"))
+result=1
+for i in range(b):
+ result=result*a
+print("a^b=",result)
\ No newline at end of file
diff --git "a/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/print-even-a-b.py" "b/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/print-even-a-b.py"
new file mode 100644
index 00000000..1fa2781b
--- /dev/null
+++ "b/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/print-even-a-b.py"
@@ -0,0 +1,8 @@
+a=int(input("vvedite chislo a:"))
+b=int(input("vvedite chislo b:"))
+for i in range(b-a+1):
+ if a%2==0:
+ print(a)
+ a+=1
+
+
diff --git "a/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/range.py" "b/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/range.py"
new file mode 100644
index 00000000..05b90065
--- /dev/null
+++ "b/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/range.py"
@@ -0,0 +1,9 @@
+def range_arr(num:int):
+ array=[]
+ for i in range(num):
+ array.append(i+1)
+ print(array)
+range_arr(5)
+
+
+
\ No newline at end of file
diff --git "a/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/sort.py" "b/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/sort.py"
new file mode 100644
index 00000000..e050113d
--- /dev/null
+++ "b/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/sort.py"
@@ -0,0 +1,11 @@
+def sort(array):
+ end=False
+ while end==False:
+ end=True
+ for i in range(len(array)-1):
+ if array[i]>array[i+1]:
+ array[i],array[i+1]=array[i+1],array[i]
+ end=False
+ print(array)
+
+sort([4,34,6,3,1,45,2,0,-12,53,8,114,2])
\ No newline at end of file
diff --git "a/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/sqr-sum-1-n.py" "b/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/sqr-sum-1-n.py"
new file mode 100644
index 00000000..06474a66
--- /dev/null
+++ "b/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/sqr-sum-1-n.py"
@@ -0,0 +1,7 @@
+n=int(input("vvedite chislo: "))
+sum=0
+for i in range(n+1):
+ sum=sum+i*i
+print("Summa kvadratov = ",sum)
+
+
\ No newline at end of file
diff --git "a/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/sum.py" "b/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/sum.py"
new file mode 100644
index 00000000..19101f07
--- /dev/null
+++ "b/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/sum.py"
@@ -0,0 +1,7 @@
+def sum_array(array):
+ sum=0
+ for i in array:
+ sum+=i
+ print(sum)
+
+sum_array([1,2,3])
diff --git "a/python/\321\201\321\200\320\265\320\264\320\275\320\270\320\265 \320\267\320\260\320\264\320\260\321\207\320\270/1-medium.py" "b/python/\321\201\321\200\320\265\320\264\320\275\320\270\320\265 \320\267\320\260\320\264\320\260\321\207\320\270/1-medium.py"
new file mode 100644
index 00000000..47c4849f
--- /dev/null
+++ "b/python/\321\201\321\200\320\265\320\264\320\275\320\270\320\265 \320\267\320\260\320\264\320\260\321\207\320\270/1-medium.py"
@@ -0,0 +1,6 @@
+def number(num:int):
+ if num%2==0:
+ print(num,"- chetnoe")
+ else:
+ print(num,"- nechetnoe")
+number(25)
\ No newline at end of file
diff --git "a/python/\321\201\321\200\320\265\320\264\320\275\320\270\320\265 \320\267\320\260\320\264\320\260\321\207\320\270/2-medium.py" "b/python/\321\201\321\200\320\265\320\264\320\275\320\270\320\265 \320\267\320\260\320\264\320\260\321\207\320\270/2-medium.py"
new file mode 100644
index 00000000..411b5bc3
--- /dev/null
+++ "b/python/\321\201\321\200\320\265\320\264\320\275\320\270\320\265 \320\267\320\260\320\264\320\260\321\207\320\270/2-medium.py"
@@ -0,0 +1,12 @@
+def palindrom(word:str):
+ i=0
+ while i=1 and day<=31) or (month==1 and day>=1 and day<=31) or (month==2 and day>=1 and day<=29):
+ return "Зима"
+ elif (month==3 and day>=1 and day<=31) or (month==4 and day>=1 and day<=30) or (month==5 and day>=1 and day<=31):
+ return "Весна"
+ elif (month==6 and day>=1 and day<=30) or (month==7 and day>=1 and day<=31) or (month==8 and day>=1 and day<=31):
+ return "Лето"
+ elif (month==9 and day>=1 and day<=30) or (month==10 and day>=1 and day<=31) or (month==11 and day>=1 and day<=31):
+ return "Осень"
+
+month = int(input("Введите месяц (1-12): "))
+day = int(input("Введите день (1-31): "))
+
+season = determine_season(month, day)
+print(f"Эта дата относится к сезону: {season}")