<!-- HAWAIIAN-COMPASS · part 2 -->
hlIDMyIHBvaW50cy4gSW5kZXggMCBpcyBub3J0aC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwb2ludEF0KGluZGV4KSB7XG4gIGNvbnN0IGkgPSAoKGluZGV4ICUgMzIpICsgMzIpICUgMzI7XG4gIGNvbnN0IHEgPSBNYXRoLmZsb29yKGkgLyA4KTtcbiAgY29uc3QgcCA9IGkgJSA4O1xuICBjb25zdCBhID0gQ0FSRFNbcV07XG4gIGNvbnN0IGIgPSBDQVJEU1socSArIDEpICUgNF07XG4gIGNvbnN0IGZvcm1zID0gW1xuICAgIFthLnNob3J0LCBhLm5hbWVdLFxuICAgIFtgJHthLnNob3J0fSBtYSAke2Iuc2hvcnR9YCwgYCR7YS5uYW1lfSBtYSAke2IubmFtZX1gXSxcbiAgICBbYCR7YS5zaG9ydH0gJHthLnNob3J0fSAke2Iuc2hvcnR9YCwgYCR7YS5uYW1lfSAke2EubmFtZX0gJHtiLm5hbWV9YF0sXG4gICAgW2Ake2Euc2hvcnR9JHtiLnNob3J0fSBtYSAke2Euc2hvcnR9YCwgYCR7YS5uYW1lfS0ke2IubmFtZX0gbWEgJHthLm5hbWV9YF0sXG4gICAgW2Ake2Euc2hvcnR9JHtiLnNob3J0fWAsIGAke2EubmFtZX0tJHtiLm5hbWV9YF0sXG4gICAgW2Ake2Euc2hvcnR9JHtiLnNob3J0fSBtYSAke2Iuc2hvcnR9YCwgYCR7YS5uYW1lfS0ke2IubmFtZX0gbWEgJHtiLm5hbWV9YF0sXG4gICAgW2Ake2Iuc2hvcnR9IG1lICR7YS5zaG9ydH1gLCBgJHtiLm5hbWV9IG1lICR7YS5uYW1lfWBdLFxuICAgIFtgJHtiLnNob3J0fSBtYSAke2Euc2hvcnR9YCwgYCR7Yi5uYW1lfSBtYSAke2EubmFtZX1gXSxcbiAgXTtcbiAgY29uc3QgW21hcmssIHNwb2tlbl0gPSBmb3Jtc1twXTtcbiAgcmV0dXJuIHtcbiAgICBpbmRleDogaSxcbiAgICBiZWFyaW5nOiByb3VuZChpICogU1RFUCwgNCksXG4gICAgbWFyayxcbiAgICBzcG9rZW4sXG4gICAgcmFuazogcCA9PT0gMCA/IFwiY2FyZGluYWxcIiA6IHAgPT09IDQgPyBcImludGVyY2FyZGluYWxcIiA6IHAgJSAyID09PSAwID8gXCJoYWxmXCIgOiBcImJ5XCIsXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBQT0lOVFMgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiAzMiB9LCAoXywgaSkgPT4gcG9pbnRBdChpKSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemUoZGVnKSB7XG4gIHJldHVybiByb3VuZCh3cmFwKGRlZyksIDQpO1xufVxuXG4vKiogUGFyYW1ldGVycyBvZiBhIGNvdXJzZSwgbWVhc3VyZWQgY2xvY2t3aXNlIGZyb20gbm9ydGguICovXG5leHBvcnQgZnVuY3Rpb24gZGVzY3JpYmUoZGVnKSB7XG4gIGNvbnN0IGJlYXJpbmcgPSBub3JtYWxpemUoZGVnKTtcbiAgY29uc3QgcmFkID0gKGJlYXJpbmcgKiBNYXRoLlBJKSAvIDE4MDtcbiAgY29uc3QgbmVhcmVzdEluZGV4ID0gTWF0aC5yb3VuZChiZWFyaW5nIC8gU1RFUCkgJSAzMjtcbiAgY29uc3QgcG9pbnQgPSBwb2ludEF0KG5lYXJlc3RJbmRleCk7XG4gIGxldCBvZmZzZXQgPSBiZWFyaW5nIC0gcG9pbnQuYmVhcmluZztcbiAgaWYgKG9mZnNldCA+IDE4MCkgb2Zmc2V0IC09IDM2MDtcbiAgaWYgKG9mZnNldCA8IC0xODApIG9mZnNldCArPSAzNjA7XG4gIGNvbnN0IHJlY2lwcm9jYWwgPSBub3JtYWxpemUoYmVhcmluZyArIDE4MCk7XG4gIGNvbnN0IHJlY2lwcm9jYWxQb2ludCA9IHBvaW50QXQoTWF0aC5yb3VuZChyZWNpcHJvY2FsIC8gU1RFUCkgJSAzMik7XG5cbiAgbGV0IHF1YWRyYW50O1xuICBpZiAoYmVhcmluZyA9PT0gMCkgcXVhZHJhbnQgPSBcIm5vcnRoXCI7XG4gIGVsc2UgaWYgKGJlYXJpbmcgPT09IDkwKSBxdWFkcmFudCA9IFwiZWFzdFwiO1xuICBlbHNlIGlmIChiZWFyaW5nID09PSAxODApIHF1YWRyYW50ID0gXCJzb3V0aFwiO1xuICBlbHNlIGlmIChiZWFyaW5nID09PSAyNzApIHF1YWRyYW50ID0gXCJ3ZXN0XCI7XG4gIGVsc2UgaWYgKGJlYXJpbmcgPCA5MCkgcXVhZHJhbnQgPSBgbm9ydGggJHtmb3JtYXREZWcoYmVhcmluZyl9IGVhc3RgO1xuICBlbHNlIGlmIChiZWFyaW5nIDwgMTgwKSBxdWFkcmFudCA9IGBzb3V0aCAke2Zvcm1hdERlZygxODAgLSBiZWFyaW5nKX0gZWFzdGA7XG4gIGVsc2UgaWYgKGJlYXJpbmcgPCAyNzApIHF1YWRyYW50ID0gYHNvdXRoICR7Zm9ybWF0RGVnKGJlYXJpbmcgLSAxODApfSB3ZXN0YDtcbiAgZWxzZSBxdWFkcmFudCA9IGBub3J0aCAke2Zvcm1hdERlZygzNjAgLSBiZWFyaW5nKX0gd2VzdGA7XG5cbiAgcmV0dXJuIHtcbiAgICBiZWFyaW5nLFxuICAgIHJhZGlhbnM6IHJvdW5kKHJhZCwgNiksXG4gICAgbm9ydGhpbmc6IHJvdW5kKE1hdGguY29zKHJhZCksIDYpLFxuICAgIGVhc3Rpbmc6IHJvdW5kKE1hdGguc2luKHJhZCksIDYpLFxuICAgIHBvaW50LFxuICAgIG9mZnNldDogcm91bmQob2Zmc2V0LCA0KSxcbiAgICByZWNpcHJvY2FsLFxuICAgIHJlY2lwcm9jYWxQb2ludCxcbiAgICBxdWFkcmFudCxcbiAgICBuZXh0OiBwb2ludEF0KChuZWFyZXN0SW5kZXggKyAxKSAlIDMyKSxcbiAgICBwcmV2aW91czogcG9pbnRBdCgobmVhcmVzdEluZGV4ICsgMzEpICUgMzIpLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0RGVnKGRlZywgcGxhY2VzID0gMSkge1xuICBjb25zdCBuID0gcm91bmQod3JhcChkZWcpLCBwbGFjZXMpO1xuICBjb25zdCBzaG93biA9IG4gPT09IDM2MCA/IDAgOiBuO1xuICByZXR1cm4gc2hvd24udG9GaXhlZChwbGFjZXMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0U2lnbmVkKGRlZywgcGxhY2VzID0gMSkge1xuICBjb25zdCBuID0gcm91bmQoZGVnLCBwbGFjZXMpO1xuICBjb25zdCBib2R5ID0gTWF0aC5hYnMobikudG9GaXhlZChwbGFjZXMpO1xuICBpZiAobiA+IDApIHJldHVybiBgKyR7Ym9keX3CsGA7XG4gIGlmIChuIDwgMCkgcmV0dXJuIGDiiJIke2JvZHl9wrBgO1xuICByZXR1cm4gYCR7Ym9keX3CsGA7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7O0FBRWxGLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNyQixDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDaEQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNsRCxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ2pELENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUF