Calendar

From $0.000

Personalised print calendars are top-sellers at any time of year; personalise to create family gifts or mementos or add business logo and quality images and distribute to your customers. Choose from a range of sizes, shapes and prices.

DETAILS

REQUEST FOR CUSTOM QUOTE

Already know what you need? Fill in the form and our team will be in touch. [spu popup=”2789″]

[/spu]

UPLOAD DESIGN OR DESIGN YOUR OWN

16PP 28PP
216mm (W) x 152.5mm (H)
152.5mm (W) x 216mm (H)

Please check invalid fields and quantity input!

Summary options

{{field.title}} : {{field.value_name}}
Options price / 1 item
Quantity Discount / 1 item
Final price / 1 item
Total price / {{_qty}} items

Upload Design

Upload design

Complete

← Back to option

×

Material(s)

Art Paper

260GSM Art Card
310GSM Art Card

Woodsfree

250GSM Woodsfree

Color: Off-white
Texture: Smooth
Type: Coated

Color: White
Texture: Smooth
Type: Uncoated

Finishing(s)

Matt Lamination

Matt Lamination

Silver Hotstamp

Silver Hotstamp
(Calendar Stand)

Gloss Lamination

Gloss Lamination

Copper Hotstamp

Copper Hotstamp
(Calendar Stand)

Gold Hotstamp

Gold Hotstamp
(Calendar Stand)

How do I place an order?
  1. Select the product specfications
  2. Click on "Start and Upload Design" button located below "Summary Options".
  3. A pop up window will appear with two options: "Upload a Full Design" and "Design Here Online"

"Upload a Full Design"

  • Upload your own design by either "Drag and Drop" or "Click to Upload" your own designs.
  • Once you have completed the upload, click on the "Complete" button which will bring you back to the product page.
  • Click on "Add to Cart" and you may continue browsing or continue shopping.


"Design Here Online"

 

  • If you do not have a design and wish to design on your own, you may use our Online Design Editor and save money on hiring a designer.
  • On the "Online Design Editor" page itself, there is a "?" symbol which will give you a brief walkthrough through the site.
  • Once you have completed your design, click on the "Process" button (Located on the top right hand corner) which will bring you back to the product page.
  • Click on "Add to Cart" and you may continue browsing or continue shopping.
What is the processing time?
The processing time is listed in the "Details" section above and is dependent on the product that you ordered.
Do you offer Express services?
It depends on our availability. Contact our office to explain your requirements.
Is it a delivery or self collection?
We provide free delivery for orders above $200. For orders below $200, the delivery fee is a flat $30.
The product that I wish to order is not on your website. Can I get a custom quote?
Yes, you may receive a custom quote. Contact our office to explain your requirements.

Reviews

There are no reviews yet.

Be the first to review “Calendar”

Your email address will not be published. Required fields are marked *

