āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§, āĻāĻŽāĻŋ "Epics" āĻā§āĻŽāĻāĻŋ āĻŦāĻŋāĻāĻžāĻļā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻžāĻā§āĻ° āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻŦ āĻāĻŦāĻ OpenFaaS-āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻ āĻāĻļāĻā§āĻ˛āĻŋāĻ¤ā§ āĻā§āĻŽāĻāĻŋāĻā§ āĻ¨āĻŋāĻā§āĻ āĻā§āĻā§ āĻĻā§āĻŦāĨ¤ āĻāĻŽāĻŋ āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŽā§āĻ¯āĻžāĻ¨āĻŋāĻĒā§āĻ˛ā§āĻļāĻ¨ āĻāĻ°āĻŦ, āĻāĻŽāĻŋ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛āĻŦāĻā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻŽāĻŋāĻ¨āĻŋāĻā§āĻŦā§ āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻŦāĨ¤ āĻāĻŽāĻžāĻ° āĻāĻžāĻā§āĻ° āĻŽā§āĻļāĻŋāĻ¨ā§ 2āĻāĻŋ āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻ° āĻā§āĻ° āĻāĻŦāĻ 12GB RAM āĻ°āĻ¯āĻŧā§āĻā§; āĻāĻŽāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĄāĻŋāĻ¸ā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻāĻāĻŋ SSD āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋāĨ¤ āĻāĻŽāĻŋ āĻĄā§āĻŦāĻŋāĻ¯āĻŧāĻžāĻ¨ 8 āĻā§ āĻāĻŽāĻžāĻ° āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻĄā§āĻā§āĻ˛āĻĒāĻŽā§āĻ¨ā§āĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦ, āĻāĻŽā§āĻ¯āĻžāĻā§āĻ¸, āĻ¸ā§āĻĄā§, āĻāĻŋāĻ āĻāĻŦāĻ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛āĻŦāĻā§āĻ¸ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻ¸āĻš, āĻŦāĻžāĻāĻŋ āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻŋāĻāĻšāĻžāĻŦ āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻāĻ¤ā§āĻ¸ āĻĨā§āĻā§ āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄ āĻāĻ°ā§ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž āĻšāĻŦā§āĨ¤ āĻāĻŽāĻ°āĻž āĻāĻ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻā§āĻ˛āĻŋāĻā§ /usr/local/bin-āĻ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻŦ āĻ¯āĻĻāĻŋ āĻ¨āĻž āĻ āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻ˛ āĻļā§āĻ°ā§ āĻāĻ°āĻŋ!
āĻāĻžāĻā§āĻ° āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻāĻ°āĻž
Go āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻāĻŽāĻ°āĻž āĻ āĻĢāĻŋāĻ¸āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻāĻ¯āĻŧā§āĻŦāĻ¸āĻžāĻāĻ āĻĨā§āĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻžāĻŦāĻ˛ā§ āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°āĻŋ:
$ curl -L0 https://dl.google.com/go/go1.13.5.linux-amd64.tar.gz -o go.tar.gz
$ sudo tar -C /usr/local -xzf go.tar.gz
$ echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.profile
āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻž āĻšāĻā§āĻā§:
$ mkdir -p ~/go/src/hello && cd ~/go/src/hello
$ echo 'package main
import "fmt"
func main() {
fmt.Printf("hello, worldn")
}' > hello.go
$ go build
$ ./hello
hello, world
faas-cli āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻāĻŽāĻ°āĻž āĻ āĻĢāĻŋāĻ¸āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻāĻ¯āĻŧā§āĻŦāĻ¸āĻžāĻāĻ āĻĨā§āĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻžāĻŦāĻ˛ā§ āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°āĻŋ:
$ curl -sSL https://cli.openfaas.com | sudo -E sh
x86_64
Downloading package https://github.com/openfaas/faas-cli/releases/download/0.11.3/faas-cli as /tmp/faas-cli
Download complete.
Running with sufficient permissions to attempt to move faas-cli to /usr/local/bin
New version of faas-cli installed to /usr/local/bin
Creating alias 'faas' for 'faas-cli'.
___ _____ ____
/ _ _ __ ___ _ __ | ___|_ _ __ _/ ___|
| | | | '_ / _ '_ | |_ / _` |/ _` ___
| |_| | |_) | __/ | | | _| (_| | (_| |___) |
___/| .__/ ___|_| |_|_| __,_|__,_|____/
|_|
CLI:
commit: 73004c23e5a4d3fdb7352f953247473477477a64
version: 0.11.3
āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤āĻāĻžāĻŦā§, āĻāĻĒāĻ¨āĻŋ bash-completion āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
faas-cli completion --shell bash | sudo tee /etc/bash_completion.d/faas-cli
Kubernetes āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻŦāĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž
āĻŦāĻŋāĻāĻžāĻļā§āĻ° āĻāĻ¨ā§āĻ¯, āĻŽāĻŋāĻ¨āĻŋāĻā§āĻŦāĻ āĻ¯āĻĨā§āĻˇā§āĻ, āĻ¤āĻžāĻ āĻāĻāĻŋ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ /usr/local/bin-āĻ āĻā§āĻŦā§āĻ˛ā§āĻ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻā§āĻ˛āĻŋ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻšā§āĻ˛āĻŽ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°ā§āĻ¨:
$ curl https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 -o minikube && chmod +x minikube && sudo mv minikube /usr/local/bin/
$ curl https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl -o kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/
$ curl https://get.helm.sh/helm-v3.0.2-linux-amd64.tar.gz | tar -xzvf - linux-amd64/helm --strip-components=1; sudo mv helm /usr/local/bin
āĻŽāĻŋāĻ¨āĻŋāĻā§āĻŦ āĻāĻžāĻ˛ā§ āĻāĻ°ā§āĻ¨:
$ minikube start
minikube v1.6.2 on Debian 8.11
Automatically selected the 'virtualbox' driver (alternates: [])
Downloading VM boot image ...
> minikube-v1.6.0.iso.sha256: 65 B / 65 B [--------------] 100.00% ? p/s 0s
> minikube-v1.6.0.iso: 150.93 MiB / 150.93 MiB [-] 100.00% 5.67 MiB p/s 27s
Creating virtualbox VM (CPUs=2, Memory=8192MB, Disk=20000MB) ...
Preparing Kubernetes v1.17.0 on Docker '19.03.5' ...
Downloading kubeadm v1.17.0
Downloading kubelet v1.17.0
Pulling images ...
Launching Kubernetes ... Waiting for cluster to come online ...
Done! kubectl is now configured to use "minikube"
āĻā§āĻ āĻāĻ°ā§āĻ¨:
$ kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-6955765f44-knlcb 1/1 Running 0 29m
kube-system coredns-6955765f44-t9cpn 1/1 Running 0 29m
kube-system etcd-minikube 1/1 Running 0 28m
kube-system kube-addon-manager-minikube 1/1 Running 0 28m
kube-system kube-apiserver-minikube 1/1 Running 0 28m
kube-system kube-controller-manager-minikube 1/1 Running 0 28m
kube-system kube-proxy-hv2wc 1/1 Running 0 29m
kube-system kube-scheduler-minikube 1/1 Running 0 28m
kube-system storage-provisioner 1/1 Running 1 29m
OpenFaaS āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§āĻ°āĻž āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ 2āĻāĻŋ āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻĻā§āĻ¨:
$ kubectl apply -f https://raw.githubusercontent.com/openfaas/faas-netes/master/namespaces.yml
namespace/openfaas created
namespace/openfaas-fn created
āĻšā§āĻ˛āĻŽā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨:
$ helm repo add openfaas https://openfaas.github.io/faas-netes/
"openfaas" has been added to your repositories
āĻāĻžāĻ°ā§āĻā§ āĻāĻ¨āĻ¸ā§āĻāĻ˛ā§āĻļāĻ¨ā§āĻ° āĻāĻā§ āĻāĻāĻāĻŋ āĻĒāĻžāĻ¸āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻ¸ā§āĻ āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž āĻ°āĻ¯āĻŧā§āĻā§, āĻāĻ¸ā§āĻ¨ āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋ āĻāĻŦāĻ āĻāĻāĻāĻŋ k8s āĻā§āĻĒāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻĄā§āĻāĻž āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻŋ:
$ PASSWORD=verysecurerandompasswordstring
$ kubectl -n openfaas create secret generic basic-auth --from-literal=basic-auth-user=admin --from-literal=basic-auth-password="$PASSWORD"
secret/basic-auth created
āĻāĻ˛ā§āĻ¨ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻ¯āĻžāĻ:
$ helm repo update
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "openfaas" chart repository
Update Complete. Happy Helming!
$ helm upgrade openfaas --install openfaas/openfaas --namespace openfaas --set functionNamespace=openfaas-fn --set generateBasicAuth=false
Release "openfaas" does not exist. Installing it now.
NAME: openfaas
LAST DEPLOYED: Fri Dec 25 10:28:22 2019
NAMESPACE: openfaas
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
To verify that openfaas has started, run:
kubectl -n openfaas get deployments -l "release=openfaas, app=openfaas"
āĻāĻŋāĻā§ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻ¸ā§āĻ¤āĻžāĻŦāĻŋāĻ¤ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻāĻžāĻ˛āĻžāĻ:
$ kubectl -n openfaas get deployments -l "release=openfaas, app=openfaas"
NAME READY UP-TO-DATE AVAILABLE AGE
alertmanager 1/1 1 1 114s
basic-auth-plugin 1/1 1 1 114s
faas-idler 1/1 1 1 114s
gateway 1/1 1 1 114s
nats 1/1 1 1 114s
prometheus 1/1 1 1 114s
queue-worker 1/1 1 1 114s
āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻž āĻšāĻā§āĻā§:
$ kubectl rollout status -n openfaas deploy/gateway
deployment "gateway" successfully rolled out
$ kubectl port-forward -n openfaas svc/gateway 8080:8080 &
[1] 6985
Forwarding from 127.0.0.1:8080 -> 8080
$ echo -n $PASSWORD | faas-cli login --username admin --password-stdin
Calling the OpenFaaS server to validate the credentials...
Handling connection for 8080
WARNING! Communication is not secure, please consider using HTTPS. Letsencrypt.org offers free SSL/TLS certificates.
credentials saved for admin http://127.0.0.1:8080
$ faas-cli list
Function Invocations Replicas
Mongodb āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻāĻŽāĻ°āĻž āĻšā§āĻ˛āĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻŋ:
$ helm repo add stable https://kubernetes-charts.storage.googleapis.com/
"stable" has been added to your repositories
$ helm install stable/mongodb --generate-name
NAME: mongodb-1577466908
LAST DEPLOYED: Fri Dec 25 11:15:11 2019
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
** Please be patient while the chart is being deployed **
MongoDB can be accessed via port 27017 on the following DNS name from within your cluster:
mongodb-1577466908.default.svc.cluster.local
To get the root password run:
export MONGODB_ROOT_PASSWORD=$(kubectl get secret --namespace default mongodb-1577466908 -o jsonpath="{.data.mongodb-root-password}" | base64 --decode)
To connect to your database run the following command:
kubectl run --namespace default mongodb-1577466908-client --rm --tty -i --restart='Never' --image bitnami/mongodb --command -- mongo admin --host mongodb-1577466908 --authenticationDatabase admin -u root -p $MONGODB_ROOT_PASSWORD
To connect to your database from outside the cluster execute the following commands:
kubectl port-forward --namespace default svc/mongodb-1577466908 27017:27017 &
mongo --host 127.0.0.1 --authenticationDatabase admin -p $MONGODB_ROOT_PASSWORD
āĻā§āĻ āĻāĻ°ā§āĻ¨:
kubectl run --namespace default mongodb-1577466908-client --rm --tty -i --restart='Never' --image bitnami/mongodb --command -- mongo admin --host mongodb-1577466908 --authenticationDatabase admin -u root -p $(kubectl get secret --namespace default mongodb-1577466908 -o jsonpath="{.data.mongodb-root-password}" | base64 --decode)
If you don't see a command prompt, try pressing enter.
> db.version();
4.0.14
āĻ§āĻžāĻ°āĻ āĻĨā§āĻā§ āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ āĻāĻ°āĻ¤ā§ ctrl+D āĻāĻŋāĻĒā§āĻ¨āĨ¤
emacs āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻ¨ā§āĻ¤āĻŋāĻāĻ¤āĻāĻžāĻŦā§, āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻ
āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛
āĻĢāĻžāĻāĻļāĻ¨ āĻŽāĻ§ā§āĻ¯ā§ āĻā§āĻ˛āĻž āĻāĻžāĻā§āĻāĻ¨
āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻŽāĻŋāĻĨāĻ¸ā§āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž HTTP āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸āĻā§āĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻ¨ā§āĻĄ-āĻā§-āĻāĻ¨ā§āĻĄ āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ JWT āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ Mongodb āĻā§āĻā§āĻ¨, āĻ¸ā§āĻāĻ¸āĻžāĻĨā§ āĻā§āĻŽā§āĻ° āĻ āĻŦāĻ¸ā§āĻĨāĻž, āĻĒā§āĻ˛ā§āĻ¯āĻŧāĻžāĻ°ā§āĻ° āĻĄā§āĻāĻž, āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻā§āĻŽā§āĻ° āĻāĻ¤āĻŋāĻ° āĻā§āĻ°āĻŽ āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¤āĻĨā§āĻ¯ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻāĻ¸ā§āĻ¨ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻāĻāĻ°ā§āĻˇāĻŖā§āĻ¯āĻŧ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋ āĻāĻ¨āĻŋāĻˇā§āĻ āĻāĻžāĻŦā§ āĻĻā§āĻā§ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻāĨ¤
āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨
āĻāĻ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻāĻ¨āĻĒā§āĻ āĻšāĻ˛ āĻā§āĻŽā§āĻ° āĻĄāĻžāĻāĻ¨āĻžāĻŽ āĻāĻŦāĻ āĻĒāĻžāĻ¸āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻ¸āĻš JSONāĨ¤ āĻ¯āĻāĻ¨ āĻāĻ āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻāĻ˛ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻāĻāĻŋ āĻā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯ā§ āĻāĻ āĻāĻĒāĻ¨āĻžāĻŽāĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻ¨ā§āĻ; āĻ¯āĻĻāĻŋ āĻā§āĻ āĻ¸āĻĢāĻ˛ āĻšāĻ¯āĻŧ, āĻāĻĒāĻ¨āĻžāĻŽ āĻāĻŦāĻ āĻĒāĻžāĻ¸āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻšā§āĻ¯āĻžāĻļ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻĸā§āĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧāĨ¤ āĻā§āĻŽāĻāĻŋāĻ¤ā§ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻ āĻāĻļāĻā§āĻ°āĻšāĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤
āĻĒā§āĻ°āĻŦā§āĻļ
āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ¨āĻĒā§āĻ āĻšāĻ˛ āĻāĻāĻāĻŋ āĻā§āĻŽā§āĻ° āĻĄāĻžāĻāĻ¨āĻžāĻŽ āĻāĻŦāĻ āĻĒāĻžāĻ¸āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻ¸āĻš JSON; āĻ¯āĻĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻāĻāĻāĻŋ āĻĄāĻžāĻāĻ¨āĻžāĻŽ āĻĨāĻžāĻā§ āĻāĻŦāĻ āĻĒāĻžāĻ¸āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄāĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻĒā§āĻ°ā§āĻŦā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŋāĻ¤ āĻāĻāĻāĻŋ āĻĻāĻŋāĻ¯āĻŧā§ āĻ¸āĻĢāĻ˛āĻāĻžāĻŦā§ āĻ¯āĻžāĻāĻžāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻāĻāĻŋ JWT āĻĢā§āĻ°āĻ¤ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ, āĻ¯āĻž āĻ āĻ¨ā§āĻ¯ āĻĢāĻžāĻāĻļāĻ¨ā§ āĻĒāĻžāĻ¸ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¯āĻāĻ¨ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻĄāĻžāĻāĻž āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ° āĻ°ā§āĻāĻ°ā§āĻĄāĻ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻĸā§āĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧ, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻļā§āĻˇ āĻ˛āĻāĻāĻ¨ āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋāĨ¤
āĻā§āĻŽā§āĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĻā§āĻā§āĻ¨
āĻ¯ā§āĻā§āĻ¨ āĻ āĻ¨āĻ¨ā§āĻŽā§āĻĻāĻŋāĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻā§āĻŽāĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻ¤ā§āĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻā§āĻŽā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻāĻāĻ¨ āĻ āĻ¨ā§āĻŽā§āĻĻāĻŋāĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻā§āĻŽāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ āĻĻā§āĻā§āĻ¨āĨ¤ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻšāĻ˛ JSON āĻā§āĻŽā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻž (āĻā§āĻŽ āĻāĻāĻĄāĻŋ, āĻŽāĻžāĻ¨ā§āĻˇā§āĻ°-āĻĒāĻžāĻ āĻ¯ā§āĻā§āĻ¯ āĻ¨āĻžāĻŽ, āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ)āĨ¤
āĻā§āĻ˛āĻž āĻ¸ā§āĻˇā§āĻāĻŋ
āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ āĻ¨ā§āĻŽā§āĻĻāĻŋāĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°ā§; āĻāĻ¨āĻĒā§āĻā§ āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ āĻ¸āĻāĻā§āĻ¯āĻ āĻā§āĻ˛ā§āĻ¯āĻŧāĻžāĻĄāĻŧ āĻā§āĻ°āĻšāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¸ā§āĻāĻ¸āĻžāĻĨā§ āĻā§āĻŽā§āĻ° āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋāĻā§āĻ˛āĻŋ (āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻ āĻā§āĻŽāĻāĻŋāĻ¤ā§ āĻā§āĻ¨ āĻ āĻā§āĻˇāĻ°āĻā§āĻ˛āĻŋ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻā§āĻ˛ā§āĻ¯āĻŧāĻžāĻĄāĻŧāĻĻā§āĻ° āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ āĻ¸āĻāĻā§āĻ¯āĻž āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ)āĨ¤ āĻā§āĻŽā§āĻ° āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻšāĻ˛ āĻ¯ā§āĻāĻĻāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĒāĻžāĻ¸āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄā§āĻ° āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ, āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻā§ āĻ -āĻĒāĻžāĻŦāĻ˛āĻŋāĻ āĻā§āĻŽ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤ āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§, āĻāĻāĻāĻŋ āĻĒāĻžāĻŦāĻ˛āĻŋāĻ āĻā§āĻŽ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻšāĻ˛ JSON, āĻ¯ā§āĻāĻŋāĻ¤ā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻˇā§āĻāĻŋ āĻ¸āĻžāĻĢāĻ˛ā§āĻ¯ā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°, āĻāĻāĻāĻŋ āĻ āĻ¨āĻ¨ā§āĻ¯ āĻā§āĻŽ āĻļāĻ¨āĻžāĻā§āĻ¤āĻāĻžāĻ°ā§ āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤
āĻā§āĻ˛āĻžāĻ¯āĻŧ āĻ¯ā§āĻāĻĻāĻžāĻ¨
āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ āĻ¨ā§āĻŽā§āĻĻāĻŋāĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°ā§, āĻāĻ¨āĻĒā§āĻāĻāĻŋ āĻšāĻ˛ āĻā§āĻŽ āĻāĻāĻĄāĻŋ āĻāĻŦāĻ āĻāĻ° āĻĒāĻžāĻ¸āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ, āĻ¯āĻĻāĻŋ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ -āĻĒāĻžāĻŦāĻ˛āĻŋāĻ āĻā§āĻŽ āĻšāĻ¯āĻŧ, āĻāĻāĻāĻĒā§āĻāĻāĻŋ āĻā§āĻŽā§āĻ° āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻ¸āĻš JSON āĻšāĻ¯āĻŧāĨ¤ āĻā§āĻŽāĻāĻŋāĻ¤ā§ āĻ¯ā§āĻāĻĻāĻžāĻ¨āĻāĻžāĻ°ā§ āĻ āĻ¨ā§āĻŽā§āĻĻāĻŋāĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§, āĻ¸ā§āĻāĻ¸āĻžāĻĨā§ āĻā§āĻŽāĻāĻŋāĻ° āĻ¸ā§āĻ°āĻˇā§āĻāĻž, āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§āĻ¤ā§ āĻā§āĻŽā§āĻ° āĻ āĻāĻļāĻā§āĻ°āĻšāĻŖāĻāĻžāĻ°ā§ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧāĨ¤
āĻā§āĻ˛āĻž āĻāĻā§āĻ¨ā§āĻ āĻĻā§āĻāĻž
āĻ¯ā§āĻā§āĻ¨ āĻ āĻ¨āĻ¨ā§āĻŽā§āĻĻāĻŋāĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ¨āĻŋāĻˇā§āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻā§āĻŽāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻā§āĻ¨ā§āĻāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻāĻāĻāĻ¨ āĻ āĻ¨ā§āĻŽā§āĻĻāĻŋāĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ¯ā§ āĻā§āĻ¨āĻ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻā§āĻŽā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻā§āĻ¨ā§āĻāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ā§ˇ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻā§āĻ¨ā§āĻ āĻ¨āĻŽā§āĻŦāĻ° āĻ¯āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻāĻā§āĨ¤ āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸ā§āĻ āĻāĻā§āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻ¯āĻž āĻĒāĻ°ā§ āĻāĻā§āĻā§ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ¯āĻŧ āĻĢāĻŋāĻ°ā§ āĻāĻ¸āĻŦā§āĨ¤ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧāĻā§āĻ°āĻŽā§ āĻāĻ āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻāĻžāĻ˛ā§ āĻāĻ°āĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§, āĻāĻāĻāĻ¨ āĻ āĻ¨ā§āĻŽā§āĻĻāĻŋāĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻā§āĻŽāĻāĻŋāĻ¤ā§ āĻā§ āĻāĻāĻā§ āĻ¤āĻž āĻĻā§āĻā§āĻ¨āĨ¤ āĻāĻ āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻāĻļāĻ¨ āĻ āĻ¨ā§āĻ°ā§āĻ§āĻ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻ¯āĻŧ, āĻ¯āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻā§āĻŽā§āĻ° āĻāĻā§āĻ¨ā§āĻ āĻĄāĻŋāĻ¸āĻĒā§āĻ¯āĻžāĻ āĻĢāĻžāĻāĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻžāĻ¨āĻžāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻāĻāĻāĻŋ āĻā§āĻ˛āĻž āĻāĻā§āĻ¨ā§āĻ āĻĒāĻžāĻ āĻžāĻ¨ā§ āĻšāĻā§āĻā§
āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻā§āĻŽā§āĻ° āĻ
āĻāĻļāĻā§āĻ°āĻšāĻŖāĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻžāĻ āĻāĻ°ā§: āĻā§āĻŽāĻāĻŋ āĻļā§āĻ°ā§ āĻāĻ°āĻž, āĻāĻāĻāĻŋ āĻ¸āĻ°āĻžāĻ¨ā§, āĻā§āĻ āĻĻā§āĻāĻ¯āĻŧāĻž, āĻā§āĻŽā§āĻ° āĻāĻā§āĻ¨ā§āĻā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ¯āĻŧ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻāĻāĻāĻŋ āĻĒāĻžāĻ ā§āĻ¯ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻ˛ā§āĻāĻž āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ āĻ¸āĻŽā§āĻāĻŦāĨ¤
āĻ
āĻ¨ā§āĻŽā§āĻĻāĻŋāĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ¯āĻŋāĻ¨āĻŋ āĻā§āĻŽāĻāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻā§āĻ¨ āĻ¤āĻžāĻ°āĻž āĻ¨āĻŋāĻā§āĻĻā§āĻ° āĻ¸āĻš āĻā§āĻŽā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ
āĻāĻļāĻā§āĻ°āĻšāĻŖāĻāĻžāĻ°ā§āĻĻā§āĻ° āĻā§āĻŽāĻŋāĻāĻž āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻļā§āĻ°ā§ āĻāĻ°ā§, āĻ¤āĻžāĻĻā§āĻ° āĻ
āĻŦāĻļā§āĻ¯āĻ āĻāĻāĻ āĻĢāĻžāĻāĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¤āĻžāĻĻā§āĻ° āĻā§āĻŽāĻŋāĻāĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻāĻŦāĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻā§āĻŽāĻŋāĻāĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻšāĻ¯āĻŧā§ āĻā§āĻ˛ā§, āĻā§āĻŽāĻāĻŋ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻ¨āĻžāĻāĻ āĻŽā§āĻĄā§ āĻāĻ˛ā§ āĻ¯āĻžāĻ¯āĻŧāĨ¤
āĻā§āĻ˛āĻž āĻĒāĻ°āĻŋāĻ¸āĻāĻā§āĻ¯āĻžāĻ¨
āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻā§āĻŽā§āĻ° āĻ āĻāĻļāĻā§āĻ°āĻšāĻŖāĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻžāĻ āĻāĻ°ā§; āĻāĻāĻŋ āĻā§āĻŽā§āĻ° āĻ āĻŦāĻ¸ā§āĻĨāĻž, āĻā§āĻ˛ā§āĻ¯āĻŧāĻžāĻĄāĻŧāĻĻā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻāĻŦāĻ āĻ¸āĻāĻā§āĻ¯āĻž (āĻĄāĻžāĻāĻ¨āĻžāĻŽ), āĻā§āĻŽāĻŋāĻāĻž āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻ āĻŦāĻ¸ā§āĻĨāĻž (āĻ¸āĻ°āĻžāĻ¨ā§ āĻŦāĻž āĻ¨āĻž āĻāĻ°āĻž) āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¤āĻĨā§āĻ¯ āĻĻā§āĻāĻžāĻ¯āĻŧāĨ¤ āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻĢāĻžāĻāĻļāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻ¸āĻŦāĻāĻŋāĻā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻā§āĻ˛āĻž āĻ āĻāĻļāĻā§āĻ°āĻšāĻŖāĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻžāĻ āĻāĻ°ā§.
āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧāĻā§āĻ°āĻŽā§ āĻāĻžāĻ˛ā§ āĻĢāĻžāĻāĻļāĻ¨
āĻā§āĻŽāĻāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻŋāĻā§ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻŽāĻāĻŋ āĻāĻžāĻ˛ā§ āĻ¨āĻž āĻšāĻ˛ā§, āĻāĻāĻŋ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻā§āĻ˛āĻŋāĻ¯āĻŧāĻžāĻ° āĻĢāĻžāĻāĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻā§āĻŽā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĨā§āĻā§ āĻŽā§āĻā§ āĻĢā§āĻ˛āĻž āĻšāĻŦā§āĨ¤
āĻāĻ°ā§āĻāĻāĻŋ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧāĻā§āĻ°āĻŽāĻŋāĻ āĻāĻžāĻ āĻšāĻ˛ āĻā§āĻŽā§āĻ° āĻŽā§āĻĄāĻā§ āĻ°āĻžāĻ¤ āĻĨā§āĻā§ āĻĻāĻŋāĻ¨ā§ āĻāĻŦāĻ āĻĒāĻŋāĻāĻ¨ā§āĻ° āĻĻāĻŋāĻā§ āĻā§āĻ° āĻāĻ°ā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻ¯āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻŋ āĻĒāĻžāĻ˛āĻž āĻāĻ˛āĻžāĻāĻžāĻ˛ā§āĻ¨ āĻāĻā§āĻ¨āĻŋ (āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻāĻāĻ¨ āĻā§āĻ˛ā§āĻ¯āĻŧāĻžāĻĄāĻŧ āĻ¯āĻžāĻā§ āĻāĻāĻāĻŋ āĻā§āĻŽ āĻāĻā§āĻ¨ā§āĻā§ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻžāĻ¨āĻžāĻ¤ā§ āĻšāĻŦā§ āĻ¸ā§ āĻā§āĻ¨ā§ āĻāĻžāĻ°āĻŖā§ āĻ¤āĻžāĻ° āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻĒāĻžāĻ āĻžāĻ¯āĻŧāĻ¨āĻŋāĨ¤ )
āĻā§āĻˇāĻŖāĻž
āĻā§āĻŽāĻŋāĻāĻž - āĻĄā§āĻā§āĻ˛āĻĒāĻŽā§āĻ¨ā§āĻ āĻāĻ¨āĻāĻžāĻ¯āĻŧāĻ°āĻ¨āĻŽā§āĻ¨ā§āĻ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻž, āĻāĻžāĻāĻāĻŋāĻā§ āĻĢāĻžāĻāĻļāĻ¨ā§ āĻāĻžāĻā§āĻāĻžāĻ¨ā§
- āĻŦā§āĻ¯āĻžāĻāĻāĻ¨ā§āĻĄ āĻāĻžāĻ
- āĻ¸āĻŽā§āĻŽā§āĻāĻāĻžāĻā§āĻ° āĻāĻžāĻ
- āĻ¸āĻŋāĻāĻāĻ¸āĻŋāĻĄāĻŋ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻž, āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻāĻ¯āĻŧā§āĻāĻ¨ āĻāĻ°āĻž
- āĻāĻāĻāĻŋ āĻā§āĻ°āĻžāĻ¯āĻŧāĻžāĻ˛ āĻā§āĻŽ āĻ¸ā§āĻļāĻ¨ āĻļā§āĻ°ā§ āĻāĻ°ā§āĻ¨
- āĻĢāĻ˛āĻžāĻĢāĻ˛
āĻāĻ¤ā§āĻ¸: www.habr.com