diff --git a/404.html b/404.html
new file mode 100644
index 0000000..d8e3b49
--- /dev/null
+++ b/404.html
@@ -0,0 +1,50 @@
+
+
+
+ \n
\n
\n
\n Hi!\n \n 👋🏻\n \n This is phonebook app for your contacts.\n
\n
\n Here you can log in and save the necessary numbers of people\n \n 👥\n \n you need in your account.\n
\n
\n You can register several times to create separate accounts that will\n store the phones of colleagues,friends or relatives separately.\n \n 📲\n \n
\n \n {/* */}\n
\n );\n}\n"],"names":["particlesInit","useCallback","engine","loadFull","particlesLoaded","container","id","init","loaded","options","background","position","repeat","size","backgroundMask","cover","color","value","r","g","b","enable","fullScreen","zIndex","interactivity","events","onClick","mode","onHover","parallax","force","modes","attract","distance","duration","easing","factor","maxSpeed","speed","bounce","bubble","mix","opacity","divs","selectors","connect","links","radius","grab","blink","consent","push","default","groups","quantity","remove","repulse","trail","delay","pauseOnStop","light","area","gradient","start","stop","shadow","length","particles","move","rotate","x","y","outModes","bottom","left","right","top","number","density","animation","minimumValue","random","min","max","life","count","sync","roll","darken","enlighten","tilt","decay","direction","twinkle","lines","frequency","wobble","angle","orbit","rotation","width","blur","triangles","warp","enabled","styles","minHeight","display","alignItems","justifyContent","title","fontWeight","fontSize","textAlign","fontFamily","Home","style","role","padding"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/343.b5188439.chunk.js b/static/js/343.b5188439.chunk.js
new file mode 100644
index 0000000..5667752
--- /dev/null
+++ b/static/js/343.b5188439.chunk.js
@@ -0,0 +1,2 @@
+"use strict";(self.webpackChunkreact_homework_template=self.webpackChunkreact_homework_template||[]).push([[343],{6343:function(e,t,n){n.r(t),n.d(t,{default:function(){return w}});var a,r,i=n(9434),o=n(9273),l=n(168),s=n(7691),d=s.ZP.form(a||(a=(0,l.Z)(["\n width: 320px;\n"]))),u=(s.ZP.label(r||(r=(0,l.Z)(["\n display: flex;\n flex-direction: column;\n margin-bottom: 16px;\n"]))),n(1614)),m=n(6747),c=n(7338),p=n(3736),x=n(1643),h=n(4217),f=n(184),v=function(e){var t=e.onData,n=(0,i.I0)(),a=(0,i.v9)(h.Li);return(0,f.jsx)(u.Z,{component:"div",maxWidth:"xs",style:{maxWidth:440},children:(0,f.jsxs)(m.Z,{sx:{marginTop:8,display:"flex",flexDirection:"column",alignItems:"center",backgroundColor:"white",padding:"20px",boxShadow:" rgb(33 33 33) 0px 2px 10px 1px"},children:[(0,f.jsx)("h1",{style:{textAlign:"center",fontFamily:"monospace"},children:"Entrance"}),(0,f.jsxs)(d,{onSubmit:function(e){e.preventDefault();var a=e.currentTarget;t(n((0,o.Ib)({email:a.elements.email.value,password:a.elements.password.value}))),a.reset()},autoComplete:"off",children:[(0,f.jsx)(c.Z,{margin:"normal",required:!0,fullWidth:!0,autoFocus:!0,label:"Email",name:"email",autoComplete:"email",type:"email",variant:"standard"}),(0,f.jsx)(c.Z,{margin:"normal",required:!0,fullWidth:!0,name:"password",label:"Password",type:"password",autoComplete:"current-password",variant:"standard"}),a?(0,f.jsx)(p.Z,{fullWidth:!0,variant:"contained",style:{marginTop:30},children:(0,f.jsx)(x.BR,{height:22,stroke:"#fff"})}):(0,f.jsx)(p.Z,{type:"submit",fullWidth:!0,variant:"contained",style:{marginTop:30},children:"Log In"})]})]})})},g=n(5218);function w(){var e=(0,i.v9)(h.Li),t=(0,i.v9)(h.Hn);return(0,f.jsxs)("div",{children:[(0,f.jsx)("title",{children:"Login"}),(0,f.jsx)(v,{onData:function(){"Request failed with status code 400"===t&&!1===e&&g.ZP.error("You have entered an incorrect email address or password, or you have not yet registered!")}})]})}}}]);
+//# sourceMappingURL=343.b5188439.chunk.js.map
\ No newline at end of file
diff --git a/static/js/343.b5188439.chunk.js.map b/static/js/343.b5188439.chunk.js.map
new file mode 100644
index 0000000..b1ba90f
--- /dev/null
+++ b/static/js/343.b5188439.chunk.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/343.b5188439.chunk.js","mappings":"mOAEaA,EAAOC,EAAAA,GAAAA,KAAH,yC,GAIIA,EAAAA,GAAAA,MAAH,6F,oECELC,EAAY,SAAC,GAAgB,IAAdC,EAAa,EAAbA,OACpBC,GAAWC,EAAAA,EAAAA,MACXC,GAAYC,EAAAA,EAAAA,IAAYC,EAAAA,IAiB9B,OACE,SAACC,EAAA,EAAD,CAAWC,UAAU,MAAMC,SAAS,KAAKC,MAAO,CAAED,SAAU,KAA5D,UACE,UAACE,EAAA,EAAD,CACEC,GAAI,CACFC,UAAW,EACXC,QAAS,OACTC,cAAe,SACfC,WAAY,SACZC,gBAAiB,QACjBC,QAAS,OACTC,UAAW,mCARf,WAWE,eAAIT,MAAO,CAAEU,UAAW,SAAUC,WAAY,aAA9C,uBAGA,UAACvB,EAAD,CAAMwB,SA/BS,SAAAC,GACnBA,EAAEC,iBACF,IAAMC,EAAOF,EAAEG,cACfzB,EACEC,GACEyB,EAAAA,EAAAA,IAAM,CACJC,MAAOH,EAAKI,SAASD,MAAME,MAC3BC,SAAUN,EAAKI,SAASE,SAASD,UAKvCL,EAAKO,OACN,EAkBmCC,aAAa,MAA3C,WACE,SAACC,EAAA,EAAD,CACEC,OAAO,SACPC,UAAQ,EACRC,WAAS,EACTC,WAAS,EACTC,MAAM,QACNC,KAAK,QACLP,aAAa,QACbQ,KAAK,QACLC,QAAQ,cAEV,SAACR,EAAA,EAAD,CACEC,OAAO,SACPC,UAAQ,EACRC,WAAS,EACTG,KAAK,WACLD,MAAM,WACNE,KAAK,WACLR,aAAa,mBACbS,QAAQ,aAETtC,GACC,SAACuC,EAAA,EAAD,CAAQN,WAAS,EAACK,QAAQ,YAAYhC,MAAO,CAAEG,UAAW,IAA1D,UACE,SAAC,KAAD,CAAM+B,OAAQ,GAAIC,OAAO,YAG3B,SAACF,EAAA,EAAD,CACEF,KAAK,SACLJ,WAAS,EACTK,QAAQ,YACRhC,MAAO,CAAEG,UAAW,IAJtB,2BAaX,E,UC9Ec,SAASiC,IACtB,IAAM1C,GAAYC,EAAAA,EAAAA,IAAYC,EAAAA,IACxByC,GAAS1C,EAAAA,EAAAA,IAAY2C,EAAAA,IAY3B,OACE,4BACE,sCAEA,SAAChD,EAAD,CAAWC,OAdI,WAEJ,wCAAX8C,IACc,IAAd3C,GAEA6C,EAAAA,GAAAA,MACE,2FAGL,MAQF,C","sources":["components/LoginForm/LoginForm.styled.js","components/LoginForm/LoginForm.jsx","pages/Login.js"],"sourcesContent":["import styled from 'styled-components';\n\nexport const Form = styled.form`\n width: 320px;\n`;\n\nexport const Label = styled.label`\n display: flex;\n flex-direction: column;\n margin-bottom: 16px;\n`;\n","import { useDispatch } from 'react-redux';\nimport { logIn } from 'redux/auth/operations';\nimport { Form } from './LoginForm.styled';\nimport { Button, TextField, Box, Container } from '@mui/material';\nimport { Puff } from 'react-loading-icons';\nimport { useSelector } from 'react-redux';\nimport { selectAuthIsLoading } from 'redux/auth/selectors';\n\nexport const LoginForm = ({ onData }) => {\n const dispatch = useDispatch();\n const isLoading = useSelector(selectAuthIsLoading);\n\n const handleSubmit = e => {\n e.preventDefault();\n const form = e.currentTarget;\n onData(\n dispatch(\n logIn({\n email: form.elements.email.value,\n password: form.elements.password.value,\n })\n )\n );\n\n form.reset();\n };\n\n return (\n