Contact Us
Feel free to leave as a note. A letter. A word. No matter. Lorem ipsum dolor isamet and so on. So keep in touch. Leave a message. You know what I'm saying.
2018 (C) All rights reserved.
CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZl9icm93c2VyX3Vua25vd24gZ2Zvcm1fd3JhcHBlcicgaWQ9J2dmb3JtX3dyYXBwZXJfMjgnID48ZGl2IGlkPSdnZl8yOCcgY2xhc3M9J2dmb3JtX2FuY2hvcicgdGFiaW5kZXg9Jy0xJz48L2Rpdj48Zm9ybSBtZXRob2Q9J3Bvc3QnIGVuY3R5cGU9J211bHRpcGFydC9mb3JtLWRhdGEnIHRhcmdldD0nZ2Zvcm1fYWpheF9mcmFtZV8yOCcgaWQ9J2dmb3JtXzI4JyAgYWN0aW9uPScvcHJvZHVjdC9idXNpbmVzcy1zdGF0aW9uZXJ5L2NhbGVuZGFyLyNnZl8yOCc+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J2dmb3JtX2hlYWRpbmcnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSdnZm9ybV90aXRsZSc+Q2FyZGJvYXJkIFN0YW5kZWUgRW5xdWlyeTwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZm9ybV9ib2R5Jz48dWwgaWQ9J2dmb3JtX2ZpZWxkc18yOCcgY2xhc3M9J2dmb3JtX2ZpZWxkcyB0b3BfbGFiZWwgZm9ybV9zdWJsYWJlbF9iZWxvdyBkZXNjcmlwdGlvbl9iZWxvdyc+PGxpIGlkPSdmaWVsZF8yOF8yMCcgIGNsYXNzPSdnZmllbGQgZ2ZpZWxkX2NvbnRhaW5zX3JlcXVpcmVkIGZpZWxkX3N1YmxhYmVsX2JlbG93IGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93IGdmaWVsZF92aXNpYmlsaXR5X3Zpc2libGUnID48bGFiZWwgY2xhc3M9J2dmaWVsZF9sYWJlbCcgZm9yPSdpbnB1dF8yOF8yMCcgPk5hbWU8c3BhbiBjbGFzcz0nZ2ZpZWxkX3JlcXVpcmVkJz4qPC9zcGFuPjwvbGFiZWw+PGRpdiBjbGFzcz0nZ2lucHV0X2NvbnRhaW5lciBnaW5wdXRfY29udGFpbmVyX3RleHQnPjxpbnB1dCBuYW1lPSdpbnB1dF8yMCcgaWQ9J2lucHV0XzI4XzIwJyB0eXBlPSd0ZXh0JyB2YWx1ZT0nJyBjbGFzcz0nbWVkaXVtJyAgICAgYXJpYS1yZXF1aXJlZD0idHJ1ZSIgYXJpYS1pbnZhbGlkPSJmYWxzZSIgLz48L2Rpdj48L2xpPjxsaSBpZD0nZmllbGRfMjhfMicgIGNsYXNzPSdnZmllbGQgZ2ZpZWxkX2NvbnRhaW5zX3JlcXVpcmVkIGZpZWxkX3N1YmxhYmVsX2JlbG93IGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93IGdmaWVsZF92aXNpYmlsaXR5X3Zpc2libGUnID48bGFiZWwgY2xhc3M9J2dmaWVsZF9sYWJlbCcgZm9yPSdpbnB1dF8yOF8yJyA+RW1haWw8c3BhbiBjbGFzcz0nZ2ZpZWxkX3JlcXVpcmVkJz4qPC9zcGFuPjwvbGFiZWw+PGRpdiBjbGFzcz0nZ2lucHV0X2NvbnRhaW5lciBnaW5wdXRfY29udGFpbmVyX2VtYWlsJz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBuYW1lPSdpbnB1dF8yJyBpZD0naW5wdXRfMjhfMicgdHlwZT0ndGV4dCcgdmFsdWU9JycgY2xhc3M9J21lZGl1bScgICAgYXJpYS1yZXF1aXJlZD0idHJ1ZSIgYXJpYS1pbnZhbGlkPSJmYWxzZSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9saT48bGkgaWQ9J2ZpZWxkXzI4XzMnICBjbGFzcz0nZ2ZpZWxkIGdmaWVsZF9jb250YWluc19yZXF1aXJlZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV92aXNpYmxlJyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnIGZvcj0naW5wdXRfMjhfMycgPlBob25lPHNwYW4gY2xhc3M9J2dmaWVsZF9yZXF1aXJlZCc+Kjwvc3Bhbj48L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXIgZ2lucHV0X2NvbnRhaW5lcl9waG9uZSc+PGlucHV0IG5hbWU9J2lucHV0XzMnIGlkPSdpbnB1dF8yOF8zJyB0eXBlPSd0ZXh0JyB2YWx1ZT0nJyBjbGFzcz0nbWVkaXVtJyAgIGFyaWEtcmVxdWlyZWQ9InRydWUiIGFyaWEtaW52YWxpZD0iZmFsc2UiICAvPjwvZGl2PjwvbGk+PGxpIGlkPSdmaWVsZF8yOF80JyAgY2xhc3M9J2dmaWVsZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV92aXNpYmxlJyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnIGZvcj0naW5wdXRfMjhfNCcgPkNvbXBhbnk8L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXIgZ2lucHV0X2NvbnRhaW5lcl90ZXh0Jz48aW5wdXQgbmFtZT0naW5wdXRfNCcgaWQ9J2lucHV0XzI4XzQnIHR5cGU9J3RleHQnIHZhbHVlPScnIGNsYXNzPSdtZWRpdW0nICAgICAgYXJpYS1pbnZhbGlkPSJmYWxzZSIgLz48L2Rpdj48L2xpPjxsaSBpZD0nZmllbGRfMjhfMTYnICBjbGFzcz0nZ2ZpZWxkIGdmaWVsZF9jb250YWluc19yZXF1aXJlZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV92aXNpYmxlJyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnIGZvcj0naW5wdXRfMjhfMTYnID5MYW1pbmF0aW9uPHNwYW4gY2xhc3M9J2dmaWVsZF9yZXF1aXJlZCc+Kjwvc3Bhbj48L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXIgZ2lucHV0X2NvbnRhaW5lcl9zZWxlY3QnPjxzZWxlY3QgbmFtZT0naW5wdXRfMTYnIGlkPSdpbnB1dF8yOF8xNicgY2xhc3M9J21lZGl1bSBnZmllbGRfc2VsZWN0JyAgIGFyaWEtcmVxdWlyZWQ9InRydWUiIGFyaWEtaW52YWxpZD0iZmFsc2UiPjxvcHRpb24gdmFsdWU9J05vIExhbWluYXRpb24nID5ObyBMYW1pbmF0aW9uPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTWF0dCBMYW1pbmF0aW9uJyA+TWF0dCBMYW1pbmF0aW9uPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nR2xvc3MgTGFtaW5hdGlvbicgPkdsb3NzIExhbWluYXRpb248L29wdGlvbj48L3NlbGVjdD48L2Rpdj48L2xpPjxsaSBpZD0nZmllbGRfMjhfMTcnICBjbGFzcz0nZ2ZpZWxkIGdmaWVsZF9jb250YWluc19yZXF1aXJlZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV92aXNpYmxlJyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnIGZvcj0naW5wdXRfMjhfMTcnID5TaXplPHNwYW4gY2xhc3M9J2dmaWVsZF9yZXF1aXJlZCc+Kjwvc3Bhbj48L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXIgZ2lucHV0X2NvbnRhaW5lcl9zZWxlY3QnPjxzZWxlY3QgbmFtZT0naW5wdXRfMTcnIGlkPSdpbnB1dF8yOF8xNycgY2xhc3M9J21lZGl1bSBnZmllbGRfc2VsZWN0JyAgIGFyaWEtcmVxdWlyZWQ9InRydWUiIGFyaWEtaW52YWxpZD0iZmFsc2UiPjxvcHRpb24gdmFsdWU9J0E1JyA+QTU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdBNCcgPkE0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQTMnID5BMzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0EyJyA+QTI8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdBMScgPkExPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQTAnID5BMDwvb3B0aW9uPjwvc2VsZWN0PjwvZGl2PjwvbGk+PGxpIGlkPSdmaWVsZF8yOF83JyAgY2xhc3M9J2dmaWVsZCBnZmllbGRfY29udGFpbnNfcmVxdWlyZWQgZmllbGRfc3VibGFiZWxfYmVsb3cgZmllbGRfZGVzY3JpcHRpb25fYmVsb3cgZ2ZpZWxkX3Zpc2liaWxpdHlfdmlzaWJsZScgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsJyBmb3I9J2lucHV0XzI4XzcnID5RdWFudGl0eTxzcGFuIGNsYXNzPSdnZmllbGRfcmVxdWlyZWQnPio8L3NwYW4+PC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyIGdpbnB1dF9jb250YWluZXJfbnVtYmVyJz48aW5wdXQgbmFtZT0naW5wdXRfNycgaWQ9J2lucHV0XzI4XzcnIHR5cGU9J3RleHQnICAgIHZhbHVlPScnIGNsYXNzPSdtZWRpdW0nICAgICBhcmlhLXJlcXVpcmVkPSJ0cnVlIiBhcmlhLWludmFsaWQ9ImZhbHNlIiAvPjwvZGl2PjwvbGk+PGxpIGlkPSdmaWVsZF8yOF8xMCcgIGNsYXNzPSdnZmllbGQgZmllbGRfc3VibGFiZWxfYmVsb3cgZmllbGRfZGVzY3JpcHRpb25fYmVsb3cgZ2ZpZWxkX3Zpc2liaWxpdHlfdmlzaWJsZScgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsJyBmb3I9J2lucHV0XzI4XzEwJyA+QWRkaXRpb25hbCBJbmZvcm1hdGlvbjwvbGFiZWw+PGRpdiBjbGFzcz0nZ2lucHV0X2NvbnRhaW5lciBnaW5wdXRfY29udGFpbmVyX3RleHRhcmVhJz48dGV4dGFyZWEgbmFtZT0naW5wdXRfMTAnIGlkPSdpbnB1dF8yOF8xMCcgY2xhc3M9J3RleHRhcmVhIG1lZGl1bScgICAgICBhcmlhLWludmFsaWQ9ImZhbHNlIiAgIHJvd3M9JzEwJyBjb2xzPSc1MCc+PC90ZXh0YXJlYT48L2Rpdj48L2xpPjxsaSBpZD0nZmllbGRfMjhfMTgnICBjbGFzcz0nZ2ZpZWxkIGZpZWxkX3N1YmxhYmVsX2JlbG93IGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93IGdmaWVsZF92aXNpYmlsaXR5X3Zpc2libGUnID48bGFiZWwgY2xhc3M9J2dmaWVsZF9sYWJlbCcgID5BcnR3b3JrIFVwbG9hZDwvbGFiZWw+PGRpdiBjbGFzcz0nZ2lucHV0X2NvbnRhaW5lciBnaW5wdXRfY29udGFpbmVyX2ZpbGV1cGxvYWQnPjxkaXYgaWQ9J2dmb3JtX211bHRpZmlsZV91cGxvYWRfMjhfMTgnIGRhdGEtc2V0dGluZ3M9J3smcXVvdDtydW50aW1lcyZxdW90OzomcXVvdDtodG1sNSxmbGFzaCxodG1sNCZxdW90OywmcXVvdDticm93c2VfYnV0dG9uJnF1b3Q7OiZxdW90O2dmb3JtX2Jyb3dzZV9idXR0b25fMjhfMTgmcXVvdDssJnF1b3Q7Y29udGFpbmVyJnF1b3Q7OiZxdW90O2dmb3JtX211bHRpZmlsZV91cGxvYWRfMjhfMTgmcXVvdDssJnF1b3Q7ZHJvcF9lbGVtZW50JnF1b3Q7OiZxdW90O2dmb3JtX2RyYWdfZHJvcF9hcmVhXzI4XzE4JnF1b3Q7LCZxdW90O2ZpbGVsaXN0JnF1b3Q7OiZxdW90O2dmb3JtX3ByZXZpZXdfMjhfMTgmcXVvdDssJnF1b3Q7dW5pcXVlX25hbWVzJnF1b3Q7OnRydWUsJnF1b3Q7ZmlsZV9kYXRhX25hbWUmcXVvdDs6JnF1b3Q7ZmlsZSZxdW90OywmcXVvdDt1cmwmcXVvdDs6JnF1b3Q7aHR0cHM6XC9cL3ByaW50dm9sdXRpb24uc2dcLz9nZl9wYWdlPTVlN2FmMDFjNWUxMjVlOSZxdW90OywmcXVvdDtmbGFzaF9zd2ZfdXJsJnF1b3Q7OiZxdW90O2h0dHBzOlwvXC9wcmludHZvbHV0aW9uLnNnXC93cC1pbmNsdWRlc1wvanNcL3BsdXBsb2FkXC9wbHVwbG9hZC5mbGFzaC5zd2YmcXVvdDssJnF1b3Q7c2lsdmVybGlnaHRfeGFwX3VybCZxdW90OzomcXVvdDtodHRwczpcL1wvcHJpbnR2b2x1dGlvbi5zZ1wvd3AtaW5jbHVkZXNcL2pzXC9wbHVwbG9hZFwvcGx1cGxvYWQuc2lsdmVybGlnaHQueGFwJnF1b3Q7LCZxdW90O2ZpbHRlcnMmcXVvdDs6eyZxdW90O21pbWVfdHlwZXMmcXVvdDs6W3smcXVvdDt0aXRsZSZxdW90OzomcXVvdDtBbGxvd2VkIEZpbGVzJnF1b3Q7LCZxdW90O2V4dGVuc2lvbnMmcXVvdDs6JnF1b3Q7KiZxdW90O31dLCZxdW90O21heF9maWxlX3NpemUmcXVvdDs6JnF1b3Q7MzM1NTQ0MzJiJnF1b3Q7fSwmcXVvdDttdWx0aXBhcnQmcXVvdDs6dHJ1ZSwmcXVvdDt1cmxzdHJlYW1fdXBsb2FkJnF1b3Q7OmZhbHNlLCZxdW90O211bHRpcGFydF9wYXJhbXMmcXVvdDs6eyZxdW90O2Zvcm1faWQmcXVvdDs6MjgsJnF1b3Q7ZmllbGRfaWQmcXVvdDs6MTh9LCZxdW90O2dmX3ZhcnMmcXVvdDs6eyZxdW90O21heF9maWxlcyZxdW90OzowLCZxdW90O21lc3NhZ2VfaWQmcXVvdDs6JnF1b3Q7Z2Zvcm1fbXVsdGlmaWxlX21lc3NhZ2VzXzI4XzE4JnF1b3Q7LCZxdW90O2Rpc2FsbG93ZWRfZXh0ZW5zaW9ucyZxdW90OzpbJnF1b3Q7cGhwJnF1b3Q7LCZxdW90O2FzcCZxdW90OywmcXVvdDthc3B4JnF1b3Q7LCZxdW90O2NtZCZxdW90OywmcXVvdDtjc2gmcXVvdDssJnF1b3Q7YmF0JnF1b3Q7LCZxdW90O2h0bWwmcXVvdDssJnF1b3Q7aHRtJnF1b3Q7LCZxdW90O2h0YSZxdW90OywmcXVvdDtqYXImcXVvdDssJnF1b3Q7ZXhlJnF1b3Q7LCZxdW90O2NvbSZxdW90OywmcXVvdDtqcyZxdW90OywmcXVvdDtsbmsmcXVvdDssJnF1b3Q7aHRhY2Nlc3MmcXVvdDssJnF1b3Q7cGh0bWwmcXVvdDssJnF1b3Q7cHMxJnF1b3Q7LCZxdW90O3BzMiZxdW90OywmcXVvdDtwaHAzJnF1b3Q7LCZxdW90O3BocDQmcXVvdDssJnF1b3Q7cGhwNSZxdW90OywmcXVvdDtwaHA2JnF1b3Q7LCZxdW90O3B5JnF1b3Q7LCZxdW90O3JiJnF1b3Q7LCZxdW90O3RtcCZxdW90O119fScgY2xhc3M9J2dmb3JtX2ZpbGV1cGxvYWRfbXVsdGlmaWxlJz4KCQkJCQkJCQkJCTxkaXYgaWQ9J2dmb3JtX2RyYWdfZHJvcF9hcmVhXzI4XzE4JyBjbGFzcz0nZ2Zvcm1fZHJvcF9hcmVhJz4KCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0nZ2Zvcm1fZHJvcF9pbnN0cnVjdGlvbnMnPkRyb3AgZmlsZXMgaGVyZSBvciA8L3NwYW4+CgkJCQkJCQkJCQkJPGlucHV0IGlkPSdnZm9ybV9icm93c2VfYnV0dG9uXzI4XzE4JyB0eXBlPSdidXR0b24nIHZhbHVlPSdTZWxlY3QgZmlsZXMnIGNsYXNzPSdidXR0b24gZ2Zvcm1fYnV0dG9uX3NlbGVjdF9maWxlcycgYXJpYS1kZXNjcmliZWRieT0nZXh0ZW5zaW9uc19tZXNzYWdlXzI4XzE4JyAgLz4KCQkJCQkJCQkJCTwvZGl2PgoJCQkJCQkJCQk8L2Rpdj48c3BhbiBpZD0nZXh0ZW5zaW9uc19tZXNzYWdlXzI4XzE4JyBjbGFzcz0nc2NyZWVuLXJlYWRlci10ZXh0Jz48L3NwYW4+PGRpdiBjbGFzcz0ndmFsaWRhdGlvbl9tZXNzYWdlJz4KCQkJCQkJCQk8dWwgaWQ9J2dmb3JtX211bHRpZmlsZV9tZXNzYWdlc18yOF8xOCc+CgkJCQkJCQkJPC91bD4KCQkJCQkJCTwvZGl2PjwvZGl2PjxkaXYgaWQ9J2dmb3JtX3ByZXZpZXdfMjhfMTgnPjwvZGl2PjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9J2dmb3JtX2Zvb3RlciB0b3BfbGFiZWwnPiA8aW5wdXQgdHlwZT0nc3VibWl0JyBpZD0nZ2Zvcm1fc3VibWl0X2J1dHRvbl8yOCcgY2xhc3M9J2dmb3JtX2J1dHRvbiBidXR0b24nIHZhbHVlPSdTdWJtaXQnICBvbmNsaWNrPSdpZih3aW5kb3dbImdmX3N1Ym1pdHRpbmdfMjgiXSl7cmV0dXJuIGZhbHNlO30gIHdpbmRvd1siZ2Zfc3VibWl0dGluZ18yOCJdPXRydWU7ICAnIG9ua2V5cHJlc3M9J2lmKCBldmVudC5rZXlDb2RlID09IDEzICl7IGlmKHdpbmRvd1siZ2Zfc3VibWl0dGluZ18yOCJdKXtyZXR1cm4gZmFsc2U7fSB3aW5kb3dbImdmX3N1Ym1pdHRpbmdfMjgiXT10cnVlOyAgalF1ZXJ5KCIjZ2Zvcm1fMjgiKS50cmlnZ2VyKCJzdWJtaXQiLFt0cnVlXSk7IH0nIC8+IDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2dmb3JtX2FqYXgnIHZhbHVlPSdmb3JtX2lkPTI4JmFtcDt0aXRsZT0xJmFtcDtkZXNjcmlwdGlvbj0mYW1wO3RhYmluZGV4PTAnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2lzX3N1Ym1pdF8yOCcgdmFsdWU9JzEnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3N1Ym1pdCcgdmFsdWU9JzI4JyAvPgogICAgICAgICAgICAKICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fdW5pcXVlX2lkJyB2YWx1ZT0nJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdzdGF0ZV8yOCcgdmFsdWU9J1d5SmJYU0lzSWpObFpXVXdaall4WW1VMk9UWmtabVZsTURGa1ltVmxabVk0TkRBeVlUTTBJbDA9JyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV90YXJnZXRfcGFnZV9udW1iZXJfMjgnIGlkPSdnZm9ybV90YXJnZXRfcGFnZV9udW1iZXJfMjgnIHZhbHVlPScwJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV9zb3VyY2VfcGFnZV9udW1iZXJfMjgnIGlkPSdnZm9ybV9zb3VyY2VfcGFnZV9udW1iZXJfMjgnIHZhbHVlPScxJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdnZm9ybV9maWVsZF92YWx1ZXMnIHZhbHVlPScnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2dmb3JtX3VwbG9hZGVkX2ZpbGVzJyBpZD0nZ2Zvcm1fdXBsb2FkZWRfZmlsZXNfMjgnIHZhbHVlPScnIC8+CiAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8aWZyYW1lIHN0eWxlPSdkaXNwbGF5Om5vbmU7d2lkdGg6MHB4O2hlaWdodDowcHg7JyBzcmM9J2Fib3V0OmJsYW5rJyBuYW1lPSdnZm9ybV9hamF4X2ZyYW1lXzI4JyBpZD0nZ2Zvcm1fYWpheF9mcmFtZV8yOCc+VGhpcyBpZnJhbWUgY29udGFpbnMgdGhlIGxvZ2ljIHJlcXVpcmVkIHRvIGhhbmRsZSBBamF4IHBvd2VyZWQgR3Jhdml0eSBGb3Jtcy48L2lmcmFtZT4KICAgICAgICAgICAgICAgIDxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5qUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCQpe2dmb3JtSW5pdFNwaW5uZXIoIDI4LCAnaHR0cHM6Ly9wcmludHZvbHV0aW9uLnNnL3dwLWNvbnRlbnQvcGx1Z2lucy9ncmF2aXR5Zm9ybXMvaW1hZ2VzL3NwaW5uZXIuZ2lmJyApO2pRdWVyeSgnI2dmb3JtX2FqYXhfZnJhbWVfMjgnKS5vbignbG9hZCcsZnVuY3Rpb24oKXt2YXIgY29udGVudHMgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcqJykuaHRtbCgpO3ZhciBpc19wb3N0YmFjayA9IGNvbnRlbnRzLmluZGV4T2YoJ0dGX0FKQVhfUE9TVEJBQ0snKSA+PSAwO2lmKCFpc19wb3N0YmFjayl7cmV0dXJuO312YXIgZm9ybV9jb250ZW50ID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnI2dmb3JtX3dyYXBwZXJfMjgnKTt2YXIgaXNfY29uZmlybWF0aW9uID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnI2dmb3JtX2NvbmZpcm1hdGlvbl93cmFwcGVyXzI4JykubGVuZ3RoID4gMDt2YXIgaXNfcmVkaXJlY3QgPSBjb250ZW50cy5pbmRleE9mKCdnZm9ybVJlZGlyZWN0KCl7JykgPj0gMDt2YXIgaXNfZm9ybSA9IGZvcm1fY29udGVudC5sZW5ndGggPiAwICYmICEgaXNfcmVkaXJlY3QgJiYgISBpc19jb25maXJtYXRpb247aWYoaXNfZm9ybSl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl8yOCcpLmh0bWwoZm9ybV9jb250ZW50Lmh0bWwoKSk7aWYoZm9ybV9jb250ZW50Lmhhc0NsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJykpe2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfMjgnKS5hZGRDbGFzcygnZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcicpO30gZWxzZSB7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl8yOCcpLnJlbW92ZUNsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJyk7fXNldFRpbWVvdXQoIGZ1bmN0aW9uKCkgeyAvKiBkZWxheSB0aGUgc2Nyb2xsIGJ5IDUwIG1pbGxpc2Vjb25kcyB0byBmaXggYSBidWcgaW4gY2hyb21lICovIGpRdWVyeShkb2N1bWVudCkuc2Nyb2xsVG9wKGpRdWVyeSgnI2dmb3JtX3dyYXBwZXJfMjgnKS5vZmZzZXQoKS50b3ApOyB9LCA1MCApO2lmKHdpbmRvd1snZ2Zvcm1Jbml0RGF0ZXBpY2tlciddKSB7Z2Zvcm1Jbml0RGF0ZXBpY2tlcigpO31pZih3aW5kb3dbJ2dmb3JtSW5pdFByaWNlRmllbGRzJ10pIHtnZm9ybUluaXRQcmljZUZpZWxkcygpO312YXIgY3VycmVudF9wYWdlID0galF1ZXJ5KCcjZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzI4JykudmFsKCk7Z2Zvcm1Jbml0U3Bpbm5lciggMjgsICdodHRwczovL3ByaW50dm9sdXRpb24uc2cvd3AtY29udGVudC9wbHVnaW5zL2dyYXZpdHlmb3Jtcy9pbWFnZXMvc3Bpbm5lci5naWYnICk7alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9wYWdlX2xvYWRlZCcsIFsyOCwgY3VycmVudF9wYWdlXSk7d2luZG93WydnZl9zdWJtaXR0aW5nXzI4J10gPSBmYWxzZTt9ZWxzZSBpZighaXNfcmVkaXJlY3Qpe3ZhciBjb25maXJtYXRpb25fY29udGVudCA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJy5HRl9BSkFYX1BPU1RCQUNLJykuaHRtbCgpO2lmKCFjb25maXJtYXRpb25fY29udGVudCl7Y29uZmlybWF0aW9uX2NvbnRlbnQgPSBjb250ZW50czt9c2V0VGltZW91dChmdW5jdGlvbigpe2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfMjgnKS5yZXBsYWNlV2l0aChjb25maXJtYXRpb25fY29udGVudCk7alF1ZXJ5KGRvY3VtZW50KS5zY3JvbGxUb3AoalF1ZXJ5KCcjZ2ZfMjgnKS5vZmZzZXQoKS50b3ApO2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fY29uZmlybWF0aW9uX2xvYWRlZCcsIFsyOF0pO3dpbmRvd1snZ2Zfc3VibWl0dGluZ18yOCddID0gZmFsc2U7fSwgNTApO31lbHNle2pRdWVyeSgnI2dmb3JtXzI4JykuYXBwZW5kKGNvbnRlbnRzKTtpZih3aW5kb3dbJ2dmb3JtUmVkaXJlY3QnXSkge2dmb3JtUmVkaXJlY3QoKTt9fWpRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcG9zdF9yZW5kZXInLCBbMjgsIGN1cnJlbnRfcGFnZV0pO30gKTt9ICk7PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPiBqUXVlcnkoZG9jdW1lbnQpLmJpbmQoJ2dmb3JtX3Bvc3RfcmVuZGVyJywgZnVuY3Rpb24oZXZlbnQsIGZvcm1JZCwgY3VycmVudFBhZ2Upe2lmKGZvcm1JZCA9PSAyOCkge2dmb3JtSW5pdENob3NlbkZpZWxkcygnI2lucHV0XzI4XzE2LCNpbnB1dF8yOF8xNycsJ05vIHJlc3VsdHMgbWF0Y2hlZCcpO30gfSApO2pRdWVyeShkb2N1bWVudCkuYmluZCgnZ2Zvcm1fcG9zdF9jb25kaXRpb25hbF9sb2dpYycsIGZ1bmN0aW9uKGV2ZW50LCBmb3JtSWQsIGZpZWxkcywgaXNJbml0KXtnZm9ybUluaXRDaG9zZW5GaWVsZHMoJyNpbnB1dF8yOF8xNiwjaW5wdXRfMjhfMTcnLCdObyByZXN1bHRzIG1hdGNoZWQnKTt9ICk7PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPiBqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9wb3N0X3JlbmRlcicsIFsyOCwgMV0pIH0gKTsgPC9zY3JpcHQ+