{"id":309261,"date":"2020-08-31T15:01:15","date_gmt":"2020-08-31T15:01:15","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=309261"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2020-08-31T15:01:15","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=309261","title":{"rendered":"\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u0435\u0434\u0438\u0430\u043f\u043b\u0435\u0435\u0440\u0430 \u0434\u043b\u044f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u0443\u0437\u044b\u043a\u0438 \u0442\u0438\u043f\u0430 iTunes"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/517188\/\">\n<h4><font color=\"#cc0000\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u0440\u0435\u0434\u043c\u0435\u0442\u043d\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438<\/font><\/h4>\n<p>  \u041f\u0440\u0435\u0434\u043c\u0435\u0442\u043d\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u044c\u044e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u0435\u0434\u0438\u0430\u043f\u043b\u0435\u0435\u0440, \u0430\u043d\u0430\u043b\u043e\u0433 iTunes. \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u043c\u0438 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0438 \u0441\u0431\u043e\u0440\u043d\u0438\u043a \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0439.<\/p>\n<p>  \u041a\u0430\u0436\u0434\u0430\u044f \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044e \u0438 \u043e\u0434\u043d\u043e\u043c\u0443 \u0430\u043b\u044c\u0431\u043e\u043c\u0443, \u043d\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0438\u0445 \u043c\u043e\u0436\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. \u041a\u0430\u0436\u0434\u044b\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043c\u043e\u0436\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0439.<br \/>  <a name=\"habracut\"><\/a><br \/>  \u041a\u0430\u0436\u0434\u044b\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0434\u043e\u043b\u0436\u0435\u043d \u0438\u043c\u0435\u0442\u044c \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u043e\u0447\u0442\u0443 \u0438 \u043f\u0430\u0440\u043e\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0442\u044c\u0441\u044f, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u0438 \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u044f\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u0439\u0442\u0438 \u0432 \u0441\u0432\u043e\u0439 \u0430\u043a\u043a\u0430\u0443\u043d\u0442. \u0422\u0430\u043a\u0436\u0435 \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u0440\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u043e\u043b\u044f: \u0438\u043c\u044f, \u043d\u043e\u043c\u0435\u0440 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430, \u0441\u0442\u0440\u0430\u043d\u0430 \u043f\u0440\u043e\u0436\u0438\u0432\u0430\u043d\u0438\u044f, \u0434\u0430\u0442\u0430 \u0441\u0442\u0430\u0440\u0442\u0430 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438 \u0438 \u0434\u0430\u0442\u0430 \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438. \u041f\u043e\u0441\u043b\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0445\u043e\u0434\u0430 \u0438\u043b\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u0443\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443, \u0433\u0434\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u0431\u043e\u0440\u043a\u0430 \u0442\u0440\u044d\u043a\u043e\u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u0435\u0439, \u0441\u0440\u0435\u0434\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u0432\u0448\u0438\u0435\u0441\u044f \u0435\u043c\u0443 \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0438\u0445 \u0432 \u0441\u0432\u043e\u0439 \u043f\u043b\u0435\u0439\u043b\u0438\u0441\u0442. \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0445 \u0442\u0440\u044d\u043a\u043e\u0432 \u043d\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e. \u041a\u0430\u0436\u0434\u044b\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0438\u043c\u0435\u0435\u0442 \u0441\u0432\u043e\u0439 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043b\u0438\u0447\u043d\u044b\u0439 \u043a\u0430\u0431\u0438\u043d\u0435\u0442, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u0443\u044e \u043c\u0443\u0437\u044b\u043a\u0443, \u0443\u0434\u0430\u043b\u044f\u0442\u044c \u0435\u0451, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u043e\u043f\u0446\u0438\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u043b\u0438\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0432\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0445 \u0438\u043c \u043f\u0440\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438. \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0432 \u043b\u044e\u0431\u043e\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043c\u043e\u0436\u0435\u0442 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0432\u043e\u0439 \u0430\u043a\u043a\u0430\u0443\u043d\u0442 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441\u043e \u0432\u0441\u0435\u043c \u0435\u0433\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u044b\u043c \u0438 \u0441\u0432\u043e\u0438\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0438\u0437 \u0441\u0438\u0441\u0442\u0435\u043c\u044b.<\/p>\n<h4><font color=\"#cc0000\">\u041f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438<\/font><\/h4>\n<p>  \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u0440\u0435\u0434\u043c\u0435\u0442\u043d\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438, \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u043b\u0438 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/hz\/pp\/8b\/hzpp8blw9fl3eiwdif4qmkep9s0.png\" alt=\"image\"\/><\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">Note<\/b>                         <\/p>\n<div class=\"spoiler_text\">\u0414\u043b\u044f \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043c\u043d\u043e\u0433\u0438\u0435-\u043a\u043e-\u043c\u043d\u043e\u0433\u0438\u043c \u043c\u0435\u0436\u0434\u0443 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u00abUSERS\u00bb \u0438 \u00abTRACK LIST\u00bb \u0431\u044b\u043b\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u00abSUBSCRIPTION VALIDITY\u00bb, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f \u0434\u0430\u0442\u0443 \u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438 \u0438 \u0435\u0451 \u043a\u043e\u043d\u0435\u0446.<\/p>\n<p>  \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u043d\u0430\u0448\u0435\u0439 \u043f\u0440\u0435\u0434\u043c\u0435\u0442\u043d\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438.<\/p><\/div>\n<\/p><\/div>\n<p>  <\/p>\n<h4><font color=\"#cc0000\">\u041f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438<\/font><\/h4>\n<p>  \u041b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0431\u044b\u043b\u0430 \u043f\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043d\u0430 \u0432 \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u0443\u044e \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c Oracle SQL Developer Data Modeler <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/y-\/lg\/xe\/y-lgxegosaqnwv4jzvimbwrcvly.png\" alt=\"image\"\/><\/p>\n<h4><font color=\"#cc0000\">\u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u0444\u043e\u0440\u043c\u0430\u043c<\/font><\/h4>\n<p>  \u0412\u0441\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0434\u0430\u043d\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 1\u041d\u0424, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432\u0441\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0438\u043c\u0435\u044e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438, \u0447\u0442\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u044c.<\/p>\n<p>  \u0412\u0441\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u0435, \u0442\u0430\u043a \u043a\u0430\u043a \u043a\u0430\u0436\u0434\u044b\u0439 \u043d\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0439 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 \u043d\u0435\u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430.<\/p>\n<p>  \u0412\u0441\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u0435, \u0442\u0430\u043a \u043a\u0430\u043a \u043a\u0430\u0436\u0434\u044b\u0439 \u043d\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0439 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 \u043d\u0435\u0442\u0440\u0430\u043d\u0437\u0438\u0442\u0438\u0432\u043d\u043e \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430. \u041d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043d\u0435\u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 \u043e\u0442 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u043d\u0435\u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430.<\/p>\n<p>  \u0412\u0441\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u041d\u0424\u0411\u041a, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0434\u0435\u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043d\u0442 \u0432\u0441\u0435\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043a\u043b\u044e\u0447\u0430\u043c\u0438. <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041f\u043e\u044f\u0441\u043d\u0435\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439<\/b>                         <\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/zb\/9l\/3o\/zb9l3osmxkezew0wmojxgheij5k.png\" alt=\"image\"\/><\/p><\/div>\n<\/p><\/div>\n<p>  <\/p>\n<h4><font color=\"#cc0000\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f<\/font><\/h4>\n<p>  \u0411\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435 phpMyAdmin. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043d\u0438\u0436\u0435:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/s5\/8j\/7n\/s58j7nt9bxc2i6rl5pw-xupemby.png\" alt=\"image\"\/><\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b<\/b>                         <\/p>\n<div class=\"spoiler_text\">\u0421\u0442\u0430\u0440\u0442\u043e\u0432\u043e\u0435 \u043e\u043a\u043d\u043e\/ \u041e\u043a\u043d\u043e \u0432\u0445\u043e\u0434\u0430<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/o_\/rk\/7y\/o_rk7yms9yt9kacup64ibuc4cz4.png\" alt=\"image\"\/><\/p>\n<p>  \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/_s\/ao\/yh\/_saoyhz0fmumf-jwo7bilkadehy.png\" alt=\"image\"\/><\/p>\n<p>  \u041e\u043a\u043d\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ez\/6u\/co\/ez6uco2fsxau5sref7mabbc37qw.png\" alt=\"image\"\/><\/p>\n<p>  \u041e\u043a\u043d\u043e \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/o5\/8x\/si\/o58xsir0xctlrwxepi9-_3yletg.png\" alt=\"image\"\/><\/p>\n<p>  \u041b\u0438\u0447\u043d\u044b\u0439 \u043a\u0430\u0431\u0438\u043d\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/zm\/qe\/qg\/zmqeqg9q0wvp8m3tyanvwuryebo.png\" alt=\"image\"\/>  <\/div>\n<\/p><\/div>\n<h4><font color=\"#cc0000\">\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b<\/font><\/h4>\n<p>  <\/p>\n<h4><i><font color=\"#cc0000\">\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0440\u0435\u0430\u043a\u0446\u0438\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0435 \u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u043a\u043d\u043e\u043f\u043e\u043a<\/font><\/i><\/h4>\n<p>  \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0440\u0435\u0430\u043a\u0446\u0438\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0435 \u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 + \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u0432\u0441\u0435\u0445 \u043f\u043e\u043b\u0435\u0439, \u043a\u043d\u043e\u043f\u043e\u043a \u0438 \u0432\u044b\u043f\u0430\u0434\u0430\u044e\u0449\u0438\u0445 \u0441\u043f\u0438\u0441\u043a\u043e\u0432.<\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/b>                         <\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/lb\/yi\/74\/lbyi74a5daanq7omx6wbyplniok.png\" alt=\"image\"\/><\/p>\n<p>  \u0414\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/lc\/vc\/ew\/lcvceww4--z2vy89h22_hc4hdjk.png\" alt=\"image\"\/>  <\/div>\n<\/p><\/div>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u043a\u043d\u043e\u043f\u043a\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043c\u0443\u0437\u044b\u043a\u0438 \u0432 \u043c\u0435\u0434\u0438\u0430\u0442\u0435\u043a\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/b>                         <\/p>\n<div class=\"spoiler_text\">\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u00abFALSE ALARM by THE WEEKND\u00bb \u0432 \u043f\u043b\u0435\u0439\u043b\u0438\u0441\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/mj\/nl\/gj\/mjnlgjfniptflahibbu3gfx5r8i.png\" alt=\"image\"\/><\/p>\n<p>  \u0414\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u00abFALSE ALARM by THE WEEKND\u00bb \u0432 \u043f\u043b\u0435\u0439\u043b\u0438\u0441\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/3w\/7z\/uh\/3w7zuh6yscj-7lhbh6swek5v2d4.png\" alt=\"image\"\/><\/p>\n<p>  \u041a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044f \u00abFALSE ALARM by THE WEEKND\u00bb \u0432 \u0411\u0414 \u00abTRACK LIST\u00bb \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u043e\u043c\u0435\u0440\u0443 32<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/zo\/tj\/hn\/zotjhnsi7fikkgy70jzcguabxza.png\" alt=\"image\"\/><\/p>\n<p>  \u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u00abMY MUSIC\u00bb, \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044f \u0441 \u043d\u043e\u043c\u0435\u0440\u043e\u043c 32 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0430\u0441\u044c \u0432 \u043f\u043b\u044d\u0439\u043b\u0438\u0441\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/wh\/od\/zc\/whodzcnbifryuy6w9llglz1azpc.png\" alt=\"image\"\/>  <\/div>\n<\/p><\/div>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u043a\u043d\u043e\u043f\u043a\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u043c\u0443\u0437\u044b\u043a\u0438 \u0438\u0437 \u043c\u0435\u0434\u0438\u0430\u0442\u0435\u043a\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/b>                         <\/p>\n<div class=\"spoiler_text\">\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u00abFALSE ALARM by THE WEEKND\u00bb \u0438\u0437 \u043f\u043b\u0435\u0439\u043b\u0438\u0441\u0442\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/bt\/xb\/bp\/btxbbp-5cdogego7fxt6xfemrpi.png\" alt=\"image\"\/><\/p>\n<p>  \u0414\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u00abFALSE ALARM by THE WEEKND\u00bb \u0432 \u043f\u043b\u0435\u0439\u043b\u0438\u0441\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/gl\/lk\/pf\/gllkpfpkcgy7daavil5yixrkukg.png\" alt=\"image\"\/><\/p>\n<p>  \u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u00abMY MUSIC\u00bb, \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044f \u0441 \u043d\u043e\u043c\u0435\u0440\u043e\u043c 32 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0434\u0430\u043b\u0438\u043b\u0430\u0441\u044c \u0438\u0437 \u043f\u043b\u044d\u0439\u043b\u0438\u0441\u0442\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/f7\/9o\/n9\/f79on974cy3mbrc7rsgxpi_ajg4.png\" alt=\"image\"\/><\/p>\n<p>  \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044f 32 \u043d\u0438\u043a\u0443\u0434\u0430 \u043d\u0435 \u043f\u0440\u043e\u043f\u0430\u043b\u0430 \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u00abTRACK LIST\u00bb<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ug\/ih\/bv\/ugihbvp_eaojunh9q9bss-ysinw.png\" alt=\"image\"\/>  <\/div>\n<\/p><\/div>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u043a\u043d\u043e\u043f\u043a\u0438 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u043c\u0443\u0437\u044b\u043a\u0438 \u043f\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044f\u043c<\/b>                         <\/p>\n<div class=\"spoiler_text\">\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u043c\u0443\u0437\u044b\u043a\u0438 \u043f\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044e \u00abMUSE\u00bb<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/yr\/-y\/e_\/yr-ye_wglnj1yyqcmpxhi6xhic0.png\" alt=\"image\"\/><\/p>\n<p>  \u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u043c\u0443\u0437\u044b\u043a\u0438 \u043f\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044e \u00abKASABIAN\u00bb<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/mc\/br\/x9\/mcbrx9bkozj7ps1iwxthodkf6z0.png\" alt=\"image\"\/>  <\/div>\n<\/p><\/div>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u043a\u043d\u043e\u043f\u043a\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438\u0437 \u0441\u0438\u0441\u0442\u0435\u043c\u044b<\/b>                         <\/p>\n<div class=\"spoiler_text\">\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u00abivanivanov@mail.ru\u00bb<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ql\/jh\/1h\/qljh1h183hoymk-icslxf7meb3q.png\" alt=\"image\"\/><\/p>\n<p>  \u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u0432\u043e \u0432\u043a\u043b\u0430\u0434\u043a\u0443 \u0441 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/xm\/7c\/y8\/xm7cy8bs7ppbs1lthalmzotyehk.png\" alt=\"image\"\/><\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0443\u0434\u0430\u043b\u0438\u043c \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043a\u043d\u043e\u043f\u043a\u0438 \u00abDelete user from system\u00bb<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/xr\/kd\/ty\/xrkdtyi1gfjhxukpnmx8i6chsws.png\" alt=\"image\"\/><\/p>\n<p>  \u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u00abUSERS\u00bb, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0441 \u043d\u043e\u043c\u0435\u0440\u043e\u043c 18 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0434\u0430\u043b\u0438\u043b\u0441\u044f \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430 \u0437\u0430\u0440\u0435\u0433\u0435\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439  <\/div>\n<\/p><\/div>\n<h4><i><font color=\"#cc0000\">\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0440\u0435\u0430\u043a\u0446\u0438\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u043e\u0448\u0438\u0431\u043e\u0447\u043d\u044b\u0435 \u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435<\/font><\/i><\/h4>\n<p>  \u041f\u0440\u0438 \u0432\u0432\u043e\u0434\u0435 \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u044f\u0435\u0442 \u043e\u0431 \u044d\u0442\u043e\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041e\u0448\u0438\u0431\u043a\u0430 \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u0432\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0438\u043c\u0435\u043d\u0438<\/b>                         <\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/qz\/gr\/xy\/qzgrxymhwc-lw7dkk7vn9qoqeg8.png\" alt=\"image\"\/>  <\/div>\n<\/p><\/div>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041e\u0448\u0438\u0431\u043a\u0430 \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u0432\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043f\u043e\u0447\u0442\u044b<\/b>                         <\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/2q\/wh\/z1\/2qwhz1vhkuf8hmuaoyjxpfzlf28.png\" alt=\"image\"\/>  <\/div>\n<\/p><\/div>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041e\u0448\u0438\u0431\u043a\u0430 \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u0432\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043d\u043e\u043c\u0435\u0440\u0430 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430<\/b>                         <\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/qr\/h2\/i9\/qrh2i9yi6hs5-iynxjnitfc2pes.png\" alt=\"image\"\/>  <\/div>\n<\/p><\/div>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041e\u0448\u0438\u0431\u043a\u0430 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0449\u0430\u044f \u043f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u043f\u0440\u043e\u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0443\u0447\u0435\u0442\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/b>                         <\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/qr\/h2\/i9\/qrh2i9yi6hs5-iynxjnitfc2pes.png\" alt=\"image\"\/>  <\/div>\n<\/p><\/div>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041e\u0448\u0438\u0431\u043a\u0430 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0449\u0430\u044f \u043f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0432\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0443\u0447\u0435\u0442\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0435\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/b>                         <\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/jg\/fd\/bz\/jgfdbzn9hdzbo03bwvk0aclo3v8.png\" alt=\"image\"\/>  <\/div>\n<\/p><\/div>\n<p>  \u041d\u0430 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0439 \u0432\u0432\u043e\u0434 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u041d\u0430 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0432\u0432\u043e\u0434\u0430 \u0438 \u043f\u0440\u0438 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u043c \u0432\u0432\u043e\u0434\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0432\u044b\u0434\u0430\u0435\u0442 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435<\/p>\n<h4><font color=\"#cc0000\">\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f<\/font><\/h4>\n<p>  <\/p>\n<h4><i><font color=\"#cc0000\">\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 1 \u2013 \u043a\u043e\u0434 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0442\u0430\u0431\u043b\u0438\u0446<\/font><\/i><\/h4>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041a\u043e\u0434 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0442\u0430\u0431\u043b\u0438\u0446 \u0432 Oracle Data Modeler<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"sql\">-- Generated by Oracle SQL Developer Data Modeler 19.4.0.350.1424 --   at:        2020-06-01 16:18:08 MSK --   site:      Oracle Database 11g --   type:      Oracle Database 11g  CREATE TABLE albums (     id            VARCHAR2(5) NOT NULL,     album_name    VARCHAR2(20) NOT NULL,     release_year  DATE NOT NULL,     genre         VARCHAR2(20) NOT NULL );  ALTER TABLE albums ADD CONSTRAINT albums_pk PRIMARY KEY ( id );  CREATE TABLE my_music (     user_id    VARCHAR2(5) NOT NULL,     my_msc_id  NUMBER NOT NULL );  CREATE UNIQUE INDEX my_music__idx ON     my_music (         user_id     ASC );  ALTER TABLE my_music ADD CONSTRAINT my_msc_pk PRIMARY KEY ( my_msc_id );  CREATE TABLE performers (     id              VARCHAR2(5) NOT NULL,     performer_name  VARCHAR2(30) NOT NULL );  ALTER TABLE performers ADD CONSTRAINT performers_pk PRIMARY KEY ( id );  CREATE TABLE subscription_validity (     &quot;Start_Date\/_Start_Time&quot;  DATE NOT NULL,     &quot;End_Date\/_End_Time&quot;      DATE NOT NULL,     user_id                   VARCHAR2(5) NOT NULL,     track_list_id             VARCHAR2(5) NOT NULL );  ALTER TABLE subscription_validity ADD CONSTRAINT subscription_validity_pk PRIMARY KEY ( user_id,                                                                                         track_list_id );  CREATE TABLE songs (     id                  VARCHAR2(5) NOT NULL,     track_name          VARCHAR2(50) NOT NULL,     genre               VARCHAR2(20) NOT NULL,     duration            TIMESTAMP NOT NULL,     albums_id           VARCHAR2(5) NOT NULL,     performers_id       VARCHAR2(5) NOT NULL,     my_music_my_msc_id  NUMBER NOT NULL );  ALTER TABLE track_list ADD CONSTRAINT track_list_pk PRIMARY KEY ( id );  CREATE TABLE &quot;USER&quot; (     id                  VARCHAR2(5) NOT NULL,     password            VARCHAR2(20) NOT NULL,     name                VARCHAR2(30) NOT NULL,     email               VARCHAR2(30) NOT NULL,     phone_number        VARCHAR2(12) NOT NULL,     country             VARCHAR2(20) NOT NULL,     balance             NUMBER(7, 2),     my_music_my_msc_id  NUMBER NOT NULL );  CREATE UNIQUE INDEX user__idx ON     &quot;USER&quot; (         my_music_my_msc_id     ASC );  ALTER TABLE &quot;USER&quot; ADD CONSTRAINT user_pk PRIMARY KEY ( id );  ALTER TABLE my_music     ADD CONSTRAINT my_music_user_fk FOREIGN KEY ( user_id )         REFERENCES &quot;USER&quot; ( id );  ALTER TABLE subscription_validity     ADD CONSTRAINT subs_val_track_list_fk FOREIGN KEY ( track_list_id )         REFERENCES track_list ( id );  ALTER TABLE subscription_validity     ADD CONSTRAINT subs_val_user_fk FOREIGN KEY ( user_id )         REFERENCES &quot;USER&quot; ( id );  ALTER TABLE track_list     ADD CONSTRAINT track_list_albums_fk FOREIGN KEY ( albums_id )         REFERENCES albums ( id );  ALTER TABLE track_list     ADD CONSTRAINT track_list_my_music_fk FOREIGN KEY ( my_music_my_msc_id )         REFERENCES my_music ( my_msc_id );  ALTER TABLE track_list     ADD CONSTRAINT track_list_performers_fk FOREIGN KEY ( performers_id )         REFERENCES performers ( id );  ALTER TABLE &quot;USER&quot;     ADD CONSTRAINT user_my_music_fk FOREIGN KEY ( my_music_my_msc_id )         REFERENCES my_music ( my_msc_id );  CREATE SEQUENCE my_msc_my_msc_id_seq START WITH 1 NOCACHE ORDER;  CREATE OR REPLACE TRIGGER my_msc_my_msc_id_trg BEFORE     INSERT ON my_music     FOR EACH ROW     WHEN ( new.my_msc_id IS NULL ) BEGIN     :new.my_msc_id := my_msc_my_msc_id_seq.nextval; END; \/  -- Oracle SQL Developer Data Modeler Summary Report:  --  -- CREATE TABLE                             6 -- CREATE INDEX                             2 -- ALTER TABLE                             13 -- CREATE VIEW                              0 -- ALTER VIEW                               0 -- CREATE PACKAGE                           0 -- CREATE PACKAGE BODY                      0 -- CREATE PROCEDURE                         0 -- CREATE FUNCTION                          0 -- CREATE TRIGGER                           1 -- ALTER TRIGGER                            0 -- CREATE COLLECTION TYPE                   0 -- CREATE STRUCTURED TYPE                   0 -- CREATE STRUCTURED TYPE BODY              0 -- CREATE CLUSTER                           0 -- CREATE CONTEXT                           0 -- CREATE DATABASE                          0 -- CREATE DIMENSION                         0 -- CREATE DIRECTORY                         0 -- CREATE DISK GROUP                        0 -- CREATE ROLE                              0 -- CREATE ROLLBACK SEGMENT                  0 -- CREATE SEQUENCE                          1 -- CREATE MATERIALIZED VIEW                 0 -- CREATE MATERIALIZED VIEW LOG             0 -- CREATE SYNONYM                           0 -- CREATE TABLESPACE                        0 -- CREATE USER                              0 --  -- DROP TABLESPACE                          0 -- DROP DATABASE                            0 --  -- REDACTION POLICY                         0 --  -- ORDS DROP SCHEMA                         0 -- ORDS ENABLE SCHEMA                       0 -- ORDS ENABLE OBJECT                       0 --  -- ERRORS                                   0 -- WARNINGS                                 0  <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<h4><i><font color=\"#cc0000\">\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 2 \u2013 \u043a\u043e\u0434 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b<\/font><\/i><\/h4>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041a\u043b\u0430\u0441\u0441 DataBase<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">package sample.database;  import javafx.event.ActionEvent; import sample.model.Performers; import sample.model.TrackList; import sample.model.User;  import java.sql.*; import java.util.ArrayList;  public class DataBase {      public static void main(String[] args) {         DataBase dataBase = new DataBase();         for (TrackList t:dataBase.allMusic()              ) {             System.out.println(t.toString());         }     }     \/\/     public boolean loginIn(String email, String password) {         try {             Connection conn = DriverManager.getConnection(&quot;jdbc:mysql:\/\/localhost:3306\/my_tunes&quot;, &quot;root&quot;, &quot;root&quot;);             Statement stmt = conn.createStatement();             \/\/ \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u043f\u0430\u0440\u043e\u043b\u044f \u0438 \u043b\u043e\u0433\u0438\u043d\u0430 (\u044d\u043c\u044d\u0438\u043b \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043b\u043e\u0433\u0438\u043d\u0430)             ResultSet rset = stmt.executeQuery(&quot;SELECT * FROM users u INNER JOIN subscription_validity s ON u.id_users=s.id_users where email = '&quot; + email + &quot;'&& password ='&quot; + password + &quot;'&quot;);             if (rset.next()) {                 User.setId(rset.getInt(1));                 User.setName(rset.getString(3));                 User.setEmail(rset.getString(4));                 User.setPhone(rset.getString(5));                 User.setCountry(rset.getString(6));                 User.setStartDate(rset.getString(8));                 User.setEndDate(rset.getString(9));                 return true;             }         } catch (SQLException e) {             e.printStackTrace();         }         return false;     }       public boolean emailCheck(String email) {         try {         \t\/\/ \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a db             Connection conn = DriverManager.getConnection(&quot;jdbc:mysql:\/\/localhost:3306\/my_tunes&quot;, &quot;root&quot;, &quot;root&quot;);             \/\/ \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 Statement             Statement stmt = conn.createStatement();             \/\/ \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043b\u0438 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0439 \u044d\u043c\u044d\u0438\u043b \u0432 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445             ResultSet rset = stmt.executeQuery(&quot;select * from users where email = '&quot; + email + &quot;'&quot;);             return !rset.next();         } catch (SQLException e) {             e.printStackTrace();         }         return true;     }      public void registration(String name, String email, String phone, String password, String country, String startDate, String endDate) {         try {         \t\/\/ \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a db             Connection conn = DriverManager.getConnection(&quot;jdbc:mysql:\/\/localhost:3306\/my_tunes&quot;, &quot;root&quot;, &quot;root&quot;);             \/\/ \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 Statement             Statement stmt = conn.createStatement();             \/\/ \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0432\u0441\u0430\u0432\u043a\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 users \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f             stmt.executeUpdate(&quot;insert into users (email,password,name,phone_num,contry) value ('&quot; + email + &quot;','&quot; + password + &quot;','&quot; + name + &quot;','&quot; + phone + &quot;','&quot; + country + &quot;')&quot;);             \/\/ \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0432\u0441\u0430\u0432\u043a\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 subscription_validity             stmt.executeUpdate(&quot;insert into subscription_validity (Start_Date_Start_Time, End_Date_End_Time,id_users) value ('&quot; + startDate + &quot;','&quot; + endDate + &quot;', (select max(id_users) from users) )&quot;);             stmt.close();             conn.close();         } catch (SQLException e) {             e.printStackTrace();         }     }      \/\/ \u0437\u0430\u043f\u0440\u043e\u0441 \u0434\u043b\u044f \u043c\u0443\u0437\u044b\u043a\u0438     public ArrayList&lt;TrackList&gt; allMusic() {         ArrayList&lt;TrackList&gt; arrayList = new ArrayList&lt;&gt;();         try {             Connection conn = DriverManager.getConnection(&quot;jdbc:mysql:\/\/localhost:3306\/my_tunes&quot;, &quot;root&quot;, &quot;root&quot;);              Statement stmt = conn.createStatement();             \/\/ \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0432\u044b\u0432\u043e\u0434 \u0432\u0441\u0435\u0445 \u0442\u0440\u044d\u043a\u043e\u0432 \u0441 \u0438\u0445 \u0430\u0432\u0442\u043e\u0440\u043e\u043c \u0438 \u0438\u0445 \u0430\u043b\u044c\u0431\u043e\u043c\u043e\u043c             ResultSet rset = stmt.executeQuery(&quot;SELECT * FROM track_list t INNER JOIN performers p  ON p.id_performers=t.id_performers INNER JOIN albums a ON a.id_albums=t.id_albums&quot;);             while (rset.next()) {                 arrayList.add(new TrackList(rset.getInt(1), rset.getString(2), rset.getString(10), rset.getString(8), rset.getString(3), rset.getString(4)));             }             rset.close();             stmt.close();             conn.close();         } catch (SQLException throwables) {             throwables.printStackTrace();         }         return arrayList;     }      \/\/ \u0437\u0430\u043f\u0440\u043e\u0441 \u0434\u043b\u044f \u043c\u0443\u0437\u044b\u043a\u0438     public ArrayList&lt;TrackList&gt; myMusic(int id) {         ArrayList&lt;TrackList&gt; arrayList = new ArrayList&lt;&gt;();         try {             Connection conn = DriverManager.getConnection(&quot;jdbc:mysql:\/\/localhost:3306\/my_tunes&quot;, &quot;root&quot;, &quot;root&quot;);              Statement stmt = conn.createStatement();             \/\/ \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0432\u044b\u0432\u043e\u0434 \u0432\u0441\u0435\u0445 \u0442\u0440\u044d\u043a\u043e\u0432 \u0441 \u0438\u0445 \u0430\u0432\u0442\u043e\u0440\u043e\u043c \u0438 \u0438\u0445 \u0430\u043b\u044c\u0431\u043e\u043c\u043e\u043c             ResultSet rset = stmt.executeQuery(&quot;SELECT m.id_track_list, t.track_name, &quot; +                     &quot;a.album_name, p.performer_name, t.genre, t.duration FROM my_music m INNER JOIN &quot; +                     &quot;track_list t ON t.id_track_list=m.id_track_list INNER JOIN performers p ON &quot; +                     &quot;p.id_performers=t.id_performers INNER JOIN albums a ON a.id_albums=t.id_albums WHERE m.id_users=&quot; + id);             while (rset.next()) {                 arrayList.add(new TrackList(rset.getInt(1), rset.getString(2), rset.getString(3), rset.getString(4), rset.getString(5), rset.getString(6)));             }             rset.close();             stmt.close();             conn.close();         } catch (SQLException throwables) {             throwables.printStackTrace();         }         return arrayList;     }      public void addMyMusic(int idUser, int idTrackList) {         try {             Connection conn = DriverManager.getConnection(&quot;jdbc:mysql:\/\/localhost:3306\/my_tunes&quot;, &quot;root&quot;, &quot;root&quot;);             Statement stmt = conn.createStatement();             ResultSet rset = stmt.executeQuery(&quot;SELECT * FROM my_music WHERE &quot; +                     &quot;id_users = &quot; + idUser + &quot; && id_track_list = &quot; + idTrackList);             \/\/ \u0441\u044e\u0434\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c id user, \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043c\u0443\u0437\u044b\u043a\u0443             \/\/ \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u043b\u0438 \u043c\u044b \u0443\u0436\u0435 \u0442\u0430\u043a\u043e\u0435 \u0438\u043b\u0438 \u043d\u0435\u0442             if (!rset.next())                 stmt.executeUpdate(&quot;INSERT INTO my_music (id_users, id_track_list) VALUE (&quot;+ idUser +&quot;, &quot;+  idTrackList +&quot;)&quot;);             rset.close();             stmt.close();             conn.close();             \/\/ \u043f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c \u043a\u0430\u043a \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0442\u0440\u044d\u043a \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0435\u0441\u0442\u044c \u043b\u0438 \u0442\u0430\u043a\u043e         } catch (SQLException e){             e.printStackTrace();         }     }      public void deleteMyMusic(int idUser, int idTrackList) {         try {             Connection conn = DriverManager.getConnection(&quot;jdbc:mysql:\/\/localhost:3306\/my_tunes&quot;, &quot;root&quot;, &quot;root&quot;);             Statement stmt = conn.createStatement();             stmt.executeUpdate(&quot;DELETE FROM my_music WHERE id_users =&quot; + idUser + &quot;&& id_track_list =&quot; + idTrackList);             stmt.close();             conn.close();         } catch (SQLException e){             e.printStackTrace();         }     }     \/\/ \u0417\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0443 \u043f\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044f\u043c     public ArrayList&lt;Performers&gt; performers(){         ArrayList&lt;Performers&gt; arrayList = new ArrayList();         try {             Connection conn = DriverManager.getConnection(&quot;jdbc:mysql:\/\/localhost:3306\/my_tunes&quot;, &quot;root&quot;, &quot;root&quot;);             Statement stmt = conn.createStatement();             ResultSet rset = stmt.executeQuery(&quot;SELECT * FROM performers&quot;);             while(rset.next()){                 arrayList.add(new Performers(rset.getInt(1),rset.getString(2)));             }             rset.close();             stmt.close();             conn.close();         } catch (SQLException e){             e.printStackTrace();         }         return arrayList;     }     \/\/ \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0432\u044b\u0432\u043e\u0434 \u043c\u0443\u0437\u044b\u043a\u0438 \u0441 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u0435\u043c     public ArrayList&lt;TrackList&gt; performerMusic(int id) {         ArrayList&lt;TrackList&gt; arrayList = new ArrayList&lt;&gt;();         try {             Connection conn = DriverManager.getConnection(&quot;jdbc:mysql:\/\/localhost:3306\/my_tunes&quot;, &quot;root&quot;, &quot;root&quot;);              Statement stmt = conn.createStatement();             \/\/ \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0432\u044b\u0432\u043e\u0434 \u0432\u0441\u0435\u0445 \u0442\u0440\u044d\u043a\u043e\u0432 \u0441 \u0438\u0445 \u0430\u0432\u0442\u043e\u0440\u043e\u043c \u0438 \u0438\u0445 \u0430\u043b\u044c\u0431\u043e\u043c\u043e\u043c             ResultSet rset = stmt.executeQuery(&quot;SELECT * FROM track_list t INNER JOIN performers p  ON p.id_performers=t.id_performers INNER JOIN albums a ON a.id_albums=t.id_albums WHERE p.id_performers = &quot; + id);             while (rset.next()) {                 arrayList.add(new TrackList(rset.getInt(1), rset.getString(2), rset.getString(10), rset.getString(8), rset.getString(3), rset.getString(4)));             }             rset.close();             stmt.close();             conn.close();         } catch (SQLException throwables) {             throwables.printStackTrace();         }         return arrayList;     }     \/\/ \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f     public void deleteUser(int idUser) {         try {             Connection conn = DriverManager.getConnection(&quot;jdbc:mysql:\/\/localhost:3306\/my_tunes&quot;, &quot;root&quot;, &quot;root&quot;);             Statement stmt = conn.createStatement();             stmt.executeUpdate(&quot;DELETE FROM users WHERE id_users =&quot; + idUser);             stmt.close();             conn.close();         } catch (SQLException e){             e.printStackTrace();         }     } } <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041a\u043b\u0430\u0441\u0441 Main<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\"> package sample;  import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.stage.Modality; import javafx.stage.Stage;  public class Main extends Application {      @Override     public void start(Stage primaryStage) throws Exception{         Parent root = FXMLLoader.load(getClass().getResource(&quot;\/sample\/fxml\/login.fxml&quot;));         Stage newStage = new Stage();         newStage.setScene(new Scene(root));         newStage.initModality(Modality.NONE);         newStage.show();     }      public static void main(String[] args) {         launch(args);     } } <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041a\u043b\u0430\u0441\u0441 Music<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\"> package sample;  import javafx.application.Application; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.fxml.Initializable; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.ComboBox; import javafx.scene.control.ListView; import javafx.stage.Modality; import javafx.stage.Stage; import sample.database.DataBase; import sample.model.Performers; import sample.model.TrackList; import sample.model.User;  import java.io.IOException; import java.net.URL; import java.util.ArrayList; import java.util.ResourceBundle;  public class Music implements Initializable {     @FXML     public ListView&lt;TrackList&gt; allMusic;     @FXML     public ComboBox comboBox;     @FXML     public Button myMusic;      DataBase dataBase = new DataBase();     ArrayList&lt;TrackList&gt; arrayList;      TrackList trackList = null;      public void addMyMusic(ActionEvent actionEvent) {     \t\/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043c\u0443\u0437\u044b\u043a\u0438 \u0432 &quot;\u043c\u043e\u0439 \u043f\u043b\u0435\u0439\u043b\u0438\u0441\u0442&quot;         if(trackList != null)             dataBase.addMyMusic(User.getId(),trackList.getId());     }      @Override     public void initialize(URL location, ResourceBundle resources) {         arrayList = dataBase.allMusic();         ObservableList&lt;TrackList&gt; observableList = FXCollections.observableList(arrayList);          allMusic.setItems(observableList);         allMusic.getSelectionModel().selectedItemProperty().addListener(new ChangeListener&lt;TrackList&gt;(){              @Override             public void changed(ObservableValue&lt;? extends TrackList&gt; observable, TrackList oldValue, TrackList newValue) {                 trackList = newValue;             }         });          for (Performers p:dataBase.performers()         ) {             comboBox.getItems().add(p);         }          comboBox.getItems().add(new Performers(0,&quot;All&quot;));         comboBox.setValue(new Performers(0,&quot;All&quot;));         comboBox.valueProperty().addListener(new ChangeListener&lt;Performers&gt;() {              @Override             public void changed(ObservableValue&lt;? extends Performers&gt; observable, Performers oldValue, Performers newValue) {                 if(newValue.getId() == 0) {                     arrayList = dataBase.allMusic();                     ObservableList&lt;TrackList&gt; observableList = FXCollections.observableList(arrayList);                     allMusic.setItems(observableList);                 } else{                     arrayList = dataBase.performerMusic(newValue.getId());                     ObservableList&lt;TrackList&gt; observableList = FXCollections.observableList(arrayList);                     allMusic.setItems(observableList);                 }             }         });     }      public void myMusic(ActionEvent actionEvent) {         Stage stage = (Stage) myMusic.getScene().getWindow();         stage.close();         try {             Parent root = FXMLLoader.load(getClass().getResource(&quot;\/sample\/fxml\/mymusic.fxml&quot;));             Stage newStage = new Stage();             newStage.setScene(new Scene(root));             newStage.initModality(Modality.NONE);             newStage.show();         } catch (IOException e) {             e.printStackTrace();         }     } } <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041a\u043b\u0430\u0441\u0441 MyMusic<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\"> package sample;  import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.fxml.Initializable; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.ListView; import javafx.stage.Modality; import javafx.stage.Stage; import sample.database.DataBase; import sample.model.TrackList; import sample.model.User;  import javax.jws.soap.SOAPBinding; import java.io.IOException; import java.net.URL; import java.util.ArrayList; import java.util.ResourceBundle;  public class MyMusic implements Initializable {     @FXML     public ListView allMusic;     @FXML     public Button back;     @FXML     public Button userData;     DataBase dataBase = new DataBase();     ArrayList&lt;TrackList&gt; arrayList;     TrackList trackList = null;      public void deleteMyMusic(ActionEvent actionEvent) {         if(trackList != null)             dataBase.deleteMyMusic(User.getId(),trackList.getId());          arrayList = dataBase.myMusic(User.getId());         ObservableList&lt;TrackList&gt; observableList = FXCollections.observableList(arrayList);          allMusic.setItems(observableList);     }      @Override     public void initialize(URL location, ResourceBundle resources) {         arrayList = dataBase.myMusic(User.getId());         ObservableList&lt;TrackList&gt; observableList = FXCollections.observableList(arrayList);          allMusic.setItems(observableList);         allMusic.getSelectionModel().selectedItemProperty().addListener(new ChangeListener&lt;TrackList&gt;(){              @Override             public void changed(ObservableValue&lt;? extends TrackList&gt; observable, TrackList oldValue, TrackList newValue) {                 trackList = newValue;             }         });     }      public void userData(ActionEvent actionEvent) {         Stage stage = (Stage) userData.getScene().getWindow();         stage.close();         try {             Parent root = FXMLLoader.load(getClass().getResource(&quot;\/sample\/fxml\/userdata.fxml&quot;));             Stage newStage = new Stage();             newStage.setScene(new Scene(root));             newStage.initModality(Modality.NONE);             newStage.show();         } catch (IOException e) {             e.printStackTrace();         }     }      public void back(ActionEvent actionEvent) {         Stage stage = (Stage) back.getScene().getWindow();         stage.close();         try {             Parent root = FXMLLoader.load(getClass().getResource(&quot;\/sample\/fxml\/music.fxml&quot;));             Stage newStage = new Stage();             newStage.setScene(new Scene(root));             newStage.initModality(Modality.NONE);             newStage.show();         } catch (IOException e) {             e.printStackTrace();         }     } } <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041a\u043b\u0430\u0441\u0441 Registration<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\"> package sample;  import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.control.PasswordField; import javafx.scene.control.TextField; import javafx.stage.Stage; import sample.database.DataBase;   public class Registration {     @FXML     public Label error;     @FXML     public Button reg;     @FXML     public TextField phone;     @FXML     public PasswordField password;     @FXML     public PasswordField repeatPassword;     @FXML     public TextField name;     @FXML     public TextField email;     @FXML     public TextField endDate;     @FXML     public TextField startDate;     @FXML     public TextField country;      public void registration(ActionEvent actionEvent) {         DataBase dataBase = new DataBase();         \/\/ String name,String email,String phone, String password, String country, String startDate, String endDate         if(name.getText().matches(&quot;[a-zA-Z\u0420\u0452-\u0420\u0407\u0420\u00b0-\u0421\u040f]{3,}&quot;)){                 if(email.getText().matches(&quot;[A-Za-z0-9]{3,}[@][A-Za-z0-9]{3,}[.][A-Za-z0-9]{2,}&quot;)){                     if(phone.getText().matches(&quot;[+][7][0-9]{10}&quot;) || phone.getText().matches(&quot;[8][0-9]{10}&quot;)){                         if(dataBase.emailCheck(email.getText())){                             if(password.getText().equals(repeatPassword.getText())){                                 dataBase.registration(name.getText(),email.getText(),                                         phone.getText(),password.getText(),country.getText(), startDate.getText(), endDate.getText());                                 Stage stage = (Stage)reg.getScene().getWindow();                                 stage.close();                             }else{                                 error.setText(&quot;\u041f\u0430\u0440\u043e\u043b\u0438 \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442&quot;);                             }                         }else{                             error.setText(&quot;\u0414\u0430\u043d\u043d\u044b\u0439 \u043b\u043e\u0433\u0438\u043d \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442&quot;);                         }                     }else{                         error.setText(&quot;\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 +7********** \u0438\u043b\u0438 8**********&quot;);                     }                 }else{                     error.setText(&quot;\u0412\u0432\u0435\u0434\u0438\u0442\u0435 emeail \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 ***@***.**&quot;);                 }         }else{             error.setText(&quot;\u041a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u0438\u043c\u044f&quot;);         }     } } <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041a\u043b\u0430\u0441\u0441 Userdata<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\"> package sample;  import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.fxml.Initializable; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.stage.Modality; import javafx.stage.Stage; import sample.database.DataBase; import sample.model.User;  import java.io.IOException; import java.net.URL; import java.util.ResourceBundle;  public class Userdata implements Initializable {     @FXML     public Label name;     @FXML     public Label email;     @FXML     public Label phone;     @FXML     public Label contry;     @FXML     public Label startDate;     @FXML     public Label endDate;     @FXML     public Button back;     @FXML     public Button delete;      @Override     public void initialize(URL location, ResourceBundle resources) {         name.setText(User.getName());         email.setText(User.getEmail());         phone.setText(User.getPhone());         contry.setText(User.getCountry());         startDate.setText(User.getStartDate());         endDate.setText(User.getEndDate());     }      public void back(ActionEvent actionEvent) {         Stage stage = (Stage) back.getScene().getWindow();         stage.close();         try {             Parent root = FXMLLoader.load(getClass().getResource(&quot;\/sample\/fxml\/mymusic.fxml&quot;));             Stage newStage = new Stage();             newStage.setScene(new Scene(root));             newStage.initModality(Modality.NONE);             newStage.show();         } catch (IOException e) {             e.printStackTrace();         }     }      public void delete(ActionEvent actionEvent) {         DataBase dataBase = new DataBase();         dataBase.deleteUser(User.getId());          Stage stage = (Stage) delete.getScene().getWindow();         stage.close();         try {             Parent root = FXMLLoader.load(getClass().getResource(&quot;\/sample\/fxml\/login.fxml&quot;));             Stage newStage = new Stage();             newStage.setScene(new Scene(root));             newStage.initModality(Modality.NONE);             newStage.show();         } catch (IOException e) {             e.printStackTrace();         }     } } <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041a\u043b\u0430\u0441\u0441 Performers<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\"> package sample.model;  public class Performers {     private int id;     private String name;      public Performers(int id, String name) {         this.id = id;         this.name = name;     }      @Override     public String toString() {         return name;     }      public int getId() {         return id;     }      public void setId(int id) {         this.id = id;     }      public String getName() {         return name;     }      public void setName(String name) {         this.name = name;     } } <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041a\u043b\u0430\u0441\u0441 TrackList<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\"> package sample.model;  public class TrackList {     private int id;     private String trackName;     private String albumName;     private String performerName;     private String genre;     private String duration;      public TrackList(int id, String trackName, String albumName, String performerName, String genre, String duration) {         this.id = id;         this.trackName = trackName;         this.albumName = albumName;         this.performerName = performerName;         this.genre = genre;         this.duration = duration;     }      public int getId() {         return id;     }      public void setId(int id) {         this.id = id;     }      public String getTrackName() {         return trackName;     }      public void setTrackName(String trackName) {         this.trackName = trackName;     }      public String getAlbumName() {         return albumName;     }      public void setAlbumName(String albumName) {         this.albumName = albumName;     }      public String getPerformerName() {         return performerName;     }      public void setPerformerName(String performerName) {         this.performerName = performerName;     }      public String getGenre() {         return genre;     }      public void setGenre(String genre) {         this.genre = genre;     }      public String getDuration() {         return duration;     }      public void setDuration(String duration) {         this.duration = duration;     }      @Override     public String toString() {         return                 trackName +                 &quot; by &quot; + performerName  +                 &quot; from album - &quot; + albumName +                 &quot; (&quot; + genre + &quot;) &quot; +                 &quot;, &quot; + duration;     }   } <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041a\u043b\u0430\u0441\u0441 User<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\"> package sample.model;  public class User {     private static int id;     private static String name;     private static  String email;     private static String phone;     private static String country;      private static String startDate;     private static String endDate;      public static int getId() {         return id;     }      public static void setId(int id) {         User.id = id;     }      public static String getName() {         return name;     }      public static void setName(String name) {         User.name = name;     }      public static String getEmail() {         return email;     }      public static void setEmail(String email) {         User.email = email;     }      public static String getPhone() {         return phone;     }      public static void setPhone(String phone) {         User.phone = phone;     }      public static String getCountry() {         return country;     }      public static void setCountry(String country) {         User.country = country;     }      public static String getStartDate() {         return startDate;     }      public static void setStartDate(String startDate) {         User.startDate = startDate;     }      public static String getEndDate() {         return endDate;     }      public static void setEndDate(String endDate) {         User.endDate = endDate;     } } <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041a\u043b\u0430\u0441\u0441 Login<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\"> package sample;  import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.control.PasswordField; import javafx.scene.control.TextField; import javafx.stage.Modality; import javafx.stage.Stage; import sample.database.DataBase;  import java.io.IOException;  public class Login {     @FXML     public Button loginIn;     @FXML     public Button registration;     @FXML     public TextField email;     @FXML     public PasswordField password;     @FXML     public Label error;      public void loginIn(ActionEvent actionEvent) {         DataBase dataBase = new DataBase();         if(email.getText() != null ){             if(password.getText() != null){                 if(dataBase.loginIn(email.getText(), password.getText())){                     Stage stage = (Stage) loginIn.getScene().getWindow();                     stage.close();                     try {                         Parent root = FXMLLoader.load(getClass().getResource(&quot;\/sample\/fxml\/music.fxml&quot;));                         Stage newStage = new Stage();                         newStage.setScene(new Scene(root));                         newStage.initModality(Modality.NONE);                         newStage.show();                     } catch (IOException e) {                         e.printStackTrace();                     }                 } else {                     error.setText(&quot;This Login or Password does not exist&quot;);                 }             } else {                 error.setText(&quot;Please, enter your Password: &quot;);             }         } else {             error.setText(&quot;Please, enter your Login: &quot;);         }     }      public void registration(ActionEvent actionEvent) {         try {             Parent root = FXMLLoader.load(getClass().getResource(&quot;\/sample\/fxml\/registration.fxml&quot;));             Stage newStage = new Stage();             newStage.setScene(new Scene(root));             newStage.initModality(Modality.NONE);             newStage.show();         } catch (IOException e) {             e.printStackTrace();         }     } } <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/517188\/\"> https:\/\/habr.com\/ru\/post\/517188\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/517188\/\">\n<h4><font color=\"#cc0000\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u0440\u0435\u0434\u043c\u0435\u0442\u043d\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438<\/font><\/h4>\n<p>  \u041f\u0440\u0435\u0434\u043c\u0435\u0442\u043d\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u044c\u044e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u0435\u0434\u0438\u0430\u043f\u043b\u0435\u0435\u0440, \u0430\u043d\u0430\u043b\u043e\u0433 iTunes. \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u043c\u0438 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0438 \u0441\u0431\u043e\u0440\u043d\u0438\u043a \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0439.<\/p>\n<p>  \u041a\u0430\u0436\u0434\u0430\u044f \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044e \u0438 \u043e\u0434\u043d\u043e\u043c\u0443 \u0430\u043b\u044c\u0431\u043e\u043c\u0443, \u043d\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0438\u0445 \u043c\u043e\u0436\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. \u041a\u0430\u0436\u0434\u044b\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043c\u043e\u0436\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0439.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-309261","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/309261","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=309261"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/309261\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=309261"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=309261"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=309261"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}