{{header}}
{{object 1 0}} <<
  /Type /Catalog
  /Pages 2 0 R
  /OpenAction 10 0 R
>>
endobj
{{object 2 0}} <<
  /Type /Pages
  /Count 1
  /Kids [
    3 0 R
  ]
>>
endobj
% Page number 0.
{{object 3 0}} <<
  /Type /Page
  /Parent 2 0 R
  /Resources <<
    /Font <</F1 15 0 R>>
  >>
  /Contents [21 0 R]
  /MediaBox [0 0 612 792]
>>
% OpenAction action
{{object 10 0}} <<
  /Type /Action
  /S /JavaScript
  /JS 11 0 R
>>
endobj
% JS program to exexute
{{object 11 0}} <<
>>
stream
function TestOneInput(x) {
  try {
    var s = util.byteToChar(x);
    if (s.length) {
      s = s.charCodeAt(0);
    }
    app.alert(x + " => " + s);
  }
  catch (e) {
    app.alert(x + ": Caught error: " + e);
  }
}
TestOneInput(0);
TestOneInput(65);
TestOneInput(127);
TestOneInput(128);
TestOneInput(255);
TestOneInput(256);
TestOneInput(40000000);
TestOneInput(-1);
try {
  util.byteToChar();
}
catch (e) {
  app.alert("Caught expected error: " + e);
}
try {
  util.byteToChar({x:39});
}
catch (e) {
  app.alert("Caught expected error: " + e);
}
endstream
endobj
{{xref}}
trailer <<
  /Root 1 0 R
>>
{{startxref}}
%%EOF
