# The Programming Language Quiz, Mark II - Cops

A repost of this challenge. Meta discussion. Sandbox post. Body of the question similar to the original

Robber's challenge

This cops and robbers is now (08/03/2018) closed to further competing cop entries, as robbers may no longer be competing to crack answers, but feel free to post new answers.

The Cops challenge was won by Dennis with his brilliant 6 byte Sesos answer

The Robbers challenge was won by totallyhuman, with an astounding 30 cracks!

## The Cops' Challenge

To compete as a cop:

1. Choose a programming language. A valid programming language is one which meets all three of these criteria:

2. Write a full program that outputs the numbers from 1 to 100, inclusive, in ascending order. You can output as decimal integers, as bytecode values (! to represent 33, for instance), or as unary digits (1111 for 4, e.g)1. If using unary, you should use any consistent character for digits, and a different, consistent character as a delimiter. If using integers, you should output with a constant non-digit delimiter between each number. You may also output with leading and trailing characters (such as []) but please be sensible (don't output a thousand bytes of rubbish either side of the count for instance). You must specify your output format in your answer.

You must not assume a REPL environment or existing boilerplate code. Flags may be used, but you must reveal what flags are used in your answer. The program must be in the form of one or more source files (to rule out quirky languages like Folders) and must fit into your answer in full (so it must not be longer than 65,536 characters) - this shouldn't be an issue for any serious submission.

If your code contains bytes outside of printable ASCII + newline, please include a hex dump to make sure your code is actually testable.

The program must terminate within 5 minutes on a typical desktop PC.

That's it. However, as with everything, there is a catch. You should aim to obfuscate your program as much as possible, as the Robbers' task is to guess the language you used. You should also aim to make sure that your program only works in the intended language (although this is likely to be less of a problem than the Foo cracks in the original challenge). The output format must be the same as your intended solution in order to constitute a valid crack.

Once 7 days have passed without anyone discovering any language where your program is a valid crack, you may reveal the language and mark it as safe. Please note, your submission can still be cracked until you reveal the language.

You must not under any circumstances edit the source code of your submission once posted (as this may invalidate a robber's active attempts at cracking your answer). So make sure that you golf it as well as you can (or dare) before posting. If you realise that your answer does not work after posting it, simply delete your answer and post a fixed version if you want to.

The shortest safe submission in bytes wins!

### The Stack Snippet

You can use this stack snippet to browse the answers more easily:

answersSafe=[];answersCracked=[];answersUncracked=[];answerPage=1;robberTodo=[];userNames={};robberMap={};robberStats={};robberTimes={};function template($element,data){var$clone=$element.clone().removeClass('template');var html=$clone.html();for(var key in data){html=html.replace('{'+key+'}',data[key])}$clone.html(html);$element.after($clone)}function hideEmpty(){$('tbody').each(function(){if($(this).find('tr:not(.template):has(td)').length==0){$(this).find('tr:not(.empty):has(th)').addClass('inactive');$(this).find('tr.empty').removeClass('inactive')}})}function formatError(obj,reason){template($('.warn.template'),{id:obj.cop_id,cop:obj.cop_user,reason:reason})}function showAnswers(category,selector,sorter){sorter(category);$('#'+selector).find('tr:not(.template):has(td)').remove();$.each(category,function(i,answer){template($('#'+selector+' .template'),answer)});$('code:has(br)').addClass('clickable').click(function(){$(this).toggleClass('full')});updateCountdowns()}function getAnswers(){$.ajax({url:"https://api.stackexchange.com/2.2/questions/155018/answers?pagesize=100&order=desc&sort=creation&site=codegolf&filter=!*LUzJZNOIUpZsWsZBLe&page="+(answerPage++),method:"get",dataType:"jsonp"}).then(function(data){$.each(data.items,function(i,answer){var obj={cop_id:answer.answer_id,cop_user:answer.owner.display_name,cop_time:answer.creation_date,safe_on:answer.creation_date+604800};var$e=$('<div/>').html(answer.body);var$headers=$e.find(':header');if($headers.length==0){return formatError(obj,"no header")}var header=$headers.first().html();var$code=$e.find('pre code');if($code.length==0){return formatError(obj,"no code")}obj.code=$code.first().html().replace(/\n/g,'<br/>');if(obj.code.endsWith('<br/>')){obj.code=obj.code.slice(0,-5)}var bm=/(\d+)\s+bytes/.exec(header);if(bm==null){return formatError(obj,"no bytecount")}obj.size=parseInt(bm[1]);if(obj.size==NaN){return formatError(obj,"bytecount is NaN: "+bm[1])}obj.language=header.slice(0,bm.index).trim();while(obj.language.charAt(obj.language.length-1)!=','&&obj.language.length!=0){obj.language=obj.language.slice(0,-1)}if(obj.language.length==0){return formatError(obj,"no/bad separator before bytecount")}obj.language=obj.language.slice(0,-1).trim();obj.language_text=$('<div/>').html(obj.language).text();var end=header.slice(bm.index+bm[0].length).trim();if(end.length==0){if(obj.language!=="???"){return formatError(obj,"not marked as safe nor cracked, but language is "+obj.language+" (expected ???)")}return answersUncracked.push(obj)}if(!end.startsWith(',')){return formatError(obj,"no/bad separator after bytecount")}end=end.slice(1).trim();if(end==='safe'){return answersSafe.push(obj)}var $end=$('<div/>').html(end);var end_text=$end.text();if(!end_text.startsWith('cracked')){return formatError(obj,"expected 'cracked' or 'safe', got '"+end_text+"'")}var expectedURL='https://codegolf.stackexchange.com/a/';var$links=$end.find('a');if($links.length==0){return formatError(obj,"no cracked link")}var robberURL=$links.first().attr('href');if(!robberURL.startsWith(expectedURL)){return formatError(obj,"link does not start with "+expectedURL+": "+robberURL)}obj.robber_id=parseInt(robberURL.slice(expectedURL.length));if(obj.robber_id==NaN){return formatError(obj,"robber_id is NaN")}robberTodo.push(obj.robber_id);answersCracked.push(obj)});if(data.has_more){getAnswers()}else{getRobbers()}})}function sortBySize(category){category.sort(function(a,b){return b.size-a.size})}function sortByTime(category){category.sort(function(a,b){return b.cop_time-a.cop_time})}function sortByLiveTime(category){category.sort(function(a,b){return b.cracked_after-a.cracked_after})}function sortByCop(category){category.sort(function(a,b){return b.cop_user.localeCompare(a.cop_user)})}function sortByRobber(category){category.sort(function(a,b){return b.robber_user.localeCompare(a.robber_user)})}function sortByLanguage(category){category.sort(function(a,b){return b.language_text.localeCompare(a.language_text)})}function getRobbers(){if(robberTodo.length==0){$.each(answersCracked,function(i,answer){answer.robber_user=userNames[robberMap[answer.robber_id]];answer.cracked_after=robberTimes[answer.robber_id]-answer.cop_time;answer.cracked_after_str=formatTime(answer.cracked_after)});showAnswers(answersUncracked,'uncracked',sortByTime);showAnswers(answersCracked,'cracked',sortByLiveTime);showAnswers(answersSafe,'safe',sortBySize);hideEmpty();var graphData=[];$.each(robberStats,function(k,v){graphData.push({name:decodeEntities(userNames[k]),value:v})});graphData.sort(function(a,b){if(a.value==b.value){return a.name.localeCompare(b.name)}else{return b.value-a.value}});var graphLabels=[];var graphValues=[];$.each(graphData,function(i,obj){graphLabels.push(obj.name);graphValues.push(obj.value)});var graphColors=[];for(var i=0;i<graphData.length;i+=1){graphColors.push(['#b58900','#cb4b16','#dc322f','#d33682','#6c71c4','#268bd2','#2aa198','#859900'][i%8])}$('#robber-stats').attr('width',600);$('#robber-stats').attr('height',24*graphData.length+66);$('#answer-stats').attr('width',600);$('#answer-stats').attr('height',400);Chart.defaults.global.defaultFontColor='#839496';new Chart(('#robber-stats'),{type:'horizontalBar',data:{labels:graphLabels,datasets:[{data:graphValues,backgroundColor:graphColors}]},options:{responsive:false,legend:false,tooltips:false,layout:{padding:{right:40}},title:{display:true,text:'Number of answers cracked per robber',fontSize:18},scales:{yAxes:[{gridLines:{display:false}}],xAxes:[{gridLines:{display:false},ticks:{beginAtZero:true}}]},plugins:{datalabels:{anchor:'end',align:'end'}}}});new Chart(('#answer-stats'),{type:'pie',data:{labels:['Uncracked','Cracked','Safe'],datasets:[{data:[answersUncracked.length,answersCracked.length,answersSafe.length],backgroundColor:['#2aa198','#dc322f','#859900'],borderColor:'#002b36'}]},options:{responsive:false,tooltips:{backgroundColor:'#073642',displayColors:false},title:{display:true,text:'Number of answers in each category',fontSize:18},plugins:{datalabels:false}}});updateCountdowns();setInterval(updateCountdowns,1000);$('#loading').hide()}else{$.ajax({url:"https://api.stackexchange.com/2.2/answers/"+robberTodo.slice(0,100).join(';')+"?site=codegolf&filter=!*RB.h_b*K*dQTllFUdy",method:"get",dataType:"jsonp"}).then(function(data){$.each(data.items,function(i,robber){robberTodo=robberTodo.filter(function(e){return e!==robber.answer_id});robberMap[robber.answer_id]=robber.owner.user_id;robberTimes[robber.answer_id]=robber.creation_date;userNames[robber.owner.user_id]=robber.owner.display_name;if(robber.owner.user_id in robberStats){robberStats[robber.owner.user_id]+=1}else{robberStats[robber.owner.user_id]=1}});getRobbers()})}}var decodeEntities=(function(){var element=document.createElement('div');function decodeHTMLEntities(str){if(str&&typeof str==='string'){str=str.replace(/<script[^>]*>([\S\s]*?)<\/script>/gmi,'');str=str.replace(/<\/?\w(?:[^"'>]|"[^"]*"|'[^']*')*>/gmi,'');element.innerHTML=str;str=element.textContent;element.textContent=''}return str}return decodeHTMLEntities})();function formatTime(seconds){var arr=[];if(seconds>86400){arr.push(Math.floor(seconds/86400)+" days");seconds%=86400}if(seconds>3600){arr.push(Math.floor(seconds/3600)+" hours");seconds%=3600}if(seconds>60){arr.push(Math.floor(seconds/60)+" minutes");seconds%=60}if(seconds!=0){arr.push(seconds+" seconds")}return arr.join(', ').split('').reverse().join('').replace(',','dna ').split('').reverse().join('')}function updateCountdowns(){$('tr:not(.template) .countdown').each(function(){var target=$(this).attr('data-target');var now=Math.floor(+new Date()/1000);if(target-now<86400){$(this).addClass('urgent')}else{$(this).removeClass('urgent')}if(target<now){$(this).removeClass('countdown').text('Safe! (according to your computer\'s time)')}else{$(this).text(formatTime(target-now))}})}$('thead, #stats-header').click(function(){(this).toggleClass('hidden')});getAnswers(); *{margin:0;padding:0;font:12pt sans-serif;}html,body{background:#002b36;color:#839496;width:100%;height:100%;}body>:not(.i):not(#loading){margin:5px;}#loading{background:rgb(64,64,64,0.8);position:fixed;top:0;left:0;width:100%;height:100%;display:table;z-index:100;}#loading-wrapper{display:table-cell;vertical-align:middle;text-align:center;font-size:20pt;color:#ddd;}#fullpage-msg,.warn{padding:5px 5px 5px 5px;margin:10px 0px;}@media (min-width:800px){#fullpage-msg{display:none;}}a{color:#268bd2;}code{font-family:monospace;font-size:16px;background:#073642;padding:1px 5px;white-space:pre;position:relative;}.clickable{cursor:pointer;}code:not(.full){max-height:38px;overflow:hidden;}code.clickable:not(.full):before{content:'';background:linear-gradient(transparent 20px,rgba(7,54,66,0.8) 32px,#002b36);position:absolute;top:0;left:0;width:100%;height:100%;}td,th{padding:5px;vertical-align:top;white-space:nowrap;text-align:left;}thead th,#stats-header{font-size:20pt;margin:10px 0;user-select:none;-ms-user-select:none;-moz-user-select:none;-webkit-user-select:none;cursor:pointer;}th{font-weight:bold;}path{fill:#839496;}thead:not(.hidden) .right-arrow,#stats-header:not(.hidden) .right-arrow,thead.hidden .down-arrow,#stats-header.hidden .down-arrow{visibility:hidden;}.hidden+tbody,.hidden+#stats,.template,.inactive{display:none;}small,code{display:block;}small,small a{font-size:8pt;}#stats-header{font-weight:bold;padding:6px;}.urgent{color:#dc322f;} <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.1/Chart.min.js"></script><script>!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(require("chart.js")):"function"==typeof define&&define.amd?define(["chart.js"],e):e(t.Chart)}(this,function(t){"use strict";var e=(t=t&&t.hasOwnProperty("default")?t.default:t).helpers,n={toTextLines:function(t){var n,a=[];for(t=[].concat(t);t.length;)"string"==typeof(n=t.pop())?a.unshift.apply(a,n.split("\n")):Array.isArray(n)?t.push.apply(t,n):e.isNullOrUndef(t)||a.unshift(""+n);return a},toFontString:function(t){return!t||e.isNullOrUndef(t.size)||e.isNullOrUndef(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family},textSize:function(t,e,n){var a,r=[].concat(e),i=r.length,o=t.font,l=0;for(t.font=n.string,a=0;a<i;++a)l=Math.max(t.measureText(r[a]).width,l);return t.font=o,{height:i*n.lineHeight,width:l}},parseFont:function(a){var r=t.defaults.global,i=e.valueOrDefault(a.size,r.defaultFontSize),o={family:e.valueOrDefault(a.family,r.defaultFontFamily),lineHeight:e.options.toLineHeight(a.lineHeight,i),size:i,style:e.valueOrDefault(a.style,r.defaultFontStyle),weight:e.valueOrDefault(a.weight,null),string:""};return o.string=n.toFontString(o),o},bound:function(t,e,n){return Math.max(t,Math.min(e,n))}};function a(t,e){var n=e.x,a=e.y;if(null===n)return{x:0,y:-1};if(null===a)return{x:1,y:0};var r=t.x-n,i=t.y-a,o=Math.sqrt(r*r+i*i);return{x:o?r/o:0,y:o?i/o:-1}}function r(t,e,n,a,r){switch(r){case"center":n=a=0;break;case"bottom":n=0,a=1;break;case"right":n=1,a=0;break;case"left":n=-1,a=0;break;case"top":n=0,a=-1;break;case"start":n=-n,a=-a;break;case"end":break;default:r*=Math.PI/180,n=Math.cos(r),a=Math.sin(r)}return{x:t,y:e,vx:n,vy:a}}var i={arc:function(t,e,n){var a,i=(t.startAngle+t.endAngle)/2,o=Math.cos(i),l=Math.sin(i),s=t.innerRadius,d=t.outerRadius;return a="start"===e?s:"end"===e?d:(s+d)/2,r(t.x+o*a,t.y+l*a,o,l,n)},point:function(t,e,n,i){var o=a(t,i),l=t.radius,s=0;return"start"===e?s=-l:"end"===e&&(s=l),r(t.x+o.x*s,t.y+o.y*s,o.x,o.y,n)},rect:function(t,e,n,i){var o=t.horizontal,l=Math.abs(t.base-(o?t.x:t.y)),s=o?Math.min(t.x,t.base):t.x,d=o?t.y:Math.min(t.y,t.base),u=a(t,i);return"center"===e?o?s+=l/2:d+=l/2:"start"!==e||o?"end"===e&&o&&(s+=l):d+=l,r(s,d,u.x,u.y,n)},fallback:function(t,e,n,i){var o=a(t,i);return r(t.x,t.y,o.x,o.y,n)}},o=t.helpers;var l=function(t,e){this._el=t,this._index=e,this._model=null};o.extend(l.prototype,{_modelize:function(e,a,r,l){var s,d=this._index,u=o.options.resolve,f=n.parseFont(u([r.font,{}],l,d));return{align:u([r.align,"center"],l,d),anchor:u([r.anchor,"center"],l,d),backgroundColor:u([r.backgroundColor,null],l,d),borderColor:u([r.borderColor,null],l,d),borderRadius:u([r.borderRadius,0],l,d),borderWidth:u([r.borderWidth,0],l,d),color:u([r.color,t.defaults.global.defaultFontColor],l,d),font:f,lines:a,offset:u([r.offset,0],l,d),opacity:u([r.opacity,1],l,d),origin:function(t){var e=t._model.horizontal,n=t._scale||e&&t._xScale||t._yScale;if(!n)return null;if(void 0!==n.xCenter&&void 0!==n.yCenter)return{x:n.xCenter,y:n.yCenter};var a=n.getBasePixel();return e?{x:a,y:null}:{x:null,y:a}}(this._el),padding:o.options.toPadding(u([r.padding,0],l,d)),positioner:(s=this._el,s instanceof t.elements.Arc?i.arc:s instanceof t.elements.Point?i.point:s instanceof t.elements.Rectangle?i.rect:i.fallback),rotation:u([r.rotation,0],l,d)*(Math.PI/180),size:n.textSize(e,a,f),textAlign:u([r.textAlign,"start"],l,d)}},update:function(t,e,a){var r,i,l,s=null,d=this._index;o.options.resolve([e.display,!0],a,d)&&(r=a.dataset.data[d],i=o.valueOrDefault(o.callback(e.formatter,[r,a]),r),s=(l=o.isNullOrUndef(i)?[]:n.toTextLines(i)).length?this._modelize(t,l,e,a):null),this._model=s},draw:function(t){var e,a,r,i,l,s,d,u,f,h,c,y,g,x,b=this._model;b&&b.opacity&&(r=b.size,i=b.padding,l=r.height,s=r.width,u=-l/2,e={frame:{x:(d=-s/2)-i.left,y:u-i.top,w:s+i.width,h:l+i.height},text:{x:d,y:u,w:s,h:l}},a=function(t,e,n){var a=e.positioner(t._view,e.anchor,e.align,e.origin),r=a.vx,i=a.vy;if(!r&&!i)return{x:a.x,y:a.y};var o=e.borderWidth||0,l=n.w+2*o,s=n.h+2*o,d=e.rotation,u=Math.abs(l/2*Math.cos(d))+Math.abs(s/2*Math.sin(d)),f=Math.abs(l/2*Math.sin(d))+Math.abs(s/2*Math.cos(d)),h=1/Math.max(Math.abs(r),Math.abs(i));return u*=r*h,f*=i*h,u+=e.offset*r,f+=e.offset*i,{x:a.x+u,y:a.y+f}}(this._el,b,e.frame),t.save(),t.globalAlpha=n.bound(0,b.opacity,1),t.translate(Math.round(a.x),Math.round(a.y)),t.rotate(b.rotation),f=t,h=e.frame,y=(c=b).backgroundColor,g=c.borderColor,x=c.borderWidth,(y||g&&x)&&(f.beginPath(),o.canvas.roundedRect(f,Math.round(h.x)-x/2,Math.round(h.y)-x/2,Math.round(h.w)+x,Math.round(h.h)+x,c.borderRadius),f.closePath(),y&&(f.fillStyle=y,f.fill()),g&&x&&(f.strokeStyle=g,f.lineWidth=x,f.lineJoin="miter",f.stroke())),function(t,e,n,a){var r,i,o,l=a.textAlign,s=a.font.lineHeight,d=a.color,u=e.length;if(u&&d)for(r=n.x,i=n.y+s/2,"center"===l?r+=n.w/2:"end"!==l&&"right"!==l||(r+=n.w),t.font=a.font.string,t.fillStyle=d,t.textAlign=l,t.textBaseline="middle",o=0;o<u;++o)t.fillText(e[o],Math.round(r),Math.round(i),Math.round(n.w)),i+=s}(t,b.lines,e.text,b),t.restore())}});var s=t.helpers,d={align:"center",anchor:"center",backgroundColor:null,borderColor:null,borderRadius:0,borderWidth:0,color:void 0,display:!0,font:{family:void 0,lineHeight:1.2,size:void 0,style:void 0,weight:null},offset:4,opacity:1,padding:{top:4,right:4,bottom:4,left:4},rotation:0,textAlign:"start",formatter:function(t){if(s.isNullOrUndef(t))return null;var e,n,a,r=t;if(s.isObject(t))if(s.isNullOrUndef(t.label))if(s.isNullOrUndef(t.r))for(r="",a=0,n=(e=Object.keys(t)).length;a<n;++a)r+=(0!==a?", ":"")+e[a]+": "+t[e[a]];else r=t.r;else r=t.label;return""+r}},u=t.helpers,f="datalabels";t.defaults.global.plugins.datalabels=d,t.plugins.register({id:"datalabels",afterDatasetUpdate:function(t,e,n){var a,r,i,o,s,d=t.data.datasets[e.index],h=(a=n,!1===(r=d.datalabels)?null:(!0===r&&(r={}),u.merge({},[a,r]))),c=e.meta.data||[],y=c.length,g=t.ctx;for(g.save(),i=0;i<y;++i)(o=c[i])&&!o.hidden?(s=new l(o,i)).update(g,h,{chart:t,dataIndex:i,dataset:d,datasetIndex:e.index}):s=null,o[f]=s;g.restore()},afterDatasetDraw:function(t,e){var n,a,r=e.meta.data||[],i=r.length;for(n=0;n<i;++n)(a=r[n][f])&&a.draw(t.ctx)}})});</script><div id="loading"><span id="loading-wrapper">Loading...</span></div><div id="fullpage-msg"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 111.577 111.577"><path d="M78.962,99.536l-1.559,6.373c-4.677,1.846-8.413,3.251-11.195,4.217c-2.785,0.969-6.021,1.451-9.708,1.451c-5.662,0-10.066-1.387-13.207-4.142c-3.141-2.766-4.712-6.271-4.712-10.523c0-1.646,0.114-3.339,0.351-5.064c0.239-1.727,0.619-3.672,1.139-5.846l5.845-20.688c0.52-1.981,0.962-3.858,1.316-5.633c0.359-1.764,0.532-3.387,0.532-4.848c0-2.642-0.547-4.49-1.636-5.529c-1.089-1.036-3.167-1.562-6.252-1.562c-1.511,0-3.064,0.242-4.647,0.71c-1.59,0.47-2.949,0.924-4.09,1.346l1.563-6.378c3.829-1.559,7.489-2.894,10.99-4.002c3.501-1.111,6.809-1.667,9.938-1.667c5.623,0,9.962,1.359,13.009,4.077c3.047,2.72,4.57,6.246,4.57,10.591c0,0.899-0.1,2.483-0.315,4.747c-0.21,2.269-0.601,4.348-1.171,6.239l-5.82,20.605c-0.477,1.655-0.906,3.547-1.279,5.676c-0.385,2.115-0.569,3.731-0.569,4.815c0,2.736,0.61,4.604,1.833,5.597c1.232,0.993,3.354,1.487,6.368,1.487c1.415,0,3.025-0.251,4.814-0.744C76.854,100.348,78.155,99.915,78.962,99.536z M80.438,13.03c0,3.59-1.353,6.656-4.072,9.177c-2.712,2.53-5.98,3.796-9.803,3.796c-3.835,0-7.111-1.266-9.854-3.796c-2.738-2.522-4.11-5.587-4.11-9.177c0-3.583,1.372-6.654,4.11-9.207C59.447,1.274,62.729,0,66.563,0c3.822,0,7.091,1.277,9.803,3.823C79.087,6.376,80.438,9.448,80.438,13.03z"/></svg> Click the "Full page" link in the top right for vastly superior experience</div><div class="warn template">&#9888; <a href="https://codegolf.stackexchange.com/a/{id}">This answer</a> by {cop} is not formatted correctly ({reason}).</div><table><thead><tr><th colspan="5"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 9 9"><path class="right-arrow" d="M 0 0 L 0 9 L 9 4.5 Z"/><path class="down-arrow" d="M 0 0 L 9 0 L 4.5 9 Z"/></svg> Uncracked answers</th></tr></thead><tbody id="uncracked"><tr><th colspan="3" onclick="showAnswers(answersUncracked, 'uncracked', sortByCop)" class="clickable">Posted by</th><th onclick="showAnswers(answersUncracked, 'uncracked', sortBySize)" class="clickable">Size</th><th onclick="showAnswers(answersUncracked, 'uncracked', sortByTime)" class="clickable">Safe in</th><th>Code</th></tr><tr class="empty inactive"><th colspan="5">There are no uncracked answers</th></tr><tr class="template"><td colspan="3"><a href="https://codegolf.stackexchange.com/a/{cop_id}">{cop_user}</a></td><td>{size} bytes</td><td><span class="countdown" data-target="{safe_on}"></span></td><td><code>{code}</code></td></tr></tbody><thead><tr><th colspan="5"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 9 9"><path class="right-arrow" d="M 0 0 L 0 9 L 9 4.5 Z"/><path class="down-arrow" d="M 0 0 L 9 0 L 4.5 9 Z"/></svg> Cracked answers</th></tr></thead><tbody id="cracked"><tr><th onclick="showAnswers(answersCracked, 'cracked', sortByCop)" class="clickable">Posted by</th><th onclick="showAnswers(answersCracked, 'cracked', sortByRobber)" class="clickable">Cracked by</th><th onclick="showAnswers(answersCracked, 'cracked', sortByLanguage)" class="clickable">Language</th><th onclick="showAnswers(answersCracked, 'cracked', sortBySize)" class="clickable">Size</th><th onclick="showAnswers(answersCracked, 'cracked', sortByLiveTime)" class="clickable">Cracked after</th><th>Code</th></tr><tr class="empty inactive"><th colspan="5">There are no cracked answers</th></tr><tr class="template"><td><a href="https://codegolf.stackexchange.com/a/{cop_id}">{cop_user}</a></td><td><a href="https://codegolf.stackexchange.com/a/{robber_id}">{robber_user}</a></td><td>{language}</td><td>{size} bytes</td><td>{cracked_after_str}</td><td><code>{code}</code></td></tr></tbody><thead><tr><th colspan="5"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 9 9"><path class="right-arrow" d="M 0 0 L 0 9 L 9 4.5 Z"/><path class="down-arrow" d="M 0 0 L 9 0 L 4.5 9 Z"/></svg> Safe answers</th></tr></thead><tbody id="safe"><tr><th colspan="2" onclick="showAnswers(answersSafe, 'safe', sortByCop)" class="clickable">Posted by</th><th onclick="showAnswers(answersSafe, 'safe', sortByLanguage)" class="clickable">Language</th><th colspan="2" onclick="showAnswers(answersSafe, 'safe', sortBySize)" class="clickable">Size</th><th>Code</th></tr><tr class="empty inactive"><th colspan="5">There are no safe answers</th></tr><tr class="template"><td colspan="2"><a href="https://codegolf.stackexchange.com/a/{cop_id}">{cop_user}</a></td><td>{language}</td><td colspan="2">{size} bytes</td><td><code>{code}</code></td></tr></tbody></table><div id="stats-header"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 9 9"><path class="right-arrow" d="M 0 0 L 0 9 L 9 4.5 Z"/><path class="down-arrow" d="M 0 0 L 9 0 L 4.5 9 Z"/></svg> Statistics</div><div id="stats"><div><canvas id="robber-stats"/></div><div><canvas id="answer-stats"/></div></div><small>Snippet made by <a href="https://codegolf.stackexchange.com/u/55934/" target="_blank">NieDzejkob</a>, licensed as <a href="https://creativecommons.org/licenses/by-sa/3.0/" target="_blank">CC 3.0 BY-SA</a>. "Info" icon made by <a href="https://www.flaticon.com/authors/chanut" target="_blank">Chanut</a> from <a href="https://www.flaticon.com/" target="_blank">Flaticon</a>, licensed as <a href="http://creativecommons.org/licenses/by/3.0/" target="_blank">CC 3.0 BY</a>. "Arrow" icons made by <a href="https://codegolf.stackexchange.com/u/12012/" target="_blank">Dennis</a> for <a href="https://tio.run/" target="_blank">Try It Online</a>, licensed as <a href="https://github.com/TryItOnline/tryitonline/blob/master/LICENSE" target="_blank">MIT</a>. Some code shamelessly copy-pasted from <a href="https://stackoverflow.com/a/9609450">this answer</a> on Stack Overflow by <a href="https://stackoverflow.com/u/24950">Robert K</a>, licensed as <a href="https://creativecommons.org/licenses/by-sa/3.0/">CC 3.0 BY-SA</a>. This snippet utilises <a href="http://jquery.com/">jQuery</a> (<a href="https://github.com/jquery/jquery/blob/master/LICENSE.txt">MIT</a>), <a href="http://www.chartjs.org/">chart.js</a> (<a href="https://github.com/chartjs/Chart.js/blob/master/LICENSE.md">MIT</a>) and <a href="https://github.com/chartjs/chartjs-plugin-datalabels/">chartjs-plugin-datalabels</a> (<a href="https://github.com/chartjs/chartjs-plugin-datalabels/blob/master/LICENSE.md">MIT</a>). Color scheme: <a href="http://ethanschoonover.com/solarized">Solarized by Ethan Schoonover</a> (<a href="https://github.com/altercation/solarized/blob/master/LICENSE">MIT</a>).</small>

### Formatting

(Feel free to skip this section if you're not planning to participate as a cop)

This is required for new cop answers to make it possible for the snippet above to parse them.

# ???, [N] bytes


where [N] is the size of your code in bytes and ??? should appear literally.

• If the answer is not cracked for 7 days and you want to make your answer safe by revealing the language, simply replace the ??? and add safe to the end, e.g.

# Ruby, [N] bytes, safe


Feel free to have the language name link to a relevant website like an esolangs page or a GitHub repository. The link will then be displayed in the leaderboard.

• If another user successfully cracked your submission, please also add the language, along with a notice like

# Ruby, [N] bytes, [cracked](crack-link) by [user]


where [user] is the name of the user who submitted the first valid crack, and crack-link is a link to the corresponding answer in the Robbers' thread. Please use the short link format you get from the "share" button. Feel free to make the user name a link to their profile page.

If the language used in the crack is different from the one you intended, your answer is still cracked, and you shall follow this format. However, you can mention in the answer that you intended it to be something else. It's your choice on whether you want to reveal the intended answer, or if you want to let Robbers have more fun.

Good luck Cops!

• How not to compete in this challenge. Feb 8, 2018 at 17:55
• Note that if you're using a language with an interpreter on TIO, all someone has to do to crack your submission is try every language on TIO. Feb 8, 2018 at 23:08
• @mbomb007 Take a look at this comment. Aside from requesting that Robbers don't brute-force, there is nothing more that we can do to prevent this behaviour unfortunately. However, I invite anyone to downvote Robbers using scripts to brute-force submissions as it contradicts the spirit of the challenge. Feb 8, 2018 at 23:16
• @NieDzejkob I'd say that the compiler has to be on Wikipedia/Rosetta Code/Esolangs or be on TIO. Feb 13, 2018 at 15:45
• @cairdcoinheringaahing Both answers that inspired me to ask that question are a gray area: This Beatnik answer only works in some interpreters, and none of them have their own page. However, a working interpreter is linked on the esolangs page. In the case of this, the language is installed on TIO, but it's not listed on the language list. These answers have already been cracked, but I think that the rules should be modified to be unambigous in the future. Feb 13, 2018 at 16:24

# Beatnik, 114 bytes, cracked by Johannes Griebler

Mit' tää kauniina kelaa?
Mil tää öisin pelaa?
Sun suu kauniina sanoo:
Kroohhpyyh-ZZZ-ZZZZ Z
Nukuttaapi kovin!


It's a poem in Finnish! And a program. It prints the numbers as bytes.

English translation:

What does that beautiful think?
What does it play at night?
(snoring) ZZZ ZZZ
I feel very sleepy!


I'm surprised it took this long to crack this, especially as the another Beatnik submission was cracked quickly.

This does not work with the Python interpreter (used in TIO) because of the way it handles special characters. It considers Kroohhpyyh-ZZZ-ZZZZ to be three different words, while it should be interpreted as one big. Use the C interpreter to run this.

Explanation:

Mit' tää                   | Push 1
kauniina kelaa?            | Duplicate and print
Mil tää                    | Push 1
öisin                      | Nop
pelaa?                     | Pop 2 and push their sum
Sun suu                    | Nop
kauniina                   | Duplicate
sanoo: Kroohhpyyh-ZZZ-ZZZZ | Push 101
Z                          | Subtract
Nukuttaapi kovin!          | Jump 12 words backwards (to the first "kauniina")

• Dang, I fell for that trap. Feb 6, 2018 at 22:08
• Those "Z"s look suspicious... Feb 7, 2018 at 15:58
• Apparently in Finnish you snore with more Z's than in English... Feb 8, 2018 at 8:29
• Feb 11, 2018 at 20:53
• @quartata I knew people wouldn't bother to install the C interpreter. That's why I made sure that this program does not work in TIO. :P Feb 11, 2018 at 22:18

# Hexagony, 62 bytes, cracked by totallyhuman

i=100 while(i>0){p(100-i+"d")!}i=%<>--1;if(_@==0){_@=-100}end;


Prints decimals separated by a single lowercase d.

I'd be impressed if this works in any unintended language.

Since this has already been cracked, here is the actually executed code:

    i = 1 0 0      * equal to 105100, just has to be above 0 for the first number
. . . . . .
. . . . . . .
. . . . . . . .
" ) ! } i = % < >  * prints the number and stops if i % 100 == 0
. . . . . . . _
@ . . . . . .
. . . . . .
} . . d ;      * prints "d" and stores 100 in the memory edge


Everything else is a no-op, denoted by ..

• Cracked. Feb 7, 2018 at 10:42

# 8086DOSCOM, 58 bytes, cracked by tsh

huCX5DBP^h~0_GG1<h32X542P[18F18h42X%AAP[h!.X%OOSM a@<euws


I/O format: raw characters

## Explanation

The basic program looks like this:

    mov ax, 0x0e01 ; <b8><01><0e>
xor bx, bx     ; <31><db>
_loop:
pusha          ;
int 0x10       ; <cd><10>
popa           ; a
inc al         ; <fe><c0>
cmp al, 101    ; <e
jne _loop      ; u<f6>
ret            ; <c3>


However, this variant uses many unprintable characters, which would be a big hint. Fortunately, some printable instructions include:

and ax, imm16    %
xor [si], di     1<
xor [si+bx], di  18
xor ax, imm16    5
inc r16          @ABCDEFG
dec r16          HIJKLMNO
push r16         PQRSTUVW
pop r16          XYZ[\]^_
cmp al, imm8     <
pusha            
popa             a
push imm16       h


First, to avoid the unprintable characters caused by inc al, I used inc ax instead, since an overflow is not expected. Then I found a way to initialize AX and BX at the beginning with just printable characters.

    push 0x3234     ; h42
pop ax          ; X
and ax, 0x4141  ; %AA
push ax         ; P
pop bx          ; [

push 0x2e21     ; h!.
pop ax          ; X
and ax, 0x4F4F  ; %OO
_loop:
pusha           ;
int 0x10        ; <cd><10>
popa            ; a
inc ax          ; @
cmp al, 101     ; <e
jne _loop       ; u<f6>
ret             ; <c3>


Then, I employed self modifying code to fix the unprintables in int 0x10. That instruction in the final program resides at 0x0131, which is the value in SI these 5 instructions get me:

    push 0x4375     ; huC
pop ax          ; X
xor ax, 0x4244  ; 5DB
push ax         ; P
pop si          ; ^


Then, I found the best way to get the value of 0x10cd (x86 is little endian) is to xor 0x3080 with 0x204d:

    push 0x307e   ; h~0
pop di        ; _
inc di        ; G
inc di        ; G
xor [si], di  ; 1

; ...

pusha         ; 
dw 0x204d     ; M<space>
popa          ; a


Then, I used the same XOR value two more times, on the two final bytes in the program.

    push 0x3233     ; h32
pop ax          ; X
xor ax, 0x3234  ; 542
push ax         ; P
pop bx ; BX = 7 ; [

xor [si+bx], di ; 18
inc si          ; F
xor [si+bx], di ; 18

; ...

cmp al, 101     ; <e
db 0x75 ; jnz   ; u
dw 0x7377


First 0x7377 is xored with 0x3080 to get 0x43f7. Then 0x??43 (some garbage byte at 0x013a) ^ 0x3080 = 0x??c3, which sets the two final bytes to the correct values.

• – tsh
Feb 7, 2018 at 6:44

# ???, 1167 bytes, cracked by Dennis

The Man They Called Dennis (a song).

Dennis: a extremely decent golfer.
PPCG: a group of golfers.

Act I: Chorus.
[Enter Dennis]
"Dennis;
The man they call Dennis.
He took inspiration from J and he made the lang Jelly.
Stood up to the challenges and gave 'em what for.
Our love for him now ain't hard to explain.
The Hero of PPCG: the man they call Dennis."
[Exeunt]

Act 2: Verse 1
[Enter Dennis, PPCG.]
Now Dennis saw PPCG's backs breakin';
He saw PPCG's lament.....
And he saw that challenge takin'
So he said "You can't do this to my people; You can't let long language's answers win your challenges.
And Dennis booted up TIO! - and in five seconds flat,
[Exeunt]

Act 2: Chorus - revised, since my program is ending soon
[Enter Dennis]
"He took inspiration from J and he made the lang Jelly
Stood up to Python - and gave 'em what for
Our love for him now ain't hard to explain
The Hero of PPCG, the man they call Dennis (song slows with a dramatic high note finish)"
[Exeunt]

With thanks to Dennis for providing a character for this program, and Jayne Cobb for being the original Hero of Canton.


Honestly not sure how long this is going to last, but it was quite fun.

• This is ???. Feb 14, 2018 at 20:44
• I thought it was shakespeare Feb 15, 2018 at 19:54
• @tfbninja it makes no sense in shakespeare and likely errors out. I haven't tested it. Shakespeare requires you to use only actual characters as well, I doubt that Dennis was part of that. :) Feb 15, 2018 at 20:12
• Yeah it does error out, I had just stumbled on shakespeare before and this reminded me of it. Feb 15, 2018 at 21:04
• +1 for the Firefly reference. Jun 15, 2018 at 7:32

# Sesos, 6 bytes, safe

}%*xg2


Output is in decimal.

Try it online!

Sesos can be written in either binary or assembly format. The assembly file that generated the binary file above follows.

set mask
set numout

nop
rwd 1, sub 3
jnz


Try it online!

It took some odd choices (a useless fwd 1, a nop that could have been a jmp, add 44 and sub 3 instead of add 100 and sub 1), but I managed to create a binary file consisting solely of printable ASCII characters (so it wouldn't look like a binary file).

# Whitespace, 369 bytes, cracked by Adyrem

def v(n=[]): #[

#!"⠖⠔⠄⠑⠃⡆⠊⡬⠀⠞⠈⠀
#;;;
print(n*chr(33))

for		n in range(100):
#
#"
#"<<;?)*aanlll>1#<-#.:_:*aa@#.#!9fo"
v(n)
>d$/")!;\ xXxxxXXXxXXxX>({.< xx%c++=t=+~\ D.+L0~-tt/ ..R;MU ]+@x+++++++++[->++++++++++<]> [->+[->+>.<<]> [-<+>] <.< ] ~-<:<<<<:<||~[:?~-]|  This is a polyglot in at least 9 languages, but only one should work. Goooooood luck! Hint: The output format is unary Welp. That was cracked fast. For reference, the 9 languages were: • Whitespace (the intended language: outputs in unary spaces separated by tabs) • This was intended to be both a fake red herring and ironic, as the output would be completely invisible. • Python (the clue: would work up to 99 !s, but fails due to inconsistent use of tabs and spaces in indentation ;) ) • Hexagony (prints the numbers separated by their character codes) • Befunge-98 (prints the 100 numbers backwards) • ><> (prints odd numbers starting from 10) • Cardinal (prints 1 through 99) • brainfuck (prints in unary separated by the character codes) • Wise (prints negative 1 through 100) • and Braille (prints character codes 1 through 99) • What's the output format? Feb 14, 2018 at 12:13 • @Adyrem added it – Jo King Feb 14, 2018 at 12:18 • cracked Feb 14, 2018 at 12:37 • +1 almost skipped over Whitespace because I "didn't get any output" Feb 14, 2018 at 13:17 # ETA, 83 bytes, safe n = "e"; is n equh one hundre- SNACK?! 0v0 _ M-< / \_/ HA|E SNAKE!!! >:( T  Another one that's more ASCII art than code (though this one should be harder to crack). Outputs in ASCII codepoints. Try it online! ETA uses the 8 commands ETAOINSH (case-insensitive), and ignores everything else. The executing code here is: ne isnehonehne SNA HAE SNAE T  Which means: ne Push 0 to the stack is Increment the top value (get input, where EOF is -1, and subtract) neh Duplicate the current value o Output the character neh Duplicate the top value ne S No-op (push 0 and subtract) NA HAE Push 100 S Subtract 100 from the current value NAE Push 1 T Pop value and jump to line 1 if the value is not 0  • HA|E TRYING TO CRACK THIS!!! >:( Feb 11, 2018 at 3:49 # MATL, 46 bytes, cracked by totallyhuman Flatten[{1,100}] (* From x: 1 To 100: huhu% *)  I had fun trying to make this look somewhat like Mathematica, and trying to keep it fairly non-obvious. I only know two languages, so cracking it was probably not that hard. ### Explanation: F % Push False (0) l % ones. Stack: 0, 1 a % any. Stack: 0, 1 tt % duplicate last element twice. Stack: 0, 1, 1, 1 e % Reshape, last element reshaped into 1 row/column % Stack: 0, 1, 1 n % numel of last element on stack. Stack: 0, 1, 1 [ % Opening bracket for creating array { % Opening bracket for creating cell array 1,100 % Push 1, 100 }] % Closing brackets. Stack: 0, 1, 1, 1, 100 ( % Assignment indexing. Put a 1 in the 100th place of the variable above % Stack: 0, [1, 0, ... (98 x 0) ... ,0 ,1] * % Multiply 0 by array. Stack: [0, 0, ... 0] F % Push False (0). Stack: [0, 0, ... 0], 0 r % Push random number. Stack: [0, 0, ... 0], 0, 0.2431 o % Convert last number to double. Stack unaltered. m % ismember. Stack: [0, 0, ... 0], 0 x % Delete last element on stack. Stack: [0, 0, ... 0] : % Range to 0. Stack is empty. 1 % Push 1 T % Push True (1) o % Convert to double. Stack: 1, 1 100 % Push 100. Stack: 1, 1, 100 : % Range to 100. Stack: 1, 1, [1, 2, 3 ... 100] huhu % Horizontal concatenation and unique twice. % Stack: [1, 2, 3 ... 100] % *) % Comment to complete the Mathematica syntax comment.  • This is MATL. Feb 8, 2018 at 12:39 • You are taking MATL to unknown levels of expressiveness Feb 8, 2018 at 19:22 # Whirl, 3905 bytes, cracked by Potato44 +------------------------------------------------------------+ |111111111111111111111111111111111111111111111111$\       |
|000110011000111100011100100/010 0010 %p0-d% 0+{10000/111    |
|111000100111110001001000011 / 1111000100111110001001  frick |
|000 {01111110001(( 001111100010010000 1111110001()\ () !    |
|001111100010010000111 111000100111 1100010010000111111000100|
|111110001001(0000111)11100010011111!}000100100001111110001  |
|0011111|_0001001000011111100010011111 000100100001111110 001|
|001111100010010000111#1110001 001111100010010000111111000100|
|11111 H) /!00010010000111 1/1 100/0100111110001001000       |
| 011111100  & 01001111100010010000  111111000100111110001001|
|@  00001 11111000100111110 00100100001 111110 001001 111    |
| 1000 1001000011 11110 00100111110001001000011111100010  the|
|the 01111 100010010000111 111000 1001 111100010010 00011111 |
|1000100JO   1111100 010010000111 +=   11100010 011 11 KING  |
| 1000100100001 11111000100111110001 "0010000111111000100111 |
|110001001000011 11110 00100127  : 1111000100100 001   1     |
|11   11000100  11111000100100001111110001001111100010010000 |
|11111100 a  01001111100010  010000111111   000100111        |
| 1 1 0 0 0 1 0 0 1 0 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1|
|00 01 00 10 00 01 11 11 10 00 10 01 11 11 00 01 00 10 00 01 |
| 111 110 001 001 111 100 010 010 000 111 111 000 100 111 110|
|0010 0100 0011 1111 0001 0011 1110 0010 0100 0011 1111 0001 |
| 00111 11000 10010 00011 11110 00100 11111 00010 01000 01111|
|110001 001111 100010 010000 111111 000100 111110 001001     |
| 0000111 1110001 0011111 0001001 0000111 1110001 0011111    |
|00010010 00011111 10001001 11110001 00100001 11111000       |
| 100111110 001001000 011111100 010011111 000100100 001111110|
|0010011111 0001001000 0111111000 1001111100 0100100001      |
|                      ^1111100010^                          |
|0 111110001001000011111100010011111000100100001111110001    |
|0011111000100100001111110001001111100010010000111111000100  |
|  111110001001000011111100010011111000100100001111110001001 |
|   111100010010000111111000100111110001001000011111100010   |
| 0111110001001000011111100010011111000100100001111110001    |
|0011111000100100001111110001001111100010010000111111000100  |
|  1111100010010000111111000100111110001001000011111100010011|
|11100010010000 111111000100111110001001000011111100010011   |
|11100010010 00011111100010011111000100100001111110001001    |
|11110001+ 00100001111110' 001001111 10001001000011111100010 |
| 011111000100100001  1111100 010011  11100010010 00011      |
|1111JKL5 000100111110   0010010000   11111  1000   10011    |
|111 J 6700010010000111111^& E 00010011 L  11100 L 0 Y? bin  |
|100[print()100001111110   -001001111100010010000111]  111000|
|100 not 1111100 BRAIN010010000 FU1111 11000100CK  111110001 |
| rk:start 0010 0001111110001001 1111  0001001000011111100   |
|0100111110 dckx 001001  000011111  1000100111  11000100 help|
|100001 111110001001111100010010000111111000 1001111100010010|
|000-[111111000100??11111000100100001>1111100 {x=0-100}px    |
|111110001 00100001  11111000100111110 0010010000111111000100|
|1111 1000100100 +++001111  110001 0011111000  100100001 1111|
|100010  011111000100100001111<-1100010011111000100 10000111 |
|111 eval('\b00010011111000100100001111')-110001001--1111000-|
|1001000011]1111000100111110001001000011111100  010011111000 |
|10 +01>0000111 1  1 100 01001 1111 0001001 000011--1111  -  |
|0001001111100010010000111111000 1001111100010010000111111000|
|10011[111-0 0 01001000011 11110001001111100  010   010000111|
|111000 <100  1111100+010010 00 0.11111100010011111000100100 |
|001111110001001111100010>0100001111110001001111100010010000 |
|011000101010010101010111000000101011001]010100101010000 1010|
|111111111111111111111111111111111111111111111111111111111111|
+------------------------------------------------------------+


This is either going to be cracked really fast or not at all.

This had a lot of red herrings. Totallyhuman fell for the brainfuck one, which outputs every number except 1. Nhohnhehr has a valid 60 by 60 room, and it outputs in bits, but it outputs garbage. Brain-Flak has a few suspicious brackets etc... But Whirl is the intended language. This language only cares about 1s and 0s, and since I couldn't figure out loops, I just hardcoded adding one, printing, adding one etc., 100 times.

• @totallyhuman How many tries have you made before the correct one? {edit: still wrong} (remember one-guess rule) Feb 9, 2018 at 11:21
• @totallyhuman It's missing the ascii code point for 1
– Jo King
Feb 9, 2018 at 11:26
• Love this one. So many red herrings Feb 9, 2018 at 15:36
• Cracked. The mention of Fortuna reminded me of Whirl. Feb 9, 2018 at 17:34
• @Potato44 Haha awww man I tried Whirl but thought it was the same output as brainfuck!!! Nice job Feb 9, 2018 at 17:46

# Curry PAKCS, 57 bytes, cracked by Potato44

f[]=""
f([x]++s)=show x++" "++f s
main=putStr(f[1..100])


• @EsolangingFruit I am telling the truth when I say it's not Haskell (at least my intended solution is not). Feb 7, 2018 at 5:19
• @EsolangingFruit It's also not an optimal solution. I have a shorter solution but I like this one better. Happy hunting! Feb 7, 2018 at 5:21
• I was hoping this worked in Curry (it's a logic language and supports patterns like [x]++s), but you need to import IO to use putStr and it also doesn't seem to have .. for ranges. Feb 7, 2018 at 5:28
• Cracked. This was Curry but it needs a proper curry interpreter such as PAKCS Feb 9, 2018 at 7:44

# C (8cc + ELVM), 34 bytes, cracked by H.PWiz

main(X){while(X++<100)putchar(X);}


This prints 100 ASCII characters.

• 16 C compilers later... +1. Feb 12, 2018 at 0:33
• Feb 12, 2018 at 3:28
• For those who don't understand why this has so many upvotes (I 5 minutes ago): The normal signature of main function is main(int argc, char** argv), X takes the place of argc here. Normal C compilers take argc=1 and argv[0] is the path to the executable. Feb 12, 2018 at 3:58
• Why a specific compiler? I get this to work with both GCC and Clang on amd64 and GCC on armhf. Jun 11, 2021 at 19:21
• @OskarSkog: With most ways of running a C program this will output starting at 2. The starting value of X is the number of command-line arguments, and the name of the program being run usually counts as the first argument, so in order to start with X as 0 (and thus start counting from 1), you need to find a compiler, or a way of running a C program, that defies that convention somehow. Nov 21, 2021 at 19:36

# Z80CP/Mexecutable, 242 bytes, safe

Reposted, this time with a specified output format.

The code contains a... few unprintable characters, so here's the reversible xxd:

00000000: 8950 4e47 0d0a 1a0a 0000 000d 4948 4452  .PNG........IHDR
00000010: 0000 000a 0000 000a 0803 0000 01cd eb0f  ................
00000020: 1900 0000 5450 4c54 451e 010e 02cd 0500  ....TPLTE.......
00000030: 212a 0134 3e65 be20 f0c7 0000 0000 0000  !*.4>e. ........
00000040: c080 0000 c000 00ff 0000 c000 c0ff 00ff  ................
00000050: 0080 0000 8080 8080 0000 c000 00c0 c0c0  ................
00000060: c000 00ff 00c0 c0ff 00ff ffff c0c0 ffff  ................
00000070: 00c0 ffc0 c0ff ffff ffff 0000 ffc0 8cf4  ................
00000080: 0b00 0000 5949 4441 5408 d735 ca41 12c2  ....YIDAT..5.A..
00000090: 300c 04c1 3d4d 1283 1209 61e4 90ff ff13  0...=M....a.....
000000a0: 4315 7be8 dac3 a877 9969 5329 63d5 ddd5  C.{....w.iS)c...
000000b0: 5eaa 4535 c22f adc9 30c5 6da1 8bb9 e327  ^.E5./..0.m....'
000000c0: 7fcb a7c6 1bdc 69a6 469c c120 51d2 67f2  ......i.F.. Q.g.
000000d0: a4be c163 de13 43bb 991d 49db f900 2114  ...c..C...I...!.
000000e0: 04cf a503 d231 0000 0000 4945 4e44 ae42  .....1....IEND.B
000000f0: 6082                                     .


Output format: raw characters.

This is a valid PNG, that when enlarged looks like this:

This image is at the same time a Piet program and a Brainloller program, thanks to the upper left pixel, which is valid in both languages. In Piet, the instruction pointer moves between regions of pixels of the same color, and the differences in the color between regions encode instructions. This means that in Piet, you can start from any color. In Brainloller, it's just the colors of the pixels that are used to encode instructions. Therefore, I chose to start from cyan, which rotates the instruction pointer clockwise in Brainloller, making this polyglot trivial.

As you now know, both of these graphical programs were traps - I hoped at least one robber would state them as their guess, making it less likely that this answer will get cracked. Piet prints numbers 1 through 100, but as decimal integers, not as the raw characters specified. When I first posted this, I forgot to specify this, making it trivial. On the other hand, Brainloller starts at two. Since these are raw characters, I was hoping that someone wouldn't notice. As H.PWiz said, this should not be interpreted as a PNG.

First, I wrote the programs in Piet and Brainloller, as well as the CP/M program, which looks like this:

loop:
ld e, 1         ; system call: output a character
ld c, 2
call 5
ld hl, loop + 1 ; increment the immediate byte of the first instruction
inc (hl)
ld a, 101       ; if it's not 101 yet, loop
cp a, (hl)
jr nz, loop
rst 0           ; otherwise, exit


Then, I looked at various image formats, and I've found PNG to be the easiest to work with. A PNG consists of a magic number and a sequence of blocks. The program you see above resides in the palette block. At first I wanted to just place the palette block first, to make it easier for the execution to slide through all that nonsense, but the IHDR block has to be first. As it turns out, the image header of a 10x10 indexed PNG does not contain any instructions that write to memory or change control flow... until the CRC of the IHDR block. However, I remembered that the byte 0x01 is a 16-bit load immediate, which could help. The last byte before the CRC was an interlaced flag, so I flipped it, looked at the new checksum and concluded that this will work.

I was trying many different tools to insert the program into the palette. I found in the specification, that the palette block was designed by a sane person, which means that it just lists all the colors, with one byte per channel, R G B R G B R G B. I was starting to dig through the documentation of the Python Imaging Library, when I realised that it should be possible to do this with the GUI of GIMP.

I lied about the load address to the assembler program to get it the addresses embedded in it right. I grouped the bytes of the program in groups of three to get 6 color codes. In GIMP, I converted the image to indexed, created a read-write copy of its palette, converted it back to RGB, added the 6 new colors one by one then painstakingly copied all the colors at the beginning of the palette to the end and deleted the originals, because in GIMP you can't just move the colors. At the end, I converted the image to indexed again with a set palette, and after marking a few checkboxes to prevent GIMP from removing unused colors, I was done.

To test this on an emulator:

• Extract the tarball

~/tmp/z80$tar xf z80pack-1.36.tgz  • Compile the emulator ~/tmp/z80$ cd z80pack-1.36/cpmsim/srcsim
~/tmp/z80/z80pack-1.36/cpmsim/srcsim$make -f Makefile.linux [...]  • Compile the support tools ~/tmp/z80/z80pack-1.36/cpmsim/srcsim$ cd ../srctools
~/tmp/z80/z80pack-1.36/cpmsim/srctools$make [...]  • Fire up CP/M ~/tmp/z80/z80pack-1.36/cpmsim/srctools$ cd ..
~/tmp/z80/z80pack-1.36/cpmsim$./cpm13 ####### ##### ### ##### ### # # # # # # # # # # ## ## # # # # # # # # # # # # ##### # # ##### ##### # # # # # # # # # # # # # # # # # # # # # # # ####### ##### ### ##### ### # # Release 1.36, Copyright (C) 1987-2017 by Udo Munk CPU speed is unlimited Booting... 63K CP/M VERS. 1.3 (8080 CBIOS V1.0 FOR Z80SIM, COPYRIGHT 2014 BY UDO MUNK) A>  • Copy the xxd above, and in another window, convert it back to a binary file ~/tmp/z80/z80pack-1.36/cpmsim/srctools$ xclip -o | xxd -r > tplq.bin

• Now comes the hacky clever part. This is the only way I could find to transfer the file to the emulated machine. First, convert it to an Intel HEX file. Because of how the receiving program works, you need to specify the load address. If you don't, it's going to overwrite some very important memory, and when saving the file, the first 256 bytes won't be written:

~/tmp/z80/z80pack-1.36/cpmsim/srctools$./bin2hex -o 256 tplq.bin tplq.hex Input file size=242 Output file size=592  • Fire up the CP/M transfer program A>load tplq.com SOURCE IS READER  • Send the hex file to the emulator ~/tmp/z80/z80pack-1.36/cpmsim/srctools$ ./send tplq.hex

• You'll see that LOAD terminated:

FIRST ADDRESS 0100
RECORDS WRITTEN 02

A>

• You can now run the program:

A>tplq

123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_abcd
A>

• To exit, run BYE:

A>bye

INT disabled and HALT Op-Code reached at 0101
~/tmp/z80/z80pack-1.36/cpmsim$ • I tried Brainloller, but got 2..100 Feb 11, 2018 at 15:49 • @H.PWiz intended Feb 11, 2018 at 15:51 • Nice. I'm starting to wonder if it should even be interpreted as a png Feb 11, 2018 at 15:52 • @H.PWiz As you've guessed, no. Feb 18, 2018 at 18:30 ## The Powder Toy Save File, 529 bytes, cracked by tsh Fix of my last (now deleted) answer, which I missed a part of. 00000000: 4f50 5331 5c04 9960 961c 0c00 425a 6839 OPS1\......BZh9 00000010: 3141 5926 5359 b855 1468 00c2 eaff f6ff 1AY&SY.U.h...... 00000020: 5446 0c4a 01ef 403f 2f5f 74bf f7df f040 TF.J..@?/_t....@ 00000030: 0203 0000 4050 8000 1002 0840 01bc 16a5 ....@P.....@.... 00000040: 61a2 6909 18c1 4c64 4f22 7a83 4030 08c9 a.i...LdO"z.@0.. 00000050: a323 6932 0c8f 536a 0d0a 34f4 a635 31aa .#i2..Sj..4..51. 00000060: 7a4d 0c8f 5000 0006 4681 ea00 3469 e90e zM..P...F...4i.. 00000070: 1a69 8219 0d34 c8c9 8403 4d00 6134 6993 .i...4....M.a4i. 00000080: 0008 1a09 1453 4ca0 311a 7a9a 68d3 468d .....SL.1.z.h.F. 00000090: 0003 d4c8 000d 000d 0f98 debe 75b8 487f ............u.H. 000000a0: 2256 900d a121 2107 bb12 1208 4409 e89e "V...!!.....D... 000000b0: ddeb 1f17 e331 5ead 7cec db16 65d5 6090 .....1^.|...e.. 000000c0: 2422 b0ca cc2a 5585 c9c9 dc44 4ac0 f14d$"...*U....DJ..M
000000d0: 6076 5a40 8484 536a 953b b44b 190a 90f0  vZ@..Sj.;.K....
000000e0: 8a20 310e 95ad ca24 2d4b 0097 1a69 a919  . 1....$-K...i.. 000000f0: 8d5b 0010 0242 1c59 8981 409a ec10 9024 .[...B.Y..@....$
00000100: 2369 e1d8 a222 53dc 8231 dc4f a891 4b0b  #i..."S..1.O..K.
00000110: cf61 20d8 c1b4 4269 e25b 072d 5fb4 f1c4  .a ...Bi.[.-_...
00000120: a66b 62c8 069c ebc6 0225 9900 9852 21e9  .kb......%...R!.
00000130: d2e3 63d8 069a 7a69 124e eafc 3c5d 4028  ..c...zi.N..<]@(
00000140: dd15 6f81 0d2b 8007 816d f581 36f9 e58f  ..o..+...m..6...
00000150: 8cec 30e0 0378 40f9 b52c 4a17 b999 808d  ..0..x@..,J.....
00000160: d583 106f fd5e aaf5 ea8f a01b f5fc 9be5  ...o.^..........
00000170: 8e40 e05d 3a0a 2470 964d ef31 4c17 45da  .@.]:.$p.M.1L.E. 00000180: 3242 6692 251a aacc 6523 220c 73a7 7e3b 2Bf.%...e#".s.~; 00000190: cecf 635d 3cb6 08a0 7930 9566 0833 1d90 ..c]<...y0.f.3.. 000001a0: 993a 5b8a e548 b34c 3fa8 0cbe 84aa d23e .:[..H.L?......> 000001b0: 0129 c73b 1859 afa8 a984 990d cb0c db77 .).;.Y.........w 000001c0: 8fa8 df2f eda2 b779 72a7 4333 9382 0794 .../...yr.C3.... 000001d0: 1f14 2340 c199 344a 48e1 6214 85a8 82a9 ..#@..4JH.b..... 000001e0: 5f6a 5a55 6993 6395 4350 41a2 396f 3613 _jZUi.c.CPA.9o6. 000001f0: 20f1 4d52 d289 b60f 2ea1 0040 8009 08ea .MR.......@.... 00000200: e782 4084 847f 8bb9 229c 2848 5c2a 8a34 ..@.....".(H\*.4 00000210: 00  Output format: Unary value drawn on the screen • Can you provide a reversible xxd hexdump instead of that one please? Feb 7, 2018 at 2:39 • sure. One moment. Feb 7, 2018 at 2:40 • It seems like a save of some simulate game. But I don't know if this is a language defined by OP... – tsh Feb 7, 2018 at 7:13 • @tsh Here, we'll take this up in chat as you've figured it out. I've scanned the rules and it seems to count. Feb 7, 2018 at 13:40 • OK, cracked – tsh Feb 7, 2018 at 13:50 # Jolf, 7 bytes, cracked by DevelopingDeveloper Lazy!~1  Output is numbers separated by a |. How this works: Lazy!~1 y! define a canvas (no-op) z ~1 range 1..100 La join by | (for building regexes)  • I don't know what language this is but the code makes me think that it won't stop after 100. Is that the case? If so, is it allowed? Feb 8, 2018 at 16:44 • @NieDzejkob The solution is not unorthodox in any way :) Feb 8, 2018 at 16:55 • cracked Feb 8, 2018 at 19:57 # Hexagony, 69 bytes, cracked by totallyhuman #define ss "/}O'=){/'HI}-){" +1<2+3 "}@"$>!'d'/1
> ss ss {<}
1/1=2-1;


Output has decimal numbers followed by f, i.e.:

1f2f3f4f5f6f7f8f9f10f11f12f13f14f15f16f17f18f19f20f21f22f23f24f25f26f27f28f29f30f31f32f33f34f35f36f37f38f39f40f41f42f43f44f45f46f47f48f49f50f51f52f53f54f55f56f57f58f59f60f61f62f63f64f65f66f67f68f69f70f71f72f73f74f75f76f77f78f79f80f81f82f83f84f85f86f87f88f89f90f91f92f93f94f95f96f97f98f99f100f


Real layout:

    # d e f i
n e s s " /
} O ' = ) { /
' H I } - ) { "
+ 1 < 2 + 3 " } @
" $> ! ' d ' / 1 > s s s s { < } 1 / 1 = 2 - 1 ; .  How this works (click images for larger versions): In the initialisation stage, the IP passes through the #, rerouting to the same IP since the cell is 0, and grabs some junk letters before adding the two empty cells in front it (getting 0) and then changing to 1: After this, the IP enters the main loop. It outputs the current number with !, places a d (100) in the memory and shuffles the memory pointer around a bit, before placing an f in the memory and outputting it with ;. It then moves around a bit more before subtracting the d/100 from the current number and incrementing the result, giving -98 through 0 if the number is 1 to 99 or 1 if the number is 100. Next, the IP enters a branch. If the value of the incremented subtraction is 1, the count has reached 100 and the IP takes a weird path - we'll come back to that later. Otherwise, the IP moves the memory pointer around again before returning it to the central value and incrementing it, now pointing the opposite direction. The IP jumps over a > to re-enter the loop at the print stage. By the time we have printed everything, we now take the second branch. The memory looks like this: The IP goes along the gold path, altering the memory a lot, and hits the < where it started and bounces back, going all the way back to #. The memory looks like this: Since 101 is 5 mod 6, the IP switches from 0 to 5, on the grey path. More memory shuffling occurs until the IP runs into the # again: Since 110 is 2 mod 6, the IP switches from 5 to 2, and immediately hits the @, terminating. • Cracked. Feb 7, 2018 at 14:34 • @totallyhuman I'll edit when I have access to a computer. What made you think of that language? Feb 7, 2018 at 20:21 • I did immediately rule out C and others since every line but the first look quite esoteric. The @ and /}O'=){/'HI}-){ just looked a lot like Hexagony. :P Seems that Hexagony just can't get away with that, although I don't quite know what it does. Feb 7, 2018 at 20:26 • @totallyhuman if you didn't notice I edited in how it works. Feb 8, 2018 at 4:26 # Ternary, 310 bytes, safe First safe cop! 8605981181131638734781144595329881711079549089716404558924278452713768112854113413627547471131116115809411874286965083536529893153585314407394776357097963270543699599954585373618092592593508952667137969794964363733969333908663984913514688355262631397424797028093425379100111111111111111111111021001112000120012  I'm surprised this ended up safe, considering what you see if you look at the end. I got lazy during the obfuscation :P If you look at the end, you see a bunch of 1's, 2's, and 0's. That's base three—ternary. Q: Do we know any languages that use ternary? A: Ternary uses ternary. Ternary's spec only considers programs consisting only of the given digits, but the interpreter linked to on the Esowiki page has some strange behavior: • Consider overlapping pairs of characters of length 2 in the code. • For each of these pairs: • If they do not form a valid instruction and are not 22, ignore them and move to the next pair. • If they do form a valid instruction, execute it with the semantics outlined on the wiki page, and then skip the next pair. • If they are 22, skip the next pair. This means that only contiguous groups of ([01][012]|2[01])+ in the code actually have any significance. • Congratz on being the first answer that has lasted a full 7 days! – Jo King Feb 14, 2018 at 4:50 • Oh damn. I did notice the numbers at the end, but I assumed the 2s were lazy decoration, and went looking for languages with only 1s and 0s (ahhh, i'm only just noticing all the 11s in the code) – Jo King Feb 14, 2018 at 5:34 • @JoKing You were correct in assuming I was lazy, just underestimated how lazy. Feb 14, 2018 at 5:46 • Malbolge also uses ternary. Feb 15, 2018 at 4:44 • @user202729 As do some versions of Intercal, I believe. The comment about Ternary using Ternary was mostly a joke about the obviousness of the title. Feb 15, 2018 at 4:50 # Lost, 189 bytes, cracked by Dom Hastings /@<<<<<< >>>>>>@\ v \/ v % ^^ % ? \ / ? >1+:455* * -+?^:> ?v /^^\ v? ^ \oo/ ^ ^ \!/ ______ \!/ ^ ^ v \____/ v ^ ^<<< >>>^  It's going to get cracked way too easily, but I had fun making it. Both the bottom and the top half are pretty much useless. A much smaller program with identical output:  v%<@<<<<<<<<<< ?>^< >1+:455**-+?^:  • Cracked! Thought it looked a bit like that quine! :) - Updated to the right code... Oops! Feb 8, 2018 at 9:47 • The code looks a bit like the top view of a tank Feb 9, 2018 at 8:20 # brainfuck, 6348 bytes, cracked by MD XF  + . : + . + . + . v + . + . + . ^ + . + . + . + . + . ; + . + . + . + . + . " " + . + . + . + . + . + . @ + . + . + . + . ( " + . + . ) + . + . + . + . + . + . + . ; + . ( + . ) + . + . + . ) + . | + . + . + . + . + . + . ^ ( + . + . + . " + . + . : : + . + . ( + . ^ + . + . | + . ( + . ^|^ + . + . ||| ) + . + . AAA + . VVV + . " + . " + . + . ; + . + . + . ) + . ) 1 + . ( + . ( + . + . ^ + . ; + . + . ; + . ) + . + . " + . + . + . ^ + . + . + . + . ; ^ + . + . ( + . ) + . + . " d + . ) + . ) + . ) + . ) ( " + .  Quite an easy/long one, but pretty. You even get to see the rocket move up the screen as you scroll down. Output is raw. • This is Starry – Jo King Feb 12, 2018 at 2:38 • It looks very nice on TIO. Feb 12, 2018 at 2:49 • @joking sorry it's not. Duplicate : and & Feb 12, 2018 at 2:53 • This is Brainfuck. Feb 12, 2018 at 3:08 • @MDXF damn I forgot to disable that. Got to involved in making it look nice. Feb 12, 2018 at 4:08 # Ethereum VM, 170 bytes, safe The hex-encoded program is: 00000000: 6073 6068 5234 1560 0e57 6000 80fd 5b60 shR4..W...[ 00000010: 0180 9050 5b60 6581 60ff 1614 1515 6067 ...P[e......g 00000020: 577f 6375 726c 2068 7474 7073 3a2f 2f68 W.curl https://h 00000030: 656c 6c6f 6d6f 7573 652e 6366 2f63 677c ellomouse.cf/cg| 00000040: 7368 8180 6001 0192 5060 4051 8082 60ff sh.....P@Q... 00000050: 1660 ff16 8152 6020 0191 5050 6040 5180 ....R ..PP@Q. 00000060: 9103 90a1 6014 565b 5060 3580 6075 6000 .....V[P5.u. 00000070: 3960 00f3 0060 6060 4052 6000 80fd 00a1 9...@R..... 00000080: 6562 7a7a 7230 5820 114d ddac fde1 05a1 ebzzr0X .M...... 00000090: 3134 c615 32a1 3859 c583 7366 dba7 a339 14..2.8Y..sf...9 000000a0: 1187 d2ac ab19 9224 0029 .......$.)


Its in the blockchain!

The program emits one event per number, using a string designed to confuse that looks like a command as topic, and the number as data.

• Can you post a reversible xxd instead of just the hex? Feb 9, 2018 at 5:05
• @MDXF That is a reversible xxd. You just need the -ps flag. Feb 9, 2018 at 5:10
• I see a URL in there, does this code download stuff from the internet? If so I believe this violates one of out Standard Loopholes Feb 11, 2018 at 0:58
• @Potato44 it does not download and/or run code from the internet. Feb 11, 2018 at 3:06
• @Potato44 Actually the URL content is 'Nope.' and a trailing newline. Feb 15, 2018 at 5:30

# 05AB1E, 5170 bytes, cracked by H.PWiz

2̵̨̛̆̈̈́̂ͦͣ̅̐͐ͪͬͤͨ̊̊ͭ̑͛̋͏̠̰̦̥̼̟̟̀3̶̵̨̥̜̼̳̞̺̲̹̦͈̻̫͇̯̬̮͖̔̅ͮͭͨͧ̾͑ͣ̑̑̃̄̚͝5̸̸̧͖̼͚̩ͧͦ͋ͭ̐ͤͣ̄̆ͦ2̶̢̻͕̼̹̟̦̮̮͇͕̥̱͙͙̻͔̫̞̈̓̿̎ͦ͑ͩ͐̔̿̓͟͠A̴̺͍̮̠̤̫̙̜̹͎͒͂̌ͣ̊ͤͨ͂͒ͣ̉͌̄ͭ̑͟͠͡͝à̄̍̿̎ͯ̑̀̃̂ͣ̆̂̓̂ͬ̉̉͝҉̹̠̤̻s̏̓̓̃ͮ̌͋̅̎҉͈̝̩̻͡a̵̛̬̩̙͈͍̙͇͖͈͔̝̘̼̤͚ͨͣ̍̇̐ͧͥ̅̊ͥͅs̷̡̝̰̟̲͚̱̦͓͙̖̅̊̉̒̀͡A̢̛͓̜͇̻̦̮̭̣̮̱͎͒ͪ̿̇̓ͫ̍ͯ̀R̵̴̴̸̹̰̪͎̹̗̹̟̱̘͊̋̎̋̅ͫͬ͐̐͌A̸̧̝͍͍͔̣̮̾̓ͣ̓̍́ͬ͝g̨͕̣͎͕̳̟̱̭̲ͭ͛̎͆̔̃́8̶̬͓̱ͧ̄͌́̉́̀͜6̢̡͈̭̟̳̮̦̞͖̘͍̗ͩ̑̎̄̑ͮ̊̉ͯ̓̽͝8̾ͪ̉͊̑͏̤̩͈̤̣͙̭̟̳̮͎̣͈͖̖͕͕̫͠͠5̶̳̲̹̳̣̪͈̝̝̯̩̲̰̭̘̭̗ͮ́ͯ̐ͧ͑͛̇̂ͩ̓ͫͦ̔̽͐ͯ̅ͦ̕͠͠͡6̴̪͇̣͙̦͖̝̠̤̻̩̰̣͉̰̯̟͕ͯͩͮ̋̒̍ͦ̎̇ͦͮͣ̉̃͗8̷ͨͬͫ̌̀̅͊͐̇͐̚͝҉̰͔̫̤̱̦̯̟̼̝̼̣̀͡6̸̫͔̜̾̓̒̚ͅ7̀ͮ̄̊ͧ͐͗͑̾̊ͨ̚̕͞҉̣̮͙̝͔̻̯̫̥͔8̶̮̭̭̪̯͖̯̭͖̆ͣ̊ͩ̊ͨͧ͗̋̐ͧͫ̅́͘ͅ
̨̛̝̬̠̯̗͓̦ͦ̀͂̐͛̆ͬ̏̀ͣͭ͊̒͌͝3̶̧̡͇̤̩̘̦͍̜ͦͣ̋̚5̶̴̨̥̩̭̩̰̀̌̽͒̃̋ͭ́͛͠1͕̺̺̩͖̾̃̾̈̑͂ͣ̉́́́̚2͇̻͙̖̮̖̩͓͚̣̞̯̦̱̤̝͍̩̔ͪͦ̾͆͐͐͒͗ͧͦ̿͗́̓͜ͅ5ͣ̒͂̆ͦͥ̑̕҉҉̜͈̮̳̟̺̤̥̰̹̮̺̣̻̞͕̟1̢̛̃̉̔̽̊ͣͮ͋ͪ͗̆ͪͦ̐̇͑ͧ̚͘҉̛̫͕̙͕2̸̣̫̳͍͎̼̤͚̱̲͓͌̀͗̈́̓̈́̂̄ͪ̉̄̄̉̋͗ͩ̅̆͢͞͝4̴̢̺͙̺̞͕̻̥͍͆̿̄̐͒͗̈́ͫ̑ͫ̇͐͠͠ͅ2̸̛͕̩͕ͣͫ̒́6̴̵̢̘̫̟͖͙̲̲̮̣̘͈͉͖͓̮͖̊́ͬ̆̎͒ͩ̏ͨͥͧ̿̆̄͐́̏T̛͕̟̫̮̊̇̾ͦ̋̋̎̆̄͗̕͝n̴̡̤̞̣̦̱̻̰̟̻͈͈̠͇̣ͮͭ̐̎ͭ͋͛͌ͩ͡L̎ͮ̐͑ͫ̃ͪ̌͆̂̂ͯ̕̕͏̢̢͚̥̰̹̫͍̠̼̩̟̲,̨̨̘̱͚̗̖̺͓̘̼͍̘͚̹ͫ̂̏̈́ͥͬͥ̃̅͐̐͞q̨͍͕̠͍͖͇̠͉̮̭̦̜̣̼̜̩̠̓̊̀̈́̊͆̀̎̌͋̅̐͊͘͘͟͡ͅe̵̶̡̛͎̱͕͉̞̳͗ͭ̇ͪ͋̓̚͡r̨͚̘̖̝̫̳͂̈́ͣ͂ͧ͒̎ͧ̍͆̏ͪ̓ͥ̇̾̏͘ļ̴̴̝͉̪͎̊͂̾̑ͬ̐͡2̷ͯ̓̓͂̈͠҉̦̤̹̻͚̠̘̘͓̫̤͚̣̬̙͉͙̜3̸̮̝̮̰̘̰̇̿ͫͪ̑̈́ͦ̇̿̏̿ͥ͞͡5̶̲͔̣̞͚͇͒ͨ̂ͪ́̓̐̅͊͋̎͋̅́ͨ̿͟͞jͯ͂͋̉ͯͣ̃͊ͫ̋͊̊ͪͭ͏̸͠҉̝̣̬̥̻͉̖̮̫̘̤͕̭ͅģ̵͖̯̠͉̟̬̗͎͈͍̪̙̲̙͓̳͂͑̏̉͐͊ͩ̽͗̍͜͡ͅr̴̵̡̓̓̂̕͏̰̟̩̪g̶̡̢̠̲̱͚̋͊͆̂̔̑̕͜
̂͐ͥ̇҉̬͇̥̪͝ͅ2̴̸̷̞͕̦͚̪̩̺͇̭͖̪̫ͮ̈̃ͭ̓̾̓͂͑͊ͭ́̔̍ͭ3̶̸̼̤̩̣̤̆ͤ͊̂͆͘ͅ4̋̐̍̅̐̓͂̽͊ͥ̒͆ͮ̌ͫͧ͘͟͡͠͏̠̬͚̬͕̤͇̤̣͖͇̠̰͚͙̘͎͕̥6̓̄ͥ̂ͦ̽͌͋̍̓̄̈́͑̋̎ͧ͂͘͜͝͠҉͕̼͕̮͔3͎̤͖̦̟̱̟͍̺̞̜̞̳̳̯̾͛̓̇̾̒ͫͮ͌ͩ̄̓̔̔̓ͯ̐̀̀́͘͠2̷̡̰͚͙͙̤͎̺̜̳͍̩̋̍ͫ̔ͦ̉́̎ͣ͒̈͑̽́͢͞ͅͅ6̨̯͇̼͚͇͉͈̼̩̮͍̣̖ͭ̎ͯ͑̓͆͋͑ͅ3̳͉̥̰̖͓͇̞̩̳̩͙̜͇̗̼͖ͩ͑ͫ͛͊̋̈͌̋ͯ̔͛̀͛͟͞ͅ2̆̃ͥ̓ͪ̍ͯͨ͜͝͝͏̗͍͚͕͔̝̟͚̦6̭̤͕̰̙̼͌̎̇̓̽ͤ͌ͫ̀͠ḫ̷̢͔̪͈̠͖̪̹̮̣̩͊̽̿ͭ͋̂̊̂͝e̶͕͔͍̙̟̟̱̤͓̯̪̮̠͉̖ͧͩ̋̂ͤͦͭ̽̎͗̅͊̅̽̅̀͜͞r͊̀̍ͨ̀̍̓ͤ͗ͨ̊̅͊̿̚҉̴̪͖̝̙̭̖̹͔̻̦̖̳͔5͚̻͕̪͓̹̼̎ͥ̍̈̓̇ͬ̊ͧ̏̾͑̚͘͝2̶̸̖͙̟͉̜̤͔̦͍̖͖̝͖̳̝ͦͬ̅͒ͭ͆͊́3̴̻̺̮̞̖͛̌̇ͨ̆͒̊͛ͯ͐̇6̭͙͇͇̘̭̫͖̣̲̬͕͔̜̰̽̒ͮ͑̒ͩͨ̎̒̃͛ͦͥͭ̏̇́ͅ5̴̷̙̠̙̝̭̼̥̝̼̞͉̱̟̰̠̖͚͓̑͂̿͗͑ͭͬ̒ͣ̅̓̏ͥ̅̚͜ͅ2̷̾͛̈́ͯͭ̿̏̇̒͛ͧ̀͝҉̡̯̦̜͔̱̰͓͍̲̣̳3̢̡̈́͆ͯ̚͢͜͏̖͓͖̥̻̗̭͉̤̗̗2̸̸̨͎͉̥͚̜̗̩̰̮͙̟̳ͥ̑̉̊ͤͧ͑̊̕2̃͊̓͒̂͐̏ͭ͑̅͂͂ͤ̚҉͙͈̞͖̪͓̹̰͕̹̮̰̼͎̦̪͜2̸̿͆͊́̔́҉̧̙͇͚͍̗̝̤͚̝̻̣͉̳̹͟2̡̛̗͖̟͔̳̹̭͇͕̼͉͓̙̑̌̆͑̔̒̎
̇̈́ͯͫͫ͐̎͒͆̎̌͐̾ͧ̈́͐ͭ̆҉̬̯̳̮͖͚̭̼̱̳̪͉̥̪̞̱̘̹̖̀3̢̡̡̟̰͙͉̪̰̱̱͕̟̼͚̟̭͉͔̌ͭ͗ͨͮ̀̂́͂ͯ̔̿̈̉͜͜4̴̢͚̫͉ͥͭ͛̿́̽͛̄͐͝6̡̾͐̿̄͌̒́͜҉̶̯̩̟̼̯̰̙̝̟͕̬̳̳͖̹̱2̨̤̝̮̞̺̟̪̠̱̺̱̠̹͉͍̺̩̈ͯͬ͘͟͜ͅ3͗ͨ̅̋̆͆͌̾ͪͪ͛͆̐ͣ҉́҉̱̖̫͍̣̤̬̱̬̠̫̠̻͔̞̰6̶̢̖͕̻̾̅̔ͧͧ̇̑͗̂͊̿̓̐̍̂ͪͪ͟3̈ͨͤ͐̅̏̋ͬ̄͊̅̀ͦͭ̇ͤͩ̇̈҉͓͚̮̲̣͕͙̣͙̮̖̫̟4̵̧͙̠̱̟͐͗ͦ̓̍̎̾̈̽̆̈̈ͥ̾͗ͫ̐͠2̴͕̳̗͈̟̲͖̝̙̼̭̲̳̹̬̈́̎͂̅̆͌̇ͣ̑̏͜͞6̋͋̀͛̓ͭ̿̊͂̍ͤ̃̎̓̃̌̏҉͎̰̬̟̲͙̼̪̯͍͕̭̦4̸̢͔̱͔̖̝̪̙̼̻͍̗̟̳͔̱͑̈͒ͤͬͅ2͖̯̫̂́ͧ͆͛̄̆ͦͨͧ̅͘͢ͅ3͚̟̱̖̖̯̳̰͎͓͍̮̝͍͊͗̒́̀͞4̨̨͓͔̲̝͎̣͇̲̹ͨͨͯ͂̈ͤ̈́̈́̇̈́̀͟͠6̡̛͍̤̩͖̰̙͇͖̀̇͐̊̆̽̏̍͢͢gͨͩ̆ͮ̈ͩ̍ͩ̑̀̎̌ͭ͏̵̝̯͎̜̭̟s͉̥̥̣̗͍̭̩͍̮͉͓̲͕͍̱̗̮̟ͩ̑͋̓̂ͭͤ̉̕͞ť͍̩͚̹̠̥̥̳̩̻̦̬̤͓̞͓̄̄͒ͫ̀̽́̎ͥ̍̌̚͘͡3̷̬̝̘͍͊ͯ̈́ͮ̀̋̓ͩͧ͂̆͐̂ͤ̓ͮ̚̕͜6̷̘̖̻̤̟̗̦̼͎͕̳̥̫̘̲̥́̄̊ͪ͂̈́͐͛̓́̚̕4̶̷̛͕͇͎̲̺̤̯͈̱̹͉̮̭̳̗̤ͣ̏ͣ̾̀͠3͖̟̳͓̲͓̫̝̗̟̮̺̮̭͈̿ͬͫͣ͐̾͗ͧ̓̌̅͛́͘͟͡2̛̹͓̫̫̮̺̙̟͙̳̤̺̠̞̩̠̞͙ͩͪ̀ͬͪ͌͗̽ͣ̈́͜ͅ6̴̳̪̩͉̳͓̞̘̙̦̏ͭ̃͊ͭ͑̀̚
̵̙̝̘̝̲̳͖̣̝͕̥͍̥͖̗̹͉̎̽ͥ̑̾̎͢ͅḧ̶̵͇̭͍̠̣̗͖͍̜͕̰̘̰̑̃̀͒̈́ͤ̏̓ͩͬ̐͐̑̽ͯ̚̕͠͠4̫̬̦̜͕̺̱̖̼͋̄ͨ̾̔ͤ̓͊̐ͧ̔ͤ̎̄̀̏́͢ͅe̶̡ͯ̓ͮͤ̏ͦͬ͗̈́̽ͯ̌̽͌͆͊ͭ҉̡̝̺̜̝̗̗5̢̳͔̯͍̰̗̻͖͎̜͕̺̙͙͙̬͂͐̽͗͝ͅẆ̵̤̣̠͉̩̳̗͈̆̃̀̈́̋́̉̒ͯͭͥ͒̀ͭͦ́̓͗͘ͅR̴̍ͩ̓ͮ́̿ͨ̇̊̾̃̄̌̍͞҉̖̻̹̙̯́D̸̨̛̝̹̮͇̣̿ͧ͌̍̚ͅ3̨̛̛̫̫̣̝͈͔̰̖͕̮͉͔͖̈́ͨ̉̌̇́̃̍ͧ̈̈͐ͨ͛̚2͎̟̱̪̖͈͕͔͓̘͉̙̍̃̓ͪͦ͋͆̃̈̄̂̄ͦͥ̍̏̃̀͢͢͟5̸̶͛̀̿̄ͦ͊̏҉̷̼͇͍͚̘̺̱̜̤̻̞̲̜̰͙͔yͨ͐̍ͪ̑̀̾̌̊ͤ̿͗̄͑͐̑͌͋̽̕͏̰͔̮͈̦̤̫̗̫̯w̵̧̗̣̙̠̬̺̩͚̬̎́ͭ̃͛̈́2̴͚̫̮͍̼̠̺̠͕̬̳̮͕̱̟̙̘̹̑ͮͧ͗̓̎́́ͯ̓̐̉ͮͫͪ͢2̥̯͚̼͉̦͙ͧ͌͛̒̃ͯͭͥ͋̚̕̕͜͡ͅ2͇̖̭͆̒ͪ̾̎ͥͣ̂ͨͩ͋͒ͪ͊́̚͠͠2̑͗ͬ̃͆͂̓͗̏ͯ͟҉̴͘҉̳̭̗̘̤̝ͅ3̴̵̲̗̘̹̠̰̳͙̮͙̍̉̓ͦ̐ͧ̾̍̚̚̚̕ͅ4̨̲̜̱̦͓̝͍̳͕̩͌̔ͪ̾͗̉̇͗͐͛͆̀ͅͅ2̵̱̦̬̜͓̻̥̲͓̀͐ͫ͟͝6͔̮̣̮ͩͨ̀ͭͯ̏ͣ͂͡5̷͕̠̭̜͕͙̦̘̦̱̖̬ͤ̌ͫ̈̅͒̇ͯ͢
̸̵̵̡̛͓̻̗̖̻̗̼̤̰̂͛̆͌͗ͯͭ̂ͥ̈̂ͤͪ͐3̤̘̫͉̘̗̜̲̝͇̙̫̯̲̥͙̦͐̈̇̏͊̓̇̈́ͫ́͘͡ͅ2̛̣͓̪̖͔̺͍̝̫̳̱͊ͦ̿ͨ͌̀6̗̪̠̻̤̤͓̜̫͈͓̐͂̎͗̆͗̂͋͋̊̈́̃́3̰͈̠͚̙͉̲̗̭̤̝͇̩͔͖̦͓̹̯̉̊ͩͧ͐̃ͦ̾̀͘͟͢2̵̧̡̧̻̟̰̻̰̪͔͔̲̮͚̝̖̹̣̞̠̍̿̄͆͌́ͤ̀̅6̴̜̩̝̯͌͊̿ͫ̆̕͘5̵̡͓͍̬͔̒̍ͩ̅̎̍ͩ̉̈́ͫ͐͊̓̄͊̒͠͞ụ̡̜̥͙̗̻̺̤͇̥̦̗̠̪̳̗̼ͤ̈̓̾̆ͥ̅ͥ̿̿̒̇̓͟n̵̑͂̎ͪ́̾̃ͨ͗͛́́̚̚҉̶͙̰͓̱̳̯͓̟̺̤͈̥ͅn͒̿̏̆͏̳̯͍͎̫͇̮̳̼͎͚̜͓̦̝͜͟͡5ͨ̃͐ͬ̔̉͜҉̨̯̥̗͕̪̙̭͚̳͚͇͎̭̪͙̣̺́e̶̡̧͈̬̻̼̮͕̯͈̖͚͙̬̗͕̲ͬ̾̾̓̔͑͊ͨ͂ͪ̅͋̀ͪ̂̑̚͟ͅb̸̧͉̝̜̗͉̫͕͎͓͖̙̱ͩ͌ͪ͒̊̓ͦ͂̎͗ͨ̀̀ͮ͊̿͐͜y̅ͦͮ̽́ͥ͆ͫ̊ͩͪ̿ͩͭ͋͟҉̶̧̰̦̳̥̬̼̩̟̹͖͕̟̞͈͓̰̠͈ͅ3̷͕̮̤̩̳̙̳̮̹͕͇̱͖͖̋ͦͩͧ̃͊́ͩ̽̉̓̌̋́͟͝2̴̗̯͉̦̪̯̠͙̩̩̦̝̪̯̘̈ͨ̏́ͅ4̧̡̣̮̖͚̫̙̿̃ͫͫ̊̍̄̀̓̔̏͒ͦ́ͅͅ6̷̼̳͇̱̖̙̯̲̤͈̼͍̤̰̬̺̺͕ͭ̂͗̇̆̿͋ͥ͛̏ͫ̀ͣͧ̏̈́͞ͅ2̨̰̺̬̮̤̬̬̰̄̇̔̽ͫ͛͗̓ͯ̌ͫ̑̈́͘ͅ3͍͈͇͔̯͍͓͙̺̮͈̖͍̮̟̗̝̝͂ͫ̃ͤ̏͐̌́́́ͩ̀͘͡ͅ6̺̞̦̻͕̪̫̹̩͓ͫ͌̋̃͋̀̕͡͝ͅ3̏̈́ͧͬ̈́́̊̈̿ͯ̑̆̇̊̽̌͐́҉҉̡̨̪͉̖̖͇̯͉̥4̴̧̰͈̭̼̗̹̻͕͉͈̱̜̺̳̘̣̠̼̹̓ͩͮ̾̎̅̂̉̾̐͑̿͋͆̋͐̏͘
̴̢̭̰͚͎̦̟̜̫̟̰ͣͦ́͗̓̄̒͘͟3̢͙̹͍̹͖͈̙͚̱̰̝͙̗̙̹̗͖̺̟ͦ̑́̒̆̊̐̀͠͠4ͬͪͤ̏́҉͡͏̦͚̮͚̖̩̖̞̱̹̥̫̥͉6̡̡̛̜̮̭̞̰͗̾ͧ̇̃ͩ́͊͘͞3̜̘̘̤̬͚̫͉̹͖̘̰̩͇̖̳̺͇͙̆͐̈ͤͥ́ͬͩ͌̂̌̂͗͗͒̆̔̀͟͡͡2ͨͦͥ̓ͪ̎͏̵̵͈̯̩̼̬̦4̭̼͚͕̪̤̱̹̞̩̤̬̞͇̭͔͔̰̰͋̎͑ͫ͌̐̑͑̿̄ͯ́͡6̉̋́̾̌̍̒͌ͮ̕҉̯̘͙̳̲͙͍̞v̨̢͊ͦ̀҉̧̺̳͚̫̟͚͍̘̼̹̳̘̱̥͙͕͍͍̀w̵̨̳̭̖̘̮̩͔̘̱̭͍̰̗ͤ̇͊ͣ͂̆̋͢͠t̪̯̹̯̩̝̝̪͖̯ͭ̒̍̔ͤ̈̈̿̍̌̆ͮ͌ͯͮ͜͞ͅͅͅj̦̳̫̙̫̝͇̟̩͉͇̲̻̙̼ͬͯ̾̀ͫͦ̾̑̇̔ͪ͜͡r̴ͧ̈͗͋̑ͩ̾̽ͧ̌͌̉̋͛͗̔̔ͦ͏͇̦̥̝̮̳̦̺͕̫̹͍͔̞͝ͅͅͅw̴̛̖̙̻̞̭̼̘̹̼̫̲͕͓̗̘̹̋̏̅͊̎͋̉̾ͅt̡̧̳͇͚̲̮̻̣̺̝ͧ̏͂̅ͤ̕͝ả̗̜̯̻̗̝̜̼̪͕͓̭͍͂̇̐ͦͨ͌̽́́͝ͅ3̶͉͕̹̥̟̺̘͍̗̾̂ͫ̌ͯ̿̋̇͛ͪ̾ͭ͒͛̄̂̓̚͜͞7ͧ̒͂͊̆̽̓͏̵̢҉̞̭͖̼͙͎͚̟͉̻̹̙͉̣͎͍̪4̇ͫͧ̃́̾̎͛͆̿̈́ͭͪ͑ͭͤ̚҉̨͚̙̝̺̯̪͕̬͇̠͖̘̞̬̩̣̲͜͡͝5̵͓̘̝̻̺̺͈̟̯̟̬̲̘̠̜̥̻̦̬̓̋ͪͪͦͫ̚͘6̵̧̺̟͈̜̱͚̜̱̪̯͖̞͙̳̲͍̃͊ͫ͊̽̒̐͢͝8̶̷͔̦̹͙̔̂͐̈̆́̆ͤͪ̽̇̆͜͞5̸̴͉͈̺̮̥͇͍͕̦̗̏̂̐͒ͦ̃̌͌ͧͨͮ̆́͘͢7̹̤̪̺͕ͮͫ͊ͤͣ͛̉́͢3̷̨͍͓̱̼͓̥̘̼͔͎̲̗͈͕͖̭̽̑ͧ̃̏ͤ̊̂
̵̲̖̪̜̫̱̫̻̜̫̞ͭ͆̈́ͯ̋̆̓̀5̢̢̱̺̞͇̭̩͇̹̙̰̰̳̰̫͓̮̙͈̘͒ͮ̄̎͛̓͊̌ͩ̚͢͝4̷̩̱͈͓̺̘̓̉͐̑͗̉ͩ̆͊̂̒̑̈͑̑͌ͤͥ͘͘̕͝6̡̫̭͍̤̝͔̯̟̗̬̣͈͉͇̜͐ͯ͆̌3̸̷̨̦͚̱̭͈̖̖̈́́̎͛̒͌̽ͫ͢͠4̵̏̐̄̍ͦͭ͒̒҉̢̠̯͕̱͢͡ͅ6̨̯͖͎̮͖͈̩̤̺͚̥͚͈̰͔̭ͫ͆̽̀̿͡7̱̩̹̟̖̭̗̤̮̦̭͕̳͒̑ͫ̊̉̄̇ͥ̈́̽̊͆͝v̷̴̛̟̮̳͈̘̰̿͂ͤ̀̄̀ͤ̍͊ͯ͗́ͨͭ̊̏s̗̬̜̥̟̬̅ͬͣ̇̐̒ͭ̇́̓̍̅̀̕ķ̷̺͈̬̺̠̩̣̭̗͈̪͆ͩ͑ͦ͗̈ͧͧ́̚͡͡h̴̢̧̛͍͍̗̻̘̮͍̀̽̾̓̏ͅb̨̳̜̘͕͛̀ͫͦ͐ͮ͛́͛̏̇̀̕r̛͔̦̼̀̔ͮ͛͋ͪͧ̃͛̂͛̂̉̐́̚̕4̢̡̻͚̮̹̹̙͖̙͓͚̮̘̟̼̝̮̂̇͛̃̈ͮͧ̊̎̿̽ͯͥ́͟͠͝5̨̨͎̪̮͎͖̩̙̫̤̫̹̟̩̮ͨͭ͋ͯ͋ͮͯ̋ͪ̑̄ͧͭ̆ͤ̈́ͭͩ̚̕͠3ͤͭ̎͆̽͒̈́̌̈̽̍̓̏҉̫͓̗̩̺͕̬̼̦̘̦͎7̨͎̮̯̼̙̜̪͕̭̺̞̯͚ͫͤ̆̋͑ͮ̉̅̇͐ͫ̀3͊̀͆̈́ͩ̊͛̍́ͣͤ̓ͬ̿ͨ̓͑͗͗͘̕҉͉̗̥̮ͅ4̴̴̢͈̦̤̼͎̼͍͔̝̳ͣ̾́͑͗̒̎̐ͤ̀ͯ̋̚̕͝7̡̡̛̻̩̺͉͆ͦ͗̒ͦ̽͒͊̉͌͌̌̏̇́4̨͛ͩ̍̽̋̉ͪ̅͛̄͐̈ͩ̄̚̕҉̻̘͔͕̤̬̗̹̟̫3͈̥̘̼͙̤̖̬̺̥̠̜̖̯̦̐ͪͮ̈́̐͗ͤ̔ͯ̈́̐͊̚͟͡ͅ5̢̘̭̬̺͚͔̱͓͇̘͙̗̫̮͙̲̜̃͂̈́̏ͥ̐̇̐̈̇͆͂ͅ6̵̷̛͍͇̥̺̼̻̺̥̦͕̆ͧ͐̓͐̏ͦ͌̾ͫͭ́ͫͦ͆͛̍̕͝


Laughs in Zalgo - Good luck (yes, this executes, believe it or not lol).

Try it online!

• Feb 14, 2018 at 16:22
• When I viewed the cracked post, Google Chrome asked, "Would you like to translate this page?" Goodness knows what language it thought it was seeing. :P Feb 15, 2018 at 6:04
• @DLosc please go back and translate it, Zalgo has summoned you. Feb 15, 2018 at 13:45
• @MagicOctopusUrn the same happened to me; Chrome told me the page could not be translated. Feb 15, 2018 at 13:51
• @MagicOctopusUrn Maybe I'm missing something, but why does the link you included for 05AB1E's documentation go to neopets? Feb 19, 2018 at 4:39

# Befunge-96, 25 bytes, safe

#<h2%fZ<[[+!/8]]!><[8!,]>


Try it online!

Surprise! Like a horror movie with a bad twist, the murderer was Befunge's deformed older brother all along!

The biggest trick of this code is the h instruction, which I found through James Holderness' answer here. h sets the Holistic Delta, which changes the value of the instructions encountered before executing them.

### Explanation

#< Skip over the <
h Set the holistic delta to 0 (doesn't change anything)
2%fZ Does nothing
2%fZ< Goes left and adds a 2 to the stack
h Sets the holistic delta to +2


Now (to the pointer) the code looks like:

%>j4'h\>]]-#1:__#@>]:#._@


Going left at the j

>j4'h\>  Pushes 104, 4 to the stack
>-#1:_ Initially subtracts 4 from 104 to get 100
Then repeatedly dupe, decrement and dupe again until the value is 0
_ Pop the excess 0
#@> Skip the terminating @ and enter the loop
> :#._@ Print the number until the stack is empty


The hardest part of this was figuring out which aspects of -96 are inherited from -93, which are precursors to -98, and which aren't. For example ] (Turn Right) is in -98, but isn't in -96, while the ' (Fetch Character) is. Thankfully, this version does not bounce off unknown instructions.

# Jelly, 494 bytes, safe

[]
^1#
^2#
^3#
^4#
^5#
^6#
^7#
^8#
^9#
^10#
^11#
^12#
^13#
^14#
^15#
^16#
^17#
^18#
^19#
^20#
^21#
^22#
^23#
^24#
^25#
^26#
^27#
^28#
^29#
^30#
^31#
^32#
^33#
^34#
^35#
^36#
^37#
^38#
^39#
^40#
^41#
^42#
^43#
^44#
^45#
^46#
^47#
^48#
^49#
^50#
^51#
^52#
^53#
^54#
^55#
^56#
^57#
^58#
^59#
^60#
^61#
^62#
^63#
^64#
^65#
^66#
^67#
^68#
^69#
^70#
^71#
^72#
^73#
^74#
^75#
^76#
^77#
^78#
^79#
^80#
^81#
^82#
^83#
^84#
^85#
^86#
^87#
^88#
^89#
^90#
^91#
^92#
^93#
^94#
^95#
^96#
^97#
^98#
^99#
^100#

Attempt This Online!

Outputs as an array of integers.

Explanation:

• All lines except the last are essentially ignored
• 100#: find the first 100 integers such that:
• ^: the integer, xord with 0, is not 0 (which is always true for positive integers)

# ???, 145 bytes, cracked by Dennis

!!!

......";........-,'";'";.;;.---,'"....'"-........;,'".........'";.!--!;,'".........'";;;.--,,,,,,,,,,;..........";!--.!--!;;;,'"--,";,,,,,,,,!,!!


Outputs the numbers cleanly in one line.

• Cracked. This is ???. Feb 7, 2018 at 2:58
• Very good! This was undeniably a softball, but that speed is impressive. Feb 7, 2018 at 3:03
• Well, I know the language. ;) Feb 7, 2018 at 3:10
• It wasn't really obfuscated, either. Feb 8, 2018 at 23:05

### BrainCurses, 12 bytes, cracked by Rlyeh

' !'d[:-%_%]


Hmmmmmm :)

Output is space-separated (with a trailing space).

• The syntax looks like if someone mixed Japt and Python... Feb 7, 2018 at 21:07
• This is forobj, but I can't find an interpreter anywhere. Do you have one? Feb 8, 2018 at 17:23
• @MDXF This is not forobj, actually. Unless you can provide the interpreter, of course. Feb 8, 2018 at 17:30
• Huh that's odd, it really seemed like it was Feb 8, 2018 at 18:27
• @MDXF Note that if it works in that language, it could be cracked. Feb 8, 2018 at 23:04

# Z80 (anagol-flavored), 47 bytes, safe

main;;<o,,,,,,,,,,,,,,,,,,,,,,,,,,,)))))))))0;v


Outputs bytes from 1 to 100. I'm not entirely sure this satisfies the requirements for a language in the OP, but it sort of technically does.

Post-reveal clarification: The Z80 chip has a Wikipedia article, its machine language is certainly a programming language, and an interpreter for the Z80 machine used is freely available on golf.shinh.org; Z80 is often used for code golf there.

The machine is very simple: 64k of memory + all registers are zeroed; code is placed at $0000 and execution starts there. A putchar routine is executed when the PC reaches $8000. (There is also getchar, but it's irrelevant here.)

The iffy part, of course, is that this "putchar at $8000" behavior isn't inherent to the chip and isn't itself defined by Wikipedia/Esolangs/Rosetta. You could see it as an "interpreter quirk"... but that's maybe a stretch. I'll leave the decision to the OP. Here is the program disassembly:  ld l,l ; Red herring. ('main') ld h,c ; Well, the whole program being printable ASCII is a red herring. ld l,c ; Arguably, clearing H is the "right thing to do", but it turns ld l,(hl) ; out not to have been necessary. dec sp ; "Push a zero" (make SP point at$fffe, which is zeroed out)
dec sp

inc a                   ; Increment A, the argument to putchar.

ld l,a                  ; Compute (A + 27) << 9.
inc l      (27 times)

jr nc, $0069 ; Halt if carry is set. This occurs when A = 101. halt ; Otherwise, run from$0069 to $7fff (all NOP). ; Finally, putchar(A) and return to$0000 (which we pushed).


Try it online: click "use form", pick z80 from the dropdown menu, paste in my code, and Submit!

I expected this to get cracked fairly quickly, but now I feel a little bad. I had fun writing a Z80 program constrained to printable ASCII code, though.

EDIT 2018-02-23: I described the Z80golf machine on esolangs.

# pb, 21 bytes, cracked by MD XF

w[T!100]{t[T+1]b[T]>}


Output in raw chars 0x01-0x64.

• Cracked! Feb 8, 2018 at 17:05

# Festival Speech Synthesis System, 1708 bytes, cracked by fergusq

;#.#;‏⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠‌​⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠‌​⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠‌​⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠‌​⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠‌​⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠‌​⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠‌​⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠‌​⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠‌​
;echo {1..99};
(SayText "")
(SayText "hs sh (but which?) fl")
(SayText "link herring obscure, blame2 premier")
(SayText "don't forget to look up")
(define(f x)(cond((> x 100)())((print x))((f(+ x 1)))))
(f 1)


Hexdump (optional, if you don't like copy-pasting)

The concept behind this is that there are three languages going on here: Headsecks (hs), zsh (sh), and the actual Festival Lisp (fl). The intent was that running the program in one would help gain insight into the others:

## The herring (zsh)

bash doesn't like having the semicolons by themselves at the top (hence "but which?"), however zsh will happily take them and skip down to the echo {1..99}; line, which will expand into 1 through 100... except for 100, of course.

This was supposed to be the most obvious one, and the intent was to tip off the robber that the fourth line hints are referring to languages.

This seems to the thing that most people started on instead: the unprintable blob (blame2) after the first line (premier). This is a (completely ungolfed) Headsecks program that outputs this:

:26726392


Go to that message in the transcript, and you get this delightful conversation. But if you look up, you get this.

# The obscure (Festival)

Festival "Lisp" is really just an embedded Scheme interpreter; if you took the numerous SayTexts out, this program would run correctly in almost any flavor of Lisp (semicolons are comments). As it is, it requires that SayText be already defined... which it is in Festival. You'll hear it rattle out the hints if you have an audio device, after which it will then correctly print out 1 to 100.

• ...That's... Could we have a hexdump? Feb 11, 2018 at 2:39
• What's the output format? (I'm assuming those strings don't actually get printed...) Feb 11, 2018 at 4:05
• @DLosc Regular STDOUT. It might take a little while though. Feb 11, 2018 at 4:31
• Aha! Is this Anguish?
– Jo King
Feb 11, 2018 at 4:55
• cracked? Feb 11, 2018 at 17:28

# 2B, 38 bytes, safe

+9+1::{-1^1+9+1v1**}^1: :{-1v1+1)^1* *


Output is raw chars.

• If the interpreter is in VB.NET, can it be really considered free as in beer? Feb 14, 2018 at 17:27
• @NieDzejkob Sure, I have tested this submission without paying for anything (not paying for VB either). Feb 14, 2018 at 17:30

# Glass, 212 bytes, safe

{     (M)        [
m     v   A
! o   O   !
<     0   >
m     <   1
>  =/m<     1>  v
a.    ?0o
(on)      .
? "
,
"
o  o.
?0<100>v
(ne).?m 1=  ,
\
\^]}


Glass is a stack-based, object oriented esolang that was previously featured on Esolangs. I intended to make this look like a 2D language. If we strip out extraneous whitespace in this submission, we get this:

{(M)[mvA!oO!<0>m<1>=/m<1>va.?0o(on).?"
,
"oo.?0<100>v(ne).?m1=,\^]}
Glass begins executing from the m (main) method of the class M (Main). Because of Glass's syntax, this would be written as {M[m 'Method body']}. In order to avoid this being too recognizable as Glass, I wrapped the M in parentheses (which are mandatory for multi-character names).

• Not ><>, Gol><>, Befunge-93 or 98, Prelude, Whitespace, CJam, Golfscript, Brain-Flak or Pain-Flak... Feb 14, 2018 at 16:03
• @MDXF Edited. This was Glass. Feb 15, 2018 at 1:36
• Geez on a roll! Feb 15, 2018 at 19:52
• @tfbninja I had a list of languages I wanted to use beforehand, so I was able to write and post a bunch of submissions quickly... Feb 15, 2018 at 21:29

# SuperCollider, 22 bytes, cracked by Dennis

for(1,100,"% "postf:_)


Outputs decimal integers, space separated. The output has a trailing space but no trailing newline.

Explanation: SuperCollider is a domain-specific language for sound synthesis and music composition, so I thought it might obscure enough in this community to escape being cracked. I used to golf in it regularly though, in order to post music on Twitter. (The link has audio recordings as well as the 140-character code that produced them.)

In addition, I used a couple of tricks to make the code not look like typical SuperCollider. A more paradigmatic approach to this task would be

99.do {
arg i;
(i+1).postln;
};
`

which prints the numbers newline-separated.

• Cracked. Feb 7, 2018 at 20:58