{"group":{"id":1,"name":"Community","lockable":false,"created_at":"2012-01-18T18:02:15.000Z","updated_at":"2025-12-14T01:33:56.000Z","description":"Problems submitted by members of the MATLAB Central community.","is_default":true,"created_by":161519,"badge_id":null,"featured":false,"trending":false,"solution_count_in_trending_period":0,"trending_last_calculated":"2025-12-14T00:00:00.000Z","image_id":null,"published":true,"community_created":false,"status_id":2,"is_default_group_for_player":false,"deleted_by":null,"deleted_at":null,"restored_by":null,"restored_at":null,"description_opc":null,"description_html":null,"published_at":null},"problems":[{"id":1462,"title":"Dots in a Sphere","description":"Return how many integer grid points there are inside a 3D sphere of radius _r_ centred at (0,0,0) (including points on the edge).\r\n\r\nNeither *string operations* nor *interpolations* are allowed!","description_html":"\u003cp\u003eReturn how many integer grid points there are inside a 3D sphere of radius \u003ci\u003er\u003c/i\u003e centred at (0,0,0) (including points on the edge).\u003c/p\u003e\u003cp\u003eNeither \u003cb\u003estring operations\u003c/b\u003e nor \u003cb\u003einterpolations\u003c/b\u003e are allowed!\u003c/p\u003e","function_template":"function n = dots_in_sphere(r)\r\n   n = r;\r\nend","test_suite":"%%\r\nuser_solution = fileread('dots_in_sphere.m');\r\nassert(isempty(strfind(user_solution,'regexp')));\r\nassert(isempty(strfind(user_solution,'2str')));\r\nassert(isempty(strfind(user_solution,'str2')));\r\nassert(isempty(strfind(user_solution,'interp')));\r\nassert(isempty(strfind(user_solution,'printf')));\r\nassert(isempty(strfind(user_solution,'assert')));\r\n\r\n%%\r\nr = 0;\r\nn_correct = 1;\r\nassert(isequal(dots_in_sphere(r),n_correct));\r\n\r\n%%\r\nr = 0.5;\r\nn_correct = 1;\r\nassert(isequal(dots_in_sphere(r),n_correct));\r\n\r\n%%\r\nr = 1;\r\nn_correct = 7;\r\nassert(isequal(dots_in_sphere(r),n_correct));\r\n\r\n%%\r\nr = 1.5;\r\nn_correct = 19;\r\nassert(isequal(dots_in_sphere(r),n_correct));\r\n\r\n%%\r\nr = 2;\r\nn_correct = 33;\r\nassert(isequal(dots_in_sphere(r),n_correct));\r\n\r\n%%\r\nr = 2.5;\r\nn_correct = 81;\r\nassert(isequal(dots_in_sphere(r),n_correct));\r\n\r\n%%\r\nr = 3;\r\nn_correct = 123;\r\nassert(isequal(dots_in_sphere(r),n_correct));\r\n\r\n%%\r\nr = 5;\r\nn_correct = 515;\r\nassert(isequal(dots_in_sphere(r),n_correct));\r\n\r\n%%\r\nr = 7.5;\r\nn_correct = 1791;\r\nassert(isequal(dots_in_sphere(r),n_correct));\r\n\r\n%%\r\nr = 10;\r\nn_correct = 4169;\r\nassert(isequal(dots_in_sphere(r),n_correct));\r\n\r\n%%\r\nr = 15;\r\nn_correct = 14147;\r\nassert(isequal(dots_in_sphere(r),n_correct));\r\n\r\n%%\r\nr = 20;\r\nn_correct = 33401;\r\nassert(isequal(dots_in_sphere(r),n_correct));\r\n\r\n%%\r\nr = 25;\r\nn_correct = 65267;\r\nassert(isequal(dots_in_sphere(r),n_correct));\r\n\r\n%%\r\nr = 50;\r\nn_correct = 523305;\r\nassert(isequal(dots_in_sphere(r),n_correct));\r\n\r\n%%\r\nr = 100;\r\nn_correct = 4187857;\r\nassert(isequal(dots_in_sphere(r),n_correct));\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":10352,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":65,"test_suite_updated_at":"2013-04-28T07:09:00.000Z","rescore_all_solutions":false,"group_id":20,"created_at":"2013-04-26T06:32:56.000Z","updated_at":"2026-02-16T10:50:59.000Z","published_at":"2013-04-26T06:41:52.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eReturn how many integer grid points there are inside a 3D sphere of radius\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003er\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e centred at (0,0,0) (including points on the edge).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNeither\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003estring operations\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e nor\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003einterpolations\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e are allowed!\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":1444,"title":"Dots in a Circle","description":"Return how many integer grid points there are inside a circle of radius _r_ centred at (0,0) (including points on the edge).\r\n\r\nNeither *string operations* nor *interpolations* are allowed!\r\n","description_html":"\u003cp\u003eReturn how many integer grid points there are inside a circle of radius \u003ci\u003er\u003c/i\u003e centred at (0,0) (including points on the edge).\u003c/p\u003e\u003cp\u003eNeither \u003cb\u003estring operations\u003c/b\u003e nor \u003cb\u003einterpolations\u003c/b\u003e are allowed!\u003c/p\u003e","function_template":"function n = dots_in_circle(r)\r\n  n = r;\r\nend","test_suite":"%%\r\nuser_solution = fileread('dots_in_circle.m');\r\nassert(isempty(strfind(user_solution,'regexp')));\r\nassert(isempty(strfind(user_solution,'2str')));\r\nassert(isempty(strfind(user_solution,'str2')));\r\nassert(isempty(strfind(user_solution,'interp')));\r\nassert(isempty(strfind(user_solution,'printf')));\r\nassert(isempty(strfind(user_solution,'assert')));\r\n\r\n%%\r\nr = 0;\r\nn_correct = 1;\r\nassert(isequal(dots_in_circle(r),n_correct))\r\n\r\n%%\r\nr = 1;\r\nn_correct = 5;\r\nassert(isequal(dots_in_circle(r),n_correct))\r\n\r\n%%\r\nr = 2;\r\nn_correct = 13;\r\nassert(isequal(dots_in_circle(r),n_correct))\r\n\r\n%%\r\nr = 3;\r\nn_correct = 29;\r\nassert(isequal(dots_in_circle(r),n_correct))\r\n\r\n%%\r\nr = 4;\r\nn_correct = 49;\r\nassert(isequal(dots_in_circle(r),n_correct))\r\n\r\n%%\r\nr = 5;\r\nn_correct = 81;\r\nassert(isequal(dots_in_circle(r),n_correct))\r\n\r\n%%\r\nr = 7.5;\r\nn_correct = 177;\r\nassert(isequal(dots_in_circle(r),n_correct))\r\n\r\n%%\r\nr = 10;\r\nn_correct = 317;\r\nassert(isequal(dots_in_circle(r),n_correct))\r\n\r\n%%\r\nr = 20;\r\nn_correct = 1257;\r\nassert(isequal(dots_in_circle(r),n_correct))\r\n\r\n%%\r\nr = 30;\r\nn_correct = 2821;\r\nassert(isequal(dots_in_circle(r),n_correct))\r\n\r\n%%\r\nr = 40;\r\nn_correct = 5025;\r\nassert(isequal(dots_in_circle(r),n_correct))\r\n\r\n%%\r\nr = 50;\r\nn_correct = 7845;\r\nassert(isequal(dots_in_circle(r),n_correct))\r\n\r\n%%\r\nr = 75;\r\nn_correct = 17665;\r\nassert(isequal(dots_in_circle(r),n_correct))\r\n\r\n%%\r\nr = 100;\r\nn_correct = 31417;\r\nassert(isequal(dots_in_circle(r),n_correct))\r\n","published":true,"deleted":false,"likes_count":5,"comments_count":5,"created_by":10352,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":100,"test_suite_updated_at":"2013-04-28T07:07:28.000Z","rescore_all_solutions":false,"group_id":20,"created_at":"2013-04-22T12:50:26.000Z","updated_at":"2026-02-16T10:59:41.000Z","published_at":"2013-04-22T12:50:26.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eReturn how many integer grid points there are inside a circle of radius\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003er\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e centred at (0,0) (including points on the edge).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNeither\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003estring operations\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e nor\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003einterpolations\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e are allowed!\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":2029,"title":"Convert vector datasets to plot with imagesc instead of scatter","description":"For large datasets this allows much faster plotting.\r\n\r\nAn irregular 2D spatial sampling is provided in x and y vectors with a data point to plot in vector d. A bin size is also provded in vector b=[dx,dy]\r\n\r\nReturn a 2D matrix M with minimal empty cells with the correct spatial relationship of d and last value only retained in the event of duplicates.\r\n\r\nExample\r\n\r\n b = [6,9];\r\n\r\n x = rand(3333,1)*100*b(1)+1500;\r\n\r\n y = rand(3333,1)*100*b(2)+50000;\r\n\r\n d = sind(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2);\r\n\r\nReturn G, a 2D matrix with d binned in rows and columns\r\n\r\n\r\n","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 337.033px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 168.517px; transform-origin: 407px 168.517px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 158px 8px; transform-origin: 158px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eFor large datasets this allows much faster plotting.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 362px 8px; transform-origin: 362px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eAn irregular 2D spatial sampling is provided in x and y vectors with a data point to plot in vector d. A bin size is also provded in vector b=[dx,dy]\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 378.5px 8px; transform-origin: 378.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eReturn a 2D matrix M with minimal empty cells with the correct spatial relationship of d and last value only retained in the event of duplicates.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 26.5px 8px; transform-origin: 26.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eExample\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 143.033px; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-end-end-radius: 4px; border-end-start-radius: 4px; border-start-end-radius: 4px; border-start-start-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; margin-block-end: 10px; margin-block-start: 10px; margin-bottom: 10px; margin-inline-end: 3px; margin-inline-start: 3px; margin-left: 3px; margin-right: 3px; margin-top: 10px; perspective-origin: 404px 71.5167px; transform-origin: 404px 71.5167px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; margin-right: 3px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 44px 8.5px; transform-origin: 44px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e b = [6,9];\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 0px 8.5px; transform-origin: 0px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 128px 8.5px; transform-origin: 128px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e x = rand(3333,1)*100*b(1)+1500;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 0px 8.5px; transform-origin: 0px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 132px 8.5px; transform-origin: 132px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e y = rand(3333,1)*100*b(2)+50000;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 0px 8.5px; transform-origin: 0px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 176px 8.5px; transform-origin: 176px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e d = sind(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2);\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 10px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 10px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 10px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 178px 8px; transform-origin: 178px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eReturn G, a 2D matrix with d binned in rows and columns\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function G = binit(x,y,d,b)\r\n  G=nan(x/b(1),y/b(2));\r\n  G(r,c)=d;\r\nend","test_suite":"%%\r\nrng('default');\r\n\r\nb=[6,9];\r\nx=rand(3333,1)*100*b(1)+1500;\r\ny=rand(3333,1)*100*b(2)+50000;\r\nd=sind(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2);\r\nG=binit(x,y,d,b);\r\n\r\nchk1=sum(sum(G~=0));\r\nchk2=round((mean(abs(G(G~=0))))/10^-8)*10^-8;\r\nassert(isequal(chk1,2809))\r\nassert(isequal(chk2,1.2680e-05))\r\n\r\n%%\r\nrng('default');\r\n\r\nb=[25,12.5];\r\nx=rand(5,1)*10*b(1)-200;\r\ny=rand(5,1)*10*b(2)-50;\r\nd=round((2*x+3*y-x.*y+30)/10)*10;\r\nG=binit(x,y,d,b);\r\noide=[     0 0 0 0 0 0 60 0\r\n           0 0 0 0 0 0 0 440\r\n           0 0 0 0 0 0 0 0\r\n           0 0 0 0 0 0 0 0\r\n        2840 0 0 0 0 0 0 0\r\n           0 0 0 0 0 0 0 0\r\n           0 0 0 0 0 0 0 0\r\n           0 0 0 0 0 0 0 0\r\n           0 0 0 0 0 3120 0 -1680];\r\nassert(isequal(G,oide))\r\n%%\r\n\r\nrng('default');\r\n\r\nb=[2,4];\r\nx=rand(1000,1)*25*b(1)+1000;\r\ny=rand(1000,1)*25*b(2)+200;\r\nd=round((x-y-750)/10)*10;\r\n\r\nG=binit(x,y,d,b);\r\noide=[50    50    50    50    60    60     0    60     0     0    70    70    70    70    80    80    80     0    80    90     0     0    90   100     0\r\n    40    50    50    50    50    50    60     0     0    60     0    70    70    70    70    70    80    80    80     0    80    90     0     0    90\r\n    40     0    40    50    50    50     0    60    60     0    60    60    60    70    70     0    70    80    80    80     0    80    90     0     0\r\n     0    40    40    40    40    50     0    50    50    50    60    60    60    60    70     0    70    70    70    80    80    80    80    80    80\r\n     0    30    40    40     0    50    40     0    50     0    50    50    60    60     0    60    60    60     0    70    70    80    80     0    80\r\n     0    30    30     0    40    40    40    40    40    50    50    50    50    50    60    60    60    60    60    70    70     0    70    80    80\r\n    30    30    30    30    30    30    40    40    40    40    40     0     0    50     0     0     0    60     0    60     0    70     0    70    70\r\n    20    20    30    30    30     0    30    40     0    40    40     0    40    50    50     0    50     0    60     0    60     0    70     0    70\r\n    20    20    20    20    20     0    30    30     0    40    40     0     0    40    50    50    50    50    50    50    60     0    60    60     0\r\n    10    20    20    20    20    20    30    30     0    30     0    40    40    40    40    40    40    50    50     0    50    60    60    60    60\r\n    10    10    10    20    20    20    20    20    30    30    30     0    30    40    30    40    40     0    50    50    50     0     0    60    50\r\n     0    10    10    10    10    20     0     0    20     0    20     0    30     0     0    40    40    40    40    40     0    50    50    50     0\r\n     0     0     0    10     0    10    10    20     0    20    20    20    20    30    30    30    30     0    40    40     0    40    40    50    50\r\n     0     0     0     0     0    10    10    10    10    10    20    20     0    20    20     0    30    30    30     0    40    40    40    40     0\r\n   -10   -10     0     0     0     0     0    10    10    10    10    20    10    20    20    20    20    30    30    30    30    30     0    40    40\r\n   -10   -10   -10     0     0     0     0     0    10    10    10    10     0     0    20    20    20    20    30     0    30    30     0    40     0\r\n     0     0   -10   -10   -10   -10     0     0     0     0     0    10    10    10    10    20    20    20    20    20     0    30    30    30    30\r\n   -20   -20   -10   -10   -10   -10     0     0     0     0     0     0     0    10    10    10     0    10    20    20     0    20    20    30     0\r\n     0   -20   -20   -20   -20   -10   -10     0   -10     0     0     0     0     0     0    10    10    10    10    10     0     0    20    20    30\r\n     0   -30   -20   -20   -20     0   -10   -10   -10   -10     0   -10     0     0     0     0    10     0    10    10    10     0    20    20    20\r\n     0   -30   -30     0   -20   -20   -20   -20   -10   -10   -10   -10   -10   -10     0     0     0     0    10    10    10    10    10    10    20\r\n     0     0   -30   -30   -30   -30   -20   -20   -20     0     0   -10   -10   -10   -10     0     0     0     0     0     0    10     0    10     0\r\n   -40   -40   -40   -30   -30   -30   -30   -30   -20   -20   -20   -20     0     0   -10   -10   -10     0     0     0     0     0     0     0    10\r\n   -40   -40     0   -40   -30   -30   -30     0   -30     0   -20   -20     0   -20   -10   -10   -10   -10   -10   -10     0     0     0     0     0\r\n   -50   -40     0   -40   -40     0   -30     0   -30   -30   -30   -20   -20   -20   -20   -20   -10   -10   -10   -10     0     0     0     0     0 ];\r\nassert(isequal(G,oide))\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":5,"created_by":17471,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":5,"test_suite_updated_at":"2020-10-27T17:24:12.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2013-12-01T13:26:51.000Z","updated_at":"2020-10-27T17:24:12.000Z","published_at":"2013-12-01T16:03:40.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor large datasets this allows much faster plotting.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAn irregular 2D spatial sampling is provided in x and y vectors with a data point to plot in vector d. A bin size is also provded in vector b=[dx,dy]\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eReturn a 2D matrix M with minimal empty cells with the correct spatial relationship of d and last value only retained in the event of duplicates.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eExample\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ b = [6,9];\\n\\n x = rand(3333,1)*100*b(1)+1500;\\n\\n y = rand(3333,1)*100*b(2)+50000;\\n\\n d = sind(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2);]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eReturn G, a 2D matrix with d binned in rows and columns\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":45397,"title":"Assess the scatter of wind turbines in a field","description":"The renewable energy industry is on the rise in many countries--- and one of the key players is wind energy. \r\n\r\nIt is believed that the layout of a wind farm can influence its ability to harness energy. One assumption is that the more scattered the turbines are in the field, the higher the energy yield. Hence, we need to determine how many turbines in a wind farm are in a good position.\r\n\r\nYou are given the positions of 8 wind turbines in a field rendered as an 8-by-8 grid of cells. For this problem, a wind turbine is defined to be in a _good position_ if there are no other turbines in its immediate vicinity of adjacent cells in the grid. Otherwise, it is in a _bad position_. An illustration of these two cases is further explained in the figure below.\r\n\r\nAccess the figure here: \u003chttps://drive.google.com/open?id=19M-3AZ0aqmJs2vKL-EKoJ0z59RvURukg\u003e\r\n\r\nWrite a function that accepts a MATLAB variable, POS. You are ensured that POS is always a row vector of 8 elements, and each element satisfies 1 \u003c= POS(i) \u003c= 8. This vector represents the wind farm layout: POS(i) is the row position of the sole wind turbine in column _i_. Given the layout, output the number of wind turbines in _good position_.\r\n\r\nAs seen in the examples from the figure above, we have 4 turbines in _good position_ for POS = [8 1 6 3 6 7 3 4]; 6 turbines for POS = [3 1 5 2 8 7 4 6]; and, 2 turbines for POS = [4 5 7 7 3 2 6 8].","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.44px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: none solid rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 835.2px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 417.6px; transform-origin: 407px 417.6px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 20.8px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.4px; text-align: left; transform-origin: 384px 10.4px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eThe renewable energy industry is on the rise in many countries--- and one of the key players is wind energy.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 62.4px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 31.2px; text-align: left; transform-origin: 384px 31.2px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eIt is believed that the layout of a wind farm can influence its ability to harness energy. One assumption is that the more scattered the turbines are in the field, the higher the energy yield. Hence, we need to determine how many turbines in a wind farm are in a good position.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 62.4px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 31.2px; text-align: left; transform-origin: 384px 31.2px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eYou are given the positions of 8 wind turbines in a field rendered as an 8-by-8 grid of cells. For this problem, a wind turbine is defined to be in a\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003egood position\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e if there are no other turbines in its immediate vicinity of adjacent cells in the grid. Otherwise, it is in a\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003ebad position\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e. An illustration of these two cases is further explained in the figure below.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 20.8px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.4px; text-align: left; transform-origin: 384px 10.4px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 481px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 240.5px; text-align: left; transform-origin: 384px 240.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" width=\"593\" height=\"481\" style=\"vertical-align: middle;width: 593px;height: 481px\" src=\"data:image/png;base64,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\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 20.8px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.4px; text-align: left; transform-origin: 384px 10.4px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 62.4px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 31.2px; text-align: left; transform-origin: 384px 31.2px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eWrite a function that accepts a MATLAB variable, POS. You are ensured that POS is always a row vector of 8 elements, and each element satisfies 1 \u0026lt;= POS(i) \u0026lt;= 8. This vector represents the wind farm layout: POS(i) is the row position of the sole wind turbine in column \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003ei\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e. Given the layout, output the number of wind turbines in\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003egood position\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 41.6px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 20.8px; text-align: left; transform-origin: 384px 20.8px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eAs seen in the examples from the figure above, we have 4 turbines in \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003egood position\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e for POS = [8 1 6 3 6 7 3 4]; 6 turbines for POS = [3 1 5 2 8 7 4 6]; and, 2 turbines for POS = [4 5 7 7 3 2 6 8].\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = assess_windfarm(POS)\r\n  y = POS;\r\nend","test_suite":"%%\r\nassert(isequal(assess_windfarm([5 6 6 6 6 3 5 1]),3))\r\n%%\r\nassert(isequal(assess_windfarm([1 8 3 5 8 2 2 3]),5))\r\n%%\r\nassert(isequal(assess_windfarm([8 4 3 2 4 3 2 4]),2))\r\n%%\r\nassert(isequal(assess_windfarm([1 5 1 5 7 2 4 5]),6))\r\n%%\r\nassert(isequal(assess_windfarm([1 4 6 2 7 8 7 5]),5))\r\n%%\r\nassert(isequal(assess_windfarm([3 6 2 8 5 5 2 1]),4))\r\n%%\r\nassert(isequal(assess_windfarm([3 7 8 6 6 2 5 7]),4))\r\n%%\r\nassert(isequal(assess_windfarm([4 8 1 3 5 1 6 5]),6))\r\n%%\r\nassert(isequal(assess_windfarm([5 7 7 7 3 4 7 1]),3))\r\n%%\r\nassert(isequal(assess_windfarm([1 3 5 8 6 3 3 7]),6))\r\n%%\r\nassert(isequal(assess_windfarm([8 6 3 1 7 5 8 1]),8))\r\n%%\r\nassert(isequal(assess_windfarm([5 3 7 2 4 4 7 6]),4))\r\n%%\r\nassert(isequal(assess_windfarm([2 3 2 6 5 2 2 4]),1))\r\n%%\r\nassert(isequal(assess_windfarm([8 5 1 1 7 4 4 7]),4))\r\n%%\r\nassert(isequal(assess_windfarm([3 5 6 7 3 6 8 1]),5))\r\n%%\r\nassert(isequal(assess_windfarm([5 4 3 3 7 8 2 7]),2))\r\n%%\r\nassert(isequal(assess_windfarm([2 8 7 4 6 4 7 3]),6))\r\n%%\r\nassert(isequal(assess_windfarm([1 5 8 2 4 6 1 8]),8))\r\n%%\r\nassert(isequal(assess_windfarm([7 5 2 4 5 8 7 8]),3))\r\n%%\r\nassert(isequal(assess_windfarm([6 4 8 4 2 4 6 5]),6))\r\n%%\r\nassert(isequal(assess_windfarm([7 8 8 5 8 1 1 3]),3))\r\n%%\r\nassert(isequal(assess_windfarm([5 5 8 5 4 5 6 1]),2))\r\n%%\r\nassert(isequal(assess_windfarm([7 2 4 3 3 6 2 3]),3))\r\n%%\r\nassert(isequal(assess_windfarm([2 2 3 8 4 4 2 8]),3))\r\n%%\r\nassert(isequal(assess_windfarm([4 7 5 4 8 7 4 7]),4))\r\n%%\r\nassert(isequal(assess_windfarm([8 4 3 5 8 6 4 6]),6))\r\n%%\r\nassert(isequal(assess_windfarm([8 5 5 3 1 2 1 4]),3))\r\n%%\r\nassert(isequal(assess_windfarm([1 8 6 1 1 2 4 2]),5))\r\n%%\r\nassert(isequal(assess_windfarm([1 6 3 7 4 4 1 1]),4))\r\n%%\r\nassert(isequal(assess_windfarm([1 5 2 7 7 8 4 2]),5))\r\n%%\r\nassert(isequal(assess_windfarm([2 5 7 3 4 6 8 2]),6))\r\n%%\r\nassert(isequal(assess_windfarm([6 5 4 8 4 2 6 5]),3))\r\n%%\r\nassert(isequal(assess_windfarm([3 7 8 8 2 2 1 5]),2))\r\n%%\r\nassert(isequal(assess_windfarm([1 4 8 5 3 2 4 8]),6))\r\n%%\r\nassert(isequal(assess_windfarm([1 4 7 1 6 8 3 2]),6))\r\n%%\r\nassert(isequal(assess_windfarm([6 8 5 8 2 7 3 4]),6))\r\n%%\r\nassert(isequal(assess_windfarm([2 7 5 6 7 1 8 4]),5))\r\n%%\r\nassert(isequal(assess_windfarm([7 6 7 2 4 5 8 7]),1))\r\n%%\r\nassert(isequal(assess_windfarm([8 5 5 7 1 8 4 1]),6))\r\n%%\r\nassert(isequal(assess_windfarm([6 2 2 5 3 3 4 4]),2))\r\n%%\r\nassert(isequal(assess_windfarm([4 5 2 2 1 3 7 2]),3))\r\n%%\r\nassert(isequal(assess_windfarm([6 6 7 7 3 3 5 3]),2))\r\n%%\r\nassert(isequal(assess_windfarm([7 7 5 3 6 2 4 4]),4))\r\n%%\r\nassert(isequal(assess_windfarm([5 8 7 8 2 5 1 7]),5))\r\n%%\r\nassert(isequal(assess_windfarm([5 7 8 8 4 1 5 2]),5))\r\n%%\r\nassert(isequal(assess_windfarm([2 3 1 6 6 5 3 7]),3))\r\n%%\r\nassert(isequal(assess_windfarm([5 8 8 3 5 3 5 7]),6))\r\n%%\r\nassert(isequal(assess_windfarm([6 2 7 1 4 6 7 3]),6))\r\n%%\r\nassert(isequal(assess_windfarm([6 8 2 2 2 3 3 8]),3))\r\n%%\r\nassert(isequal(assess_windfarm([1 5 2 7 2 5 8 3]),8))\r\n%%\r\nassert(isequal(assess_windfarm([1 2 4 3 2 8 6 8]),3))\r\n%%\r\nassert(isequal(assess_windfarm([4 8 1 5 7 2 8 7]),6))\r\n%%\r\nassert(isequal(assess_windfarm([7 5 7 3 2 3 5 7]),5))\r\n%%\r\nassert(isequal(assess_windfarm([3 4 7 5 8 2 7 6]),4))\r\n%%\r\nassert(isequal(assess_windfarm([2 4 4 5 7 1 7 7]),3))\r\n%%\r\nassert(isequal(assess_windfarm([3 4 5 6 6 7 4 4]),0))\r\n%%\r\nassert(isequal(assess_windfarm([8 5 7 3 5 5 8 1]),6))\r\n%%\r\nassert(isequal(assess_windfarm([5 5 1 8 8 4 7 2]),4))\r\n%%\r\nassert(isequal(assess_windfarm([5 3 4 7 2 3 4 3]),2))\r\n%%\r\nassert(isequal(assess_windfarm([7 8 2 2 6 4 8 8]),2))\r\n%%\r\nassert(isequal(assess_windfarm([6 7 4 6 8 5 8 6]),6))\r\n%%\r\nassert(isequal(assess_windfarm([4 6 8 2 4 8 4 6]),8))\r\n%%\r\nassert(isequal(assess_windfarm([8 8 6 1 1 5 5 8]),2))\r\n%%\r\nassert(isequal(assess_windfarm([6 6 5 3 8 5 1 6]),5))\r\n%%\r\nassert(isequal(assess_windfarm([5 1 8 3 2 1 3 2]),3))\r\n%%\r\nassert(isequal(assess_windfarm([6 1 3 3 8 4 7 5]),6))\r\n%%\r\nassert(isequal(assess_windfarm([7 1 8 7 1 4 3 6]),4))\r\n%%\r\nassert(isequal(assess_windfarm([2 5 5 5 4 1 5 4]),2))\r\n%%\r\nassert(isequal(assess_windfarm([1 4 4 5 7 6 7 1]),2))\r\n%%\r\nassert(isequal(assess_windfarm([2 4 8 7 4 3 1 6]),4))\r\n%%\r\nassert(isequal(assess_windfarm([5 2 4 2 7 3 8 1]),8))\r\n%%\r\nassert(isequal(assess_windfarm([7 6 5 6 6 1 8 1]),3))\r\n%%\r\nassert(isequal(assess_windfarm([3 2 8 1 5 6 6 7]),2))\r\n%%\r\nassert(isequal(assess_windfarm([1 7 5 6 2 5 6 8]),4))\r\n%%\r\nassert(isequal(assess_windfarm([4 1 1 6 7 6 3 8]),3))\r\n%%\r\nassert(isequal(assess_windfarm([5 8 1 2 7 8 7 3]),3))\r\n%%\r\nassert(isequal(assess_windfarm([2 7 7 3 2 3 7 7]),1))\r\n%%\r\nassert(isequal(assess_windfarm([5 5 3 6 7 4 4 4]),1))\r\n%%\r\nassert(isequal(assess_windfarm([3 6 8 8 6 3 6 2]),6))\r\n%%\r\nassert(isequal(assess_windfarm([1 2 2 5 1 7 6 8]),3))\r\n%%\r\nassert(isequal(assess_windfarm([4 6 8 5 3 8 1 3]),8))\r\n%%\r\nassert(isequal(assess_windfarm([8 3 3 1 8 2 3 8]),4))\r\n%%\r\nassert(isequal(assess_windfarm([4 5 5 6 1 5 1 7]),4))\r\n%%\r\nassert(isequal(assess_windfarm([3 7 2 5 8 1 1 1]),5))\r\n%%\r\nassert(isequal(assess_windfarm([6 5 1 7 5 1 1 2]),3))\r\n%%\r\nassert(isequal(assess_windfarm([7 1 2 2 1 7 6 6]),1))\r\n%%\r\nassert(isequal(assess_windfarm([6 5 3 6 1 2 1 8]),3))\r\n%%\r\nassert(isequal(assess_windfarm([8 1 4 6 3 7 5 4]),6))\r\n%%\r\nassert(isequal(assess_windfarm([3 7 8 6 4 8 3 5]),6))\r\n%%\r\nassert(isequal(assess_windfarm([8 3 3 8 1 3 5 2]),6))\r\n%%\r\nassert(isequal(assess_windfarm([6 7 5 6 7 2 5 1]),3))\r\n%%\r\nassert(isequal(assess_windfarm([5 7 8 4 3 6 8 5]),4))\r\n%%\r\nassert(isequal(assess_windfarm([8 2 1 3 4 4 3 6]),2))\r\n%%\r\nassert(isequal(assess_windfarm([1 4 3 3 1 5 3 2]),3))\r\n%%\r\nassert(isequal(assess_windfarm([1 3 5 7 1 8 2 7]),8))\r\n%%\r\nassert(isequal(assess_windfarm([7 8 2 5 4 2 5 5]),2))\r\n%%\r\nassert(isequal(assess_windfarm([2 5 8 4 6 4 1 3]),8))\r\n%%\r\nassert(isequal(assess_windfarm([7 3 1 5 3 6 5 7]),6))\r\n%%\r\nassert(isequal(assess_windfarm([7 2 1 7 6 1 8 5]),4))\r\n%%\r\nassert(isequal(assess_windfarm([5 5 7 7 4 1 6 3]),4))\r\n%%\r\nassert(isequal(assess_windfarm([1 1 1 1 1 1 1 1]),0))\r\n%%\r\nassert(isequal(assess_windfarm([1 8 1 3 1 5 1 8]),8))\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":1,"created_by":255320,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":65,"test_suite_updated_at":"2020-03-29T00:40:23.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2020-03-28T23:55:35.000Z","updated_at":"2026-03-31T14:31:20.000Z","published_at":"2020-03-29T00:40:23.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe renewable energy industry is on the rise in many countries--- and one of the key players is wind energy.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIt is believed that the layout of a wind farm can influence its ability to harness energy. One assumption is that the more scattered the turbines are in the field, the higher the energy yield. Hence, we need to determine how many turbines in a wind farm are in a good position.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYou are given the positions of 8 wind turbines in a field rendered as an 8-by-8 grid of cells. For this problem, a wind turbine is defined to be in a\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003egood position\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e if there are no other turbines in its immediate vicinity of adjacent cells in the grid. Otherwise, it is in a\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ebad position\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. An illustration of these two cases is further explained in the figure below.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"481\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"593\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"middle\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWrite a function that accepts a MATLAB variable, POS. You are ensured that POS is always a row vector of 8 elements, and each element satisfies 1 \u0026lt;= POS(i) \u0026lt;= 8. This vector represents the wind farm layout: POS(i) is the row position of the sole wind turbine in column \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ei\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. Given the layout, output the number of wind turbines in\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003egood position\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAs seen in the examples from the figure above, we have 4 turbines in \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003egood position\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e for POS = [8 1 6 3 6 7 3 4]; 6 turbines for POS = [3 1 5 2 8 7 4 6]; and, 2 turbines for POS = [4 5 7 7 3 2 6 8].\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.png\",\"relationshipId\":\"rId1\"}]},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA08AAAKvCAYAAACyDfQsAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAGhtSURBVHhe7d1PbNvmHfj/j36nnnZeMBcdEDvp0viQLN1SGQN6MVq7wRI4WLbkUsRB5ALJYDfNBiQIjMAIEqBLMhnzgNpFXPRSrxmaxoMrNfBlxWA33TerD0mzplKAb1AP3nmn702/5yEpiZJI6pEpURL1fgUMJZrkQz4kP+KHfxMFRQAAAAAAgf4/pw0AAAAACEDyBAAAAAAGSJ4AAAAAwADJEwAAAAAYIHkCAAAAAAMkTwAAAABggOQJAAAAAAzUvOcpkUg4nwAAAACg9/i9CtczefLrGQAAAADiLCgf4rI9AAAAADBA8gQAAAAABkieAAAAAMAAyRMAAAAAGCB5AgAAAAADJE8AAAAAYIDkCQAAAAAMkDwBAAAAgAGSJwAAAAAwQPIEAAAAAAZIngAAAADAAMkTAAAAABggeQIAAAAAAyRPAAAAAGCA5AkAAAAADJA8AQAAAIABkicAAAAAMEDyBAAAAAAGSJ4AAAAAwADJEwAAAAAYIHkCAAAAAAMkTwAAAABggOQJAAAAAAyQPAEAAACAAZInAAAAADBA8gQAAAAABkieAAAAAMBAByVPWZlIJCRRt5lQfWp5mR1S34dm1adO0uzpcsY3Yc+1r/ysTAwV66YZnOVRr9yOXQ4O03qp6a/D5yuMpq8rrVa9LGK8bEqIh96c8REPt4d4WIt4CKBBnHmKifxnt2Vh3fmCEtN66aX6Y11B3LGOeyMe1mJdAdCoDkqeRmS+UJBCqclJOqk6J9OSq+g+r/rsZP0yuaamc21SfeoFvTa/QBSIh92JeAgAcReTM09ZmdCnra3LWIZkYtbj5HXe3U9ChvRp+sBz3N6nwvOzQ/bwFWU4/VqXdPifUs9mZ1W5dvl+05nPTsiQM42JutOo2eMfmNKHzhZktDRt3tNf6l66/KT8vThv1qVA7oECp6m6nPJ3k/ltfLmUWXXlGrayDHs6auulmkl/rVi/yqqXufdk1hu/Sb3XmVfTMoLWlSrNmTc0phXra3n9cvdGPKyepupyyt+Jh87f6iAebr/uAESkUMWjU5vkCumkFCSZVp+8FP+eKqR0W023u0llnN60XLqQrPq73SQLae+RW3LpZE0/mZQzrLsAZ/xJq8fq6Xa+V5RbbipHo8ur6qc4fxUz5FY7fu/pKHK6l8ZX7C9ZriNrmEwhZX12dS817jqpLqd2etxNM5aL5llXTmOXUTsddr1U8+uvOF+tW78smVT94YzGb1LvAXXSSBk164qPZs9b9ToWVHbs1Jvn4t+Jh9XjJx5afdRMB/EwoE4aKYN4CMSS3vb8dH/ypAOLq59c2glQ1T+GKvikMuUx5TJOkKqI+lWcQFbuxfkBtZqU+uawgmIxuPkENqes8nQ6P3alkRfHrcZTnM5cpmLYIPb4XNNUMx1FTvfS+MrTV/ljWp7XZLo43WoXoma6tzu/xf62sVxKw6r5dU9y8YfHNWxtvXjzrT89vlatX65hi1Wfc35gy8vCdPyu6VXdytNbXe/Fbl7zal6G946XWwvmrXodq1m346zePBfrsrIf4mGRX/053UvjK08f8dArRqimVeuXa9imxQynW3l6q+u92M1rXs3LIB4C8aO3Tz8xSJ6qfwicH7lioHF+QLyCW/0fEq9xqeBn/WCUg6B19NU3kIWcTo8fQC++PwA19ed0rw7EftPnN3yp/+py6oyvKculLJdTOzDqxyWdStn1VFVXpuPy/wFt4XwEDFtiPH7D6VVqpit0GR5aMW++21gvqDfPhsvfuM69eI2LeFjZf3U5dcbXlOVSRjwsjt9wepWa6QpdhodWzJvvNgagGYLyoe6/5ym5Rwacj7YB2aMiUEnusegrmtenBkrXEBcb+1rnR/Kd7/XEI3JERVp59J1YvVjj2iu7Jo9ISn16nNMds3J3QU3GsTeCbxA2nM69u6rG0v+GHHP31yo102erna9+ecOaoKB6U1q6XJT8rHXt+MDAgIyOTsnUwoI1vqZr9XwoNcvcrdHx15teL6HL8NfUeUN9LV1fiYfEwxbPh0I83H7dAYgGjyqvY0TvLazfls9U0MrqvYLUEbULYQfghbtZ9aP1nQppdYIimiwrEwNT1g9NMpWSdDojmUxOcoWM2okD0CrEw05EPASAKMU/eRrYI/pAUypjXaLo0azJZNDvvDW8Pqqale/UXkFyjz7G5BxtfPSdZD+7rf6akiNhnxfsTOejmkNLOXmsfxUb1i+79qrW+mM1BrfGxrduH052yctnt/UI9kqo/aMwy8XZQdPDrs3Py+TkiIyM9Eu/0z1SYdcvpXaZuzRh/HW1sIy2zxsqha1za3jiYRnxsEITtmnioVeZumnCvAFoivgnT85lHgujQzLrft5nPms/ZrT0hn4fxeGvXJHb60k59oYdvfr1L/H6bbmifzito68h9e9SP79qlFNvykRpOvWjUEdlwflWn9dp/QW5W/Fo1kbGpyyMuh7fmpfs7JtiXUEQdp7DLhdFH+kuDakf7/qmffRV78RVVoPp5Q7buCwizHw4w+plXq7iWZnQl2oUH3XchHry5prXVpTR1nmDr7B1XhyeeKgQD2uEmQ9nWOJhs+cNQNMVqnh0apN6N0H6/d3pnnLdwuk81carCbyB02HfrKn7r72pVHd3F1U7XSGns+6jeW3laXTNk9H4/KbPvrE26b7xuNS4b5Bt8vw6TfByccblMZzVuMr2rBcPtf1FMR+Kz7AVi9to/ObTa7yuOE39Mny0bN4anI5YqDfPfn93ujdrfVWIh67hrYZ42LT1y2fYisVtNH7z6SUeAvCitzs/vXHP08i8qAgp6keyLJlU8TMnawbnwa2jqpr76KJzlEh1DH+JSpGazlzGNZ3JlGTWfid7nK9B+icvlYbTl5ZYx630+NIp61IALZlKS85wfCV7fidrGdc4kmnJ5ObDH1nWtr1c+mXyw0zVcClJq+HUpOoKKF2a41kvHkz78xRm/bKWebl+1YDWcPPuCg4zfg9+60ozy7C0Yd5gIGSdEw+Jh4HCrF/WMiceNrVcAE2X0BmU89min+xS1QkAAAAAekJQPsTT9gAAAADAAMkTAAAAABggeQIAAAAAAyRPAAAAAGCA5AkAAAAADJA8AQAAAIABkicAAAAAMEDyBAAAAAAGSJ4AAAAAwEAHJU95mR1KSGJoVn2KSH5WJoYmJOt8jT+njic6bY49ln3NsmnD+gG0TRzjYVYmElHEH+LcdmQnhqw36luNqrv2xdnqOjCsE34zAESkp8885T+7LQvrzhd0FJYNEC22ueh1TJ1nJ2S0akL6nXa3YP0FEJUOSp76ZXKtIIW1ya4L2gjLZNmzfqCXsL7HT+fHuVRGlV1QzfyI0wUAUK3DL9tT3dyXEiSGZCJrdgI+n52QIT0+97CzxWHtsgam9GGqBRlVfx8q/c1b8PiCWcNWDJe157X6spJ8VibcZehLELyKMOyvoly/cdWwL62x6qNqeM/ZNZqWesvRvez9lo27H5e65ZeHy2ZnXcvQfPkB0fNa31W3GMRDi0FsMi2DOKeVh2s0zmUnVH+jC9bnhVE9jBq39U0xLVdf5jdbnPfgZRB63anhV5du7vnwKa9qXoe2tYwdRuPyVr0+e0+qSR02c1oNxwX0ikIVj04RyRXSSSlIMq0+ub6r6aluUhmrB1+5dNJzON3Yw9aOO5m2S/VSf3z+gobVh/lKMqlC0qsfSRYqJs2wP89yk6lCSs934ERnCinVbzLlVc52psVkObqXvd+ycffjCFm+buotP6A9qtd3//U4TAyyh/Xb5rxtPx7asUWSybqxxbQM4pzTj8f43E1QVWRS1f2nVO1YfzAv171M3dNexWy5VteBR51UqJ33yrp01gfX33VTUSe5dJOWsWI0Lh+qzusN11AdBvajNHO+gZjR67ifzk2enI06qbbO8jbsbOiBW2xxQ1c/AO5A5TGsHYScHwpf5uOr5ews6EBUHDiXKQei0rDl4JRyFVIKktU/InX7My3XS3FYu79iuZliGY1Os9FydMbl+nGsXTbV/TReZ+X5cfVXmgagk1St70bbkZfi+t9J8VDv3JrElnplEOeaFuecnfZyb42XG5Rw24r91luuTn/VZbjqzYtvXVZMr+7PSVCqy1PrUcW8Zqqmq5FlXG9cnsrDFqsy5yyXct0W+6lTh82cVqNxAfGjtz0/HZ886SNaqXRaBQp3pDCTU8NkVCBIu48uujb22mAbrN74atQEPkd14AkIRPZRQSeYNthf3XI9OTsVHj9UdhlOfTU6zYHLsWrZ6y5+P4TV60e98ovD1SxnZz4D6wJolxjGw+I2VxNb/LbROmU4dUKc099Cxrnq5Cl0ucGC153qeqqtNy/+yVOdOnHm1Sv5qxinyTI2HZeXgGG9mGwbTZlWk3EBMaS3KT+d+7S9/km5pCKcrK/LwtSUjA4M2NfjTszWv3Y4P2tdMzyghhkdnZKphQXRV0Nv2zbHl//ukfo/KcfeqLr1t/8NOaaiUbXUkdqbdEeO6EqoVLe/3GNr+vbuMivX095dNTcsD+zRAz+S71z1X3dawixHA6Z1Jsk9MuB8tA2INTtAN4hBPCxKHnujKrb0yxtWYHLFFpMyiHPOJ5cmx7ntl+uj2euiiXp14qxH61P2MnM39n1UzrpgsoxNxxWgZn2uZlKHzZzWFq/bQDfq6EeVj8wXJJdJS8oV6NYX9MY74XqXQ7WsTAxMWUEhmUpJOp2RTCYnuUJGPEK+gWaPr/dsbzkCcOudeNidMZc4V0/3/5a2fxmb12Ezp5V1G6jU8e956h+ZlHn96NaC2nhzGUlbEWJB7vptsfnvRJ/vSWUKsjY/L5OTIzIy0i/9TveGhRhf/6696v91uf1Z1eGZ/GdyW0e/KgseM5W9az8Fya1ufwN7RMe4RzWHuHLy2KNcT4++k8qh8/KZNdF7xX1gzHSaG16OhkzLB+Kgm+Nh0frjnPOpqCq2mJZBnHM+tU5Ty23CutMSznqkp0svt9pmTSZd60LgMm5wXF5q12eXBuuwmdPaqnUb6EadmzxlJ+xTw7PlN5339w/ILut8e1L21LlGQAf9UgjSj+J80z5aU/tjWf80umY+PpeRI9bRoPWpN2W2eH5bDTtbHLaoeJnJwmjF4z/1o1+tJ8gmj4l15Z9xf7vUT79dbrm/vMwOjapQZ2h9St4s1X1esrNvinUmP3VErAs5TKcl1HIMWDam5QNxEId4WKS22fKjpD1ii6NuGcS51sW5FpYbat2py2z9reDM68LoUPl3WtO/1dYjvJ2zKybL2HRcXpxhrf2F4qD5WeuR+tWPrq9bh82c1pCxB4ilQhWPThHxuUlU36hY3QTeOBownG5cw9o3Rdrd/W/SNB+fF3cZNU3KdetoxnXTZ0VTvDHX0UB/Nf008AhffXNobTlVN7saTYvJcqxe9l7LprafhsqvWU5O96ploIcPrB4gEtXrrfO9Zl1XTc267RYwnG4Ctzkv5uOrZceWpPsG91Ljji0NlEGcc3gMZ3G61wtqXrEvVLlenH49x6ka33oyK8OoLi1Od4/Y79WUt4WA6XeXYTQuHz7Dlic1YBp0U11ngf0oLZjveqsa0C30+uyngy/b029az0nafZGtJNXvYkZy9d7Q/mGm4tpcNZCkMznJWKeBHkvxopH+yUul/vSlJK5jLy7m4/PSP7kmOdVjefCkitnp2mu8R+ZlLVd5TbEuJ5OrOs3fQH8V1yjrftZ+J3ucr3XtvSRrrulOptKqjPmKI8Nm07K95Wi0bEzrAuh68YiHlj2/q4wtyerY0kAZxLnWaXq5TVh3Apitvz7UvKrsq2ra9G91TtZKM2u4jI3G5UMNW7u/kJP50gppWofNnNbtrdtAnCV0BuV8tujTs1Wd0HRZmUiMyqO0QTCNnD1tCyowFsoRGwBihDgHAPAXlA91/AMjuprzSNHEhPt65bxkJ+xr8us+khQAAABAxyB5aqXSTbdTMqCTKKsZcG64TcvvOOAJAAAAdA2Sp5biWmEAAAAgLrjnCQAAAAAc3PMEAAAAACGRPAEAAACAAZInAAAAADBA8gQAAAAABkieAAAAAMAAyRMAAAAAGCB5AgAAAAADJE8AAAAAYIDkCQAAAAAMkDwBAAAAgAGSJwAAAAAwQPIEAAAAAAZIngAAAADAAMkTAAAAABggeQIAAAAAAyRPAAAAAGCA5AkAAAAADJA8AQAAAIABkicAAAAAMEDyBAAAAAAGSJ4AAAAAwADJEwAAAAAYSBQU57MlkUhIVSd0KL2sEB7rO9qNbbk5otqWWV7NwfLqLiyv7sK+TTh6PfSrQ5KnLmYtq/89cL61VuIHB+JbFus72kxvy//v/3zifGut514+GulOEGWFE3VZrIfhUFZ4lBVelGXFVVAdctkeAAAAABggeQIAAAAAAyRPAAAAAGCA5AkAAAAADJA8AUDX2JJ7S+/Jq+NHrRvurWb8opxZ2pCnTh9A67EeAuhdJE8A0A02N+TM+Fk5fHNV7j90umkPn8itm1fkpfH35N6m0w1oFdZDAD2O5AkAOt6WzE1fkVtqZ/Xg2ElZ/vQT65HSVvPpJbk+tlvtvK7K4ekVjvyjhVgPAYDkCQA63NOlP8l5vcN6bk7+fuGQvNbn/EHr2ydnL1yVb87pHdcP5NTSlvMHoLlYDwGA5AkAOtyWZFefqPawXDi+w+7kYefxX8kp1b6/+i+O+qMFWA8BQCN5AoCO9l/5t763ZOzn8prdwcc++eWYaj3clLzdAWgi1kMA0EieAAAAAMAAyRMAAAAAGCB5AoCO9kP5yaBq3flK7tkdfGzI3+6o1mCf9NsdgCZiPQQAjeQJADraDhkZ3q3aq3It4AlmT5f+KrdU++DwT2Wn3QloItZDANBIngCgw+08/lu5Pihy/+ZZefXaSuVLSDc3ZO7aRXnp5hORwZNyK+BJaEAYrIcAIJIoKM5nSyKRkKpO6FDWsvrfA+dbayV+cCC+ZbG+o830tqxfNBpsQ86M2y8o9TQ4LMszb1W+e8fDcy8fjWydj/L3hLLCYz0Mj7LCo6zwoiwrroLqkDNPANAV9smfF+dk+dywHNT3nhQN7pZT5y7JN4v1d1iB8FgPAfQ2zjx1MWtZceYpFM48oRPobbn+Ef/m4Ih/eHEui/UwHMoKj7LCi7KsuAqqQ848AQAAAIABkicAAAAAMEDyBAAAAAAGuOepi+llhfBY39FubMvNEdW2zPJqDpZXd2F5dRf2bcLR66FfHZI8dTFrWUX4YIX1/7vifGut5I8P8cAI9JQo464ui4cChMPyCo/lFR7LKzyWF/wE1SGX7QEAAACAAZInAAAAADBA8gQAAAAABkieAAAAAMAAyROabEu+XJyT1Ngh68EPVjN2Xt5dfCCbTh8AusGW3Ft6T14dP2rd6Gw14xflzNKGPHX6QCdheXUXlld3YXmhjKftdTFrWXXS0/aePZB3374sd792vlfb/7rc+ONZeeUF57sPnraHXhNl3NVl1X261OaGnJm+IrceOt+rDQ7L8sxb8lqf892H3sGIcr7iWhbLKxyWV3gsL5ZXrwmqQ848oUm25GMncdp74rTc+GLFSras5ovLMnniRZGvP5d33l7mDBTQ0bZkztlRODh2UpY//cTaubCaTy/J9bHdIg9X5fD0CkdcOwLLq7uwvLoLywu1SJ7QFJuLN2RWJ07T78vC1cOVZ5deOCC/vnpdbk/rBOp9mVnccv4AoNM8XfqTnNc7Cufm5O8XDlUeTe3bJ2cvXJVvzukdhg/k1BLbcruxvLoLy6u7sLzgheQJTbAlayvfqvbrcnJ8h93JQ9/4b+SIaj9a+Sdnn4COtCXZ1SeqPSwXjvtvyzuP/0pOqfb91X9xtLWtWF7dheXVXVhe8EbyhCb4jzzT9zmdOCiv2B18HJBfnFCtr7+X7+0OADrKf+XfD1Vr7Ofymt3Bxz755ZhqPdyUvN0BbcHy6i4sr+7C8oI3kicAAAAAMEDyBAAAAAAGSJ7QBD+SF/ar1kf35Uu7g48H8o+PVGv/8/K83QFAR/mh/GRQte58JffsDj425G93VGuwT/rtDmgLlld3YXl1F5YXvJE8oQl2yNChF1X7c/kg4El6m4t/kbuqvffQz6TO6xAAtMUOGRnerdqrci3gyVFPl/4qt1T74PBPZafdCW3B8uouLK/uwvKCN5InNEXf+DsyuV/k0cxpSV1cli+fOX/Qnj2Qjy+el2Mz34rsPy3TAU/kA9BeO4//Vq4Pity/eVZevbYi99yPxtzckLlrF+Wlm09EBk/KrYAnUCEaLK/uwvLqLiwveEkUql6fy1uJu4e1rP73wPnWWokfHLBeeBvsgbw7Zr8o19P+1+XGH89WvgPKQ/LHhyKdL9Z3tFuUcVeXpV/wGGxDzozzRn0/LK/wWF4sLz8sr/CirMO4CqpDzjyhiQ7I7++8LzemX5e9+h6oov0vypHpy3L7Tv3ECUAn2Cd/XpyT5XPDclBf8180uFtOnbsk3yzW31FAlFhe3YXl1V1YXqjEmacuZi2rjjrz1ByceUKviTLu6rLqH2ltDo6Mh8fyCo/lFR7LKzzOPHWXoDrkzBMAAAAAGCB5AgAAAAADJE8AAAAAYIB7nrqYXlYIj/Ud7ca23BxRbcssr+ZgeXUXlld3Yd8mHL0e+tUhyVMXs5ZVlA9WiGtZrO9osyjjLmWFR1nhUVZ4uqy4PuyAhziEE2VZcRVUh1y2BwAAAAAGSJ4AAAAAwADJEwAAAAAYIHkCAAAAAAMkTwAAALG1JfeW3pNXx49aD0iwmvGLcmZpQ546fXSnuM4XOh3JEwAAQBxtbsiZ8bNy+Oaq3H/odNMePpFbN6/IS+Pvyb1Np1s3iet8oSuQPAEAAMTOlsxNX5FbKrk4OHZSlj/9xHoEuNV8ekmuj+1WycaqHJ5e6bIzNXGdL3QLkicAAICYebr0JzmvE4xzc/L3C4fktT7nD1rfPjl74ap8c04nGh/IqaUt5w+dL67zhe5B8gQAABArW5JdfaLaw3Lh+A67k4edx38lp1T7/uq/uuQsTVznC92E5AkAACBW/iv/1vcCjf1cXrM7+NgnvxxTrYebkrc7dLi4zhe6CckTAAAAABggeQIAAAAAAyRPAAAAsfJD+cmgat35Su7ZHXxsyN/uqNZgn/TbHTpcXOcL3YTkCQAAIFZ2yMjwbtVelWsBT5x7uvRXuaXaB4d/KjvtTh0urvOFbkLyBAAAEDM7j/9Wrg+K3L95Vl69tlL50tjNDZm7dlFeuvlEZPCk3Ap4cl2niet8oXskCorz2ZJIJKSqEzqUtaz+98D51lqJHxyIb1ms72izKOMuZYVHWeFRVni6LP1i2GAbcmbcfqGsp8FhWZ55q/JdSR6ee/ko8xVSXNfDuAqqQ848AQAAxNI++fPinCyfG5aD+l6hosHdcurcJflmsX6C0ZniOl/oBpx56mLWsuLMUyiceUIniOsRScoKj7LCi3NZ9c/QNEfnnXlqDs48wU9QHXLmCQAAAAAMkDwBAAAAgAGSJwAAAAAwwD1PXUwvK4TH+o52Y1tujqi2ZZZXc7C8ugvLq7uwbxOOXg/96pDkCQAAAAAcQfkQl+0BAAAAgAGSJwAAAAAwQPIEAAAAAAZIngAAAADAAMkTAAAAABggeQIAAAAAAyRPAAAAAGCA5AkAAAAADJA8AQAAAIABkicAAAAAMEDyBAAAAAAGSJ4AAAAAwADJEwAAAAAYIHkCAAAAAAMkTwAAAABggOQJAAAAAAyQPAEAAACAAZInAAAAADBA8gQAAAAABkieAAAAAMAAyRMAAAAAGEgUFOezJZFISFUnAEAL6biL8KL67WJ5NQfLq7uwvLoL+/LhBOVDJE8A0GZRxl1d1v/7P58431rruZePRjpflBUOZYVHWeFRVnhRlhVXQXXIZXsAAAAAYIDkCQAAAAAMkDwBAAAAgAGSJwAAAAAwQPIEAPCwJfeW3pNXx49aD36wmvGLcmZpQ546fQAA0Gt42h4AtFnUT2Gq+7S9zQ05M31Fbj10vlcbHJblmbfktT7nuw+ethceZYVHWeFRVnhxLSuuguqQM08AAJctmXMSp4NjJ2X500+sZMtqPr0k18d2izxclcPTK5yBAgD0HJInAEDJ06U/yXmdOJ2bk79fOFR5dqlvn5y9cFW+OacTqA/k1NKW8wcAAHoDyRMAwLEl2dUnqj0sF47vsDt52Hn8V3JKte+v/ouzTwCAnkLyBABw/Ff+re9zGvu5vGZ38LFPfjmmWg83JW93AACgJ5A8AQAAAIABkicAAAAAMEDyBABw/FB+Mqhad76Se3YHHxvytzuqNdgn/XYHAAB6AskTAMCxQ0aGd6v2qlwLeJLe06W/yi3VPjj8U9lpdwIAoCeQPAEASnYe/61cHxS5f/OsvHptRe5tOn/QNjdk7tpFeenmE5HBk3Ir4Il8AADEUaJQ9fpc3koMANGK+s3z+oW3wTbkzLj9olxPg8OyPPNW5TugPDz38tFYvlGfssKjrPAoKzzKgp+gOuTMEwCgyj758+KcLJ8bloP6Hqiiwd1y6twl+WaxfuIEAEAcceYJANos6iOS9c88NQdnnsKjrPAoKzzKCi+uZcVVUB1y5gkAAAAADJA8AQAAAIABkicAAAAAMMA9TwDQZjruIryofrtYXs3B8uouLK/uwr58OEH5EMkTALRZlHFXl8UDI8KJ8/Ji3QiH7Ss81vnwolxecRVUh1y2BwAAAAAGSJ4AAAAAwADJEwAAAAAYIHkCAAAAAAMkTwAAD1tyb+k9eXX8qHWjs9WMX5QzSxvy1OkDnSTK5cW6ER51GB7rPNqDp+0BQJt13JOsNjfkzPQVufXQ+V5tcFiWZ96S1/qc7z70DkaU8xXXsqJcXqwb4bB9hcc6H16UyyuuguqQM08AAJctmXN2FA6OnZTlTz+xdi6s5tNLcn1st8jDVTk8vcIR144Q5fJi3QiPOgyPdR7tRfIEACh5uvQnOa93FM7Nyd8vHKo8mtq3T85euCrfnNM7DB/IqaUt5w9olyiXF+tGeNRheKzzaDeSJwCAY0uyq09Ue1guHN9hd/Kw8/iv5JRq31/9F0db2yrK5cW6ER51GB7rPNqP5AkA4Piv/Puhao39XF6zO/jYJ78cU62Hm5K3O6AtolxerBvhUYfhsc6j/UieAAAAAMAAyRMAAAAAGCB5AgA4fig/GVStO1/JPbuDjw352x3VGuyTfrsD2iLK5cW6ER51GB7rPNqP5AkA4NghI8O7VXtVrgU8Oerp0l/llmofHP6p7LQ7oS2iXF6sG+FRh+GxzqP9SJ4AACU7j/9Wrg+K3L95Vl69tiL3Np0/aJsbMnftorx084nI4Em5FfAEKkQjyuXFuhEedRge6zzaLVGoen0ubyUGgGh13Nv7ZUPOjNsvhvTU42/Uj/PyYt0Ih+0rPNb58KJcXnEVVIeceQIAVNknf16ck+Vzw3Jw0OmkDe6WU+cuyTeL9XcUEKUolxfrRnjUYXis82gfzjwBQJt13lHd5ojzkfG4Li/WjXDYvsJjnQ8vyuUVV0F1yJknAAAAADBA8gQAAAAABkieAAAAAMAA9zwBQJvpuIvwovrtYnk1B8uru7C8ugv78uEE5UMkTwDQZlHGXcoKj7LCi3NZPIAgHMoKL8qy4iqoDrlsDwAAAAAMkDwBAAAAgAGSJwAAAAAwQPIEAAAAAAZIngAAACK1JfeW3pNXx49aD36wmvGLcmZpQ546fQDoTDxtDwDajCc+hUdZ4VFWeLqsuk/b29yQM9NX5NZD53u1wWFZnnlLXutzvvvgaXvhURb8BNUhZ54AAAAisSVzTuJ0cOykLH/6iZVsWc2nl+T62G6Rh6tyeHqFM1BAhyJ5AgAAiMDTpT/JeZ04nZuTv184VHl2qW+fnL1wVb45pxOoD+TU0pbzBwCdhOQJAACg5bYku/pEtYflwvEddicPO4//Sk6p9v3Vf3H2CehAJE8AAAAt91/5t77Paezn8prdwcc++eWYaj3clLzdAUAHIXkCAAAAAAMkTwAAAABggOQJAACg5X4oPxlUrTtfyT27g48N+dsd1Rrsk367A4AOQvIEAADQcjtkZHi3aq/KtYAn6T1d+qvcUu2Dwz+VnXYnAB2E5AkAACACO4//Vq4Pity/eVZevbYi9zadP2ibGzJ37aK8dPOJyOBJuRXwRD4A7ZMoVL0+l7cSA0C0eMt9eJQVHmWFp8vSL7wNtiFnxu0X5XoaHJblmbcq3wHl4bmXj7K8QqIs+AmqQ848AQAARGaf/HlxTpbPDctBfQ9U0eBuOXXuknyzWD9xAtA+nHkCgDbj6Gd4lBUeZYWny6p/5qk5OPMUHmXBT1AdcuYJAAAAAAyQPAEAAACAAZInAAAAADDAPU8A0GY67iK8qH67WF7NwfLqLiyv7sK+fDhB+RDJEwAAAAA4gvIhLtsDAAAAAAMkTwAAAABggOQJAAAAAAyQPAEAAACAAZInAAAAADBA8gQAAAAABkieAAAAAMAAyRMAAAAAGCB5AgAAAAADJE8AAAAAYIDkCQAAAAAMkDwBAAAAgAGSJwAAAAAwQPIEAAAAAAZIngAAAADAAMkTAAAAABggeQIAAAAAAyRPAAAAAGCA5AkAAAAADJA8AQAAAIABkicAAAAAMJAoKM5nSyKRcD4BAAAAQO+pSpFKapInAAAAAEAtLtsDAAAAAAMkTwAAAABggOQJAAAAAAyQPAEAAACAAZInAAAAADBA8gQAAAAABkieAAAAAMAAyRMAAAAAGCB5AgAAAAADJE8AAAAAYIDkCQAAAAAMkDwBAAAAgAGSJwAAAAAwQPIEAAAAAAZIngAAAADAAMkTAAAAABggeQIAAAAAAyRPAAAAAGCA5AkAAAAADJA8AQAAAIABkicAAAAAMEDyBAAAAAAGSJ4AAAAAwADJEwAAAAAYIHkCAAAAAAMkTwAAAABggOQJAAAAAAx0YPKUl+zshAwNJSSRcJqhIZmYzaq/dKK8zOppHZptwvRlZaI4z4HNhOqzBfKzMjHUyLh9llW2M5cUAAAAEEaHJU86ERmQ0akFWV93Omnqy8LUqAw0JUGBn/xnt2XBXe9BVKI1lPBZVqMDMjTRkvQOAAAAaJvOSp6yf5ApvSOeTEsmV5BCwWlyGUknVff1KflDrPfJR2S+OM9Wk7PnW9VHrqL7vOqznbIyMTAl1qJKZSTnWla5XFpSaprXF0aF/AkAAABx0lHJU/67R+r/pKQ/nJSRfrubpX9EJtcyklIfF+5W7pHns1WXjSX0JX6u81PWGZKEDKluVr/V/ZS6qX4m3Ge27Evo9HDufhJDE+Ieva+8Gt41XUP6cjiT4bbDqKy8zE4Mlfqx6qDUk33p4YCVuS7IqB5HwEzmZ6+ovnROl5O1+RHpdy2r/v5Jmf8wrZaiGtOVyjOFdZeVJWg6XULPs0NNk/4biR4AAADqKnSSTKqgJ0ntlDsdguXSSat/ryaVKfVUUDvyhWQqZbXL/SQL6Yz9N/dwUhowU1DJmsdwulHDliYxV0gnVbdkWn1yOGVWDqMb93AmPMZdzagsZzwe/dmzW/t3/2VQ7DelashfLlc5vNGyqjudjqbMs8NZ5yq6AQAAAB4667K9kXnJpJKyPjVgnSUYmpiQ2WxW8h4nHvRZhc9u6zMlqapL/JyzHlVnqNYXFmRvJmdfWpbR57DWZWp0SiRtdysOJ4++qzhboodb15emWePPSUbtkVvD+l4/mJfZN/UlbUmVhznjtsrU4w8abjsMy8p/JrqqrEvsnH4q66lfJtfUcNa8qfpUf1+bdJ/6c8vJY6vajwReOtjvPh1luqzqTqfWrHl2qHVO/22+vddBAgAAoBuoHceOk8tlCulUsursQrKgdpadPirpsxyZTFoN4zpLVDyVUDxLUXm6wTqrVHlGxzlTUerm1Y9N5V6qjOKZl6rhime6PM7c2Gdfgs/YVKqepiqmZRXrIKnqMJ0uZKrOChWZTZ9TL9s8VWO0rIKms8nzDAAAAJjqwEeV67MWIzI5vyZr1hmDnHVWQT+EwHqKm/seGed+poGBARkdnZIpfZbI+VO15J4B55PL3l1SPj/SL7v2Oh/dKvqxDexREyOP5DuvM2K5x9Y02GfPyvfk6Ma+p8hnuO0wLat/Ui5ZJ9v0UwunZFTVl+5H3+PldTtRS5gsK5Pp7KZ5BgAAQKx0ZPJUqV/6RyZlfu1D68lz67c/cy6rcz/xLSXpdEYyGZVoFewHS6DSyLx9aZtOQovWF3RS0eg7owbEyh0X7gYOl9fvfyolKubLqnnT2dxxAQAAAB2UPKkdbH0GwfddTs6ZofXHktNf89+JfjZfKlOQtfl5mZwckZERlWg53Zum6h4oVbBz/85e2eV1W9DAHuu+Gj1dheK9NhXNmvjeTtSoBsuyk1D7bzn9+Hcrc1mQqtvD6uiXN45Z2ZNc8X0iX1b+oN//tPBY997wsgqczrbMMwAAANBRydOIHNE7tutT8mbNpVX2Y8avWM/H3iPuC/D0zf+lXvXjq62HCSg1Sc826emZLZaRl+zsm/a7qPwemND/hujcYmF0SGbdM6GmTT8OPJFo4lkP07Kcx3EPleZDDdo/ILusU0hJqbyisf5lhf2Tl6wzRvrSOf0yXPcDPfL5WZkYGnUeZf67ijqqu6xMprMl8wwAAAAYKHQU52EEvo3Zo6itJvABDt4PPbAeBFHzwIjqB1foxv1QBY+HOjiPv/Zq/B8B7qXOAyM0o7IC6so1bvuBC3b3utNZfCCDX1NRt4bLynA6mznPxXFVrQoAAABAjQ6752lE5q3HgadUzuJ0siQlmUpLJue+JKtfJj/MVNzPonqSdEYNb50WcS7vC2vvJVlTIywWY0/HfOBjuq3HX+cq77XRM6Qfre3/CPBtMipLP4o8J+nKntS8ZCS3NmldWadZZ5ScXtYf58pnibz0T8qadRmcGo/TyeKUXah49rfpsjKbzmbOMwAAAGAqoTMo5zMq6HuwRmVB7WxXJgIAAAAAelEXPG0PAAAAANqP5AkAAAAADJA8AQAAAIAB7nkCAAAAAAOceQIAAAAAAyRPAAAAAGCA5AkAAAAADJA8AQAAAIABkicAAAAAMEDyBAAAAAAGSJ4AAAAAwADJEwAAAAAYIHkCAAAAAAMkTwAAAABggOQJAAAAAAyQPAEAAACAAZInAAAAADBA8gQAAAAABkieAAAAAMAAyRMAAAAAGCB5AgAAAAADJE8AAAAAYIDkCQAAAAAMkDwBAAAAgAGSJwAAAAAwQPIEAAAAAAZIngAAAADAAMkTAAAAABggeQIAAAAAAyRPAAAAAGCA5AkAAAAADJA8AQAAAICBzkye8lmZnRiSoURCEsVmaEgmsnmnhy6Rn3XmYUhmu2zSAQTo8hiVz07I0FB3TjvQtbp930bt00y44sbQxKwQNtCLEgXF+dwZ9I/66IKsO19rpDJSmB9xvnQwFSQn3hyVBWtGkpLOrclkv/UXAN2sy2NUfnZIBqa8pz6ZzskagQpovm7ft9EHgwemPKY/JZnCvHTBXhnQNJ115klvnEHBRVsYlaGOPo2Tt4/qDhQTJwCx0fUxKit/KCZOamctVyhIoZCTdMrutD71B9UHgKaKwb5N9g/FxEklSzkVN3JpSVrfF+QKl9agx3RU8lTeOEWSpR92+8c9k7Y3U2399mcqRSnLz6pkxX0aPDEkEzUbc97jdPmE9+V0zqn1yvFlK8r0k599UwbqBUkAXanrY1T+O3mUtKczdWRE7HNM/TJ5xMme5JF8ZxLoABjr/n0b3UdSdOhIpn8nIzpw9L8hx5xJX3+csz8AvUJfttcZMgX1860vISxIKuN0q5RJSSGZShcyKvIU5dJJexiPJpku9pgrqPjk2Y8KBYVSb1ouXVDxwKM/1STTakzBitOjAmQhl0k5w1aVAaALxSNGeSlPI7EKaK54xo3y/o0UfGYLiK3OSZ5cG7b5hlgOSqlSlFDdisGkOCL3uIv95bwCmisQqWBSCmSu4ctBy1sunVLT7/RD8gTER0xiVC1XOdtMvgD4iGHc0MmeNS61b1OePqB3dHny5JLLFTLpdDm46Ka4I+AatyRThbT78I5bwDSUjgI1snNB8gTERxxjlHuHzGOcAEKKXdyoOtulyiVsoNd0/XuerIcz6Gt3BwZkdGrK+yEN/ZNySUUey/qCTI0OWNf6Dk1kJe9zse/CaPGaYLspPZ1q/bFwdS8AUx0bo/QTQRPlB9sk0znphgeZAr2gc/dt+mVyzb5fSyVRVrmjQ7MG900B8dE5yVP/LtnrfFy46/28p6y+KdL9XoH8rLxZfDhDMimpdEZyOWeDrjIyvyaFXEbSxUCjhlpfGJWBgUT5CTe5xzzoAYC3OMUonTjpJ4I6X3XixCPKgRaI7b6NSqIupeyP67fls+K0A73AOQPVEcrX0eqbJzOuU8j6tLX75knnNHHpsjj3aWPXKeWgc+Q51V+pPGf4sKfXq3HZHhAr8YhRrnsiVNP4PVIAGtH1cUMNn0omrXFUDM8+DnpUR122N/K74nsD9JngURkonVrWp63Lx02sR2U6n20Lctc5ZJPP/kFcvdqyE6VT1KU3efeL7CqV5nA9enPhyoTrKJC+vMWZlgneggL0qjjEqOwEZ5yAKHV93OjfpSZ83Tp7tXDFuURPDTt7xYkkyWPyBmEEvcRJojpHJlU6QuLZVNzUWHkEtaYp9es6YuPVuA+luI7Q1Dbuo0AGOCoDxE83x6jAYXVDrAJaotv3bUr7M9VNsjlX6gBdpPOSJy2XKaRT9ini0gaa1Buox6+6dTrZtRHrX37PpEWfHq8KXnqcafcpdIdTfqk/1VS/g8EIyRMQT10ao4LeHWM3xCqgZbp83yaXqX7qn0q6DIcF4iSh/1MbAQAAAAAgQNc/qhwAAAAAokDyBAAAAAAGSJ4AAAAAwADJEwAAAAAYIHkCAAAAAAMkTwAAAABggOQJAAAAAAyQPAEAAACAAZInAAAAADBA8tSA/OyQJBIJ72ZoQmazeafPannJzk7I0JC7/yGZmM2qv/jZzjDNkpdZV7lDs64S87MyUTFNE+I72wGyE2rYiazzzUA+K7MTrvrXdWFYcD5bWY9DE7PmdbidclUdDRX792yGxF2lXkJNc4WsTOhxuOq6Yj0e2u54YYq4of7SpPW50bhh9e+U6W4qYpqPfFZtxxX12ECs206cbELcqFS77QeqE+uIG9EiblRrbH3e1rYfZhts8+9+uHi1/f0rPd9BsS62caMAY7l0sqCrLKhJZZyei3KZQirp3a/VJFOFTM7ptyRXSAcOk1Z9tFJl+cm0U1ouXUi6p6PUJAvFXkyU6rGmsvyoOqwp027qjcJ/mal6d/rxt81yfeup2ATXV7hprpRJOcO6Jrhi/C1fl9DrcaNZ63NpPMZxw78+SjHNTyblOZxRrNtunAwZN6p5bfv+6sc64ka0ej1uVGtsfd7mth9mG2zn736YeLXd/RzNINbFNW6QPDXAXgm8V+RcceWtWDnKG3Ayla4MWirIpVPOSlW9QrnGVTOMMz6j+LFtznRXTVcxeKVKE5UrZJwNo+7OiEX1X5xn3RjORLHcpOq/VIraaK0NPnBjdIJCRT2Wp6Fe8dsv14ezXIPrKtw0u1UErZoBvZcxmq+340Yz1uftxQ29reof9sbnuVj/agegNNFqGorbU50Rho+TVYziRqXgbb+WeawjbkSl1/c33Bpdn7e/7fvYxjZYYjRsmDjZnHi1nf0c81gXv7hB8tSAoGCm2StS+e/FDT5oo/Hqx+7md8TA2cgCNwinn8DGfz78VnRr/mpWfpPp0YrTlFQbmrNh1h1GKwcV/1pskBNYTYNZc8oNOT6jaXYp/Xj4LZ/4BbNO1etxw5Px+lycpkbjhmLttPjVRwDfaTObv3BxspozXCPbad1tv1ojZRA3okLccDS8Pivb3fY9NbJ9VAszrGISJ0PFq3DTZx7r4hc3uOepZfLy2e111U7Jpcl+u5OH/slLqg+R9dufla4F7d+1V/2/Lrc/87o6dETmddI7P+J8j87AHrWJrk/JHyqug78iC6qd3DNgdwiwJ5WRXGFN5kd2OV0MZO9a409dmhT/WmxEXrJ/mFK1m5RjbwSMscnlZidG1fiSkv5wO+MznOaSrEwMqP5VfbdhNUEo8YsbtRpbn7cVN5T8d4/U/6pOchPlexH0vSJe1ePWPylrqq7W/Op/767AbThsnHRrPG5sY9tveoxF9OIaN7b3W7btbd9DmN/uSH73w8SrkNt+M2Nd13GSKBgIOhJUOo1eyrbNj5JUH0HSypepJAvJVKqQzmQKuchSdr+jBOXTyO5Gn+5tjHndlI8g6dPBKesIi1VuUh+JbqRCnHmyhlfjq1d008pVnCNDRvNbocFpdlQeDfKr6/gdCepUxI2i7a3PZQ3EDcWuH++m4U1RKR61rz9sk+LkNuKG2bZfpaFYR9yICnHDmdZG12eladv+tn+7lYh/96sZxavQ+zmmsS5+cYPkqQHFldG/0Suh03PIYKblnOuUSyu0U0bDO+8N81nR1fR43oza8AZhXjd2nas68CpXNYGnsyvoMt3jcS+rWs0rt7h8g8vz1tg0W0rB0PnuW9fsBEWl5+NGyTbW5wrmdVOaFl2Ga7697xWpr3ZnNUCT4mTDccN426/UWKwjbkSl5+PGNtfn0vj0sCG3/e3/docZVs9nmDjpmtembvsejGNd/OIGyVMDgoJZsuYpNuGDWaWcWk/TakW1pyF4pXbKDmyCyvNa0f0DUuNHV8zrplTnVfVbKrduvXnQG7w1Tv8NuXnlms9rIINpVhNtTVvluuFXfvyCWafq7bjhw2R9rmFeN0Ea26lxHVk1mtZmxckG57Whbb9SY7GOuBGVno4bIdbnII1t+2HKCz+tlobjZGPxKtx+TiOxLn5xg+SpAfaKVi/oFBVXrHr9N75x1F8JnXEGNs0IZjazYOzWQGBRG6JfsLOXh2kgrFR32GaVa41ne5cJVatXrv334vL1atzDxi+YdSp7ufRo3AjQ0HZkaSBuBDAvt7gs6u08ujQrTjYYNxrb9qs0FOuIG1Hp5bgRan0OYL7tK2F+uyP83S/bRrxqaNuv0lCsi1/c4IERLdMvbxxTq5YsyJWAuxRLN9cde8O5Yc95EZzvy8T6xb6/87Hk7A4enJs8A5t51VdzWDcNyiP5bhs3Y9Y1sEeSsi6P/WfWX/GldY28jLcoTLku2bvW7ZhyxLSyw0wzYiBmcaNd67NTrtcLMXOP9Y31e2VX4B3Suj4HZGo9qXK1nP/N2A1oJE42HDfCaFKsQzv1zv5GXaG3fVuYbTD63/1txqsWbfst3SfsFGrFhqHGjgRpriMBDbx3wc7aPYZRfZVOibY0g/c6SlA8upT0PkXb0PQ0cgS5WIfbKbdc/+7rtvWwXvVeKUy5RV71WE+YafbiV9fbmTZsR2/HjWauz9uLG+Vy9U3RTt3VGYddlwFHXX01I042a9s0ra9yXdWf5mZNG+rp7bjhpfH1eTvbvi3Mer6dYcvLbjtxcvvxqlxXjcerRmJdmPrsTCRPDWg8mGlqBXM2Cs+m5tplrbhS+jXb2Uga4bOiFzdkj8YoHpWYBkGHc3p4W+UWN+SaxqAOw5RraXA+i8JMcw2/aYhfMOtUxI1mrc8Nbk++8apOuQHbvd3UWZah4+Q240aNBsZjHOuIG1Hp+bhRo4H1ebvbfkmYbXCbw243ToaNVyH3r7yG003c4waX7bXciMyv5SSTTklSraEl6ksqnZHc2ryM1Jxh1afBPYaRpIp9acnk1qQJV5E0bmRecpm0qOBclkyJ2rBb+z4h/R6DXEaV6yrYtFw1zWu5ymlOqmGN6jBMuVr+O9Fvm2j4fQdhphkxEa+40Zb1WZWrdgyqyq1fD/nPbou+uGfbwsbJ7caNMMLGOnSIGMWNMLa57ZeE2QYj/t0PHa9C7l+1ZZ+wAyR0BuV8Bhx5mR0akClJq2DLixPjiWWMZmOdij+WMZqNdSr+4reMOfMEAAAAAAZInuBvfUoGfJ5ag+6Vnx2ShPVkHqcD0EzEjVgibqCliBuxFNe4QfIEAAAAAAa45wkAAAAADHDmCQAAAAAMkDwBAAAAgAGSJwAAAAAwQPIEAAAAAAZIngAAAADAAMkTAAAAABggeQIAAAAAAyRPAAAAAGCA5AkAAAAADJA8AQAAAIABkicAAAAAMEDyBAAAAAAGSJ4AAAAAwADJEwAAAAAYIHkCAAAAAAMkTwAAAABggOQJAAAAAAyQPAEAAACAAZInAAAAADBA8gQAAAAABkieAAAAAMAAyRMAAAAAGEgUFOdzbCUSCecTgFaIYxghbgCtRdwA0KhOiBs9kzwV/vfA+dZaiR8ckPX/u+J8a63kjw9FOl9RrSrW8qKsUOJaVpSs+SJuhGLFjbiWxbYcSqzjBssrFMoKj7Jai8v2AAAAAMAAyRMAAAAAGCB5AgAAAAADJE8AAAAAYIDkqW225MvFOUmNHbJu4LaasfPy7uID2XT6AIBKxA0AANqJ5Kkdnj2Qd8dOyzszn8ujr51u2tffyt2Zy3JsbE6+fOZ0AwCNuAEAQNuRPEVuSz5++7LcVTs/e0+clhtfrFiPKLaaLy7L5IkX1c7Q5/LO28scSQbgIG4AANAJSJ4itrl4Q2b1DtD0+7Jw9bC88oLzB+2FA/Lrq9fl9rTeEXpfZha3nD8A6GXEDQAAOgPJU6S2ZG3lW9V+XU6O77A7eegb/40cUe1HK//kKDLQ84gbAAB0CpKnSP1Hnul7FU4clFfsDj4OyC9OqNbX38v3dgcAPYu4AQBApyB5AgAAAAADJE8AAAAAYIDkKVI/khf2q9ZH9+VLu4OPB/KPj1Rr//PyvN0BQM8ibgAA0ClIniK1Q4YOvajan8sHAU/E2lz8i9xV7b2HfiZ9dicAPYu4AQBApyB5iljf+DsyuV/k0cxpSV1crnyp5bMH8vHF83Js5luR/adlOuDJWgB6B3EDAIDOkCgozufYSiQSUvjfA+dbayV+cMB6cWWwB/LumP3CS0/7X5cbfzxb+S4XD8kfH4p0vqJaVazlRVmhxLWsKFnzRdwIxYobcS2LbTmUWMcNllcolBUeZbUWZ57a4oD8/s77cmP6ddmr72Uo2v+iHJm+LLfv1N8BAtBriBsAALQbZ56azOwIcnNw5ik8ygovyrKiZM0XcSOUyM8GEQ9DIW6Ex/IKj7LCo6zW4swTAAAAABggeQIAAAAAAyRPAAAAAGCgZ+55AtA6cQwjxA2gtYgbABrVCXGDB0Y0WaxvkObG71CivNExrmVFibgRni6LB+iEQ9zoLiyv8OJc1v/7P58431rruZePsrxaiMv2AAAAAMAAyRMAAAAAGCB5AgAAAAADJE8AAAAAYIDkCQDQZlvy5eKcpMYOWQ9+sJqx8/Lu4gPZdPoAgN6wJfeW3pNXx49aD36wmvGLcmZpQ546faC9SJ4AAO3z7IG8O3Za3pn5XB597XTTvv5W7s5clmNjc/LlM6cbAMTZ5oacGT8rh2+uyv2HTjft4RO5dfOKvDT+ntzjiFLbkTwBANpkSz5++7LcVUnT3hOn5cYXK9ajza3mi8syeeJFlUR9Lu+8vcwZKAAxtyVz01fklkqaDo6dlOVPP7EebW41n16S62O7VRK1KoenVzgD1WYkTwCAtthcvCGzOnGafl8Wrh6WV15w/qC9cEB+ffW63J7WCdT7MrO45fwBAOLn6dKf5LxOnM7Nyd8vHJLX+pw/aH375OyFq/LNOZ1AfSCnloiH7UTyBABogy1ZW/lWtV+Xk+M77E4e+sZ/I0dU+9HKPzn7BCCmtiS7+kS1h+XCcf94uPP4r+SUat9f/Rdnn9qI5AkA0Ab/kWf6HqcTB+UVu4OPA/KLE6r19ffyvd0BAGLmv/JvfY/T2M/lNbuDj33yyzHVergpebsD2oDkCQAAAAAMkDwBAAAAgAGSJwBAG/xIXtivWh/dly/tDj4eyD8+Uq39z8vzdgcAiJkfyk8GVevOV3LP7uBjQ/52R7UG+6Tf7oA2IHkCALTBDhk69KJqfy4fBDxJb3PxL3JXtfce+pm4Hz4FAPGxQ0aGd6v2qlwLeJLe06W/yi3VPjj8U9lpd0IbkDwBANqib/wdmdwv8mjmtKQuLle+DPfZA/n44nk5NvOtyP7TMh3wRD4A6HY7j/9Wrg+K3L95Vl69tlL5MtzNDZm7dlFeuvlEZPCk3Ap4Ih9aL1FQnM+xlUgkpPC/B8631kr84ABlhRR5WRFtAtZ6SFldg7gRni5Lv/A22AN5d8x+Ua6n/a/LjT+erXwHlIfkjw8RN0IiboTH8govzmXpF94G25Az4/aLcj0NDsvyzFuV74Dy8NzLR1leLcSZJwBAGx2Q3995X25Mvy579T1QRftflCPTl+X2nfqJEwDEwz758+KcLJ8bloP6Hqiiwd1y6twl+WaxfuKE1uPMU5PF+QhybMvi6EwonXIkqNmIG+HpsuqfeWoOzjyFR9wIj+UVXpzLqn/mqTk489RanHkCAAAAAAMkTwAAAABggOQJAAAAAAz0zD1PAFonjmGEuAG0FnEDQKM6IW70zgMjIprNyMvixu9Qor7xm5tFu4eer9iu85QVCmWFZ5UV07gRx9gb57L4XQ4nrmUF4bI9AAAAADBA8gQAAAAABkieAAAAAMAAyRMAAAAAGCB5QpNtyZeLc5IaO2TdBG81Y+fl3cUHsun0gXq25N7Se/Lq+FHrBlOrGb8oZ5Y25KnTBzoJ6zwAxBu/yygjeULzPHsg746dlndmPpdHXzvdtK+/lbszl+XY2Jx8+czpBm+bG3Jm/Kwcvrkq9x863bSHT+TWzSvy0vh7co898s7BOg8A8cbvMqqQPKFJtuTjty/LXbUDuffEabnxxYr1mGer+eKyTJ54Ue1Qfi7vvL3M0XhfWzI3fUVuqeB8cOykLH/6ifUIVav59JJcH9utgvWqHJ5e4UhXR2CdB4B443cZtUie0BSbizdkVu9ETr8vC1cPyysvOH/QXjggv756XW5P653J92Vmccv5A9yeLv1JzusAfW5O/n7hkLzW5/xB69snZy9clW/O6UD9gZxaog7bjXUeAOKN32V4IXlCE2zJ2sq3qv26nBzfYXfy0Df+Gzmi2o9W/smR+Bpbkl19otrDcuG4fx3uPP4rOaXa91f/xVGutmKdB4B443cZ3kie0AT/kWf6fo8TB+UVu4OPA/KLE6r19ffyvd0BJf+Vf+trqcd+Lq/ZHXzsk1+OqdbDTcnbHdAWrPMAEG/8LsMbyRMAAAAAGCB5AgAAAAADJE9ogh/JC/tV66P78qXdwccD+cdHqrX/eXne7oCSH8pPBlXrzldyz+7gY0P+dke1Bvuk3+6AtmCdB4B443cZ3kie0AQ7ZOjQi6r9uXwQ8FSxzcW/yF3V3nvoZ+J+YA20HTIyvFu1V+VawBN7ni79VW6p9sHhn8pOuxPagnUeAOKN32V4I3lCU/SNvyOT+0UezZyW1MXlyheDPnsgH188L8dmvhXZf1qmA55O1st2Hv+tXB8UuX/zrLx6baXypXubGzJ37aK8dPOJyOBJuRXw5B9Eg3UeAOKN32V4SRQU53NsJRIJiWo2Iy/rfw+cb62V+MEB6+WfwR7Iu2P2S0M97X9dbvzxbOX7cDwkf3wo0vmKcnnpF+sF028yt1/I52lwWJZn3qp814SH514+Gst1Pkp6vmK7zlNWKJQVnlVWTONGHGNvnMvidzmcuJYVhDNPaKID8vs778uN6ddlr74fpGj/i3Jk+rLcvlN/JxL75M+Lc7J8blgO6mutiwZ3y6lzl+SbxfoBGlFinQeAeON3GZU489RkkZcV4VHC+kfhm6O3zzw1B2eewtPzFdt1nrJCoazwrLJiGjfiGHvjXBa/y+HEtawgnHkCAAAAAAMkTwAAAABggOQJAAAAAAz0zD1PAFonjmGEuAG0FnEDQKM6IW7wwIgmi7wsbloOJcqblqNeN+J4E2yU2L7Ci/W2HOF88bCe7hHX2Bv17xdlhUNZrcVlewAAAABggOQJAAAAAAyQPAEAAACAAZInAAAAADBA8gT0tC25t/SevDp+1Lr52GrGL8qZpQ156vQBoBtsyZeLc5IaO2Q9+MFqxs7Lu4sPZNPpA52E2At0K5InoFdtbsiZ8bNy+Oaq3H/odNMePpFbN6/IS+PvyT32uoDO9+yBvDt2Wt6Z+Vwefe10077+Vu7OXJZjY3Py5TOnG9qP2At0NZInoCdtydz0FbmlfrgPjp2U5U8/sR6vazWfXpLrY7vVD/mqHJ5e4Sgo0NG25OO3L8tdlTTtPXFabnyxYj3a3Gq+uCyTJ15USdTn8s7by5yB6gjEXqDbkTwBPejp0p/kvP7xPjcnf79wSF7rc/6g9e2Tsxeuyjfn9I/4B3Jqacv5A4BOs7l4Q2Z14jT9vixcPSyvvOD8QXvhgPz66nW5Pa0TqPdlZpFtud2IvUD3I3kCes6WZFefqPawXDi+w+7kYefxX8kp1b6/+i+OgAIdaUvWVr5V7dfl5Lj/ttw3/hs5otqPVv7J2ae2IvYCcUDyBPSc/8q/9XX2Yz+X1+wOPvbJL8dU6+Gm5O0OADrKf+SZvsfpxEF5xe7g44D84oRqff29fG93QFsQe4E4IHkCAAAAAAMkTwAAAABggOQJ6Dk/lJ8Mqtadr+Se3cHHhvztjmoN9km/3QFAR/mRvLBftT66L1/aHXw8kH98pFr7n5fn7Q5oC2IvEAckT0DP2SEjw7tVe1WuBTzN6enSX+WWah8c/qnstDsB6Cg7ZOjQi6r9uXwQ8CS9zcW/yF3V3nvoZ+J+uBuiRuwF4oDkCehBO4//Vq4Pity/eVZevbZS+ULGzQ2Zu3ZRXrr5RGTwpNwKeCoUgPbqG39HJveLPJo5LamLy5Uvw332QD6+eF6OzXwrsv+0TAc8kQ/RIPYC3S9RUJzPsZVIJCSq2Yy8rP89cL61VuIHB+JbVkzXDf3SxWD6Lff2yxo9DQ7L8sxble8h8fDcy0cjm68osX2FF+ttOcL50i+8DfZA3h2zX5Traf/rcuOPZyvfAeUh+eNDsVxeUYpr7I3694uywqGs1uLME9Cz9smfF+dk+dywHNTX4RcN7pZT5y7JN4v1f7wBdIID8vs778uN6ddlr74Hqmj/i3Jk+rLcvlM/cUKUiL1AN+PMU5NFXhZHq0OJ/Gh1hGXVP/rZHJx5Ci/W21dct+UI56v+mafm4MxTeHGNvVH/flFWOJTVWpx5AgAAAAADJE8AAAAAYIDkCQAAAAAM9Mw9TwBaJ45hhLgBtBZxA0CjOiFu8MCIJrPK4sbvUCK/8ZuyQomyrChFXoc8gCCUyOMGcT6UKJdXlKKOGzycIpzIyyJuhNIpcYPL9gAAAADAAMkTAAAAABggeQIAAAAAAyRPAAAAAGCA5AkA4GFLvlyck9TYIevBD1Yzdl7eXXwgm04fALrBltxbek9eHT9qPfjBasYvypmlDXnq9AHAHMkTAKDSswfy7thpeWfmc3n0tdNN+/pbuTtzWY6NzcmXz5xuADrX5oacGT8rh2+uyv2HTjft4RO5dfOKvDT+ntzjaAjQEJInAIDLlnz89mW5q5KmvSdOy40vVqxHm1vNF5dl8sSLKon6XN55e5kzUEBH25K56StySyVNB8dOyvKnn1iPNreaTy/J9bHdKolalcPTK5yBAhpA8gQAKNlcvCGzOnGafl8Wrh6WV15w/qC9cEB+ffW63J7WCdT7MrO45fwBQKd5uvQnOa8Tp3Nz8vcLh+S1PucPWt8+OXvhqnxzTidQH8ipJbZlwBTJEwDAsSVrK9+q9utycnyH3clD3/hv5IhqP1r5J2efgI60JdnVJ6o9LBeO+2/LO4//Sk6p9v3Vf3H2CTBE8gQAcPxHnul7nE4clFfsDj4OyC9OqNbX38v3dgcAHeW/8m99j9PYz+U1u4OPffLLMdV6uCl5uwOAOkieAAAAAMAAyRMAAAAAGCB5AgA4fiQv7Fetj+7Ll3YHHw/kHx+p1v7n5Xm7A4CO8kP5yaBq3flK7tkdfGzI3+6o1mCf9NsdANRB8gQAcOyQoUMvqvbn8kHAk/Q2F/8id1V776GfifsBXgA6xQ4ZGd6t2qtyLeBJek+X/iq3VPvg8E9lp90JQB0kTwCAkr7xd2Ryv8ijmdOSurhc+TLcZw/k44vn5djMtyL7T8t0wBP5ALTXzuO/leuDIvdvnpVXr61Uvgx3c0Pmrl2Ul24+ERk8KbcCnsgHoFKioDifYyuRSEhUs2mV9b8HzrfWSvzgQHzLinJ5UVYoUZYVpcjrMMLtS7/wNtgDeXfMflGup/2vy40/nq18B5SH5I8PxTduEOdDiXJ5RSnquKFfeBtsQ86M2y/K9TQ4LMszb1W+A8rDcy8fjXb7imtZxI1QOiVucOYJAFDlgPz+zvtyY/p12avvgSra/6Icmb4st+/UT5wAdIJ98ufFOVk+NywH9T1QRYO75dS5S/LNYv3ECUAlzjw1GUcWwovyyEKsj3DFsKwoRV6HEW5f9c88NQdnnsIjzneXqONG/TNPzcGZp/CIG+F1StzgzBMAAAAAGCB5AgAAAAADJE8AAAAAYKBn7nkC0DpxDCPEDaC1iBsAGtUJcYMHRjRZ1DcExvXGb26CDSeuZUUpznGDG4nDifO6EelvCnEjFMoKL/Ky4rotxzDOB+GyPQAAAAAwQPIEAAAAAAZIngAAAADAAMkTAAAAABggeeoJW/Ll4pykxg5ZN/ZZzdh5eXfxgWw6fXSnLbm39J68On7UevCD1YxflDNLG/LU6QMA0Gxx/U0Beg3b8naQPMXdswfy7thpeWfmc3n0tdNN+/pbuTtzWY6NzcmXz5xu3WRzQ86Mn5XDN1fl/kOnm/bwidy6eUVeGn9P7rHlA0BzxfU3Beg1bMvbRvIUa1vy8duX5a7aKPaeOC03vlixHl1pNV9clskTL6qN5HN55+3lLjvCsCVz01fklkqaDo6dlOVPP7EebW41n16S62O7VRK1KoenVzgDBQBNE9ffFKDXsC2HQfIUY5uLN2RWbxjT78vC1cPyygvOH7QXDsivr16X29N6A3lfZha3nD90vqdLf5LzOnE6Nyd/v3BIXutz/qD17ZOzF67KN+d0AvWBnFrqnvkCgE4W198UoNewLYdD8hRbW7K28q1qvy4nx3fYnTz0jf9Gjqj2o5V/dsnRhS3Jrj5R7WG5cNx/vnYe/5WcUu37q//i7BMAhBbX3xSg17Ath0XyFFv/kWdfq9aJg/KK3cHHAfnFCdX6+nv53u7Q4f4r/9b3OI39XF6zO/jYJ78cU62Hm5K3OwAAti2uvylAr2FbDovkCQAAAAAMkDwBAAAAgAGSp9j6kbywX7U+ui9f2h18PJB/fKRa+5+X5+0OHe6H8pNB1brzldyzO/jYkL/dUa3BPum3OwAAti2uvylAr2FbDovkKbZ2yNChF1X7c/kg4Ekpm4t/kbuqvffQz8T90LrOtUNGhner9qpcC3iS3tOlv8ot1T44/FPZaXcCAGxbXH9TgF7DthwWyVOM9Y2/I5P7RR7NnJbUxeXKl509eyAfXzwvx2a+Fdl/WqYDnrjSaXYe/61cHxS5f/OsvHptpfJluJsbMnftorx084nI4Em5FfBEPgCAubj+pgC9hm05nERBcT7HViKRkKhm0yrrfw+cb62V+MEB64VmwfQbpO0XoXna/7rc+OPZymf8e0j++FCk86VfeBtsQ86M2y/K9TQ4LMszb1W+A8rDcy8fjXbdoKyuEee4Eduy4rp9xfU3hbgRCmWFF3lZcd2WYxjng3DmKfYOyO/vvC83pl+Xvfoa16L9L8qR6cty+079DaMz7ZM/L87J8rlhOajvgSoa3C2nzl2SbxbrJ04AgEbF9TcF6DVsy9vFmacm67wjC83ReWeemoMzT+FFWVaU4hw3YltWXLevuP6mEDdCoazwIi8rrttyDON8EM48AQAAAIABkicAAAAAMEDyBAAAAAAGeuaeJwCtE8cwQtwAWou4AaBRnRA3eueBEXG9QTquZUW0Wup1g4dThBNlWVGKax1SVni6rEjjBnG+a7DOh6fX+dj+LrN/GEqnxA0u2wMAAAAAAyRPAAAAAGCA5AkAAAAADJA8AQAAAIABkifAyJbcW3pPXh0/at1gajXjF+XM0oY8dfoAgErEDfSaKNd5ti+0B8kTUM/mhpwZPyuHb67K/YdON+3hE7l184q8NP6e3Nt0ugGARtxAr4lynWf7QhuRPAGBtmRu+orcUsH54NhJWf70E+sRqlbz6SW5PrZbBetVOTy9wpEuAA7iBnpNlOs82xfai+QJCPB06U9yXgfoc3Py9wuH5LU+5w9a3z45e+GqfHNOB+oP5NTSlvMHAL2MuIFeE+U6z/aFdiN5AnxtSXb1iWoPy4XjO+xOHnYe/5WcUu37q//iKBfQ84gb6DVRrvNsX2g/kifA13/l3w9Va+zn8prdwcc++eWYaj3clLzdAUDPIm6g10S5zrN9of1IngAAAADAAMkTAAAAABggeQJ8/VB+Mqhad76Se3YHHxvytzuqNdgn/XYHAD2LuIFeE+U6z/aF9iN5AnztkJHh3aq9KtcCntjzdOmvcku1Dw7/VHbanQD0LOIGek2U6zzbF9qP5AkIsPP4b+X6oMj9m2fl1WsrlS/d29yQuWsX5aWbT0QGT8qtgCf/AOgdxA30mijXebYvtFuioDifYyuRSEjhfw+cb62V+MEBygrJKiui1VKvG/rFesH0m8ztF/J5GhyW5Zm3Kt814eG5l49GOl9xLCtKca1DygpPlxVp3CDOdw3W+eas87H9XWb/MJROiRuceQLq2id/XpyT5XPDclBfa100uFtOnbsk3yzWD9AAeg1xA70mynWe7Qvtw5mnJot1th/DIwtmR9OagzNP3SWudUhZ4emyIo0bxPmuwTofntmZp+bgzFN4vRg3OPMEAAAAAAZIngAAAADAAMkTAAAAABjomXueALROHMMIcQNoLeIGgEZ1QtzomeRp/f+uON9aK/njQ7G8cc660ZGyQqGs7sLyCi/qsnj4SzhxLStKLK/wKCs8q6wI90Uj3ceOqA6DcNkeAAAAABggeQIAAAAAAyRPAAAAAGCA5AkAAAAADJA8VdiSLxfnJDV2yLopzWrGzsu7iw9k0+kDANDNtuTe0nvy6vhR68EPVjN+Uc4sbchTpw8AQLPFZx+b5Kno2QN5d+y0vDPzuTz62ummff2t3J25LMfG5uTLZ043AED32dyQM+Nn5fDNVbn/0OmmPXwit25ekZfG35N7HCkDgOaK2T42yZNlSz5++7LcVQt074nTcuOLFeuxi1bzxWWZPPGiWsCfyztvL3MGCgC60pbMTV+RWyppOjh2UpY//cR6tLnVfHpJro/tVknUqhyeXuEMFAA0Tfz2sUmelM3FGzKrF+r0+7Jw9bC88oLzB+2FA/Lrq9fl9rReuO/LzOKW8wcAQLd4uvQnOa8Tp3Nz8vcLh+S1PucPWt8+OXvhqnxzTidQH8ipJeI8ADRDHPexSZ5URry28q1qvy4nx3fYnTz0jf9Gjqj2o5V/cvYJALrKlmRXn6j2sFw47h/ndx7/lZxS7fur/+LsEwCEFs99bJIn+Y8809dfnjgor9gdfByQX5xQra+/l+/tDgCArvBf+be+x2ns5/Ka3cHHPvnlmGo93JS83QEAsG3x3McmeQIAAAAAAyRPAAAAAGCA5El+JC/sV62P7suXdgcfD+QfH6nW/uflebsDAKAr/FB+Mqhad76Se3YHHxvytzuqNdgn/XYHAMC2xXMfm+RJdsjQoRdV+3P5IOApH5uLf5G7qr330M/E/ZAmAECn2yEjw7tVe1WuBTxJ7+nSX+WWah8c/qnstDsBALYtnvvYJE9K3/g7Mqky40czpyV1cbnyRV3PHsjHF8/LsZlvVUZ8WqYDnhYCAOhMO4//Vq4Pity/eVZevbZS+TLczQ2Zu3ZRXrr5RGTwpNwKeCIfAMBcHPexEwXF+RxbiUTCehlXMP32Y/slXp72vy43/ni28vn0HpI/PiSF/z1wvrVW4gcHJKrFp+uQssKhrO7C8gov6rL0C2+DbciZcftFuZ4Gh2V55q3Kd0B5eO7loyyvkKIsK0osr/AoKzyrrAj3RSPdx46oDoNw5qnkgPz+zvtyY/p12auvzyza/6Icmb4st+/UX6gAgE62T/68OCfL54bloL4Hqmhwt5w6d0m+WayfOAEAGhWvfWzOPDUZZ57Co6zw4lpWlFhe4UVdVv0zT83BmafwoiwrSiyv8CgrPKusjjrz1ByceQIAAACALkLyBAAAAAAGSJ4AAAAAwEDP3PMEoHXiGEaIG0BrETcANKoT4kZPJE8AAAAAEBaX7QEAAACAAZInAAAAADBA8gQAAAAABkieAAAAAMAAyRMAAAAAGCB5AgAAAAADJE8AAAAAYIDkCQAAAAAMkDwBAAAAgAGSJwAAAAAwQPIEAAAAAAZIngAAAADAAMkTAAAAABggeQIAAAAAAyRPAAAAAGCA5AkAAAAADJA8AQAAAIABkicAAAAAMEDyBAAAAAAGSJ4AAAAAwADJEwAAAAAYIHkCAAAAAAMkTwAAAABggOQJAAAAAAyQPAEAAACAAZInAAAAADBA8gQAAAAABno0ecrL7FBCEkOz6lPcOPM2kXW+dwqPOs/PysTQhJSnNM7LpdmyMpHoxOUcZ8SN6BE3QstnZXZiSBI6XuhmaEgmstRUdIgb0SNuhJXPzsqQrp9S3FB1R0WVcOYJbZP/7LYsrDtf0JDsxKgsOJ+BXkLcaERWJgZGZcpdYevrsjA6oBIo5zvQA4gbDchOyMDolA4VZesLMjowJLMkUBaSJ0SkXybXClJYm1Sf/Jj0g/zskIySOaEnEDfCKB5kSaYykiuoOtJNLi0p1W3hCkfcEVfEje3Ly+wVK2pIOpOzY0YhJ5l0UnVbl6k/cNRFI3mylE/fZitOVQ7JhGGanVeZ+lDx9KY1XNb7dHY+KxMmp0IN+6so1/i0qn3J15Cet6rhPWfXaFpUHbovDdF1UNGT+xS5/XlgSh/WWJBR1b81LRX9uNQtv4Hlp+ZX/61rj7rmZ+VNVW+pTMbaAUI7NbDe+SBuqDokbrRIVu5a+0Bp+XB+pLyD2D8p83qHiJ3GNmlgvfNB3FB1SNxojfxncltVVTL9oUyOFCNEv4xMfihW/vTou8r66lUqq+xBuYJaCQpq7VCfXN9VdXg1qYzVk69cOuk5nNW4B86kCmrd8+gvWUjbE2Iz7M+z3GSqkNLzEjjRmYLa8S4kU17lbGda/OuvPBnuOq/tP2mNrHq5KCHL101FVajx1XTrGvZys5et+zOiUb1+NrDeeSBu+NdfeTLcdV7bP3EjQDdOcyxVr58NrHceiBv+9VeeDHed1/ZP3NgOZ77jMTOhkTy5v+uVX60YxW2kFCwCVxZnJ1ZvXBlnyFymYnxOx1K3VLE/pVSGx7QE92darpfisHZ/xXIzNfNrOC25tBVwkqVxKU63mnG5ApU9npSamqLqfhqvs/L8uPorTUN3y6Tc8+wsw5jMW3fwXz8bX++IG6oDcaOVrB03vdOnl5FrpzCZrKgXtJr/+tn4ekfcUB2IG21QnL+Yzl7DSJ7c3ys2LM3Z6IPWFufIgn0kw6V6Y67ZuMusnWLrR059abC/uuV6cubLFViK7DKcemh0mvWPcjpdyKgf61rVda4HqxPMTMsvDred5dctSjtCzvc4zVvXIG4QN7qHXU/JQtKax9qmZh1AixA3iBvdLeesd3Gct+3inie35B4ZcD7aBmSP2pqC5L97pP5PyrE3qq4e739DjnkMmzoy4nwqGzmiNrkqdfvLPRZ9Be/eXWbletq7q+aa9wFrhh/Jd66LWutOS/+kXNJf9VOcpqZkdGDAus53aGLW8JroYKZ1tp3l1xXyszI0uqBi/IcyyU0KnYe4QdzoWOvqX0oyOetAqdWoHSG15qm/TP1BuvXWz1ggbhA3Ol5eshNDMqCfUJVMS26+tm56FckTmmJkXv8opyXlCh7rCzqwTfADHZJ+xKr+4Vqfsn8k7MZ5VPnCqPrM40PRnYgbrdO/a6/6PynpD+eldN+30j8yLx+ma3dagW5B3IiCfjDGgIwurKu8KccDZqqQPIVk/0Cty+3Pqn6FnCeWVFu4W7tpZ61HIlWq29/AHuvo4aOaX7+cPPYo11PNU1Py8pk10XvFfYDJdJr7RyZlXj/6Ux/dzGUkbR2sWRCPwRtiWj7QLYgbZcSNFrGW9bo8zjnf0fWIG2XEjVbST0gckKn1pKQyOVnjkpcaJE9hjRyxHhm9PvWmzBbPGeezMvvmlHW2oKR4enthtOKRmqV39iSPiXUm3ri/XSrk2OWW+9NHChp4eer6lLw5m3UCWl6ys2+qjUV9TB0R6+Ss6bQ4j+McKo1LDdo/ILusc9hJ2VN5brtKwNFP0/Jjrn9yrXTJTblxHlWeyqjPa1zO122IG8SNVnPqYWF0qLyOKfpx0/p1Bz1TD3FC3CBuRMB+P1xS0rk1mXeftkaZ2hHrQT43cNbc0Oh0r3OTXPEpJJ6Ne9iM2SNBG+mvpp8GHh2qb7isLafqJkijaSneQOnRBNSxu97sG1E9lkMj5ZssP6fOuv++x/jenNq5qtezBtY7D8QNp568+guoY+JGA4o3wXs0XTcvXat6PWtgvfNA3HDqyau/gDombhgKiBl2U/2gjN7Emacm0GcGijfh2vSpTvst7hVG5mVNv9293KPqVd/MW3XmoIH+Kq771f2s/U72OF/r2ntJ1lzTnUylVRnz9lGgIqNp0W/qzkm6sifVW0ZyAdfJ9k9eKo13/XGudBSpgmldAF2GuEHcaLn+SVUPGVUPropQ9aB2BIV7v7sTcYO40UrFe6wRLKEzKOczmkpfMzoqj9KdeL2oPW0L+pIvfkGBDkLcANAo4gYQJc48haUfI62ffjYx6zqSoR/vaF8LXPNoTwAgbgBoFHED6AgkT2GVbjKckgEd1KxGP95RdUum5XccaAFQjbgBoFHEDaAjkDyFtr3rbwH0MuIGgEYRN4BOwD1PAAAAAGCAM08AAAAAYIDkCQAAAAAMkDwBAAAAgAGSJwAAAAAwQPIEAAAAAAZ6NHnKy+xQQhJD7hfNbZd+e7Ya10TW+d4qzjS3vJxGedRlflYmhiZUzRQ1s75hi2q9Qxlxo3mIG1HJZ2dlSNdj8b1Auo6p0AgRN5qHuBGZfFZmJ4ZccWNIJggcJZx5QtPlP7stC+vOF7RE8Y3yQFwQN1ogOyEDo1Oy7q7X9QUZHRiSWfaDEAPEjVZQSfrAqEy5K1YFkYXRAZVAOd97HMkTQtIv7StIIfAFfSb9wFR+dsh+ozzQtYgbrZeX2Ss6UCQlncmJfqVjoZCTTFq/YHVdpv7AXhC6DXEjCsWDs9bLl624oZpcWlKq28IVzuhpJE+W8mnebMUlDkMy0cjhueyEDJVOcXpfGpHX/ZTG71+G1V+dcdWyT+kP6fFVDe85G3nVv3taPMtRdeM+daunt6In9yly+/PAlD5asSCjqn9rWir6calbfgPLRc2v/lvsj4rkZ+VNVb+pTMYKZGinBtbPIMQN4kYr5D+T26pKk+kPZXKkuBvZLyOTH4qVPz36rrJeEZEG1s8gxA3iRktk5a6VOaXlw/mRcgLaPynzOokiKbWpjLIH5Qrqx6OgVg71yfVdVYdXk8pYPfnIFNROrBpXsqB+j6qGTRbSdgGWXDpZ9fdy4y7Ds79kqpDS0xg4Mfa0JFOputNSyHj1U92ff72UJ8Ndl7X9J62RVde3ErJ83VRUhRpfTbfYcdY1aybdnxGN6vW4gfWzBnGjXJe1/RM3Wsmpn96a6TaqXo8bWD9rEDfKdVnbP3GjCXoyJjaO5Mn9XW8kao0pbkuloBK4FjnBTDXJdHHYXCFTM2yxjFQhU9pYlVza3qhL/RXHpzbqYo+5TMX0+StPS3k+gqZFbyDliSnNb7FenGlLlsal1ExvdV0Wx6Pm0/le249h+a7+yvPj6q80Db0hk3LXjbOse6wO2st/PW58/SRuVNZlcTzEjVYr1kOPV0OE/NfjxtdP4kZlXRbHQ9xoGit50kmlXpaupFMl7O7663UkT+7vFRug5gSHwI3G6ce1Mdv8xqn+olfKTLqQdh+xKZZRDCAVh22UmiDixW9a9PbgmpaAcdn9OUdjiv3pjSadVkG4eqxadV3qweoEM9Pyi8Nta7nETCmgOd97sQ7arnpdD7N+Ejcq61IPRtxotZxzVLmX6yB61et6mPWTuFFZl3ow4kYz2fWZLCStuqhtataVHsU9T27JPTLgfLQNyB611ZlIHnuj6jrQfnnjmB74kXxXvFw2P2tdFzwwMCCjo1MytbAgrmeZ2HKPrW57d1VdVdr/hlijM7F3V801qQPWjLimRUkdGXE+lY0cUWGiqH9SLumv+ikrU1MyqqZbX+c7NDFreE10sLrlF4VYLrGg15vRBfVb8KFMcrFx5yFuEDc6Xl6yE0MyoJ80k0xLbr62DhEx4gZxo2Otq38pyeSch0WoJqcyTV0N61N/EB41wwMjIpSViYEpK1AlUylJpzOSyeQkV+jsG/9H5vVGk5aUK3isL+jANsEGFBH9KFa93qxP2T8mduM8qnxhVH3mscPxRdxAWPpGeLUDvbCu8qYcN3z3BOIGtqd/1171f1LSH85L6TkzSv/IvHyY1gumMinuVSRPTbL+OOd8KsrLZ/pRR7JXrIM6+e/UKif6zK+szc/L5OSIjKg1s9/pXjKwx8ruH9WsnTl5rEdnouYpSlXT4li4WxuOstZjVir1j0zKvH70pz76kMtI2oq+C+IxeENMywfiirjROOJGI9ROdGJAptaTah3KyRqnrmOBuNE44oYha51Yl5pVDBVInpplYdR5TKaWl+zsm+oHS31MHRH3yWK9AZcCjX505pv20aFSAOrfpUKOCo5Tb7oe0amPHDbwUtT1KXlztliOx7QUT8mraXY/BrT0/qDkMXlDBz3ncZxDpXGpQfsHZJd1DjspeyrPbVcJODphWj4s/ZNrpVPn5cY5gpjKqM9rXM7XrYgbVYgbzWS/ryUp6dyazLsPI6O7ETeqEDeaxqmvhdEhmXXXl1o++jUp1JdD7Yj1oOqbDmtvQrQ53QNvFLRvJkx6Pq7T4ybGmn6cxl128abeir+bPzrU+zGmVTdBqjJq+9GN+6EEAdMcUHelp9Ooxr650KN+GynfZLk4dRZYPbHSWzexdobq9bGB9bMGcaO67ogbTVa8Ud63qb4xHq1RvT42sH7WIG5U1x1xowUCYkds57lBnHlqlj2/kzXnhjotmUxLJjfvOgrUL5MfZiqu5VUBynrzuxpMZP2xlM6SjsxXXver+sus/U72OF/r2nupclpS1dOiqDLW9Bujq6Ynk3OfxdBv6s5JurIn1VtGcgHXzfdPXiqNV19e4HlAyKh8IOaIGyXEjeYq3iuJGCJulBA3WqB/UtWXXn9cFabXn1xBeNaMLaEzKOczup6+vn1UFvSlXKzhAIwQNwA0iriB3sWZJwAAAAAwQPIEAAAAAAZIngAAAADAAPc8AQAAAIABzjwBAAAAgAGSJwAAAAAwQPIEAAAAAAZIngAAAADAAMkTAAAAABggeQIAAAAAAyRPAAAAAGCA5AkAAAAADJA8AQAAAIABkicAAAAAMEDyBAAAAAB1ifz/J5YZ4IAcgEcAAAAASUVORK5CYII=\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":44066,"title":"Number of paths on a 3d grid","description":"This problem is inspired by \u003chttps://www.mathworks.com/matlabcentral/cody/problems/1483-number-of-paths-on-a-grid\u003e, which you might want to solve first.\r\n\r\nConsider a 3d grid formed by n vertices vertically down, m vertices horizontally right, l vertices horizontally front. Your starting point is at the top left front vertex. Your destination is the bottom right back vertex. (From one corner to the furthest corner) You are permitted at each vertex to choose to move down,  right or back, that is in the direction towards the destination. You are not to move on what constitutes a back step like moving left, up, or front. If you hit the bottom boundary, right boundary, or back boundary, take it to be given that you move along the 2d boundary.\r\n\r\nEx: in a 2x2X2 grid there are 6 ways. (down, right, back), (d,b,r), (r,d,b), (r,b,d), (b,r,d), (b,d,r)\r\n\r\n4x3x2 has 60 ways\r\n\r\n6x5x4 has 27720 ways\r\n\r\nThis problem can be solved using dynamic programming but there are other methods too.\r\n\r\n","description_html":"\u003cp\u003eThis problem is inspired by \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/1483-number-of-paths-on-a-grid\"\u003ehttps://www.mathworks.com/matlabcentral/cody/problems/1483-number-of-paths-on-a-grid\u003c/a\u003e, which you might want to solve first.\u003c/p\u003e\u003cp\u003eConsider a 3d grid formed by n vertices vertically down, m vertices horizontally right, l vertices horizontally front. Your starting point is at the top left front vertex. Your destination is the bottom right back vertex. (From one corner to the furthest corner) You are permitted at each vertex to choose to move down,  right or back, that is in the direction towards the destination. You are not to move on what constitutes a back step like moving left, up, or front. If you hit the bottom boundary, right boundary, or back boundary, take it to be given that you move along the 2d boundary.\u003c/p\u003e\u003cp\u003eEx: in a 2x2X2 grid there are 6 ways. (down, right, back), (d,b,r), (r,d,b), (r,b,d), (b,r,d), (b,d,r)\u003c/p\u003e\u003cp\u003e4x3x2 has 60 ways\u003c/p\u003e\u003cp\u003e6x5x4 has 27720 ways\u003c/p\u003e\u003cp\u003eThis problem can be solved using dynamic programming but there are other methods too.\u003c/p\u003e","function_template":"function y = count3dPath(x)\r\n  y = x;\r\nend","test_suite":"%%\r\nm = 2; n = 2 ; l = 5;\r\ny_correct = 30;\r\nassert(isequal(count3dPath(m,n,l),y_correct))\r\n \t\t\r\n%%\r\nm = 8; n = 5 ; l = 2;\r\ny_correct = 3960;\r\nassert(isequal(count3dPath(m,n,l),y_correct))\r\n\t\r\n%%\r\nm = 5; n = 5 ; l = 10;\r\ny_correct = 1701700;\r\nassert(isequal(count3dPath(m,n,l),y_correct))\r\n\t\r\n%%\r\nm = 8; n = 4 ; l=2;\r\ny_correct = 1320;\r\nassert(isequal(count3dPath(m,n,l),y_correct))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":1,"created_by":115733,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":53,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2017-02-14T00:01:08.000Z","updated_at":"2026-03-19T08:12:10.000Z","published_at":"2017-02-14T00:01:08.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem is inspired by\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/1483-number-of-paths-on-a-grid\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://www.mathworks.com/matlabcentral/cody/problems/1483-number-of-paths-on-a-grid\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt;, which you might want to solve first.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eConsider a 3d grid formed by n vertices vertically down, m vertices horizontally right, l vertices horizontally front. Your starting point is at the top left front vertex. Your destination is the bottom right back vertex. (From one corner to the furthest corner) You are permitted at each vertex to choose to move down, right or back, that is in the direction towards the destination. You are not to move on what constitutes a back step like moving left, up, or front. If you hit the bottom boundary, right boundary, or back boundary, take it to be given that you move along the 2d boundary.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eEx: in a 2x2X2 grid there are 6 ways. (down, right, back), (d,b,r), (r,d,b), (r,b,d), (b,r,d), (b,d,r)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e4x3x2 has 60 ways\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e6x5x4 has 27720 ways\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem can be solved using dynamic programming but there are other methods too.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":44072,"title":"Number of paths on a n-dimensional grid","description":"This problem is inspired by \u003chttps://www.mathworks.com/matlabcentral/cody/problems/1483-number-of-paths-on-a-grid\u003e and  \u003chttps://www.mathworks.com/matlabcentral/cody/problems/44066-number-of-paths-on-a-3d-grid\u003e, which you might want to solve first.\r\n \r\nConsider n-dimensional grid, and you are moving from one corner to the farthest corner in a minimal number of moves. Each move corresponds to moving to a neighbouring hypercube (among possible up to 2*n neighbours). How many ways are there?\r\n\r\nInput format is a row array of size \"d\" (for d dimension) with number of grid points on each direction.\r\n\r\nOptional: can you solve it without loops?","description_html":"\u003cp\u003eThis problem is inspired by \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/1483-number-of-paths-on-a-grid\"\u003ehttps://www.mathworks.com/matlabcentral/cody/problems/1483-number-of-paths-on-a-grid\u003c/a\u003e and  \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/44066-number-of-paths-on-a-3d-grid\"\u003ehttps://www.mathworks.com/matlabcentral/cody/problems/44066-number-of-paths-on-a-3d-grid\u003c/a\u003e, which you might want to solve first.\u003c/p\u003e\u003cp\u003eConsider n-dimensional grid, and you are moving from one corner to the farthest corner in a minimal number of moves. Each move corresponds to moving to a neighbouring hypercube (among possible up to 2*n neighbours). How many ways are there?\u003c/p\u003e\u003cp\u003eInput format is a row array of size \"d\" (for d dimension) with number of grid points on each direction.\u003c/p\u003e\u003cp\u003eOptional: can you solve it without loops?\u003c/p\u003e","function_template":"function y = countNdPath(NdRowVector)\r\n  y = sum(NdRowVector);\r\nend","test_suite":"%%\r\nNdRowVector = [3,3,3,3,3];\r\ny_correct = 113400;\r\nassert(isequal(countNdPath(NdRowVector),y_correct))\r\n\r\n%%\r\nNdRowVector = [1,3,3,3,3,1,1,1,3,3];\r\ny_correct = 7484400;\r\nassert(isequal(countNdPath(NdRowVector),y_correct))\r\n\r\n%%\r\nNdRowVector = [2,2,2,2,2,2,2,1,1,2,2,2,2];\r\ny_correct = 39916800;\r\nassert(isequal(countNdPath(NdRowVector),y_correct))","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":115733,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":50,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2017-02-14T01:28:35.000Z","updated_at":"2025-12-16T03:16:34.000Z","published_at":"2017-02-14T01:28:35.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem is inspired by\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/1483-number-of-paths-on-a-grid\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://www.mathworks.com/matlabcentral/cody/problems/1483-number-of-paths-on-a-grid\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt; and \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/44066-number-of-paths-on-a-3d-grid\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://www.mathworks.com/matlabcentral/cody/problems/44066-number-of-paths-on-a-3d-grid\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt;, which you might want to solve first.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eConsider n-dimensional grid, and you are moving from one corner to the farthest corner in a minimal number of moves. Each move corresponds to moving to a neighbouring hypercube (among possible up to 2*n neighbours). How many ways are there?\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eInput format is a row array of size \\\"d\\\" (for d dimension) with number of grid points on each direction.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eOptional: can you solve it without loops?\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":1459,"title":"Triangular Tiling Dots in a Circle","description":"Return how many \u003chttp://en.wikipedia.org/wiki/Triangular_tiling Triangular Tiling\u003e grid points there are inside a circle of radius _r_ centred at (0,0) (including points on the edge).  \r\n\r\nAssume that a Triangular Tiling grid is a \u003chttp://en.wikipedia.org/wiki/Bravais_lattice 2D Hexagonal Bravais lattice\u003e with | _a1_ | = | _a2_ | = 1 and _\u0026phi;_ = 120\u0026deg;.\r\n\r\nNeither *string operations* nor *interpolations* are allowed!","description_html":"\u003cp\u003eReturn how many \u003ca href = \"http://en.wikipedia.org/wiki/Triangular_tiling\"\u003eTriangular Tiling\u003c/a\u003e grid points there are inside a circle of radius \u003ci\u003er\u003c/i\u003e centred at (0,0) (including points on the edge).\u003c/p\u003e\u003cp\u003eAssume that a Triangular Tiling grid is a \u003ca href = \"http://en.wikipedia.org/wiki/Bravais_lattice\"\u003e2D Hexagonal Bravais lattice\u003c/a\u003e with | \u003ci\u003ea1\u003c/i\u003e | = | \u003ci\u003ea2\u003c/i\u003e | = 1 and \u003ci\u003e\u0026phi;\u003c/i\u003e = 120\u0026deg;.\u003c/p\u003e\u003cp\u003eNeither \u003cb\u003estring operations\u003c/b\u003e nor \u003cb\u003einterpolations\u003c/b\u003e are allowed!\u003c/p\u003e","function_template":"function n = hexagonal_dots_in_circle(r)\r\n  n = r;\r\nend","test_suite":"%%\r\nuser_solution = fileread('hexagonal_dots_in_circle.m');\r\nassert(isempty(strfind(user_solution,'regexp')));\r\nassert(isempty(strfind(user_solution,'2str')));\r\nassert(isempty(strfind(user_solution,'str2')));\r\nassert(isempty(strfind(user_solution,'interp')));\r\nassert(isempty(strfind(user_solution,'printf')));\r\nassert(isempty(strfind(user_solution,'assert')));\r\n\r\n%%\r\nr = 0;\r\nn_correct = 1;\r\nassert(isequal(hexagonal_dots_in_circle(r),n_correct));\r\n\r\n%%\r\nr = 0.5;\r\nn_correct = 1;\r\nassert(isequal(hexagonal_dots_in_circle(r),n_correct));\r\n\r\n%%\r\nr = 1;\r\nn_correct = 7;\r\nassert(isequal(hexagonal_dots_in_circle(r),n_correct));\r\n\r\n%%\r\nr = 1.5;\r\nn_correct = 7;\r\nassert(isequal(hexagonal_dots_in_circle(r),n_correct));\r\n\r\n%%\r\nr = 2;\r\nn_correct = 19;\r\nassert(isequal(hexagonal_dots_in_circle(r),n_correct));\r\n\r\n%%\r\nr = 2.5;\r\nn_correct = 19;\r\nassert(isequal(hexagonal_dots_in_circle(r),n_correct));\r\n\r\n%%\r\nr = 3;\r\nn_correct = 37;\r\nassert(isequal(hexagonal_dots_in_circle(r),n_correct));\r\n\r\n%%\r\nr = 5;\r\nn_correct = 91;\r\nassert(isequal(hexagonal_dots_in_circle(r),n_correct));\r\n\r\n%%\r\nr = 7.5;\r\nn_correct = 199;\r\nassert(isequal(hexagonal_dots_in_circle(r),n_correct));\r\n\r\n%%\r\nr = 10;\r\nn_correct = 367;\r\nassert(isequal(hexagonal_dots_in_circle(r),n_correct));\r\n\r\n%%\r\nr = 15;\r\nn_correct = 823;\r\nassert(isequal(hexagonal_dots_in_circle(r),n_correct));\r\n\r\n%%\r\nr = 20;\r\nn_correct = 1459;\r\nassert(isequal(hexagonal_dots_in_circle(r),n_correct));\r\n\r\n%%\r\nr = 25;\r\nn_correct = 2263;\r\nassert(isequal(hexagonal_dots_in_circle(r),n_correct));\r\n\r\n%%\r\nr = 50;\r\nn_correct = 9061;\r\nassert(isequal(hexagonal_dots_in_circle(r),n_correct));\r\n\r\n%%\r\nr = 100;\r\nn_correct = 36295;\r\nassert(isequal(hexagonal_dots_in_circle(r),n_correct));\r\n ","published":true,"deleted":false,"likes_count":0,"comments_count":1,"created_by":10352,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":32,"test_suite_updated_at":"2013-05-05T10:49:55.000Z","rescore_all_solutions":false,"group_id":20,"created_at":"2013-04-25T18:57:26.000Z","updated_at":"2026-02-16T10:52:57.000Z","published_at":"2013-04-25T18:57:26.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eReturn how many\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Triangular_tiling\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eTriangular Tiling\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e grid points there are inside a circle of radius\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003er\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e centred at (0,0) (including points on the edge).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAssume that a Triangular Tiling grid is a\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Bravais_lattice\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e2D Hexagonal Bravais lattice\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e with |\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ea1\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e | = |\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ea2\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e | = 1 and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eφ\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e = 120°.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNeither\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003estring operations\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e nor\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003einterpolations\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e are allowed!\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":1490,"title":"Shifted Hexagonal Tiling Dots in a Circle","description":"Return how many \u003chttp://en.wikipedia.org/wiki/Hexagonal_grid Hexagonal Tiling\u003e grid points there are inside a circle of radius _r_ centred at (0,0) (including points on the edge).  Assume that a Hexagonal Tiling grid is a \u003chttp://en.wikipedia.org/wiki/Regular_tiling 2D Regular Hexagonal Tessellation\u003e with equal edges of size _e_=1.  \r\n\r\nFor _shifted_ symmetry purposes, assume that (0,0) is a _grid point_.\r\n\r\nNeither *string operations* nor *interpolations* are allowed!","description_html":"\u003cp\u003eReturn how many \u003ca href = \"http://en.wikipedia.org/wiki/Hexagonal_grid\"\u003eHexagonal Tiling\u003c/a\u003e grid points there are inside a circle of radius \u003ci\u003er\u003c/i\u003e centred at (0,0) (including points on the edge).  Assume that a Hexagonal Tiling grid is a \u003ca href = \"http://en.wikipedia.org/wiki/Regular_tiling\"\u003e2D Regular Hexagonal Tessellation\u003c/a\u003e with equal edges of size \u003ci\u003ee\u003c/i\u003e=1.\u003c/p\u003e\u003cp\u003eFor \u003ci\u003eshifted\u003c/i\u003e symmetry purposes, assume that (0,0) is a \u003ci\u003egrid point\u003c/i\u003e.\u003c/p\u003e\u003cp\u003eNeither \u003cb\u003estring operations\u003c/b\u003e nor \u003cb\u003einterpolations\u003c/b\u003e are allowed!\u003c/p\u003e","function_template":"function n = shifted_hexagonal_tiling_dots_in_circle(r)\r\n  n = r;\r\nend","test_suite":"%%\r\nuser_solution = fileread('shifted_hexagonal_tiling_dots_in_circle.m');\r\nassert(isempty(strfind(user_solution,'regexp')));\r\nassert(isempty(strfind(user_solution,'2str')));\r\nassert(isempty(strfind(user_solution,'str2')));\r\nassert(isempty(strfind(user_solution,'interp')));\r\nassert(isempty(strfind(user_solution,'printf')));\r\nassert(isempty(strfind(user_solution,'assert')));\r\n\r\n%%\r\nr = 0;\r\nN_correct = 1;\r\nassert(isequal(shifted_hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 0.5;\r\nN_correct = 1;\r\nassert(isequal(shifted_hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 1;\r\nN_correct = 4;\r\nassert(isequal(shifted_hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 1.5;\r\nN_correct = 4;\r\nassert(isequal(shifted_hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 2;\r\nN_correct = 13;\r\nassert(isequal(shifted_hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 2.5;\r\nN_correct = 13;\r\nassert(isequal(shifted_hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 3;\r\nN_correct = 25;\r\nassert(isequal(shifted_hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 5;\r\nN_correct = 61;\r\nassert(isequal(shifted_hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 7.5;\r\nN_correct = 130;\r\nassert(isequal(shifted_hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 10;\r\nN_correct = 244;\r\nassert(isequal(shifted_hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 15;\r\nN_correct = 547;\r\nassert(isequal(shifted_hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 20;\r\nN_correct = 979;\r\nassert(isequal(shifted_hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 25;\r\nN_correct = 1510;\r\nassert(isequal(shifted_hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 50;\r\nN_correct = 6049;\r\nassert(isequal(shifted_hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 100;\r\nN_correct = 24202;\r\nassert(isequal(shifted_hexagonal_tiling_dots_in_circle(r),N_correct));\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":10352,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":25,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":20,"created_at":"2013-05-05T11:12:35.000Z","updated_at":"2026-02-16T10:46:10.000Z","published_at":"2013-05-05T11:13:56.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eReturn how many\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Hexagonal_grid\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eHexagonal Tiling\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e grid points there are inside a circle of radius\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003er\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e centred at (0,0) (including points on the edge). Assume that a Hexagonal Tiling grid is a\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Regular_tiling\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e2D Regular Hexagonal Tessellation\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e with equal edges of size\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ee\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e=1.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eshifted\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e symmetry purposes, assume that (0,0) is a\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003egrid point\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNeither\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003estring operations\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e nor\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003einterpolations\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e are allowed!\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":1489,"title":"Hexagonal Tiling Dots in a Circle","description":"Return how many \u003chttp://en.wikipedia.org/wiki/Hexagonal_grid Hexagonal Tiling\u003e grid points there are inside a circle of radius _r_ centred at (0,0) (including points on the edge).  Assume that a Hexagonal Tiling grid is a \u003chttp://en.wikipedia.org/wiki/Regular_tiling 2D Regular Hexagonal Tessellation\u003e with equal edges of size _e_=1.  \r\n\r\nFor symmetry purposes, assume that (0,0) point is a _vacancy_; i.e., there _are_ points at (\u0026plusmn;1,0), (\u0026plusmn;1/2,\u0026plusmn;\u0026radic;3/2), etcetera.\r\n\r\nNeither *string operations* nor *interpolations* are allowed!","description_html":"\u003cp\u003eReturn how many \u003ca href = \"http://en.wikipedia.org/wiki/Hexagonal_grid\"\u003eHexagonal Tiling\u003c/a\u003e grid points there are inside a circle of radius \u003ci\u003er\u003c/i\u003e centred at (0,0) (including points on the edge).  Assume that a Hexagonal Tiling grid is a \u003ca href = \"http://en.wikipedia.org/wiki/Regular_tiling\"\u003e2D Regular Hexagonal Tessellation\u003c/a\u003e with equal edges of size \u003ci\u003ee\u003c/i\u003e=1.\u003c/p\u003e\u003cp\u003eFor symmetry purposes, assume that (0,0) point is a \u003ci\u003evacancy\u003c/i\u003e; i.e., there \u003ci\u003eare\u003c/i\u003e points at (\u0026plusmn;1,0), (\u0026plusmn;1/2,\u0026plusmn;\u0026radic;3/2), etcetera.\u003c/p\u003e\u003cp\u003eNeither \u003cb\u003estring operations\u003c/b\u003e nor \u003cb\u003einterpolations\u003c/b\u003e are allowed!\u003c/p\u003e","function_template":"function n = hexagonal_tiling_dots_in_circle(r)\r\n  n = r;\r\nend","test_suite":"%%\r\nuser_solution = fileread('hexagonal_tiling_dots_in_circle.m');\r\nassert(isempty(strfind(user_solution,'regexp')));\r\nassert(isempty(strfind(user_solution,'2str')));\r\nassert(isempty(strfind(user_solution,'str2')));\r\nassert(isempty(strfind(user_solution,'interp')));\r\nassert(isempty(strfind(user_solution,'printf')));\r\nassert(isempty(strfind(user_solution,'assert')));\r\n\r\n%%\r\nr = 0;\r\nN_correct = 0;\r\nassert(isequal(hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 0.5;\r\nN_correct = 0;\r\nassert(isequal(hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 1;\r\nN_correct = 6;\r\nassert(isequal(hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 1.5;\r\nN_correct = 6;\r\nassert(isequal(hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 2;\r\nN_correct = 12;\r\nassert(isequal(hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 2.5;\r\nN_correct = 12;\r\nassert(isequal(hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 3;\r\nN_correct = 24;\r\nassert(isequal(hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 5;\r\nN_correct = 60;\r\nassert(isequal(hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 7.5;\r\nN_correct = 138;\r\nassert(isequal(hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 10;\r\nN_correct = 246;\r\nassert(isequal(hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 15;\r\nN_correct = 552;\r\nassert(isequal(hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 20;\r\nN_correct = 960;\r\nassert(isequal(hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 25;\r\nN_correct = 1506;\r\nassert(isequal(hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 50;\r\nN_correct = 6024;\r\nassert(isequal(hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 100;\r\nN_correct = 24186;\r\nassert(isequal(hexagonal_tiling_dots_in_circle(r),N_correct));\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":1,"created_by":10352,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":29,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":20,"created_at":"2013-05-05T10:39:46.000Z","updated_at":"2026-03-25T00:01:03.000Z","published_at":"2013-05-05T10:54:39.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eReturn how many\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Hexagonal_grid\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eHexagonal Tiling\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e grid points there are inside a circle of radius\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003er\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e centred at (0,0) (including points on the edge). Assume that a Hexagonal Tiling grid is a\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Regular_tiling\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e2D Regular Hexagonal Tessellation\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e with equal edges of size\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ee\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e=1.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor symmetry purposes, assume that (0,0) point is a\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003evacancy\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e; i.e., there\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eare\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e points at (±1,0), (±1/2,±√3/2), etcetera.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNeither\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003estring operations\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e nor\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003einterpolations\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e are allowed!\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":1493,"title":"Dots in a Diamond","description":"Return how many \u003chttp://en.wikipedia.org/wiki/Diamond_cubic Diamond Cubic\u003e lattice grid points there are inside a 3D sphere of radius _r_ centred at (0,0,0) (including points on the edge).  \r\n\r\nSet the distance between two adjacent lattice grid points to be _e_ =1. In addition, assume that (0,0,0) is a grid point.\r\n\r\nNeither *string operations* nor *interpolations* are allowed!","description_html":"\u003cp\u003eReturn how many \u003ca href = \"http://en.wikipedia.org/wiki/Diamond_cubic\"\u003eDiamond Cubic\u003c/a\u003e lattice grid points there are inside a 3D sphere of radius \u003ci\u003er\u003c/i\u003e centred at (0,0,0) (including points on the edge).\u003c/p\u003e\u003cp\u003eSet the distance between two adjacent lattice grid points to be \u003ci\u003ee\u003c/i\u003e =1. In addition, assume that (0,0,0) is a grid point.\u003c/p\u003e\u003cp\u003eNeither \u003cb\u003estring operations\u003c/b\u003e nor \u003cb\u003einterpolations\u003c/b\u003e are allowed!\u003c/p\u003e","function_template":"function n = dots_in_diamond(r)\r\n  n = r;\r\nend","test_suite":"%%\r\nuser_solution = fileread('dots_in_diamond.m');\r\nassert(isempty(strfind(user_solution,'regexp')));\r\nassert(isempty(strfind(user_solution,'2str')));\r\nassert(isempty(strfind(user_solution,'str2')));\r\nassert(isempty(strfind(user_solution,'interp')));\r\nassert(isempty(strfind(user_solution,'printf')));\r\nassert(isempty(strfind(user_solution,'assert')));\r\n\r\n%%\r\nr = 0;\r\nN_correct = 1;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 0.5;\r\nN_correct = 1;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 1;\r\nN_correct = 5;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 1.5;\r\nN_correct = 5;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 1.74;\r\nN_correct = 17;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 2;\r\nN_correct = 29;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 2.5;\r\nN_correct = 35;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 3;\r\nN_correct = 87;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 4;\r\nN_correct = 167;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 5;\r\nN_correct = 357;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 6;\r\nN_correct = 633;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 7;\r\nN_correct = 943;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 8;\r\nN_correct = 1371;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 9;\r\nN_correct = 1963;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 10;\r\nN_correct = 2809;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 12.5;\r\nN_correct = 5359;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 15;\r\nN_correct = 9249;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 17.5;\r\nN_correct = 14451;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 20;\r\nN_correct = 21777;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 22.5;\r\nN_correct = 31075;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 25;\r\nN_correct = 42509;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":10352,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":25,"test_suite_updated_at":"2013-05-10T08:33:38.000Z","rescore_all_solutions":false,"group_id":20,"created_at":"2013-05-08T09:16:44.000Z","updated_at":"2026-02-16T10:39:28.000Z","published_at":"2013-05-08T09:58:42.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eReturn how many\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Diamond_cubic\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eDiamond Cubic\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e lattice grid points there are inside a 3D sphere of radius\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003er\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e centred at (0,0,0) (including points on the edge).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSet the distance between two adjacent lattice grid points to be\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ee\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e =1. In addition, assume that (0,0,0) is a grid point.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNeither\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003estring operations\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e nor\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003einterpolations\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e are allowed!\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":2617,"title":"Yet Another Path Finder","description":"Assume there is a rectangular grid of points. These points are indicated by linear indices in a MATLAB-fashion. Some of the grid points are connected by vertical or horizontal lines. Your task is to find a path through the points which are not connected or touched by any line starting from the top left to the bottom right corner. One additional difficulty is that you can not move diagonally. That means the valid paths should only contain horizontal and vertical moves. There exists only one unique path. You cannot go through a particular path more than once.\r\n\r\nA matrix M of size N-by-2 will be given containing the grid information. Each row of M indicates two grid points which are connected by a line. Return a vector containing the linear indices of points in the grid that forms a valid path. The second (r) and third (c) input indicates the row and column size of the grid.\r\n\r\nExample:\r\n\r\n  M =\r\n   \r\n  [2 3\r\n   3 6\r\n   7 10\r\n   10 11]\r\n  r = 3\r\n  c = 4\r\n\r\nGrid points 2-3, 3-6, 7-10 and 10-11 are connected by lines. Thus the only path though which you can navigate is that formed by grid points 1,4,5,8,9 and 12. Thus return [1 4 5 8 9 12]\r\n\r\n\r\n","description_html":"\u003cp\u003eAssume there is a rectangular grid of points. These points are indicated by linear indices in a MATLAB-fashion. Some of the grid points are connected by vertical or horizontal lines. Your task is to find a path through the points which are not connected or touched by any line starting from the top left to the bottom right corner. One additional difficulty is that you can not move diagonally. That means the valid paths should only contain horizontal and vertical moves. There exists only one unique path. You cannot go through a particular path more than once.\u003c/p\u003e\u003cp\u003eA matrix M of size N-by-2 will be given containing the grid information. Each row of M indicates two grid points which are connected by a line. Return a vector containing the linear indices of points in the grid that forms a valid path. The second (r) and third (c) input indicates the row and column size of the grid.\u003c/p\u003e\u003cp\u003eExample:\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003eM =\r\n\u003c/pre\u003e\u003cpre class=\"language-matlab\"\u003e[2 3\r\n 3 6\r\n 7 10\r\n 10 11]\r\nr = 3\r\nc = 4\r\n\u003c/pre\u003e\u003cp\u003eGrid points 2-3, 3-6, 7-10 and 10-11 are connected by lines. Thus the only path though which you can navigate is that formed by grid points 1,4,5,8,9 and 12. Thus return [1 4 5 8 9 12]\u003c/p\u003e","function_template":"function y = pathFinder(x)\r\n\r\nend","test_suite":"%%\r\nM = [2 3\r\n     3 6\r\n     7 10\r\n     10 11];\r\nr = 3;\r\nc = 4;\r\ny_correct = [1 4 5 8 9 12];\r\nassert(isequal(pathFinder(M,r,c),y_correct))\r\n\r\n\r\n\r\n%%\r\nM = [4 5];\r\nr = 3;\r\nc = 3;\r\ny_correct = [1 2 3 6 9];\r\nassert(isequal(pathFinder(M,r,c),y_correct))\r\n\r\n\r\n%%\r\nM = [2 5];\r\nr = 3;\r\nc = 3;\r\ny_correct = [1 4 7 8 9];\r\nassert(isequal(pathFinder(M,r,c),y_correct))\r\n\r\n\r\n%%\r\nM = [2 3\r\n     5 10\r\n     12 13\r\n     13 18\r\n     18 19];\r\nr = 5;\r\nc = 4;\r\ny_correct = [1 6 7 8 9 14 15 20];\r\nassert(isequal(pathFinder(M,r,c),y_correct))\r\n\r\n\r\n%%\r\nM = [ ];\r\nr = 1;\r\nc = 1000;\r\ny_correct = 1:1000;\r\nassert(isequal(pathFinder(M,r,c),y_correct))\r\n\r\n%%\r\nM = [7 8\r\n     9 10\r\n     10 11];\r\nr = 6;\r\nc = 2;\r\ny_correct = [1:6 12];\r\nassert(isequal(pathFinder(M,r,c),y_correct))\r\n\r\n%%\r\nM = [2 3\r\n     4 5\r\n     5 10\r\n     10 15\r\n     15 14\r\n     13 14\r\n     11 16\r\n     16 21\r\n     23 24];\r\nr = 5;\r\nc = 5;\r\ny_correct = [1 6 7 12 17 18 19 20 25];\r\nassert(isequal(pathFinder(M,r,c),y_correct))\r\n\r\n\r\n\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":3,"created_by":17203,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":32,"test_suite_updated_at":"2014-10-06T07:21:26.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2014-10-05T05:18:09.000Z","updated_at":"2025-11-24T15:30:37.000Z","published_at":"2014-10-05T05:18:09.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAssume there is a rectangular grid of points. These points are indicated by linear indices in a MATLAB-fashion. Some of the grid points are connected by vertical or horizontal lines. Your task is to find a path through the points which are not connected or touched by any line starting from the top left to the bottom right corner. One additional difficulty is that you can not move diagonally. That means the valid paths should only contain horizontal and vertical moves. There exists only one unique path. You cannot go through a particular path more than once.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA matrix M of size N-by-2 will be given containing the grid information. Each row of M indicates two grid points which are connected by a line. Return a vector containing the linear indices of points in the grid that forms a valid path. The second (r) and third (c) input indicates the row and column size of the grid.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eExample:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[M =\\n\\n[2 3\\n 3 6\\n 7 10\\n 10 11]\\nr = 3\\nc = 4]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGrid points 2-3, 3-6, 7-10 and 10-11 are connected by lines. Thus the only path though which you can navigate is that formed by grid points 1,4,5,8,9 and 12. Thus return [1 4 5 8 9 12]\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"}],"problem_search":{"errors":[],"problems":[{"id":1462,"title":"Dots in a Sphere","description":"Return how many integer grid points there are inside a 3D sphere of radius _r_ centred at (0,0,0) (including points on the edge).\r\n\r\nNeither *string operations* nor *interpolations* are allowed!","description_html":"\u003cp\u003eReturn how many integer grid points there are inside a 3D sphere of radius \u003ci\u003er\u003c/i\u003e centred at (0,0,0) (including points on the edge).\u003c/p\u003e\u003cp\u003eNeither \u003cb\u003estring operations\u003c/b\u003e nor \u003cb\u003einterpolations\u003c/b\u003e are allowed!\u003c/p\u003e","function_template":"function n = dots_in_sphere(r)\r\n   n = r;\r\nend","test_suite":"%%\r\nuser_solution = fileread('dots_in_sphere.m');\r\nassert(isempty(strfind(user_solution,'regexp')));\r\nassert(isempty(strfind(user_solution,'2str')));\r\nassert(isempty(strfind(user_solution,'str2')));\r\nassert(isempty(strfind(user_solution,'interp')));\r\nassert(isempty(strfind(user_solution,'printf')));\r\nassert(isempty(strfind(user_solution,'assert')));\r\n\r\n%%\r\nr = 0;\r\nn_correct = 1;\r\nassert(isequal(dots_in_sphere(r),n_correct));\r\n\r\n%%\r\nr = 0.5;\r\nn_correct = 1;\r\nassert(isequal(dots_in_sphere(r),n_correct));\r\n\r\n%%\r\nr = 1;\r\nn_correct = 7;\r\nassert(isequal(dots_in_sphere(r),n_correct));\r\n\r\n%%\r\nr = 1.5;\r\nn_correct = 19;\r\nassert(isequal(dots_in_sphere(r),n_correct));\r\n\r\n%%\r\nr = 2;\r\nn_correct = 33;\r\nassert(isequal(dots_in_sphere(r),n_correct));\r\n\r\n%%\r\nr = 2.5;\r\nn_correct = 81;\r\nassert(isequal(dots_in_sphere(r),n_correct));\r\n\r\n%%\r\nr = 3;\r\nn_correct = 123;\r\nassert(isequal(dots_in_sphere(r),n_correct));\r\n\r\n%%\r\nr = 5;\r\nn_correct = 515;\r\nassert(isequal(dots_in_sphere(r),n_correct));\r\n\r\n%%\r\nr = 7.5;\r\nn_correct = 1791;\r\nassert(isequal(dots_in_sphere(r),n_correct));\r\n\r\n%%\r\nr = 10;\r\nn_correct = 4169;\r\nassert(isequal(dots_in_sphere(r),n_correct));\r\n\r\n%%\r\nr = 15;\r\nn_correct = 14147;\r\nassert(isequal(dots_in_sphere(r),n_correct));\r\n\r\n%%\r\nr = 20;\r\nn_correct = 33401;\r\nassert(isequal(dots_in_sphere(r),n_correct));\r\n\r\n%%\r\nr = 25;\r\nn_correct = 65267;\r\nassert(isequal(dots_in_sphere(r),n_correct));\r\n\r\n%%\r\nr = 50;\r\nn_correct = 523305;\r\nassert(isequal(dots_in_sphere(r),n_correct));\r\n\r\n%%\r\nr = 100;\r\nn_correct = 4187857;\r\nassert(isequal(dots_in_sphere(r),n_correct));\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":10352,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":65,"test_suite_updated_at":"2013-04-28T07:09:00.000Z","rescore_all_solutions":false,"group_id":20,"created_at":"2013-04-26T06:32:56.000Z","updated_at":"2026-02-16T10:50:59.000Z","published_at":"2013-04-26T06:41:52.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eReturn how many integer grid points there are inside a 3D sphere of radius\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003er\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e centred at (0,0,0) (including points on the edge).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNeither\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003estring operations\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e nor\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003einterpolations\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e are allowed!\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":1444,"title":"Dots in a Circle","description":"Return how many integer grid points there are inside a circle of radius _r_ centred at (0,0) (including points on the edge).\r\n\r\nNeither *string operations* nor *interpolations* are allowed!\r\n","description_html":"\u003cp\u003eReturn how many integer grid points there are inside a circle of radius \u003ci\u003er\u003c/i\u003e centred at (0,0) (including points on the edge).\u003c/p\u003e\u003cp\u003eNeither \u003cb\u003estring operations\u003c/b\u003e nor \u003cb\u003einterpolations\u003c/b\u003e are allowed!\u003c/p\u003e","function_template":"function n = dots_in_circle(r)\r\n  n = r;\r\nend","test_suite":"%%\r\nuser_solution = fileread('dots_in_circle.m');\r\nassert(isempty(strfind(user_solution,'regexp')));\r\nassert(isempty(strfind(user_solution,'2str')));\r\nassert(isempty(strfind(user_solution,'str2')));\r\nassert(isempty(strfind(user_solution,'interp')));\r\nassert(isempty(strfind(user_solution,'printf')));\r\nassert(isempty(strfind(user_solution,'assert')));\r\n\r\n%%\r\nr = 0;\r\nn_correct = 1;\r\nassert(isequal(dots_in_circle(r),n_correct))\r\n\r\n%%\r\nr = 1;\r\nn_correct = 5;\r\nassert(isequal(dots_in_circle(r),n_correct))\r\n\r\n%%\r\nr = 2;\r\nn_correct = 13;\r\nassert(isequal(dots_in_circle(r),n_correct))\r\n\r\n%%\r\nr = 3;\r\nn_correct = 29;\r\nassert(isequal(dots_in_circle(r),n_correct))\r\n\r\n%%\r\nr = 4;\r\nn_correct = 49;\r\nassert(isequal(dots_in_circle(r),n_correct))\r\n\r\n%%\r\nr = 5;\r\nn_correct = 81;\r\nassert(isequal(dots_in_circle(r),n_correct))\r\n\r\n%%\r\nr = 7.5;\r\nn_correct = 177;\r\nassert(isequal(dots_in_circle(r),n_correct))\r\n\r\n%%\r\nr = 10;\r\nn_correct = 317;\r\nassert(isequal(dots_in_circle(r),n_correct))\r\n\r\n%%\r\nr = 20;\r\nn_correct = 1257;\r\nassert(isequal(dots_in_circle(r),n_correct))\r\n\r\n%%\r\nr = 30;\r\nn_correct = 2821;\r\nassert(isequal(dots_in_circle(r),n_correct))\r\n\r\n%%\r\nr = 40;\r\nn_correct = 5025;\r\nassert(isequal(dots_in_circle(r),n_correct))\r\n\r\n%%\r\nr = 50;\r\nn_correct = 7845;\r\nassert(isequal(dots_in_circle(r),n_correct))\r\n\r\n%%\r\nr = 75;\r\nn_correct = 17665;\r\nassert(isequal(dots_in_circle(r),n_correct))\r\n\r\n%%\r\nr = 100;\r\nn_correct = 31417;\r\nassert(isequal(dots_in_circle(r),n_correct))\r\n","published":true,"deleted":false,"likes_count":5,"comments_count":5,"created_by":10352,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":100,"test_suite_updated_at":"2013-04-28T07:07:28.000Z","rescore_all_solutions":false,"group_id":20,"created_at":"2013-04-22T12:50:26.000Z","updated_at":"2026-02-16T10:59:41.000Z","published_at":"2013-04-22T12:50:26.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eReturn how many integer grid points there are inside a circle of radius\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003er\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e centred at (0,0) (including points on the edge).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNeither\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003estring operations\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e nor\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003einterpolations\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e are allowed!\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":2029,"title":"Convert vector datasets to plot with imagesc instead of scatter","description":"For large datasets this allows much faster plotting.\r\n\r\nAn irregular 2D spatial sampling is provided in x and y vectors with a data point to plot in vector d. A bin size is also provded in vector b=[dx,dy]\r\n\r\nReturn a 2D matrix M with minimal empty cells with the correct spatial relationship of d and last value only retained in the event of duplicates.\r\n\r\nExample\r\n\r\n b = [6,9];\r\n\r\n x = rand(3333,1)*100*b(1)+1500;\r\n\r\n y = rand(3333,1)*100*b(2)+50000;\r\n\r\n d = sind(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2);\r\n\r\nReturn G, a 2D matrix with d binned in rows and columns\r\n\r\n\r\n","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 337.033px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 168.517px; transform-origin: 407px 168.517px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 158px 8px; transform-origin: 158px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eFor large datasets this allows much faster plotting.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 362px 8px; transform-origin: 362px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eAn irregular 2D spatial sampling is provided in x and y vectors with a data point to plot in vector d. A bin size is also provded in vector b=[dx,dy]\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 378.5px 8px; transform-origin: 378.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eReturn a 2D matrix M with minimal empty cells with the correct spatial relationship of d and last value only retained in the event of duplicates.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 26.5px 8px; transform-origin: 26.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eExample\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 143.033px; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-end-end-radius: 4px; border-end-start-radius: 4px; border-start-end-radius: 4px; border-start-start-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; margin-block-end: 10px; margin-block-start: 10px; margin-bottom: 10px; margin-inline-end: 3px; margin-inline-start: 3px; margin-left: 3px; margin-right: 3px; margin-top: 10px; perspective-origin: 404px 71.5167px; transform-origin: 404px 71.5167px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; margin-right: 3px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 44px 8.5px; transform-origin: 44px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e b = [6,9];\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 0px 8.5px; transform-origin: 0px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 128px 8.5px; transform-origin: 128px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e x = rand(3333,1)*100*b(1)+1500;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 0px 8.5px; transform-origin: 0px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 132px 8.5px; transform-origin: 132px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e y = rand(3333,1)*100*b(2)+50000;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 0px 8.5px; transform-origin: 0px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 176px 8.5px; transform-origin: 176px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e d = sind(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2);\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 10px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 10px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 10px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 178px 8px; transform-origin: 178px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eReturn G, a 2D matrix with d binned in rows and columns\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function G = binit(x,y,d,b)\r\n  G=nan(x/b(1),y/b(2));\r\n  G(r,c)=d;\r\nend","test_suite":"%%\r\nrng('default');\r\n\r\nb=[6,9];\r\nx=rand(3333,1)*100*b(1)+1500;\r\ny=rand(3333,1)*100*b(2)+50000;\r\nd=sind(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2);\r\nG=binit(x,y,d,b);\r\n\r\nchk1=sum(sum(G~=0));\r\nchk2=round((mean(abs(G(G~=0))))/10^-8)*10^-8;\r\nassert(isequal(chk1,2809))\r\nassert(isequal(chk2,1.2680e-05))\r\n\r\n%%\r\nrng('default');\r\n\r\nb=[25,12.5];\r\nx=rand(5,1)*10*b(1)-200;\r\ny=rand(5,1)*10*b(2)-50;\r\nd=round((2*x+3*y-x.*y+30)/10)*10;\r\nG=binit(x,y,d,b);\r\noide=[     0 0 0 0 0 0 60 0\r\n           0 0 0 0 0 0 0 440\r\n           0 0 0 0 0 0 0 0\r\n           0 0 0 0 0 0 0 0\r\n        2840 0 0 0 0 0 0 0\r\n           0 0 0 0 0 0 0 0\r\n           0 0 0 0 0 0 0 0\r\n           0 0 0 0 0 0 0 0\r\n           0 0 0 0 0 3120 0 -1680];\r\nassert(isequal(G,oide))\r\n%%\r\n\r\nrng('default');\r\n\r\nb=[2,4];\r\nx=rand(1000,1)*25*b(1)+1000;\r\ny=rand(1000,1)*25*b(2)+200;\r\nd=round((x-y-750)/10)*10;\r\n\r\nG=binit(x,y,d,b);\r\noide=[50    50    50    50    60    60     0    60     0     0    70    70    70    70    80    80    80     0    80    90     0     0    90   100     0\r\n    40    50    50    50    50    50    60     0     0    60     0    70    70    70    70    70    80    80    80     0    80    90     0     0    90\r\n    40     0    40    50    50    50     0    60    60     0    60    60    60    70    70     0    70    80    80    80     0    80    90     0     0\r\n     0    40    40    40    40    50     0    50    50    50    60    60    60    60    70     0    70    70    70    80    80    80    80    80    80\r\n     0    30    40    40     0    50    40     0    50     0    50    50    60    60     0    60    60    60     0    70    70    80    80     0    80\r\n     0    30    30     0    40    40    40    40    40    50    50    50    50    50    60    60    60    60    60    70    70     0    70    80    80\r\n    30    30    30    30    30    30    40    40    40    40    40     0     0    50     0     0     0    60     0    60     0    70     0    70    70\r\n    20    20    30    30    30     0    30    40     0    40    40     0    40    50    50     0    50     0    60     0    60     0    70     0    70\r\n    20    20    20    20    20     0    30    30     0    40    40     0     0    40    50    50    50    50    50    50    60     0    60    60     0\r\n    10    20    20    20    20    20    30    30     0    30     0    40    40    40    40    40    40    50    50     0    50    60    60    60    60\r\n    10    10    10    20    20    20    20    20    30    30    30     0    30    40    30    40    40     0    50    50    50     0     0    60    50\r\n     0    10    10    10    10    20     0     0    20     0    20     0    30     0     0    40    40    40    40    40     0    50    50    50     0\r\n     0     0     0    10     0    10    10    20     0    20    20    20    20    30    30    30    30     0    40    40     0    40    40    50    50\r\n     0     0     0     0     0    10    10    10    10    10    20    20     0    20    20     0    30    30    30     0    40    40    40    40     0\r\n   -10   -10     0     0     0     0     0    10    10    10    10    20    10    20    20    20    20    30    30    30    30    30     0    40    40\r\n   -10   -10   -10     0     0     0     0     0    10    10    10    10     0     0    20    20    20    20    30     0    30    30     0    40     0\r\n     0     0   -10   -10   -10   -10     0     0     0     0     0    10    10    10    10    20    20    20    20    20     0    30    30    30    30\r\n   -20   -20   -10   -10   -10   -10     0     0     0     0     0     0     0    10    10    10     0    10    20    20     0    20    20    30     0\r\n     0   -20   -20   -20   -20   -10   -10     0   -10     0     0     0     0     0     0    10    10    10    10    10     0     0    20    20    30\r\n     0   -30   -20   -20   -20     0   -10   -10   -10   -10     0   -10     0     0     0     0    10     0    10    10    10     0    20    20    20\r\n     0   -30   -30     0   -20   -20   -20   -20   -10   -10   -10   -10   -10   -10     0     0     0     0    10    10    10    10    10    10    20\r\n     0     0   -30   -30   -30   -30   -20   -20   -20     0     0   -10   -10   -10   -10     0     0     0     0     0     0    10     0    10     0\r\n   -40   -40   -40   -30   -30   -30   -30   -30   -20   -20   -20   -20     0     0   -10   -10   -10     0     0     0     0     0     0     0    10\r\n   -40   -40     0   -40   -30   -30   -30     0   -30     0   -20   -20     0   -20   -10   -10   -10   -10   -10   -10     0     0     0     0     0\r\n   -50   -40     0   -40   -40     0   -30     0   -30   -30   -30   -20   -20   -20   -20   -20   -10   -10   -10   -10     0     0     0     0     0 ];\r\nassert(isequal(G,oide))\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":5,"created_by":17471,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":5,"test_suite_updated_at":"2020-10-27T17:24:12.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2013-12-01T13:26:51.000Z","updated_at":"2020-10-27T17:24:12.000Z","published_at":"2013-12-01T16:03:40.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor large datasets this allows much faster plotting.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAn irregular 2D spatial sampling is provided in x and y vectors with a data point to plot in vector d. A bin size is also provded in vector b=[dx,dy]\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eReturn a 2D matrix M with minimal empty cells with the correct spatial relationship of d and last value only retained in the event of duplicates.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eExample\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ b = [6,9];\\n\\n x = rand(3333,1)*100*b(1)+1500;\\n\\n y = rand(3333,1)*100*b(2)+50000;\\n\\n d = sind(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2);]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eReturn G, a 2D matrix with d binned in rows and columns\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":45397,"title":"Assess the scatter of wind turbines in a field","description":"The renewable energy industry is on the rise in many countries--- and one of the key players is wind energy. \r\n\r\nIt is believed that the layout of a wind farm can influence its ability to harness energy. One assumption is that the more scattered the turbines are in the field, the higher the energy yield. Hence, we need to determine how many turbines in a wind farm are in a good position.\r\n\r\nYou are given the positions of 8 wind turbines in a field rendered as an 8-by-8 grid of cells. For this problem, a wind turbine is defined to be in a _good position_ if there are no other turbines in its immediate vicinity of adjacent cells in the grid. Otherwise, it is in a _bad position_. An illustration of these two cases is further explained in the figure below.\r\n\r\nAccess the figure here: \u003chttps://drive.google.com/open?id=19M-3AZ0aqmJs2vKL-EKoJ0z59RvURukg\u003e\r\n\r\nWrite a function that accepts a MATLAB variable, POS. You are ensured that POS is always a row vector of 8 elements, and each element satisfies 1 \u003c= POS(i) \u003c= 8. This vector represents the wind farm layout: POS(i) is the row position of the sole wind turbine in column _i_. Given the layout, output the number of wind turbines in _good position_.\r\n\r\nAs seen in the examples from the figure above, we have 4 turbines in _good position_ for POS = [8 1 6 3 6 7 3 4]; 6 turbines for POS = [3 1 5 2 8 7 4 6]; and, 2 turbines for POS = [4 5 7 7 3 2 6 8].","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.44px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: none solid rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 835.2px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 417.6px; transform-origin: 407px 417.6px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 20.8px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.4px; text-align: left; transform-origin: 384px 10.4px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eThe renewable energy industry is on the rise in many countries--- and one of the key players is wind energy.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 62.4px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 31.2px; text-align: left; transform-origin: 384px 31.2px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eIt is believed that the layout of a wind farm can influence its ability to harness energy. One assumption is that the more scattered the turbines are in the field, the higher the energy yield. Hence, we need to determine how many turbines in a wind farm are in a good position.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 62.4px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 31.2px; text-align: left; transform-origin: 384px 31.2px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eYou are given the positions of 8 wind turbines in a field rendered as an 8-by-8 grid of cells. For this problem, a wind turbine is defined to be in a\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003egood position\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e if there are no other turbines in its immediate vicinity of adjacent cells in the grid. Otherwise, it is in a\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003ebad position\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e. An illustration of these two cases is further explained in the figure below.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 20.8px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.4px; text-align: left; transform-origin: 384px 10.4px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 481px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 240.5px; text-align: left; transform-origin: 384px 240.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" width=\"593\" height=\"481\" style=\"vertical-align: middle;width: 593px;height: 481px\" src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA08AAAKvCAYAAACyDfQsAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAGhtSURBVHhe7d1PbNvmHfj/j36nnnZeMBcdEDvp0viQLN1SGQN6MVq7wRI4WLbkUsRB5ALJYDfNBiQIjMAIEqBLMhnzgNpFXPRSrxmaxoMrNfBlxWA33TerD0mzplKAb1AP3nmn702/5yEpiZJI6pEpURL1fgUMJZrkQz4kP+KHfxMFRQAAAAAAgf4/pw0AAAAACEDyBAAAAAAGSJ4AAAAAwADJEwAAAAAYIHkCAAAAAAMkTwAAAABggOQJAAAAAAzUvOcpkUg4nwAAAACg9/i9CtczefLrGQAAAADiLCgf4rI9AAAAADBA8gQAAAAABkieAAAAAMAAyRMAAAAAGCB5AgAAAAADJE8AAAAAYIDkCQAAAAAMkDwBAAAAgAGSJwAAAAAwQPIEAAAAAAZIngAAAADAAMkTAAAAABggeQIAAAAAAyRPAAAAAGCA5AkAAAAADJA8AQAAAIABkicAAAAAMEDyBAAAAAAGSJ4AAAAAwADJEwAAAAAYIHkCAAAAAAMkTwAAAABggOQJAAAAAAyQPAEAAACAAZInAAAAADBA8gQAAAAABkieAAAAAMBAByVPWZlIJCRRt5lQfWp5mR1S34dm1adO0uzpcsY3Yc+1r/ysTAwV66YZnOVRr9yOXQ4O03qp6a/D5yuMpq8rrVa9LGK8bEqIh96c8REPt4d4WIt4CKBBnHmKifxnt2Vh3fmCEtN66aX6Y11B3LGOeyMe1mJdAdCoDkqeRmS+UJBCqclJOqk6J9OSq+g+r/rsZP0yuaamc21SfeoFvTa/QBSIh92JeAgAcReTM09ZmdCnra3LWIZkYtbj5HXe3U9ChvRp+sBz3N6nwvOzQ/bwFWU4/VqXdPifUs9mZ1W5dvl+05nPTsiQM42JutOo2eMfmNKHzhZktDRt3tNf6l66/KT8vThv1qVA7oECp6m6nPJ3k/ltfLmUWXXlGrayDHs6auulmkl/rVi/yqqXufdk1hu/Sb3XmVfTMoLWlSrNmTc0phXra3n9cvdGPKyepupyyt+Jh87f6iAebr/uAESkUMWjU5vkCumkFCSZVp+8FP+eKqR0W023u0llnN60XLqQrPq73SQLae+RW3LpZE0/mZQzrLsAZ/xJq8fq6Xa+V5RbbipHo8ur6qc4fxUz5FY7fu/pKHK6l8ZX7C9ZriNrmEwhZX12dS817jqpLqd2etxNM5aL5llXTmOXUTsddr1U8+uvOF+tW78smVT94YzGb1LvAXXSSBk164qPZs9b9ToWVHbs1Jvn4t+Jh9XjJx5afdRMB/EwoE4aKYN4CMSS3vb8dH/ypAOLq59c2glQ1T+GKvikMuUx5TJOkKqI+lWcQFbuxfkBtZqU+uawgmIxuPkENqes8nQ6P3alkRfHrcZTnM5cpmLYIPb4XNNUMx1FTvfS+MrTV/ljWp7XZLo43WoXoma6tzu/xf62sVxKw6r5dU9y8YfHNWxtvXjzrT89vlatX65hi1Wfc35gy8vCdPyu6VXdytNbXe/Fbl7zal6G946XWwvmrXodq1m346zePBfrsrIf4mGRX/053UvjK08f8dArRqimVeuXa9imxQynW3l6q+u92M1rXs3LIB4C8aO3Tz8xSJ6qfwicH7lioHF+QLyCW/0fEq9xqeBn/WCUg6B19NU3kIWcTo8fQC++PwA19ed0rw7EftPnN3yp/+py6oyvKculLJdTOzDqxyWdStn1VFVXpuPy/wFt4XwEDFtiPH7D6VVqpit0GR5aMW++21gvqDfPhsvfuM69eI2LeFjZf3U5dcbXlOVSRjwsjt9wepWa6QpdhodWzJvvNgagGYLyoe6/5ym5Rwacj7YB2aMiUEnusegrmtenBkrXEBcb+1rnR/Kd7/XEI3JERVp59J1YvVjj2iu7Jo9ISn16nNMds3J3QU3GsTeCbxA2nM69u6rG0v+GHHP31yo102erna9+ecOaoKB6U1q6XJT8rHXt+MDAgIyOTsnUwoI1vqZr9XwoNcvcrdHx15teL6HL8NfUeUN9LV1fiYfEwxbPh0I83H7dAYgGjyqvY0TvLazfls9U0MrqvYLUEbULYQfghbtZ9aP1nQppdYIimiwrEwNT1g9NMpWSdDojmUxOcoWM2okD0CrEw05EPASAKMU/eRrYI/pAUypjXaLo0azJZNDvvDW8Pqqale/UXkFyjz7G5BxtfPSdZD+7rf6akiNhnxfsTOejmkNLOXmsfxUb1i+79qrW+mM1BrfGxrduH052yctnt/UI9kqo/aMwy8XZQdPDrs3Py+TkiIyM9Eu/0z1SYdcvpXaZuzRh/HW1sIy2zxsqha1za3jiYRnxsEITtmnioVeZumnCvAFoivgnT85lHgujQzLrft5nPms/ZrT0hn4fxeGvXJHb60k59oYdvfr1L/H6bbmifzito68h9e9SP79qlFNvykRpOvWjUEdlwflWn9dp/QW5W/Fo1kbGpyyMuh7fmpfs7JtiXUEQdp7DLhdFH+kuDakf7/qmffRV78RVVoPp5Q7buCwizHw4w+plXq7iWZnQl2oUH3XchHry5prXVpTR1nmDr7B1XhyeeKgQD2uEmQ9nWOJhs+cNQNMVqnh0apN6N0H6/d3pnnLdwuk81carCbyB02HfrKn7r72pVHd3F1U7XSGns+6jeW3laXTNk9H4/KbPvrE26b7xuNS4b5Bt8vw6TfByccblMZzVuMr2rBcPtf1FMR+Kz7AVi9to/ObTa7yuOE39Mny0bN4anI5YqDfPfn93ujdrfVWIh67hrYZ42LT1y2fYisVtNH7z6SUeAvCitzs/vXHP08i8qAgp6keyLJlU8TMnawbnwa2jqpr76KJzlEh1DH+JSpGazlzGNZ3JlGTWfid7nK9B+icvlYbTl5ZYx630+NIp61IALZlKS85wfCV7fidrGdc4kmnJ5ObDH1nWtr1c+mXyw0zVcClJq+HUpOoKKF2a41kvHkz78xRm/bKWebl+1YDWcPPuCg4zfg9+60ozy7C0Yd5gIGSdEw+Jh4HCrF/WMiceNrVcAE2X0BmU89min+xS1QkAAAAAekJQPsTT9gAAAADAAMkTAAAAABggeQIAAAAAAyRPAAAAAGCA5AkAAAAADJA8AQAAAIABkicAAAAAMEDyBAAAAAAGSJ4AAAAAwEAHJU95mR1KSGJoVn2KSH5WJoYmJOt8jT+njic6bY49ln3NsmnD+gG0TRzjYVYmElHEH+LcdmQnhqw36luNqrv2xdnqOjCsE34zAESkp8885T+7LQvrzhd0FJYNEC22ueh1TJ1nJ2S0akL6nXa3YP0FEJUOSp76ZXKtIIW1ya4L2gjLZNmzfqCXsL7HT+fHuVRGlV1QzfyI0wUAUK3DL9tT3dyXEiSGZCJrdgI+n52QIT0+97CzxWHtsgam9GGqBRlVfx8q/c1b8PiCWcNWDJe157X6spJ8VibcZehLELyKMOyvoly/cdWwL62x6qNqeM/ZNZqWesvRvez9lo27H5e65ZeHy2ZnXcvQfPkB0fNa31W3GMRDi0FsMi2DOKeVh2s0zmUnVH+jC9bnhVE9jBq39U0xLVdf5jdbnPfgZRB63anhV5du7vnwKa9qXoe2tYwdRuPyVr0+e0+qSR02c1oNxwX0ikIVj04RyRXSSSlIMq0+ub6r6aluUhmrB1+5dNJzON3Yw9aOO5m2S/VSf3z+gobVh/lKMqlC0qsfSRYqJs2wP89yk6lCSs934ERnCinVbzLlVc52psVkObqXvd+ycffjCFm+buotP6A9qtd3//U4TAyyh/Xb5rxtPx7asUWSybqxxbQM4pzTj8f43E1QVWRS1f2nVO1YfzAv171M3dNexWy5VteBR51UqJ33yrp01gfX33VTUSe5dJOWsWI0Lh+qzusN11AdBvajNHO+gZjR67ifzk2enI06qbbO8jbsbOiBW2xxQ1c/AO5A5TGsHYScHwpf5uOr5ews6EBUHDiXKQei0rDl4JRyFVIKktU/InX7My3XS3FYu79iuZliGY1Os9FydMbl+nGsXTbV/TReZ+X5cfVXmgagk1St70bbkZfi+t9J8VDv3JrElnplEOeaFuecnfZyb42XG5Rw24r91luuTn/VZbjqzYtvXVZMr+7PSVCqy1PrUcW8Zqqmq5FlXG9cnsrDFqsy5yyXct0W+6lTh82cVqNxAfGjtz0/HZ886SNaqXRaBQp3pDCTU8NkVCBIu48uujb22mAbrN74atQEPkd14AkIRPZRQSeYNthf3XI9OTsVHj9UdhlOfTU6zYHLsWrZ6y5+P4TV60e98ovD1SxnZz4D6wJolxjGw+I2VxNb/LbROmU4dUKc099Cxrnq5Cl0ucGC153qeqqtNy/+yVOdOnHm1Sv5qxinyTI2HZeXgGG9mGwbTZlWk3EBMaS3KT+d+7S9/km5pCKcrK/LwtSUjA4M2NfjTszWv3Y4P2tdMzyghhkdnZKphQXRV0Nv2zbHl//ukfo/KcfeqLr1t/8NOaaiUbXUkdqbdEeO6EqoVLe/3GNr+vbuMivX095dNTcsD+zRAz+S71z1X3dawixHA6Z1Jsk9MuB8tA2INTtAN4hBPCxKHnujKrb0yxtWYHLFFpMyiHPOJ5cmx7ntl+uj2euiiXp14qxH61P2MnM39n1UzrpgsoxNxxWgZn2uZlKHzZzWFq/bQDfq6EeVj8wXJJdJS8oV6NYX9MY74XqXQ7WsTAxMWUEhmUpJOp2RTCYnuUJGPEK+gWaPr/dsbzkCcOudeNidMZc4V0/3/5a2fxmb12Ezp5V1G6jU8e956h+ZlHn96NaC2nhzGUlbEWJB7vptsfnvRJ/vSWUKsjY/L5OTIzIy0i/9TveGhRhf/6696v91uf1Z1eGZ/GdyW0e/KgseM5W9az8Fya1ufwN7RMe4RzWHuHLy2KNcT4++k8qh8/KZNdF7xX1gzHSaG16OhkzLB+Kgm+Nh0frjnPOpqCq2mJZBnHM+tU5Ty23CutMSznqkp0svt9pmTSZd60LgMm5wXF5q12eXBuuwmdPaqnUb6EadmzxlJ+xTw7PlN5339w/ILut8e1L21LlGQAf9UgjSj+J80z5aU/tjWf80umY+PpeRI9bRoPWpN2W2eH5bDTtbHLaoeJnJwmjF4z/1o1+tJ8gmj4l15Z9xf7vUT79dbrm/vMwOjapQZ2h9St4s1X1esrNvinUmP3VErAs5TKcl1HIMWDam5QNxEId4WKS22fKjpD1ii6NuGcS51sW5FpYbat2py2z9reDM68LoUPl3WtO/1dYjvJ2zKybL2HRcXpxhrf2F4qD5WeuR+tWPrq9bh82c1pCxB4ilQhWPThHxuUlU36hY3QTeOBownG5cw9o3Rdrd/W/SNB+fF3cZNU3KdetoxnXTZ0VTvDHX0UB/Nf008AhffXNobTlVN7saTYvJcqxe9l7LprafhsqvWU5O96ploIcPrB4gEtXrrfO9Zl1XTc267RYwnG4Ctzkv5uOrZceWpPsG91Ljji0NlEGcc3gMZ3G61wtqXrEvVLlenH49x6ka33oyK8OoLi1Od4/Y79WUt4WA6XeXYTQuHz7Dlic1YBp0U11ngf0oLZjveqsa0C30+uyngy/b029az0nafZGtJNXvYkZy9d7Q/mGm4tpcNZCkMznJWKeBHkvxopH+yUul/vSlJK5jLy7m4/PSP7kmOdVjefCkitnp2mu8R+ZlLVd5TbEuJ5OrOs3fQH8V1yjrftZ+J3ucr3XtvSRrrulOptKqjPmKI8Nm07K95Wi0bEzrAuh68YiHlj2/q4wtyerY0kAZxLnWaXq5TVh3Apitvz7UvKrsq2ra9G91TtZKM2u4jI3G5UMNW7u/kJP50gppWofNnNbtrdtAnCV0BuV8tujTs1Wd0HRZmUiMyqO0QTCNnD1tCyowFsoRGwBihDgHAPAXlA91/AMjuprzSNHEhPt65bxkJ+xr8us+khQAAABAxyB5aqXSTbdTMqCTKKsZcG64TcvvOOAJAAAAdA2Sp5biWmEAAAAgLrjnCQAAAAAc3PMEAAAAACGRPAEAAACAAZInAAAAADBA8gQAAAAABkieAAAAAMAAyRMAAAAAGCB5AgAAAAADJE8AAAAAYIDkCQAAAAAMkDwBAAAAgAGSJwAAAAAwQPIEAAAAAAZIngAAAADAAMkTAAAAABggeQIAAAAAAyRPAAAAAGCA5AkAAAAADJA8AQAAAIABkicAAAAAMEDyBAAAAAAGSJ4AAAAAwADJEwAAAAAYSBQU57MlkUhIVSd0KL2sEB7rO9qNbbk5otqWWV7NwfLqLiyv7sK+TTh6PfSrQ5KnLmYtq/89cL61VuIHB+JbFus72kxvy//v/3zifGut514+GulOEGWFE3VZrIfhUFZ4lBVelGXFVVAdctkeAAAAABggeQIAAAAAAyRPAAAAAGCA5AkAAAAADJA8AUDX2JJ7S+/Jq+NHrRvurWb8opxZ2pCnTh9A67EeAuhdJE8A0A02N+TM+Fk5fHNV7j90umkPn8itm1fkpfH35N6m0w1oFdZDAD2O5AkAOt6WzE1fkVtqZ/Xg2ElZ/vQT65HSVvPpJbk+tlvtvK7K4ekVjvyjhVgPAYDkCQA63NOlP8l5vcN6bk7+fuGQvNbn/EHr2ydnL1yVb87pHdcP5NTSlvMHoLlYDwGA5AkAOtyWZFefqPawXDi+w+7kYefxX8kp1b6/+i+O+qMFWA8BQCN5AoCO9l/5t763ZOzn8prdwcc++eWYaj3clLzdAWgi1kMA0EieAAAAAMAAyRMAAAAAGCB5AoCO9kP5yaBq3flK7tkdfGzI3+6o1mCf9NsdgCZiPQQAjeQJADraDhkZ3q3aq3It4AlmT5f+KrdU++DwT2Wn3QloItZDANBIngCgw+08/lu5Pihy/+ZZefXaSuVLSDc3ZO7aRXnp5hORwZNyK+BJaEAYrIcAIJIoKM5nSyKRkKpO6FDWsvrfA+dbayV+cCC+ZbG+o830tqxfNBpsQ86M2y8o9TQ4LMszb1W+e8fDcy8fjWydj/L3hLLCYz0Mj7LCo6zwoiwrroLqkDNPANAV9smfF+dk+dywHNT3nhQN7pZT5y7JN4v1d1iB8FgPAfQ2zjx1MWtZceYpFM48oRPobbn+Ef/m4Ih/eHEui/UwHMoKj7LCi7KsuAqqQ848AQAAAIABkicAAAAAMEDyBAAAAAAGuOepi+llhfBY39FubMvNEdW2zPJqDpZXd2F5dRf2bcLR66FfHZI8dTFrWUX4YIX1/7vifGut5I8P8cAI9JQo464ui4cChMPyCo/lFR7LKzyWF/wE1SGX7QEAAACAAZInAAAAADBA8gQAAAAABkieAAAAAMAAyROabEu+XJyT1Ngh68EPVjN2Xt5dfCCbTh8AusGW3Ft6T14dP2rd6Gw14xflzNKGPHX6QCdheXUXlld3YXmhjKftdTFrWXXS0/aePZB3374sd792vlfb/7rc+ONZeeUF57sPnraHXhNl3NVl1X261OaGnJm+IrceOt+rDQ7L8sxb8lqf892H3sGIcr7iWhbLKxyWV3gsL5ZXrwmqQ848oUm25GMncdp74rTc+GLFSras5ovLMnniRZGvP5d33l7mDBTQ0bZkztlRODh2UpY//cTaubCaTy/J9bHdIg9X5fD0CkdcOwLLq7uwvLoLywu1SJ7QFJuLN2RWJ07T78vC1cOVZ5deOCC/vnpdbk/rBOp9mVnccv4AoNM8XfqTnNc7Cufm5O8XDlUeTe3bJ2cvXJVvzukdhg/k1BLbcruxvLoLy6u7sLzgheQJTbAlayvfqvbrcnJ8h93JQ9/4b+SIaj9a+Sdnn4COtCXZ1SeqPSwXjvtvyzuP/0pOqfb91X9xtLWtWF7dheXVXVhe8EbyhCb4jzzT9zmdOCiv2B18HJBfnFCtr7+X7+0OADrKf+XfD1Vr7Ofymt3Bxz755ZhqPdyUvN0BbcHy6i4sr+7C8oI3kicAAAAAMEDyBAAAAAAGSJ7QBD+SF/ar1kf35Uu7g48H8o+PVGv/8/K83QFAR/mh/GRQte58JffsDj425G93VGuwT/rtDmgLlld3YXl1F5YXvJE8oQl2yNChF1X7c/kg4El6m4t/kbuqvffQz6TO6xAAtMUOGRnerdqrci3gyVFPl/4qt1T74PBPZafdCW3B8uouLK/uwvKCN5InNEXf+DsyuV/k0cxpSV1cli+fOX/Qnj2Qjy+el2Mz34rsPy3TAU/kA9BeO4//Vq4Pity/eVZevbYi99yPxtzckLlrF+Wlm09EBk/KrYAnUCEaLK/uwvLqLiwveEkUql6fy1uJu4e1rP73wPnWWokfHLBeeBvsgbw7Zr8o19P+1+XGH89WvgPKQ/LHhyKdL9Z3tFuUcVeXpV/wGGxDzozzRn0/LK/wWF4sLz8sr/CirMO4CqpDzjyhiQ7I7++8LzemX5e9+h6oov0vypHpy3L7Tv3ECUAn2Cd/XpyT5XPDclBf8180uFtOnbsk3yzW31FAlFhe3YXl1V1YXqjEmacuZi2rjjrz1ByceUKviTLu6rLqH2ltDo6Mh8fyCo/lFR7LKzzOPHWXoDrkzBMAAAAAGCB5AgAAAAADJE8AAAAAYIB7nrqYXlYIj/Ud7ca23BxRbcssr+ZgeXUXlld3Yd8mHL0e+tUhyVMXs5ZVlA9WiGtZrO9osyjjLmWFR1nhUVZ4uqy4PuyAhziEE2VZcRVUh1y2BwAAAAAGSJ4AAAAAwADJEwAAAAAYIHkCAAAAAAMkTwAAALG1JfeW3pNXx49aD0iwmvGLcmZpQ546fXSnuM4XOh3JEwAAQBxtbsiZ8bNy+Oaq3H/odNMePpFbN6/IS+Pvyb1Np1s3iet8oSuQPAEAAMTOlsxNX5FbKrk4OHZSlj/9xHoEuNV8ekmuj+1WycaqHJ5e6bIzNXGdL3QLkicAAICYebr0JzmvE4xzc/L3C4fktT7nD1rfPjl74ap8c04nGh/IqaUt5w+dL67zhe5B8gQAABArW5JdfaLaw3Lh+A67k4edx38lp1T7/uq/uuQsTVznC92E5AkAACBW/iv/1vcCjf1cXrM7+NgnvxxTrYebkrc7dLi4zhe6CckTAAAAABggeQIAAAAAAyRPAAAAsfJD+cmgat35Su7ZHXxsyN/uqNZgn/TbHTpcXOcL3YTkCQAAIFZ2yMjwbtVelWsBT5x7uvRXuaXaB4d/KjvtTh0urvOFbkLyBAAAEDM7j/9Wrg+K3L95Vl69tlL50tjNDZm7dlFeuvlEZPCk3Ap4cl2niet8oXskCorz2ZJIJKSqEzqUtaz+98D51lqJHxyIb1ms72izKOMuZYVHWeFRVni6LP1i2GAbcmbcfqGsp8FhWZ55q/JdSR6ee/ko8xVSXNfDuAqqQ848AQAAxNI++fPinCyfG5aD+l6hosHdcurcJflmsX6C0ZniOl/oBpx56mLWsuLMUyiceUIniOsRScoKj7LCi3NZ9c/QNEfnnXlqDs48wU9QHXLmCQAAAAAMkDwBAAAAgAGSJwAAAAAwwD1PXUwvK4TH+o52Y1tujqi2ZZZXc7C8ugvLq7uwbxOOXg/96pDkCQAAAAAcQfkQl+0BAAAAgAGSJwAAAAAwQPIEAAAAAAZIngAAAADAAMkTAAAAABggeQIAAAAAAyRPAAAAAGCA5AkAAAAADJA8AQAAAIABkicAAAAAMEDyBAAAAAAGSJ4AAAAAwADJEwAAAAAYIHkCAAAAAAMkTwAAAABggOQJAAAAAAyQPAEAAACAAZInAAAAADBA8gQAAAAABkieAAAAAMAAyRMAAAAAGEgUFOezJZFISFUnAEAL6biL8KL67WJ5NQfLq7uwvLoL+/LhBOVDJE8A0GZRxl1d1v/7P58431rruZePRjpflBUOZYVHWeFRVnhRlhVXQXXIZXsAAAAAYIDkCQAAAAAMkDwBAAAAgAGSJwAAAAAwQPIEAPCwJfeW3pNXx49aD36wmvGLcmZpQ546fQAA0Gt42h4AtFnUT2Gq+7S9zQ05M31Fbj10vlcbHJblmbfktT7nuw+ethceZYVHWeFRVnhxLSuuguqQM08AAJctmXMSp4NjJ2X500+sZMtqPr0k18d2izxclcPTK5yBAgD0HJInAEDJ06U/yXmdOJ2bk79fOFR5dqlvn5y9cFW+OacTqA/k1NKW8wcAAHoDyRMAwLEl2dUnqj0sF47vsDt52Hn8V3JKte+v/ouzTwCAnkLyBABw/Ff+re9zGvu5vGZ38LFPfjmmWg83JW93AACgJ5A8AQAAAIABkicAAAAAMEDyBABw/FB+Mqhad76Se3YHHxvytzuqNdgn/XYHAAB6AskTAMCxQ0aGd6v2qlwLeJLe06W/yi3VPjj8U9lpdwIAoCeQPAEASnYe/61cHxS5f/OsvHptRe5tOn/QNjdk7tpFeenmE5HBk3Ir4Il8AADEUaJQ9fpc3koMANGK+s3z+oW3wTbkzLj9olxPg8OyPPNW5TugPDz38tFYvlGfssKjrPAoKzzKgp+gOuTMEwCgyj758+KcLJ8bloP6Hqiiwd1y6twl+WaxfuIEAEAcceYJANos6iOS9c88NQdnnsKjrPAoKzzKCi+uZcVVUB1y5gkAAAAADJA8AQAAAIABkicAAAAAMMA9TwDQZjruIryofrtYXs3B8uouLK/uwr58OEH5EMkTALRZlHFXl8UDI8KJ8/Ji3QiH7Ss81vnwolxecRVUh1y2BwAAAAAGSJ4AAAAAwADJEwAAAAAYIHkCAAAAAAMkTwAAD1tyb+k9eXX8qHWjs9WMX5QzSxvy1OkDnSTK5cW6ER51GB7rPNqDp+0BQJt13JOsNjfkzPQVufXQ+V5tcFiWZ96S1/qc7z70DkaU8xXXsqJcXqwb4bB9hcc6H16UyyuuguqQM08AAJctmXN2FA6OnZTlTz+xdi6s5tNLcn1st8jDVTk8vcIR144Q5fJi3QiPOgyPdR7tRfIEACh5uvQnOa93FM7Nyd8vHKo8mtq3T85euCrfnNM7DB/IqaUt5w9olyiXF+tGeNRheKzzaDeSJwCAY0uyq09Ue1guHN9hd/Kw8/iv5JRq31/9F0db2yrK5cW6ER51GB7rPNqP5AkA4Piv/Puhao39XF6zO/jYJ78cU62Hm5K3O6AtolxerBvhUYfhsc6j/UieAAAAAMAAyRMAAAAAGCB5AgA4fig/GVStO1/JPbuDjw352x3VGuyTfrsD2iLK5cW6ER51GB7rPNqP5AkA4NghI8O7VXtVrgU8Oerp0l/llmofHP6p7LQ7oS2iXF6sG+FRh+GxzqP9SJ4AACU7j/9Wrg+K3L95Vl69tiL3Np0/aJsbMnftorx084nI4Em5FfAEKkQjyuXFuhEedRge6zzaLVGoen0ubyUGgGh13Nv7ZUPOjNsvhvTU42/Uj/PyYt0Ih+0rPNb58KJcXnEVVIeceQIAVNknf16ck+Vzw3Jw0OmkDe6WU+cuyTeL9XcUEKUolxfrRnjUYXis82gfzjwBQJt13lHd5ojzkfG4Li/WjXDYvsJjnQ8vyuUVV0F1yJknAAAAADBA8gQAAAAABkieAAAAAMAA9zwBQJvpuIvwovrtYnk1B8uru7C8ugv78uEE5UMkTwDQZlHGXcoKj7LCi3NZPIAgHMoKL8qy4iqoDrlsDwAAAAAMkDwBAAAAgAGSJwAAAAAwQPIEAAAAAAZIngAAACK1JfeW3pNXx49aD36wmvGLcmZpQ546fQDoTDxtDwDajCc+hUdZ4VFWeLqsuk/b29yQM9NX5NZD53u1wWFZnnlLXutzvvvgaXvhURb8BNUhZ54AAAAisSVzTuJ0cOykLH/6iZVsWc2nl+T62G6Rh6tyeHqFM1BAhyJ5AgAAiMDTpT/JeZ04nZuTv184VHl2qW+fnL1wVb45pxOoD+TU0pbzBwCdhOQJAACg5bYku/pEtYflwvEddicPO4//Sk6p9v3Vf3H2CehAJE8AAAAt91/5t77Paezn8prdwcc++eWYaj3clLzdAUAHIXkCAAAAAAMkTwAAAABggOQJAACg5X4oPxlUrTtfyT27g48N+dsd1Rrsk367A4AOQvIEAADQcjtkZHi3aq/KtYAn6T1d+qvcUu2Dwz+VnXYnAB2E5AkAACACO4//Vq4Pity/eVZevbYi9zadP2ibGzJ37aK8dPOJyOBJuRXwRD4A7ZMoVL0+l7cSA0C0eMt9eJQVHmWFp8vSL7wNtiFnxu0X5XoaHJblmbcq3wHl4bmXj7K8QqIs+AmqQ848AQAARGaf/HlxTpbPDctBfQ9U0eBuOXXuknyzWD9xAtA+nHkCgDbj6Gd4lBUeZYWny6p/5qk5OPMUHmXBT1AdcuYJAAAAAAyQPAEAAACAAZInAAAAADDAPU8A0GY67iK8qH67WF7NwfLqLiyv7sK+fDhB+RDJEwAAAAA4gvIhLtsDAAAAAAMkTwAAAABggOQJAAAAAAyQPAEAAACAAZInAAAAADBA8gQAAAAABkieAAAAAMAAyRMAAAAAGCB5AgAAAAADJE8AAAAAYIDkCQAAAAAMkDwBAAAAgAGSJwAAAAAwQPIEAAAAAAZIngAAAADAAMkTAAAAABggeQIAAAAAAyRPAAAAAGCA5AkAAAAADJA8AQAAAIABkicAAAAAMJAoKM5nSyKRcD4BAAAAQO+pSpFKapInAAAAAEAtLtsDAAAAAAMkTwAAAABggOQJAAAAAAyQPAEAAACAAZInAAAAADBA8gQAAAAABkieAAAAAMAAyRMAAAAAGCB5AgAAAAADJE8AAAAAYIDkCQAAAAAMkDwBAAAAgAGSJwAAAAAwQPIEAAAAAAZIngAAAADAAMkTAAAAABggeQIAAAAAAyRPAAAAAGCA5AkAAAAADJA8AQAAAIABkicAAAAAMEDyBAAAAAAGSJ4AAAAAwADJEwAAAAAYIHkCAAAAAAMkTwAAAABggOQJAAAAAAx0YPKUl+zshAwNJSSRcJqhIZmYzaq/dKK8zOppHZptwvRlZaI4z4HNhOqzBfKzMjHUyLh9llW2M5cUAAAAEEaHJU86ERmQ0akFWV93Omnqy8LUqAw0JUGBn/xnt2XBXe9BVKI1lPBZVqMDMjTRkvQOAAAAaJvOSp6yf5ApvSOeTEsmV5BCwWlyGUknVff1KflDrPfJR2S+OM9Wk7PnW9VHrqL7vOqznbIyMTAl1qJKZSTnWla5XFpSaprXF0aF/AkAAABx0lHJU/67R+r/pKQ/nJSRfrubpX9EJtcyklIfF+5W7pHns1WXjSX0JX6u81PWGZKEDKluVr/V/ZS6qX4m3Ge27Evo9HDufhJDE+Ieva+8Gt41XUP6cjiT4bbDqKy8zE4Mlfqx6qDUk33p4YCVuS7IqB5HwEzmZ6+ovnROl5O1+RHpdy2r/v5Jmf8wrZaiGtOVyjOFdZeVJWg6XULPs0NNk/4biR4AAADqKnSSTKqgJ0ntlDsdguXSSat/ryaVKfVUUDvyhWQqZbXL/SQL6Yz9N/dwUhowU1DJmsdwulHDliYxV0gnVbdkWn1yOGVWDqMb93AmPMZdzagsZzwe/dmzW/t3/2VQ7DelashfLlc5vNGyqjudjqbMs8NZ5yq6AQAAAB4667K9kXnJpJKyPjVgnSUYmpiQ2WxW8h4nHvRZhc9u6zMlqapL/JyzHlVnqNYXFmRvJmdfWpbR57DWZWp0SiRtdysOJ4++qzhboodb15emWePPSUbtkVvD+l4/mJfZN/UlbUmVhznjtsrU4w8abjsMy8p/JrqqrEvsnH4q66lfJtfUcNa8qfpUf1+bdJ/6c8vJY6vajwReOtjvPh1luqzqTqfWrHl2qHVO/22+vddBAgAAoBuoHceOk8tlCulUsursQrKgdpadPirpsxyZTFoN4zpLVDyVUDxLUXm6wTqrVHlGxzlTUerm1Y9N5V6qjOKZl6rhime6PM7c2Gdfgs/YVKqepiqmZRXrIKnqMJ0uZKrOChWZTZ9TL9s8VWO0rIKms8nzDAAAAJjqwEeV67MWIzI5vyZr1hmDnHVWQT+EwHqKm/seGed+poGBARkdnZIpfZbI+VO15J4B55PL3l1SPj/SL7v2Oh/dKvqxDexREyOP5DuvM2K5x9Y02GfPyvfk6Ma+p8hnuO0wLat/Ui5ZJ9v0UwunZFTVl+5H3+PldTtRS5gsK5Pp7KZ5BgAAQKx0ZPJUqV/6RyZlfu1D68lz67c/cy6rcz/xLSXpdEYyGZVoFewHS6DSyLx9aZtOQovWF3RS0eg7owbEyh0X7gYOl9fvfyolKubLqnnT2dxxAQAAAB2UPKkdbH0GwfddTs6ZofXHktNf89+JfjZfKlOQtfl5mZwckZERlWg53Zum6h4oVbBz/85e2eV1W9DAHuu+Gj1dheK9NhXNmvjeTtSoBsuyk1D7bzn9+Hcrc1mQqtvD6uiXN45Z2ZNc8X0iX1b+oN//tPBY997wsgqczrbMMwAAANBRydOIHNE7tutT8mbNpVX2Y8avWM/H3iPuC/D0zf+lXvXjq62HCSg1Sc826emZLZaRl+zsm/a7qPwemND/hujcYmF0SGbdM6GmTT8OPJFo4lkP07Kcx3EPleZDDdo/ILusU0hJqbyisf5lhf2Tl6wzRvrSOf0yXPcDPfL5WZkYGnUeZf67ijqqu6xMprMl8wwAAAAYKHQU52EEvo3Zo6itJvABDt4PPbAeBFHzwIjqB1foxv1QBY+HOjiPv/Zq/B8B7qXOAyM0o7IC6so1bvuBC3b3utNZfCCDX1NRt4bLynA6mznPxXFVrQoAAABAjQ6752lE5q3HgadUzuJ0siQlmUpLJue+JKtfJj/MVNzPonqSdEYNb50WcS7vC2vvJVlTIywWY0/HfOBjuq3HX+cq77XRM6Qfre3/CPBtMipLP4o8J+nKntS8ZCS3NmldWadZZ5ScXtYf58pnibz0T8qadRmcGo/TyeKUXah49rfpsjKbzmbOMwAAAGAqoTMo5zMq6HuwRmVB7WxXJgIAAAAAelEXPG0PAAAAANqP5AkAAAAADJA8AQAAAIAB7nkCAAAAAAOceQIAAAAAAyRPAAAAAGCA5AkAAAAADJA8AQAAAIABkicAAAAAMEDyBAAAAAAGSJ4AAAAAwADJEwAAAAAYIHkCAAAAAAMkTwAAAABggOQJAAAAAAyQPAEAAACAAZInAAAAADBA8gQAAAAABkieAAAAAMAAyRMAAAAAGCB5AgAAAAADJE8AAAAAYIDkCQAAAAAMkDwBAAAAgAGSJwAAAAAwQPIEAAAAAAZIngAAAADAAMkTAAAAABggeQIAAAAAAyRPAAAAAGCA5AkAAAAADJA8AQAAAICBzkye8lmZnRiSoURCEsVmaEgmsnmnhy6Rn3XmYUhmu2zSAQTo8hiVz07I0FB3TjvQtbp930bt00y44sbQxKwQNtCLEgXF+dwZ9I/66IKsO19rpDJSmB9xvnQwFSQn3hyVBWtGkpLOrclkv/UXAN2sy2NUfnZIBqa8pz6ZzskagQpovm7ft9EHgwemPKY/JZnCvHTBXhnQNJ115klvnEHBRVsYlaGOPo2Tt4/qDhQTJwCx0fUxKit/KCZOamctVyhIoZCTdMrutD71B9UHgKaKwb5N9g/FxEklSzkVN3JpSVrfF+QKl9agx3RU8lTeOEWSpR92+8c9k7Y3U2399mcqRSnLz6pkxX0aPDEkEzUbc97jdPmE9+V0zqn1yvFlK8r0k599UwbqBUkAXanrY1T+O3mUtKczdWRE7HNM/TJ5xMme5JF8ZxLoABjr/n0b3UdSdOhIpn8nIzpw9L8hx5xJX3+csz8AvUJfttcZMgX1860vISxIKuN0q5RJSSGZShcyKvIU5dJJexiPJpku9pgrqPjk2Y8KBYVSb1ouXVDxwKM/1STTakzBitOjAmQhl0k5w1aVAaALxSNGeSlPI7EKaK54xo3y/o0UfGYLiK3OSZ5cG7b5hlgOSqlSlFDdisGkOCL3uIv95bwCmisQqWBSCmSu4ctBy1sunVLT7/RD8gTER0xiVC1XOdtMvgD4iGHc0MmeNS61b1OePqB3dHny5JLLFTLpdDm46Ka4I+AatyRThbT78I5bwDSUjgI1snNB8gTERxxjlHuHzGOcAEKKXdyoOtulyiVsoNd0/XuerIcz6Gt3BwZkdGrK+yEN/ZNySUUey/qCTI0OWNf6Dk1kJe9zse/CaPGaYLspPZ1q/bFwdS8AUx0bo/QTQRPlB9sk0znphgeZAr2gc/dt+mVyzb5fSyVRVrmjQ7MG900B8dE5yVP/LtnrfFy46/28p6y+KdL9XoH8rLxZfDhDMimpdEZyOWeDrjIyvyaFXEbSxUCjhlpfGJWBgUT5CTe5xzzoAYC3OMUonTjpJ4I6X3XixCPKgRaI7b6NSqIupeyP67fls+K0A73AOQPVEcrX0eqbJzOuU8j6tLX75knnNHHpsjj3aWPXKeWgc+Q51V+pPGf4sKfXq3HZHhAr8YhRrnsiVNP4PVIAGtH1cUMNn0omrXFUDM8+DnpUR122N/K74nsD9JngURkonVrWp63Lx02sR2U6n20Lctc5ZJPP/kFcvdqyE6VT1KU3efeL7CqV5nA9enPhyoTrKJC+vMWZlgneggL0qjjEqOwEZ5yAKHV93OjfpSZ83Tp7tXDFuURPDTt7xYkkyWPyBmEEvcRJojpHJlU6QuLZVNzUWHkEtaYp9es6YuPVuA+luI7Q1Dbuo0AGOCoDxE83x6jAYXVDrAJaotv3bUr7M9VNsjlX6gBdpPOSJy2XKaRT9ini0gaa1Buox6+6dTrZtRHrX37PpEWfHq8KXnqcafcpdIdTfqk/1VS/g8EIyRMQT10ao4LeHWM3xCqgZbp83yaXqX7qn0q6DIcF4iSh/1MbAQAAAAAgQNc/qhwAAAAAokDyBAAAAAAGSJ4AAAAAwADJEwAAAAAYIHkCAAAAAAMkTwAAAABggOQJAAAAAAyQPAEAAACAAZInAAAAADBA8tSA/OyQJBIJ72ZoQmazeafPannJzk7I0JC7/yGZmM2qv/jZzjDNkpdZV7lDs64S87MyUTFNE+I72wGyE2rYiazzzUA+K7MTrvrXdWFYcD5bWY9DE7PmdbidclUdDRX792yGxF2lXkJNc4WsTOhxuOq6Yj0e2u54YYq4of7SpPW50bhh9e+U6W4qYpqPfFZtxxX12ECs206cbELcqFS77QeqE+uIG9EiblRrbH3e1rYfZhts8+9+uHi1/f0rPd9BsS62caMAY7l0sqCrLKhJZZyei3KZQirp3a/VJFOFTM7ptyRXSAcOk1Z9tFJl+cm0U1ouXUi6p6PUJAvFXkyU6rGmsvyoOqwp027qjcJ/mal6d/rxt81yfeup2ATXV7hprpRJOcO6Jrhi/C1fl9DrcaNZ63NpPMZxw78+SjHNTyblOZxRrNtunAwZN6p5bfv+6sc64ka0ej1uVGtsfd7mth9mG2zn736YeLXd/RzNINbFNW6QPDXAXgm8V+RcceWtWDnKG3Ayla4MWirIpVPOSlW9QrnGVTOMMz6j+LFtznRXTVcxeKVKE5UrZJwNo+7OiEX1X5xn3RjORLHcpOq/VIraaK0NPnBjdIJCRT2Wp6Fe8dsv14ezXIPrKtw0u1UErZoBvZcxmq+340Yz1uftxQ29reof9sbnuVj/agegNNFqGorbU50Rho+TVYziRqXgbb+WeawjbkSl1/c33Bpdn7e/7fvYxjZYYjRsmDjZnHi1nf0c81gXv7hB8tSAoGCm2StS+e/FDT5oo/Hqx+7md8TA2cgCNwinn8DGfz78VnRr/mpWfpPp0YrTlFQbmrNh1h1GKwcV/1pskBNYTYNZc8oNOT6jaXYp/Xj4LZ/4BbNO1etxw5Px+lycpkbjhmLttPjVRwDfaTObv3BxspozXCPbad1tv1ojZRA3okLccDS8Pivb3fY9NbJ9VAszrGISJ0PFq3DTZx7r4hc3uOepZfLy2e111U7Jpcl+u5OH/slLqg+R9dufla4F7d+1V/2/Lrc/87o6dETmddI7P+J8j87AHrWJrk/JHyqug78iC6qd3DNgdwiwJ5WRXGFN5kd2OV0MZO9a409dmhT/WmxEXrJ/mFK1m5RjbwSMscnlZidG1fiSkv5wO+MznOaSrEwMqP5VfbdhNUEo8YsbtRpbn7cVN5T8d4/U/6pOchPlexH0vSJe1ePWPylrqq7W/Op/767AbThsnHRrPG5sY9tveoxF9OIaN7b3W7btbd9DmN/uSH73w8SrkNt+M2Nd13GSKBgIOhJUOo1eyrbNj5JUH0HSypepJAvJVKqQzmQKuchSdr+jBOXTyO5Gn+5tjHndlI8g6dPBKesIi1VuUh+JbqRCnHmyhlfjq1d008pVnCNDRvNbocFpdlQeDfKr6/gdCepUxI2i7a3PZQ3EDcWuH++m4U1RKR61rz9sk+LkNuKG2bZfpaFYR9yICnHDmdZG12eladv+tn+7lYh/96sZxavQ+zmmsS5+cYPkqQHFldG/0Suh03PIYKblnOuUSyu0U0bDO+8N81nR1fR43oza8AZhXjd2nas68CpXNYGnsyvoMt3jcS+rWs0rt7h8g8vz1tg0W0rB0PnuW9fsBEWl5+NGyTbW5wrmdVOaFl2Ga7697xWpr3ZnNUCT4mTDccN426/UWKwjbkSl5+PGNtfn0vj0sCG3/e3/docZVs9nmDjpmtembvsejGNd/OIGyVMDgoJZsuYpNuGDWaWcWk/TakW1pyF4pXbKDmyCyvNa0f0DUuNHV8zrplTnVfVbKrduvXnQG7w1Tv8NuXnlms9rIINpVhNtTVvluuFXfvyCWafq7bjhw2R9rmFeN0Ea26lxHVk1mtZmxckG57Whbb9SY7GOuBGVno4bIdbnII1t+2HKCz+tlobjZGPxKtx+TiOxLn5xg+SpAfaKVi/oFBVXrHr9N75x1F8JnXEGNs0IZjazYOzWQGBRG6JfsLOXh2kgrFR32GaVa41ne5cJVatXrv334vL1atzDxi+YdSp7ufRo3AjQ0HZkaSBuBDAvt7gs6u08ujQrTjYYNxrb9qs0FOuIG1Hp5bgRan0OYL7tK2F+uyP83S/bRrxqaNuv0lCsi1/c4IERLdMvbxxTq5YsyJWAuxRLN9cde8O5Yc95EZzvy8T6xb6/87Hk7A4enJs8A5t51VdzWDcNyiP5bhs3Y9Y1sEeSsi6P/WfWX/GldY28jLcoTLku2bvW7ZhyxLSyw0wzYiBmcaNd67NTrtcLMXOP9Y31e2VX4B3Suj4HZGo9qXK1nP/N2A1oJE42HDfCaFKsQzv1zv5GXaG3fVuYbTD63/1txqsWbfst3SfsFGrFhqHGjgRpriMBDbx3wc7aPYZRfZVOibY0g/c6SlA8upT0PkXb0PQ0cgS5WIfbKbdc/+7rtvWwXvVeKUy5RV71WE+YafbiV9fbmTZsR2/HjWauz9uLG+Vy9U3RTt3VGYddlwFHXX01I042a9s0ra9yXdWf5mZNG+rp7bjhpfH1eTvbvi3Mer6dYcvLbjtxcvvxqlxXjcerRmJdmPrsTCRPDWg8mGlqBXM2Cs+m5tplrbhS+jXb2Uga4bOiFzdkj8YoHpWYBkGHc3p4W+UWN+SaxqAOw5RraXA+i8JMcw2/aYhfMOtUxI1mrc8Nbk++8apOuQHbvd3UWZah4+Q240aNBsZjHOuIG1Hp+bhRo4H1ebvbfkmYbXCbw243ToaNVyH3r7yG003c4waX7bXciMyv5SSTTklSraEl6ksqnZHc2ryM1Jxh1afBPYaRpIp9acnk1qQJV5E0bmRecpm0qOBclkyJ2rBb+z4h/R6DXEaV6yrYtFw1zWu5ymlOqmGN6jBMuVr+O9Fvm2j4fQdhphkxEa+40Zb1WZWrdgyqyq1fD/nPbou+uGfbwsbJ7caNMMLGOnSIGMWNMLa57ZeE2QYj/t0PHa9C7l+1ZZ+wAyR0BuV8Bhx5mR0akClJq2DLixPjiWWMZmOdij+WMZqNdSr+4reMOfMEAAAAAAZInuBvfUoGfJ5ag+6Vnx2ShPVkHqcD0EzEjVgibqCliBuxFNe4QfIEAAAAAAa45wkAAAAADHDmCQAAAAAMkDwBAAAAgAGSJwAAAAAwQPIEAAAAAAZIngAAAADAAMkTAAAAABggeQIAAAAAAyRPAAAAAGCA5AkAAAAADJA8AQAAAIABkicAAAAAMEDyBAAAAAAGSJ4AAAAAwADJEwAAAAAYIHkCAAAAAAMkTwAAAABggOQJAAAAAAyQPAEAAACAAZInAAAAADBA8gQAAAAABkieAAAAAMAAyRMAAAAAGEgUFOdzbCUSCecTgFaIYxghbgCtRdwA0KhOiBs9kzwV/vfA+dZaiR8ckPX/u+J8a63kjw9FOl9RrSrW8qKsUOJaVpSs+SJuhGLFjbiWxbYcSqzjBssrFMoKj7Jai8v2AAAAAMAAyRMAAAAAGCB5AgAAAAADJE8AAAAAYIDkqW225MvFOUmNHbJu4LaasfPy7uID2XT6AIBKxA0AANqJ5Kkdnj2Qd8dOyzszn8ujr51u2tffyt2Zy3JsbE6+fOZ0AwCNuAEAQNuRPEVuSz5++7LcVTs/e0+clhtfrFiPKLaaLy7L5IkX1c7Q5/LO28scSQbgIG4AANAJSJ4itrl4Q2b1DtD0+7Jw9bC88oLzB+2FA/Lrq9fl9rTeEXpfZha3nD8A6GXEDQAAOgPJU6S2ZG3lW9V+XU6O77A7eegb/40cUe1HK//kKDLQ84gbAAB0CpKnSP1Hnul7FU4clFfsDj4OyC9OqNbX38v3dgcAPYu4AQBApyB5AgAAAAADJE8AAAAAYIDkKVI/khf2q9ZH9+VLu4OPB/KPj1Rr//PyvN0BQM8ibgAA0ClIniK1Q4YOvajan8sHAU/E2lz8i9xV7b2HfiZ9dicAPYu4AQBApyB5iljf+DsyuV/k0cxpSV1crnyp5bMH8vHF83Js5luR/adlOuDJWgB6B3EDAIDOkCgozufYSiQSUvjfA+dbayV+cMB6cWWwB/LumP3CS0/7X5cbfzxb+S4XD8kfH4p0vqJaVazlRVmhxLWsKFnzRdwIxYobcS2LbTmUWMcNllcolBUeZbUWZ57a4oD8/s77cmP6ddmr72Uo2v+iHJm+LLfv1N8BAtBriBsAALQbZ56azOwIcnNw5ik8ygovyrKiZM0XcSOUyM8GEQ9DIW6Ex/IKj7LCo6zW4swTAAAAABggeQIAAAAAAyRPAAAAAGCgZ+55AtA6cQwjxA2gtYgbABrVCXGDB0Y0WaxvkObG71CivNExrmVFibgRni6LB+iEQ9zoLiyv8OJc1v/7P58431rruZePsrxaiMv2AAAAAMAAyRMAAAAAGCB5AgAAAAADJE8AAAAAYIDkCQDQZlvy5eKcpMYOWQ9+sJqx8/Lu4gPZdPoAgN6wJfeW3pNXx49aD36wmvGLcmZpQ546faC9SJ4AAO3z7IG8O3Za3pn5XB597XTTvv5W7s5clmNjc/LlM6cbAMTZ5oacGT8rh2+uyv2HTjft4RO5dfOKvDT+ntzjiFLbkTwBANpkSz5++7LcVUnT3hOn5cYXK9ajza3mi8syeeJFlUR9Lu+8vcwZKAAxtyVz01fklkqaDo6dlOVPP7EebW41n16S62O7VRK1KoenVzgD1WYkTwCAtthcvCGzOnGafl8Wrh6WV15w/qC9cEB+ffW63J7WCdT7MrO45fwBAOLn6dKf5LxOnM7Nyd8vHJLX+pw/aH375OyFq/LNOZ1AfSCnloiH7UTyBABogy1ZW/lWtV+Xk+M77E4e+sZ/I0dU+9HKPzn7BCCmtiS7+kS1h+XCcf94uPP4r+SUat9f/Rdnn9qI5AkA0Ab/kWf6HqcTB+UVu4OPA/KLE6r19ffyvd0BAGLmv/JvfY/T2M/lNbuDj33yyzHVergpebsD2oDkCQAAAAAMkDwBAAAAgAGSJwBAG/xIXtivWh/dly/tDj4eyD8+Uq39z8vzdgcAiJkfyk8GVevOV3LP7uBjQ/52R7UG+6Tf7oA2IHkCALTBDhk69KJqfy4fBDxJb3PxL3JXtfce+pm4Hz4FAPGxQ0aGd6v2qlwLeJLe06W/yi3VPjj8U9lpd0IbkDwBANqib/wdmdwv8mjmtKQuLle+DPfZA/n44nk5NvOtyP7TMh3wRD4A6HY7j/9Wrg+K3L95Vl69tlL5MtzNDZm7dlFeuvlEZPCk3Ap4Ih9aL1FQnM+xlUgkpPC/B8631kr84ABlhRR5WRFtAtZ6SFldg7gRni5Lv/A22AN5d8x+Ua6n/a/LjT+erXwHlIfkjw8RN0IiboTH8govzmXpF94G25Az4/aLcj0NDsvyzFuV74Dy8NzLR1leLcSZJwBAGx2Q3995X25Mvy579T1QRftflCPTl+X2nfqJEwDEwz758+KcLJ8bloP6Hqiiwd1y6twl+WaxfuKE1uPMU5PF+QhybMvi6EwonXIkqNmIG+HpsuqfeWoOzjyFR9wIj+UVXpzLqn/mqTk489RanHkCAAAAAAMkTwAAAABggOQJAAAAAAz0zD1PAFonjmGEuAG0FnEDQKM6IW70zgMjIprNyMvixu9Qor7xm5tFu4eer9iu85QVCmWFZ5UV07gRx9gb57L4XQ4nrmUF4bI9AAAAADBA8gQAAAAABkieAAAAAMAAyRMAAAAAGCB5QpNtyZeLc5IaO2TdBG81Y+fl3cUHsun0gXq25N7Se/Lq+FHrBlOrGb8oZ5Y25KnTBzoJ6zwAxBu/yygjeULzPHsg746dlndmPpdHXzvdtK+/lbszl+XY2Jx8+czpBm+bG3Jm/Kwcvrkq9x863bSHT+TWzSvy0vh7co898s7BOg8A8cbvMqqQPKFJtuTjty/LXbUDuffEabnxxYr1mGer+eKyTJ54Ue1Qfi7vvL3M0XhfWzI3fUVuqeB8cOykLH/6ifUIVav59JJcH9utgvWqHJ5e4UhXR2CdB4B443cZtUie0BSbizdkVu9ETr8vC1cPyysvOH/QXjggv756XW5P653J92Vmccv5A9yeLv1JzusAfW5O/n7hkLzW5/xB69snZy9clW/O6UD9gZxaog7bjXUeAOKN32V4IXlCE2zJ2sq3qv26nBzfYXfy0Df+Gzmi2o9W/smR+Bpbkl19otrDcuG4fx3uPP4rOaXa91f/xVGutmKdB4B443cZ3kie0AT/kWf6fo8TB+UVu4OPA/KLE6r19ffyvd0BJf+Vf+trqcd+Lq/ZHXzsk1+OqdbDTcnbHdAWrPMAEG/8LsMbyRMAAAAAGCB5AgAAAAADJE9ogh/JC/tV66P78qXdwccD+cdHqrX/eXne7oCSH8pPBlXrzldyz+7gY0P+dke1Bvuk3+6AtmCdB4B443cZ3kie0AQ7ZOjQi6r9uXwQ8FSxzcW/yF3V3nvoZ+J+YA20HTIyvFu1V+VawBN7ni79VW6p9sHhn8pOuxPagnUeAOKN32V4I3lCU/SNvyOT+0UezZyW1MXlyheDPnsgH188L8dmvhXZf1qmA55O1st2Hv+tXB8UuX/zrLx6baXypXubGzJ37aK8dPOJyOBJuRXw5B9Eg3UeAOKN32V4SRQU53NsJRIJiWo2Iy/rfw+cb62V+MEB6+WfwR7Iu2P2S0M97X9dbvzxbOX7cDwkf3wo0vmKcnnpF+sF028yt1/I52lwWJZn3qp814SH514+Gst1Pkp6vmK7zlNWKJQVnlVWTONGHGNvnMvidzmcuJYVhDNPaKID8vs778uN6ddlr74fpGj/i3Jk+rLcvlN/JxL75M+Lc7J8blgO6mutiwZ3y6lzl+SbxfoBGlFinQeAeON3GZU489RkkZcV4VHC+kfhm6O3zzw1B2eewtPzFdt1nrJCoazwrLJiGjfiGHvjXBa/y+HEtawgnHkCAAAAAAMkTwAAAABggOQJAAAAAAz0zD1PAFonjmGEuAG0FnEDQKM6IW7wwIgmi7wsbloOJcqblqNeN+J4E2yU2L7Ci/W2HOF88bCe7hHX2Bv17xdlhUNZrcVlewAAAABggOQJAAAAAAyQPAEAAACAAZInAAAAADBA8gT0tC25t/SevDp+1Lr52GrGL8qZpQ156vQBoBtsyZeLc5IaO2Q9+MFqxs7Lu4sPZNPpA52E2At0K5InoFdtbsiZ8bNy+Oaq3H/odNMePpFbN6/IS+PvyT32uoDO9+yBvDt2Wt6Z+Vwefe10077+Vu7OXJZjY3Py5TOnG9qP2At0NZInoCdtydz0FbmlfrgPjp2U5U8/sR6vazWfXpLrY7vVD/mqHJ5e4Sgo0NG25OO3L8tdlTTtPXFabnyxYj3a3Gq+uCyTJ15USdTn8s7by5yB6gjEXqDbkTwBPejp0p/kvP7xPjcnf79wSF7rc/6g9e2Tsxeuyjfn9I/4B3Jqacv5A4BOs7l4Q2Z14jT9vixcPSyvvOD8QXvhgPz66nW5Pa0TqPdlZpFtud2IvUD3I3kCes6WZFefqPawXDi+w+7kYefxX8kp1b6/+i+OgAIdaUvWVr5V7dfl5Lj/ttw3/hs5otqPVv7J2ae2IvYCcUDyBPSc/8q/9XX2Yz+X1+wOPvbJL8dU6+Gm5O0OADrKf+SZvsfpxEF5xe7g44D84oRqff29fG93QFsQe4E4IHkCAAAAAAMkTwAAAABggOQJ6Dk/lJ8Mqtadr+Se3cHHhvztjmoN9km/3QFAR/mRvLBftT66L1/aHXw8kH98pFr7n5fn7Q5oC2IvEAckT0DP2SEjw7tVe1WuBTzN6enSX+WWah8c/qnstDsB6Cg7ZOjQi6r9uXwQ8CS9zcW/yF3V3nvoZ+J+uBuiRuwF4oDkCehBO4//Vq4Pity/eVZevbZS+ULGzQ2Zu3ZRXrr5RGTwpNwKeCoUgPbqG39HJveLPJo5LamLy5Uvw332QD6+eF6OzXwrsv+0TAc8kQ/RIPYC3S9RUJzPsZVIJCSq2Yy8rP89cL61VuIHB+JbVkzXDf3SxWD6Lff2yxo9DQ7L8sxble8h8fDcy0cjm68osX2FF+ttOcL50i+8DfZA3h2zX5Traf/rcuOPZyvfAeUh+eNDsVxeUYpr7I3694uywqGs1uLME9Cz9smfF+dk+dywHNTX4RcN7pZT5y7JN4v1f7wBdIID8vs778uN6ddlr74Hqmj/i3Jk+rLcvlM/cUKUiL1AN+PMU5NFXhZHq0OJ/Gh1hGXVP/rZHJx5Ci/W21dct+UI56v+mafm4MxTeHGNvVH/flFWOJTVWpx5AgAAAAADJE8AAAAAYIDkCQAAAAAM9Mw9TwBaJ45hhLgBtBZxA0CjOiFu8MCIJrPK4sbvUCK/8ZuyQomyrChFXoc8gCCUyOMGcT6UKJdXlKKOGzycIpzIyyJuhNIpcYPL9gAAAADAAMkTAAAAABggeQIAAAAAAyRPAAAAAGCA5AkA4GFLvlyck9TYIevBD1Yzdl7eXXwgm04fALrBltxbek9eHT9qPfjBasYvypmlDXnq9AHAHMkTAKDSswfy7thpeWfmc3n0tdNN+/pbuTtzWY6NzcmXz5xuADrX5oacGT8rh2+uyv2HTjft4RO5dfOKvDT+ntzjaAjQEJInAIDLlnz89mW5q5KmvSdOy40vVqxHm1vNF5dl8sSLKon6XN55e5kzUEBH25K56StySyVNB8dOyvKnn1iPNreaTy/J9bHdKolalcPTK5yBAhpA8gQAKNlcvCGzOnGafl8Wrh6WV15w/qC9cEB+ffW63J7WCdT7MrO45fwBQKd5uvQnOa8Tp3Nz8vcLh+S1PucPWt8+OXvhqnxzTidQH8ipJbZlwBTJEwDAsSVrK9+q9utycnyH3clD3/hv5IhqP1r5J2efgI60JdnVJ6o9LBeO+2/LO4//Sk6p9v3Vf3H2CTBE8gQAcPxHnul7nE4clFfsDj4OyC9OqNbX38v3dgcAHeW/8m99j9PYz+U1u4OPffLLMdV6uCl5uwOAOkieAAAAAMAAyRMAAAAAGCB5AgA4fiQv7Fetj+7Ll3YHHw/kHx+p1v7n5Xm7A4CO8kP5yaBq3flK7tkdfGzI3+6o1mCf9NsdANRB8gQAcOyQoUMvqvbn8kHAk/Q2F/8id1V776GfifsBXgA6xQ4ZGd6t2qtyLeBJek+X/iq3VPvg8E9lp90JQB0kTwCAkr7xd2Ryv8ijmdOSurhc+TLcZw/k44vn5djMtyL7T8t0wBP5ALTXzuO/leuDIvdvnpVXr61Uvgx3c0Pmrl2Ul24+ERk8KbcCnsgHoFKioDifYyuRSEhUs2mV9b8HzrfWSvzgQHzLinJ5UVYoUZYVpcjrMMLtS7/wNtgDeXfMflGup/2vy40/nq18B5SH5I8PxTduEOdDiXJ5RSnquKFfeBtsQ86M2y/K9TQ4LMszb1W+A8rDcy8fjXb7imtZxI1QOiVucOYJAFDlgPz+zvtyY/p12avvgSra/6Icmb4st+/UT5wAdIJ98ufFOVk+NywH9T1QRYO75dS5S/LNYv3ECUAlzjw1GUcWwovyyEKsj3DFsKwoRV6HEW5f9c88NQdnnsIjzneXqONG/TNPzcGZp/CIG+F1StzgzBMAAAAAGCB5AgAAAAADJE8AAAAAYKBn7nkC0DpxDCPEDaC1iBsAGtUJcYMHRjRZ1DcExvXGb26CDSeuZUUpznGDG4nDifO6EelvCnEjFMoKL/Ky4rotxzDOB+GyPQAAAAAwQPIEAAAAAAZIngAAAADAAMkTAAAAABggeeoJW/Ll4pykxg5ZN/ZZzdh5eXfxgWw6fXSnLbm39J68On7UevCD1YxflDNLG/LU6QMA0Gxx/U0Beg3b8naQPMXdswfy7thpeWfmc3n0tdNN+/pbuTtzWY6NzcmXz5xu3WRzQ86Mn5XDN1fl/kOnm/bwidy6eUVeGn9P7rHlA0BzxfU3Beg1bMvbRvIUa1vy8duX5a7aKPaeOC03vlixHl1pNV9clskTL6qN5HN55+3lLjvCsCVz01fklkqaDo6dlOVPP7EebW41n16S62O7VRK1KoenVzgDBQBNE9ffFKDXsC2HQfIUY5uLN2RWbxjT78vC1cPyygvOH7QXDsivr16X29N6A3lfZha3nD90vqdLf5LzOnE6Nyd/v3BIXutz/qD17ZOzF67KN+d0AvWBnFrqnvkCgE4W198UoNewLYdD8hRbW7K28q1qvy4nx3fYnTz0jf9Gjqj2o5V/dsnRhS3Jrj5R7WG5cNx/vnYe/5WcUu37q//i7BMAhBbX3xSg17Ath0XyFFv/kWdfq9aJg/KK3cHHAfnFCdX6+nv53u7Q4f4r/9b3OI39XF6zO/jYJ78cU62Hm5K3OwAAti2uvylAr2FbDovkCQAAAAAMkDwBAAAAgAGSp9j6kbywX7U+ui9f2h18PJB/fKRa+5+X5+0OHe6H8pNB1brzldyzO/jYkL/dUa3BPum3OwAAti2uvylAr2FbDovkKbZ2yNChF1X7c/kg4Ekpm4t/kbuqvffQz8T90LrOtUNGhner9qpcC3iS3tOlv8ot1T44/FPZaXcCAGxbXH9TgF7DthwWyVOM9Y2/I5P7RR7NnJbUxeXKl509eyAfXzwvx2a+Fdl/WqYDnrjSaXYe/61cHxS5f/OsvHptpfJluJsbMnftorx084nI4Em5FfBEPgCAubj+pgC9hm05nERBcT7HViKRkKhm0yrrfw+cb62V+MEB64VmwfQbpO0XoXna/7rc+OPZymf8e0j++FCk86VfeBtsQ86M2y/K9TQ4LMszb1W+A8rDcy8fjXbdoKyuEee4Eduy4rp9xfU3hbgRCmWFF3lZcd2WYxjng3DmKfYOyO/vvC83pl+Xvfoa16L9L8qR6cty+079DaMz7ZM/L87J8rlhOajvgSoa3C2nzl2SbxbrJ04AgEbF9TcF6DVsy9vFmacm67wjC83ReWeemoMzT+FFWVaU4hw3YltWXLevuP6mEDdCoazwIi8rrttyDON8EM48AQAAAIABkicAAAAAMEDyBAAAAAAGeuaeJwCtE8cwQtwAWou4AaBRnRA3eueBEXG9QTquZUW0Wup1g4dThBNlWVGKax1SVni6rEjjBnG+a7DOh6fX+dj+LrN/GEqnxA0u2wMAAAAAAyRPAAAAAGCA5AkAAAAADJA8AQAAAIABkifAyJbcW3pPXh0/at1gajXjF+XM0oY8dfoAgErEDfSaKNd5ti+0B8kTUM/mhpwZPyuHb67K/YdON+3hE7l184q8NP6e3Nt0ugGARtxAr4lynWf7QhuRPAGBtmRu+orcUsH54NhJWf70E+sRqlbz6SW5PrZbBetVOTy9wpEuAA7iBnpNlOs82xfai+QJCPB06U9yXgfoc3Py9wuH5LU+5w9a3z45e+GqfHNOB+oP5NTSlvMHAL2MuIFeE+U6z/aFdiN5AnxtSXb1iWoPy4XjO+xOHnYe/5WcUu37q//iKBfQ84gb6DVRrvNsX2g/kifA13/l3w9Va+zn8prdwcc++eWYaj3clLzdAUDPIm6g10S5zrN9of1IngAAAADAAMkTAAAAABggeQJ8/VB+Mqhad76Se3YHHxvytzuqNdgn/XYHAD2LuIFeE+U6z/aF9iN5AnztkJHh3aq9KtcCntjzdOmvcku1Dw7/VHbanQD0LOIGek2U6zzbF9qP5AkIsPP4b+X6oMj9m2fl1WsrlS/d29yQuWsX5aWbT0QGT8qtgCf/AOgdxA30mijXebYvtFuioDifYyuRSEjhfw+cb62V+MEBygrJKiui1VKvG/rFesH0m8ztF/J5GhyW5Zm3Kt814eG5l49GOl9xLCtKca1DygpPlxVp3CDOdw3W+eas87H9XWb/MJROiRuceQLq2id/XpyT5XPDclBfa100uFtOnbsk3yzWD9AAeg1xA70mynWe7Qvtw5mnJot1th/DIwtmR9OagzNP3SWudUhZ4emyIo0bxPmuwTofntmZp+bgzFN4vRg3OPMEAAAAAAZIngAAAADAAMkTAAAAABjomXueALROHMMIcQNoLeIGgEZ1QtzomeRp/f+uON9aK/njQ7G8cc660ZGyQqGs7sLyCi/qsnj4SzhxLStKLK/wKCs8q6wI90Uj3ceOqA6DcNkeAAAAABggeQIAAAAAAyRPAAAAAGCA5AkAAAAADJA8VdiSLxfnJDV2yLopzWrGzsu7iw9k0+kDANDNtuTe0nvy6vhR68EPVjN+Uc4sbchTpw8AQLPFZx+b5Kno2QN5d+y0vDPzuTz62ummff2t3J25LMfG5uTLZ043AED32dyQM+Nn5fDNVbn/0OmmPXwit25ekZfG35N7HCkDgOaK2T42yZNlSz5++7LcVQt074nTcuOLFeuxi1bzxWWZPPGiWsCfyztvL3MGCgC60pbMTV+RWyppOjh2UpY//cR6tLnVfHpJro/tVknUqhyeXuEMFAA0Tfz2sUmelM3FGzKrF+r0+7Jw9bC88oLzB+2FA/Lrq9fl9rReuO/LzOKW8wcAQLd4uvQnOa8Tp3Nz8vcLh+S1PucPWt8+OXvhqnxzTidQH8ipJeI8ADRDHPexSZ5URry28q1qvy4nx3fYnTz0jf9Gjqj2o5V/cvYJALrKlmRXn6j2sFw47h/ndx7/lZxS7fur/+LsEwCEFs99bJIn+Y8809dfnjgor9gdfByQX5xQra+/l+/tDgCArvBf+be+x2ns5/Ka3cHHPvnlmGo93JS83QEAsG3x3McmeQIAAAAAAyRPAAAAAGCA5El+JC/sV62P7suXdgcfD+QfH6nW/uflebsDAKAr/FB+Mqhad76Se3YHHxvytzuqNdgn/XYHAMC2xXMfm+RJdsjQoRdV+3P5IOApH5uLf5G7qr330M/E/ZAmAECn2yEjw7tVe1WuBTxJ7+nSX+WWah8c/qnstDsBALYtnvvYJE9K3/g7Mqky40czpyV1cbnyRV3PHsjHF8/LsZlvVUZ8WqYDnhYCAOhMO4//Vq4Pity/eVZevbZS+TLczQ2Zu3ZRXrr5RGTwpNwKeCIfAMBcHPexEwXF+RxbiUTCehlXMP32Y/slXp72vy43/ni28vn0HpI/PiSF/z1wvrVW4gcHJKrFp+uQssKhrO7C8gov6rL0C2+DbciZcftFuZ4Gh2V55q3Kd0B5eO7loyyvkKIsK0osr/AoKzyrrAj3RSPdx46oDoNw5qnkgPz+zvtyY/p12auvzyza/6Icmb4st+/UX6gAgE62T/68OCfL54bloL4Hqmhwt5w6d0m+WayfOAEAGhWvfWzOPDUZZ57Co6zw4lpWlFhe4UVdVv0zT83BmafwoiwrSiyv8CgrPKusjjrz1ByceQIAAACALkLyBAAAAAAGSJ4AAAAAwEDP3PMEoHXiGEaIG0BrETcANKoT4kZPJE8AAAAAEBaX7QEAAACAAZInAAAAADBA8gQAAAAABkieAAAAAMAAyRMAAAAAGCB5AgAAAAADJE8AAAAAYIDkCQAAAAAMkDwBAAAAgAGSJwAAAAAwQPIEAAAAAAZIngAAAADAAMkTAAAAABggeQIAAAAAAyRPAAAAAGCA5AkAAAAADJA8AQAAAIABkicAAAAAMEDyBAAAAAAGSJ4AAAAAwADJEwAAAAAYIHkCAAAAAAMkTwAAAABggOQJAAAAAAyQPAEAAACAAZInAAAAADBA8gQAAAAABno0ecrL7FBCEkOz6lPcOPM2kXW+dwqPOs/PysTQhJSnNM7LpdmyMpHoxOUcZ8SN6BE3QstnZXZiSBI6XuhmaEgmstRUdIgb0SNuhJXPzsqQrp9S3FB1R0WVcOYJbZP/7LYsrDtf0JDsxKgsOJ+BXkLcaERWJgZGZcpdYevrsjA6oBIo5zvQA4gbDchOyMDolA4VZesLMjowJLMkUBaSJ0SkXybXClJYm1Sf/Jj0g/zskIySOaEnEDfCKB5kSaYykiuoOtJNLi0p1W3hCkfcEVfEje3Ly+wVK2pIOpOzY0YhJ5l0UnVbl6k/cNRFI3mylE/fZitOVQ7JhGGanVeZ+lDx9KY1XNb7dHY+KxMmp0IN+6so1/i0qn3J15Cet6rhPWfXaFpUHbovDdF1UNGT+xS5/XlgSh/WWJBR1b81LRX9uNQtv4Hlp+ZX/61rj7rmZ+VNVW+pTMbaAUI7NbDe+SBuqDokbrRIVu5a+0Bp+XB+pLyD2D8p83qHiJ3GNmlgvfNB3FB1SNxojfxncltVVTL9oUyOFCNEv4xMfihW/vTou8r66lUqq+xBuYJaCQpq7VCfXN9VdXg1qYzVk69cOuk5nNW4B86kCmrd8+gvWUjbE2Iz7M+z3GSqkNLzEjjRmYLa8S4kU17lbGda/OuvPBnuOq/tP2mNrHq5KCHL101FVajx1XTrGvZys5et+zOiUb1+NrDeeSBu+NdfeTLcdV7bP3EjQDdOcyxVr58NrHceiBv+9VeeDHed1/ZP3NgOZ77jMTOhkTy5v+uVX60YxW2kFCwCVxZnJ1ZvXBlnyFymYnxOx1K3VLE/pVSGx7QE92darpfisHZ/xXIzNfNrOC25tBVwkqVxKU63mnG5ApU9npSamqLqfhqvs/L8uPorTUN3y6Tc8+wsw5jMW3fwXz8bX++IG6oDcaOVrB03vdOnl5FrpzCZrKgXtJr/+tn4ekfcUB2IG21QnL+Yzl7DSJ7c3ys2LM3Z6IPWFufIgn0kw6V6Y67ZuMusnWLrR059abC/uuV6cubLFViK7DKcemh0mvWPcjpdyKgf61rVda4HqxPMTMsvDred5dctSjtCzvc4zVvXIG4QN7qHXU/JQtKax9qmZh1AixA3iBvdLeesd3Gct+3inie35B4ZcD7aBmSP2pqC5L97pP5PyrE3qq4e739DjnkMmzoy4nwqGzmiNrkqdfvLPRZ9Be/eXWbletq7q+aa9wFrhh/Jd66LWutOS/+kXNJf9VOcpqZkdGDAus53aGLW8JroYKZ1tp3l1xXyszI0uqBi/IcyyU0KnYe4QdzoWOvqX0oyOetAqdWoHSG15qm/TP1BuvXWz1ggbhA3Ol5eshNDMqCfUJVMS26+tm56FckTmmJkXv8opyXlCh7rCzqwTfADHZJ+xKr+4Vqfsn8k7MZ5VPnCqPrM40PRnYgbrdO/a6/6PynpD+eldN+30j8yLx+ma3dagW5B3IiCfjDGgIwurKu8KccDZqqQPIVk/0Cty+3Pqn6FnCeWVFu4W7tpZ61HIlWq29/AHuvo4aOaX7+cPPYo11PNU1Py8pk10XvFfYDJdJr7RyZlXj/6Ux/dzGUkbR2sWRCPwRtiWj7QLYgbZcSNFrGW9bo8zjnf0fWIG2XEjVbST0gckKn1pKQyOVnjkpcaJE9hjRyxHhm9PvWmzBbPGeezMvvmlHW2oKR4enthtOKRmqV39iSPiXUm3ri/XSrk2OWW+9NHChp4eer6lLw5m3UCWl6ys2+qjUV9TB0R6+Ss6bQ4j+McKo1LDdo/ILusc9hJ2VN5brtKwNFP0/Jjrn9yrXTJTblxHlWeyqjPa1zO122IG8SNVnPqYWF0qLyOKfpx0/p1Bz1TD3FC3CBuRMB+P1xS0rk1mXeftkaZ2hHrQT43cNbc0Oh0r3OTXPEpJJ6Ne9iM2SNBG+mvpp8GHh2qb7isLafqJkijaSneQOnRBNSxu97sG1E9lkMj5ZssP6fOuv++x/jenNq5qtezBtY7D8QNp568+guoY+JGA4o3wXs0XTcvXat6PWtgvfNA3HDqyau/gDombhgKiBl2U/2gjN7Emacm0GcGijfh2vSpTvst7hVG5mVNv9293KPqVd/MW3XmoIH+Kq771f2s/U72OF/r2ntJ1lzTnUylVRnz9lGgIqNp0W/qzkm6sifVW0ZyAdfJ9k9eKo13/XGudBSpgmldAF2GuEHcaLn+SVUPGVUPropQ9aB2BIV7v7sTcYO40UrFe6wRLKEzKOczmkpfMzoqj9KdeL2oPW0L+pIvfkGBDkLcANAo4gYQJc48haUfI62ffjYx6zqSoR/vaF8LXPNoTwAgbgBoFHED6AgkT2GVbjKckgEd1KxGP95RdUum5XccaAFQjbgBoFHEDaAjkDyFtr3rbwH0MuIGgEYRN4BOwD1PAAAAAGCAM08AAAAAYIDkCQAAAAAMkDwBAAAAgAGSJwAAAAAwQPIEAAAAAAZ6NHnKy+xQQhJD7hfNbZd+e7Ya10TW+d4qzjS3vJxGedRlflYmhiZUzRQ1s75hi2q9Qxlxo3mIG1HJZ2dlSNdj8b1Auo6p0AgRN5qHuBGZfFZmJ4ZccWNIJggcJZx5QtPlP7stC+vOF7RE8Y3yQFwQN1ogOyEDo1Oy7q7X9QUZHRiSWfaDEAPEjVZQSfrAqEy5K1YFkYXRAZVAOd97HMkTQtIv7StIIfAFfSb9wFR+dsh+ozzQtYgbrZeX2Ss6UCQlncmJfqVjoZCTTFq/YHVdpv7AXhC6DXEjCsWDs9bLl624oZpcWlKq28IVzuhpJE+W8mnebMUlDkMy0cjhueyEDJVOcXpfGpHX/ZTG71+G1V+dcdWyT+kP6fFVDe85G3nVv3taPMtRdeM+daunt6In9yly+/PAlD5asSCjqn9rWir6calbfgPLRc2v/lvsj4rkZ+VNVb+pTMYKZGinBtbPIMQN4kYr5D+T26pKk+kPZXKkuBvZLyOTH4qVPz36rrJeEZEG1s8gxA3iRktk5a6VOaXlw/mRcgLaPynzOokiKbWpjLIH5Qrqx6OgVg71yfVdVYdXk8pYPfnIFNROrBpXsqB+j6qGTRbSdgGWXDpZ9fdy4y7Ds79kqpDS0xg4Mfa0JFOputNSyHj1U92ff72UJ8Ndl7X9J62RVde3ErJ83VRUhRpfTbfYcdY1aybdnxGN6vW4gfWzBnGjXJe1/RM3Wsmpn96a6TaqXo8bWD9rEDfKdVnbP3GjCXoyJjaO5Mn9XW8kao0pbkuloBK4FjnBTDXJdHHYXCFTM2yxjFQhU9pYlVza3qhL/RXHpzbqYo+5TMX0+StPS3k+gqZFbyDliSnNb7FenGlLlsal1ExvdV0Wx6Pm0/le249h+a7+yvPj6q80Db0hk3LXjbOse6wO2st/PW58/SRuVNZlcTzEjVYr1kOPV0OE/NfjxtdP4kZlXRbHQ9xoGit50kmlXpaupFMl7O7663UkT+7vFRug5gSHwI3G6ce1Mdv8xqn+olfKTLqQdh+xKZZRDCAVh22UmiDixW9a9PbgmpaAcdn9OUdjiv3pjSadVkG4eqxadV3qweoEM9Pyi8Nta7nETCmgOd97sQ7arnpdD7N+Ejcq61IPRtxotZxzVLmX6yB61et6mPWTuFFZl3ow4kYz2fWZLCStuqhtataVHsU9T27JPTLgfLQNyB611ZlIHnuj6jrQfnnjmB74kXxXvFw2P2tdFzwwMCCjo1MytbAgrmeZ2HKPrW57d1VdVdr/hlijM7F3V801qQPWjLimRUkdGXE+lY0cUWGiqH9SLumv+ikrU1MyqqZbX+c7NDFreE10sLrlF4VYLrGg15vRBfVb8KFMcrFx5yFuEDc6Xl6yE0MyoJ80k0xLbr62DhEx4gZxo2Otq38pyeSch0WoJqcyTV0N61N/EB41wwMjIpSViYEpK1AlUylJpzOSyeQkV+jsG/9H5vVGk5aUK3isL+jANsEGFBH9KFa93qxP2T8mduM8qnxhVH3mscPxRdxAWPpGeLUDvbCu8qYcN3z3BOIGtqd/1171f1LSH85L6TkzSv/IvHyY1gumMinuVSRPTbL+OOd8KsrLZ/pRR7JXrIM6+e/UKif6zK+szc/L5OSIjKg1s9/pXjKwx8ruH9WsnTl5rEdnouYpSlXT4li4WxuOstZjVir1j0zKvH70pz76kMtI2oq+C+IxeENMywfiirjROOJGI9ROdGJAptaTah3KyRqnrmOBuNE44oYha51Yl5pVDBVInpplYdR5TKaWl+zsm+oHS31MHRH3yWK9AZcCjX505pv20aFSAOrfpUKOCo5Tb7oe0amPHDbwUtT1KXlztliOx7QUT8mraXY/BrT0/qDkMXlDBz3ncZxDpXGpQfsHZJd1DjspeyrPbVcJODphWj4s/ZNrpVPn5cY5gpjKqM9rXM7XrYgbVYgbzWS/ryUp6dyazLsPI6O7ETeqEDeaxqmvhdEhmXXXl1o++jUp1JdD7Yj1oOqbDmtvQrQ53QNvFLRvJkx6Pq7T4ybGmn6cxl128abeir+bPzrU+zGmVTdBqjJq+9GN+6EEAdMcUHelp9Ooxr650KN+GynfZLk4dRZYPbHSWzexdobq9bGB9bMGcaO67ogbTVa8Ud63qb4xHq1RvT42sH7WIG5U1x1xowUCYkds57lBnHlqlj2/kzXnhjotmUxLJjfvOgrUL5MfZiqu5VUBynrzuxpMZP2xlM6SjsxXXver+sus/U72OF/r2nupclpS1dOiqDLW9Bujq6Ynk3OfxdBv6s5JurIn1VtGcgHXzfdPXiqNV19e4HlAyKh8IOaIGyXEjeYq3iuJGCJulBA3WqB/UtWXXn9cFabXn1xBeNaMLaEzKOczup6+vn1UFvSlXKzhAIwQNwA0iriB3sWZJwAAAAAwQPIEAAAAAAZIngAAAADAAPc8AQAAAIABzjwBAAAAgAGSJwAAAAAwQPIEAAAAAAZIngAAAADAAMkTAAAAABggeQIAAAAAAyRPAAAAAGCA5AkAAAAADJA8AQAAAIABkicAAAAAMEDyBAAAAAB1ifz/J5YZ4IAcgEcAAAAASUVORK5CYII=\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 20.8px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.4px; text-align: left; transform-origin: 384px 10.4px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 62.4px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 31.2px; text-align: left; transform-origin: 384px 31.2px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eWrite a function that accepts a MATLAB variable, POS. You are ensured that POS is always a row vector of 8 elements, and each element satisfies 1 \u0026lt;= POS(i) \u0026lt;= 8. This vector represents the wind farm layout: POS(i) is the row position of the sole wind turbine in column \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003ei\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e. Given the layout, output the number of wind turbines in\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003egood position\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 41.6px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 20.8px; text-align: left; transform-origin: 384px 20.8px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eAs seen in the examples from the figure above, we have 4 turbines in \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003egood position\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e for POS = [8 1 6 3 6 7 3 4]; 6 turbines for POS = [3 1 5 2 8 7 4 6]; and, 2 turbines for POS = [4 5 7 7 3 2 6 8].\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = assess_windfarm(POS)\r\n  y = POS;\r\nend","test_suite":"%%\r\nassert(isequal(assess_windfarm([5 6 6 6 6 3 5 1]),3))\r\n%%\r\nassert(isequal(assess_windfarm([1 8 3 5 8 2 2 3]),5))\r\n%%\r\nassert(isequal(assess_windfarm([8 4 3 2 4 3 2 4]),2))\r\n%%\r\nassert(isequal(assess_windfarm([1 5 1 5 7 2 4 5]),6))\r\n%%\r\nassert(isequal(assess_windfarm([1 4 6 2 7 8 7 5]),5))\r\n%%\r\nassert(isequal(assess_windfarm([3 6 2 8 5 5 2 1]),4))\r\n%%\r\nassert(isequal(assess_windfarm([3 7 8 6 6 2 5 7]),4))\r\n%%\r\nassert(isequal(assess_windfarm([4 8 1 3 5 1 6 5]),6))\r\n%%\r\nassert(isequal(assess_windfarm([5 7 7 7 3 4 7 1]),3))\r\n%%\r\nassert(isequal(assess_windfarm([1 3 5 8 6 3 3 7]),6))\r\n%%\r\nassert(isequal(assess_windfarm([8 6 3 1 7 5 8 1]),8))\r\n%%\r\nassert(isequal(assess_windfarm([5 3 7 2 4 4 7 6]),4))\r\n%%\r\nassert(isequal(assess_windfarm([2 3 2 6 5 2 2 4]),1))\r\n%%\r\nassert(isequal(assess_windfarm([8 5 1 1 7 4 4 7]),4))\r\n%%\r\nassert(isequal(assess_windfarm([3 5 6 7 3 6 8 1]),5))\r\n%%\r\nassert(isequal(assess_windfarm([5 4 3 3 7 8 2 7]),2))\r\n%%\r\nassert(isequal(assess_windfarm([2 8 7 4 6 4 7 3]),6))\r\n%%\r\nassert(isequal(assess_windfarm([1 5 8 2 4 6 1 8]),8))\r\n%%\r\nassert(isequal(assess_windfarm([7 5 2 4 5 8 7 8]),3))\r\n%%\r\nassert(isequal(assess_windfarm([6 4 8 4 2 4 6 5]),6))\r\n%%\r\nassert(isequal(assess_windfarm([7 8 8 5 8 1 1 3]),3))\r\n%%\r\nassert(isequal(assess_windfarm([5 5 8 5 4 5 6 1]),2))\r\n%%\r\nassert(isequal(assess_windfarm([7 2 4 3 3 6 2 3]),3))\r\n%%\r\nassert(isequal(assess_windfarm([2 2 3 8 4 4 2 8]),3))\r\n%%\r\nassert(isequal(assess_windfarm([4 7 5 4 8 7 4 7]),4))\r\n%%\r\nassert(isequal(assess_windfarm([8 4 3 5 8 6 4 6]),6))\r\n%%\r\nassert(isequal(assess_windfarm([8 5 5 3 1 2 1 4]),3))\r\n%%\r\nassert(isequal(assess_windfarm([1 8 6 1 1 2 4 2]),5))\r\n%%\r\nassert(isequal(assess_windfarm([1 6 3 7 4 4 1 1]),4))\r\n%%\r\nassert(isequal(assess_windfarm([1 5 2 7 7 8 4 2]),5))\r\n%%\r\nassert(isequal(assess_windfarm([2 5 7 3 4 6 8 2]),6))\r\n%%\r\nassert(isequal(assess_windfarm([6 5 4 8 4 2 6 5]),3))\r\n%%\r\nassert(isequal(assess_windfarm([3 7 8 8 2 2 1 5]),2))\r\n%%\r\nassert(isequal(assess_windfarm([1 4 8 5 3 2 4 8]),6))\r\n%%\r\nassert(isequal(assess_windfarm([1 4 7 1 6 8 3 2]),6))\r\n%%\r\nassert(isequal(assess_windfarm([6 8 5 8 2 7 3 4]),6))\r\n%%\r\nassert(isequal(assess_windfarm([2 7 5 6 7 1 8 4]),5))\r\n%%\r\nassert(isequal(assess_windfarm([7 6 7 2 4 5 8 7]),1))\r\n%%\r\nassert(isequal(assess_windfarm([8 5 5 7 1 8 4 1]),6))\r\n%%\r\nassert(isequal(assess_windfarm([6 2 2 5 3 3 4 4]),2))\r\n%%\r\nassert(isequal(assess_windfarm([4 5 2 2 1 3 7 2]),3))\r\n%%\r\nassert(isequal(assess_windfarm([6 6 7 7 3 3 5 3]),2))\r\n%%\r\nassert(isequal(assess_windfarm([7 7 5 3 6 2 4 4]),4))\r\n%%\r\nassert(isequal(assess_windfarm([5 8 7 8 2 5 1 7]),5))\r\n%%\r\nassert(isequal(assess_windfarm([5 7 8 8 4 1 5 2]),5))\r\n%%\r\nassert(isequal(assess_windfarm([2 3 1 6 6 5 3 7]),3))\r\n%%\r\nassert(isequal(assess_windfarm([5 8 8 3 5 3 5 7]),6))\r\n%%\r\nassert(isequal(assess_windfarm([6 2 7 1 4 6 7 3]),6))\r\n%%\r\nassert(isequal(assess_windfarm([6 8 2 2 2 3 3 8]),3))\r\n%%\r\nassert(isequal(assess_windfarm([1 5 2 7 2 5 8 3]),8))\r\n%%\r\nassert(isequal(assess_windfarm([1 2 4 3 2 8 6 8]),3))\r\n%%\r\nassert(isequal(assess_windfarm([4 8 1 5 7 2 8 7]),6))\r\n%%\r\nassert(isequal(assess_windfarm([7 5 7 3 2 3 5 7]),5))\r\n%%\r\nassert(isequal(assess_windfarm([3 4 7 5 8 2 7 6]),4))\r\n%%\r\nassert(isequal(assess_windfarm([2 4 4 5 7 1 7 7]),3))\r\n%%\r\nassert(isequal(assess_windfarm([3 4 5 6 6 7 4 4]),0))\r\n%%\r\nassert(isequal(assess_windfarm([8 5 7 3 5 5 8 1]),6))\r\n%%\r\nassert(isequal(assess_windfarm([5 5 1 8 8 4 7 2]),4))\r\n%%\r\nassert(isequal(assess_windfarm([5 3 4 7 2 3 4 3]),2))\r\n%%\r\nassert(isequal(assess_windfarm([7 8 2 2 6 4 8 8]),2))\r\n%%\r\nassert(isequal(assess_windfarm([6 7 4 6 8 5 8 6]),6))\r\n%%\r\nassert(isequal(assess_windfarm([4 6 8 2 4 8 4 6]),8))\r\n%%\r\nassert(isequal(assess_windfarm([8 8 6 1 1 5 5 8]),2))\r\n%%\r\nassert(isequal(assess_windfarm([6 6 5 3 8 5 1 6]),5))\r\n%%\r\nassert(isequal(assess_windfarm([5 1 8 3 2 1 3 2]),3))\r\n%%\r\nassert(isequal(assess_windfarm([6 1 3 3 8 4 7 5]),6))\r\n%%\r\nassert(isequal(assess_windfarm([7 1 8 7 1 4 3 6]),4))\r\n%%\r\nassert(isequal(assess_windfarm([2 5 5 5 4 1 5 4]),2))\r\n%%\r\nassert(isequal(assess_windfarm([1 4 4 5 7 6 7 1]),2))\r\n%%\r\nassert(isequal(assess_windfarm([2 4 8 7 4 3 1 6]),4))\r\n%%\r\nassert(isequal(assess_windfarm([5 2 4 2 7 3 8 1]),8))\r\n%%\r\nassert(isequal(assess_windfarm([7 6 5 6 6 1 8 1]),3))\r\n%%\r\nassert(isequal(assess_windfarm([3 2 8 1 5 6 6 7]),2))\r\n%%\r\nassert(isequal(assess_windfarm([1 7 5 6 2 5 6 8]),4))\r\n%%\r\nassert(isequal(assess_windfarm([4 1 1 6 7 6 3 8]),3))\r\n%%\r\nassert(isequal(assess_windfarm([5 8 1 2 7 8 7 3]),3))\r\n%%\r\nassert(isequal(assess_windfarm([2 7 7 3 2 3 7 7]),1))\r\n%%\r\nassert(isequal(assess_windfarm([5 5 3 6 7 4 4 4]),1))\r\n%%\r\nassert(isequal(assess_windfarm([3 6 8 8 6 3 6 2]),6))\r\n%%\r\nassert(isequal(assess_windfarm([1 2 2 5 1 7 6 8]),3))\r\n%%\r\nassert(isequal(assess_windfarm([4 6 8 5 3 8 1 3]),8))\r\n%%\r\nassert(isequal(assess_windfarm([8 3 3 1 8 2 3 8]),4))\r\n%%\r\nassert(isequal(assess_windfarm([4 5 5 6 1 5 1 7]),4))\r\n%%\r\nassert(isequal(assess_windfarm([3 7 2 5 8 1 1 1]),5))\r\n%%\r\nassert(isequal(assess_windfarm([6 5 1 7 5 1 1 2]),3))\r\n%%\r\nassert(isequal(assess_windfarm([7 1 2 2 1 7 6 6]),1))\r\n%%\r\nassert(isequal(assess_windfarm([6 5 3 6 1 2 1 8]),3))\r\n%%\r\nassert(isequal(assess_windfarm([8 1 4 6 3 7 5 4]),6))\r\n%%\r\nassert(isequal(assess_windfarm([3 7 8 6 4 8 3 5]),6))\r\n%%\r\nassert(isequal(assess_windfarm([8 3 3 8 1 3 5 2]),6))\r\n%%\r\nassert(isequal(assess_windfarm([6 7 5 6 7 2 5 1]),3))\r\n%%\r\nassert(isequal(assess_windfarm([5 7 8 4 3 6 8 5]),4))\r\n%%\r\nassert(isequal(assess_windfarm([8 2 1 3 4 4 3 6]),2))\r\n%%\r\nassert(isequal(assess_windfarm([1 4 3 3 1 5 3 2]),3))\r\n%%\r\nassert(isequal(assess_windfarm([1 3 5 7 1 8 2 7]),8))\r\n%%\r\nassert(isequal(assess_windfarm([7 8 2 5 4 2 5 5]),2))\r\n%%\r\nassert(isequal(assess_windfarm([2 5 8 4 6 4 1 3]),8))\r\n%%\r\nassert(isequal(assess_windfarm([7 3 1 5 3 6 5 7]),6))\r\n%%\r\nassert(isequal(assess_windfarm([7 2 1 7 6 1 8 5]),4))\r\n%%\r\nassert(isequal(assess_windfarm([5 5 7 7 4 1 6 3]),4))\r\n%%\r\nassert(isequal(assess_windfarm([1 1 1 1 1 1 1 1]),0))\r\n%%\r\nassert(isequal(assess_windfarm([1 8 1 3 1 5 1 8]),8))\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":1,"created_by":255320,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":65,"test_suite_updated_at":"2020-03-29T00:40:23.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2020-03-28T23:55:35.000Z","updated_at":"2026-03-31T14:31:20.000Z","published_at":"2020-03-29T00:40:23.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe renewable energy industry is on the rise in many countries--- and one of the key players is wind energy.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIt is believed that the layout of a wind farm can influence its ability to harness energy. One assumption is that the more scattered the turbines are in the field, the higher the energy yield. Hence, we need to determine how many turbines in a wind farm are in a good position.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYou are given the positions of 8 wind turbines in a field rendered as an 8-by-8 grid of cells. For this problem, a wind turbine is defined to be in a\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003egood position\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e if there are no other turbines in its immediate vicinity of adjacent cells in the grid. Otherwise, it is in a\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ebad position\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. An illustration of these two cases is further explained in the figure below.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"481\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"593\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"middle\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWrite a function that accepts a MATLAB variable, POS. You are ensured that POS is always a row vector of 8 elements, and each element satisfies 1 \u0026lt;= POS(i) \u0026lt;= 8. This vector represents the wind farm layout: POS(i) is the row position of the sole wind turbine in column \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ei\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. Given the layout, output the number of wind turbines in\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003egood position\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAs seen in the examples from the figure above, we have 4 turbines in \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003egood position\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e for POS = [8 1 6 3 6 7 3 4]; 6 turbines for POS = [3 1 5 2 8 7 4 6]; and, 2 turbines for POS = [4 5 7 7 3 2 6 8].\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.png\",\"relationshipId\":\"rId1\"}]},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":44066,"title":"Number of paths on a 3d grid","description":"This problem is inspired by \u003chttps://www.mathworks.com/matlabcentral/cody/problems/1483-number-of-paths-on-a-grid\u003e, which you might want to solve first.\r\n\r\nConsider a 3d grid formed by n vertices vertically down, m vertices horizontally right, l vertices horizontally front. Your starting point is at the top left front vertex. Your destination is the bottom right back vertex. (From one corner to the furthest corner) You are permitted at each vertex to choose to move down,  right or back, that is in the direction towards the destination. You are not to move on what constitutes a back step like moving left, up, or front. If you hit the bottom boundary, right boundary, or back boundary, take it to be given that you move along the 2d boundary.\r\n\r\nEx: in a 2x2X2 grid there are 6 ways. (down, right, back), (d,b,r), (r,d,b), (r,b,d), (b,r,d), (b,d,r)\r\n\r\n4x3x2 has 60 ways\r\n\r\n6x5x4 has 27720 ways\r\n\r\nThis problem can be solved using dynamic programming but there are other methods too.\r\n\r\n","description_html":"\u003cp\u003eThis problem is inspired by \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/1483-number-of-paths-on-a-grid\"\u003ehttps://www.mathworks.com/matlabcentral/cody/problems/1483-number-of-paths-on-a-grid\u003c/a\u003e, which you might want to solve first.\u003c/p\u003e\u003cp\u003eConsider a 3d grid formed by n vertices vertically down, m vertices horizontally right, l vertices horizontally front. Your starting point is at the top left front vertex. Your destination is the bottom right back vertex. (From one corner to the furthest corner) You are permitted at each vertex to choose to move down,  right or back, that is in the direction towards the destination. You are not to move on what constitutes a back step like moving left, up, or front. If you hit the bottom boundary, right boundary, or back boundary, take it to be given that you move along the 2d boundary.\u003c/p\u003e\u003cp\u003eEx: in a 2x2X2 grid there are 6 ways. (down, right, back), (d,b,r), (r,d,b), (r,b,d), (b,r,d), (b,d,r)\u003c/p\u003e\u003cp\u003e4x3x2 has 60 ways\u003c/p\u003e\u003cp\u003e6x5x4 has 27720 ways\u003c/p\u003e\u003cp\u003eThis problem can be solved using dynamic programming but there are other methods too.\u003c/p\u003e","function_template":"function y = count3dPath(x)\r\n  y = x;\r\nend","test_suite":"%%\r\nm = 2; n = 2 ; l = 5;\r\ny_correct = 30;\r\nassert(isequal(count3dPath(m,n,l),y_correct))\r\n \t\t\r\n%%\r\nm = 8; n = 5 ; l = 2;\r\ny_correct = 3960;\r\nassert(isequal(count3dPath(m,n,l),y_correct))\r\n\t\r\n%%\r\nm = 5; n = 5 ; l = 10;\r\ny_correct = 1701700;\r\nassert(isequal(count3dPath(m,n,l),y_correct))\r\n\t\r\n%%\r\nm = 8; n = 4 ; l=2;\r\ny_correct = 1320;\r\nassert(isequal(count3dPath(m,n,l),y_correct))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":1,"created_by":115733,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":53,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2017-02-14T00:01:08.000Z","updated_at":"2026-03-19T08:12:10.000Z","published_at":"2017-02-14T00:01:08.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem is inspired by\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/1483-number-of-paths-on-a-grid\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://www.mathworks.com/matlabcentral/cody/problems/1483-number-of-paths-on-a-grid\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt;, which you might want to solve first.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eConsider a 3d grid formed by n vertices vertically down, m vertices horizontally right, l vertices horizontally front. Your starting point is at the top left front vertex. Your destination is the bottom right back vertex. (From one corner to the furthest corner) You are permitted at each vertex to choose to move down, right or back, that is in the direction towards the destination. You are not to move on what constitutes a back step like moving left, up, or front. If you hit the bottom boundary, right boundary, or back boundary, take it to be given that you move along the 2d boundary.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eEx: in a 2x2X2 grid there are 6 ways. (down, right, back), (d,b,r), (r,d,b), (r,b,d), (b,r,d), (b,d,r)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e4x3x2 has 60 ways\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e6x5x4 has 27720 ways\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem can be solved using dynamic programming but there are other methods too.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":44072,"title":"Number of paths on a n-dimensional grid","description":"This problem is inspired by \u003chttps://www.mathworks.com/matlabcentral/cody/problems/1483-number-of-paths-on-a-grid\u003e and  \u003chttps://www.mathworks.com/matlabcentral/cody/problems/44066-number-of-paths-on-a-3d-grid\u003e, which you might want to solve first.\r\n \r\nConsider n-dimensional grid, and you are moving from one corner to the farthest corner in a minimal number of moves. Each move corresponds to moving to a neighbouring hypercube (among possible up to 2*n neighbours). How many ways are there?\r\n\r\nInput format is a row array of size \"d\" (for d dimension) with number of grid points on each direction.\r\n\r\nOptional: can you solve it without loops?","description_html":"\u003cp\u003eThis problem is inspired by \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/1483-number-of-paths-on-a-grid\"\u003ehttps://www.mathworks.com/matlabcentral/cody/problems/1483-number-of-paths-on-a-grid\u003c/a\u003e and  \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/44066-number-of-paths-on-a-3d-grid\"\u003ehttps://www.mathworks.com/matlabcentral/cody/problems/44066-number-of-paths-on-a-3d-grid\u003c/a\u003e, which you might want to solve first.\u003c/p\u003e\u003cp\u003eConsider n-dimensional grid, and you are moving from one corner to the farthest corner in a minimal number of moves. Each move corresponds to moving to a neighbouring hypercube (among possible up to 2*n neighbours). How many ways are there?\u003c/p\u003e\u003cp\u003eInput format is a row array of size \"d\" (for d dimension) with number of grid points on each direction.\u003c/p\u003e\u003cp\u003eOptional: can you solve it without loops?\u003c/p\u003e","function_template":"function y = countNdPath(NdRowVector)\r\n  y = sum(NdRowVector);\r\nend","test_suite":"%%\r\nNdRowVector = [3,3,3,3,3];\r\ny_correct = 113400;\r\nassert(isequal(countNdPath(NdRowVector),y_correct))\r\n\r\n%%\r\nNdRowVector = [1,3,3,3,3,1,1,1,3,3];\r\ny_correct = 7484400;\r\nassert(isequal(countNdPath(NdRowVector),y_correct))\r\n\r\n%%\r\nNdRowVector = [2,2,2,2,2,2,2,1,1,2,2,2,2];\r\ny_correct = 39916800;\r\nassert(isequal(countNdPath(NdRowVector),y_correct))","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":115733,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":50,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2017-02-14T01:28:35.000Z","updated_at":"2025-12-16T03:16:34.000Z","published_at":"2017-02-14T01:28:35.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem is inspired by\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/1483-number-of-paths-on-a-grid\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://www.mathworks.com/matlabcentral/cody/problems/1483-number-of-paths-on-a-grid\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt; and \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/44066-number-of-paths-on-a-3d-grid\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://www.mathworks.com/matlabcentral/cody/problems/44066-number-of-paths-on-a-3d-grid\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt;, which you might want to solve first.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eConsider n-dimensional grid, and you are moving from one corner to the farthest corner in a minimal number of moves. Each move corresponds to moving to a neighbouring hypercube (among possible up to 2*n neighbours). How many ways are there?\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eInput format is a row array of size \\\"d\\\" (for d dimension) with number of grid points on each direction.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eOptional: can you solve it without loops?\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":1459,"title":"Triangular Tiling Dots in a Circle","description":"Return how many \u003chttp://en.wikipedia.org/wiki/Triangular_tiling Triangular Tiling\u003e grid points there are inside a circle of radius _r_ centred at (0,0) (including points on the edge).  \r\n\r\nAssume that a Triangular Tiling grid is a \u003chttp://en.wikipedia.org/wiki/Bravais_lattice 2D Hexagonal Bravais lattice\u003e with | _a1_ | = | _a2_ | = 1 and _\u0026phi;_ = 120\u0026deg;.\r\n\r\nNeither *string operations* nor *interpolations* are allowed!","description_html":"\u003cp\u003eReturn how many \u003ca href = \"http://en.wikipedia.org/wiki/Triangular_tiling\"\u003eTriangular Tiling\u003c/a\u003e grid points there are inside a circle of radius \u003ci\u003er\u003c/i\u003e centred at (0,0) (including points on the edge).\u003c/p\u003e\u003cp\u003eAssume that a Triangular Tiling grid is a \u003ca href = \"http://en.wikipedia.org/wiki/Bravais_lattice\"\u003e2D Hexagonal Bravais lattice\u003c/a\u003e with | \u003ci\u003ea1\u003c/i\u003e | = | \u003ci\u003ea2\u003c/i\u003e | = 1 and \u003ci\u003e\u0026phi;\u003c/i\u003e = 120\u0026deg;.\u003c/p\u003e\u003cp\u003eNeither \u003cb\u003estring operations\u003c/b\u003e nor \u003cb\u003einterpolations\u003c/b\u003e are allowed!\u003c/p\u003e","function_template":"function n = hexagonal_dots_in_circle(r)\r\n  n = r;\r\nend","test_suite":"%%\r\nuser_solution = fileread('hexagonal_dots_in_circle.m');\r\nassert(isempty(strfind(user_solution,'regexp')));\r\nassert(isempty(strfind(user_solution,'2str')));\r\nassert(isempty(strfind(user_solution,'str2')));\r\nassert(isempty(strfind(user_solution,'interp')));\r\nassert(isempty(strfind(user_solution,'printf')));\r\nassert(isempty(strfind(user_solution,'assert')));\r\n\r\n%%\r\nr = 0;\r\nn_correct = 1;\r\nassert(isequal(hexagonal_dots_in_circle(r),n_correct));\r\n\r\n%%\r\nr = 0.5;\r\nn_correct = 1;\r\nassert(isequal(hexagonal_dots_in_circle(r),n_correct));\r\n\r\n%%\r\nr = 1;\r\nn_correct = 7;\r\nassert(isequal(hexagonal_dots_in_circle(r),n_correct));\r\n\r\n%%\r\nr = 1.5;\r\nn_correct = 7;\r\nassert(isequal(hexagonal_dots_in_circle(r),n_correct));\r\n\r\n%%\r\nr = 2;\r\nn_correct = 19;\r\nassert(isequal(hexagonal_dots_in_circle(r),n_correct));\r\n\r\n%%\r\nr = 2.5;\r\nn_correct = 19;\r\nassert(isequal(hexagonal_dots_in_circle(r),n_correct));\r\n\r\n%%\r\nr = 3;\r\nn_correct = 37;\r\nassert(isequal(hexagonal_dots_in_circle(r),n_correct));\r\n\r\n%%\r\nr = 5;\r\nn_correct = 91;\r\nassert(isequal(hexagonal_dots_in_circle(r),n_correct));\r\n\r\n%%\r\nr = 7.5;\r\nn_correct = 199;\r\nassert(isequal(hexagonal_dots_in_circle(r),n_correct));\r\n\r\n%%\r\nr = 10;\r\nn_correct = 367;\r\nassert(isequal(hexagonal_dots_in_circle(r),n_correct));\r\n\r\n%%\r\nr = 15;\r\nn_correct = 823;\r\nassert(isequal(hexagonal_dots_in_circle(r),n_correct));\r\n\r\n%%\r\nr = 20;\r\nn_correct = 1459;\r\nassert(isequal(hexagonal_dots_in_circle(r),n_correct));\r\n\r\n%%\r\nr = 25;\r\nn_correct = 2263;\r\nassert(isequal(hexagonal_dots_in_circle(r),n_correct));\r\n\r\n%%\r\nr = 50;\r\nn_correct = 9061;\r\nassert(isequal(hexagonal_dots_in_circle(r),n_correct));\r\n\r\n%%\r\nr = 100;\r\nn_correct = 36295;\r\nassert(isequal(hexagonal_dots_in_circle(r),n_correct));\r\n ","published":true,"deleted":false,"likes_count":0,"comments_count":1,"created_by":10352,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":32,"test_suite_updated_at":"2013-05-05T10:49:55.000Z","rescore_all_solutions":false,"group_id":20,"created_at":"2013-04-25T18:57:26.000Z","updated_at":"2026-02-16T10:52:57.000Z","published_at":"2013-04-25T18:57:26.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eReturn how many\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Triangular_tiling\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eTriangular Tiling\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e grid points there are inside a circle of radius\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003er\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e centred at (0,0) (including points on the edge).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAssume that a Triangular Tiling grid is a\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Bravais_lattice\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e2D Hexagonal Bravais lattice\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e with |\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ea1\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e | = |\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ea2\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e | = 1 and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eφ\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e = 120°.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNeither\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003estring operations\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e nor\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003einterpolations\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e are allowed!\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":1490,"title":"Shifted Hexagonal Tiling Dots in a Circle","description":"Return how many \u003chttp://en.wikipedia.org/wiki/Hexagonal_grid Hexagonal Tiling\u003e grid points there are inside a circle of radius _r_ centred at (0,0) (including points on the edge).  Assume that a Hexagonal Tiling grid is a \u003chttp://en.wikipedia.org/wiki/Regular_tiling 2D Regular Hexagonal Tessellation\u003e with equal edges of size _e_=1.  \r\n\r\nFor _shifted_ symmetry purposes, assume that (0,0) is a _grid point_.\r\n\r\nNeither *string operations* nor *interpolations* are allowed!","description_html":"\u003cp\u003eReturn how many \u003ca href = \"http://en.wikipedia.org/wiki/Hexagonal_grid\"\u003eHexagonal Tiling\u003c/a\u003e grid points there are inside a circle of radius \u003ci\u003er\u003c/i\u003e centred at (0,0) (including points on the edge).  Assume that a Hexagonal Tiling grid is a \u003ca href = \"http://en.wikipedia.org/wiki/Regular_tiling\"\u003e2D Regular Hexagonal Tessellation\u003c/a\u003e with equal edges of size \u003ci\u003ee\u003c/i\u003e=1.\u003c/p\u003e\u003cp\u003eFor \u003ci\u003eshifted\u003c/i\u003e symmetry purposes, assume that (0,0) is a \u003ci\u003egrid point\u003c/i\u003e.\u003c/p\u003e\u003cp\u003eNeither \u003cb\u003estring operations\u003c/b\u003e nor \u003cb\u003einterpolations\u003c/b\u003e are allowed!\u003c/p\u003e","function_template":"function n = shifted_hexagonal_tiling_dots_in_circle(r)\r\n  n = r;\r\nend","test_suite":"%%\r\nuser_solution = fileread('shifted_hexagonal_tiling_dots_in_circle.m');\r\nassert(isempty(strfind(user_solution,'regexp')));\r\nassert(isempty(strfind(user_solution,'2str')));\r\nassert(isempty(strfind(user_solution,'str2')));\r\nassert(isempty(strfind(user_solution,'interp')));\r\nassert(isempty(strfind(user_solution,'printf')));\r\nassert(isempty(strfind(user_solution,'assert')));\r\n\r\n%%\r\nr = 0;\r\nN_correct = 1;\r\nassert(isequal(shifted_hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 0.5;\r\nN_correct = 1;\r\nassert(isequal(shifted_hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 1;\r\nN_correct = 4;\r\nassert(isequal(shifted_hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 1.5;\r\nN_correct = 4;\r\nassert(isequal(shifted_hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 2;\r\nN_correct = 13;\r\nassert(isequal(shifted_hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 2.5;\r\nN_correct = 13;\r\nassert(isequal(shifted_hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 3;\r\nN_correct = 25;\r\nassert(isequal(shifted_hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 5;\r\nN_correct = 61;\r\nassert(isequal(shifted_hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 7.5;\r\nN_correct = 130;\r\nassert(isequal(shifted_hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 10;\r\nN_correct = 244;\r\nassert(isequal(shifted_hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 15;\r\nN_correct = 547;\r\nassert(isequal(shifted_hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 20;\r\nN_correct = 979;\r\nassert(isequal(shifted_hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 25;\r\nN_correct = 1510;\r\nassert(isequal(shifted_hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 50;\r\nN_correct = 6049;\r\nassert(isequal(shifted_hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 100;\r\nN_correct = 24202;\r\nassert(isequal(shifted_hexagonal_tiling_dots_in_circle(r),N_correct));\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":10352,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":25,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":20,"created_at":"2013-05-05T11:12:35.000Z","updated_at":"2026-02-16T10:46:10.000Z","published_at":"2013-05-05T11:13:56.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eReturn how many\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Hexagonal_grid\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eHexagonal Tiling\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e grid points there are inside a circle of radius\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003er\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e centred at (0,0) (including points on the edge). Assume that a Hexagonal Tiling grid is a\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Regular_tiling\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e2D Regular Hexagonal Tessellation\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e with equal edges of size\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ee\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e=1.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eshifted\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e symmetry purposes, assume that (0,0) is a\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003egrid point\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNeither\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003estring operations\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e nor\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003einterpolations\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e are allowed!\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":1489,"title":"Hexagonal Tiling Dots in a Circle","description":"Return how many \u003chttp://en.wikipedia.org/wiki/Hexagonal_grid Hexagonal Tiling\u003e grid points there are inside a circle of radius _r_ centred at (0,0) (including points on the edge).  Assume that a Hexagonal Tiling grid is a \u003chttp://en.wikipedia.org/wiki/Regular_tiling 2D Regular Hexagonal Tessellation\u003e with equal edges of size _e_=1.  \r\n\r\nFor symmetry purposes, assume that (0,0) point is a _vacancy_; i.e., there _are_ points at (\u0026plusmn;1,0), (\u0026plusmn;1/2,\u0026plusmn;\u0026radic;3/2), etcetera.\r\n\r\nNeither *string operations* nor *interpolations* are allowed!","description_html":"\u003cp\u003eReturn how many \u003ca href = \"http://en.wikipedia.org/wiki/Hexagonal_grid\"\u003eHexagonal Tiling\u003c/a\u003e grid points there are inside a circle of radius \u003ci\u003er\u003c/i\u003e centred at (0,0) (including points on the edge).  Assume that a Hexagonal Tiling grid is a \u003ca href = \"http://en.wikipedia.org/wiki/Regular_tiling\"\u003e2D Regular Hexagonal Tessellation\u003c/a\u003e with equal edges of size \u003ci\u003ee\u003c/i\u003e=1.\u003c/p\u003e\u003cp\u003eFor symmetry purposes, assume that (0,0) point is a \u003ci\u003evacancy\u003c/i\u003e; i.e., there \u003ci\u003eare\u003c/i\u003e points at (\u0026plusmn;1,0), (\u0026plusmn;1/2,\u0026plusmn;\u0026radic;3/2), etcetera.\u003c/p\u003e\u003cp\u003eNeither \u003cb\u003estring operations\u003c/b\u003e nor \u003cb\u003einterpolations\u003c/b\u003e are allowed!\u003c/p\u003e","function_template":"function n = hexagonal_tiling_dots_in_circle(r)\r\n  n = r;\r\nend","test_suite":"%%\r\nuser_solution = fileread('hexagonal_tiling_dots_in_circle.m');\r\nassert(isempty(strfind(user_solution,'regexp')));\r\nassert(isempty(strfind(user_solution,'2str')));\r\nassert(isempty(strfind(user_solution,'str2')));\r\nassert(isempty(strfind(user_solution,'interp')));\r\nassert(isempty(strfind(user_solution,'printf')));\r\nassert(isempty(strfind(user_solution,'assert')));\r\n\r\n%%\r\nr = 0;\r\nN_correct = 0;\r\nassert(isequal(hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 0.5;\r\nN_correct = 0;\r\nassert(isequal(hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 1;\r\nN_correct = 6;\r\nassert(isequal(hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 1.5;\r\nN_correct = 6;\r\nassert(isequal(hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 2;\r\nN_correct = 12;\r\nassert(isequal(hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 2.5;\r\nN_correct = 12;\r\nassert(isequal(hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 3;\r\nN_correct = 24;\r\nassert(isequal(hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 5;\r\nN_correct = 60;\r\nassert(isequal(hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 7.5;\r\nN_correct = 138;\r\nassert(isequal(hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 10;\r\nN_correct = 246;\r\nassert(isequal(hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 15;\r\nN_correct = 552;\r\nassert(isequal(hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 20;\r\nN_correct = 960;\r\nassert(isequal(hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 25;\r\nN_correct = 1506;\r\nassert(isequal(hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 50;\r\nN_correct = 6024;\r\nassert(isequal(hexagonal_tiling_dots_in_circle(r),N_correct));\r\n\r\n%%\r\nr = 100;\r\nN_correct = 24186;\r\nassert(isequal(hexagonal_tiling_dots_in_circle(r),N_correct));\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":1,"created_by":10352,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":29,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":20,"created_at":"2013-05-05T10:39:46.000Z","updated_at":"2026-03-25T00:01:03.000Z","published_at":"2013-05-05T10:54:39.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eReturn how many\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Hexagonal_grid\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eHexagonal Tiling\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e grid points there are inside a circle of radius\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003er\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e centred at (0,0) (including points on the edge). Assume that a Hexagonal Tiling grid is a\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Regular_tiling\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e2D Regular Hexagonal Tessellation\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e with equal edges of size\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ee\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e=1.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor symmetry purposes, assume that (0,0) point is a\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003evacancy\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e; i.e., there\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eare\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e points at (±1,0), (±1/2,±√3/2), etcetera.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNeither\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003estring operations\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e nor\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003einterpolations\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e are allowed!\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":1493,"title":"Dots in a Diamond","description":"Return how many \u003chttp://en.wikipedia.org/wiki/Diamond_cubic Diamond Cubic\u003e lattice grid points there are inside a 3D sphere of radius _r_ centred at (0,0,0) (including points on the edge).  \r\n\r\nSet the distance between two adjacent lattice grid points to be _e_ =1. In addition, assume that (0,0,0) is a grid point.\r\n\r\nNeither *string operations* nor *interpolations* are allowed!","description_html":"\u003cp\u003eReturn how many \u003ca href = \"http://en.wikipedia.org/wiki/Diamond_cubic\"\u003eDiamond Cubic\u003c/a\u003e lattice grid points there are inside a 3D sphere of radius \u003ci\u003er\u003c/i\u003e centred at (0,0,0) (including points on the edge).\u003c/p\u003e\u003cp\u003eSet the distance between two adjacent lattice grid points to be \u003ci\u003ee\u003c/i\u003e =1. In addition, assume that (0,0,0) is a grid point.\u003c/p\u003e\u003cp\u003eNeither \u003cb\u003estring operations\u003c/b\u003e nor \u003cb\u003einterpolations\u003c/b\u003e are allowed!\u003c/p\u003e","function_template":"function n = dots_in_diamond(r)\r\n  n = r;\r\nend","test_suite":"%%\r\nuser_solution = fileread('dots_in_diamond.m');\r\nassert(isempty(strfind(user_solution,'regexp')));\r\nassert(isempty(strfind(user_solution,'2str')));\r\nassert(isempty(strfind(user_solution,'str2')));\r\nassert(isempty(strfind(user_solution,'interp')));\r\nassert(isempty(strfind(user_solution,'printf')));\r\nassert(isempty(strfind(user_solution,'assert')));\r\n\r\n%%\r\nr = 0;\r\nN_correct = 1;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 0.5;\r\nN_correct = 1;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 1;\r\nN_correct = 5;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 1.5;\r\nN_correct = 5;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 1.74;\r\nN_correct = 17;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 2;\r\nN_correct = 29;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 2.5;\r\nN_correct = 35;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 3;\r\nN_correct = 87;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 4;\r\nN_correct = 167;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 5;\r\nN_correct = 357;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 6;\r\nN_correct = 633;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 7;\r\nN_correct = 943;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 8;\r\nN_correct = 1371;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 9;\r\nN_correct = 1963;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 10;\r\nN_correct = 2809;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 12.5;\r\nN_correct = 5359;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 15;\r\nN_correct = 9249;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 17.5;\r\nN_correct = 14451;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 20;\r\nN_correct = 21777;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 22.5;\r\nN_correct = 31075;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n\r\n%%\r\nr = 25;\r\nN_correct = 42509;\r\nassert(isequal(dots_in_diamond(r),N_correct));\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":10352,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":25,"test_suite_updated_at":"2013-05-10T08:33:38.000Z","rescore_all_solutions":false,"group_id":20,"created_at":"2013-05-08T09:16:44.000Z","updated_at":"2026-02-16T10:39:28.000Z","published_at":"2013-05-08T09:58:42.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eReturn how many\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Diamond_cubic\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eDiamond Cubic\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e lattice grid points there are inside a 3D sphere of radius\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003er\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e centred at (0,0,0) (including points on the edge).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSet the distance between two adjacent lattice grid points to be\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ee\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e =1. In addition, assume that (0,0,0) is a grid point.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNeither\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003estring operations\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e nor\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003einterpolations\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e are allowed!\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":2617,"title":"Yet Another Path Finder","description":"Assume there is a rectangular grid of points. These points are indicated by linear indices in a MATLAB-fashion. Some of the grid points are connected by vertical or horizontal lines. Your task is to find a path through the points which are not connected or touched by any line starting from the top left to the bottom right corner. One additional difficulty is that you can not move diagonally. That means the valid paths should only contain horizontal and vertical moves. There exists only one unique path. You cannot go through a particular path more than once.\r\n\r\nA matrix M of size N-by-2 will be given containing the grid information. Each row of M indicates two grid points which are connected by a line. Return a vector containing the linear indices of points in the grid that forms a valid path. The second (r) and third (c) input indicates the row and column size of the grid.\r\n\r\nExample:\r\n\r\n  M =\r\n   \r\n  [2 3\r\n   3 6\r\n   7 10\r\n   10 11]\r\n  r = 3\r\n  c = 4\r\n\r\nGrid points 2-3, 3-6, 7-10 and 10-11 are connected by lines. Thus the only path though which you can navigate is that formed by grid points 1,4,5,8,9 and 12. Thus return [1 4 5 8 9 12]\r\n\r\n\r\n","description_html":"\u003cp\u003eAssume there is a rectangular grid of points. These points are indicated by linear indices in a MATLAB-fashion. Some of the grid points are connected by vertical or horizontal lines. Your task is to find a path through the points which are not connected or touched by any line starting from the top left to the bottom right corner. One additional difficulty is that you can not move diagonally. That means the valid paths should only contain horizontal and vertical moves. There exists only one unique path. You cannot go through a particular path more than once.\u003c/p\u003e\u003cp\u003eA matrix M of size N-by-2 will be given containing the grid information. Each row of M indicates two grid points which are connected by a line. Return a vector containing the linear indices of points in the grid that forms a valid path. The second (r) and third (c) input indicates the row and column size of the grid.\u003c/p\u003e\u003cp\u003eExample:\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003eM =\r\n\u003c/pre\u003e\u003cpre class=\"language-matlab\"\u003e[2 3\r\n 3 6\r\n 7 10\r\n 10 11]\r\nr = 3\r\nc = 4\r\n\u003c/pre\u003e\u003cp\u003eGrid points 2-3, 3-6, 7-10 and 10-11 are connected by lines. Thus the only path though which you can navigate is that formed by grid points 1,4,5,8,9 and 12. Thus return [1 4 5 8 9 12]\u003c/p\u003e","function_template":"function y = pathFinder(x)\r\n\r\nend","test_suite":"%%\r\nM = [2 3\r\n     3 6\r\n     7 10\r\n     10 11];\r\nr = 3;\r\nc = 4;\r\ny_correct = [1 4 5 8 9 12];\r\nassert(isequal(pathFinder(M,r,c),y_correct))\r\n\r\n\r\n\r\n%%\r\nM = [4 5];\r\nr = 3;\r\nc = 3;\r\ny_correct = [1 2 3 6 9];\r\nassert(isequal(pathFinder(M,r,c),y_correct))\r\n\r\n\r\n%%\r\nM = [2 5];\r\nr = 3;\r\nc = 3;\r\ny_correct = [1 4 7 8 9];\r\nassert(isequal(pathFinder(M,r,c),y_correct))\r\n\r\n\r\n%%\r\nM = [2 3\r\n     5 10\r\n     12 13\r\n     13 18\r\n     18 19];\r\nr = 5;\r\nc = 4;\r\ny_correct = [1 6 7 8 9 14 15 20];\r\nassert(isequal(pathFinder(M,r,c),y_correct))\r\n\r\n\r\n%%\r\nM = [ ];\r\nr = 1;\r\nc = 1000;\r\ny_correct = 1:1000;\r\nassert(isequal(pathFinder(M,r,c),y_correct))\r\n\r\n%%\r\nM = [7 8\r\n     9 10\r\n     10 11];\r\nr = 6;\r\nc = 2;\r\ny_correct = [1:6 12];\r\nassert(isequal(pathFinder(M,r,c),y_correct))\r\n\r\n%%\r\nM = [2 3\r\n     4 5\r\n     5 10\r\n     10 15\r\n     15 14\r\n     13 14\r\n     11 16\r\n     16 21\r\n     23 24];\r\nr = 5;\r\nc = 5;\r\ny_correct = [1 6 7 12 17 18 19 20 25];\r\nassert(isequal(pathFinder(M,r,c),y_correct))\r\n\r\n\r\n\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":3,"created_by":17203,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":32,"test_suite_updated_at":"2014-10-06T07:21:26.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2014-10-05T05:18:09.000Z","updated_at":"2025-11-24T15:30:37.000Z","published_at":"2014-10-05T05:18:09.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAssume there is a rectangular grid of points. These points are indicated by linear indices in a MATLAB-fashion. Some of the grid points are connected by vertical or horizontal lines. Your task is to find a path through the points which are not connected or touched by any line starting from the top left to the bottom right corner. One additional difficulty is that you can not move diagonally. That means the valid paths should only contain horizontal and vertical moves. There exists only one unique path. You cannot go through a particular path more than once.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA matrix M of size N-by-2 will be given containing the grid information. Each row of M indicates two grid points which are connected by a line. Return a vector containing the linear indices of points in the grid that forms a valid path. The second (r) and third (c) input indicates the row and column size of the grid.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eExample:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[M =\\n\\n[2 3\\n 3 6\\n 7 10\\n 10 11]\\nr = 3\\nc = 4]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGrid points 2-3, 3-6, 7-10 and 10-11 are connected by lines. Thus the only path though which you can navigate is that formed by grid points 1,4,5,8,9 and 12. Thus return [1 4 5 8 9 12]\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"}],"term":"tag:\"grid\"","current_player_id":null,"fields":[{"name":"page","type":"integer","callback":null,"default":1,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"per_page","type":"integer","callback":null,"default":50,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"sort","type":"string","callback":null,"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"body","type":"text","callback":null,"default":"*:*","directive":null,"facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":false},{"name":"group","type":"string","callback":null,"default":null,"directive":"group","facet":true,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"difficulty_rating_bin","type":"string","callback":null,"default":null,"directive":"difficulty_rating_bin","facet":true,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"id","type":"integer","callback":null,"default":null,"directive":"id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"tag","type":"string","callback":null,"default":null,"directive":"tag","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"product","type":"string","callback":null,"default":null,"directive":"product","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"created_at","type":"timeframe","callback":{},"default":null,"directive":"created_at","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"profile_id","type":"integer","callback":null,"default":null,"directive":"author_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"created_by","type":"string","callback":null,"default":null,"directive":"author","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"player_id","type":"integer","callback":null,"default":null,"directive":"solver_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"player","type":"string","callback":null,"default":null,"directive":"solver","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"solvers_count","type":"integer","callback":null,"default":null,"directive":"solvers_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"comments_count","type":"integer","callback":null,"default":null,"directive":"comments_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"likes_count","type":"integer","callback":null,"default":null,"directive":"likes_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"leader_id","type":"integer","callback":null,"default":null,"directive":"leader_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"leading_solution","type":"integer","callback":null,"default":null,"directive":"leading_solution","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true}],"filters":[{"name":"asset_type","type":"string","callback":null,"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":"\"cody:problem\"","prepend":true},{"name":"profile_id","type":"integer","callback":{},"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":"author_id","static":null,"prepend":true}],"query":{"params":{"per_page":50,"term":"tag:\"grid\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"grid\"","","\"","grid","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f49e32b9880\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f49e32b97e0\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f49e32b8f20\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f49e32b9b00\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f49e32b9a60\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f49e32b99c0\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f49e32b9920\u003e":"tag:\"grid\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f49e32b9920\u003e":"tag:\"grid\""},"queried_facets":{}},"query_backend":{"connection":{"configuration":{"index_url":"http://index-op-v2/solr/","query_url":"http://search-op-v2/solr/","direct_access_index_urls":["http://index-op-v2/solr/"],"direct_access_query_urls":["http://search-op-v2/solr/"],"timeout":10,"vhost":"search","exchange":"search.topic","heartbeat":30,"pre_index_mode":false,"host":"rabbitmq-eks","port":5672,"username":"search","password":"J3bGPZzQ7asjJcCk","virtual_host":"search","indexer":"amqp","http_logging":"true","core":"cody"},"query_connection":{"uri":"http://search-op-v2/solr/cody/","proxy":null,"connection":{"parallel_manager":null,"headers":{"User-Agent":"Faraday v1.0.1"},"params":{},"options":{"params_encoder":"Faraday::FlatParamsEncoder","proxy":null,"bind":null,"timeout":null,"open_timeout":null,"read_timeout":null,"write_timeout":null,"boundary":null,"oauth":null,"context":null,"on_data":null},"ssl":{"verify":true,"ca_file":null,"ca_path":null,"verify_mode":null,"cert_store":null,"client_cert":null,"client_key":null,"certificate":null,"private_key":null,"verify_depth":null,"version":null,"min_version":null,"max_version":null},"default_parallel_manager":null,"builder":{"adapter":{"name":"Faraday::Adapter::NetHttp","args":[],"block":null},"handlers":[{"name":"Faraday::Response::RaiseError","args":[],"block":null}],"app":{"app":{"ssl_cert_store":{"verify_callback":null,"error":null,"error_string":null,"chain":null,"time":null},"app":{},"connection_options":{},"config_block":null}}},"url_prefix":"http://search-op-v2/solr/cody/","manual_proxy":false,"proxy":null},"update_format":"RSolr::JSON::Generator","update_path":"update","options":{"url":"http://search-op-v2/solr/cody"}}},"query":{"params":{"per_page":50,"term":"tag:\"grid\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"grid\"","","\"","grid","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f49e32b9880\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f49e32b97e0\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f49e32b8f20\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f49e32b9b00\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f49e32b9a60\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f49e32b99c0\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f49e32b9920\u003e":"tag:\"grid\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f49e32b9920\u003e":"tag:\"grid\""},"queried_facets":{}},"options":{"fields":["id","difficulty_rating"]},"join":" "},"results":[{"id":1462,"difficulty_rating":"easy-medium"},{"id":1444,"difficulty_rating":"easy-medium"},{"id":2029,"difficulty_rating":"easy-medium"},{"id":45397,"difficulty_rating":"easy-medium"},{"id":44066,"difficulty_rating":"easy-medium"},{"id":44072,"difficulty_rating":"medium"},{"id":1459,"difficulty_rating":"medium"},{"id":1490,"difficulty_rating":"medium"},{"id":1489,"difficulty_rating":"medium-hard"},{"id":1493,"difficulty_rating":"medium-hard"},{"id":2617,"difficulty_rating":"medium-hard"}]}}