{"group":{"id":1,"name":"Community","lockable":false,"created_at":"2012-01-18T18:02:15.000Z","updated_at":"2026-04-06T14:01:22.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":"2026-04-06T00: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":45224,"title":"Wythoff Sequence","description":"\r\nFind the lower Wythoff sequence up to n.\r\n\r\nFor more information, \u003chttps://oeis.org/A000201\u003e","description_html":"\u003cp\u003eFind the lower Wythoff sequence up to n.\u003c/p\u003e\u003cp\u003eFor more information, \u003ca href = \"https://oeis.org/A000201\"\u003ehttps://oeis.org/A000201\u003c/a\u003e\u003c/p\u003e","function_template":"function y=wythoff(n)\r\n  y = x;\r\nend","test_suite":"%%\r\nn = 1;\r\ny_correct = 1;\r\nassert(isequal(wythoff(n),y_correct))\r\n%%\r\nn = 10;\r\ny_correct = [1,3,4,6,8,9,11,12,14,16];\r\nassert(isequal(wythoff(n),y_correct))\r\n\r\n\r\n\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":0,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":31,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2019-12-04T12:02:31.000Z","updated_at":"2026-03-16T11:21:35.000Z","published_at":"2019-12-04T12:20:20.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\u003eFind the lower Wythoff sequence up to n.\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 more information,\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://oeis.org/A000201\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://oeis.org/A000201\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt;\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":2736,"title":"Pernicious Anniversary Problem","description":"Since Cody is 5 years old, it's pernicious. A \u003chttp://rosettacode.org/wiki/Pernicious_numbers Pernicious number\u003e is an integer whose population count is a prime. Check if the given number is pernicious.","description_html":"\u003cp\u003eSince Cody is 5 years old, it's pernicious. A \u003ca href = \"http://rosettacode.org/wiki/Pernicious_numbers\"\u003ePernicious number\u003c/a\u003e is an integer whose population count is a prime. Check if the given number is pernicious.\u003c/p\u003e","function_template":"function y = isPernicious(x)\r\n  y = false;\r\nend","test_suite":"%%\r\nx = 5;\r\ny_correct = true;\r\nassert(isequal(isPernicious(x),y_correct))\r\n%%\r\nx = 1;\r\ny_correct = false;\r\nassert(isequal(isPernicious(x),y_correct))\r\n%%\r\nx = 2^randi(16);\r\ny_correct = false;\r\nassert(isequal(isPernicious(x),y_correct))\r\n%%\r\nx = 17;\r\ny_correct = true;\r\nassert(isequal(isPernicious(x),y_correct))\r\n%%\r\nx = 18;\r\ny_correct = true;\r\nassert(isequal(isPernicious(x),y_correct))\r\n%%\r\nx = 61;\r\ny_correct = true;\r\nassert(isequal(isPernicious(x),y_correct))\r\n%%\r\nx = 6;\r\ny_correct = true;\r\nassert(isequal(isPernicious(x),y_correct))\r\n%%\r\nx = 2115;\r\ny_correct = false;\r\nassert(isequal(isPernicious(x),y_correct))\r\n%%\r\nx = 2114;\r\ny_correct = true;\r\nassert(isequal(isPernicious(x),y_correct))\r\n%%\r\nx = 2017;\r\ny_correct = true;\r\nassert(isequal(isPernicious(x),y_correct))\r\n\r\n\r\n\r\n\r\n","published":true,"deleted":false,"likes_count":13,"comments_count":1,"created_by":14358,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":838,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":34,"created_at":"2014-12-08T08:48:45.000Z","updated_at":"2026-04-10T14:31:08.000Z","published_at":"2017-10-16T01:45:06.000Z","restored_at":"2017-10-25T14:37:50.000Z","restored_by":null,"spam":false,"simulink":false,"admin_reviewed":true,"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\u003eSince Cody is 5 years old, it's pernicious. 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://rosettacode.org/wiki/Pernicious_numbers\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ePernicious number\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e is an integer whose population count is a prime. Check if the given number is pernicious.\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":1298,"title":"P-smooth numbers","description":"This Challenge is to find \u003chttps://en.wikipedia.org/wiki/Smooth_number P-smooth number\u003e partial sets given P and a max series value.\r\n\r\nA P-smooth number set of N contains a subset of 1:N integers whose prime factors are all \u003c=P.\r\n\r\nFor P=3 and N=16: P-smooth subset is [1 2 3 4 6 8 9 12 16]. Values 5,7,10,13,14,and 15 are primes \u003e3 or values divisible by primes\u003e3.\r\n\r\nvs = find_psmooth(P,N)\r\n\r\n\r\nSample \u003chttps://oeis.org/A051038 OEIS 11-smooth numbers\u003e\r\n\r\nWhere are P-smooth numbers utilized or present themselves?\r\nUpcoming Challenge solved by P-smooth numbers.","description_html":"\u003cp\u003eThis Challenge is to find \u003ca href = \"https://en.wikipedia.org/wiki/Smooth_number\"\u003eP-smooth number\u003c/a\u003e partial sets given P and a max series value.\u003c/p\u003e\u003cp\u003eA P-smooth number set of N contains a subset of 1:N integers whose prime factors are all \u0026lt;=P.\u003c/p\u003e\u003cp\u003eFor P=3 and N=16: P-smooth subset is [1 2 3 4 6 8 9 12 16]. Values 5,7,10,13,14,and 15 are primes \u0026gt;3 or values divisible by primes\u0026gt;3.\u003c/p\u003e\u003cp\u003evs = find_psmooth(P,N)\u003c/p\u003e\u003cp\u003eSample \u003ca href = \"https://oeis.org/A051038\"\u003eOEIS 11-smooth numbers\u003c/a\u003e\u003c/p\u003e\u003cp\u003eWhere are P-smooth numbers utilized or present themselves?\r\nUpcoming Challenge solved by P-smooth numbers.\u003c/p\u003e","function_template":"function vs = find_psmooth(pmax,vmax)\r\n% pmax is prime max\r\n% vmax is max value of set 1:vmax\r\n  vs=1;\r\nend","test_suite":"%%\r\nvs = find_psmooth(2,16);\r\nassert(isequal(vs,[1 2 4 8 16]))\r\n%%\r\nvs = find_psmooth(3,128);\r\nassert(isequal(vs,[1, 2, 3, 4, 6, 8, 9, 12, 16, 18, 24, 27, 32, 36, 48, 54, 64, 72, 81, 96, 108, 128]))\r\n%%\r\nvs = find_psmooth(11,73);\r\nassert(isequal(vs,[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 18, 20, 21, 22, 24, 25, 27, 28, 30, 32, 33, 35, 36, 40, 42, 44, 45, 48, 49, 50, 54, 55, 56, 60, 63, 64, 66, 70, 72]))\r\n%%\r\npmax=7; vmax=120;\r\nvs = find_psmooth(pmax,vmax);\r\nvs=unique(vs); % Validity checks\r\nvs(vs\u003evmax)=[];\r\nvs(vs\u003c1)=[];\r\nvs=floor(vs);\r\nlength(vs)\r\nif length(vs)==50 % Known length\r\n pass=true;\r\nelse\r\n pass=false;\r\nend\r\npv=primes(vmax);\r\npv(pv\u003c=pmax)=[];\r\nfor i=pv\r\n if any(mod(vs,i)==0) % check for prime divisors \u003epmax\r\n  pass=false;\r\n  break;\r\n end\r\nend\r\nassert(pass)\r\n%%\r\npmax=11; vmax=300;\r\nvs = find_psmooth(pmax,vmax);\r\nvs=unique(vs); % Validity checks\r\nvs(vs\u003evmax)=[];\r\nvs(vs\u003c1)=[];\r\nvs=floor(vs);\r\nlength(vs)\r\nif length(vs)==104 % Known length\r\n pass=true;\r\nelse\r\n pass=false;\r\nend\r\npv=primes(vmax);\r\npv(pv\u003c=pmax)=[];\r\nfor i=pv\r\n if any(mod(vs,i)==0) % check for prime divisors \u003epmax\r\n  pass=false;\r\n  break;\r\n end\r\nend\r\nassert(pass)\r\n%%\r\npmax=13; vmax=900;\r\nvs = find_psmooth(pmax,vmax);\r\nvs=unique(vs); % Validity checks\r\nvs(vs\u003evmax)=[];\r\nvs(vs\u003c1)=[];\r\nvs=floor(vs);\r\nlength(vs)\r\nif length(vs)==231% Known length\r\n pass=true;\r\nelse\r\n pass=false;\r\nend\r\npv=primes(vmax);\r\npv(pv\u003c=pmax)=[];\r\nfor i=pv\r\n if any(mod(vs,i)==0) % check for prime divisors \u003epmax\r\n  pass=false;\r\n  break;\r\n end\r\nend\r\nassert(pass)\r\n\r\n\r\n\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":98,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":44,"created_at":"2013-02-23T23:06:45.000Z","updated_at":"2026-04-09T15:24:35.000Z","published_at":"2016-02-21T23:06:03.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 Challenge is to find\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://en.wikipedia.org/wiki/Smooth_number\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eP-smooth number\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e partial sets given P and a max series value.\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 P-smooth number set of N contains a subset of 1:N integers whose prime factors are all \u0026lt;=P.\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 P=3 and N=16: P-smooth subset is [1 2 3 4 6 8 9 12 16]. Values 5,7,10,13,14,and 15 are primes \u0026gt;3 or values divisible by primes\u0026gt;3.\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\u003evs = find_psmooth(P,N)\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\u003eSample\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://oeis.org/A051038\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eOEIS 11-smooth numbers\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\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\u003eWhere are P-smooth numbers utilized or present themselves? Upcoming Challenge solved by P-smooth numbers.\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":42800,"title":"house of cards","description":"How many cards do one need to build a house of cards with n stages? \r\nShort explanation:\r\n\r\n\r\n  /\\      2 cards for 1 stage\r\n     \r\n /_\\    7 cards for 2 stages\r\n/\\ /\\\r\n\r\n....","description_html":"\u003cp\u003eHow many cards do one need to build a house of cards with n stages? \r\nShort explanation:\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003e/\\      2 cards for 1 stage\r\n\u003c/pre\u003e\u003cpre\u003e /_\\    7 cards for 2 stages\r\n/\\ /\\\u003c/pre\u003e\u003cp\u003e....\u003c/p\u003e","function_template":"function K = house_of_cards(n)\r\nK=2;\r\nend","test_suite":"%%\r\nn = 1;\r\nK_correct = 2;\r\nassert(isequal(house_of_cards(n),K_correct))\r\n\r\n%%\r\nn = 2;\r\nK_correct = 7;\r\nassert(isequal(house_of_cards(n),K_correct))\r\n\r\n%%\r\nn = 3;\r\nK_correct = 15;\r\nassert(isequal(house_of_cards(n),K_correct))\r\n\r\n%%\r\nn = 10;\r\nK_correct = 155;\r\nassert(isequal(house_of_cards(n),K_correct))\r\n\r\n%%\r\nn = 100;\r\nK_correct = 15050;\r\nassert(isequal(house_of_cards(n),K_correct))\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","published":true,"deleted":false,"likes_count":3,"comments_count":2,"created_by":73322,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":38,"test_suite_updated_at":"2016-04-15T12:28:41.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2016-04-15T09:23:08.000Z","updated_at":"2026-04-14T15:34:31.000Z","published_at":"2016-04-15T09:23: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\u003eHow many cards do one need to build a house of cards with n stages? Short explanation:\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[/\\\\      2 cards for 1 stage\\n\\n /_\\\\    7 cards for 2 stages\\n/\\\\ /\\\\]]\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\u003e....\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":45231,"title":"Generate Golomb's sequence","description":"Generate Golomb's sequence up to the given number. \r\n\r\nIf n=4, then \r\n\r\n  seq = [1, 2, 2, 3, 3, 4, 4, 4]\r\n\r\nIf n=6, then \r\n\r\n  seq = [1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 6]","description_html":"\u003cp\u003eGenerate Golomb's sequence up to the given number.\u003c/p\u003e\u003cp\u003eIf n=4, then\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003eseq = [1, 2, 2, 3, 3, 4, 4, 4]\r\n\u003c/pre\u003e\u003cp\u003eIf n=6, then\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003eseq = [1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 6]\r\n\u003c/pre\u003e","function_template":"function y = euler_341_4(n)\r\n  y = x;\r\nend","test_suite":"%%\r\nn = 18;\r\ny_correct = [1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18];\r\nassert(isequal(euler_341_4(n),y_correct))\r\n%%\r\nn = 5;\r\ny_correct = [1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 5];\r\nassert(isequal(euler_341_4(n),y_correct))\r\n%%\r\nn = 12;\r\ny_correct = [1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12];\r\nassert(isequal(euler_341_4(n),y_correct))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":18,"test_suite_updated_at":"2019-12-12T12:18:51.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2019-12-12T12:16:38.000Z","updated_at":"2026-02-21T13:46:30.000Z","published_at":"2019-12-12T12:18:51.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\u003eGenerate Golomb's sequence up to the given number.\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\u003eIf n=4, then\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[seq = [1, 2, 2, 3, 3, 4, 4, 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\u003eIf n=6, then\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[seq = [1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 6]]]\u003e\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":2733,"title":"Evil Number","description":"Check if a given natural number is evil or not. \r\n\r\nRead more at \u003chttps://oeis.org/A001969 OEIS\u003e.","description_html":"\u003cp\u003eCheck if a given natural number is evil or not.\u003c/p\u003e\u003cp\u003eRead more at \u003ca href = \"https://oeis.org/A001969\"\u003eOEIS\u003c/a\u003e.\u003c/p\u003e","function_template":"function tf = isevil(n)\r\n  tf = ;\r\nend","test_suite":"%%\r\nx = 1;\r\ny_correct = false;\r\nassert(isequal(isevil(x),y_correct))\r\n%%\r\nx = 3;\r\ny_correct = true;\r\nassert(isequal(isevil(x),y_correct))\r\n%%\r\nx = [18, 20, 23, 24, 27, 45, 46, 48, 96, 99, 123,];\r\ny_correct = true;\r\nassert(isequal(all(arrayfun(@isevil,x)),y_correct))\r\n%%\r\nx = [14, 16, 19, 37, 38, 55, 56, 59, 62,  79, 82, 91, 93, 94, 97, 98, 117, 118, 121];\r\ny_correct = false;\r\nassert(isequal(any(arrayfun(@isevil,x)),y_correct))\r\n%%\r\nx = 2^randi([5 10])+1;\r\ny_correct = true;\r\nassert(isequal(isevil(x),y_correct))\r\n\r\n%%\r\n% more test cases may be introduced\r\n%%\r\n% DISABLED\r\n% ________'FAIR'_SCORING_SYSTEM______________\r\n%\r\n% This section scores for usage of ans\r\n% and strings, which are common methods \r\n% to reduce cody size of solution.\r\n% Here, strings are threated like vectors.\r\n% Please do not hack it, as this problem\r\n% is not mentioned to be a hacking problem.\r\n% \r\n  try\r\n% disable:\r\nassert(false) \r\n%\r\n  size_old = feval(@evalin,'caller','score');\r\n%\r\n  all_nodes = mtree('isevil.m','-file');\r\n  str_nodes = mtfind(all_nodes,'Kind','STRING');\r\n   eq_nodes = mtfind(all_nodes,'Kind','EQUALS');\r\nprint_nodes = mtfind(all_nodes,'Kind','PRINT');\r\n expr_nodes = mtfind(all_nodes,'Kind','EXPR');\r\n%\r\n       size = count(all_nodes)           ...\r\n              +sum(str_nodes.nodesize-1) ...\r\n              +2*(count(expr_nodes)      ...\r\n                  +count(print_nodes)    ...\r\n                  -count(eq_nodes));\r\n%\r\n  feval(@assignin,'caller','score',size);\r\n%\r\n  fprintf('Size in standard cody scoring is %i.\\n',size_old);\r\n  fprintf('Here it is %i.\\n',size);\r\n  end\r\n%\r\n%_________RESULT_____________________________","published":true,"deleted":false,"likes_count":3,"comments_count":6,"created_by":14358,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":274,"test_suite_updated_at":"2016-12-26T10:21:47.000Z","rescore_all_solutions":true,"group_id":8,"created_at":"2014-12-07T21:50:01.000Z","updated_at":"2026-03-11T15:15:47.000Z","published_at":"2015-01-19T12:47:58.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\u003eCheck if a given natural number is evil or not.\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\u003eRead more at\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://oeis.org/A001969\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eOEIS\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\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":2734,"title":"N-th Odious","description":"Given index n return n-th \u003chttps://oeis.org/A000069 odious number\u003e.","description_html":"\u003cp\u003eGiven index n return n-th \u003ca href = \"https://oeis.org/A000069\"\u003eodious number\u003c/a\u003e.\u003c/p\u003e","function_template":"function y = nthodious(n)\r\n  y = n;\r\nend","test_suite":"%%\r\nx = 1;\r\ny_correct = 1;\r\nassert(isequal(nthodious(x),y_correct))\r\n%%\r\nx = 2;\r\ny_correct = 2;\r\nassert(isequal(nthodious(x),y_correct))\r\n%%\r\nx = 3;\r\ny_correct = 4;\r\nassert(isequal(nthodious(x),y_correct))\r\n%%\r\nx = 9;\r\ny_correct = 16;\r\nassert(isequal(nthodious(x),y_correct))\r\n%%\r\nx = 17;\r\ny_correct = 32;\r\nassert(isequal(nthodious(x),y_correct))\r\n%%\r\nx = 33;\r\ny_correct = 64;\r\nassert(isequal(nthodious(x),y_correct))\r\n%%\r\nx = 65;\r\ny_correct = 128;\r\nassert(isequal(nthodious(x),y_correct))\r\n%%\r\nx = 3387;\r\ny_correct = 6772;\r\nassert(isequal(nthodious(x),y_correct))\r\n%%\r\nx = 22;\r\ny_correct = 42;\r\nassert(isequal(nthodious(x),y_correct))\r\n%%\r\nx = 1e5;\r\ny_correct = 2e5-1;\r\nassert(isequal(nthodious(x),y_correct))\r\n%%\r\n% more test cases may be introduced\r\n%%\r\n% DISABLED\r\n% ________'FAIR'_SCORING_SYSTEM______________\r\n%\r\n% This section scores for usage of ans\r\n% and strings, which are common methods \r\n% to reduce cody size of solution.\r\n% Here, strings are threated like vectors.\r\n% Please do not hack it, as this problem\r\n% is not mentioned to be a hacking problem.\r\n% \r\n  try\r\nassert(false)\r\n% \r\n  size_old = feval(@evalin,'caller','score');\r\n%\r\n  all_nodes = mtree('nthodious.m','-file');\r\n  str_nodes = mtfind(all_nodes,'Kind','STRING');\r\n   eq_nodes = mtfind(all_nodes,'Kind','EQUALS');\r\nprint_nodes = mtfind(all_nodes,'Kind','PRINT');\r\n expr_nodes = mtfind(all_nodes,'Kind','EXPR');\r\n%\r\n       size = count(all_nodes)           ...\r\n              +sum(str_nodes.nodesize-1) ...\r\n              +2*(count(expr_nodes)      ...\r\n                  +count(print_nodes)    ...\r\n                  -count(eq_nodes));\r\n%\r\n  feval(@assignin,'caller','score',size);\r\n%\r\n  fprintf('Size in standard cody scoring is %i.\\n',size_old);\r\n  fprintf('Here it is %i.\\n',size);\r\n  end\r\n%\r\n%_________RESULT_____________________________\r\n","published":true,"deleted":false,"likes_count":3,"comments_count":0,"created_by":14358,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":182,"test_suite_updated_at":"2015-01-19T23:07:07.000Z","rescore_all_solutions":true,"group_id":8,"created_at":"2014-12-07T21:50:54.000Z","updated_at":"2026-02-16T10:22:49.000Z","published_at":"2015-01-19T13:39:11.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\u003eGiven index n return n-th\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://oeis.org/A000069\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eodious number\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\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":44360,"title":"Pentagonal Numbers","description":"Your function will receive a lower and upper bound. It should return all pentagonal numbers within that inclusive range in ascending order. Additionally, it should return an array that indicates those numbers that are divisible by 5. For example,\r\n\r\n [p,d] = pentagonal_numbers(10,40)\r\n\r\nshould return\r\n\r\n p = [12,22,35]\r\n d = [ 0, 0, 1]","description_html":"\u003cp\u003eYour function will receive a lower and upper bound. It should return all pentagonal numbers within that inclusive range in ascending order. Additionally, it should return an array that indicates those numbers that are divisible by 5. For example,\u003c/p\u003e\u003cpre\u003e [p,d] = pentagonal_numbers(10,40)\u003c/pre\u003e\u003cp\u003eshould return\u003c/p\u003e\u003cpre\u003e p = [12,22,35]\r\n d = [ 0, 0, 1]\u003c/pre\u003e","function_template":"function [p,d] = pentagonal_numbers(10,40)\r\n p = [5];\r\n d = [1];\r\nend","test_suite":"%%\r\nx1 = 1; x2 = 25;\r\n[p,d] = pentagonal_numbers(x1,x2)\r\nassert(isequal(p,[1,5,12,22]))\r\nassert(isequal(d,[0,1,0,0]))\r\n\r\n%%\r\nx1 = 1; x2 = 4;\r\n[p,d] = pentagonal_numbers(x1,x2)\r\nassert(isequal(p,1))\r\nassert(isequal(d,0))\r\n\r\n%%\r\nx1 = 10; x2 = 40;\r\n[p,d] = pentagonal_numbers(x1,x2)\r\nassert(isequal(p,[12,22,35]))\r\nassert(isequal(d,[0,0,1]))\r\n\r\n%%\r\nx1 = 10; x2 = 99;\r\n[p,d] = pentagonal_numbers(x1,x2)\r\nassert(isequal(p,[12,22,35,51,70,92]))\r\nassert(isequal(d,[0,0,1,0,1,0]))\r\n\r\n%%\r\nx1 = 100; x2 = 999;\r\n[p,d] = pentagonal_numbers(x1,x2)\r\nassert(isequal(p,[117,145,176,210,247,287,330,376,425,477,532,590,651,715,782,852,925]))\r\nassert(isequal(d,[0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1]))\r\n\r\n%%\r\nx1 = 40; x2 = 50;\r\n[p,d] = pentagonal_numbers(x1,x2)\r\nassert(isempty(p))\r\nassert(isempty(d))\r\n\r\n%%\r\nx1 = 1000; x2 = 1500;\r\n[p,d] = pentagonal_numbers(x1,x2)\r\nassert(isequal(p,[1001,1080,1162,1247,1335,1426]))\r\nassert(isequal(d,[0,1,0,0,1,0]))\r\n\r\n%%\r\nx1 = 1500; x2 = 3000;\r\n[p,d] = pentagonal_numbers(x1,x2)\r\nassert(isequal(p,[1520,1617,1717,1820,1926,2035,2147,2262,2380,2501,2625,2752,2882]))\r\nassert(isequal(d,[1,0,0,1,0,1,0,0,1,0,1,0,0]))\r\n\r\n%%\r\nx1 = 1; x2 = 3000;\r\n[p,d] = pentagonal_numbers(x1,x2)\r\nassert(isequal(p,[1,5,12,22,35,51,70,92,117,145,176,210,247,287,330,376,425,477,532,590,651,715,782,852,925,1001,1080,1162,1247,1335,1426,1520,1617,1717,1820,1926,2035,2147,2262,2380,2501,2625,2752,2882]))\r\nassert(isequal(d,[0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0]))\r\n\r\n%%\r\nx1 = 10000; x2 = 12000;\r\n[p,d] = pentagonal_numbers(x1,x2)\r\nassert(isequal(p,[10045,10292,10542,10795,11051,11310,11572,11837]))\r\nassert(isequal(d,[1,0,0,1,0,1,0,0]))\r\n\r\n%%\r\nx1 = 100000; x2 = 110000;\r\n[p,d] = pentagonal_numbers(x1,x2)\r\nassert(isequal(p,[100492,101270,102051,102835,103622,104412,105205,106001,106800,107602,108407,109215]))\r\nassert(isequal(d,[0,1,0,1,0,0,1,0,1,0,0,1]))\r\n\r\n%%\r\nx1 = 1000000; x2 = 1010101;\r\n[p,d] = pentagonal_numbers(x1,x2)\r\nassert(isequal(p,[1000825,1003277,1005732,1008190]))\r\nassert(isequal(d,[1,0,0,1]))","published":true,"deleted":false,"likes_count":12,"comments_count":3,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":679,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":34,"created_at":"2017-10-05T17:43:36.000Z","updated_at":"2026-04-07T13:59:33.000Z","published_at":"2017-10-16T01:45: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\u003eYour function will receive a lower and upper bound. It should return all pentagonal numbers within that inclusive range in ascending order. Additionally, it should return an array that indicates those numbers that are divisible by 5. For example,\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[ [p,d] = pentagonal_numbers(10,40)]]\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\u003eshould return\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[ p = [12,22,35]\\n d = [ 0, 0, 1]]]\u003e\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":61083,"title":"Express base-10 integers in lazy binary","description":"The binary (or base-2) representations of a number n can be constructed as follows:\r\nStep 1: If n = 0, then the binary representation is 0.\r\nStep 2: If n \u003e 0, then do the following:\r\n             a. Add 1 to the least-significant bit of the binary representation of n-1. \r\n             b. If any bit is equal to 2, replace that bit with 0 and add 1 to the next most significant bit.\r\n             c. Repeat step 2b till all bits are 0 or 1.\r\nFor example, the binary representation of 7 is 111. To get the binary representation of 8, we follow the steps to get 112, 120, 200, and the result 1000. \r\nThe procedure for determining the lazy binary representation is similar except that step 2c is omitted. That is, we are too lazy to repeat step 2b. Given that the lazy binary representation of 7 is 111, we would follow the modified procedure to get 112 and 120, the lazy binary representation of 8. For n = 9, the steps yield 121 and the result 201, and for n = 10, the steps yield 202 and the result 210. \r\nNotice that in applying step 2b for constructing binary numbers, there will be at most one 2. However, in lazy binary, there could be multiple 2s. Change only the least significant 2, as in the calculation of the lazy binary representation of 10. \r\nWrite a function to compute the lazy binary representation of a base-10 integer. Express the result as a 64-bit unsigned integer. ","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: 417px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 408px 208.5px; transform-origin: 408px 208.5px; 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: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; 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; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe binary (or base-2) representations of a number n can be constructed as follows:\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: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; 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; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eStep 1: If n = 0, then the binary representation is 0.\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: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; 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; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eStep 2: If n \u0026gt; 0, then do the following:\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: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; 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; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e             a. Add 1 to the least-significant bit of the binary representation of n-1. \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: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; 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; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e             b. If any bit is equal to 2, replace that bit with 0 and add 1 to the next most significant bit.\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: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; 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; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e             c. Repeat step 2b till all bits are 0 or 1.\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: 385px 21px; text-align: left; transform-origin: 385px 21px; white-space-collapse: preserve; 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; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eFor example, the binary representation of 7 is 111. To get the binary representation of 8, we follow the steps to get 112, 120, 200, and the result 1000. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 84px; 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: 385px 42px; text-align: left; transform-origin: 385px 42px; white-space-collapse: preserve; 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; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe procedure for determining the lazy binary representation is similar except that step 2c is omitted. That is, we are too lazy to repeat step 2b. Given that the lazy binary representation of 7 is 111, we would follow the modified procedure to get 112 and 120, the lazy binary representation of 8. For n = 9, the steps yield 121 and the result 201, and for n = 10, the steps yield 202 and the result 210. \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: 385px 21px; text-align: left; transform-origin: 385px 21px; white-space-collapse: preserve; 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; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eNotice that in applying step 2b for constructing binary numbers, there will be at most one 2. However, in lazy binary, there could be multiple 2s. Change only the least significant 2, as in the calculation of the lazy binary representation of 10. \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: 385px 21px; text-align: left; transform-origin: 385px 21px; white-space-collapse: preserve; 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; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWrite a function to compute the lazy binary representation of a base-10 integer. Express the result as a 64-bit unsigned integer. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = dec2lazybin(n)\r\n  y = dec2bi(n);\r\nend","test_suite":"%%\r\nn = 0;\r\ny = dec2lazybin(n);\r\ny_correct = uint64(0);\r\nassert(isa(y,'uint64'))\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nn = 1;\r\ny = dec2lazybin(n);\r\ny_correct = uint64(1);\r\nassert(isa(y,'uint64'))\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nn = 8;\r\ny = dec2lazybin(n);\r\ny_correct = uint64(120);\r\nassert(isa(y,'uint64'))\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nn = 87;\r\ny = dec2lazybin(n);\r\ny_correct = uint64(210111);\r\nassert(isa(y,'uint64'))\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nn = 354;\r\ny = dec2lazybin(n);\r\ny_correct = uint64(21011210);\r\nassert(isa(y,'uint64'))\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nn = 5084;\r\ny = dec2lazybin(n);\r\ny_correct = uint64(121110211020);\r\nassert(isa(y,'uint64'))\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nn = 21111;\r\ny = dec2lazybin(n);\r\ny_correct = uint64(20120121110111);\r\nassert(isa(y,'uint64'))\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nn = 505981;\r\ny = dec2lazybin(n);\r\ny_correct = uint64(1110211011121111101);\r\nassert(isa(y,'uint64'))\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nn = 1189030;\r\ny = dec2lazybin(n);\r\ny_correct = uint64(12011201201202012110);\r\nassert(isa(y,'uint64'))\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nm = randi(15);\r\nv = [0 ones(1,m)];\r\nn = polyval(v(randperm(m)),2);\r\ny = dec2lazybin(n);\r\ny_correct = uint64(polyval(dec2bin(n)-'0',10));\r\nassert(isequal(y,y_correct))","published":true,"deleted":false,"likes_count":2,"comments_count":2,"created_by":46909,"edited_by":46909,"edited_at":"2025-11-25T04:56:52.000Z","deleted_by":null,"deleted_at":null,"solvers_count":6,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2025-11-24T03:06:40.000Z","updated_at":"2026-02-26T13:00:53.000Z","published_at":"2025-11-24T03:06:49.000Z","restored_at":null,"restored_by":null,"spam":null,"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 binary (or base-2) representations of a number n can be constructed as follows:\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\u003eStep 1: If n = 0, then the binary representation is 0.\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\u003eStep 2: If n \u0026gt; 0, then do the following:\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             a. Add 1 to the least-significant bit of the binary representation of n-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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e             b. If any bit is equal to 2, replace that bit with 0 and add 1 to the next most significant bit.\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             c. Repeat step 2b till all bits are 0 or 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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor example, the binary representation of 7 is 111. To get the binary representation of 8, we follow the steps to get 112, 120, 200, and the result 1000. \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\u003eThe procedure for determining the lazy binary representation is similar except that step 2c is omitted. That is, we are too lazy to repeat step 2b. Given that the lazy binary representation of 7 is 111, we would follow the modified procedure to get 112 and 120, the lazy binary representation of 8. For n = 9, the steps yield 121 and the result 201, and for n = 10, the steps yield 202 and the result 210. \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\u003eNotice that in applying step 2b for constructing binary numbers, there will be at most one 2. However, in lazy binary, there could be multiple 2s. Change only the least significant 2, as in the calculation of the lazy binary representation of 10. \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 to compute the lazy binary representation of a base-10 integer. Express the result as a 64-bit unsigned integer. \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":2595,"title":"Polite numbers. Politeness.","description":"A polite number is an integer that sums of two or more consecutive positive integers.\r\nPoliteness of a positive integer is a number of nontrivial ways to write n as a sum of two or more consecutive positive integers.\r\n\r\nFor example _9 = 4+5 = 2+3+4_  and politeness of 9 is 2.\r\n\r\nGiven _N_ return politeness of _N_.\r\n\r\nSee also \u003chttp://www.mathworks.co.uk/matlabcentral/cody/problems/2593 2593\u003e","description_html":"\u003cp\u003eA polite number is an integer that sums of two or more consecutive positive integers.\r\nPoliteness of a positive integer is a number of nontrivial ways to write n as a sum of two or more consecutive positive integers.\u003c/p\u003e\u003cp\u003eFor example \u003ci\u003e9 = 4+5 = 2+3+4\u003c/i\u003e  and politeness of 9 is 2.\u003c/p\u003e\u003cp\u003eGiven \u003ci\u003eN\u003c/i\u003e return politeness of \u003ci\u003eN\u003c/i\u003e.\u003c/p\u003e\u003cp\u003eSee also \u003ca href = \"http://www.mathworks.co.uk/matlabcentral/cody/problems/2593\"\u003e2593\u003c/a\u003e\u003c/p\u003e","function_template":"function P = politeness(N)\r\n  P=N;\r\nend","test_suite":"%%\r\nx = 1;\r\ny_correct = 0;\r\nassert(isequal(politeness(x),y_correct))\r\n%%\r\nx = 2;\r\ny_correct = 0;\r\nassert(isequal(politeness(x),y_correct))\r\n%%\r\nx = 3;\r\ny_correct = 1;\r\nassert(isequal(politeness(x),y_correct))\r\n%%\r\nx = 7;\r\ny_correct = 1;\r\nassert(isequal(politeness(x),y_correct))\r\n%%\r\nx = 9;\r\ny_correct = 2;\r\nassert(isequal(politeness(x),y_correct))\r\n%%\r\nx = 15;\r\ny_correct = 3;\r\nassert(isequal(politeness(x),y_correct))\r\n%%\r\nx = 18;\r\ny_correct = 2;\r\nassert(isequal(politeness(x),y_correct))\r\n%%\r\nx = 21;\r\ny_correct = 3;\r\nassert(isequal(politeness(x),y_correct))\r\n%%\r\nx = 1024;\r\ny_correct = 0;\r\nassert(isequal(politeness(x),y_correct))\r\n%%\r\nx = 1025;\r\ny_correct = 5;\r\nassert(isequal(politeness(x),y_correct))\r\n%%\r\nx = 25215;\r\ny_correct = 11;\r\nassert(isequal(politeness(x),y_correct))\r\n%%\r\nx = 62;\r\ny_correct = 1;\r\nassert(isequal(politeness(x),y_correct))\r\n%%\r\nx = 63;\r\ny_correct = 5;\r\nassert(isequal(politeness(x),y_correct))\r\n%%\r\nx = 65;\r\ny_correct = 3;\r\nassert(isequal(politeness(x),y_correct))\r\n%%\r\n% anti-lookup \u0026 clue\r\nnums=primes(200);\r\npattern=[1 nums([false ~randi([0 25],1,45)])];\r\nx=prod(pattern)*2^randi([0 5]);\r\ny_correct=2^numel(pattern)/2-1;\r\nassert(isequal(politeness(x),y_correct))\r\n%%\r\nfor k=randi(2e4,1,20)\r\n  assert(isequal(politeness(k*(k-1))+1,(politeness(k)+1)*(politeness(k-1)+1)))\r\nend","published":true,"deleted":false,"likes_count":8,"comments_count":6,"created_by":14358,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":186,"test_suite_updated_at":"2014-09-17T15:38:21.000Z","rescore_all_solutions":false,"group_id":8,"created_at":"2014-09-16T22:47:12.000Z","updated_at":"2026-02-16T10:30:04.000Z","published_at":"2014-09-17T10:56:54.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\u003eA polite number is an integer that sums of two or more consecutive positive integers. Politeness of a positive integer is a number of nontrivial ways to write n as a sum of two or more consecutive positive integers.\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 example\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\u003e9 = 4+5 = 2+3+4\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and politeness of 9 is 2.\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\u003eGiven\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\u003eN\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e return politeness of\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\u003eN\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\u003eSee also\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://www.mathworks.co.uk/matlabcentral/cody/problems/2593\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e2593\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\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":42355,"title":"Minimum Set (A+A)U(A*A) OEIS A263996","description":"This Challenge is to find an integer vector A that creates the minimum set size for (A+A) U (A*A) for a given vector length, \u003chttps://oeis.org/A263996 OEIS A263996\u003e. The length, best value, Prime_max, and Value_max will be provided. \r\n\r\nThe \u003chttps://oeis.org/A263996 OEIS A263996\u003e gives the minimum set sizes thru length 50. Length 7 has best value 26 with Prime_max 5 and Value_max 8. A=[1 2 3 4 5 6 8] yields [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 20 24 25 30 32 36 40 48 64].\r\nThe \u003chttp://68.173.157.131/Contest/SumsAndProducts1/FinalReport Al Zimmermann Sums Contest Final Report\u003e extends A263996 for lengths 40:40:1000 with complete vector solutions. The contest winner, Rokicki, noted his method used P-smooth sets, hill climbing, and random swaps. The contest was a little tougher with only L given.\r\n\r\nExample Input/Output:\r\nL=9;Best=36;pmax=5;vmax=12;\r\nv = SP(L,Best,pmax,vmax); Yields v=[1 2 3 4 5 6 8 10 12]\r\n\r\nTheory/Hints: The V superset is found using \u003chttp://www.mathworks.com/matlabcentral/cody/problems/1298-p-smooth-numbers psmooth(pmax,vmax)\u003e . One observation is that for every v element the set v contains prod of all v element factor permutations. The time eater will be score evaluation. Residual evaluation suggested. A history screen, prior to score evaluation, of prior processed vectors is essential. A quick history pre-screen is vector sum. Replace testing of only values that are not factors of other numbers (eg 2,3 no replace) enables a reasonable time rolling score solution without random for the small test case values. ","description_html":"\u003cp\u003eThis Challenge is to find an integer vector A that creates the minimum set size for (A+A) U (A*A) for a given vector length, \u003ca href = \"https://oeis.org/A263996\"\u003eOEIS A263996\u003c/a\u003e. The length, best value, Prime_max, and Value_max will be provided.\u003c/p\u003e\u003cp\u003eThe \u003ca href = \"https://oeis.org/A263996\"\u003eOEIS A263996\u003c/a\u003e gives the minimum set sizes thru length 50. Length 7 has best value 26 with Prime_max 5 and Value_max 8. A=[1 2 3 4 5 6 8] yields [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 20 24 25 30 32 36 40 48 64].\r\nThe \u003ca href = \"http://68.173.157.131/Contest/SumsAndProducts1/FinalReport\"\u003eAl Zimmermann Sums Contest Final Report\u003c/a\u003e extends A263996 for lengths 40:40:1000 with complete vector solutions. The contest winner, Rokicki, noted his method used P-smooth sets, hill climbing, and random swaps. The contest was a little tougher with only L given.\u003c/p\u003e\u003cp\u003eExample Input/Output:\r\nL=9;Best=36;pmax=5;vmax=12;\r\nv = SP(L,Best,pmax,vmax); Yields v=[1 2 3 4 5 6 8 10 12]\u003c/p\u003e\u003cp\u003eTheory/Hints: The V superset is found using \u003ca href = \"http://www.mathworks.com/matlabcentral/cody/problems/1298-p-smooth-numbers\"\u003epsmooth(pmax,vmax)\u003c/a\u003e . One observation is that for every v element the set v contains prod of all v element factor permutations. The time eater will be score evaluation. Residual evaluation suggested. A history screen, prior to score evaluation, of prior processed vectors is essential. A quick history pre-screen is vector sum. Replace testing of only values that are not factors of other numbers (eg 2,3 no replace) enables a reasonable time rolling score solution without random for the small test case values.\u003c/p\u003e","function_template":"function v = SP(L,Best,pmax,vmax)\r\n% Only L and \u003c=Best need to be satisfied\r\n% pmax and vmax are suggestions when using psmooth numbers\r\n  v=[1:L-1 vmax];\r\nend","test_suite":"%%\r\ntic\r\npass=true;\r\nL=8;Best=30;pmax=5;vmax=10;\r\nv = SP(L,Best,pmax,vmax);\r\nv=unique(floor(v));\r\nv(v\u003c1)=[];\r\nif length(v)~=L,pass=false;end\r\nvm2=zeros(1,v(end)*v(end));\r\nLv=length(v);\r\nvr=repmat(v,Lv,1);vrp=vr';\r\nvp=vr+vrp;\r\n%vp=repmat(v,Lv,1)+repmat(v',1,Lv);\r\nvm2(vp(:))=1;\r\nvm=vr.*vrp;\r\n%vm=repmat(v,Lv,1).*repmat(v',1,Lv);\r\nvm2(vm(:))=1;\r\nscr=nnz(vm2);\r\nif scr\u003eBest,pass=false;end\r\ntoc\r\nassert(pass)\r\n%%\r\ntic\r\npass=true;\r\nL=39;Best=335;pmax=7;vmax=100;\r\nv = SP(L,Best,pmax,vmax);\r\nv=unique(floor(v));\r\nv(v\u003c1)=[];\r\nif length(v)~=L,pass=false;end\r\nvm2=zeros(1,v(end)*v(end));\r\nLv=length(v);\r\nvr=repmat(v,Lv,1);vrp=vr';\r\nvp=vr+vrp;\r\n%vp=repmat(v,Lv,1)+repmat(v',1,Lv);\r\nvm2(vp(:))=1;\r\nvm=vr.*vrp;\r\n%vm=repmat(v,Lv,1).*repmat(v',1,Lv);\r\nvm2(vm(:))=1;\r\nscr=nnz(vm2);\r\nif scr\u003eBest,pass=false;end\r\ntoc\r\nassert(pass)\r\n%%\r\ntic\r\npass=true;\r\nL=50;Best=486;pmax=7;vmax=144;\r\nv = SP(L,Best,pmax,vmax);\r\nv=unique(floor(v));\r\nv(v\u003c1)=[];\r\nif length(v)~=L,pass=false;end\r\nvm2=zeros(1,v(end)*v(end));\r\nLv=length(v);\r\nvr=repmat(v,Lv,1);vrp=vr';\r\nvp=vr+vrp;\r\n%vp=repmat(v,Lv,1)+repmat(v',1,Lv);\r\nvm2(vp(:))=1;\r\nvm=vr.*vrp;\r\n%vm=repmat(v,Lv,1).*repmat(v',1,Lv);\r\nvm2(vm(:))=1;\r\nscr=nnz(vm2);\r\nif scr\u003eBest,pass=false;end\r\ntoc\r\nassert(pass)\r\n%%\r\ntic\r\npass=true;\r\nL=40;Best=348;pmax=7;vmax=120;\r\nv = SP(L,Best,pmax,vmax);\r\nv=unique(floor(v));\r\nv(v\u003c1)=[];\r\nif length(v)~=L,pass=false;end\r\nvm2=zeros(1,v(end)*v(end));\r\nLv=length(v);\r\nvr=repmat(v,Lv,1);vrp=vr';\r\nvp=vr+vrp;\r\n%vp=repmat(v,Lv,1)+repmat(v',1,Lv);\r\nvm2(vp(:))=1;\r\nvm=vr.*vrp;\r\n%vm=repmat(v,Lv,1).*repmat(v',1,Lv);\r\nvm2(vm(:))=1;\r\nscr=nnz(vm2);\r\nif scr\u003eBest,pass=false;end\r\ntoc\r\nassert(pass)\r\n%%\r\ntic\r\npass=true;\r\nL=80;Best=1001;pmax=11;vmax=300;\r\nv = SP(L,Best,pmax,vmax);\r\nv=unique(floor(v));\r\nv(v\u003c1)=[];\r\nif length(v)~=L,pass=false;end\r\nvm2=zeros(1,v(end)*v(end));\r\nLv=length(v);\r\nvr=repmat(v,Lv,1);vrp=vr';\r\nvp=vr+vrp;\r\n%vp=repmat(v,Lv,1)+repmat(v',1,Lv);\r\nvm2(vp(:))=1;\r\nvm=vr.*vrp;\r\n%vm=repmat(v,Lv,1).*repmat(v',1,Lv);\r\nvm2(vm(:))=1;\r\nscr=nnz(vm2);\r\nif scr\u003eBest,pass=false;end\r\ntoc\r\nassert(pass)\r\n%%\r\ntic\r\npass=true;\r\nL=120;Best=1847;pmax=11;vmax=480;\r\nv = SP(L,Best,pmax,vmax);\r\nv=unique(floor(v));\r\nv(v\u003c1)=[];\r\nif length(v)~=L,pass=false;end\r\nvm2=zeros(1,v(end)*v(end));\r\nLv=length(v);\r\nvr=repmat(v,Lv,1);vrp=vr';\r\nvp=vr+vrp;\r\n%vp=repmat(v,Lv,1)+repmat(v',1,Lv);\r\nvm2(vp(:))=1;\r\nvm=vr.*vrp;\r\n%vm=repmat(v,Lv,1).*repmat(v',1,Lv);\r\nvm2(vm(:))=1;\r\nscr=nnz(vm2);\r\nif scr\u003eBest,pass=false;end\r\ntoc\r\nassert(pass)\r\n%%\r\ntic\r\npass=true;\r\nL=160;Best=2864;pmax=11;vmax=840;\r\nv = SP(L,Best,pmax,vmax);\r\nv=unique(floor(v));\r\nv(v\u003c1)=[];\r\nif length(v)~=L,pass=false;end\r\nvm2=zeros(1,v(end)*v(end));\r\nLv=length(v);\r\nvr=repmat(v,Lv,1);vrp=vr';\r\nvp=vr+vrp;\r\n%vp=repmat(v,Lv,1)+repmat(v',1,Lv);\r\nvm2(vp(:))=1;\r\nvm=vr.*vrp;\r\n%vm=repmat(v,Lv,1).*repmat(v',1,Lv);\r\nvm2(vm(:))=1;\r\nscr=nnz(vm2);\r\nif scr\u003eBest,pass=false;end\r\ntoc\r\nassert(pass)\r\n%%\r\ntic\r\npass=true;\r\nL=200;Best=4000;pmax=13;vmax=900;\r\nv = SP(L,Best,pmax,vmax);\r\nv=unique(floor(v));\r\nv(v\u003c1)=[];\r\nif length(v)~=L,pass=false;end\r\nvm2=zeros(1,v(end)*v(end));\r\nLv=length(v);\r\nvr=repmat(v,Lv,1);vrp=vr';\r\nvp=vr+vrp;\r\n%vp=repmat(v,Lv,1)+repmat(v',1,Lv);\r\nvm2(vp(:))=1;\r\nvm=vr.*vrp;\r\n%vm=repmat(v,Lv,1).*repmat(v',1,Lv);\r\nvm2(vm(:))=1;\r\nscr=nnz(vm2);\r\nif scr\u003eBest,pass=false;end\r\ntoc\r\nassert(pass)\r\n%%\r\ntic\r\npass=true;\r\nL=280;Best=6632;pmax=13;vmax=1800;\r\nv = SP(L,Best,pmax,vmax);\r\nv=unique(floor(v));\r\nv(v\u003c1)=[];\r\nif length(v)~=L,pass=false;end\r\nvm2=zeros(1,v(end)*v(end));\r\nLv=length(v);\r\nvr=repmat(v,Lv,1);vrp=vr';\r\nvp=vr+vrp;\r\n%vp=repmat(v,Lv,1)+repmat(v',1,Lv);\r\nvm2(vp(:))=1;\r\nvm=vr.*vrp;\r\n%vm=repmat(v,Lv,1).*repmat(v',1,Lv);\r\nvm2(vm(:))=1;\r\nscr=nnz(vm2);\r\nif scr\u003eBest,pass=false;end\r\ntoc\r\nassert(pass)\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":2,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2015-06-04T19:18:55.000Z","updated_at":"2016-02-22T02:59:36.000Z","published_at":"2016-02-22T02:59:36.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 Challenge is to find an integer vector A that creates the minimum set size for (A+A) U (A*A) for a given vector length,\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://oeis.org/A263996\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eOEIS A263996\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. The length, best value, Prime_max, and Value_max will be provided.\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\u003eThe\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://oeis.org/A263996\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eOEIS A263996\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e gives the minimum set sizes thru length 50. Length 7 has best value 26 with Prime_max 5 and Value_max 8. A=[1 2 3 4 5 6 8] yields [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 20 24 25 30 32 36 40 48 64]. The\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://68.173.157.131/Contest/SumsAndProducts1/FinalReport\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eAl Zimmermann Sums Contest Final Report\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e extends A263996 for lengths 40:40:1000 with complete vector solutions. The contest winner, Rokicki, noted his method used P-smooth sets, hill climbing, and random swaps. The contest was a little tougher with only L given.\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 Input/Output: L=9;Best=36;pmax=5;vmax=12; v = SP(L,Best,pmax,vmax); Yields v=[1 2 3 4 5 6 8 10 12]\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\u003eTheory/Hints: The V superset is found using\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://www.mathworks.com/matlabcentral/cody/problems/1298-p-smooth-numbers\\\"\u003e\u003cw:r\u003e\u003cw:t\u003epsmooth(pmax,vmax)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e . One observation is that for every v element the set v contains prod of all v element factor permutations. The time eater will be score evaluation. Residual evaluation suggested. A history screen, prior to score evaluation, of prior processed vectors is essential. A quick history pre-screen is vector sum. Replace testing of only values that are not factors of other numbers (eg 2,3 no replace) enables a reasonable time rolling score solution without random for the small test case values.\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":1886,"title":"Graceful Double Wheel Graph","description":"\u003chttp://en.wikipedia.org/wiki/Graceful_labeling Graceful Graphs\u003e are the topic of the \u003chttp://www.azspcs.net/Contest/GracefulGraphs Primes Graceful Graph Contest\u003e , 21 September 2013 thru 21 December 2013.\r\n\r\nThis Challenge is to create \u003chttp://www.comp.leeds.ac.uk/bms/Graceful/doublewheel.html Graceful Double Wheel Graphs\u003e for various N. A \u003chttp://www.cs.cornell.edu/~lebras/publications/LeBras2013Double.pdf General Algorithm by Le Bras of Cornell\u003e may be helpful, Section 3 for Even/Odd Rings. The Double Wheel Graph produces valid but not Maximum Edge Graceful Graph solutions based upon \u003chttp://oeis.org/A004137 OEIS A004137\u003e.\r\n\r\n*Example:*\r\nOne solution for N=11:\r\n\r\n\u003c\u003chttp://www.comp.leeds.ac.uk/bms/Graceful/Images/2C5+K1.gif\u003e\u003e\r\n\r\nwhich could be answered as [1 3 14 6 19;20 5 17 7 16].\r\n\r\nThere are 20 links and thus the absolute differences between connected nodes must produce values 1 thru 20.  The max node value is equal to the number of links and the min is zero, at the center of the Double Wheel.\r\n\r\n*Input:* N [Total number of Nodes (odd) and N\u003e10 ]\r\n\r\n*Output:* M [ Matrix size [(N-1)/2, 2] of node values where row-1 is outer and row-2 is inner ring ]","description_html":"\u003cp\u003e\u003ca href = \"http://en.wikipedia.org/wiki/Graceful_labeling\"\u003eGraceful Graphs\u003c/a\u003e are the topic of the \u003ca href = \"http://www.azspcs.net/Contest/GracefulGraphs\"\u003ePrimes Graceful Graph Contest\u003c/a\u003e , 21 September 2013 thru 21 December 2013.\u003c/p\u003e\u003cp\u003eThis Challenge is to create \u003ca href = \"http://www.comp.leeds.ac.uk/bms/Graceful/doublewheel.html\"\u003eGraceful Double Wheel Graphs\u003c/a\u003e for various N. A \u003ca href = \"http://www.cs.cornell.edu/~lebras/publications/LeBras2013Double.pdf\"\u003eGeneral Algorithm by Le Bras of Cornell\u003c/a\u003e may be helpful, Section 3 for Even/Odd Rings. The Double Wheel Graph produces valid but not Maximum Edge Graceful Graph solutions based upon \u003ca href = \"http://oeis.org/A004137\"\u003eOEIS A004137\u003c/a\u003e.\u003c/p\u003e\u003cp\u003e\u003cb\u003eExample:\u003c/b\u003e\r\nOne solution for N=11:\u003c/p\u003e\u003cimg src = \"http://www.comp.leeds.ac.uk/bms/Graceful/Images/2C5+K1.gif\"\u003e\u003cp\u003ewhich could be answered as [1 3 14 6 19;20 5 17 7 16].\u003c/p\u003e\u003cp\u003eThere are 20 links and thus the absolute differences between connected nodes must produce values 1 thru 20.  The max node value is equal to the number of links and the min is zero, at the center of the Double Wheel.\u003c/p\u003e\u003cp\u003e\u003cb\u003eInput:\u003c/b\u003e N [Total number of Nodes (odd) and N\u003e10 ]\u003c/p\u003e\u003cp\u003e\u003cb\u003eOutput:\u003c/b\u003e M [ Matrix size [(N-1)/2, 2] of node values where row-1 is outer and row-2 is inner ring ]\u003c/p\u003e","function_template":"function m=double_wheel(n)\r\n  m=[];\r\nend","test_suite":"%%\r\ntic\r\nn=11;\r\nm=double_wheel(n);\r\nms=circshift(m,[0 -1]);\r\ndm=m-ms;\r\nd=unique([m(:) abs(dm(:))]);\r\nassert(all(diff(d)==1))\r\nassert(length(d)==2*(n-1))\r\nassert(max(d)==2*(n-1))\r\ntoc\r\n%%\r\nn=13;\r\nm=double_wheel(n);\r\nms=circshift(m,[0 -1]);\r\ndm=m-ms;\r\nd=unique([m(:) abs(dm(:))]);\r\nassert(all(diff(d)==1))\r\nassert(length(d)==2*(n-1))\r\nassert(max(d)==2*(n-1))\r\ntoc\r\n%%\r\nn=17;\r\nm=double_wheel(n);\r\nms=circshift(m,[0 -1]);\r\ndm=m-ms;\r\nd=unique([m(:) abs(dm(:))]);\r\nassert(all(diff(d)==1))\r\nassert(length(d)==2*(n-1))\r\nassert(max(d)==2*(n-1))\r\ntoc\r\n%%\r\nn=19;\r\nm=double_wheel(n);\r\nms=circshift(m,[0 -1]);\r\ndm=m-ms;\r\nd=unique([m(:) abs(dm(:))]);\r\nassert(all(diff(d)==1))\r\nassert(length(d)==2*(n-1))\r\nassert(max(d)==2*(n-1))\r\ntoc\r\n%%\r\nn=71;\r\nm=double_wheel(n);\r\nms=circshift(m,[0 -1]);\r\ndm=m-ms;\r\nd=unique([m(:) abs(dm(:))]);\r\nassert(all(diff(d)==1))\r\nassert(length(d)==2*(n-1))\r\nassert(max(d)==2*(n-1))\r\ntoc\r\n%%\r\nn=97;\r\nm=double_wheel(n);\r\nms=circshift(m,[0 -1]);\r\ndm=m-ms;\r\nd=unique([m(:) abs(dm(:))]);\r\nassert(all(diff(d)==1))\r\nassert(length(d)==2*(n-1))\r\nassert(max(d)==2*(n-1))\r\ntoc\r\n\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":3,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2013-09-21T23:15:03.000Z","updated_at":"2013-09-22T01:16:42.000Z","published_at":"2013-09-22T01:16: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\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/media/image1.gif\"}],\"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:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Graceful_labeling\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eGraceful Graphs\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e are the topic of the\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://www.azspcs.net/Contest/GracefulGraphs\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ePrimes Graceful Graph Contest\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e , 21 September 2013 thru 21 December 2013.\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 Challenge is to create\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://www.comp.leeds.ac.uk/bms/Graceful/doublewheel.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eGraceful Double Wheel Graphs\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e for various N. 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://www.cs.cornell.edu/~lebras/publications/LeBras2013Double.pdf\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eGeneral Algorithm by Le Bras of Cornell\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e may be helpful, Section 3 for Even/Odd Rings. The Double Wheel Graph produces valid but not Maximum Edge Graceful Graph solutions based upon\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://oeis.org/A004137\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eOEIS A004137\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e One solution for N=11:\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:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\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\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ewhich could be answered as [1 3 14 6 19;20 5 17 7 16].\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\u003eThere are 20 links and thus the absolute differences between connected nodes must produce values 1 thru 20. The max node value is equal to the number of links and the min is zero, at the center of the Double Wheel.\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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eInput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e N [Total number of Nodes (odd) and N\u0026gt;10 ]\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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eOutput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e M [ Matrix size [(N-1)/2, 2] of node values where row-1 is outer and row-2 is inner ring ]\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\"},{\"partUri\":\"/media/image1.gif\",\"contentType\":\"image/gif\",\"content\":\"data:image/gif;base64,PCFET0NUWVBFIGh0bWw+CjwhLS1baWYgSUUgOF0+PGh0bWwgY2xhc3M9Im5vLWpzIGx0LWllOSIgbGFuZz0iZW4iPjwhW2VuZGlmXS0tPgo8IS0tW2lmIElFIDldPjxodG1sIGNsYXNzPSJuby1qcyBpZTkiIGxhbmc9ImVuIj48IVtlbmRpZl0tLT4KPCEtLVtpZiBndCBJRSA4XT48IS0tPgo8aHRtbCBjbGFzcz0ibm8tanMiIGxhbmc9ImVuIj48IS0tPCFbZW5kaWZdLS0+CiAgICA8aGVhZD4KICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT1lZGdlIj4KPCEtLSBSZW1vdmUgYXV0byBudW1iZXIgbGlua2luZy0tPgo8bWV0YSBuYW1lPSJmb3JtYXQtZGV0ZWN0aW9uIiBjb250ZW50PSJ0ZWxlcGhvbmU9bm8iPgo8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgo8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9Imh0dHA6Ly93d3cuamFkdS5jby51ayIgLz4KPG1ldGEgbmFtZT0icm9ib3RzIiBjb250ZW50PSJpbmRleCxmb2xsb3ciIC8+CjxtZXRhIG5hbWU9InJldmlzaXQtYWZ0ZXIiIGNvbnRlbnQ9IjIgZGF5cyIgLz4KPG1ldGEgbmFtZT0iYXV0aG9yIiBjb250ZW50PSJGYWN1bHR5IG9mIEVuZ2luZWVyaW5nIGFuZCBQaHlzaWNhbCBTY2llbmNlcyIgLz4KPG1ldGEgbmFtZT0icHVibGlzaGVyIiBjb250ZW50PSJVbml2ZXJzaXR5IG9mIExlZWRzIiAvPgo8bGluayByZWw9ImNhbm9uaWNhbCIgaHJlZj0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nIiAvPgoKCjxsaW5rIHJlbD0ic2NoZW1hLmRjdGVybXMiIGhyZWY9Imh0dHBzOi8vcHVybC5vcmcvZGMvdGVybXMvIiAvPgo8bWV0YSBuYW1lPSJkY3Rlcm1zLmNyZWF0b3IiIGNvbnRlbnQ9IlZpY3RvcmlhIFByaWNlIiBsYW5nPSJlbiIgLz4KPG1ldGEgbmFtZT0iZGN0ZXJtcy5jcmVhdGVkIiBjb250ZW50PSIyMDE5LTA1LTE3IiBsYW5nPSJlbiIgLz4KPG1ldGEgbmFtZT0iZGN0ZXJtcy5tb2RpZmllZCIgY29udGVudD0iMjAxOS0wNS0xNyIgbGFuZz0iZW4iIC8+CjxtZXRhIG5hbWU9ImRjdGVybXMuZGVzY3JpcHRpb24iIGNvbnRlbnQ9IlRoZSBTY2hvb2wgb2YgQ29tcHV0aW5nIGNvbmR1Y3RzIGN1dHRpbmctZWRnZSByZXNlYXJjaCBhY3Jvc3MgYSB2YXJpZXR5IG9mIGZpZWxkcy4gUmFua2VkIHRvcCAxMCBpbiB0aGUgVUsgKENvbXBsZXRlIFVuaXZlcnNpdHkgR3VpZGUgMjAyMSkuIiBsYW5nPSJlbiIgLz4KPG1ldGEgbmFtZT0iZGN0ZXJtcy5mb3JtYXQiIGNvbnRlbnQ9InRleHQvaHRtbCIgbGFuZz0iZW4iIC8+CjxtZXRhIG5hbWU9ImRjdGVybXMuaWRlbnRpZmllciIgY29udGVudD0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nIiBsYW5nPSJlbiIgLz4KPG1ldGEgbmFtZT0iZGN0ZXJtcy5sYW5ndWFnZSIgY29udGVudD0iZW4iIC8+CjxtZXRhIG5hbWU9ImRjdGVybXMucHVibGlzaGVyIiBjb250ZW50PSJVbml2ZXJzaXR5IG9mIExlZWRzIiBsYW5nPSJlbiIgLz4KPG1ldGEgbmFtZT0iZGN0ZXJtcy5yaWdodHMiIGNvbnRlbnQ9IkNvcHlyaWdodCBVbml2ZXJzaXR5IG9mIExlZWRzIiBsYW5nPSJlbiIgLz4KPG1ldGEgbmFtZT0iZGN0ZXJtcy5jb3ZlcmFnZSIgY29udGVudD0iVUsiIGxhbmc9ImVuIiAvPgo8bWV0YSBuYW1lPSJkY3Rlcm1zLnRpdGxlIiBjb250ZW50PSJTY2hvb2wgb2YgQ29tcHV0aW5nIiBsYW5nPSJlbiIgLz4KPG1ldGEgbmFtZT0iRGVzY3JpcHRpb24iIGNvbnRlbnQ9IlRoZSBTY2hvb2wgb2YgQ29tcHV0aW5nIGNvbmR1Y3RzIGN1dHRpbmctZWRnZSByZXNlYXJjaCBhY3Jvc3MgYSB2YXJpZXR5IG9mIGZpZWxkcy4gUmFua2VkIHRvcCAxMCBpbiB0aGUgVUsgKENvbXBsZXRlIFVuaXZlcnNpdHkgR3VpZGUgMjAyMSkuIiAvPgo8bWV0YSBuYW1lPSJ0d2l0dGVyOmNhcmQiIGNvbnRlbnQ9InN1bW1hcnkiIC8+CjxtZXRhIG5hbWU9InR3aXR0ZXI6dGl0bGUiIGNvbnRlbnQ9IlNjaG9vbCBvZiBDb21wdXRpbmciIC8+CjxtZXRhIG5hbWU9InR3aXR0ZXI6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9IlRoZSBTY2hvb2wgb2YgQ29tcHV0aW5nIGNvbmR1Y3RzIGN1dHRpbmctZWRnZSByZXNlYXJjaCBhY3Jvc3MgbWFueSBhcmVhcyBhbmQgb2ZmZXJzIGEgdmFyaWV0eSBvZiBzcGVjaWFsaXNlZCBjb3Vyc2VzLiIgLz4KPG1ldGEgbmFtZT0idHdpdHRlcjppbWFnZSIgY29udGVudD0iIiAvPgo8bWV0YSBuYW1lPSJ0d2l0dGVyOnVybCIgY29udGVudD0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nIiAvPgo8bWV0YSBwcm9wZXJ0eT0ib2c6dGl0bGUiIGNvbnRlbnQ9IlNjaG9vbCBvZiBDb21wdXRpbmciIC8+CjxtZXRhIHByb3BlcnR5PSJvZzp0eXBlIiBjb250ZW50PSJ3ZWJzaXRlIiAvPgo8bWV0YSBwcm9wZXJ0eT0ib2c6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9IlRoZSBTY2hvb2wgb2YgQ29tcHV0aW5nIGNvbmR1Y3RzIGN1dHRpbmctZWRnZSByZXNlYXJjaCBhY3Jvc3MgbWFueSBhcmVhcyBhbmQgb2ZmZXJzIGEgdmFyaWV0eSBvZiBzcGVjaWFsaXNlZCBjb3Vyc2VzLiIgLz4KPG1ldGEgcHJvcGVydHk9Im9nOnVybCIgY29udGVudD0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nIiAvPgo8bWV0YSBwcm9wZXJ0eT0ib2c6aW1hZ2UiIGNvbnRlbnQ9IiIgLz4KCgo8IS0tIEdvb2dsZSBUYWcgTWFuYWdlciAtLT4KPHNjcmlwdD4oZnVuY3Rpb24odyxkLHMsbCxpKXt3W2xdPXdbbF18fFtdO3dbbF0ucHVzaCh7J2d0bS5zdGFydCc6Cm5ldyBEYXRlKCkuZ2V0VGltZSgpLGV2ZW50OidndG0uanMnfSk7dmFyIGY9ZC5nZXRFbGVtZW50c0J5VGFnTmFtZShzKVswXSwKaj1kLmNyZWF0ZUVsZW1lbnQocyksZGw9bCE9J2RhdGFMYXllcic/JyZsPScrbDonJztqLmFzeW5jPXRydWU7ai5zcmM9CidodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbS9ndG0uanM/aWQ9JytpK2RsO2YucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoaixmKTsKfSkod2luZG93LGRvY3VtZW50LCdzY3JpcHQnLCdkYXRhTGF5ZXInLCdHVE0tV0pQWk0yVCcpOzwvc2NyaXB0Pgo8IS0tIEVuZCBHb29nbGUgVGFnIE1hbmFnZXIgLS0+Cgo8dGl0bGU+ICAgIFNjaG9vbCBvZiBDb21wdXRpbmcgfCAgVW5pdmVyc2l0eSBvZiBMZWVkcwo8L3RpdGxlPgoKPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3VzZS50eXBla2l0Lm5ldC95b3M2dW93LmNzcyI+Cgo8IS0tIEluY2x1ZGUgSlMgLS0+CjxzY3JpcHQgc3JjPSJodHRwczovL3Byb2R1Y3Rpb24yLmxlZWRzLmFjLnVrL2phZHVjZG4vdGhlbWVzL2RlZmF1bHQvYXNzZXRzL2Rpc3QvbW9kZXJuaXpyLWN1c3RvbS5qcz92ZXJzaW9uPWZiMmE5ZTJjMTkxMGFhN2Y4MWJlZTIzZjBiNGE3ODBhIj48L3NjcmlwdD4KCjwhLS0gSW5jbHVkZSBGYXZpY29uIC0tPgo8bGluayByZWw9Imljb24iIHR5cGU9ImltYWdlL3BuZyIgaHJlZj0iaHR0cHM6Ly9wcm9kdWN0aW9uMi5sZWVkcy5hYy51ay9qYWR1Y2RuL3RoZW1lcy9kZWZhdWx0L2Fzc2V0cy9kaXN0L2ltZy9mYXZpY29uLmljbyIgLz4KCjxsaW5rIGhyZWY9Imh0dHBzOi8vcHJvZHVjdGlvbjIubGVlZHMuYWMudWsvamFkdWNkbi90aGVtZXMvZGVmYXVsdC9hc3NldHMvZGlzdC90aGVtZS1kZWZhdWx0L2Jvb3RzdHJhcC5taW4uY3NzP3ZlcnNpb249ZmIyYTllMmMxOTEwYWE3ZjgxYmVlMjNmMGI0YTc4MGEiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0ndGV4dC9jc3MnIG1lZGlhPSJzY3JlZW4iPgo8bGluayBocmVmPSJodHRwczovL3Byb2R1Y3Rpb24yLmxlZWRzLmFjLnVrL2phZHVjZG4vdGhlbWVzL2RlZmF1bHQvYXNzZXRzL2Rpc3QvdGhlbWUtZGVmYXVsdC90b29sa2l0Lm1pbi5jc3M/dmVyc2lvbj1mYjJhOWUyYzE5MTBhYTdmODFiZWUyM2YwYjRhNzgwYSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSd0ZXh0L2NzcycgbWVkaWE9InNjcmVlbiI+CjxsaW5rIGhyZWY9Imh0dHBzOi8vcHJvZHVjdGlvbjIubGVlZHMuYWMudWsvamFkdWNkbi90aGVtZXMvZGVmYXVsdC9hc3NldHMvZGlzdC90aGVtZS1kZWZhdWx0L2Nvb2tpZXMubWluLmNzcz92ZXJzaW9uPWZiMmE5ZTJjMTkxMGFhN2Y4MWJlZTIzZjBiNGE3ODBhIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9J3RleHQvY3NzJyBtZWRpYT0ic2NyZWVuIj4KPGxpbmsgaHJlZj0iaHR0cHM6Ly9wcm9kdWN0aW9uMi5sZWVkcy5hYy51ay9qYWR1Y2RuL3RoZW1lcy9kZWZhdWx0L2Fzc2V0cy9kaXN0L3RoZW1lLWRlZmF1bHQvcHJpbnQubWluLmNzcz92ZXJzaW9uPWZiMmE5ZTJjMTkxMGFhN2Y4MWJlZTIzZjBiNGE3ODBhJyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0icHJpbnQiPgogICAgICAgIDwvaGVhZD4KICAgIDxib2R5IGNsYXNzPSJlcHMiPgo8IS0tIEdvb2dsZSBUYWcgTWFuYWdlciAobm9zY3JpcHQpIC0tPgo8bm9zY3JpcHQ+PGlmcmFtZSBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL25zLmh0bWw/aWQ9R1RNLVdKUFpNMlQiCmhlaWdodD0iMCIgd2lkdGg9IjAiIHN0eWxlPSJkaXNwbGF5Om5vbmU7dmlzaWJpbGl0eTpoaWRkZW4iPjwvaWZyYW1lPjwvbm9zY3JpcHQ+CjwhLS0gRW5kIEdvb2dsZSBUYWcgTWFuYWdlciAobm9zY3JpcHQpIC0tPgogICAgICAgIDxkaXYgaWQ9InNpdGUtY29udGFpbmVyIiBjbGFzcz0ic2l0ZS1jb250YWluZXItbWQiPgogICAgICAgICAgICA8YSBpZD0ic2tpcC1tYWluIiBocmVmPSIjbWFpbiIgcmVsPSJub2ZvbGxvdyI+U2tpcCB0byBtYWluIGNvbnRlbnQ8L2E+CjxkaXYgY2xhc3M9InF1aWNrbGlua3Mtb3V0ZXIiPgoKICAgIDxkaXYgY2xhc3M9Im1hc3RoZWFkLWxpbmtzIj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJtYXN0aGVhZC1saW5rIG1hc3RoZWFkLWxpbmstcXVpY2tsaW5rcyBqcy1xdWlja2xpbmtzLXRvZ2dsZSIgZGF0YS10b2dnbGU9ImNvbGxhcHNlIiBkYXRhLXRhcmdldD0iI3F1aWNrbGlua3MiIGFyaWEtbGFiZWw9Ik9wZW4gVW5pdmVyc2l0eSBxdWlja2xpbmtzIG1lbnUiPlVuaXZlcnNpdHkgbGlua3M8L2J1dHRvbj4KICAgIDwvZGl2PiAgIAoKICAgIDxuYXYgaWQ9InF1aWNrbGlua3MiIGNsYXNzPSJxdWlja2xpbmtzIGNvbGxhcHNlIiByb2xlPSJuYXZpZ2F0aW9uIj4gICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyLXJlbGF0aXZlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icXVpY2tsaW5rcy1pbm5lciI+ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRrLXJvdyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNtLTYgY29sLW1kLTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0icXVpY2tsaW5rcy1saXN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9InRpdGxlIj5Gb3Igc3RhZmY8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL3d3dy5sZWVkcy5hYy51ay9mb3JzdGFmZi9ob21lcGFnZS8zNzUvc2VydmljZXMiPkEtWiBTZXJ2aWNlczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL3d3dy5sZWVkcy5hYy51ay9mb3JzdGFmZi8iPkZvciBTdGFmZjwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL3Nlcy5sZWVkcy5hYy51ay8iPlN0dWRlbnQgRWR1Y2F0aW9uIFNlcnZpY2U8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0icXVpY2tsaW5rcy1saXN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9InRpdGxlIj5Gb3Igc3R1ZGVudHM8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL3N0dWRlbnRzLmxlZWRzLmFjLnVrLyI+Rm9yIFN0dWRlbnRzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vbWluZXJ2YS5sZWVkcy5hYy51ay8iPk1pbmVydmE8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9pdC5sZWVkcy5hYy51ay9pdD9pZD1rYl9hcnRpY2xlJmFtcDtzeXNwYXJtX2FydGljbGU9S0IwMDExOTQ4Ij5Nb2JpbGUgYXBwczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PGRpdiBjbGFzcz0iY29sLXNtLTYgY29sLW1kLTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9InF1aWNrbGlua3MtbGlzdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0aXRsZSI+RmFjdWx0aWVzPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9haGMubGVlZHMuYWMudWsvIj5GYWN1bHR5IG9mIEFydHMsIEh1bWFuaXRpZXMgYW5kIEN1bHR1cmVzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vYmlvbG9naWNhbHNjaWVuY2VzLmxlZWRzLmFjLnVrLyI+RmFjdWx0eSBvZiBCaW9sb2dpY2FsIFNjaWVuY2VzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vYnVzaW5lc3MubGVlZHMuYWMudWsvIj5GYWN1bHR5IG9mIEJ1c2luZXNzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZXBzLmxlZWRzLmFjLnVrIj5GYWN1bHR5IG9mIEVuZ2luZWVyaW5nIGFuZCBQaHlzaWNhbCBTY2llbmNlczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2Vudmlyb25tZW50LmxlZWRzLmFjLnVrIj5GYWN1bHR5IG9mIEVudmlyb25tZW50PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vbWVkaWNpbmVoZWFsdGgubGVlZHMuYWMudWsvIj5GYWN1bHR5IG9mIE1lZGljaW5lIGFuZCBIZWFsdGg8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9lc3NsLmxlZWRzLmFjLnVrLyI+RmFjdWx0eSBvZiBTb2NpYWwgU2NpZW5jZXM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cubGxjLmxlZWRzLmFjLnVrLyI+TGlmZWxvbmcgTGVhcm5pbmcgQ2VudHJlPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmxlZWRzLmFjLnVrL2luZm8vMTMwNTY3L2xhbmd1YWdlX2NlbnRyZSI+TGFuZ3VhZ2UgQ2VudHJlPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48ZGl2IGNsYXNzPSJjb2wtc20tNiBjb2wtbWQtMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0icXVpY2tsaW5rcy1saXN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9InRpdGxlIj5PdGhlcjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubGVlZHMuYWMudWsvc3RhZmZheiI+QS1aIFN0YWZmPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vYWx1bW5pLmxlZWRzLmFjLnVrLyI+QWx1bW5pPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubGVlZHMuYWMudWsvY2FtcHVzbWFwIj5DYW1wdXMgbWFwPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubGVlZHMuYWMudWsvY29udGFjdCI+Q29udGFjdHM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9pdC5sZWVkcy5hYy51ay9pdCI+SVQ8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5sZWVkcy5hYy51ay9qb2JzIj5Kb2JzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3Lmx1dS5vcmcudWsvIj5MZWVkcyBVbml2ZXJzaXR5IFVuaW9uPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vbGlicmFyeS5sZWVkcy5hYy51ay8iPkxpYnJhcnk8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjxkaXYgY2xhc3M9ImNvbC1zbS02IGNvbC1tZC0zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJxdWlja2xpbmtzLWxpc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0idGl0bGUiPkZvbGxvdyB1czwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS91bml2ZXJzaXR5b2ZsZWVkcyI+RmFjZWJvb2s8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9pbnN0YWdyYW0uY29tL3VuaXZlcnNpdHlvZmxlZWRzLyI+SW5zdGFncmFtPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9zY2hvb2wvdW5pdmVyc2l0eS1vZi1sZWVkcy8iPkxpbmtlZEluPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS91bml2ZXJzaXR5LW9mLWxlZWRzIj5NZWRpdW08L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iIGh0dHBzOi8vdGhlY29udmVyc2F0aW9uLmNvbS9pbnN0aXR1dGlvbnMvdW5pdmVyc2l0eS1vZi1sZWVkcy0xMTIyIj5UaGUgQ29udmVyc2F0aW9uPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vdW5pdmVyc2l0eWxlZWRzIj5Ud2l0dGVyPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LndlaWJvLmNvbS9sZWVkc3VuaXZlcnNpdHl1ayI+V2VpYm88L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vdW5pdmVyc2l0eW9mbGVlZHMiPllvdVR1YmU8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjxkaXYgY2xhc3M9ImNvbC1zbS02IGNvbC1tZC0zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InF1aWNrbGlua3MtY2xvc2UiPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iaWNvbi1mb250IGJ0bi1pY29uIGpzLXF1aWNrbGlua3MtY2xvc2UiIGRhdGEtdG9nZ2xlPSJjb2xsYXBzZSIgZGF0YS10YXJnZXQ9IiNxdWlja2xpbmtzIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGstaWNvbi1jbG9zZSIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tZm9udC10ZXh0Ij5DbG9zZSBxdWlja2xpbmtzPC9zcGFuPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9uYXY+Cgo8L2Rpdj4KPCEtLSAkTUFTVEhFQUQtLT4KPGhlYWRlciBpZD0ibWFzdGhlYWQiIGNsYXNzPSJtYXN0aGVhZCIgcm9sZT0iYmFubmVyIj4KCiAgICA8ZGl2IGNsYXNzPSJuYXZpY29uIj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4taWNvbiIgZGF0YS1zdGF0ZT0iYm9keS1zdGF0ZSIgZGF0YS1jbGFzcz0ic3RhdGUtbmF2aWNvbi1hY3RpdmUiPk1lbnU8L2J1dHRvbj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImxvZ28iPgogICAgICAgICAgICAgICAgPGEgY2xhc3M9ImxvZ28tZnVsbCIgdGl0bGU9IlVuaXZlcnNpdHkgb2YgTGVlZHMgaG9tZXBhZ2UiIGhyZWY9Ii8vd3d3LmxlZWRzLmFjLnVrLyI+CiAgICAgICAgICAgIDxpbWcgY2xhc3M9ImpzLXBuZy1zdmctdXJpIiBkYXRhLXVyaT0iaHR0cHM6Ly9wcm9kdWN0aW9uMi5sZWVkcy5hYy51ay9qYWR1Y2RuL3RoZW1lcy9kZWZhdWx0L2Fzc2V0cy9kaXN0L2ltZy91b2wtbG9nby5zdmciIHNyYz0iaHR0cHM6Ly9wcm9kdWN0aW9uMi5sZWVkcy5hYy51ay9qYWR1Y2RuL3RoZW1lcy9kZWZhdWx0L2Fzc2V0cy9kaXN0L2ltZy91b2wtbG9nby5wbmciIGFsdD0iVW5pdmVyc2l0eSBvZiBMZWVkcyBsb2dvIj4KICAgICAgICA8L2E+CgogICAgICAgIDxhIGNsYXNzPSJsb2dvLW1hcmsiIHRpdGxlPSJVbml2ZXJzaXR5IG9mIExlZWRzIGhvbWVwYWdlIiBocmVmPSIvL3d3dy5sZWVkcy5hYy51ay8iPgogICAgICAgICAgICA8aW1nIGNsYXNzPSJqcy1wbmctc3ZnLXVyaSIgZGF0YS11cmk9Imh0dHBzOi8vcHJvZHVjdGlvbjIubGVlZHMuYWMudWsvamFkdWNkbi90aGVtZXMvZGVmYXVsdC9hc3NldHMvZGlzdC9pbWcvdW9sLWxvZ28tbWFyay5zdmciIHNyYz0iaHR0cHM6Ly9wcm9kdWN0aW9uMi5sZWVkcy5hYy51ay9qYWR1Y2RuL3RoZW1lcy9kZWZhdWx0L2Fzc2V0cy9kaXN0L2ltZy91b2wtbG9nby1tYXJrLnBuZyIgYWx0PSJVbml2ZXJzaXR5IG9mIExlZWRzIGxvZ28iPgogICAgICAgIDwvYT4KICAgIDwvZGl2PgoKPC9oZWFkZXI+CjwhLS0gLyRNQVNUSEVBRC0tPgo8IS0tICRTSVRFU0VBUkNILS0+CjxkaXYgaWQ9InNpdGVzZWFyY2giIGNsYXNzPSJzaXRlLXNlYXJjaCBjb2xsYXBzZSI+CiAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyLXBkLXh4cyI+CiAgICAgICAgPGZvcm0gY2xhc3M9InNpdGUtc2VhcmNoLWlubmVyIiBhY3Rpb249Ii8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvc2VhcmNoLXJlc3VsdHMucGhwIiByb2xlPSJzZWFyY2giPgogICAgICAgICAgICA8aW5wdXQgaWQ9ImNpZCIgbmFtZT0iY2lkIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSIxOTAiPgogICAgICAgICAgICA8bGFiZWwgY2xhc3M9InNyLW9ubHkiIGZvcj0ic2VhcmNoSW5wdXQiPlNlYXJjaDwvbGFiZWw+CiAgICAgICAgICAgIDxpbnB1dCBpZD0ic2VhcmNoSW5wdXQiIGNsYXNzPSJzaXRlLXNlYXJjaC1pbnB1dCIgdHlwZT0ic2VhcmNoIiBuYW1lPSJxdWVyeSIgcGxhY2Vob2xkZXI9IlNlYXJjaCIgYXV0b2NvbXBsZXRlPSJvZmYiPgoKICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJzci1vbmx5IiBmb3I9InNlYXJjaE9wdGlvbiI+RGVzdGluYXRpb248L2xhYmVsPgoKICAgICAgICAgICAgPHNlbGVjdCBpZD0ic2VhcmNoT3B0aW9uIiBjbGFzcz0ic2l0ZS1zZWFyY2gtc2VsZWN0IGpzLWFjdGlvbi10b2dnbGUiIG5hbWU9InNlYXJjaE9wdGlvbiI+CgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0ic2VhcmNoU2l0ZSIgc2VsZWN0ZWQgZGF0YS1hY3Rpb249Ii8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvc2VhcmNoLXJlc3VsdHMucGhwIj5GYWN1bHR5IG9mIEVuZ2luZWVyaW5nIGFuZCBQaHlzaWNhbCBTY2llbmNlcyBzaXRlPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJzZWFyY2hBbGwiIGRhdGEtYWN0aW9uPSIvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL3NlYXJjaC1yZXN1bHRzLnBocCI+QWxsIGxlZWRzLmFjLnVrIHNpdGVzPC9vcHRpb24+CgogICAgICAgICAgICAgICAgPCEtLTxvcHRncm91cCBsYWJlbD0iVG9vbGtpdCBjb3Vyc2VzIj4KICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJVRyIgZGF0YS1hY3Rpb249Ii8vY291cnNlcy5sZWVkcy5hYy51ay9jb3Vyc2Utc2VhcmNoIj5VbmRlcmdyYWR1YXRlPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUEdUIiBkYXRhLWFjdGlvbj0iLy9jb3Vyc2VzLmxlZWRzLmFjLnVrL2NvdXJzZS1zZWFyY2giPlBvc3RncmFkdWF0ZSB0YXVnaHQ8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQR1IiIGRhdGEtYWN0aW9uPSIvL2NvdXJzZXMubGVlZHMuYWMudWsvY291cnNlLXNlYXJjaCI+UG9zdGdyYWR1YXRlIHJlc2VhcmNoPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8L29wdGdyb3VwPi0tPgoKICAgICAgICAgICAgPC9zZWxlY3Q+CgogICAgICAgICAgICA8aW5wdXQgY2xhc3M9InNpdGUtc2VhcmNoLXN1Ym1pdCBidG4gYnRuLXByaW1hcnkiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCI+CiAgICAgICAgPC9mb3JtPgogICAgPC9kaXY+CjwvZGl2Pgo8IS0tIC8kU0lURVNFQVJDSC0tPgo8ZGl2IGlkPSJxdWlja3NlYXJjaCIgY2xhc3M9IndyYXBwZXItbGcgd3JhcHBlci1wZCB3cmFwcGVyLXJlbGF0aXZlIj4KICAgIDxkaXYgY2xhc3M9InF1aWNrLXNlYXJjaCI+CgogICAgPC9kaXY+CjwvZGl2PjwhLS0gJExPQ0FMSEVBREVSLS0+CjxkaXYgY2xhc3M9ImxvY2FsLWhlYWRlciI+CiAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyLXBkLXhzIj4KICAgICAgICA8ZGl2IGNsYXNzPSJsb2NhbC1oZWFkZXItaW5uZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2NhbC1oZWFkZXItdGl0bGUiIHJvbGU9Im5hdmlnYXRpb24iIGFyaWEtbGFiZWw9IkhvbWUgcGFnZSBsaW5rIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nIj5TY2hvb2wgb2YgQ29tcHV0aW5nPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvY2FsLWhlYWRlci1zZWFyY2giPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iaWNvbi1mb250IHNtLXRvZ2dsZS1zZWFyY2ggYnRuLWljb24ganMtc2l0ZS1zZWFyY2gtdG9nZ2xlIiBkYXRhLXRvZ2dsZT0iY29sbGFwc2UiIGRhdGEtdGFyZ2V0PSIjc2l0ZXNlYXJjaCIgcm9sZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJPcGVuIHNpdGUgc2VhcmNoIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2l0ZS1zZWFyY2gtYnRuIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uLWZvbnQtdGV4dCI+U2VhcmNoPC9zcGFuPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2Pgo8IS0tIC8kTE9DQUxIRUFERVItLT4KPG5hdiBpZD0idGstbmF2LXByaW9yaXR5IiBjbGFzcz0idGstbmF2IHRrLW5hdi1wcmlvcml0eSIgcm9sZT0ibmF2aWdhdGlvbiI+CiAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyLXJlbGF0aXZlIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0ay1uYXYtaGVhZGVyIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuLWljb24gYnRuLW1lbnUiIGRhdGEtc3RhdGU9ImJvZHktc3RhdGUiIGRhdGEtY2xhc3M9InN0YXRlLW5hdmljb24tYWN0aXZlIj5DbG9zZTwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRrLW5hdi1pbm5lciI+CiAgICAgICAgICA8dWwgY2xhc3M9InRrLW5hdi1saXN0IHRrLW5hdi1saXN0LXByaW1hcnkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nIj5Ib21lPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9InRrLW5hdi1kcm9wZG93biB0ay1uYXYtZHJvcGRvd24tLWl0ZW1zLTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI2Ryb3BfMDEiIHJlbD0ibm9mb2xsb3ciPlN0dWR5PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgaWQ9ImRyb3BfMDEiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nLXVuZGVyZ3JhZHVhdGUiPlVuZGVyZ3JhZHVhdGU8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmctbWFzdGVycyI+TWFzdGVyczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8vZXBzLmxlZWRzLmFjLnVrL2NvbXB1dGluZy1yZXNlYXJjaC1kZWdyZWVzIj5SZXNlYXJjaCBkZWdyZWVzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nLXJlc2VhcmNoLWlubm92YXRpb24iPlJlc2VhcmNoIGFuZCBJbm5vdmF0aW9uPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL3N0YWZmbGlzdCI+UGVvcGxlPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL2RvYy9jb250YWN0LXVzLTQiPkNvbnRhY3QgdXM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9uYXY+CiAgICAgICAgICAgIDxtYWluIGlkPSJtYWluIiBjbGFzcz0ibWFpbiIgcm9sZT0ibWFpbiI+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IAogICAgPGgxIGNsYXNzPSJoaWRlLWFjY2Vzc2libGUiPlNjaG9vbCBvZiBDb21wdXRpbmc8L2gxPgoKICAgICAgICAgICAgPCEtLSAkV0lER0VUIDMwMDEgLSBUSyBiYW5uZXIgLS0+CjxkaXYgY2xhc3M9IndpZGdldC0zMDAxIHdpZGdldC1iYW5uZXIgIj4KCiAgICAgICAgPGRpdiBjbGFzcz0iIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3dpcGVyIHN3aXBlci0xIHN3aXBlci1mdWxsLXdpZHRoIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNsaWRlIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbGlkZS1pbm5lciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbGlkZS1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbGlkZS1jb250ZW50LWlubmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InNsaWRlLWhlYWRpbmciIGRhdGEtY2hhci1saW1pdD0iNzUiPkNsZWFyaW5nIDIwMjA8L2gyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJzbGlkZS1sZWFkIiBkYXRhLWNoYXItbGltaXQ9IjIwMCI+Sm9pbiBhIHdvcmxkIHRvcCAxMDAgdW5pdmVyc2l0eTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ic2xpZGUtY3RhIiBocmVmPSJodHRwOi8vd3d3LmxlZWRzLmFjLnVrL2luZm8vMTMwNTc2L2NsZWFyaW5nX2FuZF9jb25maXJtYXRpb24/dXRtX3NvdXJjZT13ZWImdXRtX21lZGl1bT1iYW5uZXImdXRtX2NhbXBhaWduPUNsZWFyaW5nXzIwMjAmdXRtX3Rlcm09RVBTJnV0bV9jb250ZW50PUZpbmQlMjBvdXQlMjBtb3JlIj5TZWFyY2ggb3VyIGNsZWFyaW5nIGxpc3RpbmdzPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbGlkZS1pbWciIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOnVybCgnLy9lcHMubGVlZHMuYWMudWsvc2l0ZS9jdXN0b21fc2NyaXB0cy9pbWFnZS5waHA/dz03OTgmYW1wO2g9Mzk5JmFtcDtmaWxlbmFtZT1DbGVhcmluZ18yMDIwLnBuZyZhbXA7anBlZ3F1YWxpdHk9ODUnKTsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Ii8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9Nzk4JmFtcDtoPTM5OSZhbXA7ZmlsZW5hbWU9Q2xlYXJpbmdfMjAyMC5wbmcmYW1wO2pwZWdxdWFsaXR5PTg1IiBhbHQ9IkNsZWFyaW5nIDIwMjAiPiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ibGluay13cmFwIiBocmVmPSJodHRwOi8vd3d3LmxlZWRzLmFjLnVrL2luZm8vMTMwNTc2L2NsZWFyaW5nX2FuZF9jb25maXJtYXRpb24/dXRtX3NvdXJjZT13ZWImdXRtX21lZGl1bT1iYW5uZXImdXRtX2NhbXBhaWduPUNsZWFyaW5nXzIwMjAmdXRtX3Rlcm09RVBTJnV0bV9jb250ZW50PUZpbmQlMjBvdXQlMjBtb3JlIj5TZWFyY2ggb3VyIGNsZWFyaW5nIGxpc3RpbmdzPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbGlkZSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2xpZGUtaW5uZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2xpZGUtY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2xpZGUtY29udGVudC1pbm5lciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJzbGlkZS1oZWFkaW5nIiBkYXRhLWNoYXItbGltaXQ9Ijc1Ij5BZHZhbmNlZCBDb21wdXRlciBTY2llbmNlIE1TYzwvaDI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InNsaWRlLWxlYWQiIGRhdGEtY2hhci1saW1pdD0iMjAwIj5TdGFydCB5b3VyIGNvdXJzZSBpbiBTZXB0ZW1iZXIgb3IgSmFudWFyeTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ic2xpZGUtY3RhIiBocmVmPSJodHRwczovL2Vwcy5sZWVkcy5hYy51ay9jb3Vyc2VzL1BHL0Y3NTMvYWR2YW5jZWQtY29tcHV0ZXItc2NpZW5jZSI+QXBwbHkgbm93PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbGlkZS1pbWciIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOnVybCgnLy9lcHMubGVlZHMuYWMudWsvc2l0ZS9jdXN0b21fc2NyaXB0cy9pbWFnZS5waHA/dz0xMjAwJmFtcDtoPTYwMCZhbXA7ZmlsZW5hbWU9MTIwMHg2MDBfY29tcF9scl8yLmpwZyZhbXA7anBlZ3F1YWxpdHk9ODUnKTsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Ii8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9MTIwMCZhbXA7aD02MDAmYW1wO2ZpbGVuYW1lPTEyMDB4NjAwX2NvbXBfbHJfMi5qcGcmYW1wO2pwZWdxdWFsaXR5PTg1IiBhbHQ9IlNjaG9vbCBvZiBDb21wdXRpbmciPiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ibGluay13cmFwIiBocmVmPSJodHRwczovL2Vwcy5sZWVkcy5hYy51ay9jb3Vyc2VzL1BHL0Y3NTMvYWR2YW5jZWQtY29tcHV0ZXItc2NpZW5jZSI+QXBwbHkgbm93PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbGlkZSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2xpZGUtaW5uZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2xpZGUtY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2xpZGUtY29udGVudC1pbm5lciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJzbGlkZS1oZWFkaW5nIiBkYXRhLWNoYXItbGltaXQ9Ijc1Ij5DZW50cmVzIGZvciBEb2N0b3JhbCBUcmFpbmluZzwvaDI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InNsaWRlLWxlYWQiIGRhdGEtY2hhci1saW1pdD0iMjAwIj5UcmFpbmluZyB0b21vcnJvdydzIGxlYWRpbmcgcmVzZWFyY2hlcnMgdG8gYWRkcmVzcyBwcm9ibGVtcyBmb3IgdGhlIGJlbmVmaXRzIG9mIHNvY2lldHk8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9InNsaWRlLWN0YSIgaHJlZj0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nLXJlc2VhcmNoLWRlZ3JlZXMvZG9jL2NlbnRyZXMtZG9jdG9yYWwtdHJhaW5pbmciPk1vcmU8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNsaWRlLWltZyIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6dXJsKCcvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL2ltYWdlLnBocD93PTE0MDAmYW1wO2g9NzAwJmFtcDtmaWxlbmFtZT1DRFRoZXJvLmpwZyZhbXA7anBlZ3F1YWxpdHk9ODUnKTsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Ii8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9MTQwMCZhbXA7aD03MDAmYW1wO2ZpbGVuYW1lPUNEVGhlcm8uanBnJmFtcDtqcGVncXVhbGl0eT04NSIgYWx0PSJTdHVkZW50IHdvcmtpbmcgYXQgY29tcHV0ZXIiPiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ibGluay13cmFwIiBocmVmPSJodHRwczovL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmctcmVzZWFyY2gtZGVncmVlcy9kb2MvY2VudHJlcy1kb2N0b3JhbC10cmFpbmluZyI+TW9yZTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9InN3aXBlci1uYXYgc3dpcGVyLW5hdi0zIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJhY3RpdmUiPjxhIGhyZWY9IiNzbGlkZTAiIHJlbD0ibm9mb2xsb3ciIGRhdGEtc2xpZGU9JzAnPkNsZWFyaW5nIDIwMjA8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpID48YSBocmVmPSIjc2xpZGUxIiByZWw9Im5vZm9sbG93IiBkYXRhLXNsaWRlPScxJz5BZHZhbmNlZCBDb21wdXRlciBTY2llbmNlIE1TYzwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGkgPjxhIGhyZWY9IiNzbGlkZTIiIHJlbD0ibm9mb2xsb3ciIGRhdGEtc2xpZGU9JzInPkZ1bGx5IGZ1bmRlZCBwaGRzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgo8YSBjbGFzcz0ianMtc3dpcGVyLXNjcm9sbCBzd2lwZXItbW9yZSIgaHJlZj0iI2Rvd24iIHJlbD0ibm9mb2xsb3ciPlNjcm9sbCBkb3duPC9hPgo8L2Rpdj4KCgo8L2Rpdj4KPCEtLSAvJFdJREdFVCAzMDAxIC0gVEsgYmFubmVyIC0tPgoKICAgICAgICAgICAgPCEtLSAkV0lER0VUIDMwMDQgVEsgY29udGVudCAtLT4NCjxkaXYgY2xhc3M9IndpZGdldC0zMDA0Ij4NCiAgICANCiAgICAgICAgPGRpdiBjbGFzcz0ic2tpbi1yb3ctd2hpdGUgY29udGFpbmVyLXJvdyI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyLW1kIHdyYXBwZXItcGQtbWQiPiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0iaDItbGcgaGVhZGluZy11bmRlcmxpbmUiPkNvcm9uYXZpcnVzIChjb3ZpZC0xOSk8L2gyPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImphZHUtY21zIj48cD5XZSBrbm93IHRoYXQgbWFueSBwZW9wbGUgYXJlIHVuZGVyc3RhbmRhYmx5IGFueGlvdXMgYWJvdXQgdGhlIGN1cnJlbnQgY29yb25hdmlydXMgb3V0YnJlYWsuIElmIHlvdSYjMzk7cmUgYW48cz4gPC9zPmFwcGxpY2FudCBvciBvZmZlciBob2xkZXIgZm9yIGEgdGF1Z2h0IGNvdXJzZSBwbGVhc2UgdmlzaXQgb3VyJm5ic3A7PGEgaHJlZj0iaHR0cHM6Ly93d3cubGVlZHMuYWMudWsvaW5mby8xMTYwMDAvdW5kZXJncmFkdWF0ZS84MDIvY29yb25hdmlydXMtaW5mb3JtYXRpb25fZm9yX2FwcGxpY2FudHNfYW5kX29mZmVyX2hvbGRlcnMiIHRhcmdldD0iX2JsYW5rIj5jb3JvbmF2aXJ1cyBGQVFzPC9hPi4mbmJzcDtJZiB5b3UmIzM5O3JlIGEgUGhEIHJlc2VhcmNoZXIgYXBwbGljYW50IG9yIG9mZmVyIGhvbGRlciB2aXNpdCB0aGlzIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmxlZWRzLmFjLnVrL2luZm8vMTAyMDAwL3Jlc2VhcmNoX2RlZ3JlZXMvODA0L2Nvcm9uYXZpcnVzLWluZm9ybWF0aW9uX2Zvcl9wZ3JfYXBwbGljYW50c19hbmRfb2ZmZXJfaG9sZGVycyI+d2VicGFnZSBmb3IgZnVydGhlciBpbmZvcm1hdGlvbjwvYT4uPC9wPgoKPHA+SWYgeW91JnJzcXVvO3JlIGFuIGV4aXN0aW5nIHN0dWRlbnQgb3IgbWVtYmVyIG9mIHN0YWZmLCBwbGVhc2UgdmlzaXQgb3VyJm5ic3A7PGEgaHJlZj0iaHR0cHM6Ly9jb3JvbmF2aXJ1cy5sZWVkcy5hYy51ay8iIHRhcmdldD0iX2JsYW5rIj5jb3JvbmF2aXJ1cyB3ZWJzaXRlPC9hPiZuYnNwO2ZvciB0aGUgbGF0ZXN0IHVwZGF0ZXMgYW5kIGluZm9ybWF0aW9uLiZuYnNwOzwvcD4KPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2Rpdj4gDQo8L2Rpdj4gICAgICAgICAgICANCjwhLS0gJFdJREdFVCAzMDA0IFRLIGNvbnRlbnQgLS0+DQoNCg0KDQoKICAgICAgICAgICAgCjwhLS0gJFdJREdFVCAzMDEzIFRLIGZhY3QgYW5kIGZpZ3VyZXMgLS0+CjxkaXYgY2xhc3M9IndpZGdldC0zMDEzIj4KICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lci1yb3cgIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyLW1kIHdyYXBwZXItcGQtbWQiPgoKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXF1YWxpemUiIHJvbGU9Imxpc3QiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGstcm93IGVxdWFsaXplIj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC00IGRpdmlkZXItcmlnaHQtbWQgZXF1YWxpemUtaW5uZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZhY3QiIHJvbGU9Imxpc3RpdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJoZWFkaW5nLWZhY3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvcCB0ZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJsZWFkLWZhY3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBVSyBmb3IgQ29tcHV0ZXIgU2NpZW5jZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21wbGV0ZSBVbml2ZXJzaXR5IEd1aWRlIDIwMjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC00IGRpdmlkZXItcmlnaHQtbWQgZXF1YWxpemUtaW5uZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZhY3QiIHJvbGU9Imxpc3RpdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJoZWFkaW5nLWZhY3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE92ZXIgPHNwYW4+ODU8L3NwYW4+JSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2gzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImxlYWQtZmFjdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Ygb3VyIHJlc2VhcmNoIGFjdGl2aXR5IGlzICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3b3JsZC1sZWFkaW5nJyBvciAnaW50ZXJuYXRpb25hbGx5IGV4Y2VsbGVudCcgbGF0ZXN0IFJFRiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTQgZXF1YWxpemUtaW5uZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZhY3QiIHJvbGU9Imxpc3RpdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJoZWFkaW5nLWZhY3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvcCA8c3Bhbj4xMDA8L3NwYW4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0ibGVhZC1mYWN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXb3JsZCB0b3AgMTAwIHVuaXZlcnNpdHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVMgV29ybGQgVW5pdmVyc2l0eSBSYW5raW5ncyAyMDIxICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9kaXY+CjwhLS0gLyRXSURHRVQgMzAxMyBUSyBmYWN0IGFuZCBmaWd1cmVzIC0tPgoKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3aWRnZXQtMzAwMyBjYXJkcy1jb250YWluZXIgIGNhcmRzLWNvbnRhaW5lci0tbm8taGVhZGluZyAgY2FyZHMtY29udGFpbmVyLS1uby1sZWFkICI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lci1yb3cgc2tpbi1yb3ctbW9kdWxlLWxpZ2h0IGVxdWFsaXplIj4KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyLXBkLW1kIHdyYXBwZXItbGciPgoKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ay1yb3ciPgoKICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNtLTQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtZmxhdCBjYXJkLXN0YWNrZWQtc20gc2tpbi1iZC1iIHNraW4tYm94LXdoaXRlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW1nIGNhcmQtaW1nLTEtMyBjYXJkLWltZy0xLTQteHMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJycy1pbWcgcnMtaW1nLTItMSIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybCgnLy9lcHMubGVlZHMuYWMudWsvc2l0ZS9jdXN0b21fc2NyaXB0cy9pbWFnZS5waHA/dz02MDAmYW1wO2g9MzAwJmFtcDtmaWxlbmFtZT04MDB4NDAwdWdjb21wdXRpbmcuanBnJykiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmctdW5kZXJncmFkdWF0ZSIgdGl0bGU9IlVuZGVyZ3JhZHVhdGUgZGVncmVlcyI+PGltZyBzcmM9Ii8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9NjAwJmFtcDtoPTMwMCZhbXA7ZmlsZW5hbWU9ODAweDQwMHVnY29tcHV0aW5nLmpwZyIgYWx0PSJUaHJlZSBDb21wdXRpbmcgc3R1ZGVudHMsIG9uZSB1c2luZyBWUiI+PHNwYW4gY2xhc3M9ImhpZGUtYWNjZXNzaWJsZSI+IFVuZGVyZ3JhZHVhdGUgZGVncmVlczwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1jb250ZW50IGVxdWFsaXplLWlubmVyIGNhcmQtY29udGVudC0yLTMgY2FyZC1jb250ZW50LTMtNC14cyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJoZWFkaW5nLWxpbmstYWx0Ij48YSBocmVmPSJodHRwOi8vZXBzLmxlZWRzLmFjLnVrL2NvbXB1dGluZy11bmRlcmdyYWR1YXRlIj5VbmRlcmdyYWR1YXRlIGRlZ3JlZXM8L2E+PC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0ibm90ZSI+PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ibW9yZSIgaHJlZj0iaHR0cDovL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmctdW5kZXJncmFkdWF0ZSIgdGl0bGU9Ik1vcmUgb24gVW5kZXJncmFkdWF0ZSBkZWdyZWVzIj5Nb3JlPHNwYW4gY2xhc3M9ImhpZGUtYWNjZXNzaWJsZSI+IG9uIFVuZGVyZ3JhZHVhdGUgZGVncmVlczwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS00Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWZsYXQgY2FyZC1zdGFja2VkLXNtIHNraW4tYmQtYiBza2luLWJveC13aGl0ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWltZyBjYXJkLWltZy0xLTMgY2FyZC1pbWctMS00LXhzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icnMtaW1nIHJzLWltZy0yLTEiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9NjAwJmFtcDtoPTMwMCZhbXA7ZmlsZW5hbWU9ODAweDQwMGNvbXBtYXN0ZXJzLmpwZycpIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nLW1hc3RlcnMiIHRpdGxlPSJNYXN0ZXJzIGNvdXJzZXMiPjxpbWcgc3JjPSIvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL2ltYWdlLnBocD93PTYwMCZhbXA7aD0zMDAmYW1wO2ZpbGVuYW1lPTgwMHg0MDBjb21wbWFzdGVycy5qcGciIGFsdD0iU3R1ZGVudCB1c2luZyBhIGxhcHRvcCI+PHNwYW4gY2xhc3M9ImhpZGUtYWNjZXNzaWJsZSI+IE1hc3RlcnMgY291cnNlczwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1jb250ZW50IGVxdWFsaXplLWlubmVyIGNhcmQtY29udGVudC0yLTMgY2FyZC1jb250ZW50LTMtNC14cyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJoZWFkaW5nLWxpbmstYWx0Ij48YSBocmVmPSJodHRwOi8vZXBzLmxlZWRzLmFjLnVrL2NvbXB1dGluZy1tYXN0ZXJzIj5NYXN0ZXJzIGNvdXJzZXM8L2E+PC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0ibm90ZSI+PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ibW9yZSIgaHJlZj0iaHR0cDovL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmctbWFzdGVycyIgdGl0bGU9Ik1vcmUgb24gTWFzdGVycyBjb3Vyc2VzIj5Nb3JlPHNwYW4gY2xhc3M9ImhpZGUtYWNjZXNzaWJsZSI+IG9uIE1hc3RlcnMgY291cnNlczwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS00Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWZsYXQgY2FyZC1zdGFja2VkLXNtIHNraW4tYmQtYiBza2luLWJveC13aGl0ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWltZyBjYXJkLWltZy0xLTMgY2FyZC1pbWctMS00LXhzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icnMtaW1nIHJzLWltZy0yLTEiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9NjAwJmFtcDtoPTMwMCZhbXA7ZmlsZW5hbWU9ODAweDQwMENvbXBfUmVzZWFyY2gxLmpwZycpIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nLXJlc2VhcmNoLWRlZ3JlZXMiIHRpdGxlPSJSZXNlYXJjaCBkZWdyZWVzIj48aW1nIHNyYz0iLy9lcHMubGVlZHMuYWMudWsvc2l0ZS9jdXN0b21fc2NyaXB0cy9pbWFnZS5waHA/dz02MDAmYW1wO2g9MzAwJmFtcDtmaWxlbmFtZT04MDB4NDAwQ29tcF9SZXNlYXJjaDEuanBnIiBhbHQ9IlByb2Zlc3NvciBOZXR0YSBDb2hlbiBpbiByZXNlYXJjaCBsYWIiPjxzcGFuIGNsYXNzPSJoaWRlLWFjY2Vzc2libGUiPiBSZXNlYXJjaCBkZWdyZWVzPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWNvbnRlbnQgZXF1YWxpemUtaW5uZXIgY2FyZC1jb250ZW50LTItMyBjYXJkLWNvbnRlbnQtMy00LXhzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9ImhlYWRpbmctbGluay1hbHQiPjxhIGhyZWY9Imh0dHA6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nLXJlc2VhcmNoLWRlZ3JlZXMiPlJlc2VhcmNoIGRlZ3JlZXM8L2E+PC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0ibm90ZSI+PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ibW9yZSIgaHJlZj0iaHR0cDovL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmctcmVzZWFyY2gtZGVncmVlcyIgdGl0bGU9Ik1vcmUgb24gUmVzZWFyY2ggZGVncmVlcyI+TW9yZTxzcGFuIGNsYXNzPSJoaWRlLWFjY2Vzc2libGUiPiBvbiBSZXNlYXJjaCBkZWdyZWVzPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8IS0tICRXSURHRVQgMzAwOCAtIFRLIGZlYXR1cmVkIGNvbnRlbnQgLS0+CjxkaXYgY2xhc3M9IndpZGdldC0zMDA4Ij4KCiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXItcm93IHNraW4tYmctd2hpdGUiPgoKICAgICAgIDxkaXYgY2xhc3M9IndyYXBwZXItbWQgd3JhcHBlci1wZC1tZCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmVkLWNvbnRlbnQgZmVhdHVyZWQtY29udGVudC1yZWN0YW5nbGUiPgoKCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlZC1jb250ZW50LWltZyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icnMtaW1nIHJzLWltZy0yLTEiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9ODAwJmFtcDtoPTQwMCZhbXA7ZmlsZW5hbWU9ODAweDQwMF9hcnRpZmljaWFsX2ludGVsbGlnZW5jZV8xLmpwZycpOyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nLXJlc2VhcmNoLWlubm92YXRpb24iPjxpbWcgc3JjPSIvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL2ltYWdlLnBocD93PTgwMCZhbXA7aD00MDAmYW1wO2ZpbGVuYW1lPTgwMHg0MDBfYXJ0aWZpY2lhbF9pbnRlbGxpZ2VuY2VfMS5qcGciIGFsdD0iQXJ0aWZpY2lhbCBpbnRlbGxpZ2VuY2UiPjxzcGFuIGNsYXNzPSJoaWRlLWFjY2Vzc2libGUiPk1vcmUgb24gUmVzZWFyY2ggYW5kIGlubm92YXRpb248L3NwYW4+PC9hPiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZWQtY29udGVudC1oZWFkaW5nIj4KICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9ImgyLWxnIGhlYWRpbmctdW5kZXJsaW5lIj5SZXNlYXJjaCBhbmQgaW5ub3ZhdGlvbjwvaDI+CgoKICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZWQtY29udGVudC1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjbXMgY21zLW5vLWxlYWQgY21zLXNlcmlmIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHA+T3VyIHJlc2VhcmNoIHJhbmdlcyZuYnNwO2Zyb20gZnVuZGFtZW50YWwgYWR2YW5jZXMgaW4gYWxnb3JpdGhtcyBhbmQgb3VyIHVuZGVyc3RhbmRpbmcgb2YgY29tcHV0YXRpb24sIHRocm91Z2ggdG8gaGlnaGx5IGFwcGxpZWQgcmVzZWFyY2ggaW50byBuZXcgZGlzcGxheSB0ZWNobm9sb2dpZXMgZm9yIGNsaW5pY2FsIGRpYWdub3NpcywgZW5lcmd5LWVmZmljaWVudCBkYXRhIGNlbnRyZXMsIGFuZCBwcm9mb3VuZCBpbnNpZ2h0IGludG8gZGF0YSB0aHJvdWdoIHZpc3VhbGlzYXRpb24uIFdlIGFyZSBwYXJ0bmVycyB3aXRoIHRoZSA8YSBocmVmPSJodHRwczovL3d3dy50dXJpbmcuYWMudWsvIj5BbGFuIFR1cmluZyBJbnN0aXR1dGU8L2E+LCB0aGUgVUsmIzM5O3MgcHJlbWllciByZXNlYXJjaCBjZW50cmUgZm9yIGRhdGEgc2NpZW5jZSBhbmQgYXJ0aWZpY2lhbCBpbnRlbGxpZ2VuY2UuPC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJtb3JlIG1vcmUtZGl2aWRlciIgaHJlZj0iaHR0cDovL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmctcmVzZWFyY2gtaW5ub3ZhdGlvbiI+TW9yZTxzcGFuIGNsYXNzPSJoaWRlLWFjY2Vzc2libGUiPiBvbiBSZXNlYXJjaCBhbmQgaW5ub3ZhdGlvbjwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2Pgo8IS0tIC8kV0lER0VUIDMwMDggLSBUSyBmZWF0dXJlZCBjb250ZW50IC0tPgoKICAgICAgICAgICAgPCEtLSBXaWRnZXQ6IDMwMDUgTmV3cyAmIEV2ZW50cyAtLT4KPGRpdiBjbGFzcz0id2lkZ2V0LTMwMDUiPjwhLS0gd2lkZ2V0IC0tPgo8ZGl2IGNsYXNzPSJzay1iZy1tb2R1bGUtbGlnaHQgY29udGFpbmVyLXJvdyI+PCEtLSBjb250YWluZXIgLS0+CiAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyLWxnIHdyYXBwZXItcGQtbWQiPjwhLS0gd3JhcHBlciAtLT4KCiAgICAgICAgPGgyIGNsYXNzPSJoZWFkaW5nLXVuZGVybGluZSBoMi1sZyI+Ck5ld3MgYW5kIGV2ZW50cyAgICAgICAgPC9oMj4KCiAgICAgICAgPGRpdiBjbGFzcz0idGstdGFicy1oZWFkZXIiPjwhLS0gdGFicyAtLT4KICAgICAgICAgICAgPHVsIGlkPSIiIGNsYXNzPSJuYXYgbmF2LXRhYnMgdGstbmF2LXRhYnMgcHVsbC1sZWZ0Ij4KICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iYWN0aXZlIj48YSBocmVmPSIjbmV3c2ZiNWE4MiIgZGF0YS10b2dnbGU9InRhYiIgcmVsPSJub2ZvbGxvdyI+TmV3czwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpIGNsYXNzPSIiPjxhIGhyZWY9IiNldmVudHM4YzQwMTMiIGRhdGEtdG9nZ2xlPSJ0YWIiIHJlbD0ibm9mb2xsb3ciPkV2ZW50czwvYT48L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgIDwvZGl2PjwhLS0gL3RhYnMgLS0+CiAgICA8L2Rpdj48IS0tIC93cmFwcGVyIC0tPgogICAgPGRpdiBjbGFzcz0id3JhcHBlci1sZyB3cmFwcGVyLXBkLW1kIj48IS0tIHdyYXBwZXIgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0idGFiLWNvbnRlbnQiPjwhLS0gdGFiLWNvbnRlbnQgLS0+CiAgICAgICAgPCEtLSBOZXdzIC0tPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWItcGFuZSBmYWRlIGFjdGl2ZSBpbiIgaWQ9Im5ld3NmYjVhODIiPjwhLS0gcGFuZSAtLT4KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGstdGFicy1jdGEiPjxhIGNsYXNzPSJtb3JlIG1vcmUtYWxsIG1vcmUtZGFyayBwdWxsLXJpZ2h0IiBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9uZXdzP2NhdGVnb3J5SUQ9MTkwJmFkZGl0aW9uYWxDYXRlZ29yeUlEcz0iPlNlZSBtb3JlIG5ld3MgbGlrZSB0aGlzPC9hPjwvcD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVxdWFsaXplIj48IS0tIGVxdWFsaXplIC0tPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRrLXJvdyByb3ctcmVkdWNlLWd1dHRlciI+PCEtLSByb3cgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5ld3MtaXRlbSBjb2wtc20tNiBjb2wtbWQtMyI+PCEtLSBpdGVtIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1zdGFja2VkIHNraW4tYm94LXdoaXRlIHNraW4tYmQtYiI+PCEtLSBjYXJkIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW1nIGNhcmQtaW1nLTEtMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJzLWltZyBycy1pbWctMi0xIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL2ltYWdlLnBocD93PTQwMCZhbXA7aD0yMDAmYW1wO2ZpbGVuYW1lPVRoZV9HcmVhdF9IYWxsLmpwZycpOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iLy9lcHMubGVlZHMuYWMudWsvc2l0ZS9jdXN0b21fc2NyaXB0cy9pbWFnZS5waHA/dz00MDAmYW1wO2g9MjAwJmFtcDtmaWxlbmFtZT1UaGVfR3JlYXRfSGFsbC5qcGciIGFsdD0iVGhlIEdyZWF0IEhhbGwgaW4gc3VtbWVyIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBSZW1vdmVkIGltYWdlIGxpbmdrIGZvciBhY2Nlc3NpYmlsaXR5IGF1ZGl0IFRPRE86IFJlZmFjdG9yIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWNvbnRlbnQgZXF1YWxpemUtaW5uZXIiPjwhLS0gY2FyZC1pbm5lciAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJoZWFkaW5nLWxpbmstYWx0Ij48YSBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmcvbmV3cy9hcnRpY2xlLzU2NDkvbGVlZHMtaW4tdG9wLWZpdmUtZm9yLXRlYWNoaW5nLWluLW5hdGlvbmFsLXN0dWRlbnQtc3VydmV5Ij5MZWVkcyBpbiB0b3AgZml2ZSBmb3IgdGVhY2hpbmcgaW4gTmF0aW9uYWwgU3R1ZGVudCBTdXJ2ZXk8L2E+PC9oMz4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJub3RlIj5OYXRpb25hbCBTdHVkZW50IFN1cnZleSByZXN1bHRzIHJldmVhbCB0aGF0IExlZWRzIGhhcyByZXRhaW5lZCBpdHMgcG9zaXRpb24maGVsbGlwOzwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9Im1vcmUgbW9yZS0tdGVzdC1tb2RpZmllciIgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL25ld3MvYXJ0aWNsZS81NjQ5L2xlZWRzLWluLXRvcC1maXZlLWZvci10ZWFjaGluZy1pbi1uYXRpb25hbC1zdHVkZW50LXN1cnZleSIgdGl0bGU9Ik1vcmUgb24gTGVlZHMgaW4gdG9wIGZpdmUgZm9yIHRlYWNoaW5nIGluIE5hdGlvbmFsIFN0dWRlbnQgU3VydmV5Ij5Nb3JlPHNwYW4gY2xhc3M9ImhpZGUtYWNjZXNzaWJsZSI+IG9uIExlZWRzIGluIHRvcCBmaXZlIGZvciB0ZWFjaGluZyBpbiBOYXRpb25hbCBTdHVkZW50IFN1cnZleTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PCEtLSAvY2FyZC1pbm5lciAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwhLS0gL2NhcmQgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwhLS0gL2l0ZW0gLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5ld3MtaXRlbSBjb2wtc20tNiBjb2wtbWQtMyI+PCEtLSBpdGVtIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1zdGFja2VkIHNraW4tYm94LXdoaXRlIHNraW4tYmQtYiI+PCEtLSBjYXJkIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW1nIGNhcmQtaW1nLTEtMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJzLWltZyBycy1pbWctMi0xIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL2ltYWdlLnBocD93PTQwMCZhbXA7aD0yMDAmYW1wO2ZpbGVuYW1lPTE0MDB4NzAwcm9ib3QuanBnJyk7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL2ltYWdlLnBocD93PTQwMCZhbXA7aD0yMDAmYW1wO2ZpbGVuYW1lPTE0MDB4NzAwcm9ib3QuanBnIiBhbHQ9IkEgcm9ib3QgY29udHJvbGxlZCBieSBhIHNtYXJ0cGhvbmUiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFJlbW92ZWQgaW1hZ2UgbGluZ2sgZm9yIGFjY2Vzc2liaWxpdHkgYXVkaXQgVE9ETzogUmVmYWN0b3IgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtY29udGVudCBlcXVhbGl6ZS1pbm5lciI+PCEtLSBjYXJkLWlubmVyIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9ImhlYWRpbmctbGluay1hbHQiPjxhIGhyZWY9Ii8vZXBzLmxlZWRzLmFjLnVrL2NvbXB1dGluZy9uZXdzL2FydGljbGUvNTY0Ny9wYXJ0eS10aW1lLWxhc3ItdGVhbS13aW5zLWdvbGQtaW4tcm9ib2N1cC1ob21lLWVkdWNhdGlvbi1jaGFsbGVuZ2UiPlBhcnR5IHRpbWUhIExBU1IgdGVhbSB3aW5zIGdvbGQgaW4gUm9ib0N1cEBIb21lIEVkdWNhdGlvbiBDaGFsbGVuZ2U8L2E+PC9oMz4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJub3RlIj5BIHRlYW0gbWFkZSB1cCBvZiBuZXcgbWVtYmVycyBvZiB0aGUgTGVlZHMgQXV0b25vbW91cyBTZXJ2aWNlIFJvYm90cyAoTEFTUikmaGVsbGlwOzwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9Im1vcmUgbW9yZS0tdGVzdC1tb2RpZmllciIgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL25ld3MvYXJ0aWNsZS81NjQ3L3BhcnR5LXRpbWUtbGFzci10ZWFtLXdpbnMtZ29sZC1pbi1yb2JvY3VwLWhvbWUtZWR1Y2F0aW9uLWNoYWxsZW5nZSIgdGl0bGU9Ik1vcmUgb24gUGFydHkgdGltZSEgTEFTUiB0ZWFtIHdpbnMgZ29sZCBpbiBSb2JvQ3VwQEhvbWUgRWR1Y2F0aW9uIENoYWxsZW5nZSI+TW9yZTxzcGFuIGNsYXNzPSJoaWRlLWFjY2Vzc2libGUiPiBvbiBQYXJ0eSB0aW1lISBMQVNSIHRlYW0gd2lucyBnb2xkIGluIFJvYm9DdXBASG9tZSBFZHVjYXRpb24gQ2hhbGxlbmdlPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48IS0tIC9jYXJkLWlubmVyIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PCEtLSAvY2FyZCAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PCEtLSAvaXRlbSAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmV3cy1pdGVtIGNvbC1zbS02IGNvbC1tZC0zIj48IS0tIGl0ZW0gLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLXN0YWNrZWQgc2tpbi1ib3gtd2hpdGUgc2tpbi1iZC1iIj48IS0tIGNhcmQgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1pbWcgY2FyZC1pbWctMS0zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icnMtaW1nIHJzLWltZy0yLTEiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9NDAwJmFtcDtoPTIwMCZhbXA7ZmlsZW5hbWU9TnVjbGVhcl9sYWJfR00uNTlfXzVfLmpwZycpOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iLy9lcHMubGVlZHMuYWMudWsvc2l0ZS9jdXN0b21fc2NyaXB0cy9pbWFnZS5waHA/dz00MDAmYW1wO2g9MjAwJmFtcDtmaWxlbmFtZT1OdWNsZWFyX2xhYl9HTS41OV9fNV8uanBnIiBhbHQ9IlVuZGVyZ3JhZHVhdGUgY2hlbWljYWwgZW5naW5lZXJpbmcgc3R1ZGVudCB3b3JraW5nIGluIHRoZSBudWNsZWFyIGxhYiI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gUmVtb3ZlZCBpbWFnZSBsaW5nayBmb3IgYWNjZXNzaWJpbGl0eSBhdWRpdCBUT0RPOiBSZWZhY3RvciAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1jb250ZW50IGVxdWFsaXplLWlubmVyIj48IS0tIGNhcmQtaW5uZXIgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0iaGVhZGluZy1saW5rLWFsdCI+PGEgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL25ld3MvYXJ0aWNsZS81NjQyL2ludGVybmF0aW9uYWwtd29tZW4taW4tZW5naW5lZXJpbmctZGF5LTIwMjAiPkludGVybmF0aW9uYWwgV29tZW4gaW4gRW5naW5lZXJpbmcgRGF5IDIwMjA8L2E+PC9oMz4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJub3RlIj5Kb2luIHVzIGluIGNlbGVicmF0aW5nIEludGVybmF0aW9uYWwgV29tZW4gaW4gRW5naW5lZXJpbmcgRGF5IChJTldFRCkgb24maGVsbGlwOzwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9Im1vcmUgbW9yZS0tdGVzdC1tb2RpZmllciIgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL25ld3MvYXJ0aWNsZS81NjQyL2ludGVybmF0aW9uYWwtd29tZW4taW4tZW5naW5lZXJpbmctZGF5LTIwMjAiIHRpdGxlPSJNb3JlIG9uIEludGVybmF0aW9uYWwgV29tZW4gaW4gRW5naW5lZXJpbmcgRGF5IDIwMjAiPk1vcmU8c3BhbiBjbGFzcz0iaGlkZS1hY2Nlc3NpYmxlIj4gb24gSW50ZXJuYXRpb25hbCBXb21lbiBpbiBFbmdpbmVlcmluZyBEYXkgMjAyMDwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PCEtLSAvY2FyZC1pbm5lciAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwhLS0gL2NhcmQgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwhLS0gL2l0ZW0gLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5ld3MtaXRlbSBjb2wtc20tNiBjb2wtbWQtMyI+PCEtLSBpdGVtIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1zdGFja2VkIHNraW4tYm94LXdoaXRlIHNraW4tYmQtYiI+PCEtLSBjYXJkIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW1nIGNhcmQtaW1nLTEtMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJzLWltZyBycy1pbWctMi0xIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL2ltYWdlLnBocD93PTQwMCZhbXA7aD0yMDAmYW1wO2ZpbGVuYW1lPWVwc19wYXJ0bmVyc2hpcF9hd2FyZHMuanBnJyk7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL2ltYWdlLnBocD93PTQwMCZhbXA7aD0yMDAmYW1wO2ZpbGVuYW1lPWVwc19wYXJ0bmVyc2hpcF9hd2FyZHMuanBnIiBhbHQ9IkZhY3VsdHkgb2YgRVBTIFBhcnRuZXJzaGlwIEF3YXJkcyAyMDIwIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBSZW1vdmVkIGltYWdlIGxpbmdrIGZvciBhY2Nlc3NpYmlsaXR5IGF1ZGl0IFRPRE86IFJlZmFjdG9yIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWNvbnRlbnQgZXF1YWxpemUtaW5uZXIiPjwhLS0gY2FyZC1pbm5lciAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJoZWFkaW5nLWxpbmstYWx0Ij48YSBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmcvbmV3cy9hcnRpY2xlLzU2MzYvZmFjdWx0eS1wYXJ0bmVyc2hpcC1hd2FyZHMtMjAyMCI+RmFjdWx0eSBQYXJ0bmVyc2hpcCBhd2FyZHMgMjAyMDwvYT48L2gzPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9Im5vdGUiPlRoZSBGYWN1bHR5IG9mIEVuZ2luZWVyaW5nIGFuZCBQaHlzaWNhbCBTY2llbmNlcyBQYXJ0bmVyc2hpcCBBd2FyZHMgaXMgYW4maGVsbGlwOzwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9Im1vcmUgbW9yZS0tdGVzdC1tb2RpZmllciIgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL25ld3MvYXJ0aWNsZS81NjM2L2ZhY3VsdHktcGFydG5lcnNoaXAtYXdhcmRzLTIwMjAiIHRpdGxlPSJNb3JlIG9uIEZhY3VsdHkgUGFydG5lcnNoaXAgYXdhcmRzIDIwMjAiPk1vcmU8c3BhbiBjbGFzcz0iaGlkZS1hY2Nlc3NpYmxlIj4gb24gRmFjdWx0eSBQYXJ0bmVyc2hpcCBhd2FyZHMgMjAyMDwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PCEtLSAvY2FyZC1pbm5lciAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwhLS0gL2NhcmQgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwhLS0gL2l0ZW0gLS0+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PCEtLSAvcm93IC0tPgogICAgICAgICAgICAgICAgPC9kaXY+PCEtLSAvZXF1YWxpemUgLS0+CiAgICAgICAgICAgIDwvZGl2PjwhLS0gL3BhbmUgLS0+CjwhLS0gL05ld3MgLS0+CgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFiLXBhbmUgZmFkZSAiIGlkPSJldmVudHM4YzQwMTMiPjwhLS0gdGFiLXBhbmUgLS0+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRrLXRhYnMtY3RhIj48YSBjbGFzcz0ibW9yZSBtb3JlLWFsbCBtb3JlLWRhcmsgcHVsbC1yaWdodCIgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvZXZlbnRzP2NhdGVnb3J5SUQ9MTkwJmFkZGl0aW9uYWxDYXRlZ29yeUlEcz0mc3ViX2NhdGVnb3J5SUQ9JnR5cGVzPSZzdWJfdHlwZT0iPlNlZSBtb3JlIGV2ZW50cyBsaWtlIHRoaXM8L2E+PC9wPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXF1YWxpemUiPjwhLS0gZXF1YWxpemUgLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGstcm93IHJvdy1yZWR1Y2UtZ3V0dGVyIj48IS0tIHJvdyAtLT4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJldmVudHMtaXRlbSBjb2wtc20tNiBjb2wtbWQtMyI+PCEtLSBldmVudC1pdGVtIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtc3RhY2tlZCBza2luLWJveC13aGl0ZSBza2luLWJkLWIiPjwhLS0gY2FyZCAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1pbWcgY2FyZC1pbWctMS0zIj48IS0tIGNhcmQtaW1nIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icnMtaW1nIHJzLWltZy0yLTEiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9NDAwJmFtcDtoPTIwMCZhbXA7ZmlsZW5hbWU9QmVfQ3VyaW91cy5qcGcnKTsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8vZXBzLmxlZWRzLmFjLnVrL2NvbXB1dGluZy9ldmVudHMvZXZlbnQvNjEyMi9iZS1jdXJpb3VzLTIwMjAiIHRpdGxlPSJCZSBDdXJpb3VzIDIwMjAiPjxpbWcgc3JjPSIvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL2ltYWdlLnBocD93PTQwMCZhbXA7aD0yMDAmYW1wO2ZpbGVuYW1lPUJlX0N1cmlvdXMuanBnIiBhbHQ9IktpZCBob2xkaW5nIGEgbW9sZWN1bGUgbW9kZWwiPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48IS0tIC9jYXJkLWltZyAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1jb250ZW50IGVxdWFsaXplLWlubmVyIj48IS0tIGNhcmQtY29udGVudCAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0iaGVhZGluZy1saW5rLWFsdCI+PGEgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL2V2ZW50cy9ldmVudC82MTIyL2JlLWN1cmlvdXMtMjAyMCI+QmUgQ3VyaW91cyAyMDIwPC9hPjwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImhlYWRpbmctcmVsYXRlZCI+ClNhdHVyZGF5IDEwIE9jdG9iZXIgMjAyMCwgMTA6MDAgLSAxNjowMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJtb3JlIiBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmcvZXZlbnRzL2V2ZW50LzYxMjIvYmUtY3VyaW91cy0yMDIwIiB0aXRsZT0iTW9yZSBvbiBGYWN1bHR5IFBhcnRuZXJzaGlwIGF3YXJkcyAyMDIwIj5Nb3JlPHNwYW4gY2xhc3M9ImhpZGUtYWNjZXNzaWJsZSI+IG9uIEJlIEN1cmlvdXMgMjAyMDwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwhLS0gL2NhcmQtY29udGVudCAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48IS0tIC9jYXJkIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PCEtLSAvZXZlbnQtaXRlbSAtLT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj48IS0tIC9yb3cgLS0+CiAgICAgICAgICAgICAgICA8L2Rpdj48IS0tIC9lcXVhbGl6ZS0tPgogICAgICAgICAgICA8L2Rpdj48IS0tIC90YWItY29udGVudCAtLT4KICAgICAgICA8L2Rpdj48IS0tIC90YWItcGFuZSAtLT4KPCEtLSAvRXZlbnRzIC0tPgoKICAgICAgICA8L2Rpdj48IS0tIC93cmFwcGVyIC0tPgogICAgPC9kaXY+PCEtLSAvY29udGFpbmVyIC0tPgo8L2Rpdj48IS0tIC93aWRnZXQgLS0+Cgo8IS0tIC9XaWRnZXQ6IDMwMDUgTmV3cyAmIEV2ZW50cyAtLT4KCiAgICAgICAgICAgIAo8IS0tICRXSURHRVQ6IG5vIDMwMDYgLSBUSyBsaW5rIG5hdiAtLT4KPGRpdiBjbGFzcz0id2lkZ2V0LTMwMDYiPgoJPGRpdiBjbGFzcz0iY29udGFpbmVyLXJvdyBza2luLWJnLXdoaXRlIj4KCQk8ZGl2IGNsYXNzPSJ3cmFwcGVyLW1kIHdyYXBwZXItcGQtbWQiPgoJCQkKCQkJCgkJCQoJCQkKCQkJCQoJCQkJCQkJCQkJCTxkaXYgY2xhc3M9InRrLXJvdyBjbGVhcmZpeCByb3ctcmVkdWNlLWd1dHRlciI+CgkJCQkJCgkJCQkJCQkJCQkJCQkKCQkJCQkJCQkJCQkJCQkJPGRpdiBjbGFzcz0iY29sLXNtLTYiPgoJCQkJCQkJCgkJCQkJCQkJCTxkaXYgY2xhc3M9InAtdCBwLWIgIj4KCQkJCQkJCQkJCTxoMyBjbGFzcz0iaGVhZGluZy1saW5rIj48YSBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmcvZG9jL3dvcmtpbmctYnVzaW5lc3MiPldvcmtpbmcgd2l0aCBidXNpbmVzczwvYT48L2gzPgoJCQkJCQkJCQkJPHAgY2xhc3M9Im5vdGUiPldlIHdvcmsgd2l0aCBvcmdhbmlzYXRpb25zIG9mIGFsbCBzaXplcyBhY3Jvc3MgYSB3aWRlIHJhbmdlIG9mIGluZHVzdHJpZXMgdG8gY29tZSB1cCB3aXRoIHNvbHV0aW9ucyB0byB5b3VyIG5lZWRzLjwvcD4KCQkJCQkJCQkJCQkJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9Im1vcmUiIGhyZWY9Ii8vZXBzLmxlZWRzLmFjLnVrL2NvbXB1dGluZy9kb2Mvd29ya2luZy1idXNpbmVzcyI+TW9yZTxzcGFuIGNsYXNzPSJoaWRlLWFjY2Vzc2libGUiPiBvbiBXb3JraW5nIHdpdGggYnVzaW5lc3M8L3NwYW4+PC9hPgoJCQkJCQkJCQkJCQkJCQkJCQkJPC9kaXY+CgoJCQkJCQkJCQkJCQkJCQk8L2Rpdj4KCQkJCQkJCQoJCQkJCQkJCQkJCQkJCgkJCQkJCQkJCQkJCQkJCTxkaXYgY2xhc3M9ImNvbC1zbS02Ij4KCQkJCQkJCQoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJwLXQgcC1iICI+CgkJCQkJCQkJCQk8aDMgY2xhc3M9ImhlYWRpbmctbGluayI+PGEgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL2RvYy9yZWNydWl0LXN0dWRlbnRzIj5SZWNydWl0IG91ciBzdHVkZW50czwvYT48L2gzPgoJCQkJCQkJCQkJPHAgY2xhc3M9Im5vdGUiPldlIGhhdmUgYSBkZWRpY2F0ZWQgRW1wbG95YWJpbGl0eSBUZWFtIHRoYXQgcHJvdmlkZSBidXNpbmVzc2VzIHdpdGggYWNjZXNzIHRvIG91ciB0YWxlbnRlZCBzdHVkZW50cyB0aHJvdWdoIGEgcmFuZ2Ugb2Ygc2VydmljZXMuPC9wPgoJCQkJCQkJCQkJCQkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ibW9yZSIgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL2RvYy9yZWNydWl0LXN0dWRlbnRzIj5Nb3JlPHNwYW4gY2xhc3M9ImhpZGUtYWNjZXNzaWJsZSI+IG9uIFJlY3J1aXQgb3VyIHN0dWRlbnRzPC9zcGFuPjwvYT4KCQkJCQkJCQkJCQkJCQkJCQkJCTwvZGl2PgoKCQkJCQkJCQkJCQkJCQkJPC9kaXY+CgkJCQkJCQkKCQkJCQkJCQkJCQkKCQkJCQk8L2Rpdj4KCgkJCQkKCQkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJ0ay1yb3cgY2xlYXJmaXggcm93LXJlZHVjZS1ndXR0ZXIiPgoJCQkJCQoJCQkJCQkJCQkJCQkJCgkJCQkJCQkJCQkJCQkJCTxkaXYgY2xhc3M9ImNvbC1zbS02Ij4KCQkJCQkJCQoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJwLXQgcC1iICI+CgkJCQkJCQkJCQk8aDMgY2xhc3M9ImhlYWRpbmctbGluayI+PGEgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL2RvYy9zY2hvb2xzLW91dHJlYWNoIj5TY2hvb2xzIG91dHJlYWNoPC9hPjwvaDM+CgkJCQkJCQkJCQk8cCBjbGFzcz0ibm90ZSI+V2UgZGVsaXZlciBldmVudHMgYW5kIGFjdGl2aXRpZXMgdG8gc2hvd2Nhc2UgdGhpcyBmYXNjaW5hdGluZyBzdWJqZWN0IGFyZWEgdG8gc3R1ZGVudHMgYXQgc2Nob29scyBhbmQgY29sbGVnZXMgYWNyb3NzIHRoZSBVSy48L3A+CgkJCQkJCQkJCQkJCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJtb3JlIiBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmcvZG9jL3NjaG9vbHMtb3V0cmVhY2giPk1vcmU8c3BhbiBjbGFzcz0iaGlkZS1hY2Nlc3NpYmxlIj4gb24gU2Nob29scyBvdXRyZWFjaDwvc3Bhbj48L2E+CgkJCQkJCQkJCQkJCQkJCQkJCQk8L2Rpdj4KCgkJCQkJCQkJCQkJCQkJCTwvZGl2PgoJCQkJCQkJCgkJCQkJCQkJCQkJCQkKCQkJCQkJCQkJCQkJCQkJPGRpdiBjbGFzcz0iY29sLXNtLTYiPgoJCQkJCQkJCgkJCQkJCQkJCTxkaXYgY2xhc3M9InAtdCBwLWIgIj4KCQkJCQkJCQkJCTxoMyBjbGFzcz0iaGVhZGluZy1saW5rIj48YSBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmcvZG9jL2VxdWFsaXR5LWluY2x1c2lvbi0xIj5FcXVhbGl0eSBhbmQgSW5jbHVzaW9uPC9hPjwvaDM+CgkJCQkJCQkJCQk8cCBjbGFzcz0ibm90ZSI+VGhlIFVuaXZlcnNpdHkgY29tbXVuaXR5IGlzIG1hZGUgdXAgb2YgYSB3aWRlIHJhbmdlIG9mIHBlb3BsZSB3aXRoIGRpdmVyc2UgYmFja2dyb3VuZHMgYW5kIGNpcmN1bXN0YW5jZXMsIHdoaWNoIHdlIHZhbHVlIGFuZCByZWdhcmQgYXMgYSBncmVhdCBhc3NldC48L3A+CgkJCQkJCQkJCQkJCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJtb3JlIiBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmcvZG9jL2VxdWFsaXR5LWluY2x1c2lvbi0xIj5Nb3JlPHNwYW4gY2xhc3M9ImhpZGUtYWNjZXNzaWJsZSI+IG9uIEVxdWFsaXR5IGFuZCBJbmNsdXNpb248L3NwYW4+PC9hPgoJCQkJCQkJCQkJCQkJCQkJCQkJPC9kaXY+CgoJCQkJCQkJCQkJCQkJCQk8L2Rpdj4KCQkJCQkJCQoJCQkJCQkJCQkJCQoJCQkJCTwvZGl2PgoKCQkJCQoJCQkKCQk8L2Rpdj4KCTwvZGl2Pgo8L2Rpdj4KPCEtLSAvJFdJREdFVDogbm8gMzAwNiAtIFRLIGxpbmsgbmF2IC0tPgoKCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IndpZGdldC0zMDAwIj4KPGRpdiBjbGFzcz0iY29udGFpbmVyLXJvdyBza2luLXJvdy1kaXZpZGVyIj4KPGRpdiBjbGFzcz0idHdpdHRlci1mZWVkIj4gICAgCiAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyLXBkLW1kIHdyYXBwZXItbGciPgogICAgICAgIDxkaXYgY2xhc3M9InRrLXJvdyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0zIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InR3aXR0ZXItdXNlciI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49InRydWUiIGNsYXNzPSJ0ay1pY29uLXNvY2lhbC10d2l0dGVyIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly90d2l0dGVyLmNvbS9MZWVkc1VuaUNvbXAiPkBMZWVkc1VuaUNvbXA8L2E+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC05Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRrLXJvdyI+CjxkaXYgY2xhc3M9J2NvbC1zbS02IGNvbC1tZC00Jz4KPGRpdiBjbGFzcz0ndHdlZXQnPgo8cCBjbGFzcz0ndHdlZXQtY29udGVudCc+CiZsZHF1bztJZiB5b3UncmUgam9pbmluZyB1cyBpbiBTZXB0ZW1iZXIgYW5kIGhhdmUgcXVlc3Rpb25zIGFib3V0IHlvdXIgYXJyaXZhbCwgcGxlYXNlIHZpc2l0IG91ciBuZXcgQ29yb25hdmlydXMgd2VicGFnZS7igKYgPGEgaHJlZj0iaHR0cHM6Ly90LmNvL3Y3TEtCc2dqZnMiPnQuY28vdjdMS0JzZ2pmczwvYT4mcmRxdW87IC0gPC9wPgo8cCBjbGFzcz0ndHdlZXQtZm9vdGVyJz4yIGRheXMgYWdvPC9wPgo8L2Rpdj48L2Rpdj4KPGRpdiBjbGFzcz0nY29sLXNtLTYgY29sLW1kLTQnPgo8ZGl2IGNsYXNzPSd0d2VldCc+CjxwIGNsYXNzPSd0d2VldC1jb250ZW50Jz4KJmxkcXVvO1JUIDxhIGNsYXNzPSJ1c2VyIiBocmVmPSJodHRwczovL3R3aXR0ZXIuY29tL0VQb3VybmFyYXMiPkBFUG91cm5hcmFzPC9hPjogUHJvb2Ygb2YgV2l0bmVzcyBQcmVzZW5jZTogQmxvY2tjaGFpbiBjb25zZW5zdXMgZm9yIGF1Z21lbnRlZCBkZW1vY3JhY3kgaW4gU21hcnQgQ2l0aWVzLiA8YSBocmVmPSJodHRwczovL3R3aXR0ZXIuY29tL2hhc2h0YWcvcHJvb2ZvZmxvY2F0aW9uIj4jcHJvb2ZvZmxvY2F0aW9uPC9hPiA8YSBocmVmPSJodHRwczovL3R3aXR0ZXIuY29tL2hhc2h0YWcvSW9UIj4jSW9UPC9hPiBQdWJs4oCmIDxhIGhyZWY9Imh0dHBzOi8vdC5jby82N1FCaEpHM3JvIj50LmNvLzY3UUJoSkczcm88L2E+JnJkcXVvOyAtIDwvcD4KPHAgY2xhc3M9J3R3ZWV0LWZvb3Rlcic+MiB3ZWVrcyBhZ288L3A+CjwvZGl2PjwvZGl2Pgo8ZGl2IGNsYXNzPSdjb2wtc20tNiBjb2wtbWQtNCc+CjxkaXYgY2xhc3M9J3R3ZWV0Jz4KPHAgY2xhc3M9J3R3ZWV0LWNvbnRlbnQnPgombGRxdW87VGhlIDE2Mm5kIEV1cm9wZWFuIFN0dWR5IEdyb3VwIHdpdGggSW5kdXN0cnkgdGFrZXMgcGxhY2UgbmV4dCB3ZWVrIChKdWx5IDIwLTI0KSwgYnJpbmdpbmcgdG9nZXRoZXIgZGF0YSBzY2llbnRpc3Rz4oCmIDxhIGhyZWY9Imh0dHBzOi8vdC5jby9VS3hTckdPQkVGIj50LmNvL1VLeFNyR09CRUY8L2E+JnJkcXVvOyAtIDwvcD4KPHAgY2xhc3M9J3R3ZWV0LWZvb3Rlcic+MiB3ZWVrcyBhZ288L3A+CjwvZGl2PjwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2PgoKCiAgICAKICAgIDxkaXYgY2xhc3M9InRlbXBsYXRlLS1ob21lcGFnZXMtc2luZ2xlLW5vc2lkZWJhciI+CiAgICAgICAgPCEtLSBFTkRDT05URU5UIFNVUFBMRU1FTlQgLS0+CgoKCjwhLS0gRU5EIE9GIEVORENPTlRFTlQgU1VQUExFTUVOVCAtLT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLy9lcHMubGVlZHMuYWMudWsvd2lkZ2V0cy9qcy93aWRnZXQuanM/MTU5NTg0OTg0NCI+PC9zY3JpcHQ+CiAgICAKPGRpdj4gICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L21haW4+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJhY2stdG9wIj4KICAgIDxhIGRhdGEtdG9nZ2xlPSJzY3JvbGwiIGhyZWY9IiNzaXRlLWNvbnRhaW5lciIgcmVsPSJub2ZvbGxvdyI+QmFjayB0byB0b3A8L2E+CjwvZGl2PiAgICAgICAgICAgICAgICAKCgogICAgICAgICAgICA8Zm9vdGVyIGNsYXNzPSJzaXRlLWZvb3RlciIgcm9sZT0iY29udGVudGluZm8iPgogICAgPGRpdiBjbGFzcz0ic2l0ZS1mb290ZXItdXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9IndyYXBwZXItcGQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaXRlLWZvb3Rlci11cHBlci1sb2dvcyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZWN1LmFjLnVrL2VxdWFsaXR5LWNoYXJ0ZXJzL2F0aGVuYS1zd2FuLyIgdGl0bGU9IlZpc2l0IEF0aGVuYSBTV0FOIFNpbHZlciBhd2FyZCI+PGltZyBzcmM9Ii8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9OTYmYW1wO2g9NjAmYW1wO2ZpbGVuYW1lPWF0aGVuYV9zd2FuXzE3Nl8xMTAuanBnIiBhbHQ9IkF0aGVuYSBzd2FuIFNpbHZlciBhd2FyZCI+PC9hPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5sZWVkcy5hYy51ay9uZXdzL2FydGljbGUvNDA2NS9nb2xkX2Zvcl9sZWVkc19pbl90aGVfdGVhY2hpbmdfZXhjZWxsZW5jZV9mcmFtZXdvcmsiIHRpdGxlPSJWaXNpdCBURUYgZ29sZCI+PGltZyBzcmM9Ii8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9MTUwJmFtcDtoPTU1JmFtcDtmaWxlbmFtZT1URUZfR29sZF9sb2dvX0NNWUtfX19OZXdfMS5qcGciIGFsdD0iVEVGIGdvbGQiPjwvYT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1zb2NpYWwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9ImhpZGUtYWNjZXNzaWJsZSI+U29jaWFsIG1lZGlhIGxpbmtzPC9oMj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3d3dy5mYWNlYm9vay5jb20vY29tcHV0aW5nbGVlZHMvIiB0aXRsZT0iR28gdG8gRmFjZWJvb2sgcGFnZSI+PHNwYW4gY2xhc3M9Imljb24tZm9udC10ZXh0Ij5GYWNlYm9vazwvc3Bhbj48c3BhbiBjbGFzcz0idGstaWNvbiB0ay1pY29uLXNvY2lhbC1mYWNlYm9vayI+PC9zcGFuPjwvYT4gICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3Lmluc3RhZ3JhbS5jb20vdW5pdmVyc2l0eW9mbGVlZHMvIiB0aXRsZT0iR28gdG8gSW5zdGFncmFtIHBhZ2UiPjxzcGFuIGNsYXNzPSJpY29uLWZvbnQtdGV4dCI+SW5zdGFncmFtPC9zcGFuPjxzcGFuIGNsYXNzPSJ0ay1pY29uIHRrLWljb24tc29jaWFsLWluc3RhZ3JhbSI+PC9zcGFuPjwvYT4gICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vTGVlZHNVbmlDb21wIiB0aXRsZT0iR28gdG8gVHdpdHRlciBwYWdlIj48c3BhbiBjbGFzcz0iaWNvbi1mb250LXRleHQiPlR3aXR0ZXI8L3NwYW4+PHNwYW4gY2xhc3M9InRrLWljb24gdGstaWNvbi1zb2NpYWwtdHdpdHRlciI+PC9zcGFuPjwvYT4gICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LndlaWJvLmNvbS9sZWVkc3VuaWVuZ2luZWVyaW5nIiB0aXRsZT0iR28gdG8gV2VpYm8gcGFnZSI+PHNwYW4gY2xhc3M9Imljb24tZm9udC10ZXh0Ij5XZWlibzwvc3Bhbj48c3BhbiBjbGFzcz0idGstaWNvbiB0ay1pY29uLXNvY2lhbC13ZWlibyI+PC9zcGFuPjwvYT4gICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3VzZXIvdW5pdmVyc2l0eW9mbGVlZHN1ayIgdGl0bGU9IkdvIHRvIFlvdVR1YmUgcGFnZSI+PHNwYW4gY2xhc3M9Imljb24tZm9udC10ZXh0Ij5Zb3VUdWJlPC9zcGFuPjxzcGFuIGNsYXNzPSJ0ay1pY29uIHRrLWljb24tc29jaWFsLXlvdXR1YmUiPjwvc3Bhbj48L2E+ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzaXRlLWZvb3Rlci1taWRkbGUgcC10LW1kIHAtYi1tZCI+CiAgICAgICAgPGRpdiBjbGFzcz0id3JhcHBlci1wZCI+CiAgICAgICAgICAgIDxuYXYgcm9sZT0ibmF2aWdhdGlvbiI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ay1yb3ciPgogICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtc20tNiBjb2wtbWQtMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJxdWlja2xpbmtzLWxpc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0idGl0bGUiPkZhY3VsdHkgb2YgRW5naW5lZXJpbmcgYW5kIFBoeXNpY2FsIFNjaWVuY2VzPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvIj5GYWN1bHR5IG9mIEVuZ2luZWVyaW5nIGFuZCBQaHlzaWNhbCBTY2llbmNlczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2Vwcy5sZWVkcy5hYy51ay9jaGVtaWNhbC1lbmdpbmVlcmluZyI+U2Nob29sIG9mIENoZW1pY2FsIGFuZCBQcm9jZXNzIEVuZ2luZWVyaW5nPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZXBzLmxlZWRzLmFjLnVrL2NoZW1pc3RyeSI+U2Nob29sIG9mIENoZW1pc3RyeTwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2Vwcy5sZWVkcy5hYy51ay9jaXZpbC1lbmdpbmVlcmluZyI+U2Nob29sIG9mIENpdmlsIEVuZ2luZWVyaW5nPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZXBzLmxlZWRzLmFjLnVrL2NvbXB1dGluZyI+U2Nob29sIG9mIENvbXB1dGluZzwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2Vwcy5sZWVkcy5hYy51ay9lbGVjdHJvbmljLWVuZ2luZWVyaW5nIj5TY2hvb2wgb2YgRWxlY3Ryb25pYyBhbmQgRWxlY3RyaWNhbCBFbmdpbmVlcmluZzwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2Vwcy5sZWVkcy5hYy51ay9tYXRocyI+U2Nob29sIG9mIE1hdGhlbWF0aWNzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZXBzLmxlZWRzLmFjLnVrL21lY2hhbmljYWwtZW5naW5lZXJpbmciPlNjaG9vbCBvZiBNZWNoYW5pY2FsIEVuZ2luZWVyaW5nPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZXBzLmxlZWRzLmFjLnVrL3BoeXNpY3MiPlNjaG9vbCBvZiBQaHlzaWNzIGFuZCBBc3Ryb25vbXk8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjxkaXYgY2xhc3M9ImNvbC1zbS02IGNvbC1tZC0zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJxdWlja2xpbmtzLWxpc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0idGl0bGUiPlF1aWNrbGlua3M8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2NvdXJzZXMubGVlZHMuYWMudWsvIj5Db3Vyc2VzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZXBzLmxlZWRzLmFjLnVrL2pvaW4tdXMvZG9jL2VxdWFsaXR5LWluY2x1c2lvbi0xIj5FcXVhbGl0eSBhbmQgaW5jbHVzaW9uPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vcGhkLmxlZWRzLmFjLnVrLyI+UGhEIG9wcG9ydHVuaXRpZXM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvc2hvcnQtY291cnNlcyI+U2hvcnQgY291cnNlczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2Vwcy5sZWVkcy5hYy51ay9mYWN1bHR5LWVuZ2luZWVyaW5nLXBoeXNpY2FsLXNjaWVuY2VzL2RvYy9zd2p0dS1sZWVkcy1qb2ludC1lbmdpbmVlcmluZy1zY2hvb2wiPlNXSlRVLUxlZWRzIEpvaW50IFNjaG9vbDwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PGRpdiBjbGFzcz0iY29sLXNtLTYgY29sLW1kLTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9InF1aWNrbGlua3MtbGlzdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0aXRsZSI+Rm9yIHN0YWZmPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cubGVlZHMuYWMudWsvZm9yc3RhZmYvaG9tZXBhZ2UvMzc1L3NlcnZpY2VzIj5BLVogU2VydmljZXM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9sZWVkczM2NS5zaGFyZXBvaW50LmNvbS9zaXRlcy9FbmdpbmVlcmluZy9TaXRlUGFnZXMvV2VsY29tZS10by10aGUtRW5naW5lZXJpbmctU2hhcmVQb2ludC1TaXRlLmFzcHgiPkVuZ2luZWVyaW5nIGFuZCBDb21wdXRpbmcgaW50cmFuZXQ8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9sZWVkczM2NS5zaGFyZXBvaW50LmNvbS9zaXRlcy9NQVBTSW50cmFuZXQvU2l0ZVBhZ2VzL0hvbWUuYXNweCI+TWF0aGVtYXRpY3MgYW5kIFBoeXNpY2FsIFNjaWVuY2VzIGludHJhbmV0PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vcHJpc20ubGVlZHMuYWMudWsvIj5QZWRhZ29naWMgUmVzZWFyY2ggaW4gTWF0aHMgYW5kIFBoeXNpY2FsIFNjaWVuY2VzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZXBzLmxlZWRzLmFjLnVrL2ZhY3VsdHktZW5naW5lZXJpbmctcGh5c2ljYWwtc2NpZW5jZXMvZG9jL3RlYWNoaW5nLWxlYXJuaW5nLWVuZ2luZWVyaW5nLW5ldHdvcmstdGFsZW50Ij5UZWFjaGluZyBBbmQgTGVhcm5pbmcgRW5naW5lZXJpbmcgTmVUd29yazwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJxdWlja2xpbmtzLWxpc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0idGl0bGUiPkZvciBzdHVkZW50czwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vc3R1ZGVudHMubGVlZHMuYWMudWsvIj5Gb3IgU3R1ZGVudHM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9taW5lcnZhLmxlZWRzLmFjLnVrLyI+TWluZXJ2YTwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PGRpdiBjbGFzcz0iY29sLXNtLTYgY29sLW1kLTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9InF1aWNrbGlua3MtbGlzdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0aXRsZSI+VW5pdmVyc2l0eSBsaW5rczwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vYWx1bW5pLmxlZWRzLmFjLnVrLyI+QWx1bW5pPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubGVlZHMuYWMudWsvY2FtcHVzbWFwIj5DYW1wdXMgbWFwPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubGVlZHMuYWMudWsvaW5mby81MDAwL2Fib3V0LzEzMS9maW5kX3VzIj5GaW5kIHVzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubGVlZHMuYWMudWsvaW5mby8xMTQwMDAvam9icyI+Sm9iczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vd3d3LmxlZWRzLmFjLnVrL2hvbWVwYWdlLzE3L2FjYWRlbWljX3llYXIiPlRlcm0gZGF0ZXM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDx1bCBjbGFzcz0icXVpY2tsaW5rcy1saXN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0idGl0bGUiPlNpdGUgbWFwPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9uZXdzLyI+TmV3czwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8vZXBzLmxlZWRzLmFjLnVrL2V2ZW50cy8iPkV2ZW50czwvYT48L2xpPiAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9zdHVkZW50LWFuZC1hbHVtbmktcHJvZmlsZXMvIj5TdHVkZW50IGFuZCBhbHVtbmkgcHJvZmlsZTwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8vZXBzLmxlZWRzLmFjLnVrL3Nob3J0LWNvdXJzZXMvIj5TaG9ydCBjb3Vyc2VzPC9hPjwvbGk+ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8vZXBzLmxlZWRzLmFjLnVrL3NjaG9sYXJzaGlwcy8iPlNjaG9sYXJzaGlwczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8vZXBzLmxlZWRzLmFjLnVrL3N0YWZmbGlzdC8iPlN0YWZmIGxpc3Q8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4gLS0+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9uYXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzaXRlLWZvb3Rlci1sb3dlciI+CiAgICAgICAgPGRpdiBjbGFzcz0id3JhcHBlci1wZCI+CiAgICAgICAgICAgIDxuYXYgcm9sZT0ibmF2aWdhdGlvbiI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9Im5hdiI+CiAgICAgICAgICAgICAgICAgICAgPGxpPiZjb3B5OyAyMDIwIFVuaXZlcnNpdHkgb2YgTGVlZHMsIExlZWRzLCBMUzIgOUpUPC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLy93d3cubGVlZHMuYWMudWsvdGVybXNhbmRjb25kaXRpb25zIj5UZXJtcyBhbmQgY29uZGl0aW9uczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvL3d3dy5sZWVkcy5hYy51ay9hY2Nlc3NpYmlsaXR5Ij5BY2Nlc3NpYmlsaXR5PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8vZXBzLmxlZWRzLmFjLnVrL3ByaXZhY3kiPlByaXZhY3kgYW5kIGNvb2tpZXM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLy93d3cubGVlZHMuYWMudWsvZm9pIj5GcmVlZG9tIG9mIGluZm9ybWF0aW9uPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L25hdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Zvb3Rlcj4KCiAgICAgICAgPC9kaXY+PCEtLSAvJFNJVEUtQ09OVEFJTkVSLS0+CgogICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij52YXIgR0FMQVhZX1NIT1JUQ1VUID0gIi9lcHMiO3ZhciBQUk9UT0NPTCA9ICJodHRwczovLyI7dmFyIERPTUFJTiA9ICJlcHMubGVlZHMuYWMudWsiO3ZhciBTRUNVUkVfU0VSVkVSID0gImh0dHBzOi8vcHJvZHVjdGlvbjIubGVlZHMuYWMudWsvZXBzIjt2YXIgU0VDVVJFX0pBRFVfUEFUSCA9ICJodHRwczovL3Byb2R1Y3Rpb24yLmxlZWRzLmFjLnVrL2Vwcy9qYWR1Ijt2YXIgVVNFX1RBWE9OT01ZID0gIiI7dmFyIEFTU0lHTl9BRE1JTklTVFJBVE9SX1ZJRVcgPSAiZmFsc2UiO3ZhciBUQVhPTk9NWV9OQU1FID0gIklQU1YiO3ZhciBCRVNQT0tFX0NBVEVHT1JZX0xJU1RfTkFNRSA9ICJHYWxheGllc0NMIjt2YXIgaXNfSUlTID0gIiI7dmFyIEVESVRPUl9JTUFHRV9QQVNURSA9ICIxIjt2YXIgTE9DQUxfRkVfRE9NQUlOID0gImVwcy5sZWVkcy5hYy51ayI7dmFyIFNFQ1VSRV9CTE9HX1BBVEggPSAiIjt2YXIgREFURV9JTlBVVF9EQVlfTU9OVEhfT1JERVIgPSAiIjt2YXIgTE9DQUxfRE9NQUlOUyA9IG5ldyBBcnJheSgpO0xPQ0FMX0RPTUFJTlNbMF0gPSAicHJvZHVjdGlvbjIubGVlZHMuYWMudWsvZXBzIjs8L3NjcmlwdD48c2NyaXB0PnZhciBBSkFYX05FV1NfRVZFTlRTID0gIi9zaXRlL2FqYXgvYWpheC1uZXdzLWV2ZW50cy5waHAiOyB2YXIgQUpBWF9SRVNfT1BQUyA9ICIvc2l0ZS9jdXN0b21fc2NyaXB0cy9yZXNlYXJjaC1vcHBvcnR1bml0aWVzLWluZGV4LnBocCI7IHZhciBTRUFSQ0hfUkVTVUxUUyA9ICIvc2l0ZS9jdXN0b21fc2NyaXB0cy9zZWFyY2gtcmVzdWx0cy5waHAiOzwvc2NyaXB0PgoKPHNjcmlwdCBzcmM9Imh0dHBzOi8vY29kZS5qcXVlcnkuY29tL2pxdWVyeS0xLjExLjMubWluLmpzIj48L3NjcmlwdD4KPHNjcmlwdCBzcmM9Imh0dHBzOi8vcHJvZHVjdGlvbjIubGVlZHMuYWMudWsvamFkdWNkbi90aGVtZXMvZGVmYXVsdC9hc3NldHMvZGlzdC9zY3JpcHQubWluLmpzP3ZlcnNpb249ZmIyYTllMmMxOTEwYWE3ZjgxYmVlMjNmMGI0YTc4MGEiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9wcm9kdWN0aW9uMi5sZWVkcy5hYy51ay9qYWR1Y2RuL3RoZW1lcy9kZWZhdWx0L2Fzc2V0cy9qYWR1L2Rldi5taW4uanM/dmVyc2lvbj1mYjJhOWUyYzE5MTBhYTdmODFiZWUyM2YwYjRhNzgwYSI+PC9zY3JpcHQ+CiAgICAgICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vcHJvZHVjdGlvbjIubGVlZHMuYWMudWsvamFkdWNkbi90aGVtZXMvZGVmYXVsdC9hc3NldHMvZGlzdC9jb29raWVzLm1pbi5qcz92ZXJzaW9uPWZiMmE5ZTJjMTkxMGFhN2Y4MWJlZTIzZjBiNGE3ODBhIj48L3NjcmlwdD4KPHNjcmlwdD4KICAgIGlmKHR5cGVvZiBjb29raWVDb25zZW50ICE9PSAidW5kZWZpbmVkIil7CiAgICAgICAgLy9Db29raWVzIGNvbXBsaWFuY2UKICAgICAgICBjb29raWVDb25zZW50LmluaXQoewogICAgICAgICAgICB1cmw6ICcvL2Vwcy5sZWVkcy5hYy51ay9wcml2YWN5LycsCiAgICAgICAgICAgIGdvb2dsZTogdHJ1ZSwKICAgICAgICAgICAgZmFjZWJvb2s6IHRydWUKICAgICAgICB9KTsKICAgIH0KPC9zY3JpcHQ+CiAgICAgICAgICAgIDwvYm9keT4KPC9odG1sPgo=\"}]}"},{"id":1887,"title":"Graceful Graph: Wichmann Rulers","description":"This Challenge is to find maximum size Graceful Graphs via Wichmann Rulers for P\u003e13.  This Challenge is related to the \u003chttp://www.azspcs.net/Contest/GracefulGraphs Graceful Graph Contest\u003e which Rokicki completed in 97 minutes. The Wichmann Conjecture is that no larger solutions exist for P\u003e13.\r\n\r\nAn Optimal ruler is defined as having end points at 0 and Max with P-2 integer points between [0,Max] such that the distances 1 thru Max exist by deltas between points.\r\nAn \u003chttp://oeis.org/A193802 Optimal Wichmann Ruler\u003e readily creates solutions that can be tested for number of points and existence of all expected deltas.\r\n\r\nThe Wichmann difference vector is [Q(1,r), r+1, Q(2r+1,r), Q(4r+3,s), Q(2r+2,r+1), Q(1,r)] where Q(a,b) is b a's, e.g. Q(2,3) is [2 2 2]. The max value is L=4r(r+s+2)+3(s+1) for Points P=4r+s+3, (r and s \u003e=0 and integer).\r\n\r\nFor W(r,s), W(2,3) creates the difference sequence [1 1 3 5 5 11 11 11 6 6 6 1 1]. The points on the ruler are the cumsum of W with a zero pre-pended to produce S=[0 1 2 5 10 15 26 37 48 54 60 66 67 68], P=14. All deltas from 1 thru 68 can be realized.\r\n\r\n*Input:* P  (Number of Points on the ruler)\r\n\r\n*Output:* S (Vector of length P of locations on the ruler, 0 thru Max Value and can generate all deltas 1:S(end))\r\n\r\n*Notes:*\r\n\r\n  1) A W(r,s) does not guarantee all deltas can be generated\r\n  2) For any P there are multiple W(r,s) solutions \r\n  3) P=5 solution is 9, readily solved by brute force\r\n  4) P=13 Wichmann is 57 but the best solution is 58. Too big for brute force\r\n  5) Create Connectivity Graph for Cases, like Final Matlab Competition, for Fun ","description_html":"\u003cp\u003eThis Challenge is to find maximum size Graceful Graphs via Wichmann Rulers for P\u003e13.  This Challenge is related to the \u003ca href = \"http://www.azspcs.net/Contest/GracefulGraphs\"\u003eGraceful Graph Contest\u003c/a\u003e which Rokicki completed in 97 minutes. The Wichmann Conjecture is that no larger solutions exist for P\u003e13.\u003c/p\u003e\u003cp\u003eAn Optimal ruler is defined as having end points at 0 and Max with P-2 integer points between [0,Max] such that the distances 1 thru Max exist by deltas between points.\r\nAn \u003ca href = \"http://oeis.org/A193802\"\u003eOptimal Wichmann Ruler\u003c/a\u003e readily creates solutions that can be tested for number of points and existence of all expected deltas.\u003c/p\u003e\u003cp\u003eThe Wichmann difference vector is [Q(1,r), r+1, Q(2r+1,r), Q(4r+3,s), Q(2r+2,r+1), Q(1,r)] where Q(a,b) is b a's, e.g. Q(2,3) is [2 2 2]. The max value is L=4r(r+s+2)+3(s+1) for Points P=4r+s+3, (r and s \u003e=0 and integer).\u003c/p\u003e\u003cp\u003eFor W(r,s), W(2,3) creates the difference sequence [1 1 3 5 5 11 11 11 6 6 6 1 1]. The points on the ruler are the cumsum of W with a zero pre-pended to produce S=[0 1 2 5 10 15 26 37 48 54 60 66 67 68], P=14. All deltas from 1 thru 68 can be realized.\u003c/p\u003e\u003cp\u003e\u003cb\u003eInput:\u003c/b\u003e P  (Number of Points on the ruler)\u003c/p\u003e\u003cp\u003e\u003cb\u003eOutput:\u003c/b\u003e S (Vector of length P of locations on the ruler, 0 thru Max Value and can generate all deltas 1:S(end))\u003c/p\u003e\u003cp\u003e\u003cb\u003eNotes:\u003c/b\u003e\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003e1) A W(r,s) does not guarantee all deltas can be generated\r\n2) For any P there are multiple W(r,s) solutions \r\n3) P=5 solution is 9, readily solved by brute force\r\n4) P=13 Wichmann is 57 but the best solution is 58. Too big for brute force\r\n5) Create Connectivity Graph for Cases, like Final Matlab Competition, for Fun \r\n\u003c/pre\u003e","function_template":"function s=Graceful_Wichmann(n)\r\n  s=0;\r\nend","test_suite":"%%\r\ntic\r\nn=17;\r\nexp=101;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=19;\r\nexp=123;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=23;\r\nexp=183;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=29;\r\nexp=289;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=31;\r\nexp=327;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=37;\r\nexp=465;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=41;\r\nexp=573;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=43;\r\nexp=627;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=47;\r\nexp=751;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=53;\r\nexp=953;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=59;\r\nexp=1179;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=61;\r\nexp=1257;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=67;\r\nexp=1515;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=71;\r\nexp=1703;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=73;\r\nexp=1797;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=79;\r\nexp=2103;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=83;\r\nexp=2323;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=89;\r\nexp=2669;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=97;\r\nexp=3165;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":5,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2013-09-23T01:30:25.000Z","updated_at":"2013-09-23T13:04:40.000Z","published_at":"2013-09-23T04:00:18.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 Challenge is to find maximum size Graceful Graphs via Wichmann Rulers for P\u0026gt;13. This Challenge is related to the\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://www.azspcs.net/Contest/GracefulGraphs\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eGraceful Graph Contest\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e which Rokicki completed in 97 minutes. The Wichmann Conjecture is that no larger solutions exist for P\u0026gt;13.\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\u003eAn Optimal ruler is defined as having end points at 0 and Max with P-2 integer points between [0,Max] such that the distances 1 thru Max exist by deltas between points. An\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://oeis.org/A193802\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eOptimal Wichmann Ruler\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e readily creates solutions that can be tested for number of points and existence of all expected deltas.\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\u003eThe Wichmann difference vector is [Q(1,r), r+1, Q(2r+1,r), Q(4r+3,s), Q(2r+2,r+1), Q(1,r)] where Q(a,b) is b a's, e.g. Q(2,3) is [2 2 2]. The max value is L=4r(r+s+2)+3(s+1) for Points P=4r+s+3, (r and s \u0026gt;=0 and integer).\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 W(r,s), W(2,3) creates the difference sequence [1 1 3 5 5 11 11 11 6 6 6 1 1]. The points on the ruler are the cumsum of W with a zero pre-pended to produce S=[0 1 2 5 10 15 26 37 48 54 60 66 67 68], P=14. All deltas from 1 thru 68 can be realized.\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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eInput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e P (Number of Points on the ruler)\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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eOutput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e S (Vector of length P of locations on the ruler, 0 thru Max Value and can generate all deltas 1:S(end))\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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eNotes:\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[1) A W(r,s) does not guarantee all deltas can be generated\\n2) For any P there are multiple W(r,s) solutions \\n3) P=5 solution is 9, readily solved by brute force\\n4) P=13 Wichmann is 57 but the best solution is 58. Too big for brute force\\n5) Create Connectivity Graph for Cases, like Final Matlab Competition, for Fun]]\u003e\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":45224,"title":"Wythoff Sequence","description":"\r\nFind the lower Wythoff sequence up to n.\r\n\r\nFor more information, \u003chttps://oeis.org/A000201\u003e","description_html":"\u003cp\u003eFind the lower Wythoff sequence up to n.\u003c/p\u003e\u003cp\u003eFor more information, \u003ca href = \"https://oeis.org/A000201\"\u003ehttps://oeis.org/A000201\u003c/a\u003e\u003c/p\u003e","function_template":"function y=wythoff(n)\r\n  y = x;\r\nend","test_suite":"%%\r\nn = 1;\r\ny_correct = 1;\r\nassert(isequal(wythoff(n),y_correct))\r\n%%\r\nn = 10;\r\ny_correct = [1,3,4,6,8,9,11,12,14,16];\r\nassert(isequal(wythoff(n),y_correct))\r\n\r\n\r\n\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":0,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":31,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2019-12-04T12:02:31.000Z","updated_at":"2026-03-16T11:21:35.000Z","published_at":"2019-12-04T12:20:20.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\u003eFind the lower Wythoff sequence up to n.\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 more information,\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://oeis.org/A000201\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://oeis.org/A000201\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt;\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":2736,"title":"Pernicious Anniversary Problem","description":"Since Cody is 5 years old, it's pernicious. A \u003chttp://rosettacode.org/wiki/Pernicious_numbers Pernicious number\u003e is an integer whose population count is a prime. Check if the given number is pernicious.","description_html":"\u003cp\u003eSince Cody is 5 years old, it's pernicious. A \u003ca href = \"http://rosettacode.org/wiki/Pernicious_numbers\"\u003ePernicious number\u003c/a\u003e is an integer whose population count is a prime. Check if the given number is pernicious.\u003c/p\u003e","function_template":"function y = isPernicious(x)\r\n  y = false;\r\nend","test_suite":"%%\r\nx = 5;\r\ny_correct = true;\r\nassert(isequal(isPernicious(x),y_correct))\r\n%%\r\nx = 1;\r\ny_correct = false;\r\nassert(isequal(isPernicious(x),y_correct))\r\n%%\r\nx = 2^randi(16);\r\ny_correct = false;\r\nassert(isequal(isPernicious(x),y_correct))\r\n%%\r\nx = 17;\r\ny_correct = true;\r\nassert(isequal(isPernicious(x),y_correct))\r\n%%\r\nx = 18;\r\ny_correct = true;\r\nassert(isequal(isPernicious(x),y_correct))\r\n%%\r\nx = 61;\r\ny_correct = true;\r\nassert(isequal(isPernicious(x),y_correct))\r\n%%\r\nx = 6;\r\ny_correct = true;\r\nassert(isequal(isPernicious(x),y_correct))\r\n%%\r\nx = 2115;\r\ny_correct = false;\r\nassert(isequal(isPernicious(x),y_correct))\r\n%%\r\nx = 2114;\r\ny_correct = true;\r\nassert(isequal(isPernicious(x),y_correct))\r\n%%\r\nx = 2017;\r\ny_correct = true;\r\nassert(isequal(isPernicious(x),y_correct))\r\n\r\n\r\n\r\n\r\n","published":true,"deleted":false,"likes_count":13,"comments_count":1,"created_by":14358,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":838,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":34,"created_at":"2014-12-08T08:48:45.000Z","updated_at":"2026-04-10T14:31:08.000Z","published_at":"2017-10-16T01:45:06.000Z","restored_at":"2017-10-25T14:37:50.000Z","restored_by":null,"spam":false,"simulink":false,"admin_reviewed":true,"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\u003eSince Cody is 5 years old, it's pernicious. 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://rosettacode.org/wiki/Pernicious_numbers\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ePernicious number\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e is an integer whose population count is a prime. Check if the given number is pernicious.\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":1298,"title":"P-smooth numbers","description":"This Challenge is to find \u003chttps://en.wikipedia.org/wiki/Smooth_number P-smooth number\u003e partial sets given P and a max series value.\r\n\r\nA P-smooth number set of N contains a subset of 1:N integers whose prime factors are all \u003c=P.\r\n\r\nFor P=3 and N=16: P-smooth subset is [1 2 3 4 6 8 9 12 16]. Values 5,7,10,13,14,and 15 are primes \u003e3 or values divisible by primes\u003e3.\r\n\r\nvs = find_psmooth(P,N)\r\n\r\n\r\nSample \u003chttps://oeis.org/A051038 OEIS 11-smooth numbers\u003e\r\n\r\nWhere are P-smooth numbers utilized or present themselves?\r\nUpcoming Challenge solved by P-smooth numbers.","description_html":"\u003cp\u003eThis Challenge is to find \u003ca href = \"https://en.wikipedia.org/wiki/Smooth_number\"\u003eP-smooth number\u003c/a\u003e partial sets given P and a max series value.\u003c/p\u003e\u003cp\u003eA P-smooth number set of N contains a subset of 1:N integers whose prime factors are all \u0026lt;=P.\u003c/p\u003e\u003cp\u003eFor P=3 and N=16: P-smooth subset is [1 2 3 4 6 8 9 12 16]. Values 5,7,10,13,14,and 15 are primes \u0026gt;3 or values divisible by primes\u0026gt;3.\u003c/p\u003e\u003cp\u003evs = find_psmooth(P,N)\u003c/p\u003e\u003cp\u003eSample \u003ca href = \"https://oeis.org/A051038\"\u003eOEIS 11-smooth numbers\u003c/a\u003e\u003c/p\u003e\u003cp\u003eWhere are P-smooth numbers utilized or present themselves?\r\nUpcoming Challenge solved by P-smooth numbers.\u003c/p\u003e","function_template":"function vs = find_psmooth(pmax,vmax)\r\n% pmax is prime max\r\n% vmax is max value of set 1:vmax\r\n  vs=1;\r\nend","test_suite":"%%\r\nvs = find_psmooth(2,16);\r\nassert(isequal(vs,[1 2 4 8 16]))\r\n%%\r\nvs = find_psmooth(3,128);\r\nassert(isequal(vs,[1, 2, 3, 4, 6, 8, 9, 12, 16, 18, 24, 27, 32, 36, 48, 54, 64, 72, 81, 96, 108, 128]))\r\n%%\r\nvs = find_psmooth(11,73);\r\nassert(isequal(vs,[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 18, 20, 21, 22, 24, 25, 27, 28, 30, 32, 33, 35, 36, 40, 42, 44, 45, 48, 49, 50, 54, 55, 56, 60, 63, 64, 66, 70, 72]))\r\n%%\r\npmax=7; vmax=120;\r\nvs = find_psmooth(pmax,vmax);\r\nvs=unique(vs); % Validity checks\r\nvs(vs\u003evmax)=[];\r\nvs(vs\u003c1)=[];\r\nvs=floor(vs);\r\nlength(vs)\r\nif length(vs)==50 % Known length\r\n pass=true;\r\nelse\r\n pass=false;\r\nend\r\npv=primes(vmax);\r\npv(pv\u003c=pmax)=[];\r\nfor i=pv\r\n if any(mod(vs,i)==0) % check for prime divisors \u003epmax\r\n  pass=false;\r\n  break;\r\n end\r\nend\r\nassert(pass)\r\n%%\r\npmax=11; vmax=300;\r\nvs = find_psmooth(pmax,vmax);\r\nvs=unique(vs); % Validity checks\r\nvs(vs\u003evmax)=[];\r\nvs(vs\u003c1)=[];\r\nvs=floor(vs);\r\nlength(vs)\r\nif length(vs)==104 % Known length\r\n pass=true;\r\nelse\r\n pass=false;\r\nend\r\npv=primes(vmax);\r\npv(pv\u003c=pmax)=[];\r\nfor i=pv\r\n if any(mod(vs,i)==0) % check for prime divisors \u003epmax\r\n  pass=false;\r\n  break;\r\n end\r\nend\r\nassert(pass)\r\n%%\r\npmax=13; vmax=900;\r\nvs = find_psmooth(pmax,vmax);\r\nvs=unique(vs); % Validity checks\r\nvs(vs\u003evmax)=[];\r\nvs(vs\u003c1)=[];\r\nvs=floor(vs);\r\nlength(vs)\r\nif length(vs)==231% Known length\r\n pass=true;\r\nelse\r\n pass=false;\r\nend\r\npv=primes(vmax);\r\npv(pv\u003c=pmax)=[];\r\nfor i=pv\r\n if any(mod(vs,i)==0) % check for prime divisors \u003epmax\r\n  pass=false;\r\n  break;\r\n end\r\nend\r\nassert(pass)\r\n\r\n\r\n\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":98,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":44,"created_at":"2013-02-23T23:06:45.000Z","updated_at":"2026-04-09T15:24:35.000Z","published_at":"2016-02-21T23:06:03.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 Challenge is to find\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://en.wikipedia.org/wiki/Smooth_number\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eP-smooth number\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e partial sets given P and a max series value.\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 P-smooth number set of N contains a subset of 1:N integers whose prime factors are all \u0026lt;=P.\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 P=3 and N=16: P-smooth subset is [1 2 3 4 6 8 9 12 16]. Values 5,7,10,13,14,and 15 are primes \u0026gt;3 or values divisible by primes\u0026gt;3.\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\u003evs = find_psmooth(P,N)\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\u003eSample\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://oeis.org/A051038\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eOEIS 11-smooth numbers\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\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\u003eWhere are P-smooth numbers utilized or present themselves? Upcoming Challenge solved by P-smooth numbers.\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":42800,"title":"house of cards","description":"How many cards do one need to build a house of cards with n stages? \r\nShort explanation:\r\n\r\n\r\n  /\\      2 cards for 1 stage\r\n     \r\n /_\\    7 cards for 2 stages\r\n/\\ /\\\r\n\r\n....","description_html":"\u003cp\u003eHow many cards do one need to build a house of cards with n stages? \r\nShort explanation:\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003e/\\      2 cards for 1 stage\r\n\u003c/pre\u003e\u003cpre\u003e /_\\    7 cards for 2 stages\r\n/\\ /\\\u003c/pre\u003e\u003cp\u003e....\u003c/p\u003e","function_template":"function K = house_of_cards(n)\r\nK=2;\r\nend","test_suite":"%%\r\nn = 1;\r\nK_correct = 2;\r\nassert(isequal(house_of_cards(n),K_correct))\r\n\r\n%%\r\nn = 2;\r\nK_correct = 7;\r\nassert(isequal(house_of_cards(n),K_correct))\r\n\r\n%%\r\nn = 3;\r\nK_correct = 15;\r\nassert(isequal(house_of_cards(n),K_correct))\r\n\r\n%%\r\nn = 10;\r\nK_correct = 155;\r\nassert(isequal(house_of_cards(n),K_correct))\r\n\r\n%%\r\nn = 100;\r\nK_correct = 15050;\r\nassert(isequal(house_of_cards(n),K_correct))\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","published":true,"deleted":false,"likes_count":3,"comments_count":2,"created_by":73322,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":38,"test_suite_updated_at":"2016-04-15T12:28:41.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2016-04-15T09:23:08.000Z","updated_at":"2026-04-14T15:34:31.000Z","published_at":"2016-04-15T09:23: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\u003eHow many cards do one need to build a house of cards with n stages? Short explanation:\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[/\\\\      2 cards for 1 stage\\n\\n /_\\\\    7 cards for 2 stages\\n/\\\\ /\\\\]]\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\u003e....\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":45231,"title":"Generate Golomb's sequence","description":"Generate Golomb's sequence up to the given number. \r\n\r\nIf n=4, then \r\n\r\n  seq = [1, 2, 2, 3, 3, 4, 4, 4]\r\n\r\nIf n=6, then \r\n\r\n  seq = [1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 6]","description_html":"\u003cp\u003eGenerate Golomb's sequence up to the given number.\u003c/p\u003e\u003cp\u003eIf n=4, then\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003eseq = [1, 2, 2, 3, 3, 4, 4, 4]\r\n\u003c/pre\u003e\u003cp\u003eIf n=6, then\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003eseq = [1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 6]\r\n\u003c/pre\u003e","function_template":"function y = euler_341_4(n)\r\n  y = x;\r\nend","test_suite":"%%\r\nn = 18;\r\ny_correct = [1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18];\r\nassert(isequal(euler_341_4(n),y_correct))\r\n%%\r\nn = 5;\r\ny_correct = [1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 5];\r\nassert(isequal(euler_341_4(n),y_correct))\r\n%%\r\nn = 12;\r\ny_correct = [1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12];\r\nassert(isequal(euler_341_4(n),y_correct))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":18,"test_suite_updated_at":"2019-12-12T12:18:51.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2019-12-12T12:16:38.000Z","updated_at":"2026-02-21T13:46:30.000Z","published_at":"2019-12-12T12:18:51.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\u003eGenerate Golomb's sequence up to the given number.\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\u003eIf n=4, then\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[seq = [1, 2, 2, 3, 3, 4, 4, 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\u003eIf n=6, then\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[seq = [1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 6]]]\u003e\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":2733,"title":"Evil Number","description":"Check if a given natural number is evil or not. \r\n\r\nRead more at \u003chttps://oeis.org/A001969 OEIS\u003e.","description_html":"\u003cp\u003eCheck if a given natural number is evil or not.\u003c/p\u003e\u003cp\u003eRead more at \u003ca href = \"https://oeis.org/A001969\"\u003eOEIS\u003c/a\u003e.\u003c/p\u003e","function_template":"function tf = isevil(n)\r\n  tf = ;\r\nend","test_suite":"%%\r\nx = 1;\r\ny_correct = false;\r\nassert(isequal(isevil(x),y_correct))\r\n%%\r\nx = 3;\r\ny_correct = true;\r\nassert(isequal(isevil(x),y_correct))\r\n%%\r\nx = [18, 20, 23, 24, 27, 45, 46, 48, 96, 99, 123,];\r\ny_correct = true;\r\nassert(isequal(all(arrayfun(@isevil,x)),y_correct))\r\n%%\r\nx = [14, 16, 19, 37, 38, 55, 56, 59, 62,  79, 82, 91, 93, 94, 97, 98, 117, 118, 121];\r\ny_correct = false;\r\nassert(isequal(any(arrayfun(@isevil,x)),y_correct))\r\n%%\r\nx = 2^randi([5 10])+1;\r\ny_correct = true;\r\nassert(isequal(isevil(x),y_correct))\r\n\r\n%%\r\n% more test cases may be introduced\r\n%%\r\n% DISABLED\r\n% ________'FAIR'_SCORING_SYSTEM______________\r\n%\r\n% This section scores for usage of ans\r\n% and strings, which are common methods \r\n% to reduce cody size of solution.\r\n% Here, strings are threated like vectors.\r\n% Please do not hack it, as this problem\r\n% is not mentioned to be a hacking problem.\r\n% \r\n  try\r\n% disable:\r\nassert(false) \r\n%\r\n  size_old = feval(@evalin,'caller','score');\r\n%\r\n  all_nodes = mtree('isevil.m','-file');\r\n  str_nodes = mtfind(all_nodes,'Kind','STRING');\r\n   eq_nodes = mtfind(all_nodes,'Kind','EQUALS');\r\nprint_nodes = mtfind(all_nodes,'Kind','PRINT');\r\n expr_nodes = mtfind(all_nodes,'Kind','EXPR');\r\n%\r\n       size = count(all_nodes)           ...\r\n              +sum(str_nodes.nodesize-1) ...\r\n              +2*(count(expr_nodes)      ...\r\n                  +count(print_nodes)    ...\r\n                  -count(eq_nodes));\r\n%\r\n  feval(@assignin,'caller','score',size);\r\n%\r\n  fprintf('Size in standard cody scoring is %i.\\n',size_old);\r\n  fprintf('Here it is %i.\\n',size);\r\n  end\r\n%\r\n%_________RESULT_____________________________","published":true,"deleted":false,"likes_count":3,"comments_count":6,"created_by":14358,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":274,"test_suite_updated_at":"2016-12-26T10:21:47.000Z","rescore_all_solutions":true,"group_id":8,"created_at":"2014-12-07T21:50:01.000Z","updated_at":"2026-03-11T15:15:47.000Z","published_at":"2015-01-19T12:47:58.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\u003eCheck if a given natural number is evil or not.\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\u003eRead more at\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://oeis.org/A001969\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eOEIS\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\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":2734,"title":"N-th Odious","description":"Given index n return n-th \u003chttps://oeis.org/A000069 odious number\u003e.","description_html":"\u003cp\u003eGiven index n return n-th \u003ca href = \"https://oeis.org/A000069\"\u003eodious number\u003c/a\u003e.\u003c/p\u003e","function_template":"function y = nthodious(n)\r\n  y = n;\r\nend","test_suite":"%%\r\nx = 1;\r\ny_correct = 1;\r\nassert(isequal(nthodious(x),y_correct))\r\n%%\r\nx = 2;\r\ny_correct = 2;\r\nassert(isequal(nthodious(x),y_correct))\r\n%%\r\nx = 3;\r\ny_correct = 4;\r\nassert(isequal(nthodious(x),y_correct))\r\n%%\r\nx = 9;\r\ny_correct = 16;\r\nassert(isequal(nthodious(x),y_correct))\r\n%%\r\nx = 17;\r\ny_correct = 32;\r\nassert(isequal(nthodious(x),y_correct))\r\n%%\r\nx = 33;\r\ny_correct = 64;\r\nassert(isequal(nthodious(x),y_correct))\r\n%%\r\nx = 65;\r\ny_correct = 128;\r\nassert(isequal(nthodious(x),y_correct))\r\n%%\r\nx = 3387;\r\ny_correct = 6772;\r\nassert(isequal(nthodious(x),y_correct))\r\n%%\r\nx = 22;\r\ny_correct = 42;\r\nassert(isequal(nthodious(x),y_correct))\r\n%%\r\nx = 1e5;\r\ny_correct = 2e5-1;\r\nassert(isequal(nthodious(x),y_correct))\r\n%%\r\n% more test cases may be introduced\r\n%%\r\n% DISABLED\r\n% ________'FAIR'_SCORING_SYSTEM______________\r\n%\r\n% This section scores for usage of ans\r\n% and strings, which are common methods \r\n% to reduce cody size of solution.\r\n% Here, strings are threated like vectors.\r\n% Please do not hack it, as this problem\r\n% is not mentioned to be a hacking problem.\r\n% \r\n  try\r\nassert(false)\r\n% \r\n  size_old = feval(@evalin,'caller','score');\r\n%\r\n  all_nodes = mtree('nthodious.m','-file');\r\n  str_nodes = mtfind(all_nodes,'Kind','STRING');\r\n   eq_nodes = mtfind(all_nodes,'Kind','EQUALS');\r\nprint_nodes = mtfind(all_nodes,'Kind','PRINT');\r\n expr_nodes = mtfind(all_nodes,'Kind','EXPR');\r\n%\r\n       size = count(all_nodes)           ...\r\n              +sum(str_nodes.nodesize-1) ...\r\n              +2*(count(expr_nodes)      ...\r\n                  +count(print_nodes)    ...\r\n                  -count(eq_nodes));\r\n%\r\n  feval(@assignin,'caller','score',size);\r\n%\r\n  fprintf('Size in standard cody scoring is %i.\\n',size_old);\r\n  fprintf('Here it is %i.\\n',size);\r\n  end\r\n%\r\n%_________RESULT_____________________________\r\n","published":true,"deleted":false,"likes_count":3,"comments_count":0,"created_by":14358,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":182,"test_suite_updated_at":"2015-01-19T23:07:07.000Z","rescore_all_solutions":true,"group_id":8,"created_at":"2014-12-07T21:50:54.000Z","updated_at":"2026-02-16T10:22:49.000Z","published_at":"2015-01-19T13:39:11.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\u003eGiven index n return n-th\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://oeis.org/A000069\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eodious number\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\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":44360,"title":"Pentagonal Numbers","description":"Your function will receive a lower and upper bound. It should return all pentagonal numbers within that inclusive range in ascending order. Additionally, it should return an array that indicates those numbers that are divisible by 5. For example,\r\n\r\n [p,d] = pentagonal_numbers(10,40)\r\n\r\nshould return\r\n\r\n p = [12,22,35]\r\n d = [ 0, 0, 1]","description_html":"\u003cp\u003eYour function will receive a lower and upper bound. It should return all pentagonal numbers within that inclusive range in ascending order. Additionally, it should return an array that indicates those numbers that are divisible by 5. For example,\u003c/p\u003e\u003cpre\u003e [p,d] = pentagonal_numbers(10,40)\u003c/pre\u003e\u003cp\u003eshould return\u003c/p\u003e\u003cpre\u003e p = [12,22,35]\r\n d = [ 0, 0, 1]\u003c/pre\u003e","function_template":"function [p,d] = pentagonal_numbers(10,40)\r\n p = [5];\r\n d = [1];\r\nend","test_suite":"%%\r\nx1 = 1; x2 = 25;\r\n[p,d] = pentagonal_numbers(x1,x2)\r\nassert(isequal(p,[1,5,12,22]))\r\nassert(isequal(d,[0,1,0,0]))\r\n\r\n%%\r\nx1 = 1; x2 = 4;\r\n[p,d] = pentagonal_numbers(x1,x2)\r\nassert(isequal(p,1))\r\nassert(isequal(d,0))\r\n\r\n%%\r\nx1 = 10; x2 = 40;\r\n[p,d] = pentagonal_numbers(x1,x2)\r\nassert(isequal(p,[12,22,35]))\r\nassert(isequal(d,[0,0,1]))\r\n\r\n%%\r\nx1 = 10; x2 = 99;\r\n[p,d] = pentagonal_numbers(x1,x2)\r\nassert(isequal(p,[12,22,35,51,70,92]))\r\nassert(isequal(d,[0,0,1,0,1,0]))\r\n\r\n%%\r\nx1 = 100; x2 = 999;\r\n[p,d] = pentagonal_numbers(x1,x2)\r\nassert(isequal(p,[117,145,176,210,247,287,330,376,425,477,532,590,651,715,782,852,925]))\r\nassert(isequal(d,[0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1]))\r\n\r\n%%\r\nx1 = 40; x2 = 50;\r\n[p,d] = pentagonal_numbers(x1,x2)\r\nassert(isempty(p))\r\nassert(isempty(d))\r\n\r\n%%\r\nx1 = 1000; x2 = 1500;\r\n[p,d] = pentagonal_numbers(x1,x2)\r\nassert(isequal(p,[1001,1080,1162,1247,1335,1426]))\r\nassert(isequal(d,[0,1,0,0,1,0]))\r\n\r\n%%\r\nx1 = 1500; x2 = 3000;\r\n[p,d] = pentagonal_numbers(x1,x2)\r\nassert(isequal(p,[1520,1617,1717,1820,1926,2035,2147,2262,2380,2501,2625,2752,2882]))\r\nassert(isequal(d,[1,0,0,1,0,1,0,0,1,0,1,0,0]))\r\n\r\n%%\r\nx1 = 1; x2 = 3000;\r\n[p,d] = pentagonal_numbers(x1,x2)\r\nassert(isequal(p,[1,5,12,22,35,51,70,92,117,145,176,210,247,287,330,376,425,477,532,590,651,715,782,852,925,1001,1080,1162,1247,1335,1426,1520,1617,1717,1820,1926,2035,2147,2262,2380,2501,2625,2752,2882]))\r\nassert(isequal(d,[0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0]))\r\n\r\n%%\r\nx1 = 10000; x2 = 12000;\r\n[p,d] = pentagonal_numbers(x1,x2)\r\nassert(isequal(p,[10045,10292,10542,10795,11051,11310,11572,11837]))\r\nassert(isequal(d,[1,0,0,1,0,1,0,0]))\r\n\r\n%%\r\nx1 = 100000; x2 = 110000;\r\n[p,d] = pentagonal_numbers(x1,x2)\r\nassert(isequal(p,[100492,101270,102051,102835,103622,104412,105205,106001,106800,107602,108407,109215]))\r\nassert(isequal(d,[0,1,0,1,0,0,1,0,1,0,0,1]))\r\n\r\n%%\r\nx1 = 1000000; x2 = 1010101;\r\n[p,d] = pentagonal_numbers(x1,x2)\r\nassert(isequal(p,[1000825,1003277,1005732,1008190]))\r\nassert(isequal(d,[1,0,0,1]))","published":true,"deleted":false,"likes_count":12,"comments_count":3,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":679,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":34,"created_at":"2017-10-05T17:43:36.000Z","updated_at":"2026-04-07T13:59:33.000Z","published_at":"2017-10-16T01:45: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\u003eYour function will receive a lower and upper bound. It should return all pentagonal numbers within that inclusive range in ascending order. Additionally, it should return an array that indicates those numbers that are divisible by 5. For example,\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[ [p,d] = pentagonal_numbers(10,40)]]\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\u003eshould return\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[ p = [12,22,35]\\n d = [ 0, 0, 1]]]\u003e\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":61083,"title":"Express base-10 integers in lazy binary","description":"The binary (or base-2) representations of a number n can be constructed as follows:\r\nStep 1: If n = 0, then the binary representation is 0.\r\nStep 2: If n \u003e 0, then do the following:\r\n             a. Add 1 to the least-significant bit of the binary representation of n-1. \r\n             b. If any bit is equal to 2, replace that bit with 0 and add 1 to the next most significant bit.\r\n             c. Repeat step 2b till all bits are 0 or 1.\r\nFor example, the binary representation of 7 is 111. To get the binary representation of 8, we follow the steps to get 112, 120, 200, and the result 1000. \r\nThe procedure for determining the lazy binary representation is similar except that step 2c is omitted. That is, we are too lazy to repeat step 2b. Given that the lazy binary representation of 7 is 111, we would follow the modified procedure to get 112 and 120, the lazy binary representation of 8. For n = 9, the steps yield 121 and the result 201, and for n = 10, the steps yield 202 and the result 210. \r\nNotice that in applying step 2b for constructing binary numbers, there will be at most one 2. However, in lazy binary, there could be multiple 2s. Change only the least significant 2, as in the calculation of the lazy binary representation of 10. \r\nWrite a function to compute the lazy binary representation of a base-10 integer. Express the result as a 64-bit unsigned integer. ","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: 417px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 408px 208.5px; transform-origin: 408px 208.5px; 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: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; 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; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe binary (or base-2) representations of a number n can be constructed as follows:\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: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; 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; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eStep 1: If n = 0, then the binary representation is 0.\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: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; 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; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eStep 2: If n \u0026gt; 0, then do the following:\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: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; 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; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e             a. Add 1 to the least-significant bit of the binary representation of n-1. \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: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; 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; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e             b. If any bit is equal to 2, replace that bit with 0 and add 1 to the next most significant bit.\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: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; 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; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e             c. Repeat step 2b till all bits are 0 or 1.\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: 385px 21px; text-align: left; transform-origin: 385px 21px; white-space-collapse: preserve; 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; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eFor example, the binary representation of 7 is 111. To get the binary representation of 8, we follow the steps to get 112, 120, 200, and the result 1000. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 84px; 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: 385px 42px; text-align: left; transform-origin: 385px 42px; white-space-collapse: preserve; 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; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe procedure for determining the lazy binary representation is similar except that step 2c is omitted. That is, we are too lazy to repeat step 2b. Given that the lazy binary representation of 7 is 111, we would follow the modified procedure to get 112 and 120, the lazy binary representation of 8. For n = 9, the steps yield 121 and the result 201, and for n = 10, the steps yield 202 and the result 210. \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: 385px 21px; text-align: left; transform-origin: 385px 21px; white-space-collapse: preserve; 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; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eNotice that in applying step 2b for constructing binary numbers, there will be at most one 2. However, in lazy binary, there could be multiple 2s. Change only the least significant 2, as in the calculation of the lazy binary representation of 10. \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: 385px 21px; text-align: left; transform-origin: 385px 21px; white-space-collapse: preserve; 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; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWrite a function to compute the lazy binary representation of a base-10 integer. Express the result as a 64-bit unsigned integer. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = dec2lazybin(n)\r\n  y = dec2bi(n);\r\nend","test_suite":"%%\r\nn = 0;\r\ny = dec2lazybin(n);\r\ny_correct = uint64(0);\r\nassert(isa(y,'uint64'))\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nn = 1;\r\ny = dec2lazybin(n);\r\ny_correct = uint64(1);\r\nassert(isa(y,'uint64'))\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nn = 8;\r\ny = dec2lazybin(n);\r\ny_correct = uint64(120);\r\nassert(isa(y,'uint64'))\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nn = 87;\r\ny = dec2lazybin(n);\r\ny_correct = uint64(210111);\r\nassert(isa(y,'uint64'))\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nn = 354;\r\ny = dec2lazybin(n);\r\ny_correct = uint64(21011210);\r\nassert(isa(y,'uint64'))\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nn = 5084;\r\ny = dec2lazybin(n);\r\ny_correct = uint64(121110211020);\r\nassert(isa(y,'uint64'))\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nn = 21111;\r\ny = dec2lazybin(n);\r\ny_correct = uint64(20120121110111);\r\nassert(isa(y,'uint64'))\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nn = 505981;\r\ny = dec2lazybin(n);\r\ny_correct = uint64(1110211011121111101);\r\nassert(isa(y,'uint64'))\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nn = 1189030;\r\ny = dec2lazybin(n);\r\ny_correct = uint64(12011201201202012110);\r\nassert(isa(y,'uint64'))\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nm = randi(15);\r\nv = [0 ones(1,m)];\r\nn = polyval(v(randperm(m)),2);\r\ny = dec2lazybin(n);\r\ny_correct = uint64(polyval(dec2bin(n)-'0',10));\r\nassert(isequal(y,y_correct))","published":true,"deleted":false,"likes_count":2,"comments_count":2,"created_by":46909,"edited_by":46909,"edited_at":"2025-11-25T04:56:52.000Z","deleted_by":null,"deleted_at":null,"solvers_count":6,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2025-11-24T03:06:40.000Z","updated_at":"2026-02-26T13:00:53.000Z","published_at":"2025-11-24T03:06:49.000Z","restored_at":null,"restored_by":null,"spam":null,"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 binary (or base-2) representations of a number n can be constructed as follows:\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\u003eStep 1: If n = 0, then the binary representation is 0.\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\u003eStep 2: If n \u0026gt; 0, then do the following:\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             a. Add 1 to the least-significant bit of the binary representation of n-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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e             b. If any bit is equal to 2, replace that bit with 0 and add 1 to the next most significant bit.\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             c. Repeat step 2b till all bits are 0 or 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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor example, the binary representation of 7 is 111. To get the binary representation of 8, we follow the steps to get 112, 120, 200, and the result 1000. \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\u003eThe procedure for determining the lazy binary representation is similar except that step 2c is omitted. That is, we are too lazy to repeat step 2b. Given that the lazy binary representation of 7 is 111, we would follow the modified procedure to get 112 and 120, the lazy binary representation of 8. For n = 9, the steps yield 121 and the result 201, and for n = 10, the steps yield 202 and the result 210. \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\u003eNotice that in applying step 2b for constructing binary numbers, there will be at most one 2. However, in lazy binary, there could be multiple 2s. Change only the least significant 2, as in the calculation of the lazy binary representation of 10. \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 to compute the lazy binary representation of a base-10 integer. Express the result as a 64-bit unsigned integer. \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":2595,"title":"Polite numbers. Politeness.","description":"A polite number is an integer that sums of two or more consecutive positive integers.\r\nPoliteness of a positive integer is a number of nontrivial ways to write n as a sum of two or more consecutive positive integers.\r\n\r\nFor example _9 = 4+5 = 2+3+4_  and politeness of 9 is 2.\r\n\r\nGiven _N_ return politeness of _N_.\r\n\r\nSee also \u003chttp://www.mathworks.co.uk/matlabcentral/cody/problems/2593 2593\u003e","description_html":"\u003cp\u003eA polite number is an integer that sums of two or more consecutive positive integers.\r\nPoliteness of a positive integer is a number of nontrivial ways to write n as a sum of two or more consecutive positive integers.\u003c/p\u003e\u003cp\u003eFor example \u003ci\u003e9 = 4+5 = 2+3+4\u003c/i\u003e  and politeness of 9 is 2.\u003c/p\u003e\u003cp\u003eGiven \u003ci\u003eN\u003c/i\u003e return politeness of \u003ci\u003eN\u003c/i\u003e.\u003c/p\u003e\u003cp\u003eSee also \u003ca href = \"http://www.mathworks.co.uk/matlabcentral/cody/problems/2593\"\u003e2593\u003c/a\u003e\u003c/p\u003e","function_template":"function P = politeness(N)\r\n  P=N;\r\nend","test_suite":"%%\r\nx = 1;\r\ny_correct = 0;\r\nassert(isequal(politeness(x),y_correct))\r\n%%\r\nx = 2;\r\ny_correct = 0;\r\nassert(isequal(politeness(x),y_correct))\r\n%%\r\nx = 3;\r\ny_correct = 1;\r\nassert(isequal(politeness(x),y_correct))\r\n%%\r\nx = 7;\r\ny_correct = 1;\r\nassert(isequal(politeness(x),y_correct))\r\n%%\r\nx = 9;\r\ny_correct = 2;\r\nassert(isequal(politeness(x),y_correct))\r\n%%\r\nx = 15;\r\ny_correct = 3;\r\nassert(isequal(politeness(x),y_correct))\r\n%%\r\nx = 18;\r\ny_correct = 2;\r\nassert(isequal(politeness(x),y_correct))\r\n%%\r\nx = 21;\r\ny_correct = 3;\r\nassert(isequal(politeness(x),y_correct))\r\n%%\r\nx = 1024;\r\ny_correct = 0;\r\nassert(isequal(politeness(x),y_correct))\r\n%%\r\nx = 1025;\r\ny_correct = 5;\r\nassert(isequal(politeness(x),y_correct))\r\n%%\r\nx = 25215;\r\ny_correct = 11;\r\nassert(isequal(politeness(x),y_correct))\r\n%%\r\nx = 62;\r\ny_correct = 1;\r\nassert(isequal(politeness(x),y_correct))\r\n%%\r\nx = 63;\r\ny_correct = 5;\r\nassert(isequal(politeness(x),y_correct))\r\n%%\r\nx = 65;\r\ny_correct = 3;\r\nassert(isequal(politeness(x),y_correct))\r\n%%\r\n% anti-lookup \u0026 clue\r\nnums=primes(200);\r\npattern=[1 nums([false ~randi([0 25],1,45)])];\r\nx=prod(pattern)*2^randi([0 5]);\r\ny_correct=2^numel(pattern)/2-1;\r\nassert(isequal(politeness(x),y_correct))\r\n%%\r\nfor k=randi(2e4,1,20)\r\n  assert(isequal(politeness(k*(k-1))+1,(politeness(k)+1)*(politeness(k-1)+1)))\r\nend","published":true,"deleted":false,"likes_count":8,"comments_count":6,"created_by":14358,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":186,"test_suite_updated_at":"2014-09-17T15:38:21.000Z","rescore_all_solutions":false,"group_id":8,"created_at":"2014-09-16T22:47:12.000Z","updated_at":"2026-02-16T10:30:04.000Z","published_at":"2014-09-17T10:56:54.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\u003eA polite number is an integer that sums of two or more consecutive positive integers. Politeness of a positive integer is a number of nontrivial ways to write n as a sum of two or more consecutive positive integers.\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 example\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\u003e9 = 4+5 = 2+3+4\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and politeness of 9 is 2.\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\u003eGiven\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\u003eN\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e return politeness of\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\u003eN\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\u003eSee also\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://www.mathworks.co.uk/matlabcentral/cody/problems/2593\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e2593\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\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":42355,"title":"Minimum Set (A+A)U(A*A) OEIS A263996","description":"This Challenge is to find an integer vector A that creates the minimum set size for (A+A) U (A*A) for a given vector length, \u003chttps://oeis.org/A263996 OEIS A263996\u003e. The length, best value, Prime_max, and Value_max will be provided. \r\n\r\nThe \u003chttps://oeis.org/A263996 OEIS A263996\u003e gives the minimum set sizes thru length 50. Length 7 has best value 26 with Prime_max 5 and Value_max 8. A=[1 2 3 4 5 6 8] yields [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 20 24 25 30 32 36 40 48 64].\r\nThe \u003chttp://68.173.157.131/Contest/SumsAndProducts1/FinalReport Al Zimmermann Sums Contest Final Report\u003e extends A263996 for lengths 40:40:1000 with complete vector solutions. The contest winner, Rokicki, noted his method used P-smooth sets, hill climbing, and random swaps. The contest was a little tougher with only L given.\r\n\r\nExample Input/Output:\r\nL=9;Best=36;pmax=5;vmax=12;\r\nv = SP(L,Best,pmax,vmax); Yields v=[1 2 3 4 5 6 8 10 12]\r\n\r\nTheory/Hints: The V superset is found using \u003chttp://www.mathworks.com/matlabcentral/cody/problems/1298-p-smooth-numbers psmooth(pmax,vmax)\u003e . One observation is that for every v element the set v contains prod of all v element factor permutations. The time eater will be score evaluation. Residual evaluation suggested. A history screen, prior to score evaluation, of prior processed vectors is essential. A quick history pre-screen is vector sum. Replace testing of only values that are not factors of other numbers (eg 2,3 no replace) enables a reasonable time rolling score solution without random for the small test case values. ","description_html":"\u003cp\u003eThis Challenge is to find an integer vector A that creates the minimum set size for (A+A) U (A*A) for a given vector length, \u003ca href = \"https://oeis.org/A263996\"\u003eOEIS A263996\u003c/a\u003e. The length, best value, Prime_max, and Value_max will be provided.\u003c/p\u003e\u003cp\u003eThe \u003ca href = \"https://oeis.org/A263996\"\u003eOEIS A263996\u003c/a\u003e gives the minimum set sizes thru length 50. Length 7 has best value 26 with Prime_max 5 and Value_max 8. A=[1 2 3 4 5 6 8] yields [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 20 24 25 30 32 36 40 48 64].\r\nThe \u003ca href = \"http://68.173.157.131/Contest/SumsAndProducts1/FinalReport\"\u003eAl Zimmermann Sums Contest Final Report\u003c/a\u003e extends A263996 for lengths 40:40:1000 with complete vector solutions. The contest winner, Rokicki, noted his method used P-smooth sets, hill climbing, and random swaps. The contest was a little tougher with only L given.\u003c/p\u003e\u003cp\u003eExample Input/Output:\r\nL=9;Best=36;pmax=5;vmax=12;\r\nv = SP(L,Best,pmax,vmax); Yields v=[1 2 3 4 5 6 8 10 12]\u003c/p\u003e\u003cp\u003eTheory/Hints: The V superset is found using \u003ca href = \"http://www.mathworks.com/matlabcentral/cody/problems/1298-p-smooth-numbers\"\u003epsmooth(pmax,vmax)\u003c/a\u003e . One observation is that for every v element the set v contains prod of all v element factor permutations. The time eater will be score evaluation. Residual evaluation suggested. A history screen, prior to score evaluation, of prior processed vectors is essential. A quick history pre-screen is vector sum. Replace testing of only values that are not factors of other numbers (eg 2,3 no replace) enables a reasonable time rolling score solution without random for the small test case values.\u003c/p\u003e","function_template":"function v = SP(L,Best,pmax,vmax)\r\n% Only L and \u003c=Best need to be satisfied\r\n% pmax and vmax are suggestions when using psmooth numbers\r\n  v=[1:L-1 vmax];\r\nend","test_suite":"%%\r\ntic\r\npass=true;\r\nL=8;Best=30;pmax=5;vmax=10;\r\nv = SP(L,Best,pmax,vmax);\r\nv=unique(floor(v));\r\nv(v\u003c1)=[];\r\nif length(v)~=L,pass=false;end\r\nvm2=zeros(1,v(end)*v(end));\r\nLv=length(v);\r\nvr=repmat(v,Lv,1);vrp=vr';\r\nvp=vr+vrp;\r\n%vp=repmat(v,Lv,1)+repmat(v',1,Lv);\r\nvm2(vp(:))=1;\r\nvm=vr.*vrp;\r\n%vm=repmat(v,Lv,1).*repmat(v',1,Lv);\r\nvm2(vm(:))=1;\r\nscr=nnz(vm2);\r\nif scr\u003eBest,pass=false;end\r\ntoc\r\nassert(pass)\r\n%%\r\ntic\r\npass=true;\r\nL=39;Best=335;pmax=7;vmax=100;\r\nv = SP(L,Best,pmax,vmax);\r\nv=unique(floor(v));\r\nv(v\u003c1)=[];\r\nif length(v)~=L,pass=false;end\r\nvm2=zeros(1,v(end)*v(end));\r\nLv=length(v);\r\nvr=repmat(v,Lv,1);vrp=vr';\r\nvp=vr+vrp;\r\n%vp=repmat(v,Lv,1)+repmat(v',1,Lv);\r\nvm2(vp(:))=1;\r\nvm=vr.*vrp;\r\n%vm=repmat(v,Lv,1).*repmat(v',1,Lv);\r\nvm2(vm(:))=1;\r\nscr=nnz(vm2);\r\nif scr\u003eBest,pass=false;end\r\ntoc\r\nassert(pass)\r\n%%\r\ntic\r\npass=true;\r\nL=50;Best=486;pmax=7;vmax=144;\r\nv = SP(L,Best,pmax,vmax);\r\nv=unique(floor(v));\r\nv(v\u003c1)=[];\r\nif length(v)~=L,pass=false;end\r\nvm2=zeros(1,v(end)*v(end));\r\nLv=length(v);\r\nvr=repmat(v,Lv,1);vrp=vr';\r\nvp=vr+vrp;\r\n%vp=repmat(v,Lv,1)+repmat(v',1,Lv);\r\nvm2(vp(:))=1;\r\nvm=vr.*vrp;\r\n%vm=repmat(v,Lv,1).*repmat(v',1,Lv);\r\nvm2(vm(:))=1;\r\nscr=nnz(vm2);\r\nif scr\u003eBest,pass=false;end\r\ntoc\r\nassert(pass)\r\n%%\r\ntic\r\npass=true;\r\nL=40;Best=348;pmax=7;vmax=120;\r\nv = SP(L,Best,pmax,vmax);\r\nv=unique(floor(v));\r\nv(v\u003c1)=[];\r\nif length(v)~=L,pass=false;end\r\nvm2=zeros(1,v(end)*v(end));\r\nLv=length(v);\r\nvr=repmat(v,Lv,1);vrp=vr';\r\nvp=vr+vrp;\r\n%vp=repmat(v,Lv,1)+repmat(v',1,Lv);\r\nvm2(vp(:))=1;\r\nvm=vr.*vrp;\r\n%vm=repmat(v,Lv,1).*repmat(v',1,Lv);\r\nvm2(vm(:))=1;\r\nscr=nnz(vm2);\r\nif scr\u003eBest,pass=false;end\r\ntoc\r\nassert(pass)\r\n%%\r\ntic\r\npass=true;\r\nL=80;Best=1001;pmax=11;vmax=300;\r\nv = SP(L,Best,pmax,vmax);\r\nv=unique(floor(v));\r\nv(v\u003c1)=[];\r\nif length(v)~=L,pass=false;end\r\nvm2=zeros(1,v(end)*v(end));\r\nLv=length(v);\r\nvr=repmat(v,Lv,1);vrp=vr';\r\nvp=vr+vrp;\r\n%vp=repmat(v,Lv,1)+repmat(v',1,Lv);\r\nvm2(vp(:))=1;\r\nvm=vr.*vrp;\r\n%vm=repmat(v,Lv,1).*repmat(v',1,Lv);\r\nvm2(vm(:))=1;\r\nscr=nnz(vm2);\r\nif scr\u003eBest,pass=false;end\r\ntoc\r\nassert(pass)\r\n%%\r\ntic\r\npass=true;\r\nL=120;Best=1847;pmax=11;vmax=480;\r\nv = SP(L,Best,pmax,vmax);\r\nv=unique(floor(v));\r\nv(v\u003c1)=[];\r\nif length(v)~=L,pass=false;end\r\nvm2=zeros(1,v(end)*v(end));\r\nLv=length(v);\r\nvr=repmat(v,Lv,1);vrp=vr';\r\nvp=vr+vrp;\r\n%vp=repmat(v,Lv,1)+repmat(v',1,Lv);\r\nvm2(vp(:))=1;\r\nvm=vr.*vrp;\r\n%vm=repmat(v,Lv,1).*repmat(v',1,Lv);\r\nvm2(vm(:))=1;\r\nscr=nnz(vm2);\r\nif scr\u003eBest,pass=false;end\r\ntoc\r\nassert(pass)\r\n%%\r\ntic\r\npass=true;\r\nL=160;Best=2864;pmax=11;vmax=840;\r\nv = SP(L,Best,pmax,vmax);\r\nv=unique(floor(v));\r\nv(v\u003c1)=[];\r\nif length(v)~=L,pass=false;end\r\nvm2=zeros(1,v(end)*v(end));\r\nLv=length(v);\r\nvr=repmat(v,Lv,1);vrp=vr';\r\nvp=vr+vrp;\r\n%vp=repmat(v,Lv,1)+repmat(v',1,Lv);\r\nvm2(vp(:))=1;\r\nvm=vr.*vrp;\r\n%vm=repmat(v,Lv,1).*repmat(v',1,Lv);\r\nvm2(vm(:))=1;\r\nscr=nnz(vm2);\r\nif scr\u003eBest,pass=false;end\r\ntoc\r\nassert(pass)\r\n%%\r\ntic\r\npass=true;\r\nL=200;Best=4000;pmax=13;vmax=900;\r\nv = SP(L,Best,pmax,vmax);\r\nv=unique(floor(v));\r\nv(v\u003c1)=[];\r\nif length(v)~=L,pass=false;end\r\nvm2=zeros(1,v(end)*v(end));\r\nLv=length(v);\r\nvr=repmat(v,Lv,1);vrp=vr';\r\nvp=vr+vrp;\r\n%vp=repmat(v,Lv,1)+repmat(v',1,Lv);\r\nvm2(vp(:))=1;\r\nvm=vr.*vrp;\r\n%vm=repmat(v,Lv,1).*repmat(v',1,Lv);\r\nvm2(vm(:))=1;\r\nscr=nnz(vm2);\r\nif scr\u003eBest,pass=false;end\r\ntoc\r\nassert(pass)\r\n%%\r\ntic\r\npass=true;\r\nL=280;Best=6632;pmax=13;vmax=1800;\r\nv = SP(L,Best,pmax,vmax);\r\nv=unique(floor(v));\r\nv(v\u003c1)=[];\r\nif length(v)~=L,pass=false;end\r\nvm2=zeros(1,v(end)*v(end));\r\nLv=length(v);\r\nvr=repmat(v,Lv,1);vrp=vr';\r\nvp=vr+vrp;\r\n%vp=repmat(v,Lv,1)+repmat(v',1,Lv);\r\nvm2(vp(:))=1;\r\nvm=vr.*vrp;\r\n%vm=repmat(v,Lv,1).*repmat(v',1,Lv);\r\nvm2(vm(:))=1;\r\nscr=nnz(vm2);\r\nif scr\u003eBest,pass=false;end\r\ntoc\r\nassert(pass)\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":2,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2015-06-04T19:18:55.000Z","updated_at":"2016-02-22T02:59:36.000Z","published_at":"2016-02-22T02:59:36.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 Challenge is to find an integer vector A that creates the minimum set size for (A+A) U (A*A) for a given vector length,\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://oeis.org/A263996\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eOEIS A263996\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. The length, best value, Prime_max, and Value_max will be provided.\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\u003eThe\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://oeis.org/A263996\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eOEIS A263996\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e gives the minimum set sizes thru length 50. Length 7 has best value 26 with Prime_max 5 and Value_max 8. A=[1 2 3 4 5 6 8] yields [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 20 24 25 30 32 36 40 48 64]. The\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://68.173.157.131/Contest/SumsAndProducts1/FinalReport\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eAl Zimmermann Sums Contest Final Report\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e extends A263996 for lengths 40:40:1000 with complete vector solutions. The contest winner, Rokicki, noted his method used P-smooth sets, hill climbing, and random swaps. The contest was a little tougher with only L given.\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 Input/Output: L=9;Best=36;pmax=5;vmax=12; v = SP(L,Best,pmax,vmax); Yields v=[1 2 3 4 5 6 8 10 12]\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\u003eTheory/Hints: The V superset is found using\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://www.mathworks.com/matlabcentral/cody/problems/1298-p-smooth-numbers\\\"\u003e\u003cw:r\u003e\u003cw:t\u003epsmooth(pmax,vmax)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e . One observation is that for every v element the set v contains prod of all v element factor permutations. The time eater will be score evaluation. Residual evaluation suggested. A history screen, prior to score evaluation, of prior processed vectors is essential. A quick history pre-screen is vector sum. Replace testing of only values that are not factors of other numbers (eg 2,3 no replace) enables a reasonable time rolling score solution without random for the small test case values.\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":1886,"title":"Graceful Double Wheel Graph","description":"\u003chttp://en.wikipedia.org/wiki/Graceful_labeling Graceful Graphs\u003e are the topic of the \u003chttp://www.azspcs.net/Contest/GracefulGraphs Primes Graceful Graph Contest\u003e , 21 September 2013 thru 21 December 2013.\r\n\r\nThis Challenge is to create \u003chttp://www.comp.leeds.ac.uk/bms/Graceful/doublewheel.html Graceful Double Wheel Graphs\u003e for various N. A \u003chttp://www.cs.cornell.edu/~lebras/publications/LeBras2013Double.pdf General Algorithm by Le Bras of Cornell\u003e may be helpful, Section 3 for Even/Odd Rings. The Double Wheel Graph produces valid but not Maximum Edge Graceful Graph solutions based upon \u003chttp://oeis.org/A004137 OEIS A004137\u003e.\r\n\r\n*Example:*\r\nOne solution for N=11:\r\n\r\n\u003c\u003chttp://www.comp.leeds.ac.uk/bms/Graceful/Images/2C5+K1.gif\u003e\u003e\r\n\r\nwhich could be answered as [1 3 14 6 19;20 5 17 7 16].\r\n\r\nThere are 20 links and thus the absolute differences between connected nodes must produce values 1 thru 20.  The max node value is equal to the number of links and the min is zero, at the center of the Double Wheel.\r\n\r\n*Input:* N [Total number of Nodes (odd) and N\u003e10 ]\r\n\r\n*Output:* M [ Matrix size [(N-1)/2, 2] of node values where row-1 is outer and row-2 is inner ring ]","description_html":"\u003cp\u003e\u003ca href = \"http://en.wikipedia.org/wiki/Graceful_labeling\"\u003eGraceful Graphs\u003c/a\u003e are the topic of the \u003ca href = \"http://www.azspcs.net/Contest/GracefulGraphs\"\u003ePrimes Graceful Graph Contest\u003c/a\u003e , 21 September 2013 thru 21 December 2013.\u003c/p\u003e\u003cp\u003eThis Challenge is to create \u003ca href = \"http://www.comp.leeds.ac.uk/bms/Graceful/doublewheel.html\"\u003eGraceful Double Wheel Graphs\u003c/a\u003e for various N. A \u003ca href = \"http://www.cs.cornell.edu/~lebras/publications/LeBras2013Double.pdf\"\u003eGeneral Algorithm by Le Bras of Cornell\u003c/a\u003e may be helpful, Section 3 for Even/Odd Rings. The Double Wheel Graph produces valid but not Maximum Edge Graceful Graph solutions based upon \u003ca href = \"http://oeis.org/A004137\"\u003eOEIS A004137\u003c/a\u003e.\u003c/p\u003e\u003cp\u003e\u003cb\u003eExample:\u003c/b\u003e\r\nOne solution for N=11:\u003c/p\u003e\u003cimg src = \"http://www.comp.leeds.ac.uk/bms/Graceful/Images/2C5+K1.gif\"\u003e\u003cp\u003ewhich could be answered as [1 3 14 6 19;20 5 17 7 16].\u003c/p\u003e\u003cp\u003eThere are 20 links and thus the absolute differences between connected nodes must produce values 1 thru 20.  The max node value is equal to the number of links and the min is zero, at the center of the Double Wheel.\u003c/p\u003e\u003cp\u003e\u003cb\u003eInput:\u003c/b\u003e N [Total number of Nodes (odd) and N\u003e10 ]\u003c/p\u003e\u003cp\u003e\u003cb\u003eOutput:\u003c/b\u003e M [ Matrix size [(N-1)/2, 2] of node values where row-1 is outer and row-2 is inner ring ]\u003c/p\u003e","function_template":"function m=double_wheel(n)\r\n  m=[];\r\nend","test_suite":"%%\r\ntic\r\nn=11;\r\nm=double_wheel(n);\r\nms=circshift(m,[0 -1]);\r\ndm=m-ms;\r\nd=unique([m(:) abs(dm(:))]);\r\nassert(all(diff(d)==1))\r\nassert(length(d)==2*(n-1))\r\nassert(max(d)==2*(n-1))\r\ntoc\r\n%%\r\nn=13;\r\nm=double_wheel(n);\r\nms=circshift(m,[0 -1]);\r\ndm=m-ms;\r\nd=unique([m(:) abs(dm(:))]);\r\nassert(all(diff(d)==1))\r\nassert(length(d)==2*(n-1))\r\nassert(max(d)==2*(n-1))\r\ntoc\r\n%%\r\nn=17;\r\nm=double_wheel(n);\r\nms=circshift(m,[0 -1]);\r\ndm=m-ms;\r\nd=unique([m(:) abs(dm(:))]);\r\nassert(all(diff(d)==1))\r\nassert(length(d)==2*(n-1))\r\nassert(max(d)==2*(n-1))\r\ntoc\r\n%%\r\nn=19;\r\nm=double_wheel(n);\r\nms=circshift(m,[0 -1]);\r\ndm=m-ms;\r\nd=unique([m(:) abs(dm(:))]);\r\nassert(all(diff(d)==1))\r\nassert(length(d)==2*(n-1))\r\nassert(max(d)==2*(n-1))\r\ntoc\r\n%%\r\nn=71;\r\nm=double_wheel(n);\r\nms=circshift(m,[0 -1]);\r\ndm=m-ms;\r\nd=unique([m(:) abs(dm(:))]);\r\nassert(all(diff(d)==1))\r\nassert(length(d)==2*(n-1))\r\nassert(max(d)==2*(n-1))\r\ntoc\r\n%%\r\nn=97;\r\nm=double_wheel(n);\r\nms=circshift(m,[0 -1]);\r\ndm=m-ms;\r\nd=unique([m(:) abs(dm(:))]);\r\nassert(all(diff(d)==1))\r\nassert(length(d)==2*(n-1))\r\nassert(max(d)==2*(n-1))\r\ntoc\r\n\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":3,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2013-09-21T23:15:03.000Z","updated_at":"2013-09-22T01:16:42.000Z","published_at":"2013-09-22T01:16: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\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/media/image1.gif\"}],\"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:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Graceful_labeling\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eGraceful Graphs\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e are the topic of the\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://www.azspcs.net/Contest/GracefulGraphs\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ePrimes Graceful Graph Contest\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e , 21 September 2013 thru 21 December 2013.\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 Challenge is to create\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://www.comp.leeds.ac.uk/bms/Graceful/doublewheel.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eGraceful Double Wheel Graphs\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e for various N. 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://www.cs.cornell.edu/~lebras/publications/LeBras2013Double.pdf\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eGeneral Algorithm by Le Bras of Cornell\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e may be helpful, Section 3 for Even/Odd Rings. The Double Wheel Graph produces valid but not Maximum Edge Graceful Graph solutions based upon\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://oeis.org/A004137\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eOEIS A004137\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e One solution for N=11:\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:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\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\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ewhich could be answered as [1 3 14 6 19;20 5 17 7 16].\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\u003eThere are 20 links and thus the absolute differences between connected nodes must produce values 1 thru 20. The max node value is equal to the number of links and the min is zero, at the center of the Double Wheel.\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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eInput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e N [Total number of Nodes (odd) and N\u0026gt;10 ]\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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eOutput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e M [ Matrix size [(N-1)/2, 2] of node values where row-1 is outer and row-2 is inner ring ]\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\"},{\"partUri\":\"/media/image1.gif\",\"contentType\":\"image/gif\",\"content\":\"data:image/gif;base64,PCFET0NUWVBFIGh0bWw+CjwhLS1baWYgSUUgOF0+PGh0bWwgY2xhc3M9Im5vLWpzIGx0LWllOSIgbGFuZz0iZW4iPjwhW2VuZGlmXS0tPgo8IS0tW2lmIElFIDldPjxodG1sIGNsYXNzPSJuby1qcyBpZTkiIGxhbmc9ImVuIj48IVtlbmRpZl0tLT4KPCEtLVtpZiBndCBJRSA4XT48IS0tPgo8aHRtbCBjbGFzcz0ibm8tanMiIGxhbmc9ImVuIj48IS0tPCFbZW5kaWZdLS0+CiAgICA8aGVhZD4KICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT1lZGdlIj4KPCEtLSBSZW1vdmUgYXV0byBudW1iZXIgbGlua2luZy0tPgo8bWV0YSBuYW1lPSJmb3JtYXQtZGV0ZWN0aW9uIiBjb250ZW50PSJ0ZWxlcGhvbmU9bm8iPgo8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgo8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9Imh0dHA6Ly93d3cuamFkdS5jby51ayIgLz4KPG1ldGEgbmFtZT0icm9ib3RzIiBjb250ZW50PSJpbmRleCxmb2xsb3ciIC8+CjxtZXRhIG5hbWU9InJldmlzaXQtYWZ0ZXIiIGNvbnRlbnQ9IjIgZGF5cyIgLz4KPG1ldGEgbmFtZT0iYXV0aG9yIiBjb250ZW50PSJGYWN1bHR5IG9mIEVuZ2luZWVyaW5nIGFuZCBQaHlzaWNhbCBTY2llbmNlcyIgLz4KPG1ldGEgbmFtZT0icHVibGlzaGVyIiBjb250ZW50PSJVbml2ZXJzaXR5IG9mIExlZWRzIiAvPgo8bGluayByZWw9ImNhbm9uaWNhbCIgaHJlZj0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nIiAvPgoKCjxsaW5rIHJlbD0ic2NoZW1hLmRjdGVybXMiIGhyZWY9Imh0dHBzOi8vcHVybC5vcmcvZGMvdGVybXMvIiAvPgo8bWV0YSBuYW1lPSJkY3Rlcm1zLmNyZWF0b3IiIGNvbnRlbnQ9IlZpY3RvcmlhIFByaWNlIiBsYW5nPSJlbiIgLz4KPG1ldGEgbmFtZT0iZGN0ZXJtcy5jcmVhdGVkIiBjb250ZW50PSIyMDE5LTA1LTE3IiBsYW5nPSJlbiIgLz4KPG1ldGEgbmFtZT0iZGN0ZXJtcy5tb2RpZmllZCIgY29udGVudD0iMjAxOS0wNS0xNyIgbGFuZz0iZW4iIC8+CjxtZXRhIG5hbWU9ImRjdGVybXMuZGVzY3JpcHRpb24iIGNvbnRlbnQ9IlRoZSBTY2hvb2wgb2YgQ29tcHV0aW5nIGNvbmR1Y3RzIGN1dHRpbmctZWRnZSByZXNlYXJjaCBhY3Jvc3MgYSB2YXJpZXR5IG9mIGZpZWxkcy4gUmFua2VkIHRvcCAxMCBpbiB0aGUgVUsgKENvbXBsZXRlIFVuaXZlcnNpdHkgR3VpZGUgMjAyMSkuIiBsYW5nPSJlbiIgLz4KPG1ldGEgbmFtZT0iZGN0ZXJtcy5mb3JtYXQiIGNvbnRlbnQ9InRleHQvaHRtbCIgbGFuZz0iZW4iIC8+CjxtZXRhIG5hbWU9ImRjdGVybXMuaWRlbnRpZmllciIgY29udGVudD0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nIiBsYW5nPSJlbiIgLz4KPG1ldGEgbmFtZT0iZGN0ZXJtcy5sYW5ndWFnZSIgY29udGVudD0iZW4iIC8+CjxtZXRhIG5hbWU9ImRjdGVybXMucHVibGlzaGVyIiBjb250ZW50PSJVbml2ZXJzaXR5IG9mIExlZWRzIiBsYW5nPSJlbiIgLz4KPG1ldGEgbmFtZT0iZGN0ZXJtcy5yaWdodHMiIGNvbnRlbnQ9IkNvcHlyaWdodCBVbml2ZXJzaXR5IG9mIExlZWRzIiBsYW5nPSJlbiIgLz4KPG1ldGEgbmFtZT0iZGN0ZXJtcy5jb3ZlcmFnZSIgY29udGVudD0iVUsiIGxhbmc9ImVuIiAvPgo8bWV0YSBuYW1lPSJkY3Rlcm1zLnRpdGxlIiBjb250ZW50PSJTY2hvb2wgb2YgQ29tcHV0aW5nIiBsYW5nPSJlbiIgLz4KPG1ldGEgbmFtZT0iRGVzY3JpcHRpb24iIGNvbnRlbnQ9IlRoZSBTY2hvb2wgb2YgQ29tcHV0aW5nIGNvbmR1Y3RzIGN1dHRpbmctZWRnZSByZXNlYXJjaCBhY3Jvc3MgYSB2YXJpZXR5IG9mIGZpZWxkcy4gUmFua2VkIHRvcCAxMCBpbiB0aGUgVUsgKENvbXBsZXRlIFVuaXZlcnNpdHkgR3VpZGUgMjAyMSkuIiAvPgo8bWV0YSBuYW1lPSJ0d2l0dGVyOmNhcmQiIGNvbnRlbnQ9InN1bW1hcnkiIC8+CjxtZXRhIG5hbWU9InR3aXR0ZXI6dGl0bGUiIGNvbnRlbnQ9IlNjaG9vbCBvZiBDb21wdXRpbmciIC8+CjxtZXRhIG5hbWU9InR3aXR0ZXI6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9IlRoZSBTY2hvb2wgb2YgQ29tcHV0aW5nIGNvbmR1Y3RzIGN1dHRpbmctZWRnZSByZXNlYXJjaCBhY3Jvc3MgbWFueSBhcmVhcyBhbmQgb2ZmZXJzIGEgdmFyaWV0eSBvZiBzcGVjaWFsaXNlZCBjb3Vyc2VzLiIgLz4KPG1ldGEgbmFtZT0idHdpdHRlcjppbWFnZSIgY29udGVudD0iIiAvPgo8bWV0YSBuYW1lPSJ0d2l0dGVyOnVybCIgY29udGVudD0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nIiAvPgo8bWV0YSBwcm9wZXJ0eT0ib2c6dGl0bGUiIGNvbnRlbnQ9IlNjaG9vbCBvZiBDb21wdXRpbmciIC8+CjxtZXRhIHByb3BlcnR5PSJvZzp0eXBlIiBjb250ZW50PSJ3ZWJzaXRlIiAvPgo8bWV0YSBwcm9wZXJ0eT0ib2c6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9IlRoZSBTY2hvb2wgb2YgQ29tcHV0aW5nIGNvbmR1Y3RzIGN1dHRpbmctZWRnZSByZXNlYXJjaCBhY3Jvc3MgbWFueSBhcmVhcyBhbmQgb2ZmZXJzIGEgdmFyaWV0eSBvZiBzcGVjaWFsaXNlZCBjb3Vyc2VzLiIgLz4KPG1ldGEgcHJvcGVydHk9Im9nOnVybCIgY29udGVudD0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nIiAvPgo8bWV0YSBwcm9wZXJ0eT0ib2c6aW1hZ2UiIGNvbnRlbnQ9IiIgLz4KCgo8IS0tIEdvb2dsZSBUYWcgTWFuYWdlciAtLT4KPHNjcmlwdD4oZnVuY3Rpb24odyxkLHMsbCxpKXt3W2xdPXdbbF18fFtdO3dbbF0ucHVzaCh7J2d0bS5zdGFydCc6Cm5ldyBEYXRlKCkuZ2V0VGltZSgpLGV2ZW50OidndG0uanMnfSk7dmFyIGY9ZC5nZXRFbGVtZW50c0J5VGFnTmFtZShzKVswXSwKaj1kLmNyZWF0ZUVsZW1lbnQocyksZGw9bCE9J2RhdGFMYXllcic/JyZsPScrbDonJztqLmFzeW5jPXRydWU7ai5zcmM9CidodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbS9ndG0uanM/aWQ9JytpK2RsO2YucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoaixmKTsKfSkod2luZG93LGRvY3VtZW50LCdzY3JpcHQnLCdkYXRhTGF5ZXInLCdHVE0tV0pQWk0yVCcpOzwvc2NyaXB0Pgo8IS0tIEVuZCBHb29nbGUgVGFnIE1hbmFnZXIgLS0+Cgo8dGl0bGU+ICAgIFNjaG9vbCBvZiBDb21wdXRpbmcgfCAgVW5pdmVyc2l0eSBvZiBMZWVkcwo8L3RpdGxlPgoKPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3VzZS50eXBla2l0Lm5ldC95b3M2dW93LmNzcyI+Cgo8IS0tIEluY2x1ZGUgSlMgLS0+CjxzY3JpcHQgc3JjPSJodHRwczovL3Byb2R1Y3Rpb24yLmxlZWRzLmFjLnVrL2phZHVjZG4vdGhlbWVzL2RlZmF1bHQvYXNzZXRzL2Rpc3QvbW9kZXJuaXpyLWN1c3RvbS5qcz92ZXJzaW9uPWZiMmE5ZTJjMTkxMGFhN2Y4MWJlZTIzZjBiNGE3ODBhIj48L3NjcmlwdD4KCjwhLS0gSW5jbHVkZSBGYXZpY29uIC0tPgo8bGluayByZWw9Imljb24iIHR5cGU9ImltYWdlL3BuZyIgaHJlZj0iaHR0cHM6Ly9wcm9kdWN0aW9uMi5sZWVkcy5hYy51ay9qYWR1Y2RuL3RoZW1lcy9kZWZhdWx0L2Fzc2V0cy9kaXN0L2ltZy9mYXZpY29uLmljbyIgLz4KCjxsaW5rIGhyZWY9Imh0dHBzOi8vcHJvZHVjdGlvbjIubGVlZHMuYWMudWsvamFkdWNkbi90aGVtZXMvZGVmYXVsdC9hc3NldHMvZGlzdC90aGVtZS1kZWZhdWx0L2Jvb3RzdHJhcC5taW4uY3NzP3ZlcnNpb249ZmIyYTllMmMxOTEwYWE3ZjgxYmVlMjNmMGI0YTc4MGEiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0ndGV4dC9jc3MnIG1lZGlhPSJzY3JlZW4iPgo8bGluayBocmVmPSJodHRwczovL3Byb2R1Y3Rpb24yLmxlZWRzLmFjLnVrL2phZHVjZG4vdGhlbWVzL2RlZmF1bHQvYXNzZXRzL2Rpc3QvdGhlbWUtZGVmYXVsdC90b29sa2l0Lm1pbi5jc3M/dmVyc2lvbj1mYjJhOWUyYzE5MTBhYTdmODFiZWUyM2YwYjRhNzgwYSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSd0ZXh0L2NzcycgbWVkaWE9InNjcmVlbiI+CjxsaW5rIGhyZWY9Imh0dHBzOi8vcHJvZHVjdGlvbjIubGVlZHMuYWMudWsvamFkdWNkbi90aGVtZXMvZGVmYXVsdC9hc3NldHMvZGlzdC90aGVtZS1kZWZhdWx0L2Nvb2tpZXMubWluLmNzcz92ZXJzaW9uPWZiMmE5ZTJjMTkxMGFhN2Y4MWJlZTIzZjBiNGE3ODBhIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9J3RleHQvY3NzJyBtZWRpYT0ic2NyZWVuIj4KPGxpbmsgaHJlZj0iaHR0cHM6Ly9wcm9kdWN0aW9uMi5sZWVkcy5hYy51ay9qYWR1Y2RuL3RoZW1lcy9kZWZhdWx0L2Fzc2V0cy9kaXN0L3RoZW1lLWRlZmF1bHQvcHJpbnQubWluLmNzcz92ZXJzaW9uPWZiMmE5ZTJjMTkxMGFhN2Y4MWJlZTIzZjBiNGE3ODBhJyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0icHJpbnQiPgogICAgICAgIDwvaGVhZD4KICAgIDxib2R5IGNsYXNzPSJlcHMiPgo8IS0tIEdvb2dsZSBUYWcgTWFuYWdlciAobm9zY3JpcHQpIC0tPgo8bm9zY3JpcHQ+PGlmcmFtZSBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL25zLmh0bWw/aWQ9R1RNLVdKUFpNMlQiCmhlaWdodD0iMCIgd2lkdGg9IjAiIHN0eWxlPSJkaXNwbGF5Om5vbmU7dmlzaWJpbGl0eTpoaWRkZW4iPjwvaWZyYW1lPjwvbm9zY3JpcHQ+CjwhLS0gRW5kIEdvb2dsZSBUYWcgTWFuYWdlciAobm9zY3JpcHQpIC0tPgogICAgICAgIDxkaXYgaWQ9InNpdGUtY29udGFpbmVyIiBjbGFzcz0ic2l0ZS1jb250YWluZXItbWQiPgogICAgICAgICAgICA8YSBpZD0ic2tpcC1tYWluIiBocmVmPSIjbWFpbiIgcmVsPSJub2ZvbGxvdyI+U2tpcCB0byBtYWluIGNvbnRlbnQ8L2E+CjxkaXYgY2xhc3M9InF1aWNrbGlua3Mtb3V0ZXIiPgoKICAgIDxkaXYgY2xhc3M9Im1hc3RoZWFkLWxpbmtzIj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJtYXN0aGVhZC1saW5rIG1hc3RoZWFkLWxpbmstcXVpY2tsaW5rcyBqcy1xdWlja2xpbmtzLXRvZ2dsZSIgZGF0YS10b2dnbGU9ImNvbGxhcHNlIiBkYXRhLXRhcmdldD0iI3F1aWNrbGlua3MiIGFyaWEtbGFiZWw9Ik9wZW4gVW5pdmVyc2l0eSBxdWlja2xpbmtzIG1lbnUiPlVuaXZlcnNpdHkgbGlua3M8L2J1dHRvbj4KICAgIDwvZGl2PiAgIAoKICAgIDxuYXYgaWQ9InF1aWNrbGlua3MiIGNsYXNzPSJxdWlja2xpbmtzIGNvbGxhcHNlIiByb2xlPSJuYXZpZ2F0aW9uIj4gICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyLXJlbGF0aXZlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icXVpY2tsaW5rcy1pbm5lciI+ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRrLXJvdyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNtLTYgY29sLW1kLTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0icXVpY2tsaW5rcy1saXN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9InRpdGxlIj5Gb3Igc3RhZmY8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL3d3dy5sZWVkcy5hYy51ay9mb3JzdGFmZi9ob21lcGFnZS8zNzUvc2VydmljZXMiPkEtWiBTZXJ2aWNlczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL3d3dy5sZWVkcy5hYy51ay9mb3JzdGFmZi8iPkZvciBTdGFmZjwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL3Nlcy5sZWVkcy5hYy51ay8iPlN0dWRlbnQgRWR1Y2F0aW9uIFNlcnZpY2U8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0icXVpY2tsaW5rcy1saXN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9InRpdGxlIj5Gb3Igc3R1ZGVudHM8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL3N0dWRlbnRzLmxlZWRzLmFjLnVrLyI+Rm9yIFN0dWRlbnRzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vbWluZXJ2YS5sZWVkcy5hYy51ay8iPk1pbmVydmE8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9pdC5sZWVkcy5hYy51ay9pdD9pZD1rYl9hcnRpY2xlJmFtcDtzeXNwYXJtX2FydGljbGU9S0IwMDExOTQ4Ij5Nb2JpbGUgYXBwczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PGRpdiBjbGFzcz0iY29sLXNtLTYgY29sLW1kLTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9InF1aWNrbGlua3MtbGlzdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0aXRsZSI+RmFjdWx0aWVzPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9haGMubGVlZHMuYWMudWsvIj5GYWN1bHR5IG9mIEFydHMsIEh1bWFuaXRpZXMgYW5kIEN1bHR1cmVzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vYmlvbG9naWNhbHNjaWVuY2VzLmxlZWRzLmFjLnVrLyI+RmFjdWx0eSBvZiBCaW9sb2dpY2FsIFNjaWVuY2VzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vYnVzaW5lc3MubGVlZHMuYWMudWsvIj5GYWN1bHR5IG9mIEJ1c2luZXNzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZXBzLmxlZWRzLmFjLnVrIj5GYWN1bHR5IG9mIEVuZ2luZWVyaW5nIGFuZCBQaHlzaWNhbCBTY2llbmNlczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2Vudmlyb25tZW50LmxlZWRzLmFjLnVrIj5GYWN1bHR5IG9mIEVudmlyb25tZW50PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vbWVkaWNpbmVoZWFsdGgubGVlZHMuYWMudWsvIj5GYWN1bHR5IG9mIE1lZGljaW5lIGFuZCBIZWFsdGg8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9lc3NsLmxlZWRzLmFjLnVrLyI+RmFjdWx0eSBvZiBTb2NpYWwgU2NpZW5jZXM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cubGxjLmxlZWRzLmFjLnVrLyI+TGlmZWxvbmcgTGVhcm5pbmcgQ2VudHJlPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmxlZWRzLmFjLnVrL2luZm8vMTMwNTY3L2xhbmd1YWdlX2NlbnRyZSI+TGFuZ3VhZ2UgQ2VudHJlPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48ZGl2IGNsYXNzPSJjb2wtc20tNiBjb2wtbWQtMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0icXVpY2tsaW5rcy1saXN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9InRpdGxlIj5PdGhlcjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubGVlZHMuYWMudWsvc3RhZmZheiI+QS1aIFN0YWZmPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vYWx1bW5pLmxlZWRzLmFjLnVrLyI+QWx1bW5pPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubGVlZHMuYWMudWsvY2FtcHVzbWFwIj5DYW1wdXMgbWFwPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubGVlZHMuYWMudWsvY29udGFjdCI+Q29udGFjdHM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9pdC5sZWVkcy5hYy51ay9pdCI+SVQ8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5sZWVkcy5hYy51ay9qb2JzIj5Kb2JzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3Lmx1dS5vcmcudWsvIj5MZWVkcyBVbml2ZXJzaXR5IFVuaW9uPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vbGlicmFyeS5sZWVkcy5hYy51ay8iPkxpYnJhcnk8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjxkaXYgY2xhc3M9ImNvbC1zbS02IGNvbC1tZC0zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJxdWlja2xpbmtzLWxpc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0idGl0bGUiPkZvbGxvdyB1czwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS91bml2ZXJzaXR5b2ZsZWVkcyI+RmFjZWJvb2s8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9pbnN0YWdyYW0uY29tL3VuaXZlcnNpdHlvZmxlZWRzLyI+SW5zdGFncmFtPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9zY2hvb2wvdW5pdmVyc2l0eS1vZi1sZWVkcy8iPkxpbmtlZEluPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS91bml2ZXJzaXR5LW9mLWxlZWRzIj5NZWRpdW08L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iIGh0dHBzOi8vdGhlY29udmVyc2F0aW9uLmNvbS9pbnN0aXR1dGlvbnMvdW5pdmVyc2l0eS1vZi1sZWVkcy0xMTIyIj5UaGUgQ29udmVyc2F0aW9uPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vdW5pdmVyc2l0eWxlZWRzIj5Ud2l0dGVyPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LndlaWJvLmNvbS9sZWVkc3VuaXZlcnNpdHl1ayI+V2VpYm88L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vdW5pdmVyc2l0eW9mbGVlZHMiPllvdVR1YmU8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjxkaXYgY2xhc3M9ImNvbC1zbS02IGNvbC1tZC0zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InF1aWNrbGlua3MtY2xvc2UiPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iaWNvbi1mb250IGJ0bi1pY29uIGpzLXF1aWNrbGlua3MtY2xvc2UiIGRhdGEtdG9nZ2xlPSJjb2xsYXBzZSIgZGF0YS10YXJnZXQ9IiNxdWlja2xpbmtzIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGstaWNvbi1jbG9zZSIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tZm9udC10ZXh0Ij5DbG9zZSBxdWlja2xpbmtzPC9zcGFuPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9uYXY+Cgo8L2Rpdj4KPCEtLSAkTUFTVEhFQUQtLT4KPGhlYWRlciBpZD0ibWFzdGhlYWQiIGNsYXNzPSJtYXN0aGVhZCIgcm9sZT0iYmFubmVyIj4KCiAgICA8ZGl2IGNsYXNzPSJuYXZpY29uIj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4taWNvbiIgZGF0YS1zdGF0ZT0iYm9keS1zdGF0ZSIgZGF0YS1jbGFzcz0ic3RhdGUtbmF2aWNvbi1hY3RpdmUiPk1lbnU8L2J1dHRvbj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImxvZ28iPgogICAgICAgICAgICAgICAgPGEgY2xhc3M9ImxvZ28tZnVsbCIgdGl0bGU9IlVuaXZlcnNpdHkgb2YgTGVlZHMgaG9tZXBhZ2UiIGhyZWY9Ii8vd3d3LmxlZWRzLmFjLnVrLyI+CiAgICAgICAgICAgIDxpbWcgY2xhc3M9ImpzLXBuZy1zdmctdXJpIiBkYXRhLXVyaT0iaHR0cHM6Ly9wcm9kdWN0aW9uMi5sZWVkcy5hYy51ay9qYWR1Y2RuL3RoZW1lcy9kZWZhdWx0L2Fzc2V0cy9kaXN0L2ltZy91b2wtbG9nby5zdmciIHNyYz0iaHR0cHM6Ly9wcm9kdWN0aW9uMi5sZWVkcy5hYy51ay9qYWR1Y2RuL3RoZW1lcy9kZWZhdWx0L2Fzc2V0cy9kaXN0L2ltZy91b2wtbG9nby5wbmciIGFsdD0iVW5pdmVyc2l0eSBvZiBMZWVkcyBsb2dvIj4KICAgICAgICA8L2E+CgogICAgICAgIDxhIGNsYXNzPSJsb2dvLW1hcmsiIHRpdGxlPSJVbml2ZXJzaXR5IG9mIExlZWRzIGhvbWVwYWdlIiBocmVmPSIvL3d3dy5sZWVkcy5hYy51ay8iPgogICAgICAgICAgICA8aW1nIGNsYXNzPSJqcy1wbmctc3ZnLXVyaSIgZGF0YS11cmk9Imh0dHBzOi8vcHJvZHVjdGlvbjIubGVlZHMuYWMudWsvamFkdWNkbi90aGVtZXMvZGVmYXVsdC9hc3NldHMvZGlzdC9pbWcvdW9sLWxvZ28tbWFyay5zdmciIHNyYz0iaHR0cHM6Ly9wcm9kdWN0aW9uMi5sZWVkcy5hYy51ay9qYWR1Y2RuL3RoZW1lcy9kZWZhdWx0L2Fzc2V0cy9kaXN0L2ltZy91b2wtbG9nby1tYXJrLnBuZyIgYWx0PSJVbml2ZXJzaXR5IG9mIExlZWRzIGxvZ28iPgogICAgICAgIDwvYT4KICAgIDwvZGl2PgoKPC9oZWFkZXI+CjwhLS0gLyRNQVNUSEVBRC0tPgo8IS0tICRTSVRFU0VBUkNILS0+CjxkaXYgaWQ9InNpdGVzZWFyY2giIGNsYXNzPSJzaXRlLXNlYXJjaCBjb2xsYXBzZSI+CiAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyLXBkLXh4cyI+CiAgICAgICAgPGZvcm0gY2xhc3M9InNpdGUtc2VhcmNoLWlubmVyIiBhY3Rpb249Ii8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvc2VhcmNoLXJlc3VsdHMucGhwIiByb2xlPSJzZWFyY2giPgogICAgICAgICAgICA8aW5wdXQgaWQ9ImNpZCIgbmFtZT0iY2lkIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSIxOTAiPgogICAgICAgICAgICA8bGFiZWwgY2xhc3M9InNyLW9ubHkiIGZvcj0ic2VhcmNoSW5wdXQiPlNlYXJjaDwvbGFiZWw+CiAgICAgICAgICAgIDxpbnB1dCBpZD0ic2VhcmNoSW5wdXQiIGNsYXNzPSJzaXRlLXNlYXJjaC1pbnB1dCIgdHlwZT0ic2VhcmNoIiBuYW1lPSJxdWVyeSIgcGxhY2Vob2xkZXI9IlNlYXJjaCIgYXV0b2NvbXBsZXRlPSJvZmYiPgoKICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJzci1vbmx5IiBmb3I9InNlYXJjaE9wdGlvbiI+RGVzdGluYXRpb248L2xhYmVsPgoKICAgICAgICAgICAgPHNlbGVjdCBpZD0ic2VhcmNoT3B0aW9uIiBjbGFzcz0ic2l0ZS1zZWFyY2gtc2VsZWN0IGpzLWFjdGlvbi10b2dnbGUiIG5hbWU9InNlYXJjaE9wdGlvbiI+CgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0ic2VhcmNoU2l0ZSIgc2VsZWN0ZWQgZGF0YS1hY3Rpb249Ii8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvc2VhcmNoLXJlc3VsdHMucGhwIj5GYWN1bHR5IG9mIEVuZ2luZWVyaW5nIGFuZCBQaHlzaWNhbCBTY2llbmNlcyBzaXRlPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJzZWFyY2hBbGwiIGRhdGEtYWN0aW9uPSIvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL3NlYXJjaC1yZXN1bHRzLnBocCI+QWxsIGxlZWRzLmFjLnVrIHNpdGVzPC9vcHRpb24+CgogICAgICAgICAgICAgICAgPCEtLTxvcHRncm91cCBsYWJlbD0iVG9vbGtpdCBjb3Vyc2VzIj4KICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJVRyIgZGF0YS1hY3Rpb249Ii8vY291cnNlcy5sZWVkcy5hYy51ay9jb3Vyc2Utc2VhcmNoIj5VbmRlcmdyYWR1YXRlPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUEdUIiBkYXRhLWFjdGlvbj0iLy9jb3Vyc2VzLmxlZWRzLmFjLnVrL2NvdXJzZS1zZWFyY2giPlBvc3RncmFkdWF0ZSB0YXVnaHQ8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQR1IiIGRhdGEtYWN0aW9uPSIvL2NvdXJzZXMubGVlZHMuYWMudWsvY291cnNlLXNlYXJjaCI+UG9zdGdyYWR1YXRlIHJlc2VhcmNoPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8L29wdGdyb3VwPi0tPgoKICAgICAgICAgICAgPC9zZWxlY3Q+CgogICAgICAgICAgICA8aW5wdXQgY2xhc3M9InNpdGUtc2VhcmNoLXN1Ym1pdCBidG4gYnRuLXByaW1hcnkiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCI+CiAgICAgICAgPC9mb3JtPgogICAgPC9kaXY+CjwvZGl2Pgo8IS0tIC8kU0lURVNFQVJDSC0tPgo8ZGl2IGlkPSJxdWlja3NlYXJjaCIgY2xhc3M9IndyYXBwZXItbGcgd3JhcHBlci1wZCB3cmFwcGVyLXJlbGF0aXZlIj4KICAgIDxkaXYgY2xhc3M9InF1aWNrLXNlYXJjaCI+CgogICAgPC9kaXY+CjwvZGl2PjwhLS0gJExPQ0FMSEVBREVSLS0+CjxkaXYgY2xhc3M9ImxvY2FsLWhlYWRlciI+CiAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyLXBkLXhzIj4KICAgICAgICA8ZGl2IGNsYXNzPSJsb2NhbC1oZWFkZXItaW5uZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2NhbC1oZWFkZXItdGl0bGUiIHJvbGU9Im5hdmlnYXRpb24iIGFyaWEtbGFiZWw9IkhvbWUgcGFnZSBsaW5rIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nIj5TY2hvb2wgb2YgQ29tcHV0aW5nPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvY2FsLWhlYWRlci1zZWFyY2giPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iaWNvbi1mb250IHNtLXRvZ2dsZS1zZWFyY2ggYnRuLWljb24ganMtc2l0ZS1zZWFyY2gtdG9nZ2xlIiBkYXRhLXRvZ2dsZT0iY29sbGFwc2UiIGRhdGEtdGFyZ2V0PSIjc2l0ZXNlYXJjaCIgcm9sZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJPcGVuIHNpdGUgc2VhcmNoIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2l0ZS1zZWFyY2gtYnRuIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uLWZvbnQtdGV4dCI+U2VhcmNoPC9zcGFuPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2Pgo8IS0tIC8kTE9DQUxIRUFERVItLT4KPG5hdiBpZD0idGstbmF2LXByaW9yaXR5IiBjbGFzcz0idGstbmF2IHRrLW5hdi1wcmlvcml0eSIgcm9sZT0ibmF2aWdhdGlvbiI+CiAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyLXJlbGF0aXZlIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0ay1uYXYtaGVhZGVyIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuLWljb24gYnRuLW1lbnUiIGRhdGEtc3RhdGU9ImJvZHktc3RhdGUiIGRhdGEtY2xhc3M9InN0YXRlLW5hdmljb24tYWN0aXZlIj5DbG9zZTwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRrLW5hdi1pbm5lciI+CiAgICAgICAgICA8dWwgY2xhc3M9InRrLW5hdi1saXN0IHRrLW5hdi1saXN0LXByaW1hcnkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nIj5Ib21lPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9InRrLW5hdi1kcm9wZG93biB0ay1uYXYtZHJvcGRvd24tLWl0ZW1zLTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI2Ryb3BfMDEiIHJlbD0ibm9mb2xsb3ciPlN0dWR5PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgaWQ9ImRyb3BfMDEiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nLXVuZGVyZ3JhZHVhdGUiPlVuZGVyZ3JhZHVhdGU8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmctbWFzdGVycyI+TWFzdGVyczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8vZXBzLmxlZWRzLmFjLnVrL2NvbXB1dGluZy1yZXNlYXJjaC1kZWdyZWVzIj5SZXNlYXJjaCBkZWdyZWVzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nLXJlc2VhcmNoLWlubm92YXRpb24iPlJlc2VhcmNoIGFuZCBJbm5vdmF0aW9uPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL3N0YWZmbGlzdCI+UGVvcGxlPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL2RvYy9jb250YWN0LXVzLTQiPkNvbnRhY3QgdXM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9uYXY+CiAgICAgICAgICAgIDxtYWluIGlkPSJtYWluIiBjbGFzcz0ibWFpbiIgcm9sZT0ibWFpbiI+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IAogICAgPGgxIGNsYXNzPSJoaWRlLWFjY2Vzc2libGUiPlNjaG9vbCBvZiBDb21wdXRpbmc8L2gxPgoKICAgICAgICAgICAgPCEtLSAkV0lER0VUIDMwMDEgLSBUSyBiYW5uZXIgLS0+CjxkaXYgY2xhc3M9IndpZGdldC0zMDAxIHdpZGdldC1iYW5uZXIgIj4KCiAgICAgICAgPGRpdiBjbGFzcz0iIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3dpcGVyIHN3aXBlci0xIHN3aXBlci1mdWxsLXdpZHRoIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNsaWRlIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbGlkZS1pbm5lciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbGlkZS1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbGlkZS1jb250ZW50LWlubmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InNsaWRlLWhlYWRpbmciIGRhdGEtY2hhci1saW1pdD0iNzUiPkNsZWFyaW5nIDIwMjA8L2gyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJzbGlkZS1sZWFkIiBkYXRhLWNoYXItbGltaXQ9IjIwMCI+Sm9pbiBhIHdvcmxkIHRvcCAxMDAgdW5pdmVyc2l0eTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ic2xpZGUtY3RhIiBocmVmPSJodHRwOi8vd3d3LmxlZWRzLmFjLnVrL2luZm8vMTMwNTc2L2NsZWFyaW5nX2FuZF9jb25maXJtYXRpb24/dXRtX3NvdXJjZT13ZWImdXRtX21lZGl1bT1iYW5uZXImdXRtX2NhbXBhaWduPUNsZWFyaW5nXzIwMjAmdXRtX3Rlcm09RVBTJnV0bV9jb250ZW50PUZpbmQlMjBvdXQlMjBtb3JlIj5TZWFyY2ggb3VyIGNsZWFyaW5nIGxpc3RpbmdzPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbGlkZS1pbWciIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOnVybCgnLy9lcHMubGVlZHMuYWMudWsvc2l0ZS9jdXN0b21fc2NyaXB0cy9pbWFnZS5waHA/dz03OTgmYW1wO2g9Mzk5JmFtcDtmaWxlbmFtZT1DbGVhcmluZ18yMDIwLnBuZyZhbXA7anBlZ3F1YWxpdHk9ODUnKTsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Ii8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9Nzk4JmFtcDtoPTM5OSZhbXA7ZmlsZW5hbWU9Q2xlYXJpbmdfMjAyMC5wbmcmYW1wO2pwZWdxdWFsaXR5PTg1IiBhbHQ9IkNsZWFyaW5nIDIwMjAiPiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ibGluay13cmFwIiBocmVmPSJodHRwOi8vd3d3LmxlZWRzLmFjLnVrL2luZm8vMTMwNTc2L2NsZWFyaW5nX2FuZF9jb25maXJtYXRpb24/dXRtX3NvdXJjZT13ZWImdXRtX21lZGl1bT1iYW5uZXImdXRtX2NhbXBhaWduPUNsZWFyaW5nXzIwMjAmdXRtX3Rlcm09RVBTJnV0bV9jb250ZW50PUZpbmQlMjBvdXQlMjBtb3JlIj5TZWFyY2ggb3VyIGNsZWFyaW5nIGxpc3RpbmdzPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbGlkZSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2xpZGUtaW5uZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2xpZGUtY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2xpZGUtY29udGVudC1pbm5lciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJzbGlkZS1oZWFkaW5nIiBkYXRhLWNoYXItbGltaXQ9Ijc1Ij5BZHZhbmNlZCBDb21wdXRlciBTY2llbmNlIE1TYzwvaDI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InNsaWRlLWxlYWQiIGRhdGEtY2hhci1saW1pdD0iMjAwIj5TdGFydCB5b3VyIGNvdXJzZSBpbiBTZXB0ZW1iZXIgb3IgSmFudWFyeTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ic2xpZGUtY3RhIiBocmVmPSJodHRwczovL2Vwcy5sZWVkcy5hYy51ay9jb3Vyc2VzL1BHL0Y3NTMvYWR2YW5jZWQtY29tcHV0ZXItc2NpZW5jZSI+QXBwbHkgbm93PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbGlkZS1pbWciIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOnVybCgnLy9lcHMubGVlZHMuYWMudWsvc2l0ZS9jdXN0b21fc2NyaXB0cy9pbWFnZS5waHA/dz0xMjAwJmFtcDtoPTYwMCZhbXA7ZmlsZW5hbWU9MTIwMHg2MDBfY29tcF9scl8yLmpwZyZhbXA7anBlZ3F1YWxpdHk9ODUnKTsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Ii8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9MTIwMCZhbXA7aD02MDAmYW1wO2ZpbGVuYW1lPTEyMDB4NjAwX2NvbXBfbHJfMi5qcGcmYW1wO2pwZWdxdWFsaXR5PTg1IiBhbHQ9IlNjaG9vbCBvZiBDb21wdXRpbmciPiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ibGluay13cmFwIiBocmVmPSJodHRwczovL2Vwcy5sZWVkcy5hYy51ay9jb3Vyc2VzL1BHL0Y3NTMvYWR2YW5jZWQtY29tcHV0ZXItc2NpZW5jZSI+QXBwbHkgbm93PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbGlkZSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2xpZGUtaW5uZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2xpZGUtY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2xpZGUtY29udGVudC1pbm5lciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJzbGlkZS1oZWFkaW5nIiBkYXRhLWNoYXItbGltaXQ9Ijc1Ij5DZW50cmVzIGZvciBEb2N0b3JhbCBUcmFpbmluZzwvaDI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InNsaWRlLWxlYWQiIGRhdGEtY2hhci1saW1pdD0iMjAwIj5UcmFpbmluZyB0b21vcnJvdydzIGxlYWRpbmcgcmVzZWFyY2hlcnMgdG8gYWRkcmVzcyBwcm9ibGVtcyBmb3IgdGhlIGJlbmVmaXRzIG9mIHNvY2lldHk8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9InNsaWRlLWN0YSIgaHJlZj0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nLXJlc2VhcmNoLWRlZ3JlZXMvZG9jL2NlbnRyZXMtZG9jdG9yYWwtdHJhaW5pbmciPk1vcmU8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNsaWRlLWltZyIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6dXJsKCcvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL2ltYWdlLnBocD93PTE0MDAmYW1wO2g9NzAwJmFtcDtmaWxlbmFtZT1DRFRoZXJvLmpwZyZhbXA7anBlZ3F1YWxpdHk9ODUnKTsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Ii8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9MTQwMCZhbXA7aD03MDAmYW1wO2ZpbGVuYW1lPUNEVGhlcm8uanBnJmFtcDtqcGVncXVhbGl0eT04NSIgYWx0PSJTdHVkZW50IHdvcmtpbmcgYXQgY29tcHV0ZXIiPiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ibGluay13cmFwIiBocmVmPSJodHRwczovL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmctcmVzZWFyY2gtZGVncmVlcy9kb2MvY2VudHJlcy1kb2N0b3JhbC10cmFpbmluZyI+TW9yZTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9InN3aXBlci1uYXYgc3dpcGVyLW5hdi0zIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJhY3RpdmUiPjxhIGhyZWY9IiNzbGlkZTAiIHJlbD0ibm9mb2xsb3ciIGRhdGEtc2xpZGU9JzAnPkNsZWFyaW5nIDIwMjA8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpID48YSBocmVmPSIjc2xpZGUxIiByZWw9Im5vZm9sbG93IiBkYXRhLXNsaWRlPScxJz5BZHZhbmNlZCBDb21wdXRlciBTY2llbmNlIE1TYzwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGkgPjxhIGhyZWY9IiNzbGlkZTIiIHJlbD0ibm9mb2xsb3ciIGRhdGEtc2xpZGU9JzInPkZ1bGx5IGZ1bmRlZCBwaGRzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgo8YSBjbGFzcz0ianMtc3dpcGVyLXNjcm9sbCBzd2lwZXItbW9yZSIgaHJlZj0iI2Rvd24iIHJlbD0ibm9mb2xsb3ciPlNjcm9sbCBkb3duPC9hPgo8L2Rpdj4KCgo8L2Rpdj4KPCEtLSAvJFdJREdFVCAzMDAxIC0gVEsgYmFubmVyIC0tPgoKICAgICAgICAgICAgPCEtLSAkV0lER0VUIDMwMDQgVEsgY29udGVudCAtLT4NCjxkaXYgY2xhc3M9IndpZGdldC0zMDA0Ij4NCiAgICANCiAgICAgICAgPGRpdiBjbGFzcz0ic2tpbi1yb3ctd2hpdGUgY29udGFpbmVyLXJvdyI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyLW1kIHdyYXBwZXItcGQtbWQiPiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0iaDItbGcgaGVhZGluZy11bmRlcmxpbmUiPkNvcm9uYXZpcnVzIChjb3ZpZC0xOSk8L2gyPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImphZHUtY21zIj48cD5XZSBrbm93IHRoYXQgbWFueSBwZW9wbGUgYXJlIHVuZGVyc3RhbmRhYmx5IGFueGlvdXMgYWJvdXQgdGhlIGN1cnJlbnQgY29yb25hdmlydXMgb3V0YnJlYWsuIElmIHlvdSYjMzk7cmUgYW48cz4gPC9zPmFwcGxpY2FudCBvciBvZmZlciBob2xkZXIgZm9yIGEgdGF1Z2h0IGNvdXJzZSBwbGVhc2UgdmlzaXQgb3VyJm5ic3A7PGEgaHJlZj0iaHR0cHM6Ly93d3cubGVlZHMuYWMudWsvaW5mby8xMTYwMDAvdW5kZXJncmFkdWF0ZS84MDIvY29yb25hdmlydXMtaW5mb3JtYXRpb25fZm9yX2FwcGxpY2FudHNfYW5kX29mZmVyX2hvbGRlcnMiIHRhcmdldD0iX2JsYW5rIj5jb3JvbmF2aXJ1cyBGQVFzPC9hPi4mbmJzcDtJZiB5b3UmIzM5O3JlIGEgUGhEIHJlc2VhcmNoZXIgYXBwbGljYW50IG9yIG9mZmVyIGhvbGRlciB2aXNpdCB0aGlzIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmxlZWRzLmFjLnVrL2luZm8vMTAyMDAwL3Jlc2VhcmNoX2RlZ3JlZXMvODA0L2Nvcm9uYXZpcnVzLWluZm9ybWF0aW9uX2Zvcl9wZ3JfYXBwbGljYW50c19hbmRfb2ZmZXJfaG9sZGVycyI+d2VicGFnZSBmb3IgZnVydGhlciBpbmZvcm1hdGlvbjwvYT4uPC9wPgoKPHA+SWYgeW91JnJzcXVvO3JlIGFuIGV4aXN0aW5nIHN0dWRlbnQgb3IgbWVtYmVyIG9mIHN0YWZmLCBwbGVhc2UgdmlzaXQgb3VyJm5ic3A7PGEgaHJlZj0iaHR0cHM6Ly9jb3JvbmF2aXJ1cy5sZWVkcy5hYy51ay8iIHRhcmdldD0iX2JsYW5rIj5jb3JvbmF2aXJ1cyB3ZWJzaXRlPC9hPiZuYnNwO2ZvciB0aGUgbGF0ZXN0IHVwZGF0ZXMgYW5kIGluZm9ybWF0aW9uLiZuYnNwOzwvcD4KPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2Rpdj4gDQo8L2Rpdj4gICAgICAgICAgICANCjwhLS0gJFdJREdFVCAzMDA0IFRLIGNvbnRlbnQgLS0+DQoNCg0KDQoKICAgICAgICAgICAgCjwhLS0gJFdJREdFVCAzMDEzIFRLIGZhY3QgYW5kIGZpZ3VyZXMgLS0+CjxkaXYgY2xhc3M9IndpZGdldC0zMDEzIj4KICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lci1yb3cgIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyLW1kIHdyYXBwZXItcGQtbWQiPgoKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXF1YWxpemUiIHJvbGU9Imxpc3QiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGstcm93IGVxdWFsaXplIj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC00IGRpdmlkZXItcmlnaHQtbWQgZXF1YWxpemUtaW5uZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZhY3QiIHJvbGU9Imxpc3RpdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJoZWFkaW5nLWZhY3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvcCB0ZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJsZWFkLWZhY3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBVSyBmb3IgQ29tcHV0ZXIgU2NpZW5jZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21wbGV0ZSBVbml2ZXJzaXR5IEd1aWRlIDIwMjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC00IGRpdmlkZXItcmlnaHQtbWQgZXF1YWxpemUtaW5uZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZhY3QiIHJvbGU9Imxpc3RpdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJoZWFkaW5nLWZhY3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE92ZXIgPHNwYW4+ODU8L3NwYW4+JSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2gzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImxlYWQtZmFjdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Ygb3VyIHJlc2VhcmNoIGFjdGl2aXR5IGlzICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3b3JsZC1sZWFkaW5nJyBvciAnaW50ZXJuYXRpb25hbGx5IGV4Y2VsbGVudCcgbGF0ZXN0IFJFRiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTQgZXF1YWxpemUtaW5uZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZhY3QiIHJvbGU9Imxpc3RpdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJoZWFkaW5nLWZhY3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvcCA8c3Bhbj4xMDA8L3NwYW4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0ibGVhZC1mYWN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXb3JsZCB0b3AgMTAwIHVuaXZlcnNpdHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVMgV29ybGQgVW5pdmVyc2l0eSBSYW5raW5ncyAyMDIxICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9kaXY+CjwhLS0gLyRXSURHRVQgMzAxMyBUSyBmYWN0IGFuZCBmaWd1cmVzIC0tPgoKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3aWRnZXQtMzAwMyBjYXJkcy1jb250YWluZXIgIGNhcmRzLWNvbnRhaW5lci0tbm8taGVhZGluZyAgY2FyZHMtY29udGFpbmVyLS1uby1sZWFkICI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lci1yb3cgc2tpbi1yb3ctbW9kdWxlLWxpZ2h0IGVxdWFsaXplIj4KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyLXBkLW1kIHdyYXBwZXItbGciPgoKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ay1yb3ciPgoKICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNtLTQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtZmxhdCBjYXJkLXN0YWNrZWQtc20gc2tpbi1iZC1iIHNraW4tYm94LXdoaXRlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW1nIGNhcmQtaW1nLTEtMyBjYXJkLWltZy0xLTQteHMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJycy1pbWcgcnMtaW1nLTItMSIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybCgnLy9lcHMubGVlZHMuYWMudWsvc2l0ZS9jdXN0b21fc2NyaXB0cy9pbWFnZS5waHA/dz02MDAmYW1wO2g9MzAwJmFtcDtmaWxlbmFtZT04MDB4NDAwdWdjb21wdXRpbmcuanBnJykiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmctdW5kZXJncmFkdWF0ZSIgdGl0bGU9IlVuZGVyZ3JhZHVhdGUgZGVncmVlcyI+PGltZyBzcmM9Ii8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9NjAwJmFtcDtoPTMwMCZhbXA7ZmlsZW5hbWU9ODAweDQwMHVnY29tcHV0aW5nLmpwZyIgYWx0PSJUaHJlZSBDb21wdXRpbmcgc3R1ZGVudHMsIG9uZSB1c2luZyBWUiI+PHNwYW4gY2xhc3M9ImhpZGUtYWNjZXNzaWJsZSI+IFVuZGVyZ3JhZHVhdGUgZGVncmVlczwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1jb250ZW50IGVxdWFsaXplLWlubmVyIGNhcmQtY29udGVudC0yLTMgY2FyZC1jb250ZW50LTMtNC14cyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJoZWFkaW5nLWxpbmstYWx0Ij48YSBocmVmPSJodHRwOi8vZXBzLmxlZWRzLmFjLnVrL2NvbXB1dGluZy11bmRlcmdyYWR1YXRlIj5VbmRlcmdyYWR1YXRlIGRlZ3JlZXM8L2E+PC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0ibm90ZSI+PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ibW9yZSIgaHJlZj0iaHR0cDovL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmctdW5kZXJncmFkdWF0ZSIgdGl0bGU9Ik1vcmUgb24gVW5kZXJncmFkdWF0ZSBkZWdyZWVzIj5Nb3JlPHNwYW4gY2xhc3M9ImhpZGUtYWNjZXNzaWJsZSI+IG9uIFVuZGVyZ3JhZHVhdGUgZGVncmVlczwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS00Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWZsYXQgY2FyZC1zdGFja2VkLXNtIHNraW4tYmQtYiBza2luLWJveC13aGl0ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWltZyBjYXJkLWltZy0xLTMgY2FyZC1pbWctMS00LXhzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icnMtaW1nIHJzLWltZy0yLTEiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9NjAwJmFtcDtoPTMwMCZhbXA7ZmlsZW5hbWU9ODAweDQwMGNvbXBtYXN0ZXJzLmpwZycpIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nLW1hc3RlcnMiIHRpdGxlPSJNYXN0ZXJzIGNvdXJzZXMiPjxpbWcgc3JjPSIvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL2ltYWdlLnBocD93PTYwMCZhbXA7aD0zMDAmYW1wO2ZpbGVuYW1lPTgwMHg0MDBjb21wbWFzdGVycy5qcGciIGFsdD0iU3R1ZGVudCB1c2luZyBhIGxhcHRvcCI+PHNwYW4gY2xhc3M9ImhpZGUtYWNjZXNzaWJsZSI+IE1hc3RlcnMgY291cnNlczwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1jb250ZW50IGVxdWFsaXplLWlubmVyIGNhcmQtY29udGVudC0yLTMgY2FyZC1jb250ZW50LTMtNC14cyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJoZWFkaW5nLWxpbmstYWx0Ij48YSBocmVmPSJodHRwOi8vZXBzLmxlZWRzLmFjLnVrL2NvbXB1dGluZy1tYXN0ZXJzIj5NYXN0ZXJzIGNvdXJzZXM8L2E+PC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0ibm90ZSI+PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ibW9yZSIgaHJlZj0iaHR0cDovL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmctbWFzdGVycyIgdGl0bGU9Ik1vcmUgb24gTWFzdGVycyBjb3Vyc2VzIj5Nb3JlPHNwYW4gY2xhc3M9ImhpZGUtYWNjZXNzaWJsZSI+IG9uIE1hc3RlcnMgY291cnNlczwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS00Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWZsYXQgY2FyZC1zdGFja2VkLXNtIHNraW4tYmQtYiBza2luLWJveC13aGl0ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWltZyBjYXJkLWltZy0xLTMgY2FyZC1pbWctMS00LXhzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icnMtaW1nIHJzLWltZy0yLTEiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9NjAwJmFtcDtoPTMwMCZhbXA7ZmlsZW5hbWU9ODAweDQwMENvbXBfUmVzZWFyY2gxLmpwZycpIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nLXJlc2VhcmNoLWRlZ3JlZXMiIHRpdGxlPSJSZXNlYXJjaCBkZWdyZWVzIj48aW1nIHNyYz0iLy9lcHMubGVlZHMuYWMudWsvc2l0ZS9jdXN0b21fc2NyaXB0cy9pbWFnZS5waHA/dz02MDAmYW1wO2g9MzAwJmFtcDtmaWxlbmFtZT04MDB4NDAwQ29tcF9SZXNlYXJjaDEuanBnIiBhbHQ9IlByb2Zlc3NvciBOZXR0YSBDb2hlbiBpbiByZXNlYXJjaCBsYWIiPjxzcGFuIGNsYXNzPSJoaWRlLWFjY2Vzc2libGUiPiBSZXNlYXJjaCBkZWdyZWVzPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWNvbnRlbnQgZXF1YWxpemUtaW5uZXIgY2FyZC1jb250ZW50LTItMyBjYXJkLWNvbnRlbnQtMy00LXhzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9ImhlYWRpbmctbGluay1hbHQiPjxhIGhyZWY9Imh0dHA6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nLXJlc2VhcmNoLWRlZ3JlZXMiPlJlc2VhcmNoIGRlZ3JlZXM8L2E+PC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0ibm90ZSI+PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ibW9yZSIgaHJlZj0iaHR0cDovL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmctcmVzZWFyY2gtZGVncmVlcyIgdGl0bGU9Ik1vcmUgb24gUmVzZWFyY2ggZGVncmVlcyI+TW9yZTxzcGFuIGNsYXNzPSJoaWRlLWFjY2Vzc2libGUiPiBvbiBSZXNlYXJjaCBkZWdyZWVzPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8IS0tICRXSURHRVQgMzAwOCAtIFRLIGZlYXR1cmVkIGNvbnRlbnQgLS0+CjxkaXYgY2xhc3M9IndpZGdldC0zMDA4Ij4KCiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXItcm93IHNraW4tYmctd2hpdGUiPgoKICAgICAgIDxkaXYgY2xhc3M9IndyYXBwZXItbWQgd3JhcHBlci1wZC1tZCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmVkLWNvbnRlbnQgZmVhdHVyZWQtY29udGVudC1yZWN0YW5nbGUiPgoKCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlZC1jb250ZW50LWltZyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icnMtaW1nIHJzLWltZy0yLTEiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9ODAwJmFtcDtoPTQwMCZhbXA7ZmlsZW5hbWU9ODAweDQwMF9hcnRpZmljaWFsX2ludGVsbGlnZW5jZV8xLmpwZycpOyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nLXJlc2VhcmNoLWlubm92YXRpb24iPjxpbWcgc3JjPSIvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL2ltYWdlLnBocD93PTgwMCZhbXA7aD00MDAmYW1wO2ZpbGVuYW1lPTgwMHg0MDBfYXJ0aWZpY2lhbF9pbnRlbGxpZ2VuY2VfMS5qcGciIGFsdD0iQXJ0aWZpY2lhbCBpbnRlbGxpZ2VuY2UiPjxzcGFuIGNsYXNzPSJoaWRlLWFjY2Vzc2libGUiPk1vcmUgb24gUmVzZWFyY2ggYW5kIGlubm92YXRpb248L3NwYW4+PC9hPiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZWQtY29udGVudC1oZWFkaW5nIj4KICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9ImgyLWxnIGhlYWRpbmctdW5kZXJsaW5lIj5SZXNlYXJjaCBhbmQgaW5ub3ZhdGlvbjwvaDI+CgoKICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZWQtY29udGVudC1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjbXMgY21zLW5vLWxlYWQgY21zLXNlcmlmIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHA+T3VyIHJlc2VhcmNoIHJhbmdlcyZuYnNwO2Zyb20gZnVuZGFtZW50YWwgYWR2YW5jZXMgaW4gYWxnb3JpdGhtcyBhbmQgb3VyIHVuZGVyc3RhbmRpbmcgb2YgY29tcHV0YXRpb24sIHRocm91Z2ggdG8gaGlnaGx5IGFwcGxpZWQgcmVzZWFyY2ggaW50byBuZXcgZGlzcGxheSB0ZWNobm9sb2dpZXMgZm9yIGNsaW5pY2FsIGRpYWdub3NpcywgZW5lcmd5LWVmZmljaWVudCBkYXRhIGNlbnRyZXMsIGFuZCBwcm9mb3VuZCBpbnNpZ2h0IGludG8gZGF0YSB0aHJvdWdoIHZpc3VhbGlzYXRpb24uIFdlIGFyZSBwYXJ0bmVycyB3aXRoIHRoZSA8YSBocmVmPSJodHRwczovL3d3dy50dXJpbmcuYWMudWsvIj5BbGFuIFR1cmluZyBJbnN0aXR1dGU8L2E+LCB0aGUgVUsmIzM5O3MgcHJlbWllciByZXNlYXJjaCBjZW50cmUgZm9yIGRhdGEgc2NpZW5jZSBhbmQgYXJ0aWZpY2lhbCBpbnRlbGxpZ2VuY2UuPC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJtb3JlIG1vcmUtZGl2aWRlciIgaHJlZj0iaHR0cDovL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmctcmVzZWFyY2gtaW5ub3ZhdGlvbiI+TW9yZTxzcGFuIGNsYXNzPSJoaWRlLWFjY2Vzc2libGUiPiBvbiBSZXNlYXJjaCBhbmQgaW5ub3ZhdGlvbjwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2Pgo8IS0tIC8kV0lER0VUIDMwMDggLSBUSyBmZWF0dXJlZCBjb250ZW50IC0tPgoKICAgICAgICAgICAgPCEtLSBXaWRnZXQ6IDMwMDUgTmV3cyAmIEV2ZW50cyAtLT4KPGRpdiBjbGFzcz0id2lkZ2V0LTMwMDUiPjwhLS0gd2lkZ2V0IC0tPgo8ZGl2IGNsYXNzPSJzay1iZy1tb2R1bGUtbGlnaHQgY29udGFpbmVyLXJvdyI+PCEtLSBjb250YWluZXIgLS0+CiAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyLWxnIHdyYXBwZXItcGQtbWQiPjwhLS0gd3JhcHBlciAtLT4KCiAgICAgICAgPGgyIGNsYXNzPSJoZWFkaW5nLXVuZGVybGluZSBoMi1sZyI+Ck5ld3MgYW5kIGV2ZW50cyAgICAgICAgPC9oMj4KCiAgICAgICAgPGRpdiBjbGFzcz0idGstdGFicy1oZWFkZXIiPjwhLS0gdGFicyAtLT4KICAgICAgICAgICAgPHVsIGlkPSIiIGNsYXNzPSJuYXYgbmF2LXRhYnMgdGstbmF2LXRhYnMgcHVsbC1sZWZ0Ij4KICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iYWN0aXZlIj48YSBocmVmPSIjbmV3c2ZiNWE4MiIgZGF0YS10b2dnbGU9InRhYiIgcmVsPSJub2ZvbGxvdyI+TmV3czwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpIGNsYXNzPSIiPjxhIGhyZWY9IiNldmVudHM4YzQwMTMiIGRhdGEtdG9nZ2xlPSJ0YWIiIHJlbD0ibm9mb2xsb3ciPkV2ZW50czwvYT48L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgIDwvZGl2PjwhLS0gL3RhYnMgLS0+CiAgICA8L2Rpdj48IS0tIC93cmFwcGVyIC0tPgogICAgPGRpdiBjbGFzcz0id3JhcHBlci1sZyB3cmFwcGVyLXBkLW1kIj48IS0tIHdyYXBwZXIgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0idGFiLWNvbnRlbnQiPjwhLS0gdGFiLWNvbnRlbnQgLS0+CiAgICAgICAgPCEtLSBOZXdzIC0tPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWItcGFuZSBmYWRlIGFjdGl2ZSBpbiIgaWQ9Im5ld3NmYjVhODIiPjwhLS0gcGFuZSAtLT4KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGstdGFicy1jdGEiPjxhIGNsYXNzPSJtb3JlIG1vcmUtYWxsIG1vcmUtZGFyayBwdWxsLXJpZ2h0IiBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9uZXdzP2NhdGVnb3J5SUQ9MTkwJmFkZGl0aW9uYWxDYXRlZ29yeUlEcz0iPlNlZSBtb3JlIG5ld3MgbGlrZSB0aGlzPC9hPjwvcD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVxdWFsaXplIj48IS0tIGVxdWFsaXplIC0tPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRrLXJvdyByb3ctcmVkdWNlLWd1dHRlciI+PCEtLSByb3cgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5ld3MtaXRlbSBjb2wtc20tNiBjb2wtbWQtMyI+PCEtLSBpdGVtIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1zdGFja2VkIHNraW4tYm94LXdoaXRlIHNraW4tYmQtYiI+PCEtLSBjYXJkIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW1nIGNhcmQtaW1nLTEtMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJzLWltZyBycy1pbWctMi0xIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL2ltYWdlLnBocD93PTQwMCZhbXA7aD0yMDAmYW1wO2ZpbGVuYW1lPVRoZV9HcmVhdF9IYWxsLmpwZycpOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iLy9lcHMubGVlZHMuYWMudWsvc2l0ZS9jdXN0b21fc2NyaXB0cy9pbWFnZS5waHA/dz00MDAmYW1wO2g9MjAwJmFtcDtmaWxlbmFtZT1UaGVfR3JlYXRfSGFsbC5qcGciIGFsdD0iVGhlIEdyZWF0IEhhbGwgaW4gc3VtbWVyIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBSZW1vdmVkIGltYWdlIGxpbmdrIGZvciBhY2Nlc3NpYmlsaXR5IGF1ZGl0IFRPRE86IFJlZmFjdG9yIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWNvbnRlbnQgZXF1YWxpemUtaW5uZXIiPjwhLS0gY2FyZC1pbm5lciAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJoZWFkaW5nLWxpbmstYWx0Ij48YSBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmcvbmV3cy9hcnRpY2xlLzU2NDkvbGVlZHMtaW4tdG9wLWZpdmUtZm9yLXRlYWNoaW5nLWluLW5hdGlvbmFsLXN0dWRlbnQtc3VydmV5Ij5MZWVkcyBpbiB0b3AgZml2ZSBmb3IgdGVhY2hpbmcgaW4gTmF0aW9uYWwgU3R1ZGVudCBTdXJ2ZXk8L2E+PC9oMz4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJub3RlIj5OYXRpb25hbCBTdHVkZW50IFN1cnZleSByZXN1bHRzIHJldmVhbCB0aGF0IExlZWRzIGhhcyByZXRhaW5lZCBpdHMgcG9zaXRpb24maGVsbGlwOzwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9Im1vcmUgbW9yZS0tdGVzdC1tb2RpZmllciIgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL25ld3MvYXJ0aWNsZS81NjQ5L2xlZWRzLWluLXRvcC1maXZlLWZvci10ZWFjaGluZy1pbi1uYXRpb25hbC1zdHVkZW50LXN1cnZleSIgdGl0bGU9Ik1vcmUgb24gTGVlZHMgaW4gdG9wIGZpdmUgZm9yIHRlYWNoaW5nIGluIE5hdGlvbmFsIFN0dWRlbnQgU3VydmV5Ij5Nb3JlPHNwYW4gY2xhc3M9ImhpZGUtYWNjZXNzaWJsZSI+IG9uIExlZWRzIGluIHRvcCBmaXZlIGZvciB0ZWFjaGluZyBpbiBOYXRpb25hbCBTdHVkZW50IFN1cnZleTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PCEtLSAvY2FyZC1pbm5lciAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwhLS0gL2NhcmQgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwhLS0gL2l0ZW0gLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5ld3MtaXRlbSBjb2wtc20tNiBjb2wtbWQtMyI+PCEtLSBpdGVtIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1zdGFja2VkIHNraW4tYm94LXdoaXRlIHNraW4tYmQtYiI+PCEtLSBjYXJkIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW1nIGNhcmQtaW1nLTEtMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJzLWltZyBycy1pbWctMi0xIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL2ltYWdlLnBocD93PTQwMCZhbXA7aD0yMDAmYW1wO2ZpbGVuYW1lPTE0MDB4NzAwcm9ib3QuanBnJyk7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL2ltYWdlLnBocD93PTQwMCZhbXA7aD0yMDAmYW1wO2ZpbGVuYW1lPTE0MDB4NzAwcm9ib3QuanBnIiBhbHQ9IkEgcm9ib3QgY29udHJvbGxlZCBieSBhIHNtYXJ0cGhvbmUiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFJlbW92ZWQgaW1hZ2UgbGluZ2sgZm9yIGFjY2Vzc2liaWxpdHkgYXVkaXQgVE9ETzogUmVmYWN0b3IgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtY29udGVudCBlcXVhbGl6ZS1pbm5lciI+PCEtLSBjYXJkLWlubmVyIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9ImhlYWRpbmctbGluay1hbHQiPjxhIGhyZWY9Ii8vZXBzLmxlZWRzLmFjLnVrL2NvbXB1dGluZy9uZXdzL2FydGljbGUvNTY0Ny9wYXJ0eS10aW1lLWxhc3ItdGVhbS13aW5zLWdvbGQtaW4tcm9ib2N1cC1ob21lLWVkdWNhdGlvbi1jaGFsbGVuZ2UiPlBhcnR5IHRpbWUhIExBU1IgdGVhbSB3aW5zIGdvbGQgaW4gUm9ib0N1cEBIb21lIEVkdWNhdGlvbiBDaGFsbGVuZ2U8L2E+PC9oMz4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJub3RlIj5BIHRlYW0gbWFkZSB1cCBvZiBuZXcgbWVtYmVycyBvZiB0aGUgTGVlZHMgQXV0b25vbW91cyBTZXJ2aWNlIFJvYm90cyAoTEFTUikmaGVsbGlwOzwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9Im1vcmUgbW9yZS0tdGVzdC1tb2RpZmllciIgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL25ld3MvYXJ0aWNsZS81NjQ3L3BhcnR5LXRpbWUtbGFzci10ZWFtLXdpbnMtZ29sZC1pbi1yb2JvY3VwLWhvbWUtZWR1Y2F0aW9uLWNoYWxsZW5nZSIgdGl0bGU9Ik1vcmUgb24gUGFydHkgdGltZSEgTEFTUiB0ZWFtIHdpbnMgZ29sZCBpbiBSb2JvQ3VwQEhvbWUgRWR1Y2F0aW9uIENoYWxsZW5nZSI+TW9yZTxzcGFuIGNsYXNzPSJoaWRlLWFjY2Vzc2libGUiPiBvbiBQYXJ0eSB0aW1lISBMQVNSIHRlYW0gd2lucyBnb2xkIGluIFJvYm9DdXBASG9tZSBFZHVjYXRpb24gQ2hhbGxlbmdlPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48IS0tIC9jYXJkLWlubmVyIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PCEtLSAvY2FyZCAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PCEtLSAvaXRlbSAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmV3cy1pdGVtIGNvbC1zbS02IGNvbC1tZC0zIj48IS0tIGl0ZW0gLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLXN0YWNrZWQgc2tpbi1ib3gtd2hpdGUgc2tpbi1iZC1iIj48IS0tIGNhcmQgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1pbWcgY2FyZC1pbWctMS0zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icnMtaW1nIHJzLWltZy0yLTEiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9NDAwJmFtcDtoPTIwMCZhbXA7ZmlsZW5hbWU9TnVjbGVhcl9sYWJfR00uNTlfXzVfLmpwZycpOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iLy9lcHMubGVlZHMuYWMudWsvc2l0ZS9jdXN0b21fc2NyaXB0cy9pbWFnZS5waHA/dz00MDAmYW1wO2g9MjAwJmFtcDtmaWxlbmFtZT1OdWNsZWFyX2xhYl9HTS41OV9fNV8uanBnIiBhbHQ9IlVuZGVyZ3JhZHVhdGUgY2hlbWljYWwgZW5naW5lZXJpbmcgc3R1ZGVudCB3b3JraW5nIGluIHRoZSBudWNsZWFyIGxhYiI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gUmVtb3ZlZCBpbWFnZSBsaW5nayBmb3IgYWNjZXNzaWJpbGl0eSBhdWRpdCBUT0RPOiBSZWZhY3RvciAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1jb250ZW50IGVxdWFsaXplLWlubmVyIj48IS0tIGNhcmQtaW5uZXIgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0iaGVhZGluZy1saW5rLWFsdCI+PGEgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL25ld3MvYXJ0aWNsZS81NjQyL2ludGVybmF0aW9uYWwtd29tZW4taW4tZW5naW5lZXJpbmctZGF5LTIwMjAiPkludGVybmF0aW9uYWwgV29tZW4gaW4gRW5naW5lZXJpbmcgRGF5IDIwMjA8L2E+PC9oMz4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJub3RlIj5Kb2luIHVzIGluIGNlbGVicmF0aW5nIEludGVybmF0aW9uYWwgV29tZW4gaW4gRW5naW5lZXJpbmcgRGF5IChJTldFRCkgb24maGVsbGlwOzwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9Im1vcmUgbW9yZS0tdGVzdC1tb2RpZmllciIgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL25ld3MvYXJ0aWNsZS81NjQyL2ludGVybmF0aW9uYWwtd29tZW4taW4tZW5naW5lZXJpbmctZGF5LTIwMjAiIHRpdGxlPSJNb3JlIG9uIEludGVybmF0aW9uYWwgV29tZW4gaW4gRW5naW5lZXJpbmcgRGF5IDIwMjAiPk1vcmU8c3BhbiBjbGFzcz0iaGlkZS1hY2Nlc3NpYmxlIj4gb24gSW50ZXJuYXRpb25hbCBXb21lbiBpbiBFbmdpbmVlcmluZyBEYXkgMjAyMDwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PCEtLSAvY2FyZC1pbm5lciAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwhLS0gL2NhcmQgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwhLS0gL2l0ZW0gLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5ld3MtaXRlbSBjb2wtc20tNiBjb2wtbWQtMyI+PCEtLSBpdGVtIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1zdGFja2VkIHNraW4tYm94LXdoaXRlIHNraW4tYmQtYiI+PCEtLSBjYXJkIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW1nIGNhcmQtaW1nLTEtMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJzLWltZyBycy1pbWctMi0xIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL2ltYWdlLnBocD93PTQwMCZhbXA7aD0yMDAmYW1wO2ZpbGVuYW1lPWVwc19wYXJ0bmVyc2hpcF9hd2FyZHMuanBnJyk7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL2ltYWdlLnBocD93PTQwMCZhbXA7aD0yMDAmYW1wO2ZpbGVuYW1lPWVwc19wYXJ0bmVyc2hpcF9hd2FyZHMuanBnIiBhbHQ9IkZhY3VsdHkgb2YgRVBTIFBhcnRuZXJzaGlwIEF3YXJkcyAyMDIwIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBSZW1vdmVkIGltYWdlIGxpbmdrIGZvciBhY2Nlc3NpYmlsaXR5IGF1ZGl0IFRPRE86IFJlZmFjdG9yIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWNvbnRlbnQgZXF1YWxpemUtaW5uZXIiPjwhLS0gY2FyZC1pbm5lciAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJoZWFkaW5nLWxpbmstYWx0Ij48YSBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmcvbmV3cy9hcnRpY2xlLzU2MzYvZmFjdWx0eS1wYXJ0bmVyc2hpcC1hd2FyZHMtMjAyMCI+RmFjdWx0eSBQYXJ0bmVyc2hpcCBhd2FyZHMgMjAyMDwvYT48L2gzPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9Im5vdGUiPlRoZSBGYWN1bHR5IG9mIEVuZ2luZWVyaW5nIGFuZCBQaHlzaWNhbCBTY2llbmNlcyBQYXJ0bmVyc2hpcCBBd2FyZHMgaXMgYW4maGVsbGlwOzwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9Im1vcmUgbW9yZS0tdGVzdC1tb2RpZmllciIgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL25ld3MvYXJ0aWNsZS81NjM2L2ZhY3VsdHktcGFydG5lcnNoaXAtYXdhcmRzLTIwMjAiIHRpdGxlPSJNb3JlIG9uIEZhY3VsdHkgUGFydG5lcnNoaXAgYXdhcmRzIDIwMjAiPk1vcmU8c3BhbiBjbGFzcz0iaGlkZS1hY2Nlc3NpYmxlIj4gb24gRmFjdWx0eSBQYXJ0bmVyc2hpcCBhd2FyZHMgMjAyMDwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PCEtLSAvY2FyZC1pbm5lciAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwhLS0gL2NhcmQgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwhLS0gL2l0ZW0gLS0+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PCEtLSAvcm93IC0tPgogICAgICAgICAgICAgICAgPC9kaXY+PCEtLSAvZXF1YWxpemUgLS0+CiAgICAgICAgICAgIDwvZGl2PjwhLS0gL3BhbmUgLS0+CjwhLS0gL05ld3MgLS0+CgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFiLXBhbmUgZmFkZSAiIGlkPSJldmVudHM4YzQwMTMiPjwhLS0gdGFiLXBhbmUgLS0+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRrLXRhYnMtY3RhIj48YSBjbGFzcz0ibW9yZSBtb3JlLWFsbCBtb3JlLWRhcmsgcHVsbC1yaWdodCIgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvZXZlbnRzP2NhdGVnb3J5SUQ9MTkwJmFkZGl0aW9uYWxDYXRlZ29yeUlEcz0mc3ViX2NhdGVnb3J5SUQ9JnR5cGVzPSZzdWJfdHlwZT0iPlNlZSBtb3JlIGV2ZW50cyBsaWtlIHRoaXM8L2E+PC9wPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXF1YWxpemUiPjwhLS0gZXF1YWxpemUgLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGstcm93IHJvdy1yZWR1Y2UtZ3V0dGVyIj48IS0tIHJvdyAtLT4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJldmVudHMtaXRlbSBjb2wtc20tNiBjb2wtbWQtMyI+PCEtLSBldmVudC1pdGVtIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtc3RhY2tlZCBza2luLWJveC13aGl0ZSBza2luLWJkLWIiPjwhLS0gY2FyZCAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1pbWcgY2FyZC1pbWctMS0zIj48IS0tIGNhcmQtaW1nIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icnMtaW1nIHJzLWltZy0yLTEiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9NDAwJmFtcDtoPTIwMCZhbXA7ZmlsZW5hbWU9QmVfQ3VyaW91cy5qcGcnKTsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8vZXBzLmxlZWRzLmFjLnVrL2NvbXB1dGluZy9ldmVudHMvZXZlbnQvNjEyMi9iZS1jdXJpb3VzLTIwMjAiIHRpdGxlPSJCZSBDdXJpb3VzIDIwMjAiPjxpbWcgc3JjPSIvL2Vwcy5sZWVkcy5hYy51ay9zaXRlL2N1c3RvbV9zY3JpcHRzL2ltYWdlLnBocD93PTQwMCZhbXA7aD0yMDAmYW1wO2ZpbGVuYW1lPUJlX0N1cmlvdXMuanBnIiBhbHQ9IktpZCBob2xkaW5nIGEgbW9sZWN1bGUgbW9kZWwiPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48IS0tIC9jYXJkLWltZyAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1jb250ZW50IGVxdWFsaXplLWlubmVyIj48IS0tIGNhcmQtY29udGVudCAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0iaGVhZGluZy1saW5rLWFsdCI+PGEgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL2V2ZW50cy9ldmVudC82MTIyL2JlLWN1cmlvdXMtMjAyMCI+QmUgQ3VyaW91cyAyMDIwPC9hPjwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImhlYWRpbmctcmVsYXRlZCI+ClNhdHVyZGF5IDEwIE9jdG9iZXIgMjAyMCwgMTA6MDAgLSAxNjowMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJtb3JlIiBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmcvZXZlbnRzL2V2ZW50LzYxMjIvYmUtY3VyaW91cy0yMDIwIiB0aXRsZT0iTW9yZSBvbiBGYWN1bHR5IFBhcnRuZXJzaGlwIGF3YXJkcyAyMDIwIj5Nb3JlPHNwYW4gY2xhc3M9ImhpZGUtYWNjZXNzaWJsZSI+IG9uIEJlIEN1cmlvdXMgMjAyMDwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwhLS0gL2NhcmQtY29udGVudCAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48IS0tIC9jYXJkIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PCEtLSAvZXZlbnQtaXRlbSAtLT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj48IS0tIC9yb3cgLS0+CiAgICAgICAgICAgICAgICA8L2Rpdj48IS0tIC9lcXVhbGl6ZS0tPgogICAgICAgICAgICA8L2Rpdj48IS0tIC90YWItY29udGVudCAtLT4KICAgICAgICA8L2Rpdj48IS0tIC90YWItcGFuZSAtLT4KPCEtLSAvRXZlbnRzIC0tPgoKICAgICAgICA8L2Rpdj48IS0tIC93cmFwcGVyIC0tPgogICAgPC9kaXY+PCEtLSAvY29udGFpbmVyIC0tPgo8L2Rpdj48IS0tIC93aWRnZXQgLS0+Cgo8IS0tIC9XaWRnZXQ6IDMwMDUgTmV3cyAmIEV2ZW50cyAtLT4KCiAgICAgICAgICAgIAo8IS0tICRXSURHRVQ6IG5vIDMwMDYgLSBUSyBsaW5rIG5hdiAtLT4KPGRpdiBjbGFzcz0id2lkZ2V0LTMwMDYiPgoJPGRpdiBjbGFzcz0iY29udGFpbmVyLXJvdyBza2luLWJnLXdoaXRlIj4KCQk8ZGl2IGNsYXNzPSJ3cmFwcGVyLW1kIHdyYXBwZXItcGQtbWQiPgoJCQkKCQkJCgkJCQoJCQkKCQkJCQoJCQkJCQkJCQkJCTxkaXYgY2xhc3M9InRrLXJvdyBjbGVhcmZpeCByb3ctcmVkdWNlLWd1dHRlciI+CgkJCQkJCgkJCQkJCQkJCQkJCQkKCQkJCQkJCQkJCQkJCQkJPGRpdiBjbGFzcz0iY29sLXNtLTYiPgoJCQkJCQkJCgkJCQkJCQkJCTxkaXYgY2xhc3M9InAtdCBwLWIgIj4KCQkJCQkJCQkJCTxoMyBjbGFzcz0iaGVhZGluZy1saW5rIj48YSBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmcvZG9jL3dvcmtpbmctYnVzaW5lc3MiPldvcmtpbmcgd2l0aCBidXNpbmVzczwvYT48L2gzPgoJCQkJCQkJCQkJPHAgY2xhc3M9Im5vdGUiPldlIHdvcmsgd2l0aCBvcmdhbmlzYXRpb25zIG9mIGFsbCBzaXplcyBhY3Jvc3MgYSB3aWRlIHJhbmdlIG9mIGluZHVzdHJpZXMgdG8gY29tZSB1cCB3aXRoIHNvbHV0aW9ucyB0byB5b3VyIG5lZWRzLjwvcD4KCQkJCQkJCQkJCQkJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9Im1vcmUiIGhyZWY9Ii8vZXBzLmxlZWRzLmFjLnVrL2NvbXB1dGluZy9kb2Mvd29ya2luZy1idXNpbmVzcyI+TW9yZTxzcGFuIGNsYXNzPSJoaWRlLWFjY2Vzc2libGUiPiBvbiBXb3JraW5nIHdpdGggYnVzaW5lc3M8L3NwYW4+PC9hPgoJCQkJCQkJCQkJCQkJCQkJCQkJPC9kaXY+CgoJCQkJCQkJCQkJCQkJCQk8L2Rpdj4KCQkJCQkJCQoJCQkJCQkJCQkJCQkJCgkJCQkJCQkJCQkJCQkJCTxkaXYgY2xhc3M9ImNvbC1zbS02Ij4KCQkJCQkJCQoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJwLXQgcC1iICI+CgkJCQkJCQkJCQk8aDMgY2xhc3M9ImhlYWRpbmctbGluayI+PGEgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL2RvYy9yZWNydWl0LXN0dWRlbnRzIj5SZWNydWl0IG91ciBzdHVkZW50czwvYT48L2gzPgoJCQkJCQkJCQkJPHAgY2xhc3M9Im5vdGUiPldlIGhhdmUgYSBkZWRpY2F0ZWQgRW1wbG95YWJpbGl0eSBUZWFtIHRoYXQgcHJvdmlkZSBidXNpbmVzc2VzIHdpdGggYWNjZXNzIHRvIG91ciB0YWxlbnRlZCBzdHVkZW50cyB0aHJvdWdoIGEgcmFuZ2Ugb2Ygc2VydmljZXMuPC9wPgoJCQkJCQkJCQkJCQkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ibW9yZSIgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL2RvYy9yZWNydWl0LXN0dWRlbnRzIj5Nb3JlPHNwYW4gY2xhc3M9ImhpZGUtYWNjZXNzaWJsZSI+IG9uIFJlY3J1aXQgb3VyIHN0dWRlbnRzPC9zcGFuPjwvYT4KCQkJCQkJCQkJCQkJCQkJCQkJCTwvZGl2PgoKCQkJCQkJCQkJCQkJCQkJPC9kaXY+CgkJCQkJCQkKCQkJCQkJCQkJCQkKCQkJCQk8L2Rpdj4KCgkJCQkKCQkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJ0ay1yb3cgY2xlYXJmaXggcm93LXJlZHVjZS1ndXR0ZXIiPgoJCQkJCQoJCQkJCQkJCQkJCQkJCgkJCQkJCQkJCQkJCQkJCTxkaXYgY2xhc3M9ImNvbC1zbS02Ij4KCQkJCQkJCQoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJwLXQgcC1iICI+CgkJCQkJCQkJCQk8aDMgY2xhc3M9ImhlYWRpbmctbGluayI+PGEgaHJlZj0iLy9lcHMubGVlZHMuYWMudWsvY29tcHV0aW5nL2RvYy9zY2hvb2xzLW91dHJlYWNoIj5TY2hvb2xzIG91dHJlYWNoPC9hPjwvaDM+CgkJCQkJCQkJCQk8cCBjbGFzcz0ibm90ZSI+V2UgZGVsaXZlciBldmVudHMgYW5kIGFjdGl2aXRpZXMgdG8gc2hvd2Nhc2UgdGhpcyBmYXNjaW5hdGluZyBzdWJqZWN0IGFyZWEgdG8gc3R1ZGVudHMgYXQgc2Nob29scyBhbmQgY29sbGVnZXMgYWNyb3NzIHRoZSBVSy48L3A+CgkJCQkJCQkJCQkJCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJtb3JlIiBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmcvZG9jL3NjaG9vbHMtb3V0cmVhY2giPk1vcmU8c3BhbiBjbGFzcz0iaGlkZS1hY2Nlc3NpYmxlIj4gb24gU2Nob29scyBvdXRyZWFjaDwvc3Bhbj48L2E+CgkJCQkJCQkJCQkJCQkJCQkJCQk8L2Rpdj4KCgkJCQkJCQkJCQkJCQkJCTwvZGl2PgoJCQkJCQkJCgkJCQkJCQkJCQkJCQkKCQkJCQkJCQkJCQkJCQkJPGRpdiBjbGFzcz0iY29sLXNtLTYiPgoJCQkJCQkJCgkJCQkJCQkJCTxkaXYgY2xhc3M9InAtdCBwLWIgIj4KCQkJCQkJCQkJCTxoMyBjbGFzcz0iaGVhZGluZy1saW5rIj48YSBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmcvZG9jL2VxdWFsaXR5LWluY2x1c2lvbi0xIj5FcXVhbGl0eSBhbmQgSW5jbHVzaW9uPC9hPjwvaDM+CgkJCQkJCQkJCQk8cCBjbGFzcz0ibm90ZSI+VGhlIFVuaXZlcnNpdHkgY29tbXVuaXR5IGlzIG1hZGUgdXAgb2YgYSB3aWRlIHJhbmdlIG9mIHBlb3BsZSB3aXRoIGRpdmVyc2UgYmFja2dyb3VuZHMgYW5kIGNpcmN1bXN0YW5jZXMsIHdoaWNoIHdlIHZhbHVlIGFuZCByZWdhcmQgYXMgYSBncmVhdCBhc3NldC48L3A+CgkJCQkJCQkJCQkJCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJtb3JlIiBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9jb21wdXRpbmcvZG9jL2VxdWFsaXR5LWluY2x1c2lvbi0xIj5Nb3JlPHNwYW4gY2xhc3M9ImhpZGUtYWNjZXNzaWJsZSI+IG9uIEVxdWFsaXR5IGFuZCBJbmNsdXNpb248L3NwYW4+PC9hPgoJCQkJCQkJCQkJCQkJCQkJCQkJPC9kaXY+CgoJCQkJCQkJCQkJCQkJCQk8L2Rpdj4KCQkJCQkJCQoJCQkJCQkJCQkJCQoJCQkJCTwvZGl2PgoKCQkJCQoJCQkKCQk8L2Rpdj4KCTwvZGl2Pgo8L2Rpdj4KPCEtLSAvJFdJREdFVDogbm8gMzAwNiAtIFRLIGxpbmsgbmF2IC0tPgoKCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IndpZGdldC0zMDAwIj4KPGRpdiBjbGFzcz0iY29udGFpbmVyLXJvdyBza2luLXJvdy1kaXZpZGVyIj4KPGRpdiBjbGFzcz0idHdpdHRlci1mZWVkIj4gICAgCiAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyLXBkLW1kIHdyYXBwZXItbGciPgogICAgICAgIDxkaXYgY2xhc3M9InRrLXJvdyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0zIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InR3aXR0ZXItdXNlciI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49InRydWUiIGNsYXNzPSJ0ay1pY29uLXNvY2lhbC10d2l0dGVyIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly90d2l0dGVyLmNvbS9MZWVkc1VuaUNvbXAiPkBMZWVkc1VuaUNvbXA8L2E+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC05Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRrLXJvdyI+CjxkaXYgY2xhc3M9J2NvbC1zbS02IGNvbC1tZC00Jz4KPGRpdiBjbGFzcz0ndHdlZXQnPgo8cCBjbGFzcz0ndHdlZXQtY29udGVudCc+CiZsZHF1bztJZiB5b3UncmUgam9pbmluZyB1cyBpbiBTZXB0ZW1iZXIgYW5kIGhhdmUgcXVlc3Rpb25zIGFib3V0IHlvdXIgYXJyaXZhbCwgcGxlYXNlIHZpc2l0IG91ciBuZXcgQ29yb25hdmlydXMgd2VicGFnZS7igKYgPGEgaHJlZj0iaHR0cHM6Ly90LmNvL3Y3TEtCc2dqZnMiPnQuY28vdjdMS0JzZ2pmczwvYT4mcmRxdW87IC0gPC9wPgo8cCBjbGFzcz0ndHdlZXQtZm9vdGVyJz4yIGRheXMgYWdvPC9wPgo8L2Rpdj48L2Rpdj4KPGRpdiBjbGFzcz0nY29sLXNtLTYgY29sLW1kLTQnPgo8ZGl2IGNsYXNzPSd0d2VldCc+CjxwIGNsYXNzPSd0d2VldC1jb250ZW50Jz4KJmxkcXVvO1JUIDxhIGNsYXNzPSJ1c2VyIiBocmVmPSJodHRwczovL3R3aXR0ZXIuY29tL0VQb3VybmFyYXMiPkBFUG91cm5hcmFzPC9hPjogUHJvb2Ygb2YgV2l0bmVzcyBQcmVzZW5jZTogQmxvY2tjaGFpbiBjb25zZW5zdXMgZm9yIGF1Z21lbnRlZCBkZW1vY3JhY3kgaW4gU21hcnQgQ2l0aWVzLiA8YSBocmVmPSJodHRwczovL3R3aXR0ZXIuY29tL2hhc2h0YWcvcHJvb2ZvZmxvY2F0aW9uIj4jcHJvb2ZvZmxvY2F0aW9uPC9hPiA8YSBocmVmPSJodHRwczovL3R3aXR0ZXIuY29tL2hhc2h0YWcvSW9UIj4jSW9UPC9hPiBQdWJs4oCmIDxhIGhyZWY9Imh0dHBzOi8vdC5jby82N1FCaEpHM3JvIj50LmNvLzY3UUJoSkczcm88L2E+JnJkcXVvOyAtIDwvcD4KPHAgY2xhc3M9J3R3ZWV0LWZvb3Rlcic+MiB3ZWVrcyBhZ288L3A+CjwvZGl2PjwvZGl2Pgo8ZGl2IGNsYXNzPSdjb2wtc20tNiBjb2wtbWQtNCc+CjxkaXYgY2xhc3M9J3R3ZWV0Jz4KPHAgY2xhc3M9J3R3ZWV0LWNvbnRlbnQnPgombGRxdW87VGhlIDE2Mm5kIEV1cm9wZWFuIFN0dWR5IEdyb3VwIHdpdGggSW5kdXN0cnkgdGFrZXMgcGxhY2UgbmV4dCB3ZWVrIChKdWx5IDIwLTI0KSwgYnJpbmdpbmcgdG9nZXRoZXIgZGF0YSBzY2llbnRpc3Rz4oCmIDxhIGhyZWY9Imh0dHBzOi8vdC5jby9VS3hTckdPQkVGIj50LmNvL1VLeFNyR09CRUY8L2E+JnJkcXVvOyAtIDwvcD4KPHAgY2xhc3M9J3R3ZWV0LWZvb3Rlcic+MiB3ZWVrcyBhZ288L3A+CjwvZGl2PjwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2PgoKCiAgICAKICAgIDxkaXYgY2xhc3M9InRlbXBsYXRlLS1ob21lcGFnZXMtc2luZ2xlLW5vc2lkZWJhciI+CiAgICAgICAgPCEtLSBFTkRDT05URU5UIFNVUFBMRU1FTlQgLS0+CgoKCjwhLS0gRU5EIE9GIEVORENPTlRFTlQgU1VQUExFTUVOVCAtLT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLy9lcHMubGVlZHMuYWMudWsvd2lkZ2V0cy9qcy93aWRnZXQuanM/MTU5NTg0OTg0NCI+PC9zY3JpcHQ+CiAgICAKPGRpdj4gICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L21haW4+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJhY2stdG9wIj4KICAgIDxhIGRhdGEtdG9nZ2xlPSJzY3JvbGwiIGhyZWY9IiNzaXRlLWNvbnRhaW5lciIgcmVsPSJub2ZvbGxvdyI+QmFjayB0byB0b3A8L2E+CjwvZGl2PiAgICAgICAgICAgICAgICAKCgogICAgICAgICAgICA8Zm9vdGVyIGNsYXNzPSJzaXRlLWZvb3RlciIgcm9sZT0iY29udGVudGluZm8iPgogICAgPGRpdiBjbGFzcz0ic2l0ZS1mb290ZXItdXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9IndyYXBwZXItcGQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaXRlLWZvb3Rlci11cHBlci1sb2dvcyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZWN1LmFjLnVrL2VxdWFsaXR5LWNoYXJ0ZXJzL2F0aGVuYS1zd2FuLyIgdGl0bGU9IlZpc2l0IEF0aGVuYSBTV0FOIFNpbHZlciBhd2FyZCI+PGltZyBzcmM9Ii8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9OTYmYW1wO2g9NjAmYW1wO2ZpbGVuYW1lPWF0aGVuYV9zd2FuXzE3Nl8xMTAuanBnIiBhbHQ9IkF0aGVuYSBzd2FuIFNpbHZlciBhd2FyZCI+PC9hPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5sZWVkcy5hYy51ay9uZXdzL2FydGljbGUvNDA2NS9nb2xkX2Zvcl9sZWVkc19pbl90aGVfdGVhY2hpbmdfZXhjZWxsZW5jZV9mcmFtZXdvcmsiIHRpdGxlPSJWaXNpdCBURUYgZ29sZCI+PGltZyBzcmM9Ii8vZXBzLmxlZWRzLmFjLnVrL3NpdGUvY3VzdG9tX3NjcmlwdHMvaW1hZ2UucGhwP3c9MTUwJmFtcDtoPTU1JmFtcDtmaWxlbmFtZT1URUZfR29sZF9sb2dvX0NNWUtfX19OZXdfMS5qcGciIGFsdD0iVEVGIGdvbGQiPjwvYT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1zb2NpYWwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9ImhpZGUtYWNjZXNzaWJsZSI+U29jaWFsIG1lZGlhIGxpbmtzPC9oMj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3d3dy5mYWNlYm9vay5jb20vY29tcHV0aW5nbGVlZHMvIiB0aXRsZT0iR28gdG8gRmFjZWJvb2sgcGFnZSI+PHNwYW4gY2xhc3M9Imljb24tZm9udC10ZXh0Ij5GYWNlYm9vazwvc3Bhbj48c3BhbiBjbGFzcz0idGstaWNvbiB0ay1pY29uLXNvY2lhbC1mYWNlYm9vayI+PC9zcGFuPjwvYT4gICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3Lmluc3RhZ3JhbS5jb20vdW5pdmVyc2l0eW9mbGVlZHMvIiB0aXRsZT0iR28gdG8gSW5zdGFncmFtIHBhZ2UiPjxzcGFuIGNsYXNzPSJpY29uLWZvbnQtdGV4dCI+SW5zdGFncmFtPC9zcGFuPjxzcGFuIGNsYXNzPSJ0ay1pY29uIHRrLWljb24tc29jaWFsLWluc3RhZ3JhbSI+PC9zcGFuPjwvYT4gICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vTGVlZHNVbmlDb21wIiB0aXRsZT0iR28gdG8gVHdpdHRlciBwYWdlIj48c3BhbiBjbGFzcz0iaWNvbi1mb250LXRleHQiPlR3aXR0ZXI8L3NwYW4+PHNwYW4gY2xhc3M9InRrLWljb24gdGstaWNvbi1zb2NpYWwtdHdpdHRlciI+PC9zcGFuPjwvYT4gICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LndlaWJvLmNvbS9sZWVkc3VuaWVuZ2luZWVyaW5nIiB0aXRsZT0iR28gdG8gV2VpYm8gcGFnZSI+PHNwYW4gY2xhc3M9Imljb24tZm9udC10ZXh0Ij5XZWlibzwvc3Bhbj48c3BhbiBjbGFzcz0idGstaWNvbiB0ay1pY29uLXNvY2lhbC13ZWlibyI+PC9zcGFuPjwvYT4gICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3VzZXIvdW5pdmVyc2l0eW9mbGVlZHN1ayIgdGl0bGU9IkdvIHRvIFlvdVR1YmUgcGFnZSI+PHNwYW4gY2xhc3M9Imljb24tZm9udC10ZXh0Ij5Zb3VUdWJlPC9zcGFuPjxzcGFuIGNsYXNzPSJ0ay1pY29uIHRrLWljb24tc29jaWFsLXlvdXR1YmUiPjwvc3Bhbj48L2E+ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzaXRlLWZvb3Rlci1taWRkbGUgcC10LW1kIHAtYi1tZCI+CiAgICAgICAgPGRpdiBjbGFzcz0id3JhcHBlci1wZCI+CiAgICAgICAgICAgIDxuYXYgcm9sZT0ibmF2aWdhdGlvbiI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ay1yb3ciPgogICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtc20tNiBjb2wtbWQtMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJxdWlja2xpbmtzLWxpc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0idGl0bGUiPkZhY3VsdHkgb2YgRW5naW5lZXJpbmcgYW5kIFBoeXNpY2FsIFNjaWVuY2VzPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvIj5GYWN1bHR5IG9mIEVuZ2luZWVyaW5nIGFuZCBQaHlzaWNhbCBTY2llbmNlczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2Vwcy5sZWVkcy5hYy51ay9jaGVtaWNhbC1lbmdpbmVlcmluZyI+U2Nob29sIG9mIENoZW1pY2FsIGFuZCBQcm9jZXNzIEVuZ2luZWVyaW5nPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZXBzLmxlZWRzLmFjLnVrL2NoZW1pc3RyeSI+U2Nob29sIG9mIENoZW1pc3RyeTwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2Vwcy5sZWVkcy5hYy51ay9jaXZpbC1lbmdpbmVlcmluZyI+U2Nob29sIG9mIENpdmlsIEVuZ2luZWVyaW5nPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZXBzLmxlZWRzLmFjLnVrL2NvbXB1dGluZyI+U2Nob29sIG9mIENvbXB1dGluZzwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2Vwcy5sZWVkcy5hYy51ay9lbGVjdHJvbmljLWVuZ2luZWVyaW5nIj5TY2hvb2wgb2YgRWxlY3Ryb25pYyBhbmQgRWxlY3RyaWNhbCBFbmdpbmVlcmluZzwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2Vwcy5sZWVkcy5hYy51ay9tYXRocyI+U2Nob29sIG9mIE1hdGhlbWF0aWNzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZXBzLmxlZWRzLmFjLnVrL21lY2hhbmljYWwtZW5naW5lZXJpbmciPlNjaG9vbCBvZiBNZWNoYW5pY2FsIEVuZ2luZWVyaW5nPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZXBzLmxlZWRzLmFjLnVrL3BoeXNpY3MiPlNjaG9vbCBvZiBQaHlzaWNzIGFuZCBBc3Ryb25vbXk8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjxkaXYgY2xhc3M9ImNvbC1zbS02IGNvbC1tZC0zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJxdWlja2xpbmtzLWxpc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0idGl0bGUiPlF1aWNrbGlua3M8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2NvdXJzZXMubGVlZHMuYWMudWsvIj5Db3Vyc2VzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZXBzLmxlZWRzLmFjLnVrL2pvaW4tdXMvZG9jL2VxdWFsaXR5LWluY2x1c2lvbi0xIj5FcXVhbGl0eSBhbmQgaW5jbHVzaW9uPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vcGhkLmxlZWRzLmFjLnVrLyI+UGhEIG9wcG9ydHVuaXRpZXM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9lcHMubGVlZHMuYWMudWsvc2hvcnQtY291cnNlcyI+U2hvcnQgY291cnNlczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2Vwcy5sZWVkcy5hYy51ay9mYWN1bHR5LWVuZ2luZWVyaW5nLXBoeXNpY2FsLXNjaWVuY2VzL2RvYy9zd2p0dS1sZWVkcy1qb2ludC1lbmdpbmVlcmluZy1zY2hvb2wiPlNXSlRVLUxlZWRzIEpvaW50IFNjaG9vbDwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PGRpdiBjbGFzcz0iY29sLXNtLTYgY29sLW1kLTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9InF1aWNrbGlua3MtbGlzdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0aXRsZSI+Rm9yIHN0YWZmPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cubGVlZHMuYWMudWsvZm9yc3RhZmYvaG9tZXBhZ2UvMzc1L3NlcnZpY2VzIj5BLVogU2VydmljZXM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9sZWVkczM2NS5zaGFyZXBvaW50LmNvbS9zaXRlcy9FbmdpbmVlcmluZy9TaXRlUGFnZXMvV2VsY29tZS10by10aGUtRW5naW5lZXJpbmctU2hhcmVQb2ludC1TaXRlLmFzcHgiPkVuZ2luZWVyaW5nIGFuZCBDb21wdXRpbmcgaW50cmFuZXQ8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9sZWVkczM2NS5zaGFyZXBvaW50LmNvbS9zaXRlcy9NQVBTSW50cmFuZXQvU2l0ZVBhZ2VzL0hvbWUuYXNweCI+TWF0aGVtYXRpY3MgYW5kIFBoeXNpY2FsIFNjaWVuY2VzIGludHJhbmV0PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vcHJpc20ubGVlZHMuYWMudWsvIj5QZWRhZ29naWMgUmVzZWFyY2ggaW4gTWF0aHMgYW5kIFBoeXNpY2FsIFNjaWVuY2VzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZXBzLmxlZWRzLmFjLnVrL2ZhY3VsdHktZW5naW5lZXJpbmctcGh5c2ljYWwtc2NpZW5jZXMvZG9jL3RlYWNoaW5nLWxlYXJuaW5nLWVuZ2luZWVyaW5nLW5ldHdvcmstdGFsZW50Ij5UZWFjaGluZyBBbmQgTGVhcm5pbmcgRW5naW5lZXJpbmcgTmVUd29yazwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJxdWlja2xpbmtzLWxpc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0idGl0bGUiPkZvciBzdHVkZW50czwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vc3R1ZGVudHMubGVlZHMuYWMudWsvIj5Gb3IgU3R1ZGVudHM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9taW5lcnZhLmxlZWRzLmFjLnVrLyI+TWluZXJ2YTwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PGRpdiBjbGFzcz0iY29sLXNtLTYgY29sLW1kLTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9InF1aWNrbGlua3MtbGlzdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0aXRsZSI+VW5pdmVyc2l0eSBsaW5rczwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vYWx1bW5pLmxlZWRzLmFjLnVrLyI+QWx1bW5pPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubGVlZHMuYWMudWsvY2FtcHVzbWFwIj5DYW1wdXMgbWFwPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubGVlZHMuYWMudWsvaW5mby81MDAwL2Fib3V0LzEzMS9maW5kX3VzIj5GaW5kIHVzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubGVlZHMuYWMudWsvaW5mby8xMTQwMDAvam9icyI+Sm9iczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vd3d3LmxlZWRzLmFjLnVrL2hvbWVwYWdlLzE3L2FjYWRlbWljX3llYXIiPlRlcm0gZGF0ZXM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDx1bCBjbGFzcz0icXVpY2tsaW5rcy1saXN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0idGl0bGUiPlNpdGUgbWFwPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9uZXdzLyI+TmV3czwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8vZXBzLmxlZWRzLmFjLnVrL2V2ZW50cy8iPkV2ZW50czwvYT48L2xpPiAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvL2Vwcy5sZWVkcy5hYy51ay9zdHVkZW50LWFuZC1hbHVtbmktcHJvZmlsZXMvIj5TdHVkZW50IGFuZCBhbHVtbmkgcHJvZmlsZTwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8vZXBzLmxlZWRzLmFjLnVrL3Nob3J0LWNvdXJzZXMvIj5TaG9ydCBjb3Vyc2VzPC9hPjwvbGk+ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8vZXBzLmxlZWRzLmFjLnVrL3NjaG9sYXJzaGlwcy8iPlNjaG9sYXJzaGlwczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8vZXBzLmxlZWRzLmFjLnVrL3N0YWZmbGlzdC8iPlN0YWZmIGxpc3Q8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4gLS0+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9uYXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzaXRlLWZvb3Rlci1sb3dlciI+CiAgICAgICAgPGRpdiBjbGFzcz0id3JhcHBlci1wZCI+CiAgICAgICAgICAgIDxuYXYgcm9sZT0ibmF2aWdhdGlvbiI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9Im5hdiI+CiAgICAgICAgICAgICAgICAgICAgPGxpPiZjb3B5OyAyMDIwIFVuaXZlcnNpdHkgb2YgTGVlZHMsIExlZWRzLCBMUzIgOUpUPC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLy93d3cubGVlZHMuYWMudWsvdGVybXNhbmRjb25kaXRpb25zIj5UZXJtcyBhbmQgY29uZGl0aW9uczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvL3d3dy5sZWVkcy5hYy51ay9hY2Nlc3NpYmlsaXR5Ij5BY2Nlc3NpYmlsaXR5PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8vZXBzLmxlZWRzLmFjLnVrL3ByaXZhY3kiPlByaXZhY3kgYW5kIGNvb2tpZXM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLy93d3cubGVlZHMuYWMudWsvZm9pIj5GcmVlZG9tIG9mIGluZm9ybWF0aW9uPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L25hdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Zvb3Rlcj4KCiAgICAgICAgPC9kaXY+PCEtLSAvJFNJVEUtQ09OVEFJTkVSLS0+CgogICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij52YXIgR0FMQVhZX1NIT1JUQ1VUID0gIi9lcHMiO3ZhciBQUk9UT0NPTCA9ICJodHRwczovLyI7dmFyIERPTUFJTiA9ICJlcHMubGVlZHMuYWMudWsiO3ZhciBTRUNVUkVfU0VSVkVSID0gImh0dHBzOi8vcHJvZHVjdGlvbjIubGVlZHMuYWMudWsvZXBzIjt2YXIgU0VDVVJFX0pBRFVfUEFUSCA9ICJodHRwczovL3Byb2R1Y3Rpb24yLmxlZWRzLmFjLnVrL2Vwcy9qYWR1Ijt2YXIgVVNFX1RBWE9OT01ZID0gIiI7dmFyIEFTU0lHTl9BRE1JTklTVFJBVE9SX1ZJRVcgPSAiZmFsc2UiO3ZhciBUQVhPTk9NWV9OQU1FID0gIklQU1YiO3ZhciBCRVNQT0tFX0NBVEVHT1JZX0xJU1RfTkFNRSA9ICJHYWxheGllc0NMIjt2YXIgaXNfSUlTID0gIiI7dmFyIEVESVRPUl9JTUFHRV9QQVNURSA9ICIxIjt2YXIgTE9DQUxfRkVfRE9NQUlOID0gImVwcy5sZWVkcy5hYy51ayI7dmFyIFNFQ1VSRV9CTE9HX1BBVEggPSAiIjt2YXIgREFURV9JTlBVVF9EQVlfTU9OVEhfT1JERVIgPSAiIjt2YXIgTE9DQUxfRE9NQUlOUyA9IG5ldyBBcnJheSgpO0xPQ0FMX0RPTUFJTlNbMF0gPSAicHJvZHVjdGlvbjIubGVlZHMuYWMudWsvZXBzIjs8L3NjcmlwdD48c2NyaXB0PnZhciBBSkFYX05FV1NfRVZFTlRTID0gIi9zaXRlL2FqYXgvYWpheC1uZXdzLWV2ZW50cy5waHAiOyB2YXIgQUpBWF9SRVNfT1BQUyA9ICIvc2l0ZS9jdXN0b21fc2NyaXB0cy9yZXNlYXJjaC1vcHBvcnR1bml0aWVzLWluZGV4LnBocCI7IHZhciBTRUFSQ0hfUkVTVUxUUyA9ICIvc2l0ZS9jdXN0b21fc2NyaXB0cy9zZWFyY2gtcmVzdWx0cy5waHAiOzwvc2NyaXB0PgoKPHNjcmlwdCBzcmM9Imh0dHBzOi8vY29kZS5qcXVlcnkuY29tL2pxdWVyeS0xLjExLjMubWluLmpzIj48L3NjcmlwdD4KPHNjcmlwdCBzcmM9Imh0dHBzOi8vcHJvZHVjdGlvbjIubGVlZHMuYWMudWsvamFkdWNkbi90aGVtZXMvZGVmYXVsdC9hc3NldHMvZGlzdC9zY3JpcHQubWluLmpzP3ZlcnNpb249ZmIyYTllMmMxOTEwYWE3ZjgxYmVlMjNmMGI0YTc4MGEiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9wcm9kdWN0aW9uMi5sZWVkcy5hYy51ay9qYWR1Y2RuL3RoZW1lcy9kZWZhdWx0L2Fzc2V0cy9qYWR1L2Rldi5taW4uanM/dmVyc2lvbj1mYjJhOWUyYzE5MTBhYTdmODFiZWUyM2YwYjRhNzgwYSI+PC9zY3JpcHQ+CiAgICAgICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vcHJvZHVjdGlvbjIubGVlZHMuYWMudWsvamFkdWNkbi90aGVtZXMvZGVmYXVsdC9hc3NldHMvZGlzdC9jb29raWVzLm1pbi5qcz92ZXJzaW9uPWZiMmE5ZTJjMTkxMGFhN2Y4MWJlZTIzZjBiNGE3ODBhIj48L3NjcmlwdD4KPHNjcmlwdD4KICAgIGlmKHR5cGVvZiBjb29raWVDb25zZW50ICE9PSAidW5kZWZpbmVkIil7CiAgICAgICAgLy9Db29raWVzIGNvbXBsaWFuY2UKICAgICAgICBjb29raWVDb25zZW50LmluaXQoewogICAgICAgICAgICB1cmw6ICcvL2Vwcy5sZWVkcy5hYy51ay9wcml2YWN5LycsCiAgICAgICAgICAgIGdvb2dsZTogdHJ1ZSwKICAgICAgICAgICAgZmFjZWJvb2s6IHRydWUKICAgICAgICB9KTsKICAgIH0KPC9zY3JpcHQ+CiAgICAgICAgICAgIDwvYm9keT4KPC9odG1sPgo=\"}]}"},{"id":1887,"title":"Graceful Graph: Wichmann Rulers","description":"This Challenge is to find maximum size Graceful Graphs via Wichmann Rulers for P\u003e13.  This Challenge is related to the \u003chttp://www.azspcs.net/Contest/GracefulGraphs Graceful Graph Contest\u003e which Rokicki completed in 97 minutes. The Wichmann Conjecture is that no larger solutions exist for P\u003e13.\r\n\r\nAn Optimal ruler is defined as having end points at 0 and Max with P-2 integer points between [0,Max] such that the distances 1 thru Max exist by deltas between points.\r\nAn \u003chttp://oeis.org/A193802 Optimal Wichmann Ruler\u003e readily creates solutions that can be tested for number of points and existence of all expected deltas.\r\n\r\nThe Wichmann difference vector is [Q(1,r), r+1, Q(2r+1,r), Q(4r+3,s), Q(2r+2,r+1), Q(1,r)] where Q(a,b) is b a's, e.g. Q(2,3) is [2 2 2]. The max value is L=4r(r+s+2)+3(s+1) for Points P=4r+s+3, (r and s \u003e=0 and integer).\r\n\r\nFor W(r,s), W(2,3) creates the difference sequence [1 1 3 5 5 11 11 11 6 6 6 1 1]. The points on the ruler are the cumsum of W with a zero pre-pended to produce S=[0 1 2 5 10 15 26 37 48 54 60 66 67 68], P=14. All deltas from 1 thru 68 can be realized.\r\n\r\n*Input:* P  (Number of Points on the ruler)\r\n\r\n*Output:* S (Vector of length P of locations on the ruler, 0 thru Max Value and can generate all deltas 1:S(end))\r\n\r\n*Notes:*\r\n\r\n  1) A W(r,s) does not guarantee all deltas can be generated\r\n  2) For any P there are multiple W(r,s) solutions \r\n  3) P=5 solution is 9, readily solved by brute force\r\n  4) P=13 Wichmann is 57 but the best solution is 58. Too big for brute force\r\n  5) Create Connectivity Graph for Cases, like Final Matlab Competition, for Fun ","description_html":"\u003cp\u003eThis Challenge is to find maximum size Graceful Graphs via Wichmann Rulers for P\u003e13.  This Challenge is related to the \u003ca href = \"http://www.azspcs.net/Contest/GracefulGraphs\"\u003eGraceful Graph Contest\u003c/a\u003e which Rokicki completed in 97 minutes. The Wichmann Conjecture is that no larger solutions exist for P\u003e13.\u003c/p\u003e\u003cp\u003eAn Optimal ruler is defined as having end points at 0 and Max with P-2 integer points between [0,Max] such that the distances 1 thru Max exist by deltas between points.\r\nAn \u003ca href = \"http://oeis.org/A193802\"\u003eOptimal Wichmann Ruler\u003c/a\u003e readily creates solutions that can be tested for number of points and existence of all expected deltas.\u003c/p\u003e\u003cp\u003eThe Wichmann difference vector is [Q(1,r), r+1, Q(2r+1,r), Q(4r+3,s), Q(2r+2,r+1), Q(1,r)] where Q(a,b) is b a's, e.g. Q(2,3) is [2 2 2]. The max value is L=4r(r+s+2)+3(s+1) for Points P=4r+s+3, (r and s \u003e=0 and integer).\u003c/p\u003e\u003cp\u003eFor W(r,s), W(2,3) creates the difference sequence [1 1 3 5 5 11 11 11 6 6 6 1 1]. The points on the ruler are the cumsum of W with a zero pre-pended to produce S=[0 1 2 5 10 15 26 37 48 54 60 66 67 68], P=14. All deltas from 1 thru 68 can be realized.\u003c/p\u003e\u003cp\u003e\u003cb\u003eInput:\u003c/b\u003e P  (Number of Points on the ruler)\u003c/p\u003e\u003cp\u003e\u003cb\u003eOutput:\u003c/b\u003e S (Vector of length P of locations on the ruler, 0 thru Max Value and can generate all deltas 1:S(end))\u003c/p\u003e\u003cp\u003e\u003cb\u003eNotes:\u003c/b\u003e\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003e1) A W(r,s) does not guarantee all deltas can be generated\r\n2) For any P there are multiple W(r,s) solutions \r\n3) P=5 solution is 9, readily solved by brute force\r\n4) P=13 Wichmann is 57 but the best solution is 58. Too big for brute force\r\n5) Create Connectivity Graph for Cases, like Final Matlab Competition, for Fun \r\n\u003c/pre\u003e","function_template":"function s=Graceful_Wichmann(n)\r\n  s=0;\r\nend","test_suite":"%%\r\ntic\r\nn=17;\r\nexp=101;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=19;\r\nexp=123;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=23;\r\nexp=183;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=29;\r\nexp=289;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=31;\r\nexp=327;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=37;\r\nexp=465;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=41;\r\nexp=573;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=43;\r\nexp=627;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=47;\r\nexp=751;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=53;\r\nexp=953;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=59;\r\nexp=1179;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=61;\r\nexp=1257;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=67;\r\nexp=1515;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=71;\r\nexp=1703;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=73;\r\nexp=1797;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=79;\r\nexp=2103;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=83;\r\nexp=2323;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=89;\r\nexp=2669;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc\r\n%%\r\nn=97;\r\nexp=3165;\r\nS=Graceful_Wichmann(n);\r\nassert(S(end)==exp)\r\ndelta=abs(repmat(S,n,1)-repmat(S',1,n));\r\nassert(length(unique(delta(:)))==S(end)+1)  % zero increases delta unique\r\ntoc","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":5,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2013-09-23T01:30:25.000Z","updated_at":"2013-09-23T13:04:40.000Z","published_at":"2013-09-23T04:00:18.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 Challenge is to find maximum size Graceful Graphs via Wichmann Rulers for P\u0026gt;13. This Challenge is related to the\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://www.azspcs.net/Contest/GracefulGraphs\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eGraceful Graph Contest\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e which Rokicki completed in 97 minutes. The Wichmann Conjecture is that no larger solutions exist for P\u0026gt;13.\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\u003eAn Optimal ruler is defined as having end points at 0 and Max with P-2 integer points between [0,Max] such that the distances 1 thru Max exist by deltas between points. An\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://oeis.org/A193802\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eOptimal Wichmann Ruler\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e readily creates solutions that can be tested for number of points and existence of all expected deltas.\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\u003eThe Wichmann difference vector is [Q(1,r), r+1, Q(2r+1,r), Q(4r+3,s), Q(2r+2,r+1), Q(1,r)] where Q(a,b) is b a's, e.g. Q(2,3) is [2 2 2]. The max value is L=4r(r+s+2)+3(s+1) for Points P=4r+s+3, (r and s \u0026gt;=0 and integer).\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 W(r,s), W(2,3) creates the difference sequence [1 1 3 5 5 11 11 11 6 6 6 1 1]. The points on the ruler are the cumsum of W with a zero pre-pended to produce S=[0 1 2 5 10 15 26 37 48 54 60 66 67 68], P=14. All deltas from 1 thru 68 can be realized.\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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eInput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e P (Number of Points on the ruler)\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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eOutput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e S (Vector of length P of locations on the ruler, 0 thru Max Value and can generate all deltas 1:S(end))\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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eNotes:\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[1) A W(r,s) does not guarantee all deltas can be generated\\n2) For any P there are multiple W(r,s) solutions \\n3) P=5 solution is 9, readily solved by brute force\\n4) P=13 Wichmann is 57 but the best solution is 58. Too big for brute force\\n5) Create Connectivity Graph for Cases, like Final Matlab Competition, for Fun]]\u003e\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:\"oeis\"","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:\"oeis\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"oeis\"","","\"","oeis","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f6c89753490\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f6c897533f0\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f6c89752b30\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f6c89753710\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f6c89753670\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f6c897535d0\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f6c89753530\u003e":"tag:\"oeis\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f6c89753530\u003e":"tag:\"oeis\""},"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":"cody-search","password":"78X075ddcV44","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:\"oeis\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"oeis\"","","\"","oeis","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f6c89753490\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f6c897533f0\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f6c89752b30\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f6c89753710\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f6c89753670\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f6c897535d0\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f6c89753530\u003e":"tag:\"oeis\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f6c89753530\u003e":"tag:\"oeis\""},"queried_facets":{}},"options":{"fields":["id","difficulty_rating"]},"join":" "},"results":[{"id":45224,"difficulty_rating":"easy"},{"id":2736,"difficulty_rating":"easy-medium"},{"id":1298,"difficulty_rating":"easy-medium"},{"id":42800,"difficulty_rating":"easy-medium"},{"id":45231,"difficulty_rating":"easy-medium"},{"id":2733,"difficulty_rating":"easy-medium"},{"id":2734,"difficulty_rating":"easy-medium"},{"id":44360,"difficulty_rating":"easy-medium"},{"id":61083,"difficulty_rating":"medium"},{"id":2595,"difficulty_rating":"medium"},{"id":42355,"difficulty_rating":"unrated"},{"id":1886,"difficulty_rating":"unrated"},{"id":1887,"difficulty_rating":"unrated"}]}}